From 5d7a77c20771a803f34855f0e31fe58ad6566677 Mon Sep 17 00:00:00 2001 From: feng lv Date: Tue, 22 Sep 2020 17:23:46 +0800 Subject: [PATCH 001/425] add mutation support for StorageMemory --- src/Storages/StorageMemory.cpp | 50 +++++++++++++++++++++++++++++++++- src/Storages/StorageMemory.h | 2 ++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/src/Storages/StorageMemory.cpp b/src/Storages/StorageMemory.cpp index 25e232dc4ad..9686fbe3062 100644 --- a/src/Storages/StorageMemory.cpp +++ b/src/Storages/StorageMemory.cpp @@ -2,8 +2,9 @@ #include -#include +#include #include +#include #include #include @@ -203,6 +204,53 @@ void StorageMemory::drop() data.clear(); } +static inline void columnUpdate(Block & old_block, const Block & new_block) +{ + for (const auto & it : new_block) + { + auto col_name = it.name; + auto & col_with_type_name = old_block.getByName(col_name); + col_with_type_name.column = it.column; + } +} + +void StorageMemory::mutate(const MutationCommands & commands, const Context & context) +{ + auto metadata_snapshot_ = getInMemoryMetadataPtr(); + auto storage_id_ = getStorageID(); + auto storage_ptr_ = DatabaseCatalog::instance().getTable(storage_id_, context); + auto interpreter = std::make_unique(storage_ptr_, metadata_snapshot_, commands, context, true); + auto in = interpreter->execute(); + + in->readPrefix(); + BlocksList out; + Block block; + while (block = in->read()) + { + out.push_back(block); + } + in->readSuffix(); + + std::lock_guard lock(mutex); + + // all column affected + if (interpreter->isAffectingAllColumns()) + { + std::swap(data, out); + } + else + { + auto data_it = data.begin(); + auto out_it = out.begin(); + while (data_it != data.end() && out_it != out.end()) + { + columnUpdate(*data_it, *out_it); + ++data_it; + ++out_it; + } + } +} + void StorageMemory::truncate( const ASTPtr &, const StorageMetadataPtr &, const Context &, TableExclusiveLockHolder &) { diff --git a/src/Storages/StorageMemory.h b/src/Storages/StorageMemory.h index e67e3015028..f0d5d7aadec 100644 --- a/src/Storages/StorageMemory.h +++ b/src/Storages/StorageMemory.h @@ -43,6 +43,8 @@ public: void drop() override; + void mutate(const MutationCommands & commands, const Context & context) override; + void truncate(const ASTPtr &, const StorageMetadataPtr &, const Context &, TableExclusiveLockHolder &) override; std::optional totalRows() const override; From c0b5f847d97cf0826036a61c1fc154060e4afd50 Mon Sep 17 00:00:00 2001 From: feng lv Date: Tue, 22 Sep 2020 17:29:57 +0800 Subject: [PATCH 002/425] add test fix fix --- src/Storages/StorageMemory.cpp | 12 +++++------ ...ation_support_for_storage_memory.reference | 14 +++++++++++++ ...97_mutation_support_for_storage_memory.sql | 20 +++++++++++++++++++ 3 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 tests/queries/0_stateless/01497_mutation_support_for_storage_memory.reference create mode 100644 tests/queries/0_stateless/01497_mutation_support_for_storage_memory.sql diff --git a/src/Storages/StorageMemory.cpp b/src/Storages/StorageMemory.cpp index 9686fbe3062..72b8fd78d65 100644 --- a/src/Storages/StorageMemory.cpp +++ b/src/Storages/StorageMemory.cpp @@ -216,22 +216,22 @@ static inline void columnUpdate(Block & old_block, const Block & new_block) void StorageMemory::mutate(const MutationCommands & commands, const Context & context) { - auto metadata_snapshot_ = getInMemoryMetadataPtr(); - auto storage_id_ = getStorageID(); - auto storage_ptr_ = DatabaseCatalog::instance().getTable(storage_id_, context); - auto interpreter = std::make_unique(storage_ptr_, metadata_snapshot_, commands, context, true); + auto metadata_snapshot = getInMemoryMetadataPtr(); + auto storage = getStorageID(); + auto storage_ptr = DatabaseCatalog::instance().getTable(storage, context); + auto interpreter = std::make_unique(storage_ptr, metadata_snapshot, commands, context, true); auto in = interpreter->execute(); in->readPrefix(); BlocksList out; Block block; - while (block = in->read()) + while ((block = in->read())) { out.push_back(block); } in->readSuffix(); - std::lock_guard lock(mutex); + std::lock_guard lock(mutex); // all column affected if (interpreter->isAffectingAllColumns()) diff --git a/tests/queries/0_stateless/01497_mutation_support_for_storage_memory.reference b/tests/queries/0_stateless/01497_mutation_support_for_storage_memory.reference new file mode 100644 index 00000000000..5aaf21f9137 --- /dev/null +++ b/tests/queries/0_stateless/01497_mutation_support_for_storage_memory.reference @@ -0,0 +1,14 @@ +1 1 +2 2 +3 3 +4 4 +5 5 +100 1 +2 2 +3 3 +4 4 +5 5 +2 2 +3 3 +4 4 +5 5 diff --git a/tests/queries/0_stateless/01497_mutation_support_for_storage_memory.sql b/tests/queries/0_stateless/01497_mutation_support_for_storage_memory.sql new file mode 100644 index 00000000000..408487ed205 --- /dev/null +++ b/tests/queries/0_stateless/01497_mutation_support_for_storage_memory.sql @@ -0,0 +1,20 @@ +DROP TABLE IF EXISTS defaults; +CREATE TABLE defaults +( + n Int32, + s String +)ENGINE = Memory(); + +INSERT INTO defaults VALUES(1, '1') (2, '2') (3, '3') (4, '4') (5, '5'); + +SELECT * FROM defaults; + +ALTER TABLE defaults UPDATE n = 100 WHERE s = '1'; + +SELECT * FROM defaults; + +ALTER TABLE defaults DELETE WHERE n = 100; + +SELECT * FROM defaults; + +DROP TABLE defaults; From 8094ba713eeed92dc4f58d029a0d4a3e87bf1506 Mon Sep 17 00:00:00 2001 From: myrrc Date: Mon, 28 Sep 2020 17:33:52 +0300 Subject: [PATCH 003/425] first steps: changed allowed types --- .../AggregateFunctionAvgWeighted.cpp | 29 ++++++++++++++----- .../AggregateFunctionAvgWeighted.h | 1 + 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp index 6722a94cdc6..10698332a14 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp @@ -17,27 +17,41 @@ namespace template struct AvgWeighted { - using FieldType = std::conditional_t, - std::conditional_t, Decimal256, Decimal128>, - NearestFieldType>; - // using FieldType = std::conditional_t, Decimal128, NearestFieldType>; + using FieldType = std::conditional_t< + IsDecimalNumber, + std::conditional_t, + Decimal256, + Decimal128>, + NearestFieldType>; + using Function = AggregateFunctionAvgWeighted>; }; template using AggregateFuncAvgWeighted = typename AvgWeighted::Function; +bool allowTypes(const DataTypePtr& left, const DataTypePtr& right) +{ + return (isInteger(left) || isFloat(left)) && (isInteger(right) || isFloat(right)); +} + AggregateFunctionPtr createAggregateFunctionAvgWeighted(const std::string & name, const DataTypes & argument_types, const Array & parameters) { assertNoParameters(name, parameters); assertBinary(name, argument_types); AggregateFunctionPtr res; + const auto data_type = static_cast(argument_types[0]); const auto data_type_weight = static_cast(argument_types[1]); - if (!data_type->equals(*data_type_weight)) - throw Exception("Different types " + data_type->getName() + " and " + data_type_weight->getName() + " of arguments for aggregate function " + name, - ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); + + if (!allowTypes(data_type, data_type_weight)) + throw Exception( + "Types " + data_type->getName() + + " and " + data_type_weight->getName() + + " are non-conforming as arguments for aggregate function " + name, + ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); + if (isDecimal(data_type)) res.reset(createWithDecimalType(*data_type, *data_type, argument_types)); else @@ -46,6 +60,7 @@ AggregateFunctionPtr createAggregateFunctionAvgWeighted(const std::string & name if (!res) throw Exception("Illegal type " + data_type->getName() + " of argument for aggregate function " + name, ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); + return res; } diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h index 8eb619585c7..53a0ae50fb4 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h @@ -11,6 +11,7 @@ public: using AggregateFunctionAvgBase>::AggregateFunctionAvgBase; using ColVecType = std::conditional_t, ColumnDecimal, ColumnVector>; + void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const override { const auto & values = static_cast(*columns[0]); From 3ddcf590f69a790f518cd5c5e1dfb8db3adac08b Mon Sep 17 00:00:00 2001 From: hchen9 Date: Mon, 28 Sep 2020 16:32:50 -0700 Subject: [PATCH 004/425] Disable optimize_trivial_count_query when select_sequential_consistency = 0 --- src/Interpreters/TreeRewriter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Interpreters/TreeRewriter.cpp b/src/Interpreters/TreeRewriter.cpp index 0b2f8ac3eb7..b119788b083 100644 --- a/src/Interpreters/TreeRewriter.cpp +++ b/src/Interpreters/TreeRewriter.cpp @@ -619,7 +619,7 @@ TreeRewriterResultPtr TreeRewriter::analyzeSelect( result.ast_join = select_query->join(); if (result.optimize_trivial_count) - result.optimize_trivial_count = settings.optimize_trivial_count_query && + result.optimize_trivial_count = settings.optimize_trivial_count_query && settings.select_sequential_consistency && !select_query->where() && !select_query->prewhere() && !select_query->groupBy() && !select_query->having() && !select_query->sampleSize() && !select_query->sampleOffset() && !select_query->final() && (tables_with_columns.size() < 2 || isLeft(result.analyzed_join->kind())); From fda6bde428d645b9a1d68c9e510508ac532ec641 Mon Sep 17 00:00:00 2001 From: hchen9 Date: Mon, 28 Sep 2020 17:05:22 -0700 Subject: [PATCH 005/425] improve change --- src/Interpreters/InterpreterSelectQuery.cpp | 2 ++ src/Interpreters/TreeRewriter.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Interpreters/InterpreterSelectQuery.cpp b/src/Interpreters/InterpreterSelectQuery.cpp index 887f4795bcb..8c0643f78d7 100644 --- a/src/Interpreters/InterpreterSelectQuery.cpp +++ b/src/Interpreters/InterpreterSelectQuery.cpp @@ -1112,12 +1112,14 @@ void InterpreterSelectQuery::executeFetchColumns( /// Optimization for trivial query like SELECT count() FROM table. bool optimize_trivial_count = syntax_analyzer_result->optimize_trivial_count + && settings.select_sequential_consistency && storage && !filter_info && processing_stage == QueryProcessingStage::FetchColumns && query_analyzer->hasAggregation() && (query_analyzer->aggregates().size() == 1) && typeid_cast(query_analyzer->aggregates()[0].function.get()); + if (optimize_trivial_count) { diff --git a/src/Interpreters/TreeRewriter.cpp b/src/Interpreters/TreeRewriter.cpp index b119788b083..0b2f8ac3eb7 100644 --- a/src/Interpreters/TreeRewriter.cpp +++ b/src/Interpreters/TreeRewriter.cpp @@ -619,7 +619,7 @@ TreeRewriterResultPtr TreeRewriter::analyzeSelect( result.ast_join = select_query->join(); if (result.optimize_trivial_count) - result.optimize_trivial_count = settings.optimize_trivial_count_query && settings.select_sequential_consistency && + result.optimize_trivial_count = settings.optimize_trivial_count_query && !select_query->where() && !select_query->prewhere() && !select_query->groupBy() && !select_query->having() && !select_query->sampleSize() && !select_query->sampleOffset() && !select_query->final() && (tables_with_columns.size() < 2 || isLeft(result.analyzed_join->kind())); From a5ac39b564745c6a1a652e933de62ab4317ac3e5 Mon Sep 17 00:00:00 2001 From: hchen9 Date: Wed, 30 Sep 2020 16:47:42 -0700 Subject: [PATCH 006/425] Pass Context parameter for IStorage.totalRows and IStorage.totalBytes --- src/Interpreters/InterpreterSelectQuery.cpp | 2 +- src/Storages/IStorage.h | 4 ++-- src/Storages/StorageBuffer.cpp | 6 +++--- src/Storages/StorageBuffer.h | 4 ++-- src/Storages/StorageMemory.cpp | 4 ++-- src/Storages/StorageMemory.h | 4 ++-- src/Storages/StorageMergeTree.cpp | 4 ++-- src/Storages/StorageMergeTree.h | 4 ++-- src/Storages/StorageNull.h | 4 ++-- src/Storages/System/StorageSystemTables.cpp | 4 ++-- 10 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/Interpreters/InterpreterSelectQuery.cpp b/src/Interpreters/InterpreterSelectQuery.cpp index 8c0643f78d7..96844223b1c 100644 --- a/src/Interpreters/InterpreterSelectQuery.cpp +++ b/src/Interpreters/InterpreterSelectQuery.cpp @@ -1125,7 +1125,7 @@ void InterpreterSelectQuery::executeFetchColumns( { const auto & desc = query_analyzer->aggregates()[0]; const auto & func = desc.function; - std::optional num_rows = storage->totalRows(); + std::optional num_rows = storage->totalRows(context); if (num_rows) { AggregateFunctionCount & agg_count = static_cast(*func); diff --git a/src/Storages/IStorage.h b/src/Storages/IStorage.h index dc7c684d5b4..7ddab4fa8a4 100644 --- a/src/Storages/IStorage.h +++ b/src/Storages/IStorage.h @@ -455,7 +455,7 @@ public: /// - For total_rows column in system.tables /// /// Does takes underlying Storage (if any) into account. - virtual std::optional totalRows() const { return {}; } + virtual std::optional totalRows(const Context &) const { return {}; } /// If it is possible to quickly determine exact number of bytes for the table on storage: /// - memory (approximated, resident) @@ -470,7 +470,7 @@ public: /// Memory part should be estimated as a resident memory size. /// In particular, alloctedBytes() is preferable over bytes() /// when considering in-memory blocks. - virtual std::optional totalBytes() const { return {}; } + virtual std::optional totalBytes(const Context &) const { return {}; } /// Number of rows INSERTed since server start. /// diff --git a/src/Storages/StorageBuffer.cpp b/src/Storages/StorageBuffer.cpp index 5b9957f4ed4..720ca90327d 100644 --- a/src/Storages/StorageBuffer.cpp +++ b/src/Storages/StorageBuffer.cpp @@ -793,13 +793,13 @@ void StorageBuffer::checkAlterIsPossible(const AlterCommands & commands, const S } } -std::optional StorageBuffer::totalRows() const +std::optional StorageBuffer::totalRows(const Context & context) const { std::optional underlying_rows; auto underlying = DatabaseCatalog::instance().tryGetTable(destination_id, global_context); if (underlying) - underlying_rows = underlying->totalRows(); + underlying_rows = underlying->totalRows(context); if (!underlying_rows) return underlying_rows; @@ -812,7 +812,7 @@ std::optional StorageBuffer::totalRows() const return rows + *underlying_rows; } -std::optional StorageBuffer::totalBytes() const +std::optional StorageBuffer::totalBytes(const Context & /*context*/) const { UInt64 bytes = 0; for (const auto & buffer : buffers) diff --git a/src/Storages/StorageBuffer.h b/src/Storages/StorageBuffer.h index 8f1354399ef..593e394fb46 100644 --- a/src/Storages/StorageBuffer.h +++ b/src/Storages/StorageBuffer.h @@ -94,8 +94,8 @@ public: /// The structure of the subordinate table is not checked and does not change. void alter(const AlterCommands & params, const Context & context, TableLockHolder & table_lock_holder) override; - std::optional totalRows() const override; - std::optional totalBytes() const override; + std::optional totalRows(const Context & context) const override; + std::optional totalBytes(const Context & context) const override; std::optional lifetimeRows() const override { return writes.rows; } std::optional lifetimeBytes() const override { return writes.bytes; } diff --git a/src/Storages/StorageMemory.cpp b/src/Storages/StorageMemory.cpp index 25e232dc4ad..0be49ee7bd3 100644 --- a/src/Storages/StorageMemory.cpp +++ b/src/Storages/StorageMemory.cpp @@ -210,7 +210,7 @@ void StorageMemory::truncate( data.clear(); } -std::optional StorageMemory::totalRows() const +std::optional StorageMemory::totalRows(const Context &) const { UInt64 rows = 0; std::lock_guard lock(mutex); @@ -219,7 +219,7 @@ std::optional StorageMemory::totalRows() const return rows; } -std::optional StorageMemory::totalBytes() const +std::optional StorageMemory::totalBytes(const Context &) const { UInt64 bytes = 0; std::lock_guard lock(mutex); diff --git a/src/Storages/StorageMemory.h b/src/Storages/StorageMemory.h index e67e3015028..586be298808 100644 --- a/src/Storages/StorageMemory.h +++ b/src/Storages/StorageMemory.h @@ -45,8 +45,8 @@ public: void truncate(const ASTPtr &, const StorageMetadataPtr &, const Context &, TableExclusiveLockHolder &) override; - std::optional totalRows() const override; - std::optional totalBytes() const override; + std::optional totalRows(const Context &) const override; + std::optional totalBytes(const Context &) const override; /** Delays initialization of StorageMemory::read() until the first read is actually happen. * Usually, fore code like this: diff --git a/src/Storages/StorageMergeTree.cpp b/src/Storages/StorageMergeTree.cpp index 347474753dc..fc907edb43e 100644 --- a/src/Storages/StorageMergeTree.cpp +++ b/src/Storages/StorageMergeTree.cpp @@ -184,12 +184,12 @@ Pipe StorageMergeTree::read( context, max_block_size, num_streams); } -std::optional StorageMergeTree::totalRows() const +std::optional StorageMergeTree::totalRows(const Context &) const { return getTotalActiveSizeInRows(); } -std::optional StorageMergeTree::totalBytes() const +std::optional StorageMergeTree::totalBytes(const Context &) const { return getTotalActiveSizeInBytes(); } diff --git a/src/Storages/StorageMergeTree.h b/src/Storages/StorageMergeTree.h index 5662f9e0088..162321668a2 100644 --- a/src/Storages/StorageMergeTree.h +++ b/src/Storages/StorageMergeTree.h @@ -46,8 +46,8 @@ public: size_t max_block_size, unsigned num_streams) override; - std::optional totalRows() const override; - std::optional totalBytes() const override; + std::optional totalRows(const Context &) const override; + std::optional totalBytes(const Context &) const override; BlockOutputStreamPtr write(const ASTPtr & query, const StorageMetadataPtr & /*metadata_snapshot*/, const Context & context) override; diff --git a/src/Storages/StorageNull.h b/src/Storages/StorageNull.h index b5387c6b924..db2d169b7dd 100644 --- a/src/Storages/StorageNull.h +++ b/src/Storages/StorageNull.h @@ -46,11 +46,11 @@ public: void alter(const AlterCommands & params, const Context & context, TableLockHolder & table_lock_holder) override; - std::optional totalRows() const override + std::optional totalRows(const Context &) const override { return {0}; } - std::optional totalBytes() const override + std::optional totalBytes(const Context &) const override { return {0}; } diff --git a/src/Storages/System/StorageSystemTables.cpp b/src/Storages/System/StorageSystemTables.cpp index 0ad961ad7d8..dabf4685b29 100644 --- a/src/Storages/System/StorageSystemTables.cpp +++ b/src/Storages/System/StorageSystemTables.cpp @@ -430,7 +430,7 @@ protected: if (columns_mask[src_index++]) { assert(table != nullptr); - auto total_rows = table->totalRows(); + auto total_rows = table->totalRows(context); if (total_rows) res_columns[res_index++]->insert(*total_rows); else @@ -440,7 +440,7 @@ protected: if (columns_mask[src_index++]) { assert(table != nullptr); - auto total_bytes = table->totalBytes(); + auto total_bytes = table->totalBytes(context); if (total_bytes) res_columns[res_index++]->insert(*total_bytes); else From b4494578d77add388528ee786c37ddb7276ae12e Mon Sep 17 00:00:00 2001 From: hchen9 Date: Wed, 30 Sep 2020 16:50:58 -0700 Subject: [PATCH 007/425] Support select_sequential_consistency in StorageReplicatedMergeTree.totalRows and totalBytes --- src/Interpreters/InterpreterSelectQuery.cpp | 2 -- src/Storages/StorageReplicatedMergeTree.cpp | 28 ++++++++++++++------- src/Storages/StorageReplicatedMergeTree.h | 6 ++--- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/Interpreters/InterpreterSelectQuery.cpp b/src/Interpreters/InterpreterSelectQuery.cpp index 96844223b1c..e179d9325fb 100644 --- a/src/Interpreters/InterpreterSelectQuery.cpp +++ b/src/Interpreters/InterpreterSelectQuery.cpp @@ -1112,14 +1112,12 @@ void InterpreterSelectQuery::executeFetchColumns( /// Optimization for trivial query like SELECT count() FROM table. bool optimize_trivial_count = syntax_analyzer_result->optimize_trivial_count - && settings.select_sequential_consistency && storage && !filter_info && processing_stage == QueryProcessingStage::FetchColumns && query_analyzer->hasAggregation() && (query_analyzer->aggregates().size() == 1) && typeid_cast(query_analyzer->aggregates()[0].function.get()); - if (optimize_trivial_count) { diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 608d983a21e..0fca98ff987 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -3518,34 +3518,44 @@ Pipe StorageReplicatedMergeTree::read( template -void StorageReplicatedMergeTree::foreachCommittedParts(const Func & func) const +void StorageReplicatedMergeTree::foreachCommittedParts(const Func & func, const Context & context) const { - auto max_added_blocks = getMaxAddedBlocks(); + std::optional max_added_blocks = {}; + + /** Synchronously go to ZooKeeper when select_sequential_consistency enabled */ + if (context.getSettingsRef().select_sequential_consistency) + { + max_added_blocks = getMaxAddedBlocks(); + } + auto lock = lockParts(); for (const auto & part : getDataPartsStateRange(DataPartState::Committed)) { if (part->isEmpty()) continue; - auto blocks_iterator = max_added_blocks.find(part->info.partition_id); - if (blocks_iterator == max_added_blocks.end() || part->info.max_block > blocks_iterator->second) - continue; + if (max_added_blocks) + { + auto blocks_iterator = max_added_blocks->find(part->info.partition_id); + if (blocks_iterator == max_added_blocks->end() || part->info.max_block > blocks_iterator->second) + continue; + } func(part); } } -std::optional StorageReplicatedMergeTree::totalRows() const +std::optional StorageReplicatedMergeTree::totalRows(const Context & context) const { UInt64 res = 0; - foreachCommittedParts([&res](auto & part) { res += part->rows_count; }); + foreachCommittedParts([&res](auto & part) { res += part->rows_count; }, context); return res; } -std::optional StorageReplicatedMergeTree::totalBytes() const +std::optional StorageReplicatedMergeTree::totalBytes(const Context & context) const { UInt64 res = 0; - foreachCommittedParts([&res](auto & part) { res += part->getBytesOnDisk(); }); + foreachCommittedParts([&res](auto & part) { res += part->getBytesOnDisk(); }, context); return res; } diff --git a/src/Storages/StorageReplicatedMergeTree.h b/src/Storages/StorageReplicatedMergeTree.h index 2bc9265331d..fd8ddf7c441 100644 --- a/src/Storages/StorageReplicatedMergeTree.h +++ b/src/Storages/StorageReplicatedMergeTree.h @@ -96,8 +96,8 @@ public: size_t max_block_size, unsigned num_streams) override; - std::optional totalRows() const override; - std::optional totalBytes() const override; + std::optional totalRows(const Context & context) const override; + std::optional totalBytes(const Context & context) const override; BlockOutputStreamPtr write(const ASTPtr & query, const StorageMetadataPtr & /*metadata_snapshot*/, const Context & context) override; @@ -305,7 +305,7 @@ private: bool other_replicas_fixed_granularity = false; template - void foreachCommittedParts(const Func & func) const; + void foreachCommittedParts(const Func & func, const Context & context) const; /** Creates the minimum set of nodes in ZooKeeper and create first replica. * Returns true if was created, false if exists. From 68888408da6e44715cc257ce31e6cbe3f6a3b93e Mon Sep 17 00:00:00 2001 From: hchen9 Date: Thu, 1 Oct 2020 21:23:41 -0700 Subject: [PATCH 008/425] Pass context ptr to ref --- src/Interpreters/InterpreterSelectQuery.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Interpreters/InterpreterSelectQuery.cpp b/src/Interpreters/InterpreterSelectQuery.cpp index 0924fa2bdde..7b9c7856bd8 100644 --- a/src/Interpreters/InterpreterSelectQuery.cpp +++ b/src/Interpreters/InterpreterSelectQuery.cpp @@ -1121,7 +1121,7 @@ void InterpreterSelectQuery::executeFetchColumns( { const auto & desc = query_analyzer->aggregates()[0]; const auto & func = desc.function; - std::optional num_rows = storage->totalRows(context); + std::optional num_rows = storage->totalRows(*context); if (num_rows) { AggregateFunctionCount & agg_count = static_cast(*func); From 279c6878392386f3225987c6c9bcf4fc1aec6e42 Mon Sep 17 00:00:00 2001 From: hchen9 Date: Fri, 2 Oct 2020 10:31:47 -0700 Subject: [PATCH 009/425] Add test case for trivial_count with select_sequential_consistency = 0 --- ...hout_select_sequence_consistency.reference | 3 ++ ...nt_without_select_sequence_consistency.sql | 36 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 tests/queries/0_stateless/01513_select_count_without_select_sequence_consistency.reference create mode 100644 tests/queries/0_stateless/01513_select_count_without_select_sequence_consistency.sql diff --git a/tests/queries/0_stateless/01513_select_count_without_select_sequence_consistency.reference b/tests/queries/0_stateless/01513_select_count_without_select_sequence_consistency.reference new file mode 100644 index 00000000000..16930b0384a --- /dev/null +++ b/tests/queries/0_stateless/01513_select_count_without_select_sequence_consistency.reference @@ -0,0 +1,3 @@ +3 +4 +4 \ No newline at end of file diff --git a/tests/queries/0_stateless/01513_select_count_without_select_sequence_consistency.sql b/tests/queries/0_stateless/01513_select_count_without_select_sequence_consistency.sql new file mode 100644 index 00000000000..69c45905655 --- /dev/null +++ b/tests/queries/0_stateless/01513_select_count_without_select_sequence_consistency.sql @@ -0,0 +1,36 @@ +SET send_logs_level = 'fatal'; + +DROP TABLE IF EXISTS quorum1; +DROP TABLE IF EXISTS quorum2; +DROP TABLE IF EXISTS quorum3; + +CREATE TABLE quorum1(x UInt32, y Date) ENGINE ReplicatedMergeTree('/clickhouse/tables/test_01513/sequence_consistency', '1') ORDER BY x PARTITION BY y; +CREATE TABLE quorum2(x UInt32, y Date) ENGINE ReplicatedMergeTree('/clickhouse/tables/test_01513/sequence_consistency', '2') ORDER BY x PARTITION BY y; +CREATE TABLE quorum3(x UInt32, y Date) ENGINE ReplicatedMergeTree('/clickhouse/tables/test_01513/sequence_consistency', '3') ORDER BY x PARTITION BY y; + +INSERT INTO quorum1 VALUES (1, '1990-11-15'); +INSERT INTO quorum1 VALUES (2, '1990-11-15'); +INSERT INTO quorum1 VALUES (3, '2020-12-16'); + +SYSTEM SYNC REPLICA quorum2; +SYSTEM SYNC REPLICA quorum3; + +SET select_sequential_consistency=0; +SET optimize_trivial_count_query=1; +SET insert_quorum=2; + +SYSTEM STOP FETCHES quorum1; + +INSERT INTO quorum2 VALUES (4, toDate('2020-12-16')); + +SYSTEM SYNC REPLICA quorum3; + +-- Should read local committed parts without throwing error code: 289. DB::Exception: Replica doesn't have part 20201216_1_1_0 which was successfully written to quorum of other replicas. +SELECT count() FROM quorum1; + +SELECT count() FROM quorum2; +SELECT count() FROM quorum3; + +DROP TABLE quorum1; +DROP TABLE quorum2; +DROP TABLE quorum3; From 572e3f6da4923d05e3fed9ef1f3fd1d10a33e057 Mon Sep 17 00:00:00 2001 From: hchen9 Date: Fri, 2 Oct 2020 10:36:47 -0700 Subject: [PATCH 010/425] Rename test files --- ... => 01513_count_without_select_sequence_consistency.reference} | 0 ...cy.sql => 01513_count_without_select_sequence_consistency.sql} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename tests/queries/0_stateless/{01513_select_count_without_select_sequence_consistency.reference => 01513_count_without_select_sequence_consistency.reference} (100%) rename tests/queries/0_stateless/{01513_select_count_without_select_sequence_consistency.sql => 01513_count_without_select_sequence_consistency.sql} (100%) diff --git a/tests/queries/0_stateless/01513_select_count_without_select_sequence_consistency.reference b/tests/queries/0_stateless/01513_count_without_select_sequence_consistency.reference similarity index 100% rename from tests/queries/0_stateless/01513_select_count_without_select_sequence_consistency.reference rename to tests/queries/0_stateless/01513_count_without_select_sequence_consistency.reference diff --git a/tests/queries/0_stateless/01513_select_count_without_select_sequence_consistency.sql b/tests/queries/0_stateless/01513_count_without_select_sequence_consistency.sql similarity index 100% rename from tests/queries/0_stateless/01513_select_count_without_select_sequence_consistency.sql rename to tests/queries/0_stateless/01513_count_without_select_sequence_consistency.sql From cc2cb76295bf490387a1f8231f60b5a03c8e1d38 Mon Sep 17 00:00:00 2001 From: hchen9 Date: Fri, 2 Oct 2020 11:17:28 -0700 Subject: [PATCH 011/425] Add newline in result reference --- .../01513_count_without_select_sequence_consistency.reference | 2 +- .../01513_count_without_select_sequence_consistency.sql | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/queries/0_stateless/01513_count_without_select_sequence_consistency.reference b/tests/queries/0_stateless/01513_count_without_select_sequence_consistency.reference index 16930b0384a..4990ad10152 100644 --- a/tests/queries/0_stateless/01513_count_without_select_sequence_consistency.reference +++ b/tests/queries/0_stateless/01513_count_without_select_sequence_consistency.reference @@ -1,3 +1,3 @@ 3 4 -4 \ No newline at end of file +4 diff --git a/tests/queries/0_stateless/01513_count_without_select_sequence_consistency.sql b/tests/queries/0_stateless/01513_count_without_select_sequence_consistency.sql index 69c45905655..8bf7e6a6931 100644 --- a/tests/queries/0_stateless/01513_count_without_select_sequence_consistency.sql +++ b/tests/queries/0_stateless/01513_count_without_select_sequence_consistency.sql @@ -25,7 +25,7 @@ INSERT INTO quorum2 VALUES (4, toDate('2020-12-16')); SYSTEM SYNC REPLICA quorum3; --- Should read local committed parts without throwing error code: 289. DB::Exception: Replica doesn't have part 20201216_1_1_0 which was successfully written to quorum of other replicas. +-- Should read local committed parts instead of throwing error code: 289. DB::Exception: Replica doesn't have part 20201216_1_1_0 which was successfully written to quorum of other replicas. SELECT count() FROM quorum1; SELECT count() FROM quorum2; From 76182694b0bc836d51a9ec470d0adea3456cc489 Mon Sep 17 00:00:00 2001 From: hchen9 Date: Sat, 3 Oct 2020 14:07:21 -0700 Subject: [PATCH 012/425] Fix integration test case test_reload_zookeeper --- tests/integration/test_reload_zookeeper/configs/users.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/integration/test_reload_zookeeper/configs/users.xml b/tests/integration/test_reload_zookeeper/configs/users.xml index 6061af8e33d..59802e82698 100644 --- a/tests/integration/test_reload_zookeeper/configs/users.xml +++ b/tests/integration/test_reload_zookeeper/configs/users.xml @@ -2,6 +2,8 @@ + 1 + 1 From 347f5c99b1dbe9e087a3251ceaa1bc150dfa0239 Mon Sep 17 00:00:00 2001 From: hchen9 Date: Sat, 3 Oct 2020 14:18:24 -0700 Subject: [PATCH 013/425] Set user_configs = configs/users.xml --- tests/integration/test_reload_zookeeper/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/test_reload_zookeeper/test.py b/tests/integration/test_reload_zookeeper/test.py index 66df5a1a126..ba2c81cfc73 100644 --- a/tests/integration/test_reload_zookeeper/test.py +++ b/tests/integration/test_reload_zookeeper/test.py @@ -8,7 +8,7 @@ from helpers.test_tools import assert_eq_with_retry cluster = ClickHouseCluster(__file__, zookeeper_config_path='configs/zookeeper.xml') -node = cluster.add_instance('node', with_zookeeper=True) +node = cluster.add_instance('node', with_zookeeper=True, user_configs=["configs/users.xml"]) SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) ZK_CONFIG_PATH = os.path.join(SCRIPT_DIR, 'configs/zookeeper.xml') From ea10291758fbf799a590a8bc43adfa0e0d124c17 Mon Sep 17 00:00:00 2001 From: hchen9 Date: Sat, 3 Oct 2020 21:03:46 -0700 Subject: [PATCH 014/425] Reformat code --- tests/integration/test_reload_zookeeper/test.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/integration/test_reload_zookeeper/test.py b/tests/integration/test_reload_zookeeper/test.py index ba2c81cfc73..872510f3f08 100644 --- a/tests/integration/test_reload_zookeeper/test.py +++ b/tests/integration/test_reload_zookeeper/test.py @@ -8,7 +8,8 @@ from helpers.test_tools import assert_eq_with_retry cluster = ClickHouseCluster(__file__, zookeeper_config_path='configs/zookeeper.xml') -node = cluster.add_instance('node', with_zookeeper=True, user_configs=["configs/users.xml"]) +node = cluster.add_instance('node', with_zookeeper=True, + user_configs=["configs/users.xml"]) SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) ZK_CONFIG_PATH = os.path.join(SCRIPT_DIR, 'configs/zookeeper.xml') From b96c1326fc68fee516af78bdd3f8ba82246468b6 Mon Sep 17 00:00:00 2001 From: hchen9 Date: Sun, 4 Oct 2020 00:18:43 -0700 Subject: [PATCH 015/425] Trigger test again --- tests/integration/test_reload_zookeeper/test.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/integration/test_reload_zookeeper/test.py b/tests/integration/test_reload_zookeeper/test.py index 872510f3f08..ba2c81cfc73 100644 --- a/tests/integration/test_reload_zookeeper/test.py +++ b/tests/integration/test_reload_zookeeper/test.py @@ -8,8 +8,7 @@ from helpers.test_tools import assert_eq_with_retry cluster = ClickHouseCluster(__file__, zookeeper_config_path='configs/zookeeper.xml') -node = cluster.add_instance('node', with_zookeeper=True, - user_configs=["configs/users.xml"]) +node = cluster.add_instance('node', with_zookeeper=True, user_configs=["configs/users.xml"]) SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) ZK_CONFIG_PATH = os.path.join(SCRIPT_DIR, 'configs/zookeeper.xml') From cbf3af401d906a3b342f2b8cc54a7508e933d8ea Mon Sep 17 00:00:00 2001 From: hchen9 Date: Sun, 4 Oct 2020 02:42:03 -0700 Subject: [PATCH 016/425] Fix comments --- src/Storages/StorageReplicatedMergeTree.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 35fa7af63eb..095019a25db 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -3543,7 +3543,9 @@ void StorageReplicatedMergeTree::foreachCommittedParts(const Func & func, const { std::optional max_added_blocks = {}; - /** Synchronously go to ZooKeeper when select_sequential_consistency enabled */ + /** + * Synchronously go to ZooKeeper when select_sequential_consistency enabled + */ if (context.getSettingsRef().select_sequential_consistency) { max_added_blocks = getMaxAddedBlocks(); From 6289f44fd4c9e166acbff4f1188e3e1f3313c90e Mon Sep 17 00:00:00 2001 From: feng lv Date: Mon, 5 Oct 2020 00:28:36 +0800 Subject: [PATCH 017/425] multiversion storage for StorageMemory --- src/Storages/StorageMemory.cpp | 60 +++++++++++++++------------------- src/Storages/StorageMemory.h | 9 +++-- 2 files changed, 30 insertions(+), 39 deletions(-) diff --git a/src/Storages/StorageMemory.cpp b/src/Storages/StorageMemory.cpp index 72b8fd78d65..d0a2d23bf2b 100644 --- a/src/Storages/StorageMemory.cpp +++ b/src/Storages/StorageMemory.cpp @@ -28,7 +28,7 @@ public: /// We don't use synchronisation here, because elements in range [first, last] won't be modified. MemorySource( Names column_names_, - BlocksList::iterator first_, + BlocksList::const_iterator first_, size_t num_blocks_, const StorageMemory & storage, const StorageMetadataPtr & metadata_snapshot) @@ -42,11 +42,7 @@ public: /// If called, will initialize the number of blocks at first read. /// It allows to read data which was inserted into memory table AFTER Storage::read was called. /// This hack is needed for global subqueries. - void delayInitialization(BlocksList * data_, std::mutex * mutex_) - { - data = data_; - mutex = mutex_; - } + void delayInitialization(std::shared_ptr data_) { data = data_; } String getName() const override { return "Memory"; } @@ -55,13 +51,11 @@ protected: { if (data) { - std::lock_guard guard(*mutex); current_it = data->begin(); num_blocks = data->size(); is_finished = num_blocks == 0; data = nullptr; - mutex = nullptr; } if (is_finished) @@ -90,13 +84,12 @@ protected: } private: Names column_names; - BlocksList::iterator current_it; + BlocksList::const_iterator current_it; size_t current_block_idx = 0; size_t num_blocks; bool is_finished = false; - BlocksList * data = nullptr; - std::mutex * mutex = nullptr; + std::shared_ptr data = nullptr; }; @@ -115,8 +108,9 @@ public: void write(const Block & block) override { metadata_snapshot->check(block, true); - std::lock_guard lock(storage.mutex); - storage.data.push_back(block); + auto new_data = std::make_unique(*(storage.data.get())); + new_data->push_back(block); + storage.data.set(std::move(new_data)); } private: StorageMemory & storage; @@ -125,7 +119,7 @@ private: StorageMemory::StorageMemory(const StorageID & table_id_, ColumnsDescription columns_description_, ConstraintsDescription constraints_) - : IStorage(table_id_) + : IStorage(table_id_), data(std::make_unique()) { StorageInMemoryMetadata storage_metadata; storage_metadata.setColumns(std::move(columns_description_)); @@ -145,7 +139,7 @@ Pipe StorageMemory::read( { metadata_snapshot->check(column_names, getVirtuals(), getStorageID()); - std::lock_guard lock(mutex); + auto current_data = data.get(); if (delay_read_for_global_subqueries) { @@ -157,19 +151,19 @@ Pipe StorageMemory::read( /// set for IN or hash table for JOIN, which can't be done concurrently. /// Since no other manipulation with data is done, multiple sources shouldn't give any profit. - auto source = std::make_shared(column_names, data.begin(), data.size(), *this, metadata_snapshot); - source->delayInitialization(&data, &mutex); + auto source = std::make_shared(column_names, current_data->begin(), current_data->size(), *this, metadata_snapshot); + source->delayInitialization(current_data); return Pipe(std::move(source)); } - size_t size = data.size(); + size_t size = current_data->size(); if (num_streams > size) num_streams = size; Pipes pipes; - BlocksList::iterator it = data.begin(); + auto it = current_data->begin(); size_t offset = 0; for (size_t stream = 0; stream < num_streams; ++stream) @@ -200,11 +194,10 @@ BlockOutputStreamPtr StorageMemory::write(const ASTPtr & /*query*/, const Storag void StorageMemory::drop() { - std::lock_guard lock(mutex); - data.clear(); + data.set(std::make_unique()); } -static inline void columnUpdate(Block & old_block, const Block & new_block) +static inline void updateBlockData(Block & old_block, const Block & new_block) { for (const auto & it : new_block) { @@ -231,38 +224,37 @@ void StorageMemory::mutate(const MutationCommands & commands, const Context & co } in->readSuffix(); - std::lock_guard lock(mutex); - // all column affected if (interpreter->isAffectingAllColumns()) { - std::swap(data, out); + data.set(std::make_unique(out)); } else { - auto data_it = data.begin(); + auto new_data = std::make_unique(*(data.get())); + auto data_it = new_data->begin(); auto out_it = out.begin(); - while (data_it != data.end() && out_it != out.end()) + while (data_it != new_data->end() && out_it != out.end()) { - columnUpdate(*data_it, *out_it); + updateBlockData(*data_it, *out_it); ++data_it; ++out_it; } + data.set(std::move(new_data)); } } void StorageMemory::truncate( const ASTPtr &, const StorageMetadataPtr &, const Context &, TableExclusiveLockHolder &) { - std::lock_guard lock(mutex); - data.clear(); + data.set(std::make_unique()); } std::optional StorageMemory::totalRows() const { UInt64 rows = 0; - std::lock_guard lock(mutex); - for (const auto & buffer : data) + auto current_data = data.get(); + for (const auto & buffer : *current_data) rows += buffer.rows(); return rows; } @@ -270,8 +262,8 @@ std::optional StorageMemory::totalRows() const std::optional StorageMemory::totalBytes() const { UInt64 bytes = 0; - std::lock_guard lock(mutex); - for (const auto & buffer : data) + auto current_data = data.get(); + for (const auto & buffer : *current_data) bytes += buffer.allocatedBytes(); return bytes; } diff --git a/src/Storages/StorageMemory.h b/src/Storages/StorageMemory.h index f0d5d7aadec..a3cc00a88eb 100644 --- a/src/Storages/StorageMemory.h +++ b/src/Storages/StorageMemory.h @@ -8,6 +8,7 @@ #include #include +#include namespace DB { @@ -26,7 +27,7 @@ friend struct ext::shared_ptr_helper; public: String getName() const override { return "Memory"; } - size_t getSize() const { return data.size(); } + size_t getSize() const { return data.get()->size(); } Pipe read( const Names & column_names, @@ -88,10 +89,8 @@ public: void delayReadForGlobalSubqueries() { delay_read_for_global_subqueries = true; } private: - /// The data itself. `list` - so that when inserted to the end, the existing iterators are not invalidated. - BlocksList data; - - mutable std::mutex mutex; + /// MultiVersion data storage, so that we can copy the list of blocks to readers. + MultiVersion data; bool delay_read_for_global_subqueries = false; From 5400a412db9bdba5fcfce0763090b4b2991075da Mon Sep 17 00:00:00 2001 From: feng lv Date: Mon, 5 Oct 2020 00:36:43 +0800 Subject: [PATCH 018/425] add test --- ...ltiversion_storage_for_storagememory.reference | 10 ++++++++++ ...507_multiversion_storage_for_storagememory.sql | 15 +++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 tests/queries/0_stateless/01507_multiversion_storage_for_storagememory.reference create mode 100644 tests/queries/0_stateless/01507_multiversion_storage_for_storagememory.sql diff --git a/tests/queries/0_stateless/01507_multiversion_storage_for_storagememory.reference b/tests/queries/0_stateless/01507_multiversion_storage_for_storagememory.reference new file mode 100644 index 00000000000..8b1acc12b63 --- /dev/null +++ b/tests/queries/0_stateless/01507_multiversion_storage_for_storagememory.reference @@ -0,0 +1,10 @@ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 diff --git a/tests/queries/0_stateless/01507_multiversion_storage_for_storagememory.sql b/tests/queries/0_stateless/01507_multiversion_storage_for_storagememory.sql new file mode 100644 index 00000000000..fec9105cc6b --- /dev/null +++ b/tests/queries/0_stateless/01507_multiversion_storage_for_storagememory.sql @@ -0,0 +1,15 @@ +DROP TABLE IF EXISTS defaults; +CREATE TABLE defaults +( + n Int32 +)ENGINE = Memory(); + +INSERT INTO defaults SELECT * FROM numbers(10); + +SELECT * FROM defaults; + +TRUNCATE defaults; + +SELECT * FROM defaults; + +DROP TABLE defaults; From 3bcb9b8db5dd4745f0c83940bbe11d21394754c1 Mon Sep 17 00:00:00 2001 From: feng lv Date: Thu, 8 Oct 2020 17:18:56 +0800 Subject: [PATCH 019/425] fix --- src/Storages/StorageMemory.cpp | 2 +- src/Storages/StorageMemory.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Storages/StorageMemory.cpp b/src/Storages/StorageMemory.cpp index 4231e45c74d..ad67696adaa 100644 --- a/src/Storages/StorageMemory.cpp +++ b/src/Storages/StorageMemory.cpp @@ -159,7 +159,7 @@ Pipe StorageMemory::read( metadata_snapshot, /// This hack is needed for global subqueries. /// It allows to set up this Source for read AFTER Storage::read() has been called and just before actual reading - [this](BlocksList::const_iterator & current_it, size_t & num_blocks) { + [this, ¤t_data](BlocksList::const_iterator & current_it, size_t & num_blocks) { std::lock_guard guard(mutex); current_it = current_data->begin(); num_blocks = current_data->size(); diff --git a/src/Storages/StorageMemory.h b/src/Storages/StorageMemory.h index a443d73a459..a1e98dcdedf 100644 --- a/src/Storages/StorageMemory.h +++ b/src/Storages/StorageMemory.h @@ -94,6 +94,8 @@ private: /// MultiVersion data storage, so that we can copy the list of blocks to readers. MultiVersion data; + mutable std::mutex mutex; + bool delay_read_for_global_subqueries = false; std::atomic total_size_bytes = 0; From ff1a3146091ae1ec7c03a7cef4d71e48fde126e2 Mon Sep 17 00:00:00 2001 From: feng lv Date: Thu, 8 Oct 2020 19:15:11 +0800 Subject: [PATCH 020/425] fix --- src/Storages/StorageMemory.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Storages/StorageMemory.cpp b/src/Storages/StorageMemory.cpp index ad67696adaa..46d76fc1f1e 100644 --- a/src/Storages/StorageMemory.cpp +++ b/src/Storages/StorageMemory.cpp @@ -139,8 +139,6 @@ Pipe StorageMemory::read( { metadata_snapshot->check(column_names, getVirtuals(), getStorageID()); - auto current_data = data.get(); - if (delay_read_for_global_subqueries) { /// Note: for global subquery we use single source. @@ -153,19 +151,21 @@ Pipe StorageMemory::read( return Pipe(std::make_shared( column_names, - current_data->end(), + data.get()->end(), 0, *this, metadata_snapshot, /// This hack is needed for global subqueries. /// It allows to set up this Source for read AFTER Storage::read() has been called and just before actual reading - [this, ¤t_data](BlocksList::const_iterator & current_it, size_t & num_blocks) { + [this](BlocksList::const_iterator & current_it, size_t & num_blocks) { std::lock_guard guard(mutex); - current_it = current_data->begin(); - num_blocks = current_data->size(); + current_it = data.get()->begin(); + num_blocks = data.get()->size(); })); } + auto current_data = data.get(); + size_t size = current_data->size(); if (num_streams > size) @@ -205,7 +205,7 @@ BlockOutputStreamPtr StorageMemory::write(const ASTPtr & /*query*/, const Storag void StorageMemory::drop() { std::lock_guard lock(mutex); - data.set(std::make_unique()); + data.set(std::make_unique()); total_size_bytes.store(0, std::memory_order_relaxed); total_size_rows.store(0, std::memory_order_relaxed); } From ae544940ce6284f6c8a0399e15c4cb04ac97bfc8 Mon Sep 17 00:00:00 2001 From: feng lv Date: Thu, 8 Oct 2020 19:16:53 +0800 Subject: [PATCH 021/425] format --- src/Storages/StorageMemory.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Storages/StorageMemory.cpp b/src/Storages/StorageMemory.cpp index 46d76fc1f1e..a20d8370244 100644 --- a/src/Storages/StorageMemory.cpp +++ b/src/Storages/StorageMemory.cpp @@ -157,7 +157,8 @@ Pipe StorageMemory::read( metadata_snapshot, /// This hack is needed for global subqueries. /// It allows to set up this Source for read AFTER Storage::read() has been called and just before actual reading - [this](BlocksList::const_iterator & current_it, size_t & num_blocks) { + [this](BlocksList::const_iterator & current_it, size_t & num_blocks) + { std::lock_guard guard(mutex); current_it = data.get()->begin(); num_blocks = data.get()->size(); From 677787ff0e867a11b5ab312b883fd4162416b04c Mon Sep 17 00:00:00 2001 From: feng lv Date: Thu, 8 Oct 2020 19:27:13 +0800 Subject: [PATCH 022/425] fix fix --- src/Storages/StorageMemory.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/Storages/StorageMemory.cpp b/src/Storages/StorageMemory.cpp index a20d8370244..b6b6cb6285b 100644 --- a/src/Storages/StorageMemory.cpp +++ b/src/Storages/StorageMemory.cpp @@ -22,7 +22,7 @@ namespace ErrorCodes class MemorySource : public SourceWithProgress { - using InitializerFunc = std::function; + using InitializerFunc = std::function &)>; public: /// Blocks are stored in std::list which may be appended in another thread. /// We use pointer to the beginning of the list and its current size. @@ -35,11 +35,13 @@ public: size_t num_blocks_, const StorageMemory & storage, const StorageMetadataPtr & metadata_snapshot, - InitializerFunc initializer_func_ = [](BlocksList::const_iterator &, size_t &) {}) + std::shared_ptr data_, + InitializerFunc initializer_func_ = [](BlocksList::const_iterator &, size_t &, std::shared_ptr &) {}) : SourceWithProgress(metadata_snapshot->getSampleBlockForColumns(column_names_, storage.getVirtuals(), storage.getStorageID())) , column_names(std::move(column_names_)) , current_it(first_) , num_blocks(num_blocks_) + , data(data_) , initializer_func(std::move(initializer_func_)) { } @@ -51,7 +53,7 @@ protected: { if (!postponed_init_done) { - initializer_func(current_it, num_blocks); + initializer_func(current_it, num_blocks, data); postponed_init_done = true; } @@ -78,6 +80,7 @@ private: size_t num_blocks; size_t current_block_idx = 0; + std::shared_ptr data; bool postponed_init_done = false; InitializerFunc initializer_func; }; @@ -155,13 +158,12 @@ Pipe StorageMemory::read( 0, *this, metadata_snapshot, - /// This hack is needed for global subqueries. - /// It allows to set up this Source for read AFTER Storage::read() has been called and just before actual reading - [this](BlocksList::const_iterator & current_it, size_t & num_blocks) + data.get(), + [this](BlocksList::const_iterator & current_it, size_t & num_blocks, std::shared_ptr & current_data) { - std::lock_guard guard(mutex); - current_it = data.get()->begin(); - num_blocks = data.get()->size(); + current_data = data.get(); + current_it = current_data->begin(); + num_blocks = current_data->size(); })); } @@ -184,7 +186,7 @@ Pipe StorageMemory::read( assert(num_blocks > 0); - pipes.emplace_back(std::make_shared(column_names, it, num_blocks, *this, metadata_snapshot)); + pipes.emplace_back(std::make_shared(column_names, it, num_blocks, *this, metadata_snapshot, current_data)); while (offset < next_offset) { From 09862fb1baa54b58f23ca688eb264ec5f6e7db3a Mon Sep 17 00:00:00 2001 From: myrrc Date: Mon, 12 Oct 2020 14:17:35 +0300 Subject: [PATCH 023/425] typo --- tests/clickhouse-test | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/tests/clickhouse-test b/tests/clickhouse-test index 2a9c95eb830..52a1d63737f 100755 --- a/tests/clickhouse-test +++ b/tests/clickhouse-test @@ -112,7 +112,6 @@ def get_db_engine(args): return "" # Will use default engine def run_single_test(args, ext, server_logs_level, client_options, case_file, stdout_file, stderr_file): - # print(client_options) if args.database: @@ -149,10 +148,12 @@ def run_single_test(args, ext, server_logs_level, client_options, case_file, std pattern = "{client} --send_logs_level={logs_level} --testmode --multiquery {options} < " + pattern command = pattern.format(**params) - #print(command) + + print(command) proc = Popen(command, shell=True, env=os.environ) start_time = datetime.now() + while (datetime.now() - start_time).total_seconds() < args.timeout and proc.poll() is None: sleep(0.01) @@ -314,6 +315,7 @@ def run_tests_array(all_tests_with_params): stderr_file = os.path.join(suite_tmp_dir, name) + '.stderr' proc, stdout, stderr, total_time = run_single_test(args, ext, server_logs_level, client_options, case_file, stdout_file, stderr_file) + if proc.returncode is None: try: proc.kill() @@ -344,7 +346,7 @@ def run_tests_array(all_tests_with_params): if stderr: print(stderr.encode('utf-8')) - # Stop on fatal errors like segmentation fault. They are send to client via logs. + # Stop on fatal errors like segmentation fault. They are sent to client via logs. if ' ' in stderr: SERVER_DIED = True @@ -481,7 +483,7 @@ def collect_build_flags(client): elif '-fsanitize=memory' in stdout: result.append(BuildFlags.MEMORY) else: - raise Exception("Cannot get inforamtion about build from server errorcode {}, stderr {}".format(clickhouse_proc.returncode, stderr)) + raise Exception("Cannot get information about build from server errorcode {}, stderr {}".format(clickhouse_proc.returncode, stderr)) clickhouse_proc = Popen(shlex.split(client), stdin=PIPE, stdout=PIPE, stderr=PIPE) (stdout, stderr) = clickhouse_proc.communicate("SELECT value FROM system.build_options WHERE name = 'BUILD_TYPE'") @@ -492,7 +494,7 @@ def collect_build_flags(client): elif 'RelWithDebInfo' in stdout or 'Release' in stdout: result.append(BuildFlags.RELEASE) else: - raise Exception("Cannot get inforamtion about build from server errorcode {}, stderr {}".format(clickhouse_proc.returncode, stderr)) + raise Exception("Cannot get information about build from server errorcode {}, stderr {}".format(clickhouse_proc.returncode, stderr)) clickhouse_proc = Popen(shlex.split(client), stdin=PIPE, stdout=PIPE, stderr=PIPE) (stdout, stderr) = clickhouse_proc.communicate("SELECT value FROM system.build_options WHERE name = 'UNBUNDLED'") @@ -501,7 +503,7 @@ def collect_build_flags(client): if 'ON' in stdout or '1' in stdout: result.append(BuildFlags.UNBUNDLED) else: - raise Exception("Cannot get inforamtion about build from server errorcode {}, stderr {}".format(clickhouse_proc.returncode, stderr)) + raise Exception("Cannot get information about build from server errorcode {}, stderr {}".format(clickhouse_proc.returncode, stderr)) clickhouse_proc = Popen(shlex.split(client), stdin=PIPE, stdout=PIPE, stderr=PIPE) (stdout, stderr) = clickhouse_proc.communicate("SELECT value FROM system.settings WHERE name = 'default_database_engine'") @@ -510,7 +512,7 @@ def collect_build_flags(client): if 'Ordinary' in stdout: result.append(BuildFlags.DATABASE_ORDINARY) else: - raise Exception("Cannot get inforamtion about build from server errorcode {}, stderr {}".format(clickhouse_proc.returncode, stderr)) + raise Exception("Cannot get information about build from server errorcode {}, stderr {}".format(clickhouse_proc.returncode, stderr)) return result @@ -530,8 +532,12 @@ def main(args): return stdout.startswith('1') if not check_server_started(args.client, args.server_check_retries): - raise Exception("clickhouse-server is not responding. Cannot execute 'SELECT 1' query.") + raise Exception( + "Server is not responding. Cannot execute 'SELECT 1' query. \ + Note: if you are using unbundled mode, you also have to specify -c option.") + build_flags = collect_build_flags(args.client) + if args.use_skip_list: tests_to_skip_from_list = collect_tests_to_skip(args.skip_list_path, build_flags) else: @@ -776,8 +782,13 @@ if __name__ == '__main__': parser=ArgumentParser(description='ClickHouse functional tests') parser.add_argument('-q', '--queries', help='Path to queries dir') parser.add_argument('--tmp', help='Path to tmp dir') - parser.add_argument('-b', '--binary', default='clickhouse', help='Path to clickhouse binary or name of binary in PATH') - parser.add_argument('-c', '--client', help='Client program') + + parser.add_argument('-b', '--binary', default='clickhouse', + help='Path to clickhouse (if bundled, clickhouse-server otherwise) binary or name of binary in PATH') + + parser.add_argument('-c', '--client', + help='Path to clickhouse-client (if unbundled, useless otherwise) binary of name of binary in PATH') + parser.add_argument('--extract_from_config', help='extract-from-config program') parser.add_argument('--configclient', help='Client config (if you use not default ports)') parser.add_argument('--configserver', default= '/etc/clickhouse-server/config.xml', help='Preprocessed server config') @@ -851,10 +862,14 @@ if __name__ == '__main__': if args.client is None: if find_binary(args.binary + '-client'): args.client = args.binary + '-client' + + print("Using " + args.client + " as client program (expecting unbundled mode)") elif find_binary(args.binary): args.client = args.binary + ' client' + + print("Using " + args.client + " as client program (expecting bundled mode)") else: - print("No 'clickhouse' binary found in PATH", file=sys.stderr) + print("No 'clickhouse' or 'clickhouse-client' client binary found", file=sys.stderr) parser.print_help() exit(1) From b50397ce38d87e599cf4fc1ede254bd6665242a6 Mon Sep 17 00:00:00 2001 From: myrrc Date: Mon, 12 Oct 2020 15:38:52 +0300 Subject: [PATCH 024/425] added binary modes output in cmakelists --- programs/CMakeLists.txt | 70 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/programs/CMakeLists.txt b/programs/CMakeLists.txt index 3577ee3df31..6096df131b1 100644 --- a/programs/CMakeLists.txt +++ b/programs/CMakeLists.txt @@ -43,13 +43,81 @@ else () ${ENABLE_CLICKHOUSE_ALL}) endif () +message(STATUS "ClickHouse modes:") + +if (NOT ENABLE_CLICKHOUSE_SERVER) + message(WARNING "ClickHouse server mode is not going to be built.") +else() + message(STATUS "Server mode: ON") +endif() + +if (NOT ENABLE_CLICKHOUSE_CLIENT) + message(WARNING "ClickHouse client mode is not going to be built. You won't be able to connect to the server and run + tests") +else() + message(STATUS "Client mode: ON") +endif() + +if (ENABLE_CLICKHOUSE_LOCAL) + message(STATUS "Local mode: ON") +else() + message(STATUS "Local mode: OFF") +endif() + +if (ENABLE_CLICKHOUSE_BENCHMARK) + message(STATUS "Benchmark mode: ON") +else() + message(STATUS "Benchmark mode: OFF") +endif() + +if (ENABLE_CLICKHOUSE_EXTRACT_FROM_CONFIG) + message(STATUS "Extract from config mode: ON") +else() + message(STATUS "Extract from config mode: OFF") +endif() + +if (ENABLE_CLICKHOUSE_COMPRESSOR) + message(STATUS "Compressor mode: ON") +else() + message(STATUS "Compressor mode: OFF") +endif() + +if (ENABLE_CLICKHOUSE_COPIER) + message(STATUS "Copier mode: ON") +else() + message(STATUS "Copier mode: OFF") +endif() + +if (ENABLE_CLICKHOUSE_FORMAT) + message(STATUS "Format mode: ON") +else() + message(STATUS "Format mode: OFF") +endif() + +if (ENABLE_CLICKHOUSE_OBFUSCATOR) + message(STATUS "Obfuscator mode: ON") +else() + message(STATUS "Obfuscator mode: OFF") +endif() + +if (ENABLE_CLICKHOUSE_ODBC_BRIDGE) + message(STATUS "ODBC bridge mode: ON") +else() + message(STATUS "ODBC bridge mode: OFF") +endif() + +if (ENABLE_CLICKHOUSE_INSTALL) + message(STATUS "ClickHouse install: ON") +else() + message(STATUS "ClickHouse install: OFF") +endif() + if(NOT (MAKE_STATIC_LIBRARIES OR SPLIT_SHARED_LIBRARIES)) set(CLICKHOUSE_ONE_SHARED ON) endif() configure_file (config_tools.h.in ${ConfigIncludePath}/config_tools.h) - macro(clickhouse_target_link_split_lib target name) if(NOT CLICKHOUSE_ONE_SHARED) target_link_libraries(${target} PRIVATE clickhouse-${name}-lib) From 53471315ff18871cfba2e7a21bba75fd56781ca9 Mon Sep 17 00:00:00 2001 From: myrrc Date: Mon, 12 Oct 2020 17:42:19 +0300 Subject: [PATCH 025/425] updated docs -- removed the unbundled option for... Default values in Cmake in ClickHouse, as there could be some caveats (e.g. tester not working) --- docs/_includes/cmake_in_clickhouse_header.md | 2 +- .../sql-reference/aggregate-functions/reference/avgweighted.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_includes/cmake_in_clickhouse_header.md b/docs/_includes/cmake_in_clickhouse_header.md index 10776e04c01..7dfda35e34a 100644 --- a/docs/_includes/cmake_in_clickhouse_header.md +++ b/docs/_includes/cmake_in_clickhouse_header.md @@ -13,9 +13,9 @@ cmake .. \ -DENABLE_CLICKHOUSE_SERVER=ON \ -DENABLE_CLICKHOUSE_CLIENT=ON \ -DUSE_STATIC_LIBRARIES=OFF \ - -DCLICKHOUSE_SPLIT_BINARY=ON \ -DSPLIT_SHARED_LIBRARIES=ON \ -DENABLE_LIBRARIES=OFF \ + -DUSE_UNWIND=ON \ -DENABLE_UTILS=OFF \ -DENABLE_TESTS=OFF ``` diff --git a/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md b/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md index 20b7187a744..d0064c3007d 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md +++ b/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md @@ -17,7 +17,7 @@ avgWeighted(x, weight) - `x` — Values. [Integer](../../../sql-reference/data-types/int-uint.md) or [floating-point](../../../sql-reference/data-types/float.md). - `weight` — Weights of the values. [Integer](../../../sql-reference/data-types/int-uint.md) or [floating-point](../../../sql-reference/data-types/float.md). -Type of `x` and `weight` must be the same. +Type of `x` and `weight` may be different. **Returned value** From 8e7e232387fe19bc44ffaf39cb6057d3bb5e2283 Mon Sep 17 00:00:00 2001 From: myrrc Date: Thu, 15 Oct 2020 13:36:00 +0300 Subject: [PATCH 026/425] wip dealing with template magic --- .../reference/avgweighted.md | 17 +++ .../AggregateFunctionAvgWeighted.cpp | 48 ++++---- .../AggregateFunctionAvgWeighted.h | 21 ++-- src/DataTypes/IDataType.h | 107 ++++++++---------- tests/clickhouse-test | 2 +- .../queries/0_stateless/01035_avg_weighted.sh | 17 ++- 6 files changed, 121 insertions(+), 91 deletions(-) diff --git a/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md b/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md index d0064c3007d..8dd2ecf4616 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md +++ b/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md @@ -42,3 +42,20 @@ Result: │ 8 │ └────────────────────────┘ ``` + +**Example** + +Query: + +``` sql +SELECT avgWeighted(x, w) +FROM values('x Int8, w Float64', (4, 1), (1, 0), (10, 2)) +``` + +Result: + +``` text +┌─avgWeighted(x, weight)─┐ +│ 8 │ +└────────────────────────┘ +``` diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp index 10698332a14..95ba80f1cb1 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp @@ -13,26 +13,37 @@ namespace ErrorCodes namespace { - -template -struct AvgWeighted +constexpr bool allowTypes(const DataTypePtr& left, const DataTypePtr& right) { - using FieldType = std::conditional_t< - IsDecimalNumber, - std::conditional_t, - Decimal256, - Decimal128>, - NearestFieldType>; + const WhichDataType l_dt(left), r_dt(right); - using Function = AggregateFunctionAvgWeighted>; + constexpr auto allow = [](WhichDataType t) + { + return t.isInt() || t.isUInt() || t.isFloat() || t.isDecimal(); + }; + + return allow(l_dt) && allow(r_dt); +} + +template struct BiggerType + +template struct LargestType +{ + using Type = bool; }; -template -using AggregateFuncAvgWeighted = typename AvgWeighted::Function; -bool allowTypes(const DataTypePtr& left, const DataTypePtr& right) +template using AvgData = AggregateFunctionAvgData< + typename LargestType::Type, + typename LargestType::Type>; + +template using Function = AggregateFunctionAvgWeighted< + U, V, typename LargestType::Type, AvgData>; + +template +static IAggregateFunction * create(const IDataType & first_type, const IDataType & second_type, TArgs && ... args) { - return (isInteger(left) || isFloat(left)) && (isInteger(right) || isFloat(right)); + } AggregateFunctionPtr createAggregateFunctionAvgWeighted(const std::string & name, const DataTypes & argument_types, const Array & parameters) @@ -40,8 +51,6 @@ AggregateFunctionPtr createAggregateFunctionAvgWeighted(const std::string & name assertNoParameters(name, parameters); assertBinary(name, argument_types); - AggregateFunctionPtr res; - const auto data_type = static_cast(argument_types[0]); const auto data_type_weight = static_cast(argument_types[1]); @@ -52,10 +61,8 @@ AggregateFunctionPtr createAggregateFunctionAvgWeighted(const std::string & name " are non-conforming as arguments for aggregate function " + name, ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); - if (isDecimal(data_type)) - res.reset(createWithDecimalType(*data_type, *data_type, argument_types)); - else - res.reset(createWithNumericType(*data_type, argument_types)); + AggregateFunctionPtr res; + res.reset(create(*data_type, *data_type_weight, argument_types)); if (!res) throw Exception("Illegal type " + data_type->getName() + " of argument for aggregate function " + name, @@ -70,5 +77,4 @@ void registerAggregateFunctionAvgWeighted(AggregateFunctionFactory & factory) { factory.registerFunction("avgWeighted", createAggregateFunctionAvgWeighted, AggregateFunctionFactory::CaseSensitive); } - } diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h index 53a0ae50fb4..7ffdf41cfd9 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h @@ -4,21 +4,28 @@ namespace DB { -template -class AggregateFunctionAvgWeighted final : public AggregateFunctionAvgBase> + +template +class AggregateFunctionAvgWeighted final : + public AggregateFunctionAvgBase> { public: - using AggregateFunctionAvgBase>::AggregateFunctionAvgBase; + using AggregateFunctionAvgBase>::AggregateFunctionAvgBase; + template using ColVecType = std::conditional_t, ColumnDecimal, ColumnVector>; void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const override { - const auto & values = static_cast(*columns[0]); - const auto & weights = static_cast(*columns[1]); + const auto & values = static_cast &>(*columns[0]); + const auto & weights = static_cast &>(*columns[1]); - this->data(place).numerator += static_cast(values.getData()[row_num]) * weights.getData()[row_num]; - this->data(place).denominator += weights.getData()[row_num]; + const auto value = values.getData()[row_num]; + const auto weight = weights.getData()[row_num]; + + this->data(place).numerator += static_cast(value) * weight; + this->data(place).denominator += weight; } String getName() const override { return "avgWeighted"; } diff --git a/src/DataTypes/IDataType.h b/src/DataTypes/IDataType.h index 5e25d47534e..797b05d2ef3 100644 --- a/src/DataTypes/IDataType.h +++ b/src/DataTypes/IDataType.h @@ -466,75 +466,64 @@ struct WhichDataType { TypeIndex idx; - WhichDataType(TypeIndex idx_ = TypeIndex::Nothing) - : idx(idx_) - {} + constexpr WhichDataType(TypeIndex idx_ = TypeIndex::Nothing) : idx(idx_) {} + constexpr WhichDataType(const IDataType & data_type) : idx(data_type.getTypeId()) {} + constexpr WhichDataType(const IDataType * data_type) : idx(data_type->getTypeId()) {} + constexpr WhichDataType(const DataTypePtr & data_type) : idx(data_type->getTypeId()) {} - WhichDataType(const IDataType & data_type) - : idx(data_type.getTypeId()) - {} + constexpr bool isUInt8() const { return idx == TypeIndex::UInt8; } + constexpr bool isUInt16() const { return idx == TypeIndex::UInt16; } + constexpr bool isUInt32() const { return idx == TypeIndex::UInt32; } + constexpr bool isUInt64() const { return idx == TypeIndex::UInt64; } + constexpr bool isUInt128() const { return idx == TypeIndex::UInt128; } + constexpr bool isUInt256() const { return idx == TypeIndex::UInt256; } + constexpr bool isUInt() const { return isUInt8() || isUInt16() || isUInt32() || isUInt64() || isUInt128() || isUInt256(); } + constexpr bool isNativeUInt() const { return isUInt8() || isUInt16() || isUInt32() || isUInt64(); } - WhichDataType(const IDataType * data_type) - : idx(data_type->getTypeId()) - {} + constexpr bool isInt8() const { return idx == TypeIndex::Int8; } + constexpr bool isInt16() const { return idx == TypeIndex::Int16; } + constexpr bool isInt32() const { return idx == TypeIndex::Int32; } + constexpr bool isInt64() const { return idx == TypeIndex::Int64; } + constexpr bool isInt128() const { return idx == TypeIndex::Int128; } + constexpr bool isInt256() const { return idx == TypeIndex::Int256; } + constexpr bool isInt() const { return isInt8() || isInt16() || isInt32() || isInt64() || isInt128() || isInt256(); } + constexpr bool isNativeInt() const { return isInt8() || isInt16() || isInt32() || isInt64(); } - WhichDataType(const DataTypePtr & data_type) - : idx(data_type->getTypeId()) - {} + constexpr bool isDecimal32() const { return idx == TypeIndex::Decimal32; } + constexpr bool isDecimal64() const { return idx == TypeIndex::Decimal64; } + constexpr bool isDecimal128() const { return idx == TypeIndex::Decimal128; } + constexpr bool isDecimal256() const { return idx == TypeIndex::Decimal256; } + constexpr bool isDecimal() const { return isDecimal32() || isDecimal64() || isDecimal128() || isDecimal256(); } - bool isUInt8() const { return idx == TypeIndex::UInt8; } - bool isUInt16() const { return idx == TypeIndex::UInt16; } - bool isUInt32() const { return idx == TypeIndex::UInt32; } - bool isUInt64() const { return idx == TypeIndex::UInt64; } - bool isUInt128() const { return idx == TypeIndex::UInt128; } - bool isUInt256() const { return idx == TypeIndex::UInt256; } - bool isUInt() const { return isUInt8() || isUInt16() || isUInt32() || isUInt64() || isUInt128() || isUInt256(); } - bool isNativeUInt() const { return isUInt8() || isUInt16() || isUInt32() || isUInt64(); } + constexpr bool isFloat32() const { return idx == TypeIndex::Float32; } + constexpr bool isFloat64() const { return idx == TypeIndex::Float64; } + constexpr bool isFloat() const { return isFloat32() || isFloat64(); } - bool isInt8() const { return idx == TypeIndex::Int8; } - bool isInt16() const { return idx == TypeIndex::Int16; } - bool isInt32() const { return idx == TypeIndex::Int32; } - bool isInt64() const { return idx == TypeIndex::Int64; } - bool isInt128() const { return idx == TypeIndex::Int128; } - bool isInt256() const { return idx == TypeIndex::Int256; } - bool isInt() const { return isInt8() || isInt16() || isInt32() || isInt64() || isInt128() || isInt256(); } - bool isNativeInt() const { return isInt8() || isInt16() || isInt32() || isInt64(); } + constexpr bool isEnum8() const { return idx == TypeIndex::Enum8; } + constexpr bool isEnum16() const { return idx == TypeIndex::Enum16; } + constexpr bool isEnum() const { return isEnum8() || isEnum16(); } - bool isDecimal32() const { return idx == TypeIndex::Decimal32; } - bool isDecimal64() const { return idx == TypeIndex::Decimal64; } - bool isDecimal128() const { return idx == TypeIndex::Decimal128; } - bool isDecimal256() const { return idx == TypeIndex::Decimal256; } - bool isDecimal() const { return isDecimal32() || isDecimal64() || isDecimal128() || isDecimal256(); } + constexpr bool isDate() const { return idx == TypeIndex::Date; } + constexpr bool isDateTime() const { return idx == TypeIndex::DateTime; } + constexpr bool isDateTime64() const { return idx == TypeIndex::DateTime64; } + constexpr bool isDateOrDateTime() const { return isDate() || isDateTime() || isDateTime64(); } - bool isFloat32() const { return idx == TypeIndex::Float32; } - bool isFloat64() const { return idx == TypeIndex::Float64; } - bool isFloat() const { return isFloat32() || isFloat64(); } + constexpr bool isString() const { return idx == TypeIndex::String; } + constexpr bool isFixedString() const { return idx == TypeIndex::FixedString; } + constexpr bool isStringOrFixedString() const { return isString() || isFixedString(); } - bool isEnum8() const { return idx == TypeIndex::Enum8; } - bool isEnum16() const { return idx == TypeIndex::Enum16; } - bool isEnum() const { return isEnum8() || isEnum16(); } + constexpr bool isUUID() const { return idx == TypeIndex::UUID; } + constexpr bool isArray() const { return idx == TypeIndex::Array; } + constexpr bool isTuple() const { return idx == TypeIndex::Tuple; } + constexpr bool isSet() const { return idx == TypeIndex::Set; } + constexpr bool isInterval() const { return idx == TypeIndex::Interval; } - bool isDate() const { return idx == TypeIndex::Date; } - bool isDateTime() const { return idx == TypeIndex::DateTime; } - bool isDateTime64() const { return idx == TypeIndex::DateTime64; } - bool isDateOrDateTime() const { return isDate() || isDateTime() || isDateTime64(); } + constexpr bool isNothing() const { return idx == TypeIndex::Nothing; } + constexpr bool isNullable() const { return idx == TypeIndex::Nullable; } + constexpr bool isFunction() const { return idx == TypeIndex::Function; } + constexpr bool isAggregateFunction() const { return idx == TypeIndex::AggregateFunction; } - bool isString() const { return idx == TypeIndex::String; } - bool isFixedString() const { return idx == TypeIndex::FixedString; } - bool isStringOrFixedString() const { return isString() || isFixedString(); } - - bool isUUID() const { return idx == TypeIndex::UUID; } - bool isArray() const { return idx == TypeIndex::Array; } - bool isTuple() const { return idx == TypeIndex::Tuple; } - bool isSet() const { return idx == TypeIndex::Set; } - bool isInterval() const { return idx == TypeIndex::Interval; } - - bool isNothing() const { return idx == TypeIndex::Nothing; } - bool isNullable() const { return idx == TypeIndex::Nullable; } - bool isFunction() const { return idx == TypeIndex::Function; } - bool isAggregateFunction() const { return idx == TypeIndex::AggregateFunction; } - - bool IsBigIntOrDeimal() const { return isInt128() || isInt256() || isUInt256() || isDecimal256(); } + constexpr bool IsBigIntOrDeimal() const { return isInt128() || isInt256() || isUInt256() || isDecimal256(); } }; /// IDataType helpers (alternative for IDataType virtual methods with single point of truth) diff --git a/tests/clickhouse-test b/tests/clickhouse-test index 2e0f6a70dca..3a2f9eee60a 100755 --- a/tests/clickhouse-test +++ b/tests/clickhouse-test @@ -149,7 +149,7 @@ def run_single_test(args, ext, server_logs_level, client_options, case_file, std command = pattern.format(**params) - print(command) + # print(command) proc = Popen(command, shell=True, env=os.environ) start_time = datetime.now() diff --git a/tests/queries/0_stateless/01035_avg_weighted.sh b/tests/queries/0_stateless/01035_avg_weighted.sh index 023ec50db2f..58ea962148b 100755 --- a/tests/queries/0_stateless/01035_avg_weighted.sh +++ b/tests/queries/0_stateless/01035_avg_weighted.sh @@ -3,9 +3,20 @@ CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) . "$CUR_DIR"/../shell_config.sh - ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, weight) FROM (SELECT t.1 AS x, t.2 AS weight FROM (SELECT arrayJoin([(1, 5), (2, 4), (3, 3), (4, 2), (5, 1)]) AS t));" ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, weight) FROM (SELECT t.1 AS x, t.2 AS weight FROM (SELECT arrayJoin([(1, 0), (2, 0), (3, 0), (4, 0), (5, 0)]) AS t));" -echo "$(${CLICKHOUSE_CLIENT} --server_logs_file=/dev/null --query="SELECT avgWeighted(toDecimal64(0, 0), toFloat64(0))" 2>&1)" \ - | grep -c 'Code: 43. DB::Exception: .* DB::Exception:.* Different types .* of arguments for aggregate function avgWeighted' +types=("Int8" "Int16" "Int32" "Int64" "UInt8" "UInt16" "UInt32" "UInt64" "Float32" "Float64") + +for left in "${types[@]}" +do + for right in "${types[@]}" + do + ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, w) FROM values('x ${left}, w ${right}', (4, 1), (1, 0), (10, 2))" + ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, w) FROM values('x ${left}, w ${right}', (4, 1), (1, 0))" + ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, w) FROM values('x ${left}, w ${right}', (4, 0), (1, 0))" + done +done + +echo "$(${CLICKHOUSE_CLIENT} --server_logs_file=/dev/null --query="SELECT avgWeighted(['string'], toFloat64(0))" 2>&1)" \ + | grep -c 'Code: 43. DB::Exception: .* DB::Exception:.* Types .* of arguments are non-conforming as arguments for aggregate function avgWeighted' From 4bb700fc1b0031bf34186b2091265e84a555bff4 Mon Sep 17 00:00:00 2001 From: myrrc Date: Fri, 16 Oct 2020 23:15:38 +0300 Subject: [PATCH 027/425] cleaned up traits for AggregateFunction, added some dev docs --- .../AggregateFunctionAvg.cpp | 22 ++-- src/AggregateFunctions/AggregateFunctionAvg.h | 111 +++++++++++------- .../AggregateFunctionAvgWeighted.cpp | 20 ++-- .../AggregateFunctionAvgWeighted.h | 21 ++-- 4 files changed, 93 insertions(+), 81 deletions(-) diff --git a/src/AggregateFunctions/AggregateFunctionAvg.cpp b/src/AggregateFunctions/AggregateFunctionAvg.cpp index 3764fd67ff5..51d679ac47f 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.cpp +++ b/src/AggregateFunctions/AggregateFunctionAvg.cpp @@ -13,19 +13,16 @@ namespace ErrorCodes namespace { +template +using AvgNumerator = std::conditional_t< + IsDecimalNumber, + std::conditional_t, + Decimal256, + Decimal128>, + NearestFieldType>; template -struct Avg -{ - using FieldType = std::conditional_t, - std::conditional_t, Decimal256, Decimal128>, - NearestFieldType>; - // using FieldType = std::conditional_t, Decimal128, NearestFieldType>; - using Function = AggregateFunctionAvg>; -}; - -template -using AggregateFuncAvg = typename Avg::Function; +using AggregateFuncAvg = AggregateFunctionAvg, UInt64>; AggregateFunctionPtr createAggregateFunctionAvg(const std::string & name, const DataTypes & argument_types, const Array & parameters) { @@ -34,6 +31,7 @@ AggregateFunctionPtr createAggregateFunctionAvg(const std::string & name, const AggregateFunctionPtr res; DataTypePtr data_type = argument_types[0]; + if (isDecimal(data_type)) res.reset(createWithDecimalType(*data_type, *data_type, argument_types)); else @@ -44,12 +42,10 @@ AggregateFunctionPtr createAggregateFunctionAvg(const std::string & name, const ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); return res; } - } void registerAggregateFunctionAvg(AggregateFunctionFactory & factory) { factory.registerFunction("avg", createAggregateFunctionAvg, AggregateFunctionFactory::CaseInsensitive); } - } diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index 944d9cbfaf5..0d58e7e53cc 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -2,73 +2,95 @@ #include #include - #include #include #include - #include namespace DB { -namespace ErrorCodes -{ -} +template +using DecimalOrVectorCol = std::conditional_t, ColumnDecimal, ColumnVector>; -template -struct AggregateFunctionAvgData +/// A type-fixed rational fraction represented by a pair of #Numerator and #Denominator. +template +struct RationalFraction { - using NumeratorType = T; + using NumeratorType = Numerator; using DenominatorType = Denominator; - T numerator{0}; + Numerator numerator{0}; Denominator denominator{0}; - template - ResultT NO_SANITIZE_UNDEFINED result() const + /// Calculate the fraction as a #Result. + template + Result NO_SANITIZE_UNDEFINED result() const { - if constexpr (std::is_floating_point_v) - if constexpr (std::numeric_limits::is_iec559) + if constexpr (std::is_floating_point_v) + if constexpr (std::numeric_limits::is_iec559) { if constexpr (is_big_int_v) - return static_cast(numerator) / static_cast(denominator); + return static_cast(numerator) / static_cast(denominator); else - return static_cast(numerator) / denominator; /// allow division by zero + return static_cast(numerator) / denominator; /// allow division by zero } if (denominator == static_cast(0)) - return static_cast(0); + return static_cast(0); - if constexpr (std::is_same_v) - return static_cast(numerator / static_cast(denominator)); + if constexpr (std::is_same_v) + return static_cast(numerator / static_cast(denominator)); else - return static_cast(numerator / denominator); + return static_cast(numerator / denominator); } }; -/// Calculates arithmetic mean of numbers. -template -class AggregateFunctionAvgBase : public IAggregateFunctionDataHelper +template +struct AvgTraits +{ + using ResultType = Float64; + using ResultDataType = DataTypeNumber; + using ResultVectorType = ColumnVector; +}; + +template +struct AvgTraits>> +{ + using ResultType = T; + using ResultDataType = DataTypeDecimal; + using ResultVectorType = ColumnDecimal; +}; + +/** + * @tparam DesiredResult The type that we want to be used for resulting column. "Desired" as the real type in most cases + * would be not DesiredResult, but Float64. + * @tparam Numerator The type that the initial numerator column would have (needed to cast the input IColumn to + * appropriate type). + * @tparam Denominator The type that the initial denominator column would have. + * + * @tparam Derived When deriving from this class, use the child class name as in CRTP, e.g. + * class Self : Agg. + */ +template +class AggregateFunctionAvgBase : public IAggregateFunctionDataHelper, Derived> { public: - using ResultType = std::conditional_t, T, Float64>; - using ResultDataType = std::conditional_t, DataTypeDecimal, DataTypeNumber>; - using ColVecType = std::conditional_t, ColumnDecimal, ColumnVector>; - using ColVecResult = std::conditional_t, ColumnDecimal, ColumnVector>; + using Base = IAggregateFunctionDataHelper, Derived>; + using Traits = AvgTraits; /// ctor for native types - AggregateFunctionAvgBase(const DataTypes & argument_types_) : IAggregateFunctionDataHelper(argument_types_, {}), scale(0) {} + explicit AggregateFunctionAvgBase(const DataTypes & argument_types_): Base(argument_types_, {}), scale(0) {} /// ctor for Decimals AggregateFunctionAvgBase(const IDataType & data_type, const DataTypes & argument_types_) - : IAggregateFunctionDataHelper(argument_types_, {}), scale(getDecimalScale(data_type)) - { - } + : Base(argument_types_, {}), scale(getDecimalScale(data_type)) {} DataTypePtr getReturnType() const override { - if constexpr (IsDecimalNumber) + using ResultDataType = typename Traits::ResultDataType; + + if constexpr (IsDecimalNumber) return std::make_shared(ResultDataType::maxPrecision(), scale); else return std::make_shared(); @@ -84,7 +106,7 @@ public: { writeBinary(this->data(place).numerator, buf); - if constexpr (std::is_unsigned_v) + if constexpr (std::is_unsigned_v) writeVarUInt(this->data(place).denominator, buf); else /// Floating point denominator type can be used writeBinary(this->data(place).denominator, buf); @@ -94,7 +116,7 @@ public: { readBinary(this->data(place).numerator, buf); - if constexpr (std::is_unsigned_v) + if constexpr (std::is_unsigned_v) readVarUInt(this->data(place).denominator, buf); else /// Floating point denominator type can be used readBinary(this->data(place).denominator, buf); @@ -102,29 +124,32 @@ public: void insertResultInto(AggregateDataPtr place, IColumn & to, Arena *) const override { - auto & column = static_cast(to); - column.getData().push_back(this->data(place).template result()); + using ResultType = typename Traits::ResultType; + using ResultVectorType = typename Traits::ResultVectorType; + + static_cast(to).getData().push_back(this->data(place).template result()); } protected: UInt32 scale; }; -template -class AggregateFunctionAvg final : public AggregateFunctionAvgBase> +template +class AggregateFunctionAvg final : + public AggregateFunctionAvgBase> { public: - using AggregateFunctionAvgBase>::AggregateFunctionAvgBase; + using AggregateFunctionAvgBase>::AggregateFunctionAvgBase; - using ColVecType = std::conditional_t, ColumnDecimal, ColumnVector>; - void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const override + void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const final { - const auto & column = static_cast(*columns[0]); + const auto & column = static_cast &>(*columns[0]); this->data(place).numerator += column.getData()[row_num]; this->data(place).denominator += 1; } - String getName() const override { return "avg"; } + String getName() const final { return "avg"; } }; - } diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp index 95ba80f1cb1..0b62a786c84 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -25,20 +26,14 @@ constexpr bool allowTypes(const DataTypePtr& left, const DataTypePtr& right) return allow(l_dt) && allow(r_dt); } -template struct BiggerType +// TODO signed to unsigned +template struct LargestType { using Type = V; }; -template struct LargestType -{ - using Type = bool; -}; +template +struct LargestType sizeof(V))>> { using Type = typename LargestType::Type; }; - -template using AvgData = AggregateFunctionAvgData< - typename LargestType::Type, - typename LargestType::Type>; - -template using Function = AggregateFunctionAvgWeighted< - U, V, typename LargestType::Type, AvgData>; +template using LargestTypeT = typename LargestType::Type; +template using Function = AggregateFunctionAvgWeighted, U, V>; template static IAggregateFunction * create(const IDataType & first_type, const IDataType & second_type, TArgs && ... args) @@ -70,7 +65,6 @@ AggregateFunctionPtr createAggregateFunctionAvgWeighted(const std::string & name return res; } - } void registerAggregateFunctionAvgWeighted(AggregateFunctionFactory & factory) diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h index 7ffdf41cfd9..0294bc9725b 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h @@ -5,30 +5,27 @@ namespace DB { -template +template class AggregateFunctionAvgWeighted final : - public AggregateFunctionAvgBase> + public AggregateFunctionAvgBase> { public: - using AggregateFunctionAvgBase>::AggregateFunctionAvgBase; - - template - using ColVecType = std::conditional_t, ColumnDecimal, ColumnVector>; + using AggregateFunctionAvgBase>::AggregateFunctionAvgBase; void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const override { - const auto & values = static_cast &>(*columns[0]); - const auto & weights = static_cast &>(*columns[1]); + const auto & values = static_cast &>(*columns[0]); + const auto & weights = static_cast &>(*columns[1]); - const auto value = values.getData()[row_num]; + const Numerator value = static_cast(values.getData()[row_num]); const auto weight = weights.getData()[row_num]; - this->data(place).numerator += static_cast(value) * weight; + this->data(place).numerator += value * weight; this->data(place).denominator += weight; } String getName() const override { return "avgWeighted"; } }; - } From 30d477bc103166ede10e17af3ac42841896e9983 Mon Sep 17 00:00:00 2001 From: myrrc Date: Mon, 19 Oct 2020 18:23:35 +0300 Subject: [PATCH 028/425] added create() function fo avgWeighted --- .../reference/avgweighted.md | 18 +++++-- src/AggregateFunctions/AggregateFunctionAvg.h | 3 -- .../AggregateFunctionAvgWeighted.cpp | 53 ++++++++++++++++--- src/AggregateFunctions/Helpers.h | 1 + .../queries/0_stateless/01035_avg_weighted.sh | 9 ++-- 5 files changed, 65 insertions(+), 19 deletions(-) diff --git a/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md b/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md index 8dd2ecf4616..b4d698abe05 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md +++ b/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md @@ -14,17 +14,25 @@ avgWeighted(x, weight) **Parameters** -- `x` — Values. [Integer](../../../sql-reference/data-types/int-uint.md) or [floating-point](../../../sql-reference/data-types/float.md). -- `weight` — Weights of the values. [Integer](../../../sql-reference/data-types/int-uint.md) or [floating-point](../../../sql-reference/data-types/float.md). +- `x` — Values. +- `weight` — Weights of the values. -Type of `x` and `weight` may be different. +`x` and `weight` must both be +[Integer](../../../sql-reference/data-types/int-uint.md), +[floating-point](../../../sql-reference/data-types/float.md), or +[Decimal](../../../sql-reference/data-types/decimal.md), +but may have different types. **Returned value** -- Weighted mean. - `NaN`. If all the weights are equal to 0. +- Weighted mean otherwise. -Type: [Float64](../../../sql-reference/data-types/float.md). +**Return type** + +- `Decimal` if both types are [Decimal](../../../sql-reference/data-types/decimal.md) (largest type taken). +(depending on the largest type). +- [Float64](../../../sql-reference/data-types/float.md) otherwise. **Example** diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index 0d58e7e53cc..2d5d8a2b236 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -17,9 +17,6 @@ using DecimalOrVectorCol = std::conditional_t, ColumnDecimal< template struct RationalFraction { - using NumeratorType = Numerator; - using DenominatorType = Denominator; - Numerator numerator{0}; Denominator denominator{0}; diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp index 0b62a786c84..74e45c9b19a 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp @@ -26,19 +26,59 @@ constexpr bool allowTypes(const DataTypePtr& left, const DataTypePtr& right) return allow(l_dt) && allow(r_dt); } -// TODO signed to unsigned -template struct LargestType { using Type = V; }; +template using Biggest = std::conditional_t<(sizeof(U) > sizeof(V)), U, V>; template -struct LargestType sizeof(V))>> { using Type = typename LargestType::Type; }; +struct LargestType +{ + using Biggest = Biggest; + static constexpr bool UDecimal = IsDecimalNumber; + static constexpr bool VDecimal = IsDecimalNumber; + + using TypeIfBothDecimal = std::conditional_t, + Decimal256, + Decimal128>; + + using Type = std::conditional_t; +}; template using LargestTypeT = typename LargestType::Type; template using Function = AggregateFunctionAvgWeighted, U, V>; -template + +#define AT_SWITCH(LINE) \ + switch (which.idx) \ + { \ + LINE(Int8); LINE(Int16); LINE(Int32); LINE(Int64); LINE(Int128); LINE(Int256); \ + LINE(UInt8); LINE(UInt16); LINE(UInt32); LINE(UInt64); LINE(UInt128); LINE(UInt256); \ + LINE(Decimal32); LINE(Decimal64); LINE(Decimal128); LINE(Decimal256); \ + LINE(Float32); LINE(Float64); \ + default: return nullptr; \ + } + +template +static IAggregateFunction * create(const IDataType & second_type, TArgs && ... args) +{ + const WhichDataType which(second_type); + +#define LINE(Type) \ + case TypeIndex::Type: return new Function(std::forward(args)...) + AT_SWITCH(LINE) +#undef LINE +} + +// Not using helper functions because there are no templates for binary decimal/numeric function. +template static IAggregateFunction * create(const IDataType & first_type, const IDataType & second_type, TArgs && ... args) { + const WhichDataType which(first_type); +#define LINE(Type) \ + case TypeIndex::Type: return create(second_type, std::forward(args)...) + AT_SWITCH(LINE) +#undef LINE } AggregateFunctionPtr createAggregateFunctionAvgWeighted(const std::string & name, const DataTypes & argument_types, const Array & parameters) @@ -59,10 +99,7 @@ AggregateFunctionPtr createAggregateFunctionAvgWeighted(const std::string & name AggregateFunctionPtr res; res.reset(create(*data_type, *data_type_weight, argument_types)); - if (!res) - throw Exception("Illegal type " + data_type->getName() + " of argument for aggregate function " + name, - ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); - + assert(res); // type checking should be done in allowTypes. return res; } } diff --git a/src/AggregateFunctions/Helpers.h b/src/AggregateFunctions/Helpers.h index 4d68c17eef4..f688dabeab6 100644 --- a/src/AggregateFunctions/Helpers.h +++ b/src/AggregateFunctions/Helpers.h @@ -15,6 +15,7 @@ M(Float32) \ M(Float64) +// No UInt128 here because of the name conflict #define FOR_NUMERIC_TYPES(M) \ M(UInt8) \ M(UInt16) \ diff --git a/tests/queries/0_stateless/01035_avg_weighted.sh b/tests/queries/0_stateless/01035_avg_weighted.sh index 58ea962148b..9b8d0bea14d 100755 --- a/tests/queries/0_stateless/01035_avg_weighted.sh +++ b/tests/queries/0_stateless/01035_avg_weighted.sh @@ -6,15 +6,18 @@ CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, weight) FROM (SELECT t.1 AS x, t.2 AS weight FROM (SELECT arrayJoin([(1, 5), (2, 4), (3, 3), (4, 2), (5, 1)]) AS t));" ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, weight) FROM (SELECT t.1 AS x, t.2 AS weight FROM (SELECT arrayJoin([(1, 0), (2, 0), (3, 0), (4, 0), (5, 0)]) AS t));" -types=("Int8" "Int16" "Int32" "Int64" "UInt8" "UInt16" "UInt32" "UInt64" "Float32" "Float64") +types=("Int8" "Int16" "Int32" "Int64" "Int128" "Int256" + "UInt8" "UInt16" "UInt32" "UInt64" "UInt128" "UInt256" + "Float32" "Float64" + "Decimal32" "Decimal64" "Decimal128" "Decimal256") for left in "${types[@]}" do for right in "${types[@]}" do ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, w) FROM values('x ${left}, w ${right}', (4, 1), (1, 0), (10, 2))" - ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, w) FROM values('x ${left}, w ${right}', (4, 1), (1, 0))" - ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, w) FROM values('x ${left}, w ${right}', (4, 0), (1, 0))" + ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, w) FROM values('x ${left}, w ${right}', (8, 1), (122, 0))" + ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, w) FROM values('x ${left}, w ${right}', (0, 0), (1, 0))" done done From 293d2f06fac5d1daeca5e24b5c0c43910195a307 Mon Sep 17 00:00:00 2001 From: hexiaoting Date: Tue, 20 Oct 2020 15:38:56 +0800 Subject: [PATCH 029/425] Fix: throw error when column transformer use non-exsit column --- src/Parsers/ASTColumnsTransformers.cpp | 9 +++++++++ .../0_stateless/01470_columns_transformers.reference | 6 ------ tests/queries/0_stateless/01470_columns_transformers.sql | 4 ++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/Parsers/ASTColumnsTransformers.cpp b/src/Parsers/ASTColumnsTransformers.cpp index 43d54f07ab8..a204a409926 100644 --- a/src/Parsers/ASTColumnsTransformers.cpp +++ b/src/Parsers/ASTColumnsTransformers.cpp @@ -12,6 +12,7 @@ namespace DB namespace ErrorCodes { extern const int ILLEGAL_TYPE_OF_ARGUMENT; + extern const int NO_SUCH_COLUMN_IN_TABLE; } void IASTColumnsTransformer::transform(const ASTPtr & transformer, ASTs & nodes) @@ -130,6 +131,7 @@ void ASTColumnsReplaceTransformer::transform(ASTs & nodes) const replace_map.emplace(replacement.name, replacement.expr); } + UInt8 replace_column_sucess = 0; for (auto & column : nodes) { if (const auto * id = column->as()) @@ -139,6 +141,7 @@ void ASTColumnsReplaceTransformer::transform(ASTs & nodes) const { column = replace_it->second; column->setAlias(replace_it->first); + ++replace_column_sucess; } } else if (auto * ast_with_alias = dynamic_cast(column.get())) @@ -151,9 +154,15 @@ void ASTColumnsReplaceTransformer::transform(ASTs & nodes) const replaceChildren(new_ast, column, replace_it->first); column = new_ast; column->setAlias(replace_it->first); + ++replace_column_sucess; } } } + + if (replace_column_sucess < replace_map.size()) + throw Exception( + "Expressions in columns transformer REPLACE should use same column name as original column", + ErrorCodes::NO_SUCH_COLUMN_IN_TABLE); } } diff --git a/tests/queries/0_stateless/01470_columns_transformers.reference b/tests/queries/0_stateless/01470_columns_transformers.reference index 2d8a1802289..397499f990f 100644 --- a/tests/queries/0_stateless/01470_columns_transformers.reference +++ b/tests/queries/0_stateless/01470_columns_transformers.reference @@ -8,7 +8,6 @@ 1970-04-11 1970-01-11 1970-11-21 222 18 347 111 11 173.5 -1970-04-11 1970-01-11 1970-11-21 SELECT sum(i), sum(j), @@ -51,11 +50,6 @@ SELECT avg(j + 2 AS j), avg(k) FROM columns_transformers -SELECT - toDate(any(i)), - toDate(any(j)), - toDate(any(k)) -FROM columns_transformers AS a SELECT (i + 1) + 1 AS i, j, diff --git a/tests/queries/0_stateless/01470_columns_transformers.sql b/tests/queries/0_stateless/01470_columns_transformers.sql index f95cee51fb0..755978e82c4 100644 --- a/tests/queries/0_stateless/01470_columns_transformers.sql +++ b/tests/queries/0_stateless/01470_columns_transformers.sql @@ -13,11 +13,12 @@ SELECT columns_transformers.* EXCEPT(j) APPLY(avg) from columns_transformers; -- EXCEPT after APPLY will not match anything SELECT a.* APPLY(toDate) EXCEPT(i, j) APPLY(any) from columns_transformers a; +SELECT * REPLACE(i + 1 AS col) from columns_transformers; -- { serverError 16 } SELECT * REPLACE(i + 1 AS i) APPLY(sum) from columns_transformers; SELECT columns_transformers.* REPLACE(j + 2 AS j, i + 1 AS i) APPLY(avg) from columns_transformers; SELECT columns_transformers.* REPLACE(j + 1 AS j, j + 2 AS j) APPLY(avg) from columns_transformers; -- { serverError 43 } -- REPLACE after APPLY will not match anything -SELECT a.* APPLY(toDate) REPLACE(i + 1 AS i) APPLY(any) from columns_transformers a; +SELECT a.* APPLY(toDate) REPLACE(i + 1 AS i) APPLY(any) from columns_transformers a; -- { serverError 16 } EXPLAIN SYNTAX SELECT * APPLY(sum) from columns_transformers; EXPLAIN SYNTAX SELECT columns_transformers.* APPLY(avg) from columns_transformers; @@ -28,7 +29,6 @@ EXPLAIN SYNTAX SELECT columns_transformers.* EXCEPT(j) APPLY(avg) from columns_t EXPLAIN SYNTAX SELECT a.* APPLY(toDate) EXCEPT(i, j) APPLY(any) from columns_transformers a; EXPLAIN SYNTAX SELECT * REPLACE(i + 1 AS i) APPLY(sum) from columns_transformers; EXPLAIN SYNTAX SELECT columns_transformers.* REPLACE(j + 2 AS j, i + 1 AS i) APPLY(avg) from columns_transformers; -EXPLAIN SYNTAX SELECT a.* APPLY(toDate) REPLACE(i + 1 AS i) APPLY(any) from columns_transformers a; -- Multiple REPLACE in a row EXPLAIN SYNTAX SELECT * REPLACE(i + 1 AS i) REPLACE(i + 1 AS i) from columns_transformers; From 91b1dab75b841035e9b43b20f37205bfa82dc705 Mon Sep 17 00:00:00 2001 From: hexiaoting Date: Wed, 21 Oct 2020 15:54:13 +0800 Subject: [PATCH 030/425] Add EXCEPTSTRICT and REPLACESTRICT column transformers --- src/Parsers/ASTColumnsTransformers.cpp | 52 +++++++++++++++---- src/Parsers/ASTColumnsTransformers.h | 2 + src/Parsers/ExpressionElementParsers.cpp | 28 +++++++++- src/Parsers/ExpressionElementParsers.h | 3 ++ .../01470_columns_transformers.reference | 6 +++ .../01470_columns_transformers.sql | 7 ++- 6 files changed, 85 insertions(+), 13 deletions(-) diff --git a/src/Parsers/ASTColumnsTransformers.cpp b/src/Parsers/ASTColumnsTransformers.cpp index a204a409926..3a9ecba9d3f 100644 --- a/src/Parsers/ASTColumnsTransformers.cpp +++ b/src/Parsers/ASTColumnsTransformers.cpp @@ -46,7 +46,9 @@ void ASTColumnsApplyTransformer::transform(ASTs & nodes) const void ASTColumnsExceptTransformer::formatImpl(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const { - settings.ostr << (settings.hilite ? hilite_keyword : "") << "EXCEPT" << (settings.hilite ? hilite_none : "") << "("; + settings.ostr << (settings.hilite ? hilite_keyword : ""); + settings.ostr << (is_strict ? "EXCEPTSTRICT" : "EXCEPT"); + settings.ostr << (settings.hilite ? hilite_none : "") << "("; for (ASTs::const_iterator it = children.begin(); it != children.end(); ++it) { @@ -62,23 +64,42 @@ void ASTColumnsExceptTransformer::formatImpl(const FormatSettings & settings, Fo void ASTColumnsExceptTransformer::transform(ASTs & nodes) const { + ASTs unexcepted_columns(children); nodes.erase( std::remove_if( nodes.begin(), nodes.end(), - [this](const ASTPtr & node_child) + [&](const ASTPtr & node_child) { if (const auto * id = node_child->as()) { - for (const auto & except_child : children) + for (size_t i = 0; i < children.size(); i++) { - if (except_child->as().name == id->shortName()) + if (children[i]->as().name == id->shortName()) + { + unexcepted_columns.erase(unexcepted_columns.begin() + i); return true; + } } } return false; }), nodes.end()); + + if (is_strict && !unexcepted_columns.empty()) + { + String unexisted_columns; + for (size_t i = 0; i < unexcepted_columns.size(); ++i) + { + if (i > 0) + unexisted_columns += ", "; + unexisted_columns += unexcepted_columns[i]->as().name; + } + + throw Exception( + "Columns transformer EXPCEPTSTRICT process unexist column : " + unexisted_columns, + ErrorCodes::NO_SUCH_COLUMN_IN_TABLE); + } } void ASTColumnsReplaceTransformer::Replacement::formatImpl( @@ -90,7 +111,9 @@ void ASTColumnsReplaceTransformer::Replacement::formatImpl( void ASTColumnsReplaceTransformer::formatImpl(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const { - settings.ostr << (settings.hilite ? hilite_keyword : "") << "REPLACE" << (settings.hilite ? hilite_none : "") << "("; + settings.ostr << (settings.hilite ? hilite_keyword : ""); + settings.ostr << (is_strict ? "REPLACESTRICT" : "REPLACE"); + settings.ostr << (settings.hilite ? hilite_none : "") << "("; for (ASTs::const_iterator it = children.begin(); it != children.end(); ++it) { @@ -131,7 +154,6 @@ void ASTColumnsReplaceTransformer::transform(ASTs & nodes) const replace_map.emplace(replacement.name, replacement.expr); } - UInt8 replace_column_sucess = 0; for (auto & column : nodes) { if (const auto * id = column->as()) @@ -141,7 +163,7 @@ void ASTColumnsReplaceTransformer::transform(ASTs & nodes) const { column = replace_it->second; column->setAlias(replace_it->first); - ++replace_column_sucess; + replace_map.erase(replace_it); } } else if (auto * ast_with_alias = dynamic_cast(column.get())) @@ -154,15 +176,25 @@ void ASTColumnsReplaceTransformer::transform(ASTs & nodes) const replaceChildren(new_ast, column, replace_it->first); column = new_ast; column->setAlias(replace_it->first); - ++replace_column_sucess; + replace_map.erase(replace_it); } } } - if (replace_column_sucess < replace_map.size()) + if (is_strict && !replace_map.empty()) + { + String unexisted_columns = ""; + for (auto it = replace_map.begin(); it != replace_map.end(); ++it) + { + if (unexisted_columns != "") + unexisted_columns += ", "; + unexisted_columns += it->first; + } throw Exception( - "Expressions in columns transformer REPLACE should use same column name as original column", + "Columns transformer REPLACESTRICT process unexist column : " + unexisted_columns, ErrorCodes::NO_SUCH_COLUMN_IN_TABLE); + } + } } diff --git a/src/Parsers/ASTColumnsTransformers.h b/src/Parsers/ASTColumnsTransformers.h index 4b7a933647e..ac9d9958f9a 100644 --- a/src/Parsers/ASTColumnsTransformers.h +++ b/src/Parsers/ASTColumnsTransformers.h @@ -30,6 +30,7 @@ protected: class ASTColumnsExceptTransformer : public IASTColumnsTransformer { public: + bool is_strict = false; String getID(char) const override { return "ColumnsExceptTransformer"; } ASTPtr clone() const override { @@ -66,6 +67,7 @@ public: void formatImpl(const FormatSettings & settings, FormatState &, FormatStateStacked) const override; }; + bool is_strict = false; String getID(char) const override { return "ColumnsReplaceTransformer"; } ASTPtr clone() const override { diff --git a/src/Parsers/ExpressionElementParsers.cpp b/src/Parsers/ExpressionElementParsers.cpp index 1d861c6d78a..047acc170f8 100644 --- a/src/Parsers/ExpressionElementParsers.cpp +++ b/src/Parsers/ExpressionElementParsers.cpp @@ -1236,6 +1236,10 @@ bool ParserColumnsTransformers::parseImpl(Pos & pos, ASTPtr & node, Expected & e ParserKeyword except("EXCEPT"); ParserKeyword replace("REPLACE"); ParserKeyword as("AS"); + ParserKeyword except_strict("EXCEPTSTRICT"); + ParserKeyword replace_strict("REPLACESTRICT"); + bool is_except = false; + bool is_replace = false; if (apply.ignore(pos, expected)) { @@ -1256,7 +1260,26 @@ bool ParserColumnsTransformers::parseImpl(Pos & pos, ASTPtr & node, Expected & e node = std::move(res); return true; } + else if (except_strict.ignore(pos, expected)) + { + is_except = true; + is_strict = true; + } else if (except.ignore(pos, expected)) + { + is_except = true; + } + else if (replace_strict.ignore(pos, expected)) + { + is_replace = true; + is_strict = true; + } + else if (replace.ignore(pos, expected)) + { + is_replace = true; + } + + if (is_except) { if (pos->type != TokenType::OpeningRoundBracket) return false; @@ -1282,11 +1305,13 @@ bool ParserColumnsTransformers::parseImpl(Pos & pos, ASTPtr & node, Expected & e auto res = std::make_shared(); res->children = std::move(identifiers); + res->is_strict = is_strict; node = std::move(res); return true; } - else if (replace.ignore(pos, expected)) + else if (is_replace) { + if (pos->type != TokenType::OpeningRoundBracket) return false; ++pos; @@ -1323,6 +1348,7 @@ bool ParserColumnsTransformers::parseImpl(Pos & pos, ASTPtr & node, Expected & e auto res = std::make_shared(); res->children = std::move(replacements); + res->is_strict = is_strict; node = std::move(res); return true; } diff --git a/src/Parsers/ExpressionElementParsers.h b/src/Parsers/ExpressionElementParsers.h index 702d757761a..c920e4dc339 100644 --- a/src/Parsers/ExpressionElementParsers.h +++ b/src/Parsers/ExpressionElementParsers.h @@ -92,9 +92,12 @@ protected: */ class ParserColumnsTransformers : public IParserBase { +public: + ParserColumnsTransformers(bool is_strict_ = false): is_strict(is_strict_) {} protected: const char * getName() const override { return "COLUMNS transformers"; } bool parseImpl(Pos & pos, ASTPtr & node, Expected & expected) override; + bool is_strict; }; /** A function, for example, f(x, y + 1, g(z)). diff --git a/tests/queries/0_stateless/01470_columns_transformers.reference b/tests/queries/0_stateless/01470_columns_transformers.reference index 397499f990f..2d8a1802289 100644 --- a/tests/queries/0_stateless/01470_columns_transformers.reference +++ b/tests/queries/0_stateless/01470_columns_transformers.reference @@ -8,6 +8,7 @@ 1970-04-11 1970-01-11 1970-11-21 222 18 347 111 11 173.5 +1970-04-11 1970-01-11 1970-11-21 SELECT sum(i), sum(j), @@ -50,6 +51,11 @@ SELECT avg(j + 2 AS j), avg(k) FROM columns_transformers +SELECT + toDate(any(i)), + toDate(any(j)), + toDate(any(k)) +FROM columns_transformers AS a SELECT (i + 1) + 1 AS i, j, diff --git a/tests/queries/0_stateless/01470_columns_transformers.sql b/tests/queries/0_stateless/01470_columns_transformers.sql index 755978e82c4..5aa68f91453 100644 --- a/tests/queries/0_stateless/01470_columns_transformers.sql +++ b/tests/queries/0_stateless/01470_columns_transformers.sql @@ -13,12 +13,14 @@ SELECT columns_transformers.* EXCEPT(j) APPLY(avg) from columns_transformers; -- EXCEPT after APPLY will not match anything SELECT a.* APPLY(toDate) EXCEPT(i, j) APPLY(any) from columns_transformers a; -SELECT * REPLACE(i + 1 AS col) from columns_transformers; -- { serverError 16 } +SELECT * EXCEPTSTRICT(i, j1) from columns_transformers; -- { serverError 16 } +SELECT * REPLACESTRICT(i + 1 AS col) from columns_transformers; -- { serverError 16 } SELECT * REPLACE(i + 1 AS i) APPLY(sum) from columns_transformers; SELECT columns_transformers.* REPLACE(j + 2 AS j, i + 1 AS i) APPLY(avg) from columns_transformers; SELECT columns_transformers.* REPLACE(j + 1 AS j, j + 2 AS j) APPLY(avg) from columns_transformers; -- { serverError 43 } -- REPLACE after APPLY will not match anything -SELECT a.* APPLY(toDate) REPLACE(i + 1 AS i) APPLY(any) from columns_transformers a; -- { serverError 16 } +SELECT a.* APPLY(toDate) REPLACE(i + 1 AS i) APPLY(any) from columns_transformers a; +SELECT a.* APPLY(toDate) REPLACESTRICT(i + 1 AS i) APPLY(any) from columns_transformers a; -- { serverError 16 } EXPLAIN SYNTAX SELECT * APPLY(sum) from columns_transformers; EXPLAIN SYNTAX SELECT columns_transformers.* APPLY(avg) from columns_transformers; @@ -29,6 +31,7 @@ EXPLAIN SYNTAX SELECT columns_transformers.* EXCEPT(j) APPLY(avg) from columns_t EXPLAIN SYNTAX SELECT a.* APPLY(toDate) EXCEPT(i, j) APPLY(any) from columns_transformers a; EXPLAIN SYNTAX SELECT * REPLACE(i + 1 AS i) APPLY(sum) from columns_transformers; EXPLAIN SYNTAX SELECT columns_transformers.* REPLACE(j + 2 AS j, i + 1 AS i) APPLY(avg) from columns_transformers; +EXPLAIN SYNTAX SELECT a.* APPLY(toDate) REPLACE(i + 1 AS i) APPLY(any) from columns_transformers a; -- Multiple REPLACE in a row EXPLAIN SYNTAX SELECT * REPLACE(i + 1 AS i) REPLACE(i + 1 AS i) from columns_transformers; From ad2d2cf10dda2b36915e78c6b5ef93cf3e56fc66 Mon Sep 17 00:00:00 2001 From: hexiaoting Date: Thu, 22 Oct 2020 12:40:50 +0800 Subject: [PATCH 031/425] Modify varaible name and log info --- src/Parsers/ASTColumnsTransformers.cpp | 37 +++++++++---------- src/Parsers/ExpressionElementParsers.cpp | 30 ++++----------- .../01470_columns_transformers.sql | 6 +-- 3 files changed, 27 insertions(+), 46 deletions(-) diff --git a/src/Parsers/ASTColumnsTransformers.cpp b/src/Parsers/ASTColumnsTransformers.cpp index 3a9ecba9d3f..474c3262d78 100644 --- a/src/Parsers/ASTColumnsTransformers.cpp +++ b/src/Parsers/ASTColumnsTransformers.cpp @@ -46,9 +46,7 @@ void ASTColumnsApplyTransformer::transform(ASTs & nodes) const void ASTColumnsExceptTransformer::formatImpl(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const { - settings.ostr << (settings.hilite ? hilite_keyword : ""); - settings.ostr << (is_strict ? "EXCEPTSTRICT" : "EXCEPT"); - settings.ostr << (settings.hilite ? hilite_none : "") << "("; + settings.ostr << (settings.hilite ? hilite_keyword : "") << "EXCEPT" << (is_strict ? " STRICT " : "") << (settings.hilite ? hilite_none : "") << "("; for (ASTs::const_iterator it = children.begin(); it != children.end(); ++it) { @@ -64,7 +62,8 @@ void ASTColumnsExceptTransformer::formatImpl(const FormatSettings & settings, Fo void ASTColumnsExceptTransformer::transform(ASTs & nodes) const { - ASTs unexcepted_columns(children); + ASTs expected_columns(children); + nodes.erase( std::remove_if( nodes.begin(), @@ -73,11 +72,11 @@ void ASTColumnsExceptTransformer::transform(ASTs & nodes) const { if (const auto * id = node_child->as()) { - for (size_t i = 0; i < children.size(); i++) + for (int i = children.size() - 1; i >= 0; --i) { if (children[i]->as().name == id->shortName()) { - unexcepted_columns.erase(unexcepted_columns.begin() + i); + expected_columns.erase(expected_columns.begin() + i); return true; } } @@ -86,18 +85,18 @@ void ASTColumnsExceptTransformer::transform(ASTs & nodes) const }), nodes.end()); - if (is_strict && !unexcepted_columns.empty()) + if (is_strict && !expected_columns.empty()) { - String unexisted_columns; - for (size_t i = 0; i < unexcepted_columns.size(); ++i) + String expected_columns_str; + for (size_t i = 0; i < expected_columns.size(); ++i) { if (i > 0) - unexisted_columns += ", "; - unexisted_columns += unexcepted_columns[i]->as().name; + expected_columns_str += ", "; + expected_columns_str += expected_columns[i]->as().name; } throw Exception( - "Columns transformer EXPCEPTSTRICT process unexist column : " + unexisted_columns, + "Columns transformer EXCEPT expects following column(s) : " + expected_columns_str, ErrorCodes::NO_SUCH_COLUMN_IN_TABLE); } } @@ -111,9 +110,7 @@ void ASTColumnsReplaceTransformer::Replacement::formatImpl( void ASTColumnsReplaceTransformer::formatImpl(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const { - settings.ostr << (settings.hilite ? hilite_keyword : ""); - settings.ostr << (is_strict ? "REPLACESTRICT" : "REPLACE"); - settings.ostr << (settings.hilite ? hilite_none : "") << "("; + settings.ostr << (settings.hilite ? hilite_keyword : "") << "REPLACE" << (is_strict ? " STRICT " : "") << (settings.hilite ? hilite_none : "") << "("; for (ASTs::const_iterator it = children.begin(); it != children.end(); ++it) { @@ -183,15 +180,15 @@ void ASTColumnsReplaceTransformer::transform(ASTs & nodes) const if (is_strict && !replace_map.empty()) { - String unexisted_columns = ""; + String expected_columns = ""; for (auto it = replace_map.begin(); it != replace_map.end(); ++it) { - if (unexisted_columns != "") - unexisted_columns += ", "; - unexisted_columns += it->first; + if (expected_columns != "") + expected_columns += ", "; + expected_columns += it->first; } throw Exception( - "Columns transformer REPLACESTRICT process unexist column : " + unexisted_columns, + "Columns transformer REPLACE expects following column(s) : " + expected_columns, ErrorCodes::NO_SUCH_COLUMN_IN_TABLE); } diff --git a/src/Parsers/ExpressionElementParsers.cpp b/src/Parsers/ExpressionElementParsers.cpp index 047acc170f8..dc8f39ae894 100644 --- a/src/Parsers/ExpressionElementParsers.cpp +++ b/src/Parsers/ExpressionElementParsers.cpp @@ -1236,10 +1236,7 @@ bool ParserColumnsTransformers::parseImpl(Pos & pos, ASTPtr & node, Expected & e ParserKeyword except("EXCEPT"); ParserKeyword replace("REPLACE"); ParserKeyword as("AS"); - ParserKeyword except_strict("EXCEPTSTRICT"); - ParserKeyword replace_strict("REPLACESTRICT"); - bool is_except = false; - bool is_replace = false; + ParserKeyword strict("STRICT"); if (apply.ignore(pos, expected)) { @@ -1260,27 +1257,12 @@ bool ParserColumnsTransformers::parseImpl(Pos & pos, ASTPtr & node, Expected & e node = std::move(res); return true; } - else if (except_strict.ignore(pos, expected)) - { - is_except = true; - is_strict = true; - } else if (except.ignore(pos, expected)) { - is_except = true; - } - else if (replace_strict.ignore(pos, expected)) - { - is_replace = true; - is_strict = true; - } - else if (replace.ignore(pos, expected)) - { - is_replace = true; - } - if (is_except) - { + if (strict.ignore(pos, expected)) + is_strict = true; + if (pos->type != TokenType::OpeningRoundBracket) return false; ++pos; @@ -1309,8 +1291,10 @@ bool ParserColumnsTransformers::parseImpl(Pos & pos, ASTPtr & node, Expected & e node = std::move(res); return true; } - else if (is_replace) + else if (replace.ignore(pos, expected)) { + if (strict.ignore(pos, expected)) + is_strict = true; if (pos->type != TokenType::OpeningRoundBracket) return false; diff --git a/tests/queries/0_stateless/01470_columns_transformers.sql b/tests/queries/0_stateless/01470_columns_transformers.sql index 5aa68f91453..a3d103cd876 100644 --- a/tests/queries/0_stateless/01470_columns_transformers.sql +++ b/tests/queries/0_stateless/01470_columns_transformers.sql @@ -13,14 +13,14 @@ SELECT columns_transformers.* EXCEPT(j) APPLY(avg) from columns_transformers; -- EXCEPT after APPLY will not match anything SELECT a.* APPLY(toDate) EXCEPT(i, j) APPLY(any) from columns_transformers a; -SELECT * EXCEPTSTRICT(i, j1) from columns_transformers; -- { serverError 16 } -SELECT * REPLACESTRICT(i + 1 AS col) from columns_transformers; -- { serverError 16 } +SELECT * EXCEPT STRICT(i, j1) from columns_transformers; -- { serverError 16 } +SELECT * REPLACE STRICT(i + 1 AS col) from columns_transformers; -- { serverError 16 } SELECT * REPLACE(i + 1 AS i) APPLY(sum) from columns_transformers; SELECT columns_transformers.* REPLACE(j + 2 AS j, i + 1 AS i) APPLY(avg) from columns_transformers; SELECT columns_transformers.* REPLACE(j + 1 AS j, j + 2 AS j) APPLY(avg) from columns_transformers; -- { serverError 43 } -- REPLACE after APPLY will not match anything SELECT a.* APPLY(toDate) REPLACE(i + 1 AS i) APPLY(any) from columns_transformers a; -SELECT a.* APPLY(toDate) REPLACESTRICT(i + 1 AS i) APPLY(any) from columns_transformers a; -- { serverError 16 } +SELECT a.* APPLY(toDate) REPLACE STRICT(i + 1 AS i) APPLY(any) from columns_transformers a; -- { serverError 16 } EXPLAIN SYNTAX SELECT * APPLY(sum) from columns_transformers; EXPLAIN SYNTAX SELECT columns_transformers.* APPLY(avg) from columns_transformers; From 3d3b49d009a9613984e865b9535bfa9418e135e4 Mon Sep 17 00:00:00 2001 From: Ivan Lezhankin Date: Thu, 22 Oct 2020 16:44:48 +0300 Subject: [PATCH 032/425] Try to parse DataType arguments as another nested one --- src/Parsers/ParserDataType.cpp | 28 +++++++++++++------ .../01532_tuple_with_name_type.reference | 4 +++ .../01532_tuple_with_name_type.sql | 16 +++++++++++ 3 files changed, 40 insertions(+), 8 deletions(-) create mode 100644 tests/queries/0_stateless/01532_tuple_with_name_type.reference create mode 100644 tests/queries/0_stateless/01532_tuple_with_name_type.sql diff --git a/src/Parsers/ParserDataType.cpp b/src/Parsers/ParserDataType.cpp index a0a4eb97efe..9b10111db06 100644 --- a/src/Parsers/ParserDataType.cpp +++ b/src/Parsers/ParserDataType.cpp @@ -1,10 +1,12 @@ #include -#include -#include + #include #include +#include +#include #include + namespace DB { @@ -78,14 +80,24 @@ bool ParserDataType::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) ++pos; /// Parse optional parameters - ParserList args_parser(std::make_unique(), std::make_unique(TokenType::Comma)); ASTPtr expr_list_args; - if (!args_parser.parse(pos, expr_list_args, expected)) - return false; - if (pos->type != TokenType::ClosingRoundBracket) - return false; - ++pos; + ParserList args_parser_nested(std::make_unique(), std::make_unique(TokenType::Comma), false); + if (args_parser_nested.parse(pos, expr_list_args, expected)) + { + if (pos->type != TokenType::ClosingRoundBracket) + return false; + ++pos; + } + else + { + ParserList args_parser_expr(std::make_unique(), std::make_unique(TokenType::Comma)); + if (!args_parser_expr.parse(pos, expr_list_args, expected)) + return false; + if (pos->type != TokenType::ClosingRoundBracket) + return false; + ++pos; + } function_node->arguments = expr_list_args; function_node->children.push_back(function_node->arguments); diff --git a/tests/queries/0_stateless/01532_tuple_with_name_type.reference b/tests/queries/0_stateless/01532_tuple_with_name_type.reference new file mode 100644 index 00000000000..065734bf705 --- /dev/null +++ b/tests/queries/0_stateless/01532_tuple_with_name_type.reference @@ -0,0 +1,4 @@ +a Tuple(key String, value String) +a Tuple(Tuple(key String, value String)) +a.key Array(String) +a.value Array(String) diff --git a/tests/queries/0_stateless/01532_tuple_with_name_type.sql b/tests/queries/0_stateless/01532_tuple_with_name_type.sql new file mode 100644 index 00000000000..86e0de330a2 --- /dev/null +++ b/tests/queries/0_stateless/01532_tuple_with_name_type.sql @@ -0,0 +1,16 @@ +DROP TABLE IF EXISTS test_01532_1; +DROP TABLE IF EXISTS test_01532_2; +DROP TABLE IF EXISTS test_01532_3; + +CREATE TABLE test_01532_1 (a Tuple(key String, value String)) ENGINE Memory(); +DESCRIBE TABLE test_01532_1; + +CREATE TABLE test_01532_2 (a Tuple(Tuple(key String, value String))) ENGINE Memory(); +DESCRIBE TABLE test_01532_2; + +CREATE TABLE test_01532_3 (a Array(Tuple(key String, value String))) ENGINE Memory(); +DESCRIBE TABLE test_01532_3; + +DROP TABLE test_01532_1; +DROP TABLE test_01532_2; +DROP TABLE test_01532_3; From 338ecb6fe17a5ac69c14577814e133dcc5e8a34b Mon Sep 17 00:00:00 2001 From: myrrc Date: Thu, 22 Oct 2020 17:29:32 +0300 Subject: [PATCH 033/425] possibly added the numerator/denominator determination algorithm in avgWeighted --- .../reference/avgweighted.md | 5 +- src/AggregateFunctions/AggregateFunctionAvg.h | 44 ++----- .../AggregateFunctionAvgWeighted.cpp | 24 +--- .../AggregateFunctionAvgWeighted.h | 108 ++++++++++++++++-- 4 files changed, 109 insertions(+), 72 deletions(-) diff --git a/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md b/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md index b4d698abe05..12ee76354d5 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md +++ b/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md @@ -29,10 +29,7 @@ but may have different types. - Weighted mean otherwise. **Return type** - -- `Decimal` if both types are [Decimal](../../../sql-reference/data-types/decimal.md) (largest type taken). -(depending on the largest type). -- [Float64](../../../sql-reference/data-types/float.md) otherwise. +- [Float64](../../../sql-reference/data-types/float.md). **Example** diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index 2d5d8a2b236..7d5d24ce750 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -43,25 +43,7 @@ struct RationalFraction } }; -template -struct AvgTraits -{ - using ResultType = Float64; - using ResultDataType = DataTypeNumber; - using ResultVectorType = ColumnVector; -}; - -template -struct AvgTraits>> -{ - using ResultType = T; - using ResultDataType = DataTypeDecimal; - using ResultVectorType = ColumnDecimal; -}; - /** - * @tparam DesiredResult The type that we want to be used for resulting column. "Desired" as the real type in most cases - * would be not DesiredResult, but Float64. * @tparam Numerator The type that the initial numerator column would have (needed to cast the input IColumn to * appropriate type). * @tparam Denominator The type that the initial denominator column would have. @@ -69,12 +51,11 @@ struct AvgTraits>> * @tparam Derived When deriving from this class, use the child class name as in CRTP, e.g. * class Self : Agg. */ -template +template class AggregateFunctionAvgBase : public IAggregateFunctionDataHelper, Derived> { public: using Base = IAggregateFunctionDataHelper, Derived>; - using Traits = AvgTraits; /// ctor for native types explicit AggregateFunctionAvgBase(const DataTypes & argument_types_): Base(argument_types_, {}), scale(0) {} @@ -85,12 +66,7 @@ public: DataTypePtr getReturnType() const override { - using ResultDataType = typename Traits::ResultDataType; - - if constexpr (IsDecimalNumber) - return std::make_shared(ResultDataType::maxPrecision(), scale); - else - return std::make_shared(); + return std::make_shared>(); } void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena *) const override @@ -121,28 +97,24 @@ public: void insertResultInto(AggregateDataPtr place, IColumn & to, Arena *) const override { - using ResultType = typename Traits::ResultType; - using ResultVectorType = typename Traits::ResultVectorType; - - static_cast(to).getData().push_back(this->data(place).template result()); + static_cast &>(to).getData().push_back(this->data(place).template result()); } protected: UInt32 scale; }; -template +template class AggregateFunctionAvg final : - public AggregateFunctionAvgBase> + public AggregateFunctionAvgBase> { public: - using AggregateFunctionAvgBase>::AggregateFunctionAvgBase; + using AggregateFunctionAvgBase>::AggregateFunctionAvgBase; void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const final { - const auto & column = static_cast &>(*columns[0]); + const auto & column = static_cast &>(*columns[0]); this->data(place).numerator += column.getData()[row_num]; this->data(place).denominator += 1; } diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp index 74e45c9b19a..5b43aa19a5c 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp @@ -26,28 +26,6 @@ constexpr bool allowTypes(const DataTypePtr& left, const DataTypePtr& right) return allow(l_dt) && allow(r_dt); } -template using Biggest = std::conditional_t<(sizeof(U) > sizeof(V)), U, V>; - -template -struct LargestType -{ - using Biggest = Biggest; - static constexpr bool UDecimal = IsDecimalNumber; - static constexpr bool VDecimal = IsDecimalNumber; - - using TypeIfBothDecimal = std::conditional_t, - Decimal256, - Decimal128>; - - using Type = std::conditional_t; -}; - -template using LargestTypeT = typename LargestType::Type; -template using Function = AggregateFunctionAvgWeighted, U, V>; - - #define AT_SWITCH(LINE) \ switch (which.idx) \ { \ @@ -64,7 +42,7 @@ static IAggregateFunction * create(const IDataType & second_type, TArgs && ... a const WhichDataType which(second_type); #define LINE(Type) \ - case TypeIndex::Type: return new Function(std::forward(args)...) + case TypeIndex::Type: return new AggregateFunctionAvgWeighted(std::forward(args)...) AT_SWITCH(LINE) #undef LINE } diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h index 0294bc9725b..73827ac5a41 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h @@ -1,28 +1,118 @@ #pragma once +#include #include namespace DB { +template struct NextAvgType { using Type = T; }; +template <> struct NextAvgType { using Type = Int16; }; +template <> struct NextAvgType { using Type = Int32; }; +template <> struct NextAvgType { using Type = Int64; }; +template <> struct NextAvgType { using Type = Int128; }; +template <> struct NextAvgType { using Type = Int256; }; +template <> struct NextAvgType { using Type = Int256; }; -template +template <> struct NextAvgType { using Type = UInt16; }; +template <> struct NextAvgType { using Type = UInt32; }; +template <> struct NextAvgType { using Type = UInt64; }; +template <> struct NextAvgType { using Type = UInt128; }; +template <> struct NextAvgType { using Type = UInt256; }; +template <> struct NextAvgType { using Type = UInt256; }; + +template <> struct NextAvgType { using Type = Decimal128; }; +template <> struct NextAvgType { using Type = Decimal128; }; +template <> struct NextAvgType { using Type = Decimal256; }; +template <> struct NextAvgType { using Type = Decimal256; }; + +template <> struct NextAvgType { using Type = Float64; }; +template <> struct NextAvgType { using Type = Float64; }; + +template using NextAvgTypeT = typename NextAvgType::Type; +template using Largest = std::conditional_t<(sizeof(T) > sizeof(U)), T, U>; + +template +struct GetNumDenom +{ + static constexpr bool UDecimal = IsDecimalNumber; + static constexpr bool VDecimal = IsDecimalNumber; + static constexpr bool BothDecimal = UDecimal && VDecimal; + static constexpr bool NoneDecimal = !UDecimal && !VDecimal; + + template + static constexpr bool IsIntegral = std::is_integral_v + || std::is_same_v || std::is_same_v + || std::is_same_v || std::is_same_v; + + static constexpr bool BothOrNoneDecimal = BothDecimal || NoneDecimal; + + using Num = std::conditional>, + + std::conditional_t, + NextAvgTypeT, + Float64>, + /// When the denominator only is Decimal, we check the numerator (as the above case). + std::conditional_t, + NextAvgTypeT, + Float64>>>; + + /** + * When both types are Decimal, we can perform computations in the Decimals only. + * When none of the types is Decimal, the result is always correct, the numerator is the next largest type up to + * Float64. + * We use #V only as the denominator accumulates the sum of the weights. + * + * When the numerator only is Decimal, we set the denominator to next Largest type. + * - If the denominator was floating-point, the numerator would be Float64. + * - If not, the numerator would be Decimal (as the denominator is integral). + * + * When the denominator only is Decimal, the numerator is either integral (so we leave the Decimal), or Float64, + * so we set the denominator to Float64; + */ + using Denom = std::conditional, + Float64, + NextAvgTypeT>; +}; + +template using AvgWeightedNum = typename GetNumDenom::Num; +template using AvgWeightedDenom = typename GetNumDenom::Denom; + +template +using AggFuncAvgWeightedBase = AggregateFunctionAvgBase< + AvgWeightedNum, + AvgWeightedDenom, Derived>; + +/** + * @tparam Values The values column type. + * @tparam Weights The weights column type. + */ +template class AggregateFunctionAvgWeighted final : - public AggregateFunctionAvgBase> + AggFuncAvgWeightedBase> { public: - using AggregateFunctionAvgBase>::AggregateFunctionAvgBase; + using AggFuncAvgWeightedBase> + ::AggFuncAvgWeightedBase; void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const override { - const auto & values = static_cast &>(*columns[0]); - const auto & weights = static_cast &>(*columns[1]); + const auto & values = static_cast &>(*columns[0]); + const auto & weights = static_cast &>(*columns[1]); - const Numerator value = static_cast(values.getData()[row_num]); + const auto value = values.getData()[row_num]; const auto weight = weights.getData()[row_num]; - this->data(place).numerator += value * weight; + using TargetNum = AvgWeightedNum; + + this->data(place).numerator += static_cast(value) * weight; this->data(place).denominator += weight; } From 3d479cdd8cfac510af3862fa3b15570241e85a63 Mon Sep 17 00:00:00 2001 From: myrrc Date: Thu, 22 Oct 2020 18:47:21 +0300 Subject: [PATCH 034/425] added resul type deduction structs --- .../reference/avgweighted.md | 5 +- .../AggregateFunctionAvg.cpp | 15 +- src/AggregateFunctions/AggregateFunctionAvg.h | 83 ++++++-- .../AggregateFunctionAvgWeighted.h | 182 ++++++++++-------- 4 files changed, 176 insertions(+), 109 deletions(-) diff --git a/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md b/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md index 12ee76354d5..a6fb5999fb8 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md +++ b/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md @@ -29,7 +29,10 @@ but may have different types. - Weighted mean otherwise. **Return type** -- [Float64](../../../sql-reference/data-types/float.md). + +- `Decimal` if both types are [Decimal](../../../sql-reference/data-types/decimal.md) + or if one type is Decimal and other is Integer. +- [Float64](../../../sql-reference/data-types/float.md) otherwise. **Example** diff --git a/src/AggregateFunctions/AggregateFunctionAvg.cpp b/src/AggregateFunctions/AggregateFunctionAvg.cpp index 51d679ac47f..cf35e99dafb 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.cpp +++ b/src/AggregateFunctions/AggregateFunctionAvg.cpp @@ -13,17 +13,6 @@ namespace ErrorCodes namespace { -template -using AvgNumerator = std::conditional_t< - IsDecimalNumber, - std::conditional_t, - Decimal256, - Decimal128>, - NearestFieldType>; - -template -using AggregateFuncAvg = AggregateFunctionAvg, UInt64>; - AggregateFunctionPtr createAggregateFunctionAvg(const std::string & name, const DataTypes & argument_types, const Array & parameters) { assertNoParameters(name, parameters); @@ -33,9 +22,9 @@ AggregateFunctionPtr createAggregateFunctionAvg(const std::string & name, const DataTypePtr data_type = argument_types[0]; if (isDecimal(data_type)) - res.reset(createWithDecimalType(*data_type, *data_type, argument_types)); + res.reset(createWithDecimalType(*data_type, *data_type, argument_types)); else - res.reset(createWithNumericType(*data_type, argument_types)); + res.reset(createWithNumericType(*data_type, argument_types)); if (!res) throw Exception("Illegal type " + argument_types[0]->getName() + " of argument for aggregate function " + name, diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index 7d5d24ce750..5dd6cf856ef 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -44,18 +44,57 @@ struct RationalFraction }; /** - * @tparam Numerator The type that the initial numerator column would have (needed to cast the input IColumn to + * Motivation: ClickHouse has added the Decimal data type, which basically represents a fraction that stores + * the precise (unlike floating-point) result with respect to some scale. + * + * These decimal types can't be divided by floating point data types, so functions like avg or avgWeighted + * can't return the Floa64 column as a result when of the input columns is Decimal (because that would, in case of + * avgWeighted, involve division numerator (Decimal) / denominator (Float64)). + * + * The rules for determining the output and intermediate storage types for these functions are different, so + * the struct representing the deduction guide is presented. + * + * Given the initial Columns types (e.g. values and weights for avgWeighted, values for avg), + * the struct calculated the output type and the intermediate storage type (that's used by the RationalFraction). + */ +template +struct AvgFunctionTypesDeductionTemplate +{ + using Numerator = int; + using Denominator = int; + using Fraction = RationalFraction; + + using ResultType = bool; + using ResultDataType = bool; + using ResultVectorType = bool; +}; + +/** + * @tparam InitialNumerator The type that the initial numerator column would have (needed to cast the input IColumn to * appropriate type). - * @tparam Denominator The type that the initial denominator column would have. + * @tparam InitialDenominator The type that the initial denominator column would have. + * + * @tparam Deduction Function template that, given the numerator and the denominator, finds the actual + * suitable storage and the resulting column type. * * @tparam Derived When deriving from this class, use the child class name as in CRTP, e.g. * class Self : Agg. */ -template -class AggregateFunctionAvgBase : public IAggregateFunctionDataHelper, Derived> +template class Deduction, class Derived> +class AggregateFunctionAvgBase : public + IAggregateFunctionDataHelper::Fraction, Derived> { public: - using Base = IAggregateFunctionDataHelper, Derived>; + using Deducted = Deduction; + + using ResultType = typename Deducted::ResultType; + using ResultDataType = typename Deducted::ResultDataType; + using ResultVectorType = typename Deducted::ResultVectorType; + + using Numerator = typename Deducted::Numerator; + using Denominator = typename Deducted::Denominator; + + using Base = IAggregateFunctionDataHelper; /// ctor for native types explicit AggregateFunctionAvgBase(const DataTypes & argument_types_): Base(argument_types_, {}), scale(0) {} @@ -66,7 +105,10 @@ public: DataTypePtr getReturnType() const override { - return std::make_shared>(); + if constexpr (IsDecimalNumber) + return std::make_shared(ResultDataType::maxPrecision(), scale); + else + return std::make_shared(); } void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena *) const override @@ -97,20 +139,39 @@ public: void insertResultInto(AggregateDataPtr place, IColumn & to, Arena *) const override { - static_cast &>(to).getData().push_back(this->data(place).template result()); + static_cast(to).getData().push_back(this->data(place).template result()); } protected: UInt32 scale; }; -template +template +struct AvgFunctionTypesDeduction +{ + using Numerator = std::conditional_t, + std::conditional_t, + Decimal256, + Decimal128>, + NearestFieldType>; + + using Denominator = V; + using Fraction = RationalFraction; + + using ResultType = std::conditional_t, T, Float64>; + using ResultDataType = std::conditional_t, DataTypeDecimal, DataTypeNumber>; + using ResultVectorType = std::conditional_t, ColumnDecimal, ColumnVector>; +}; + +template class AggregateFunctionAvg final : - public AggregateFunctionAvgBase> + public AggregateFunctionAvgBase> { public: - using AggregateFunctionAvgBase>::AggregateFunctionAvgBase; + using Base = + AggregateFunctionAvgBase>; + + using Base::Base; void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const final { diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h index 73827ac5a41..88dd49e6147 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h @@ -5,102 +5,118 @@ namespace DB { -template struct NextAvgType { using Type = T; }; -template <> struct NextAvgType { using Type = Int16; }; -template <> struct NextAvgType { using Type = Int32; }; -template <> struct NextAvgType { using Type = Int64; }; -template <> struct NextAvgType { using Type = Int128; }; -template <> struct NextAvgType { using Type = Int256; }; -template <> struct NextAvgType { using Type = Int256; }; - -template <> struct NextAvgType { using Type = UInt16; }; -template <> struct NextAvgType { using Type = UInt32; }; -template <> struct NextAvgType { using Type = UInt64; }; -template <> struct NextAvgType { using Type = UInt128; }; -template <> struct NextAvgType { using Type = UInt256; }; -template <> struct NextAvgType { using Type = UInt256; }; - -template <> struct NextAvgType { using Type = Decimal128; }; -template <> struct NextAvgType { using Type = Decimal128; }; -template <> struct NextAvgType { using Type = Decimal256; }; -template <> struct NextAvgType { using Type = Decimal256; }; - -template <> struct NextAvgType { using Type = Float64; }; -template <> struct NextAvgType { using Type = Float64; }; - -template using NextAvgTypeT = typename NextAvgType::Type; -template using Largest = std::conditional_t<(sizeof(T) > sizeof(U)), T, U>; - -template -struct GetNumDenom +template +struct AvgWeightedFunctionTypesDeduction { - static constexpr bool UDecimal = IsDecimalNumber; - static constexpr bool VDecimal = IsDecimalNumber; - static constexpr bool BothDecimal = UDecimal && VDecimal; - static constexpr bool NoneDecimal = !UDecimal && !VDecimal; + template struct NextAvgType { using Type = T; }; + template <> struct NextAvgType { using Type = Int16; }; + template <> struct NextAvgType { using Type = Int32; }; + template <> struct NextAvgType { using Type = Int64; }; + template <> struct NextAvgType { using Type = Int128; }; + template <> struct NextAvgType { using Type = Int256; }; + template <> struct NextAvgType { using Type = Int256; }; - template - static constexpr bool IsIntegral = std::is_integral_v - || std::is_same_v || std::is_same_v - || std::is_same_v || std::is_same_v; + template <> struct NextAvgType { using Type = UInt16; }; + template <> struct NextAvgType { using Type = UInt32; }; + template <> struct NextAvgType { using Type = UInt64; }; + template <> struct NextAvgType { using Type = UInt128; }; + template <> struct NextAvgType { using Type = UInt256; }; + template <> struct NextAvgType { using Type = UInt256; }; - static constexpr bool BothOrNoneDecimal = BothDecimal || NoneDecimal; + template <> struct NextAvgType { using Type = Decimal128; }; + template <> struct NextAvgType { using Type = Decimal128; }; + template <> struct NextAvgType { using Type = Decimal256; }; + template <> struct NextAvgType { using Type = Decimal256; }; - using Num = std::conditional>, + template <> struct NextAvgType { using Type = Float64; }; + template <> struct NextAvgType { using Type = Float64; }; - std::conditional_t, - NextAvgTypeT, - Float64>, - /// When the denominator only is Decimal, we check the numerator (as the above case). - std::conditional_t, - NextAvgTypeT, - Float64>>>; + template using NextAvgTypeT = typename NextAvgType::Type; + template using Largest = std::conditional_t<(sizeof(T) > sizeof(U)), T, U>; - /** - * When both types are Decimal, we can perform computations in the Decimals only. - * When none of the types is Decimal, the result is always correct, the numerator is the next largest type up to - * Float64. - * We use #V only as the denominator accumulates the sum of the weights. - * - * When the numerator only is Decimal, we set the denominator to next Largest type. - * - If the denominator was floating-point, the numerator would be Float64. - * - If not, the numerator would be Decimal (as the denominator is integral). - * - * When the denominator only is Decimal, the numerator is either integral (so we leave the Decimal), or Float64, - * so we set the denominator to Float64; - */ - using Denom = std::conditional, - Float64, - NextAvgTypeT>; + struct GetNumDenom + { + using U = Values; + using V = Weights; + static constexpr bool UDecimal = IsDecimalNumber; + static constexpr bool VDecimal = IsDecimalNumber; + static constexpr bool BothDecimal = UDecimal && VDecimal; + static constexpr bool NoneDecimal = !UDecimal && !VDecimal; + + template + static constexpr bool IsIntegral = std::is_integral_v + || std::is_same_v || std::is_same_v + || std::is_same_v || std::is_same_v; + + static constexpr bool BothOrNoneDecimal = BothDecimal || NoneDecimal; + + using Num = std::conditional>, + + std::conditional_t, + NextAvgTypeT, + Float64>, + /// When the denominator only is Decimal, we check the numerator (as the above case). + std::conditional_t, + NextAvgTypeT, + Float64>>>; + + /** + * When both types are Decimal, we can perform computations in the Decimals only. + * When none of the types is Decimal, the result is always correct, the numerator is the next largest type up to + * Float64. + * We use #V only as the denominator accumulates the sum of the weights. + * + * When the numerator only is Decimal, we set the denominator to next Largest type. + * - If the denominator was floating-point, the numerator would be Float64. + * - If not, the numerator would be Decimal (as the denominator is integral). + * + * When the denominator only is Decimal, the numerator is either integral (so we leave the Decimal), or Float64, + * so we set the denominator to Float64; + */ + using Denom = std::conditional, + Float64, + NextAvgTypeT>; + }; + + using Numerator = typename GetNumDenom::Num; + using Denominator = typename GetNumDenom::Denom; + using Fraction = RationalFraction; + + /// If either Numerator or Denominator are Decimal, the result is also Decimal as everything was checked in + /// GetNumDenom. + using T = std::conditional_t && IsDecimalNumber, + Largest, + std::conditional_t, + Numerator, + std::conditional_t, + Denominator, + bool>>>; // both numerator and denominator are non-decimal. + + using ResultType = std::conditional_t, T, Float64>; + using ResultDataType = std::conditional_t, DataTypeDecimal, DataTypeNumber>; + using ResultVectorType = std::conditional_t, ColumnDecimal, ColumnVector>; }; -template using AvgWeightedNum = typename GetNumDenom::Num; -template using AvgWeightedDenom = typename GetNumDenom::Denom; - -template -using AggFuncAvgWeightedBase = AggregateFunctionAvgBase< - AvgWeightedNum, - AvgWeightedDenom, Derived>; - /** * @tparam Values The values column type. * @tparam Weights The weights column type. */ template -class AggregateFunctionAvgWeighted final : - AggFuncAvgWeightedBase> +class AggregateFunctionAvgWeighted final : public AggregateFunctionAvgBase< + Values, Weights, AvgWeightedFunctionTypesDeduction, AggregateFunctionAvgWeighted> { public: - using AggFuncAvgWeightedBase> - ::AggFuncAvgWeightedBase; + using Base = AggregateFunctionAvgBase< + Values, Weights, AvgWeightedFunctionTypesDeduction, AggregateFunctionAvgWeighted>; + using Base::Base; void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const override { @@ -110,9 +126,7 @@ public: const auto value = values.getData()[row_num]; const auto weight = weights.getData()[row_num]; - using TargetNum = AvgWeightedNum; - - this->data(place).numerator += static_cast(value) * weight; + this->data(place).numerator += static_cast(value) * weight; this->data(place).denominator += weight; } From e4f35e27e103171923623f88c4a0430aaad36f43 Mon Sep 17 00:00:00 2001 From: myrrc Date: Thu, 22 Oct 2020 18:53:45 +0300 Subject: [PATCH 035/425] RationalFraction initialization fix --- src/AggregateFunctions/AggregateFunctionAvg.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index 5dd6cf856ef..a35e1a965a9 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -17,8 +17,10 @@ using DecimalOrVectorCol = std::conditional_t, ColumnDecimal< template struct RationalFraction { - Numerator numerator{0}; - Denominator denominator{0}; + /// {0} prohibited as excess elements. + /// = 0 prohibited as there are no suitable constructors. + Numerator numerator = static_cast(0); + Denominator denominator = static_cast(0); /// Calculate the fraction as a #Result. template From 2a589d7c155e291a4381a6d93783cfd0518337a3 Mon Sep 17 00:00:00 2001 From: myrrc Date: Thu, 22 Oct 2020 19:13:18 +0300 Subject: [PATCH 036/425] updated deduction rules to correct integral / Decimal division --- src/AggregateFunctions/AggregateFunctionAvg.h | 8 +++---- .../AggregateFunctionAvgWeighted.h | 22 +++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index a35e1a965a9..0b77aa0c537 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -17,10 +17,10 @@ using DecimalOrVectorCol = std::conditional_t, ColumnDecimal< template struct RationalFraction { - /// {0} prohibited as excess elements. - /// = 0 prohibited as there are no suitable constructors. - Numerator numerator = static_cast(0); - Denominator denominator = static_cast(0); + constexpr RationalFraction(): numerator(0), denominator(0) {} + + Numerator numerator; + Denominator denominator; /// Calculate the fraction as a #Result. template diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h index 88dd49e6147..8c245253710 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h @@ -44,13 +44,14 @@ struct AvgWeightedFunctionTypesDeduction static constexpr bool NoneDecimal = !UDecimal && !VDecimal; template - static constexpr bool IsIntegral = std::is_integral_v - || std::is_same_v || std::is_same_v - || std::is_same_v || std::is_same_v; + static constexpr bool IsIntegral = std::is_integral_v; + /// we do not include extended integral types here as they produce errors while diving on Decimals. + /// || std::is_same_v || std::is_same_v + /// || std::is_same_v || std::is_same_v; static constexpr bool BothOrNoneDecimal = BothDecimal || NoneDecimal; - using Num = std::conditional, NextAvgTypeT, Float64>, - /// When the denominator only is Decimal, we check the numerator (as the above case). - std::conditional_t, - NextAvgTypeT, - Float64>>>; + /// When the denominator only is Decimal, it would be converted to Float64 (as integral / Decimal + /// produces a compile error, vice versa allowed), so we just cast the numerator to Flaoat64; + Float64>>; /** * When both types are Decimal, we can perform computations in the Decimals only. @@ -78,10 +78,10 @@ struct AvgWeightedFunctionTypesDeduction * - If the denominator was floating-point, the numerator would be Float64. * - If not, the numerator would be Decimal (as the denominator is integral). * - * When the denominator only is Decimal, the numerator is either integral (so we leave the Decimal), or Float64, - * so we set the denominator to Float64; + * When the denominator only is Decimal, it will be casted to Float64 as integral / Decimal produces a compile + * time error. */ - using Denom = std::conditional, + using Denom = std::conditional_t>; }; From f18232739b904d7b46d39f4827ea8a0fef656315 Mon Sep 17 00:00:00 2001 From: myrrc Date: Thu, 22 Oct 2020 19:32:06 +0300 Subject: [PATCH 037/425] some other changes to deduction guides --- .../AggregateFunctionAvgWeighted.h | 38 +++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h index 8c245253710..6b1c41d2748 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h @@ -8,24 +8,26 @@ namespace DB template struct AvgWeightedFunctionTypesDeduction { - template struct NextAvgType { using Type = T; }; + template struct NextAvgType { }; template <> struct NextAvgType { using Type = Int16; }; template <> struct NextAvgType { using Type = Int32; }; template <> struct NextAvgType { using Type = Int64; }; template <> struct NextAvgType { using Type = Int128; }; - template <> struct NextAvgType { using Type = Int256; }; - template <> struct NextAvgType { using Type = Int256; }; template <> struct NextAvgType { using Type = UInt16; }; template <> struct NextAvgType { using Type = UInt32; }; template <> struct NextAvgType { using Type = UInt64; }; template <> struct NextAvgType { using Type = UInt128; }; - template <> struct NextAvgType { using Type = UInt256; }; - template <> struct NextAvgType { using Type = UInt256; }; + + // Promoted to Float as these types don't go well when operating with above ones + template <> struct NextAvgType { using Type = Float64; }; + template <> struct NextAvgType { using Type = Float64; }; + template <> struct NextAvgType { using Type = Float64; }; + template <> struct NextAvgType { using Type = Float64; }; template <> struct NextAvgType { using Type = Decimal128; }; template <> struct NextAvgType { using Type = Decimal128; }; - template <> struct NextAvgType { using Type = Decimal256; }; + template <> struct NextAvgType { using Type = Decimal128; }; template <> struct NextAvgType { using Type = Decimal256; }; template <> struct NextAvgType { using Type = Float64; }; @@ -43,11 +45,11 @@ struct AvgWeightedFunctionTypesDeduction static constexpr bool BothDecimal = UDecimal && VDecimal; static constexpr bool NoneDecimal = !UDecimal && !VDecimal; - template - static constexpr bool IsIntegral = std::is_integral_v; - /// we do not include extended integral types here as they produce errors while diving on Decimals. - /// || std::is_same_v || std::is_same_v - /// || std::is_same_v || std::is_same_v; + /// we do not include extended integral types here as they produce errors while diving on Decimals. + template static constexpr bool IsIntegral = std::is_integral_v; + template static constexpr bool IsExtendedIntegral = + std::is_same_v || std::is_same_v + || std::is_same_v || std::is_same_v; static constexpr bool BothOrNoneDecimal = BothDecimal || NoneDecimal; @@ -80,8 +82,11 @@ struct AvgWeightedFunctionTypesDeduction * * When the denominator only is Decimal, it will be casted to Float64 as integral / Decimal produces a compile * time error. + * + * Extended integer types can't be multiplied by doubles (I don't know, why), so we also convert them to + * double. */ - using Denom = std::conditional_t, Float64, NextAvgTypeT>; }; @@ -123,10 +128,13 @@ public: const auto & values = static_cast &>(*columns[0]); const auto & weights = static_cast &>(*columns[1]); - const auto value = values.getData()[row_num]; - const auto weight = weights.getData()[row_num]; + using Numerator = typename Base::Numerator; + using Denominator = typename Base::Denominator; - this->data(place).numerator += static_cast(value) * weight; + const Numerator value = Numerator(values.getData()[row_num]); + const Denominator weight = Denominator(weights.getData()[row_num]); + + this->data(place).numerator += value * weight; this->data(place).denominator += weight; } From 08009631355ad31eb630e4b5f153c270cbbcf811 Mon Sep 17 00:00:00 2001 From: hexiaoting Date: Fri, 23 Oct 2020 17:15:55 +0800 Subject: [PATCH 038/425] Update parser for column transformers --- src/Parsers/ASTColumnsTransformers.cpp | 18 +++-- src/Parsers/ExpressionElementParsers.cpp | 70 ++++++++++++------- .../01470_columns_transformers.reference | 5 ++ .../01470_columns_transformers.sql | 4 ++ 4 files changed, 67 insertions(+), 30 deletions(-) diff --git a/src/Parsers/ASTColumnsTransformers.cpp b/src/Parsers/ASTColumnsTransformers.cpp index 474c3262d78..719c818b82d 100644 --- a/src/Parsers/ASTColumnsTransformers.cpp +++ b/src/Parsers/ASTColumnsTransformers.cpp @@ -33,7 +33,7 @@ void IASTColumnsTransformer::transform(const ASTPtr & transformer, ASTs & nodes) void ASTColumnsApplyTransformer::formatImpl(const FormatSettings & settings, FormatState &, FormatStateStacked) const { - settings.ostr << (settings.hilite ? hilite_keyword : "") << "APPLY" << (settings.hilite ? hilite_none : "") << "(" << func_name << ")"; + settings.ostr << (settings.hilite ? hilite_keyword : "") << "APPLY" << (settings.hilite ? hilite_none : "") << " " << func_name; } void ASTColumnsApplyTransformer::transform(ASTs & nodes) const @@ -46,7 +46,10 @@ void ASTColumnsApplyTransformer::transform(ASTs & nodes) const void ASTColumnsExceptTransformer::formatImpl(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const { - settings.ostr << (settings.hilite ? hilite_keyword : "") << "EXCEPT" << (is_strict ? " STRICT " : "") << (settings.hilite ? hilite_none : "") << "("; + settings.ostr << (settings.hilite ? hilite_keyword : "") << "EXCEPT" << (is_strict ? " STRICT " : "") << (settings.hilite ? hilite_none : ""); + + if (children.size() > 1) + settings.ostr << " ("; for (ASTs::const_iterator it = children.begin(); it != children.end(); ++it) { @@ -57,7 +60,8 @@ void ASTColumnsExceptTransformer::formatImpl(const FormatSettings & settings, Fo (*it)->formatImpl(settings, state, frame); } - settings.ostr << ")"; + if (children.size() > 1) + settings.ostr << ")"; } void ASTColumnsExceptTransformer::transform(ASTs & nodes) const @@ -110,7 +114,10 @@ void ASTColumnsReplaceTransformer::Replacement::formatImpl( void ASTColumnsReplaceTransformer::formatImpl(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const { - settings.ostr << (settings.hilite ? hilite_keyword : "") << "REPLACE" << (is_strict ? " STRICT " : "") << (settings.hilite ? hilite_none : "") << "("; + settings.ostr << (settings.hilite ? hilite_keyword : "") << "REPLACE" << (is_strict ? " STRICT " : "") << (settings.hilite ? hilite_none : ""); + + if (children.size() > 1) + settings.ostr << " ("; for (ASTs::const_iterator it = children.begin(); it != children.end(); ++it) { @@ -121,7 +128,8 @@ void ASTColumnsReplaceTransformer::formatImpl(const FormatSettings & settings, F (*it)->formatImpl(settings, state, frame); } - settings.ostr << ")"; + if (children.size() > 1) + settings.ostr << ")"; } void ASTColumnsReplaceTransformer::replaceChildren(ASTPtr & node, const ASTPtr & replacement, const String & name) diff --git a/src/Parsers/ExpressionElementParsers.cpp b/src/Parsers/ExpressionElementParsers.cpp index dc8f39ae894..501a9b00f3b 100644 --- a/src/Parsers/ExpressionElementParsers.cpp +++ b/src/Parsers/ExpressionElementParsers.cpp @@ -1240,17 +1240,24 @@ bool ParserColumnsTransformers::parseImpl(Pos & pos, ASTPtr & node, Expected & e if (apply.ignore(pos, expected)) { - if (pos->type != TokenType::OpeningRoundBracket) - return false; - ++pos; + bool with_open_round_bracket = false; + + if (pos->type == TokenType::OpeningRoundBracket) + { + ++pos; + with_open_round_bracket = true; + } String func_name; if (!parseIdentifierOrStringLiteral(pos, expected, func_name)) return false; - if (pos->type != TokenType::ClosingRoundBracket) - return false; - ++pos; + if (with_open_round_bracket) + { + if (pos->type != TokenType::ClosingRoundBracket) + return false; + ++pos; + } auto res = std::make_shared(); res->func_name = func_name; @@ -1259,14 +1266,9 @@ bool ParserColumnsTransformers::parseImpl(Pos & pos, ASTPtr & node, Expected & e } else if (except.ignore(pos, expected)) { - if (strict.ignore(pos, expected)) is_strict = true; - if (pos->type != TokenType::OpeningRoundBracket) - return false; - ++pos; - ASTs identifiers; auto parse_id = [&identifiers, &pos, &expected] { @@ -1278,12 +1280,23 @@ bool ParserColumnsTransformers::parseImpl(Pos & pos, ASTPtr & node, Expected & e return true; }; - if (!ParserList::parseUtil(pos, expected, parse_id, false)) - return false; + if (pos->type == TokenType::OpeningRoundBracket) + { + // support one or more parameter + ++pos; + if (!ParserList::parseUtil(pos, expected, parse_id, false)) + return false; - if (pos->type != TokenType::ClosingRoundBracket) - return false; - ++pos; + if (pos->type != TokenType::ClosingRoundBracket) + return false; + ++pos; + } + else + { + // only one parameter + if (!parse_id()) + return false; + } auto res = std::make_shared(); res->children = std::move(identifiers); @@ -1296,10 +1309,6 @@ bool ParserColumnsTransformers::parseImpl(Pos & pos, ASTPtr & node, Expected & e if (strict.ignore(pos, expected)) is_strict = true; - if (pos->type != TokenType::OpeningRoundBracket) - return false; - ++pos; - ASTs replacements; ParserExpression element_p; ParserIdentifier ident_p; @@ -1323,12 +1332,23 @@ bool ParserColumnsTransformers::parseImpl(Pos & pos, ASTPtr & node, Expected & e return true; }; - if (!ParserList::parseUtil(pos, expected, parse_id, false)) - return false; + if (pos->type == TokenType::OpeningRoundBracket) + { + ++pos; - if (pos->type != TokenType::ClosingRoundBracket) - return false; - ++pos; + if (!ParserList::parseUtil(pos, expected, parse_id, false)) + return false; + + if (pos->type != TokenType::ClosingRoundBracket) + return false; + ++pos; + } + else + { + // only one parameter + if (!parse_id()) + return false; + } auto res = std::make_shared(); res->children = std::move(replacements); diff --git a/tests/queries/0_stateless/01470_columns_transformers.reference b/tests/queries/0_stateless/01470_columns_transformers.reference index 2d8a1802289..9a8a02c7f98 100644 --- a/tests/queries/0_stateless/01470_columns_transformers.reference +++ b/tests/queries/0_stateless/01470_columns_transformers.reference @@ -1,4 +1,5 @@ 220 18 347 +220 18 347 110 9 173.5 1970-04-11 1970-01-11 1970-11-21 2 3 @@ -6,6 +7,10 @@ 18 347 110 173.5 1970-04-11 1970-01-11 1970-11-21 +10 324 +8 23 +101 10 324 +121 8 23 222 18 347 111 11 173.5 1970-04-11 1970-01-11 1970-11-21 diff --git a/tests/queries/0_stateless/01470_columns_transformers.sql b/tests/queries/0_stateless/01470_columns_transformers.sql index a3d103cd876..f7c30eef61b 100644 --- a/tests/queries/0_stateless/01470_columns_transformers.sql +++ b/tests/queries/0_stateless/01470_columns_transformers.sql @@ -4,6 +4,7 @@ CREATE TABLE columns_transformers (i Int64, j Int16, k Int64) Engine=TinyLog; INSERT INTO columns_transformers VALUES (100, 10, 324), (120, 8, 23); SELECT * APPLY(sum) from columns_transformers; +SELECT * APPLY sum from columns_transformers; SELECT columns_transformers.* APPLY(avg) from columns_transformers; SELECT a.* APPLY(toDate) APPLY(any) from columns_transformers a; SELECT COLUMNS('[jk]') APPLY(toString) APPLY(length) from columns_transformers; @@ -13,7 +14,10 @@ SELECT columns_transformers.* EXCEPT(j) APPLY(avg) from columns_transformers; -- EXCEPT after APPLY will not match anything SELECT a.* APPLY(toDate) EXCEPT(i, j) APPLY(any) from columns_transformers a; +SELECT * EXCEPT STRICT i from columns_transformers; +SELECT * EXCEPT STRICT i, j1 from columns_transformers; -- { serverError 47 } SELECT * EXCEPT STRICT(i, j1) from columns_transformers; -- { serverError 16 } +SELECT * REPLACE STRICT i + 1 AS i from columns_transformers; SELECT * REPLACE STRICT(i + 1 AS col) from columns_transformers; -- { serverError 16 } SELECT * REPLACE(i + 1 AS i) APPLY(sum) from columns_transformers; SELECT columns_transformers.* REPLACE(j + 2 AS j, i + 1 AS i) APPLY(avg) from columns_transformers; From 15e4e0346972779b99e6c4456f554e52cf5c4edb Mon Sep 17 00:00:00 2001 From: feng lv Date: Sat, 24 Oct 2020 13:18:04 +0000 Subject: [PATCH 039/425] add union distinct and setting union_default_mode --- src/Common/ErrorCodes.cpp | 2 + src/Core/Settings.h | 3 +- src/Core/SettingsEnums.cpp | 6 +++ src/Core/SettingsEnums.h | 10 ++++- .../InterpreterSelectWithUnionQuery.cpp | 37 +++++++++++++++- .../InterpreterSelectWithUnionQuery.h | 4 +- src/Parsers/ASTSelectWithUnionQuery.cpp | 20 +++++++-- src/Parsers/ASTSelectWithUnionQuery.h | 9 ++++ src/Parsers/ParserSelectWithUnionQuery.cpp | 42 +++++++++++++++++-- 9 files changed, 122 insertions(+), 11 deletions(-) diff --git a/src/Common/ErrorCodes.cpp b/src/Common/ErrorCodes.cpp index b841368f662..499b02ca0d9 100644 --- a/src/Common/ErrorCodes.cpp +++ b/src/Common/ErrorCodes.cpp @@ -519,6 +519,8 @@ namespace ErrorCodes extern const int CONDITIONAL_TREE_PARENT_NOT_FOUND = 2001; extern const int ILLEGAL_PROJECTION_MANIPULATOR = 2002; extern const int UNRECOGNIZED_ARGUMENTS = 2003; + extern const int UNKNOWN_UNION = 2004; + extern const int EXPECTED_ALL_OR_DISTINCT = 2005; } } diff --git a/src/Core/Settings.h b/src/Core/Settings.h index d73098ca6e0..f9431c133e3 100644 --- a/src/Core/Settings.h +++ b/src/Core/Settings.h @@ -400,7 +400,8 @@ class IColumn; M(Bool, optimize_trivial_insert_select, true, "Optimize trivial 'INSERT INTO table SELECT ... FROM TABLES' query", 0) \ M(Bool, allow_experimental_database_atomic, true, "Obsolete setting, does nothing. Will be removed after 2021-02-12", 0) \ M(Bool, allow_non_metadata_alters, true, "Allow to execute alters which affects not only tables metadata, but also data on disk", 0) \ - M(Bool, enable_global_with_statement, false, "Propagate WITH statements to UNION queries and all subqueries", 0) + M(Bool, enable_global_with_statement, false, "Propagate WITH statements to UNION queries and all subqueries", 0) \ + M(UnionMode, union_default_mode, UnionMode::ALL, "Set default Union Mode in SelectWithUnion query. Possible values: empty string, 'ALL', 'DISTINCT'. If empty, query without Union Mode will throw exception.", 0) // End of COMMON_SETTINGS // Please add settings related to formats into the FORMAT_FACTORY_SETTINGS below. diff --git a/src/Core/SettingsEnums.cpp b/src/Core/SettingsEnums.cpp index c337cd5e3ce..2e1cf025256 100644 --- a/src/Core/SettingsEnums.cpp +++ b/src/Core/SettingsEnums.cpp @@ -12,6 +12,7 @@ namespace ErrorCodes extern const int UNKNOWN_JOIN; extern const int BAD_ARGUMENTS; extern const int UNKNOWN_MYSQL_DATATYPES_SUPPORT_LEVEL; + extern const int UNKNOWN_UNION; } @@ -96,4 +97,9 @@ IMPLEMENT_SETTING_MULTI_ENUM(MySQLDataTypesSupport, ErrorCodes::UNKNOWN_MYSQL_DA {{"decimal", MySQLDataTypesSupport::DECIMAL}, {"datetime64", MySQLDataTypesSupport::DATETIME64}}) +IMPLEMENT_SETTING_ENUM(UnionMode, ErrorCodes::UNKNOWN_UNION, + {{"", UnionMode::Unspecified}, + {"ALL", UnionMode::ALL}, + {"DISTINCT", UnionMode::DISTINCT}}) + } diff --git a/src/Core/SettingsEnums.h b/src/Core/SettingsEnums.h index 80b9bf9adde..2546ebe3237 100644 --- a/src/Core/SettingsEnums.h +++ b/src/Core/SettingsEnums.h @@ -119,7 +119,6 @@ enum class DefaultDatabaseEngine DECLARE_SETTING_ENUM(DefaultDatabaseEngine) - enum class MySQLDataTypesSupport { DECIMAL, // convert MySQL's decimal and number to ClickHouse Decimal when applicable @@ -129,4 +128,13 @@ enum class MySQLDataTypesSupport DECLARE_SETTING_MULTI_ENUM(MySQLDataTypesSupport) +enum class UnionMode +{ + Unspecified = 0, // Query UNION without UnionMode will throw exception + ALL, // Query UNION without UnionMode -> SELECT ... UNION ALL SELECT ... + DISTINCT // Query UNION without UnionMode -> SELECT ... UNION DISTINCT SELECT ... +}; + +DECLARE_SETTING_ENUM(UnionMode) + } diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp index ba0ebfaaf27..b31723383f7 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp @@ -9,6 +9,7 @@ #include #include #include +#include namespace DB @@ -18,6 +19,7 @@ namespace ErrorCodes { extern const int LOGICAL_ERROR; extern const int UNION_ALL_RESULT_STRUCTURES_MISMATCH; + extern const int EXPECTED_ALL_OR_DISTINCT; } @@ -31,13 +33,35 @@ InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery( context(std::make_shared(context_)), max_streams(context->getSettingsRef().max_threads) { - const auto & ast = query_ptr->as(); + auto & ast = query_ptr->as(); size_t num_selects = ast.list_of_selects->children.size(); if (!num_selects) throw Exception("Logical error: no children in ASTSelectWithUnionQuery", ErrorCodes::LOGICAL_ERROR); + /// For SELECT ... UNION/UNION ALL/UNION DISTINCT SELECT ... query, + /// rewrite ast with settings.union_default_mode + if (num_selects > 1) + { + if (ast.mode == ASTSelectWithUnionQuery::Mode::Unspecified) + { + const Settings & settings = context->getSettingsRef(); + if (settings.union_default_mode == UnionMode::ALL) + ast.mode = ASTSelectWithUnionQuery::Mode::ALL; + else if (settings.union_default_mode == UnionMode::DISTINCT) + { + ast.mode = ASTSelectWithUnionQuery::Mode::DISTINCT; + } + else + throw Exception( + "Expected ALL or DISTINCT in SelectWithUnion query, because setting (union_default_mode) is empty", + DB::ErrorCodes::EXPECTED_ALL_OR_DISTINCT); + } + if (ast.mode == ASTSelectWithUnionQuery::Mode::DISTINCT) + distinct_union = true; + } + /// Initialize interpreters for each SELECT query. /// Note that we pass 'required_result_column_names' to first SELECT. /// And for the rest, we pass names at the corresponding positions of 'required_result_column_names' in the result of first SELECT, @@ -197,6 +221,17 @@ void InterpreterSelectWithUnionQuery::buildQueryPlan(QueryPlan & query_plan) auto union_step = std::make_unique(std::move(data_streams), result_header, max_threads); query_plan.unitePlans(std::move(union_step), std::move(plans)); + + /// Add distinct transform for UNION DISTINCT query + if (distinct_union) + { + const Settings & settings = context->getSettingsRef(); + SizeLimits limits(settings.max_rows_in_distinct, settings.max_bytes_in_distinct, settings.distinct_overflow_mode); + + auto distinct_step = std::make_unique(query_plan.getCurrentDataStream(), limits, 0, result_header.getNames(), false); + + query_plan.addStep(std::move(distinct_step)); + } } BlockIO InterpreterSelectWithUnionQuery::execute() diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.h b/src/Interpreters/InterpreterSelectWithUnionQuery.h index 5590066a4db..dceba011418 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.h +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.h @@ -12,7 +12,7 @@ class Context; class InterpreterSelectQuery; class QueryPlan; -/** Interprets one or multiple SELECT queries inside UNION ALL chain. +/** Interprets one or multiple SELECT queries inside UNION/UNION ALL/UNION DISTINCT chain. */ class InterpreterSelectWithUnionQuery : public IInterpreter { @@ -54,6 +54,8 @@ private: size_t max_streams = 1; + bool distinct_union = false; + static Block getCommonHeaderForUnion(const Blocks & headers); }; diff --git a/src/Parsers/ASTSelectWithUnionQuery.cpp b/src/Parsers/ASTSelectWithUnionQuery.cpp index 96cac839c58..f2b64b37089 100644 --- a/src/Parsers/ASTSelectWithUnionQuery.cpp +++ b/src/Parsers/ASTSelectWithUnionQuery.cpp @@ -23,13 +23,25 @@ void ASTSelectWithUnionQuery::formatQueryImpl(const FormatSettings & settings, F { std::string indent_str = settings.one_line ? "" : std::string(4 * frame.indent, ' '); + std::string mode_str; + switch (mode) + { + case Mode::Unspecified: + mode_str = ""; + break; + case Mode::ALL: + mode_str = "ALL"; + break; + case Mode::DISTINCT: + mode_str = "DISTINCT"; + break; + } + for (ASTs::const_iterator it = list_of_selects->children.begin(); it != list_of_selects->children.end(); ++it) { if (it != list_of_selects->children.begin()) - settings.ostr - << settings.nl_or_ws << indent_str << (settings.hilite ? hilite_keyword : "") - << "UNION ALL" << (settings.hilite ? hilite_none : "") - << settings.nl_or_ws; + settings.ostr << settings.nl_or_ws << indent_str << (settings.hilite ? hilite_keyword : "") << "UNION " << mode_str + << (settings.hilite ? hilite_none : "") << settings.nl_or_ws; (*it)->formatImpl(settings, state, frame); } diff --git a/src/Parsers/ASTSelectWithUnionQuery.h b/src/Parsers/ASTSelectWithUnionQuery.h index 41ec8bb1076..9c476d3674a 100644 --- a/src/Parsers/ASTSelectWithUnionQuery.h +++ b/src/Parsers/ASTSelectWithUnionQuery.h @@ -17,6 +17,15 @@ public: ASTPtr clone() const override; void formatQueryImpl(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const override; + enum class Mode + { + Unspecified, + ALL, + DISTINCT + }; + + Mode mode = Mode::Unspecified; + ASTPtr list_of_selects; }; diff --git a/src/Parsers/ParserSelectWithUnionQuery.cpp b/src/Parsers/ParserSelectWithUnionQuery.cpp index cebe8ba876d..bf9c9cf552c 100644 --- a/src/Parsers/ParserSelectWithUnionQuery.cpp +++ b/src/Parsers/ParserSelectWithUnionQuery.cpp @@ -27,15 +27,51 @@ bool ParserSelectWithUnionQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & { ASTPtr list_node; - ParserList parser(std::make_unique(), std::make_unique("UNION ALL"), false); - if (!parser.parse(pos, list_node, expected)) - return false; + ParserList parser_union(std::make_unique(), std::make_unique("UNION"), false); + ParserList parser_union_all(std::make_unique(), std::make_unique("UNION ALL"), false); + ParserList parser_union_distinct(std::make_unique(), std::make_unique("UNION DISTINCT"), false); + + auto begin = pos; + auto current_expected = expected; + ASTSelectWithUnionQuery::Mode union_mode = ASTSelectWithUnionQuery::Mode::ALL; + + /// Parser SELECT lists and UNION type, must have UNION + auto union_parser = [&](auto & parser, auto mode) { + if (!parser.parse(pos, list_node, expected)) + { + pos = begin; + expected = current_expected; + return false; + } + /// number of SELECT lists should not less than 2 + if (list_node->children.size() < 2) + { + pos = begin; + expected = current_expected; + return false; + } + union_mode = mode; + return true; + }; + + /// We first parse: SELECT ... UNION SELECT ... + /// SELECT ... UNION ALL SELECT ... + /// SELECT ... UNION DISTINCT SELECT ... + if (!union_parser(parser_union, ASTSelectWithUnionQuery::Mode::Unspecified) + && !union_parser(parser_union_all, ASTSelectWithUnionQuery::Mode::ALL) + && !union_parser(parser_union_distinct, ASTSelectWithUnionQuery::Mode::DISTINCT)) + { + /// If above parse failed, we back to parse SELECT without UNION + if (!parser_union.parse(pos, list_node, expected)) + return false; + } auto select_with_union_query = std::make_shared(); node = select_with_union_query; select_with_union_query->list_of_selects = std::make_shared(); select_with_union_query->children.push_back(select_with_union_query->list_of_selects); + select_with_union_query->mode = union_mode; // flatten inner union query for (auto & child : list_node->children) From 4d0c87816a6eb35e3aa5562f68122477f65d07a0 Mon Sep 17 00:00:00 2001 From: feng lv Date: Sat, 24 Oct 2020 13:22:25 +0000 Subject: [PATCH 040/425] add test --- ...t_and_setting_union_default_mode.reference | 140 ++++++++++++++++++ ...istinct_and_setting_union_default_mode.sql | 13 ++ 2 files changed, 153 insertions(+) create mode 100644 tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.reference create mode 100644 tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.sql diff --git a/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.reference b/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.reference new file mode 100644 index 00000000000..6c4547333fe --- /dev/null +++ b/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.reference @@ -0,0 +1,140 @@ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 diff --git a/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.sql b/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.sql new file mode 100644 index 00000000000..1a6e582aebe --- /dev/null +++ b/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.sql @@ -0,0 +1,13 @@ +SELECT * FROM numbers(10) UNION SELECT * FROM numbers(10); +SELECT * FROM numbers(10) UNION ALL SELECT * FROM numbers(10); +SELECT * FROM numbers(10) UNION DISTINCT SELECT * FROM numbers(10); + +SET union_default_mode='ALL'; +SELECT * FROM numbers(10) UNION SELECT * FROM numbers(10); +SELECT * FROM numbers(10) UNION ALL SELECT * FROM numbers(10); +SELECT * FROM numbers(10) UNION DISTINCT SELECT * FROM numbers(10); + +SET union_default_mode='DISTINCT'; +SELECT * FROM numbers(10) UNION SELECT * FROM numbers(10); +SELECT * FROM numbers(10) UNION ALL SELECT * FROM numbers(10); +SELECT * FROM numbers(10) UNION DISTINCT SELECT * FROM numbers(10); From b2a3ace6d1f2ac802a2acfccad9966eec37284fa Mon Sep 17 00:00:00 2001 From: feng lv Date: Sat, 24 Oct 2020 13:41:20 +0000 Subject: [PATCH 041/425] fix --- src/Core/SettingsEnums.h | 1 + src/Interpreters/InterpreterSelectWithUnionQuery.cpp | 4 ++-- src/Parsers/ASTSelectWithUnionQuery.cpp | 7 +++++-- src/Parsers/ParserSelectWithUnionQuery.cpp | 7 ++++--- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/Core/SettingsEnums.h b/src/Core/SettingsEnums.h index 2546ebe3237..c2ef08135eb 100644 --- a/src/Core/SettingsEnums.h +++ b/src/Core/SettingsEnums.h @@ -119,6 +119,7 @@ enum class DefaultDatabaseEngine DECLARE_SETTING_ENUM(DefaultDatabaseEngine) + enum class MySQLDataTypesSupport { DECIMAL, // convert MySQL's decimal and number to ClickHouse Decimal when applicable diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp index b31723383f7..f4ef78dd183 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp @@ -47,17 +47,17 @@ InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery( if (ast.mode == ASTSelectWithUnionQuery::Mode::Unspecified) { const Settings & settings = context->getSettingsRef(); + if (settings.union_default_mode == UnionMode::ALL) ast.mode = ASTSelectWithUnionQuery::Mode::ALL; else if (settings.union_default_mode == UnionMode::DISTINCT) - { ast.mode = ASTSelectWithUnionQuery::Mode::DISTINCT; - } else throw Exception( "Expected ALL or DISTINCT in SelectWithUnion query, because setting (union_default_mode) is empty", DB::ErrorCodes::EXPECTED_ALL_OR_DISTINCT); } + if (ast.mode == ASTSelectWithUnionQuery::Mode::DISTINCT) distinct_union = true; } diff --git a/src/Parsers/ASTSelectWithUnionQuery.cpp b/src/Parsers/ASTSelectWithUnionQuery.cpp index f2b64b37089..7a61b3b5da1 100644 --- a/src/Parsers/ASTSelectWithUnionQuery.cpp +++ b/src/Parsers/ASTSelectWithUnionQuery.cpp @@ -40,8 +40,11 @@ void ASTSelectWithUnionQuery::formatQueryImpl(const FormatSettings & settings, F for (ASTs::const_iterator it = list_of_selects->children.begin(); it != list_of_selects->children.end(); ++it) { if (it != list_of_selects->children.begin()) - settings.ostr << settings.nl_or_ws << indent_str << (settings.hilite ? hilite_keyword : "") << "UNION " << mode_str - << (settings.hilite ? hilite_none : "") << settings.nl_or_ws; + settings.ostr << settings.nl_or_ws << indent_str + << (settings.hilite ? hilite_keyword : "") + << "UNION " << mode_str + << (settings.hilite ? hilite_none : "") + << settings.nl_or_ws; (*it)->formatImpl(settings, state, frame); } diff --git a/src/Parsers/ParserSelectWithUnionQuery.cpp b/src/Parsers/ParserSelectWithUnionQuery.cpp index bf9c9cf552c..5b98b083fd4 100644 --- a/src/Parsers/ParserSelectWithUnionQuery.cpp +++ b/src/Parsers/ParserSelectWithUnionQuery.cpp @@ -28,15 +28,16 @@ bool ParserSelectWithUnionQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & ASTPtr list_node; ParserList parser_union(std::make_unique(), std::make_unique("UNION"), false); - ParserList parser_union_all(std::make_unique(), std::make_unique("UNION ALL"), false); - ParserList parser_union_distinct(std::make_unique(), std::make_unique("UNION DISTINCT"), false); + ParserList parser_union_all(std::make_unique(), std::make_unique("UNION ALL"), false); + ParserList parser_union_distinct(std::make_unique(), std::make_unique("UNION DISTINCT"), false); auto begin = pos; auto current_expected = expected; ASTSelectWithUnionQuery::Mode union_mode = ASTSelectWithUnionQuery::Mode::ALL; /// Parser SELECT lists and UNION type, must have UNION - auto union_parser = [&](auto & parser, auto mode) { + auto union_parser = [&](auto & parser, auto mode) + { if (!parser.parse(pos, list_node, expected)) { pos = begin; From dcf4b0df1f20b391963db5ccda93b7a1b1075583 Mon Sep 17 00:00:00 2001 From: feng lv Date: Sat, 24 Oct 2020 14:03:15 +0000 Subject: [PATCH 042/425] fix --- src/Parsers/ASTSelectWithUnionQuery.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Parsers/ASTSelectWithUnionQuery.cpp b/src/Parsers/ASTSelectWithUnionQuery.cpp index 7a61b3b5da1..1ef47257eae 100644 --- a/src/Parsers/ASTSelectWithUnionQuery.cpp +++ b/src/Parsers/ASTSelectWithUnionQuery.cpp @@ -40,7 +40,7 @@ void ASTSelectWithUnionQuery::formatQueryImpl(const FormatSettings & settings, F for (ASTs::const_iterator it = list_of_selects->children.begin(); it != list_of_selects->children.end(); ++it) { if (it != list_of_selects->children.begin()) - settings.ostr << settings.nl_or_ws << indent_str + settings.ostr << settings.nl_or_ws << indent_str << (settings.hilite ? hilite_keyword : "") << "UNION " << mode_str << (settings.hilite ? hilite_none : "") From 5c192df20f974f26f24fcdaf4259468e10c545b7 Mon Sep 17 00:00:00 2001 From: feng lv Date: Sat, 24 Oct 2020 15:40:10 +0000 Subject: [PATCH 043/425] update documents --- docs/en/sql-reference/statements/select/index.md | 4 ++-- .../statements/select/{union-all.md => union.md} | 11 +++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) rename docs/en/sql-reference/statements/select/{union-all.md => union.md} (64%) diff --git a/docs/en/sql-reference/statements/select/index.md b/docs/en/sql-reference/statements/select/index.md index 07be8c2bf45..42d3e81f226 100644 --- a/docs/en/sql-reference/statements/select/index.md +++ b/docs/en/sql-reference/statements/select/index.md @@ -25,7 +25,7 @@ SELECT [DISTINCT] expr_list [ORDER BY expr_list] [WITH FILL] [FROM expr] [TO expr] [STEP expr] [LIMIT [offset_value, ]n BY columns] [LIMIT [n, ]m] [WITH TIES] -[UNION ALL ...] +[UNION ...] [INTO OUTFILE filename] [FORMAT format] ``` @@ -46,7 +46,7 @@ Specifics of each optional clause are covered in separate sections, which are li - [SELECT clause](#select-clause) - [DISTINCT clause](../../../sql-reference/statements/select/distinct.md) - [LIMIT clause](../../../sql-reference/statements/select/limit.md) -- [UNION ALL clause](../../../sql-reference/statements/select/union-all.md) +- [UNION clause](../../../sql-reference/statements/select/union.md) - [INTO OUTFILE clause](../../../sql-reference/statements/select/into-outfile.md) - [FORMAT clause](../../../sql-reference/statements/select/format.md) diff --git a/docs/en/sql-reference/statements/select/union-all.md b/docs/en/sql-reference/statements/select/union.md similarity index 64% rename from docs/en/sql-reference/statements/select/union-all.md rename to docs/en/sql-reference/statements/select/union.md index 5230363609e..88211858707 100644 --- a/docs/en/sql-reference/statements/select/union-all.md +++ b/docs/en/sql-reference/statements/select/union.md @@ -1,5 +1,5 @@ --- -toc_title: UNION ALL +toc_title: UNION --- # UNION ALL Clause {#union-all-clause} @@ -25,10 +25,13 @@ Type casting is performed for unions. For example, if two queries being combined Queries that are parts of `UNION ALL` can’t be enclosed in round brackets. [ORDER BY](../../../sql-reference/statements/select/order-by.md) and [LIMIT](../../../sql-reference/statements/select/limit.md) are applied to separate queries, not to the final result. If you need to apply a conversion to the final result, you can put all the queries with `UNION ALL` in a subquery in the [FROM](../../../sql-reference/statements/select/from.md) clause. -## Limitations {#limitations} +# UNION DISTINCT Clause {#union-distinct-clause} +The difference between `UNION ALL` and `UNION DISTINCT` is that `UNION DISTINCT` will do a distinct transform for union result, it is equivalent to `SELECT DISTINCT` from a subquery containing `UNION ALL`. + +# UNION Clause {#union-clause} +By defaul, `UNION` has same react as `UNION ALL`, but you can specify union mode by setting `union_default_mode`, values can be 'ALL', 'DISTINCT' or empty string. However, if you use `UNION` with setting `union_default_mode` to empty string, it will throw an exception. -Only `UNION ALL` is supported. The regular `UNION` (`UNION DISTINCT`) is not supported. If you need `UNION DISTINCT`, you can write `SELECT DISTINCT` from a subquery containing `UNION ALL`. ## Implementation Details {#implementation-details} -Queries that are parts of `UNION ALL` can be run simultaneously, and their results can be mixed together. +Queries that are parts of `UNION/UNION ALL/UNION DISTINCT` can be run simultaneously, and their results can be mixed together. From d8370116c1cabcb9d46ad2f3a7cc290a0a180b7c Mon Sep 17 00:00:00 2001 From: myrrc Date: Sun, 25 Oct 2020 23:33:01 +0300 Subject: [PATCH 044/425] simplified the functions (agreement to cast to Float64) --- .../aggregate-functions/reference/avg.md | 3 +- .../reference/avgweighted.md | 6 +- .../AggregateFunctionAvg.cpp | 22 +-- src/AggregateFunctions/AggregateFunctionAvg.h | 111 ++++----------- .../AggregateFunctionAvgWeighted.cpp | 42 +----- .../AggregateFunctionAvgWeighted.h | 128 +----------------- .../AggregateFunctionFactory.h | 4 +- 7 files changed, 49 insertions(+), 267 deletions(-) diff --git a/docs/en/sql-reference/aggregate-functions/reference/avg.md b/docs/en/sql-reference/aggregate-functions/reference/avg.md index 4ebae95b79d..1741bbb744b 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/avg.md +++ b/docs/en/sql-reference/aggregate-functions/reference/avg.md @@ -4,4 +4,5 @@ toc_priority: 5 # avg {#agg_function-avg} -Calculates the average. Only works for numbers. The result is always Float64. +Calculates the average. Only works for numbers (Integral, floating-point, or Decimals). +The result is always Float64. diff --git a/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md b/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md index a6fb5999fb8..22993f93e16 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md +++ b/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md @@ -28,11 +28,7 @@ but may have different types. - `NaN`. If all the weights are equal to 0. - Weighted mean otherwise. -**Return type** - -- `Decimal` if both types are [Decimal](../../../sql-reference/data-types/decimal.md) - or if one type is Decimal and other is Integer. -- [Float64](../../../sql-reference/data-types/float.md) otherwise. +**Return type** is always [Float64](../../../sql-reference/data-types/float.md). **Example** diff --git a/src/AggregateFunctions/AggregateFunctionAvg.cpp b/src/AggregateFunctions/AggregateFunctionAvg.cpp index cf35e99dafb..4d1b01b25fc 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.cpp +++ b/src/AggregateFunctions/AggregateFunctionAvg.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -13,23 +14,22 @@ namespace ErrorCodes namespace { +constexpr bool allowType(const DataTypePtr& type) noexcept +{ + const WhichDataType t(type); + return t.isInt() || t.isUInt() || t.isFloat() || t.isDecimal(); +} + AggregateFunctionPtr createAggregateFunctionAvg(const std::string & name, const DataTypes & argument_types, const Array & parameters) { assertNoParameters(name, parameters); assertUnary(name, argument_types); - AggregateFunctionPtr res; - DataTypePtr data_type = argument_types[0]; - - if (isDecimal(data_type)) - res.reset(createWithDecimalType(*data_type, *data_type, argument_types)); - else - res.reset(createWithNumericType(*data_type, argument_types)); - - if (!res) + if (!allowType(argument_types[0])) throw Exception("Illegal type " + argument_types[0]->getName() + " of argument for aggregate function " + name, - ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); - return res; + ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); + + return std::make_shared(argument_types); } } diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index 0b77aa0c537..66ab20cec73 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -10,10 +10,7 @@ namespace DB { -template -using DecimalOrVectorCol = std::conditional_t, ColumnDecimal, ColumnVector>; - -/// A type-fixed rational fraction represented by a pair of #Numerator and #Denominator. +/// A type-fixed fraction represented by a pair of #Numerator and #Denominator. template struct RationalFraction { @@ -26,77 +23,42 @@ struct RationalFraction template Result NO_SANITIZE_UNDEFINED result() const { - if constexpr (std::is_floating_point_v) - if constexpr (std::numeric_limits::is_iec559) - { - if constexpr (is_big_int_v) - return static_cast(numerator) / static_cast(denominator); - else - return static_cast(numerator) / denominator; /// allow division by zero - } + if constexpr (std::is_floating_point_v && std::numeric_limits::is_iec559) + return static_cast(numerator) / denominator; /// allow division by zero if (denominator == static_cast(0)) return static_cast(0); - if constexpr (std::is_same_v) - return static_cast(numerator / static_cast(denominator)); - else - return static_cast(numerator / denominator); + return static_cast(numerator / denominator); } }; /** - * Motivation: ClickHouse has added the Decimal data type, which basically represents a fraction that stores - * the precise (unlike floating-point) result with respect to some scale. + * The discussion showed that the easiest (and simplest) way is to cast both the columns of numerator and denominator + * to Float64. Another way would be to write some template magic that figures out the appropriate numerator + * and denominator (and the resulting type) in favour of extended integral types (UInt128 e.g.) and Decimals ( + * which are a mess themselves). The second way is also a bit useless because now Decimals are not used in functions + * like avg. * - * These decimal types can't be divided by floating point data types, so functions like avg or avgWeighted - * can't return the Floa64 column as a result when of the input columns is Decimal (because that would, in case of - * avgWeighted, involve division numerator (Decimal) / denominator (Float64)). - * - * The rules for determining the output and intermediate storage types for these functions are different, so - * the struct representing the deduction guide is presented. - * - * Given the initial Columns types (e.g. values and weights for avgWeighted, values for avg), - * the struct calculated the output type and the intermediate storage type (that's used by the RationalFraction). - */ -template -struct AvgFunctionTypesDeductionTemplate -{ - using Numerator = int; - using Denominator = int; - using Fraction = RationalFraction; - - using ResultType = bool; - using ResultDataType = bool; - using ResultVectorType = bool; -}; - -/** - * @tparam InitialNumerator The type that the initial numerator column would have (needed to cast the input IColumn to - * appropriate type). - * @tparam InitialDenominator The type that the initial denominator column would have. - * - * @tparam Deduction Function template that, given the numerator and the denominator, finds the actual - * suitable storage and the resulting column type. + * The ability to explicitly specify the denominator is made for avg (it uses the integral value as the denominator is + * simply the length of the supplied list). * * @tparam Derived When deriving from this class, use the child class name as in CRTP, e.g. * class Self : Agg. */ -template class Deduction, class Derived> +template class AggregateFunctionAvgBase : public - IAggregateFunctionDataHelper::Fraction, Derived> + IAggregateFunctionDataHelper, Derived> { public: - using Deducted = Deduction; + using Numerator = Float64; + using Fraction = RationalFraction; - using ResultType = typename Deducted::ResultType; - using ResultDataType = typename Deducted::ResultDataType; - using ResultVectorType = typename Deducted::ResultVectorType; + using ResultType = Float64; + using ResultDataType = DataTypeNumber; + using ResultVectorType = ColumnVector; - using Numerator = typename Deducted::Numerator; - using Denominator = typename Deducted::Denominator; - - using Base = IAggregateFunctionDataHelper; + using Base = IAggregateFunctionDataHelper; /// ctor for native types explicit AggregateFunctionAvgBase(const DataTypes & argument_types_): Base(argument_types_, {}), scale(0) {} @@ -107,10 +69,7 @@ public: DataTypePtr getReturnType() const override { - if constexpr (IsDecimalNumber) - return std::make_shared(ResultDataType::maxPrecision(), scale); - else - return std::make_shared(); + return std::make_shared(); } void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena *) const override @@ -148,38 +107,16 @@ protected: UInt32 scale; }; -template -struct AvgFunctionTypesDeduction -{ - using Numerator = std::conditional_t, - std::conditional_t, - Decimal256, - Decimal128>, - NearestFieldType>; - - using Denominator = V; - using Fraction = RationalFraction; - - using ResultType = std::conditional_t, T, Float64>; - using ResultDataType = std::conditional_t, DataTypeDecimal, DataTypeNumber>; - using ResultVectorType = std::conditional_t, ColumnDecimal, ColumnVector>; -}; - -template -class AggregateFunctionAvg final : - public AggregateFunctionAvgBase> +class AggregateFunctionAvg final : public AggregateFunctionAvgBase { public: - using Base = - AggregateFunctionAvgBase>; - - using Base::Base; + using AggregateFunctionAvgBase::AggregateFunctionAvgBase; void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const final { - const auto & column = static_cast &>(*columns[0]); + const auto & column = static_cast &>(*columns[0]); this->data(place).numerator += column.getData()[row_num]; - this->data(place).denominator += 1; + ++this->data(place).denominator; } String getName() const final { return "avg"; } diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp index 5b43aa19a5c..6b677414d87 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -14,7 +15,7 @@ namespace ErrorCodes namespace { -constexpr bool allowTypes(const DataTypePtr& left, const DataTypePtr& right) +constexpr bool allowTypes(const DataTypePtr& left, const DataTypePtr& right) noexcept { const WhichDataType l_dt(left), r_dt(right); @@ -26,39 +27,6 @@ constexpr bool allowTypes(const DataTypePtr& left, const DataTypePtr& right) return allow(l_dt) && allow(r_dt); } -#define AT_SWITCH(LINE) \ - switch (which.idx) \ - { \ - LINE(Int8); LINE(Int16); LINE(Int32); LINE(Int64); LINE(Int128); LINE(Int256); \ - LINE(UInt8); LINE(UInt16); LINE(UInt32); LINE(UInt64); LINE(UInt128); LINE(UInt256); \ - LINE(Decimal32); LINE(Decimal64); LINE(Decimal128); LINE(Decimal256); \ - LINE(Float32); LINE(Float64); \ - default: return nullptr; \ - } - -template -static IAggregateFunction * create(const IDataType & second_type, TArgs && ... args) -{ - const WhichDataType which(second_type); - -#define LINE(Type) \ - case TypeIndex::Type: return new AggregateFunctionAvgWeighted(std::forward(args)...) - AT_SWITCH(LINE) -#undef LINE -} - -// Not using helper functions because there are no templates for binary decimal/numeric function. -template -static IAggregateFunction * create(const IDataType & first_type, const IDataType & second_type, TArgs && ... args) -{ - const WhichDataType which(first_type); - -#define LINE(Type) \ - case TypeIndex::Type: return create(second_type, std::forward(args)...) - AT_SWITCH(LINE) -#undef LINE -} - AggregateFunctionPtr createAggregateFunctionAvgWeighted(const std::string & name, const DataTypes & argument_types, const Array & parameters) { assertNoParameters(name, parameters); @@ -74,11 +42,7 @@ AggregateFunctionPtr createAggregateFunctionAvgWeighted(const std::string & name " are non-conforming as arguments for aggregate function " + name, ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); - AggregateFunctionPtr res; - res.reset(create(*data_type, *data_type_weight, argument_types)); - - assert(res); // type checking should be done in allowTypes. - return res; + return std::make_shared(argument_types); } } diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h index 6b1c41d2748..c9b60cf9f50 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h @@ -5,134 +5,18 @@ namespace DB { -template -struct AvgWeightedFunctionTypesDeduction -{ - template struct NextAvgType { }; - template <> struct NextAvgType { using Type = Int16; }; - template <> struct NextAvgType { using Type = Int32; }; - template <> struct NextAvgType { using Type = Int64; }; - template <> struct NextAvgType { using Type = Int128; }; - - template <> struct NextAvgType { using Type = UInt16; }; - template <> struct NextAvgType { using Type = UInt32; }; - template <> struct NextAvgType { using Type = UInt64; }; - template <> struct NextAvgType { using Type = UInt128; }; - - // Promoted to Float as these types don't go well when operating with above ones - template <> struct NextAvgType { using Type = Float64; }; - template <> struct NextAvgType { using Type = Float64; }; - template <> struct NextAvgType { using Type = Float64; }; - template <> struct NextAvgType { using Type = Float64; }; - - template <> struct NextAvgType { using Type = Decimal128; }; - template <> struct NextAvgType { using Type = Decimal128; }; - template <> struct NextAvgType { using Type = Decimal128; }; - template <> struct NextAvgType { using Type = Decimal256; }; - - template <> struct NextAvgType { using Type = Float64; }; - template <> struct NextAvgType { using Type = Float64; }; - - template using NextAvgTypeT = typename NextAvgType::Type; - template using Largest = std::conditional_t<(sizeof(T) > sizeof(U)), T, U>; - - struct GetNumDenom - { - using U = Values; - using V = Weights; - static constexpr bool UDecimal = IsDecimalNumber; - static constexpr bool VDecimal = IsDecimalNumber; - static constexpr bool BothDecimal = UDecimal && VDecimal; - static constexpr bool NoneDecimal = !UDecimal && !VDecimal; - - /// we do not include extended integral types here as they produce errors while diving on Decimals. - template static constexpr bool IsIntegral = std::is_integral_v; - template static constexpr bool IsExtendedIntegral = - std::is_same_v || std::is_same_v - || std::is_same_v || std::is_same_v; - - static constexpr bool BothOrNoneDecimal = BothDecimal || NoneDecimal; - - using Num = std::conditional_t>, - - std::conditional_t, - NextAvgTypeT, - Float64>, - /// When the denominator only is Decimal, it would be converted to Float64 (as integral / Decimal - /// produces a compile error, vice versa allowed), so we just cast the numerator to Flaoat64; - Float64>>; - - /** - * When both types are Decimal, we can perform computations in the Decimals only. - * When none of the types is Decimal, the result is always correct, the numerator is the next largest type up to - * Float64. - * We use #V only as the denominator accumulates the sum of the weights. - * - * When the numerator only is Decimal, we set the denominator to next Largest type. - * - If the denominator was floating-point, the numerator would be Float64. - * - If not, the numerator would be Decimal (as the denominator is integral). - * - * When the denominator only is Decimal, it will be casted to Float64 as integral / Decimal produces a compile - * time error. - * - * Extended integer types can't be multiplied by doubles (I don't know, why), so we also convert them to - * double. - */ - using Denom = std::conditional_t<(VDecimal && !UDecimal) || IsExtendedIntegral, - Float64, - NextAvgTypeT>; - }; - - using Numerator = typename GetNumDenom::Num; - using Denominator = typename GetNumDenom::Denom; - using Fraction = RationalFraction; - - /// If either Numerator or Denominator are Decimal, the result is also Decimal as everything was checked in - /// GetNumDenom. - using T = std::conditional_t && IsDecimalNumber, - Largest, - std::conditional_t, - Numerator, - std::conditional_t, - Denominator, - bool>>>; // both numerator and denominator are non-decimal. - - using ResultType = std::conditional_t, T, Float64>; - using ResultDataType = std::conditional_t, DataTypeDecimal, DataTypeNumber>; - using ResultVectorType = std::conditional_t, ColumnDecimal, ColumnVector>; -}; - -/** - * @tparam Values The values column type. - * @tparam Weights The weights column type. - */ -template -class AggregateFunctionAvgWeighted final : public AggregateFunctionAvgBase< - Values, Weights, AvgWeightedFunctionTypesDeduction, AggregateFunctionAvgWeighted> +class AggregateFunctionAvgWeighted final : public AggregateFunctionAvgBase { public: - using Base = AggregateFunctionAvgBase< - Values, Weights, AvgWeightedFunctionTypesDeduction, AggregateFunctionAvgWeighted>; - using Base::Base; + using AggregateFunctionAvgBase::AggregateFunctionAvgBase; void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const override { - const auto & values = static_cast &>(*columns[0]); - const auto & weights = static_cast &>(*columns[1]); + const auto & values = static_cast &>(*columns[0]); + const auto & weights = static_cast &>(*columns[1]); - using Numerator = typename Base::Numerator; - using Denominator = typename Base::Denominator; - - const Numerator value = Numerator(values.getData()[row_num]); - const Denominator weight = Denominator(weights.getData()[row_num]); + const auto value = values.getData()[row_num]; + const auto weight = weights.getData()[row_num]; this->data(place).numerator += value * weight; this->data(place).denominator += weight; diff --git a/src/AggregateFunctions/AggregateFunctionFactory.h b/src/AggregateFunctions/AggregateFunctionFactory.h index 143e6562a30..07db76d8dd1 100644 --- a/src/AggregateFunctions/AggregateFunctionFactory.h +++ b/src/AggregateFunctions/AggregateFunctionFactory.h @@ -21,7 +21,8 @@ class IDataType; using DataTypePtr = std::shared_ptr; using DataTypes = std::vector; -/** Creator have arguments: name of aggregate function, types of arguments, values of parameters. +/** + * The invoker has arguments: name of aggregate function, types of arguments, values of parameters. * Parameters are for "parametric" aggregate functions. * For example, in quantileWeighted(0.9)(x, weight), 0.9 is "parameter" and x, weight are "arguments". */ @@ -89,7 +90,6 @@ private: std::optional tryGetPropertiesImpl(const String & name, int recursion_level) const; -private: using AggregateFunctions = std::unordered_map; AggregateFunctions aggregate_functions; From 824c04f87369232133d99f2f3359943c04e19d80 Mon Sep 17 00:00:00 2001 From: hchen9 Date: Sun, 25 Oct 2020 18:12:17 -0700 Subject: [PATCH 045/425] Fix conflict code --- src/Storages/StorageProxy.h | 4 ++-- src/Storages/StorageReplicatedMergeTree.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Storages/StorageProxy.h b/src/Storages/StorageProxy.h index 7b010476b22..22f6e8fa03a 100644 --- a/src/Storages/StorageProxy.h +++ b/src/Storages/StorageProxy.h @@ -146,8 +146,8 @@ public: void checkPartitionCanBeDropped(const ASTPtr & partition) override { getNested()->checkPartitionCanBeDropped(partition); } Strings getDataPaths() const override { return getNested()->getDataPaths(); } StoragePolicyPtr getStoragePolicy() const override { return getNested()->getStoragePolicy(); } - std::optional totalRows() const override { return getNested()->totalRows(); } - std::optional totalBytes() const override { return getNested()->totalBytes(); } + std::optional totalRows(const Context& context) const override { return getNested()->totalRows(context); } + std::optional totalBytes(const Context& context) const override { return getNested()->totalBytes(context); } std::optional lifetimeRows() const override { return getNested()->lifetimeRows(); } std::optional lifetimeBytes() const override { return getNested()->lifetimeBytes(); } diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index cf807055d95..b76c841101d 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -3719,7 +3719,7 @@ std::optional StorageReplicatedMergeTree::totalRowsByPartitionPredicate( } if (is_valid) res += part->rows_count; - }); + }, context); return res; } From d9bc486c0ea904bf768ffc5df4e06aa22510b6a8 Mon Sep 17 00:00:00 2001 From: hchen9 Date: Sun, 25 Oct 2020 20:57:19 -0700 Subject: [PATCH 046/425] Fix StorageJoin and StorageSet --- src/Storages/StorageJoin.cpp | 4 ++-- src/Storages/StorageJoin.h | 4 ++-- src/Storages/StorageSet.cpp | 4 ++-- src/Storages/StorageSet.h | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Storages/StorageJoin.cpp b/src/Storages/StorageJoin.cpp index c6d85174e68..1aedcb4bddd 100644 --- a/src/Storages/StorageJoin.cpp +++ b/src/Storages/StorageJoin.cpp @@ -102,8 +102,8 @@ HashJoinPtr StorageJoin::getJoin(std::shared_ptr analyzed_join) const void StorageJoin::insertBlock(const Block & block) { join->addJoinedBlock(block, true); } size_t StorageJoin::getSize() const { return join->getTotalRowCount(); } -std::optional StorageJoin::totalRows() const { return join->getTotalRowCount(); } -std::optional StorageJoin::totalBytes() const { return join->getTotalByteCount(); } +std::optional StorageJoin::totalRows(const Context&) const { return join->getTotalRowCount(); } +std::optional StorageJoin::totalBytes(const Context&) const { return join->getTotalByteCount(); } void registerStorageJoin(StorageFactory & factory) diff --git a/src/Storages/StorageJoin.h b/src/Storages/StorageJoin.h index 857f3646441..0567fb4221c 100644 --- a/src/Storages/StorageJoin.h +++ b/src/Storages/StorageJoin.h @@ -46,8 +46,8 @@ public: size_t max_block_size, unsigned num_streams) override; - std::optional totalRows() const override; - std::optional totalBytes() const override; + std::optional totalRows(const Context& context) const override; + std::optional totalBytes(const Context& context) const override; private: Block sample_block; diff --git a/src/Storages/StorageSet.cpp b/src/Storages/StorageSet.cpp index b7779d2e550..98ccc783b3c 100644 --- a/src/Storages/StorageSet.cpp +++ b/src/Storages/StorageSet.cpp @@ -153,8 +153,8 @@ void StorageSet::insertBlock(const Block & block) { set->insertFromBlock(block); void StorageSet::finishInsert() { set->finishInsert(); } size_t StorageSet::getSize() const { return set->getTotalRowCount(); } -std::optional StorageSet::totalRows() const { return set->getTotalRowCount(); } -std::optional StorageSet::totalBytes() const { return set->getTotalByteCount(); } +std::optional StorageSet::totalRows(const Context&) const { return set->getTotalRowCount(); } +std::optional StorageSet::totalBytes(const Context&) const { return set->getTotalByteCount(); } void StorageSet::truncate(const ASTPtr &, const StorageMetadataPtr & metadata_snapshot, const Context &, TableExclusiveLockHolder &) { diff --git a/src/Storages/StorageSet.h b/src/Storages/StorageSet.h index 98677dcfb15..157b2395260 100644 --- a/src/Storages/StorageSet.h +++ b/src/Storages/StorageSet.h @@ -72,8 +72,8 @@ public: void truncate(const ASTPtr &, const StorageMetadataPtr & metadata_snapshot, const Context &, TableExclusiveLockHolder &) override; - std::optional totalRows() const override; - std::optional totalBytes() const override; + std::optional totalRows(const Context& context) const override; + std::optional totalBytes(const Context& context) const override; private: SetPtr set; From a9e4c7144c1d4b139bde4a0c6884eef7bd99e97a Mon Sep 17 00:00:00 2001 From: feng lv Date: Mon, 26 Oct 2020 09:33:34 +0000 Subject: [PATCH 047/425] fix --- .../sql-reference/statements/select/index.md | 2 +- .../select/{union.md => union-all.md} | 2 +- src/Core/Settings.h | 2 +- .../InterpreterSelectWithUnionQuery.cpp | 124 +++++++++++++----- .../InterpreterSelectWithUnionQuery.h | 4 +- src/Parsers/ASTSelectWithUnionQuery.cpp | 26 ++-- src/Parsers/ASTSelectWithUnionQuery.h | 4 +- src/Parsers/ExpressionListParsers.cpp | 46 +++++++ src/Parsers/ExpressionListParsers.h | 48 +++++++ src/Parsers/ParserSelectWithUnionQuery.cpp | 48 ++----- 10 files changed, 215 insertions(+), 91 deletions(-) rename docs/en/sql-reference/statements/select/{union.md => union-all.md} (86%) diff --git a/docs/en/sql-reference/statements/select/index.md b/docs/en/sql-reference/statements/select/index.md index 42d3e81f226..130000cf4b0 100644 --- a/docs/en/sql-reference/statements/select/index.md +++ b/docs/en/sql-reference/statements/select/index.md @@ -46,7 +46,7 @@ Specifics of each optional clause are covered in separate sections, which are li - [SELECT clause](#select-clause) - [DISTINCT clause](../../../sql-reference/statements/select/distinct.md) - [LIMIT clause](../../../sql-reference/statements/select/limit.md) -- [UNION clause](../../../sql-reference/statements/select/union.md) +- [UNION clause](../../../sql-reference/statements/select/union-all.md) - [INTO OUTFILE clause](../../../sql-reference/statements/select/into-outfile.md) - [FORMAT clause](../../../sql-reference/statements/select/format.md) diff --git a/docs/en/sql-reference/statements/select/union.md b/docs/en/sql-reference/statements/select/union-all.md similarity index 86% rename from docs/en/sql-reference/statements/select/union.md rename to docs/en/sql-reference/statements/select/union-all.md index 88211858707..1784da37c9a 100644 --- a/docs/en/sql-reference/statements/select/union.md +++ b/docs/en/sql-reference/statements/select/union-all.md @@ -29,7 +29,7 @@ Queries that are parts of `UNION ALL` can’t be enclosed in round brackets. [OR The difference between `UNION ALL` and `UNION DISTINCT` is that `UNION DISTINCT` will do a distinct transform for union result, it is equivalent to `SELECT DISTINCT` from a subquery containing `UNION ALL`. # UNION Clause {#union-clause} -By defaul, `UNION` has same react as `UNION ALL`, but you can specify union mode by setting `union_default_mode`, values can be 'ALL', 'DISTINCT' or empty string. However, if you use `UNION` with setting `union_default_mode` to empty string, it will throw an exception. +By defaul, `UNION` has same react as `UNION DISTINCT`, but you can specify union mode by setting `union_default_mode`, values can be 'ALL', 'DISTINCT' or empty string. However, if you use `UNION` with setting `union_default_mode` to empty string, it will throw an exception. ## Implementation Details {#implementation-details} diff --git a/src/Core/Settings.h b/src/Core/Settings.h index f9431c133e3..50832ecee5c 100644 --- a/src/Core/Settings.h +++ b/src/Core/Settings.h @@ -401,7 +401,7 @@ class IColumn; M(Bool, allow_experimental_database_atomic, true, "Obsolete setting, does nothing. Will be removed after 2021-02-12", 0) \ M(Bool, allow_non_metadata_alters, true, "Allow to execute alters which affects not only tables metadata, but also data on disk", 0) \ M(Bool, enable_global_with_statement, false, "Propagate WITH statements to UNION queries and all subqueries", 0) \ - M(UnionMode, union_default_mode, UnionMode::ALL, "Set default Union Mode in SelectWithUnion query. Possible values: empty string, 'ALL', 'DISTINCT'. If empty, query without Union Mode will throw exception.", 0) + M(UnionMode, union_default_mode, UnionMode::DISTINCT, "Set default Union Mode in SelectWithUnion query. Possible values: empty string, 'ALL', 'DISTINCT'. If empty, query without Union Mode will throw exception.", 0) // End of COMMON_SETTINGS // Please add settings related to formats into the FORMAT_FACTORY_SETTINGS below. diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp index f4ef78dd183..19f08250430 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp @@ -1,3 +1,5 @@ +#include +#include #include #include #include @@ -40,26 +42,38 @@ InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery( if (!num_selects) throw Exception("Logical error: no children in ASTSelectWithUnionQuery", ErrorCodes::LOGICAL_ERROR); - /// For SELECT ... UNION/UNION ALL/UNION DISTINCT SELECT ... query, - /// rewrite ast with settings.union_default_mode + /// Rewrite ast with settings.union_default_mode if (num_selects > 1) { - if (ast.mode == ASTSelectWithUnionQuery::Mode::Unspecified) + const Settings & settings = context->getSettingsRef(); + for (auto & mode : ast.union_modes) { - const Settings & settings = context->getSettingsRef(); + if (mode == ASTSelectWithUnionQuery::Mode::Unspecified) + { - if (settings.union_default_mode == UnionMode::ALL) - ast.mode = ASTSelectWithUnionQuery::Mode::ALL; - else if (settings.union_default_mode == UnionMode::DISTINCT) - ast.mode = ASTSelectWithUnionQuery::Mode::DISTINCT; - else - throw Exception( - "Expected ALL or DISTINCT in SelectWithUnion query, because setting (union_default_mode) is empty", - DB::ErrorCodes::EXPECTED_ALL_OR_DISTINCT); + if (settings.union_default_mode == UnionMode::ALL) + mode = ASTSelectWithUnionQuery::Mode::ALL; + else if (settings.union_default_mode == UnionMode::DISTINCT) + mode = ASTSelectWithUnionQuery::Mode::DISTINCT; + else + throw Exception( + "Expected ALL or DISTINCT in SelectWithUnion query, because setting (union_default_mode) is empty", + DB::ErrorCodes::EXPECTED_ALL_OR_DISTINCT); + } + } + /// Optimize: if there is UNION DISTINCT, all previous UNION DISTINCT can be rewritten to UNION ALL. + /// Therefore we have at most one UNION DISTINCT in a sequence. + for (auto rit = ast.union_modes.rbegin(); rit != ast.union_modes.rend(); ++rit) + { + if (*rit == ASTSelectWithUnionQuery::Mode::DISTINCT) + { + /// Number of streams need to do a DISTINCT transform after unite + union_distinct_num = ast.union_modes.rend() - rit + 1; + for (auto mode_to_modify = ++rit; mode_to_modify != ast.union_modes.rend(); ++mode_to_modify) + *mode_to_modify = ASTSelectWithUnionQuery::Mode::ALL; + break; + } } - - if (ast.mode == ASTSelectWithUnionQuery::Mode::DISTINCT) - distinct_union = true; } /// Initialize interpreters for each SELECT query. @@ -207,31 +221,79 @@ void InterpreterSelectWithUnionQuery::buildQueryPlan(QueryPlan & query_plan) return; } - std::vector> plans(num_plans); - DataStreams data_streams(num_plans); - - for (size_t i = 0; i < num_plans; ++i) + /// All UNION streams in the chain does not need to do DISTINCT transform + if (union_distinct_num == 0) { - plans[i] = std::make_unique(); - nested_interpreters[i]->buildQueryPlan(*plans[i]); - data_streams[i] = plans[i]->getCurrentDataStream(); + std::vector> plans(num_plans); + DataStreams data_streams(num_plans); + + for (size_t i = 0; i < num_plans; ++i) + { + plans[i] = std::make_unique(); + nested_interpreters[i]->buildQueryPlan(*plans[i]); + data_streams[i] = plans[i]->getCurrentDataStream(); + } + + auto max_threads = context->getSettingsRef().max_threads; + auto union_step = std::make_unique(std::move(data_streams), result_header, max_threads); + + query_plan.unitePlans(std::move(union_step), std::move(plans)); } - auto max_threads = context->getSettingsRef().max_threads; - auto union_step = std::make_unique(std::move(data_streams), result_header, max_threads); - - query_plan.unitePlans(std::move(union_step), std::move(plans)); - - /// Add distinct transform for UNION DISTINCT query - if (distinct_union) + /// The first union_distinct_num UNION streams need to do a DISTINCT transform after unite + else { + QueryPlan distinct_query_plan; + + std::vector> plans(union_distinct_num); + DataStreams data_streams(union_distinct_num); + + for (size_t i = 0; i < union_distinct_num; ++i) + { + plans[i] = std::make_unique(); + nested_interpreters[i]->buildQueryPlan(*plans[i]); + data_streams[i] = plans[i]->getCurrentDataStream(); + } + + auto max_threads = context->getSettingsRef().max_threads; + auto union_step = std::make_unique(std::move(data_streams), result_header, max_threads); + + distinct_query_plan.unitePlans(std::move(union_step), std::move(plans)); + + /// Add distinct transform const Settings & settings = context->getSettingsRef(); SizeLimits limits(settings.max_rows_in_distinct, settings.max_bytes_in_distinct, settings.distinct_overflow_mode); - auto distinct_step = std::make_unique(query_plan.getCurrentDataStream(), limits, 0, result_header.getNames(), false); + auto distinct_step + = std::make_unique(distinct_query_plan.getCurrentDataStream(), limits, 0, result_header.getNames(), false); - query_plan.addStep(std::move(distinct_step)); + distinct_query_plan.addStep(std::move(distinct_step)); + + /// No other UNION streams after DISTINCT stream + if (num_plans == union_distinct_num) + { + query_plan = std::move(distinct_query_plan); + return; + } + + /// Build final UNION step + std::vector> final_plans(num_plans - union_distinct_num + 1); + DataStreams final_data_streams(num_plans - union_distinct_num + 1); + + final_plans[0] = std::make_unique(std::move(distinct_query_plan)); + final_data_streams[0] = final_plans[0]->getCurrentDataStream(); + + for (size_t i = 1; i < num_plans - union_distinct_num + 1; ++i) + { + final_plans[i] = std::make_unique(); + nested_interpreters[union_distinct_num + i - 1]->buildQueryPlan(*final_plans[i]); + final_data_streams[i] = final_plans[i]->getCurrentDataStream(); + } + + auto final_union_step = std::make_unique(std::move(final_data_streams), result_header, max_threads); + query_plan.unitePlans(std::move(final_union_step), std::move(final_plans)); } + } BlockIO InterpreterSelectWithUnionQuery::execute() diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.h b/src/Interpreters/InterpreterSelectWithUnionQuery.h index dceba011418..b41f966f336 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.h +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -54,7 +55,8 @@ private: size_t max_streams = 1; - bool distinct_union = false; + /// First union_distinct_num streams need to do a DISTINCT transform after unite + size_t union_distinct_num = 0; static Block getCommonHeaderForUnion(const Blocks & headers); }; diff --git a/src/Parsers/ASTSelectWithUnionQuery.cpp b/src/Parsers/ASTSelectWithUnionQuery.cpp index 1ef47257eae..41b34e14571 100644 --- a/src/Parsers/ASTSelectWithUnionQuery.cpp +++ b/src/Parsers/ASTSelectWithUnionQuery.cpp @@ -23,27 +23,21 @@ void ASTSelectWithUnionQuery::formatQueryImpl(const FormatSettings & settings, F { std::string indent_str = settings.one_line ? "" : std::string(4 * frame.indent, ' '); - std::string mode_str; - switch (mode) + auto mode_to_str = [&](auto mode) { - case Mode::Unspecified: - mode_str = ""; - break; - case Mode::ALL: - mode_str = "ALL"; - break; - case Mode::DISTINCT: - mode_str = "DISTINCT"; - break; - } + if (mode == Mode::Unspecified) + return ""; + else if (mode == Mode::ALL) + return "ALL"; + else + return "DISTINCT"; + }; for (ASTs::const_iterator it = list_of_selects->children.begin(); it != list_of_selects->children.end(); ++it) { if (it != list_of_selects->children.begin()) - settings.ostr << settings.nl_or_ws << indent_str - << (settings.hilite ? hilite_keyword : "") - << "UNION " << mode_str - << (settings.hilite ? hilite_none : "") + settings.ostr << settings.nl_or_ws << indent_str << (settings.hilite ? hilite_keyword : "") << "UNION " + << mode_to_str(union_modes[it - list_of_selects->children.begin() - 1]) << (settings.hilite ? hilite_none : "") << settings.nl_or_ws; (*it)->formatImpl(settings, state, frame); diff --git a/src/Parsers/ASTSelectWithUnionQuery.h b/src/Parsers/ASTSelectWithUnionQuery.h index 9c476d3674a..776ff033724 100644 --- a/src/Parsers/ASTSelectWithUnionQuery.h +++ b/src/Parsers/ASTSelectWithUnionQuery.h @@ -24,7 +24,9 @@ public: DISTINCT }; - Mode mode = Mode::Unspecified; + using Modes = std::vector; + + Modes union_modes; ASTPtr list_of_selects; }; diff --git a/src/Parsers/ExpressionListParsers.cpp b/src/Parsers/ExpressionListParsers.cpp index 26affe020b1..b9e5eb2a678 100644 --- a/src/Parsers/ExpressionListParsers.cpp +++ b/src/Parsers/ExpressionListParsers.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -99,6 +100,51 @@ bool ParserList::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) return true; } +bool ParserUnionList::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) +{ + ASTs elements; + + auto parse_element = [&] + { + ASTPtr element; + if (!elem_parser->parse(pos, element, expected)) + return false; + + elements.push_back(element); + return true; + }; + + /// Parse UNION type + auto parse_separator = [&] + { + if (s_union_parser->ignore(pos, expected)) + { + // SELECT ... UNION ALL SELECT ... + if (s_all_parser->check(pos, expected)) + { + union_modes.push_back(ASTSelectWithUnionQuery::Mode::ALL); + } + // SELECT ... UNION DISTINCT SELECT ... + else if (s_distinct_parser->check(pos, expected)) + { + union_modes.push_back(ASTSelectWithUnionQuery::Mode::DISTINCT); + } + // SELECT ... UNION SELECT ... + else + union_modes.push_back(ASTSelectWithUnionQuery::Mode::Unspecified); + return true; + } + return false; + }; + + if (!parseUtil(pos, parse_element, parse_separator)) + return false; + + auto list = std::make_shared(result_separator); + list->children = std::move(elements); + node = list; + return true; +} static bool parseOperator(IParser::Pos & pos, const char * op, Expected & expected) { diff --git a/src/Parsers/ExpressionListParsers.h b/src/Parsers/ExpressionListParsers.h index 93a47648a0b..798c127cde7 100644 --- a/src/Parsers/ExpressionListParsers.h +++ b/src/Parsers/ExpressionListParsers.h @@ -5,6 +5,7 @@ #include #include +#include namespace DB { @@ -73,6 +74,53 @@ private: char result_separator; }; +class ParserUnionList : public IParserBase +{ +public: + ParserUnionList(ParserPtr && elem_parser_, ParserPtr && s_union_parser_, ParserPtr && s_all_parser_, ParserPtr && s_distinct_parser_) + : elem_parser(std::move(elem_parser_)) + , s_union_parser(std::move(s_union_parser_)) + , s_all_parser(std::move(s_all_parser_)) + , s_distinct_parser(std::move(s_distinct_parser_)) + { + } + + template + static bool parseUtil(Pos & pos, const ElemFunc & parse_element, const SepFunc & parse_separator) + { + Pos begin = pos; + if (!parse_element()) + { + pos = begin; + return false; + } + + while (true) + { + begin = pos; + if (!parse_separator() || !parse_element()) + { + pos = begin; + return true; + } + } + + return false; + } + + auto getUnionModes() const { return union_modes; } + +protected: + const char * getName() const override { return "list of union elements"; } + bool parseImpl(Pos & pos, ASTPtr & node, Expected & expected) override; +private: + ParserPtr elem_parser; + ParserPtr s_union_parser; + ParserPtr s_all_parser; + ParserPtr s_distinct_parser; + char result_separator = ','; + ASTSelectWithUnionQuery::Modes union_modes; +}; /** An expression with an infix binary left-associative operator. * For example, a + b - c + d. diff --git a/src/Parsers/ParserSelectWithUnionQuery.cpp b/src/Parsers/ParserSelectWithUnionQuery.cpp index 5b98b083fd4..c1e748fbbd6 100644 --- a/src/Parsers/ParserSelectWithUnionQuery.cpp +++ b/src/Parsers/ParserSelectWithUnionQuery.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -27,52 +28,21 @@ bool ParserSelectWithUnionQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & { ASTPtr list_node; - ParserList parser_union(std::make_unique(), std::make_unique("UNION"), false); - ParserList parser_union_all(std::make_unique(), std::make_unique("UNION ALL"), false); - ParserList parser_union_distinct(std::make_unique(), std::make_unique("UNION DISTINCT"), false); + ParserUnionList parser( + std::make_unique(), + std::make_unique("UNION"), + std::make_unique("ALL"), + std::make_unique("DISTINCT")); - auto begin = pos; - auto current_expected = expected; - ASTSelectWithUnionQuery::Mode union_mode = ASTSelectWithUnionQuery::Mode::ALL; - - /// Parser SELECT lists and UNION type, must have UNION - auto union_parser = [&](auto & parser, auto mode) - { - if (!parser.parse(pos, list_node, expected)) - { - pos = begin; - expected = current_expected; - return false; - } - /// number of SELECT lists should not less than 2 - if (list_node->children.size() < 2) - { - pos = begin; - expected = current_expected; - return false; - } - union_mode = mode; - return true; - }; - - /// We first parse: SELECT ... UNION SELECT ... - /// SELECT ... UNION ALL SELECT ... - /// SELECT ... UNION DISTINCT SELECT ... - if (!union_parser(parser_union, ASTSelectWithUnionQuery::Mode::Unspecified) - && !union_parser(parser_union_all, ASTSelectWithUnionQuery::Mode::ALL) - && !union_parser(parser_union_distinct, ASTSelectWithUnionQuery::Mode::DISTINCT)) - { - /// If above parse failed, we back to parse SELECT without UNION - if (!parser_union.parse(pos, list_node, expected)) - return false; - } + if (!parser.parse(pos, list_node, expected)) + return false; auto select_with_union_query = std::make_shared(); node = select_with_union_query; select_with_union_query->list_of_selects = std::make_shared(); select_with_union_query->children.push_back(select_with_union_query->list_of_selects); - select_with_union_query->mode = union_mode; + select_with_union_query->union_modes = parser.getUnionModes(); // flatten inner union query for (auto & child : list_node->children) From 5b4981b4667dcf202b7c138a363e6f2e985795bf Mon Sep 17 00:00:00 2001 From: myrrc Date: Mon, 26 Oct 2020 16:27:58 +0300 Subject: [PATCH 048/425] added getFloat64 to ColumnDecimal, updated tests --- src/AggregateFunctions/AggregateFunctionAvg.h | 5 +-- .../AggregateFunctionAvgWeighted.h | 7 +--- src/Columns/ColumnDecimal.h | 3 ++ .../0_stateless/01035_avg_weighted.reference | 3 -- .../queries/0_stateless/01035_avg_weighted.sh | 18 ++++++++- .../01035_avg_weighted_long.reference | 0 .../0_stateless/01035_avg_weighted_long.sh | 39 +++++++++++++++++++ 7 files changed, 62 insertions(+), 13 deletions(-) delete mode 100644 tests/queries/0_stateless/01035_avg_weighted.reference mode change 100755 => 100644 tests/queries/0_stateless/01035_avg_weighted.sh create mode 100644 tests/queries/0_stateless/01035_avg_weighted_long.reference create mode 100755 tests/queries/0_stateless/01035_avg_weighted_long.sh diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index 66ab20cec73..16eb11143da 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -14,7 +14,7 @@ namespace DB template struct RationalFraction { - constexpr RationalFraction(): numerator(0), denominator(0) {} + constexpr RationalFraction(): numerator(0), denominator(0) {} Numerator numerator; Denominator denominator; @@ -114,8 +114,7 @@ public: void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const final { - const auto & column = static_cast &>(*columns[0]); - this->data(place).numerator += column.getData()[row_num]; + this->data(place).numerator += columns[0]->getFloat64(row_num); ++this->data(place).denominator; } diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h index c9b60cf9f50..ca9f0757cba 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h @@ -12,11 +12,8 @@ public: void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const override { - const auto & values = static_cast &>(*columns[0]); - const auto & weights = static_cast &>(*columns[1]); - - const auto value = values.getData()[row_num]; - const auto weight = weights.getData()[row_num]; + const auto value = columns[0]->getFloat64(row_num); + const auto weight = columns[1]->getFloat64(row_num); this->data(place).numerator += value * weight; this->data(place).denominator += weight; diff --git a/src/Columns/ColumnDecimal.h b/src/Columns/ColumnDecimal.h index c33ab34b541..1939d87e357 100644 --- a/src/Columns/ColumnDecimal.h +++ b/src/Columns/ColumnDecimal.h @@ -3,6 +3,7 @@ #include #include +#include "Core/DecimalFunctions.h" #include #include #include @@ -182,6 +183,8 @@ public: throw Exception("getDataAt() is not implemented for big integers", ErrorCodes::NOT_IMPLEMENTED); } + Float64 getFloat64(size_t n) const final { return DecimalUtils::convertTo(data[n], scale); } + StringRef serializeValueIntoArena(size_t n, Arena & arena, char const *& begin) const override; const char * deserializeAndInsertFromArena(const char * pos) override; void updateHashWithValue(size_t n, SipHash & hash) const override; diff --git a/tests/queries/0_stateless/01035_avg_weighted.reference b/tests/queries/0_stateless/01035_avg_weighted.reference deleted file mode 100644 index 7ace086f33b..00000000000 --- a/tests/queries/0_stateless/01035_avg_weighted.reference +++ /dev/null @@ -1,3 +0,0 @@ -2.3333333333333335 -nan -1 diff --git a/tests/queries/0_stateless/01035_avg_weighted.sh b/tests/queries/0_stateless/01035_avg_weighted.sh old mode 100755 new mode 100644 index 9b8d0bea14d..bb3e97a1d31 --- a/tests/queries/0_stateless/01035_avg_weighted.sh +++ b/tests/queries/0_stateless/01035_avg_weighted.sh @@ -6,10 +6,12 @@ CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, weight) FROM (SELECT t.1 AS x, t.2 AS weight FROM (SELECT arrayJoin([(1, 5), (2, 4), (3, 3), (4, 2), (5, 1)]) AS t));" ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, weight) FROM (SELECT t.1 AS x, t.2 AS weight FROM (SELECT arrayJoin([(1, 0), (2, 0), (3, 0), (4, 0), (5, 0)]) AS t));" +# Decimals not tested in types' combinations as they +# 1) Require different initialization (precision + scale) +# 2) Won't be used in these functions often types=("Int8" "Int16" "Int32" "Int64" "Int128" "Int256" "UInt8" "UInt16" "UInt32" "UInt64" "UInt128" "UInt256" - "Float32" "Float64" - "Decimal32" "Decimal64" "Decimal128" "Decimal256") + "Float32" "Float64") for left in "${types[@]}" do @@ -21,5 +23,17 @@ do done done +# Decimal types +dtypes=("32" "64" "128" "256") + +for left in "${dtypes[@]}" +do + for right in "${dtypes[@]}" + do + ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(toDecimal${left}(2, 4), toDecimal${right}(1, 4))" + done +done + + echo "$(${CLICKHOUSE_CLIENT} --server_logs_file=/dev/null --query="SELECT avgWeighted(['string'], toFloat64(0))" 2>&1)" \ | grep -c 'Code: 43. DB::Exception: .* DB::Exception:.* Types .* of arguments are non-conforming as arguments for aggregate function avgWeighted' diff --git a/tests/queries/0_stateless/01035_avg_weighted_long.reference b/tests/queries/0_stateless/01035_avg_weighted_long.reference new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/queries/0_stateless/01035_avg_weighted_long.sh b/tests/queries/0_stateless/01035_avg_weighted_long.sh new file mode 100755 index 00000000000..bb3e97a1d31 --- /dev/null +++ b/tests/queries/0_stateless/01035_avg_weighted_long.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) +. "$CUR_DIR"/../shell_config.sh + +${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, weight) FROM (SELECT t.1 AS x, t.2 AS weight FROM (SELECT arrayJoin([(1, 5), (2, 4), (3, 3), (4, 2), (5, 1)]) AS t));" +${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, weight) FROM (SELECT t.1 AS x, t.2 AS weight FROM (SELECT arrayJoin([(1, 0), (2, 0), (3, 0), (4, 0), (5, 0)]) AS t));" + +# Decimals not tested in types' combinations as they +# 1) Require different initialization (precision + scale) +# 2) Won't be used in these functions often +types=("Int8" "Int16" "Int32" "Int64" "Int128" "Int256" + "UInt8" "UInt16" "UInt32" "UInt64" "UInt128" "UInt256" + "Float32" "Float64") + +for left in "${types[@]}" +do + for right in "${types[@]}" + do + ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, w) FROM values('x ${left}, w ${right}', (4, 1), (1, 0), (10, 2))" + ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, w) FROM values('x ${left}, w ${right}', (8, 1), (122, 0))" + ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, w) FROM values('x ${left}, w ${right}', (0, 0), (1, 0))" + done +done + +# Decimal types +dtypes=("32" "64" "128" "256") + +for left in "${dtypes[@]}" +do + for right in "${dtypes[@]}" + do + ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(toDecimal${left}(2, 4), toDecimal${right}(1, 4))" + done +done + + +echo "$(${CLICKHOUSE_CLIENT} --server_logs_file=/dev/null --query="SELECT avgWeighted(['string'], toFloat64(0))" 2>&1)" \ + | grep -c 'Code: 43. DB::Exception: .* DB::Exception:.* Types .* of arguments are non-conforming as arguments for aggregate function avgWeighted' From 4e3b9656fad71b2c9efe9bda0882f71c223189ec Mon Sep 17 00:00:00 2001 From: myrrc Date: Mon, 26 Oct 2020 17:43:09 +0300 Subject: [PATCH 049/425] fixed tests, updated master --- .../queries/0_stateless/01035_avg_weighted.sh | 39 --- .../01035_avg_weighted_long.reference | 228 ++++++++++++++++++ .../0_stateless/01035_avg_weighted_long.sh | 21 +- 3 files changed, 240 insertions(+), 48 deletions(-) delete mode 100644 tests/queries/0_stateless/01035_avg_weighted.sh diff --git a/tests/queries/0_stateless/01035_avg_weighted.sh b/tests/queries/0_stateless/01035_avg_weighted.sh deleted file mode 100644 index bb3e97a1d31..00000000000 --- a/tests/queries/0_stateless/01035_avg_weighted.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env bash - -CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) -. "$CUR_DIR"/../shell_config.sh - -${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, weight) FROM (SELECT t.1 AS x, t.2 AS weight FROM (SELECT arrayJoin([(1, 5), (2, 4), (3, 3), (4, 2), (5, 1)]) AS t));" -${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, weight) FROM (SELECT t.1 AS x, t.2 AS weight FROM (SELECT arrayJoin([(1, 0), (2, 0), (3, 0), (4, 0), (5, 0)]) AS t));" - -# Decimals not tested in types' combinations as they -# 1) Require different initialization (precision + scale) -# 2) Won't be used in these functions often -types=("Int8" "Int16" "Int32" "Int64" "Int128" "Int256" - "UInt8" "UInt16" "UInt32" "UInt64" "UInt128" "UInt256" - "Float32" "Float64") - -for left in "${types[@]}" -do - for right in "${types[@]}" - do - ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, w) FROM values('x ${left}, w ${right}', (4, 1), (1, 0), (10, 2))" - ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, w) FROM values('x ${left}, w ${right}', (8, 1), (122, 0))" - ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, w) FROM values('x ${left}, w ${right}', (0, 0), (1, 0))" - done -done - -# Decimal types -dtypes=("32" "64" "128" "256") - -for left in "${dtypes[@]}" -do - for right in "${dtypes[@]}" - do - ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(toDecimal${left}(2, 4), toDecimal${right}(1, 4))" - done -done - - -echo "$(${CLICKHOUSE_CLIENT} --server_logs_file=/dev/null --query="SELECT avgWeighted(['string'], toFloat64(0))" 2>&1)" \ - | grep -c 'Code: 43. DB::Exception: .* DB::Exception:.* Types .* of arguments are non-conforming as arguments for aggregate function avgWeighted' diff --git a/tests/queries/0_stateless/01035_avg_weighted_long.reference b/tests/queries/0_stateless/01035_avg_weighted_long.reference index e69de29bb2d..584f3184414 100644 --- a/tests/queries/0_stateless/01035_avg_weighted_long.reference +++ b/tests/queries/0_stateless/01035_avg_weighted_long.reference @@ -0,0 +1,228 @@ +2.3333333333333335 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +8 +nan +1 +1 +1 +1 +1 +1 +1 +1 +1 +2 +2 +2 +2 +2 +2 +2 +2 +2 +2 +2 +2 +2 +2 +2 +2 +1 diff --git a/tests/queries/0_stateless/01035_avg_weighted_long.sh b/tests/queries/0_stateless/01035_avg_weighted_long.sh index bb3e97a1d31..2d764918026 100755 --- a/tests/queries/0_stateless/01035_avg_weighted_long.sh +++ b/tests/queries/0_stateless/01035_avg_weighted_long.sh @@ -6,23 +6,27 @@ CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, weight) FROM (SELECT t.1 AS x, t.2 AS weight FROM (SELECT arrayJoin([(1, 5), (2, 4), (3, 3), (4, 2), (5, 1)]) AS t));" ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, weight) FROM (SELECT t.1 AS x, t.2 AS weight FROM (SELECT arrayJoin([(1, 0), (2, 0), (3, 0), (4, 0), (5, 0)]) AS t));" -# Decimals not tested in types' combinations as they -# 1) Require different initialization (precision + scale) -# 2) Won't be used in these functions often -types=("Int8" "Int16" "Int32" "Int64" "Int128" "Int256" - "UInt8" "UInt16" "UInt32" "UInt64" "UInt128" "UInt256" - "Float32" "Float64") +types=("Int8" "Int16" "Int32" "Int64" "UInt8" "UInt16" "UInt32" "UInt64" "Float32" "Float64") for left in "${types[@]}" do for right in "${types[@]}" do ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, w) FROM values('x ${left}, w ${right}', (4, 1), (1, 0), (10, 2))" - ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, w) FROM values('x ${left}, w ${right}', (8, 1), (122, 0))" ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, w) FROM values('x ${left}, w ${right}', (0, 0), (1, 0))" done done +exttypes=("Int128" "Int256" "UInt256") + +for left in "${exttypes[@]}" +do + for right in "${exttypes[@]}" + do + ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(to${left}(1), to${right}(2))" + done +done + # Decimal types dtypes=("32" "64" "128" "256") @@ -34,6 +38,5 @@ do done done - echo "$(${CLICKHOUSE_CLIENT} --server_logs_file=/dev/null --query="SELECT avgWeighted(['string'], toFloat64(0))" 2>&1)" \ - | grep -c 'Code: 43. DB::Exception: .* DB::Exception:.* Types .* of arguments are non-conforming as arguments for aggregate function avgWeighted' + | grep -c 'Code: 43. DB::Exception: .* DB::Exception:.* Types .* are non-conforming as arguments for aggregate function avgWeighted' From 7bfd5d9e8deb1f9d4b35f3d6fa309b1f1f311cb6 Mon Sep 17 00:00:00 2001 From: feng lv Date: Wed, 28 Oct 2020 01:29:09 +0000 Subject: [PATCH 050/425] need fix --- .../InterpreterSelectWithUnionQuery.cpp | 367 +++++++++++------- .../InterpreterSelectWithUnionQuery.h | 29 +- src/Interpreters/executeQuery.cpp | 2 + src/Parsers/ASTSelectWithUnionQuery.cpp | 12 +- src/Parsers/ASTSelectWithUnionQuery.h | 8 +- src/Parsers/ExpressionListParsers.cpp | 2 +- src/Parsers/ExpressionListParsers.h | 1 - src/Parsers/IAST.cpp | 5 + src/Parsers/IAST.h | 2 + src/Parsers/ParserSelectWithUnionQuery.cpp | 22 +- ...istinct_and_setting_union_default_mode.sql | 15 +- 11 files changed, 290 insertions(+), 175 deletions(-) diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp index 19f08250430..92f88342241 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp @@ -1,9 +1,6 @@ -#include -#include #include #include #include -#include #include #include #include @@ -13,6 +10,7 @@ #include #include +#include namespace DB { @@ -24,6 +22,153 @@ namespace ErrorCodes extern const int EXPECTED_ALL_OR_DISTINCT; } +struct CustomizeUnionModeRewrite +{ + using TypeToVisit = ASTSelectWithUnionQuery; + + const UnionMode & default_union_mode; + + void visit(ASTSelectWithUnionQuery & union_select, ASTPtr &) + { + size_t num_selects = union_select.list_of_selects->children.size(); + if (!num_selects) + throw Exception("Logical error: no children in ASTSelectWithUnionQuery", ErrorCodes::LOGICAL_ERROR); + if (num_selects > 1) + { + for (auto & mode : union_select.union_modes) + { + if (mode == ASTSelectWithUnionQuery::Mode::Unspecified) + { + if (default_union_mode == UnionMode::ALL) + mode = ASTSelectWithUnionQuery::Mode::ALL; + else if (default_union_mode == UnionMode::DISTINCT) + mode = ASTSelectWithUnionQuery::Mode::DISTINCT; + else + throw Exception( + "Expected ALL or DISTINCT in SelectWithUnion query, because setting (union_default_mode) is empty", + DB::ErrorCodes::EXPECTED_ALL_OR_DISTINCT); + } + } + /// Optimize: if there is UNION DISTINCT, all previous UNION DISTINCT can be rewritten to UNION ALL. + /// Therefore we have at most one UNION DISTINCT in a sequence. + for (auto rit = union_select.union_modes.rbegin(); rit != union_select.union_modes.rend(); ++rit) + { + if (*rit == ASTSelectWithUnionQuery::Mode::DISTINCT) + { + /// Number of streams need to do a DISTINCT transform after unite + for (auto mode_to_modify = ++rit; mode_to_modify != union_select.union_modes.rend(); ++mode_to_modify) + *mode_to_modify = ASTSelectWithUnionQuery::Mode::ALL; + break; + } + } + } + } +}; + +using CustomizeUnionQueryOptimizeVisitor = InDepthNodeVisitor, true>; + +QueryPlan NestedInterpreter::buildQueryPlan(const std::shared_ptr & context, const Block & header) +{ + QueryPlan res; + if (type == Type::LEAF) + { + if (interpreter) + { + interpreter->buildQueryPlan(res); + return res; + } + else + throw Exception("Interpreter is not initialized.", ErrorCodes::LOGICAL_ERROR); + } + + if (num_distinct_union == 0) + { + std::vector> plans(children.size()); + DataStreams data_streams(children.size()); + + for (size_t i = 0; i < children.size(); ++i) + { + plans[i] = std::make_unique(children[i]->buildQueryPlan(context, header)); + data_streams[i] = plans[i]->getCurrentDataStream(); + } + + auto max_threads = context->getSettingsRef().max_threads; + auto union_step = std::make_unique(std::move(data_streams), header, max_threads); + + res.unitePlans(std::move(union_step), std::move(plans)); + return res; + } + /// The first union_distinct_num UNION streams need to do a DISTINCT transform after unite + else + { + QueryPlan distinct_query_plan; + + std::vector> plans(num_distinct_union); + DataStreams data_streams(num_distinct_union); + + for (size_t i = 0; i < num_distinct_union; ++i) + { + plans[i] = std::make_unique(children[i]->buildQueryPlan(context, header)); + data_streams[i] = plans[i]->getCurrentDataStream(); + } + + auto max_threads = context->getSettingsRef().max_threads; + auto union_step = std::make_unique(std::move(data_streams), header, max_threads); + + distinct_query_plan.unitePlans(std::move(union_step), std::move(plans)); + + /// Add distinct transform + const Settings & settings = context->getSettingsRef(); + SizeLimits limits(settings.max_rows_in_distinct, settings.max_bytes_in_distinct, settings.distinct_overflow_mode); + + auto distinct_step + = std::make_unique(distinct_query_plan.getCurrentDataStream(), limits, 0, header.getNames(), false); + + distinct_query_plan.addStep(std::move(distinct_step)); + + /// No other UNION streams after DISTINCT stream + if (num_distinct_union == children.size()) + { + return distinct_query_plan; + } + + /// Build final UNION step + std::vector> final_plans(children.size() - num_distinct_union + 1); + DataStreams final_data_streams(children.size() - num_distinct_union + 1); + + final_plans[0] = std::make_unique(std::move(distinct_query_plan)); + final_data_streams[0] = final_plans[0]->getCurrentDataStream(); + + for (size_t i = 1; i < children.size() - num_distinct_union + 1; ++i) + { + final_plans[i] = std::make_unique(children[num_distinct_union + i - 1]->buildQueryPlan(context, header)); + final_data_streams[i] = final_plans[i]->getCurrentDataStream(); + } + + auto final_union_step = std::make_unique(std::move(final_data_streams), header, max_threads); + res.unitePlans(std::move(final_union_step), std::move(final_plans)); + return res; + } +} + +void NestedInterpreter::ignoreWithTotals() +{ + if (type == Type::LEAF) + { + if (interpreter) + interpreter->ignoreWithTotals(); + else + { + throw Exception("Interpreter is not initialized.", ErrorCodes::LOGICAL_ERROR); + } + return; + } + for (auto & child : children) + { + child->ignoreWithTotals(); + } +} + InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery( const ASTPtr & query_ptr_, @@ -35,71 +180,48 @@ InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery( context(std::make_shared(context_)), max_streams(context->getSettingsRef().max_threads) { - auto & ast = query_ptr->as(); - - size_t num_selects = ast.list_of_selects->children.size(); - - if (!num_selects) + std::cout << "\n\n In InterpreterSelectWithUnionQuery\n\n"; + const auto & ast = query_ptr->as(); + std::cout << "\n\n before throw\n\n"; + if (!ast.flatten_nodes_list) + std::cout << "\n\n flatten_nodes_list is null\n\n"; + size_t total_num_selects = ast.flatten_nodes_list->children.size(); + std::cout << "\n\n after get num throw\n\n"; + if (!total_num_selects) throw Exception("Logical error: no children in ASTSelectWithUnionQuery", ErrorCodes::LOGICAL_ERROR); + std::cout << "\n\n after throw\n\n"; /// Rewrite ast with settings.union_default_mode - if (num_selects > 1) - { - const Settings & settings = context->getSettingsRef(); - for (auto & mode : ast.union_modes) - { - if (mode == ASTSelectWithUnionQuery::Mode::Unspecified) - { + const auto & settings = context->getSettingsRef(); + CustomizeUnionQueryOptimizeVisitor::Data data_union_mode{settings.union_default_mode}; + CustomizeUnionQueryOptimizeVisitor(data_union_mode).visit(query_ptr); - if (settings.union_default_mode == UnionMode::ALL) - mode = ASTSelectWithUnionQuery::Mode::ALL; - else if (settings.union_default_mode == UnionMode::DISTINCT) - mode = ASTSelectWithUnionQuery::Mode::DISTINCT; - else - throw Exception( - "Expected ALL or DISTINCT in SelectWithUnion query, because setting (union_default_mode) is empty", - DB::ErrorCodes::EXPECTED_ALL_OR_DISTINCT); - } - } - /// Optimize: if there is UNION DISTINCT, all previous UNION DISTINCT can be rewritten to UNION ALL. - /// Therefore we have at most one UNION DISTINCT in a sequence. - for (auto rit = ast.union_modes.rbegin(); rit != ast.union_modes.rend(); ++rit) - { - if (*rit == ASTSelectWithUnionQuery::Mode::DISTINCT) - { - /// Number of streams need to do a DISTINCT transform after unite - union_distinct_num = ast.union_modes.rend() - rit + 1; - for (auto mode_to_modify = ++rit; mode_to_modify != ast.union_modes.rend(); ++mode_to_modify) - *mode_to_modify = ASTSelectWithUnionQuery::Mode::ALL; - break; - } - } - } - - /// Initialize interpreters for each SELECT query. + /// We first build nested interpreters for each select query, then using this nested interpreters to build Tree Structured nested interpreter. /// Note that we pass 'required_result_column_names' to first SELECT. /// And for the rest, we pass names at the corresponding positions of 'required_result_column_names' in the result of first SELECT, /// because names could be different. - nested_interpreters.reserve(num_selects); - - std::vector required_result_column_names_for_other_selects(num_selects); - if (!required_result_column_names.empty() && num_selects > 1) + std::vector> interpreters; + interpreters.reserve(total_num_selects); + std::vector required_result_column_names_for_other_selects(total_num_selects); + if (!required_result_column_names.empty() && total_num_selects > 1) { /// Result header if there are no filtering by 'required_result_column_names'. /// We use it to determine positions of 'required_result_column_names' in SELECT clause. - Block full_result_header = InterpreterSelectQuery( - ast.list_of_selects->children.at(0), *context, options.copy().analyze().noModify()).getSampleBlock(); + Block full_result_header + = InterpreterSelectQuery(ast.flatten_nodes_list->children.at(0), *context, options.copy().analyze().noModify()) + .getSampleBlock(); std::vector positions_of_required_result_columns(required_result_column_names.size()); for (size_t required_result_num = 0, size = required_result_column_names.size(); required_result_num < size; ++required_result_num) positions_of_required_result_columns[required_result_num] = full_result_header.getPositionByName(required_result_column_names[required_result_num]); - for (size_t query_num = 1; query_num < num_selects; ++query_num) + for (size_t query_num = 1; query_num < total_num_selects; ++query_num) { - Block full_result_header_for_current_select = InterpreterSelectQuery( - ast.list_of_selects->children.at(query_num), *context, options.copy().analyze().noModify()).getSampleBlock(); + Block full_result_header_for_current_select + = InterpreterSelectQuery(ast.flatten_nodes_list->children.at(query_num), *context, options.copy().analyze().noModify()) + .getSampleBlock(); if (full_result_header_for_current_select.columns() != full_result_header.columns()) throw Exception("Different number of columns in UNION ALL elements:\n" @@ -114,29 +236,26 @@ InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery( } } - for (size_t query_num = 0; query_num < num_selects; ++query_num) + for (size_t query_num = 0; query_num < total_num_selects; ++query_num) { const Names & current_required_result_column_names = query_num == 0 ? required_result_column_names : required_result_column_names_for_other_selects[query_num]; - nested_interpreters.emplace_back(std::make_unique( - ast.list_of_selects->children.at(query_num), - *context, - options, - current_required_result_column_names)); + interpreters.emplace_back(std::make_shared( + ast.flatten_nodes_list->children.at(query_num), *context, options, current_required_result_column_names)); } /// Determine structure of the result. - if (num_selects == 1) + if (total_num_selects == 1) { - result_header = nested_interpreters.front()->getSampleBlock(); + result_header = interpreters.front()->getSampleBlock(); } else { - Blocks headers(num_selects); - for (size_t query_num = 0; query_num < num_selects; ++query_num) - headers[query_num] = nested_interpreters[query_num]->getSampleBlock(); + Blocks headers(total_num_selects); + for (size_t query_num = 0; query_num < total_num_selects; ++query_num) + headers[query_num] = interpreters[query_num]->getSampleBlock(); result_header = getCommonHeaderForUnion(headers); } @@ -144,7 +263,7 @@ InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery( /// InterpreterSelectWithUnionQuery ignores limits if all nested interpreters ignore limits. bool all_nested_ignore_limits = true; bool all_nested_ignore_quota = true; - for (auto & interpreter : nested_interpreters) + for (auto & interpreter : interpreters) { if (!interpreter->ignoreLimits()) all_nested_ignore_limits = false; @@ -153,8 +272,46 @@ InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery( } options.ignore_limits |= all_nested_ignore_limits; options.ignore_quota |= all_nested_ignore_quota; + + int index = 0; + buildNestedTreeInterpreter(query_ptr, nested_interpreter, interpreters, index); } +/// We build a Tree Structured nested interpreters to build QueryPlan later +/// The structure of build nested interpreters is same as AST Tree +void InterpreterSelectWithUnionQuery::buildNestedTreeInterpreter( + const ASTPtr & ast_ptr, + std::shared_ptr nested_interpreter_, + std::vector> & interpreters, + int & index) +{ + std::cout << "\n\n in build \n\n"; + if (auto inner_union = ast_ptr->as()) + { + auto internal_intepreter = std::make_shared(); + const auto & union_modes = inner_union->union_modes; + + for (auto rit = union_modes.rbegin(); rit != union_modes.rend(); ++rit) + { + if (*rit == ASTSelectWithUnionQuery::Mode::DISTINCT) + { + internal_intepreter->num_distinct_union = union_modes.rend() - rit + 1; + break; + } + } + + nested_interpreter_->children.push_back(internal_intepreter); + + for (auto & child : inner_union->list_of_selects->children) + buildNestedTreeInterpreter(child, internal_intepreter, interpreters, index); + return; + } + + auto leaf_interpreter = std::make_shared(); + leaf_interpreter->type = NestedInterpreter::Type::LEAF; + leaf_interpreter->interpreter = interpreters[index++]; + nested_interpreter_->children.push_back(leaf_interpreter); +} Block InterpreterSelectWithUnionQuery::getCommonHeaderForUnion(const Blocks & headers) { @@ -212,88 +369,7 @@ Block InterpreterSelectWithUnionQuery::getSampleBlock( void InterpreterSelectWithUnionQuery::buildQueryPlan(QueryPlan & query_plan) { - size_t num_plans = nested_interpreters.size(); - - /// Skip union for single interpreter. - if (num_plans == 1) - { - nested_interpreters.front()->buildQueryPlan(query_plan); - return; - } - - /// All UNION streams in the chain does not need to do DISTINCT transform - if (union_distinct_num == 0) - { - std::vector> plans(num_plans); - DataStreams data_streams(num_plans); - - for (size_t i = 0; i < num_plans; ++i) - { - plans[i] = std::make_unique(); - nested_interpreters[i]->buildQueryPlan(*plans[i]); - data_streams[i] = plans[i]->getCurrentDataStream(); - } - - auto max_threads = context->getSettingsRef().max_threads; - auto union_step = std::make_unique(std::move(data_streams), result_header, max_threads); - - query_plan.unitePlans(std::move(union_step), std::move(plans)); - } - - /// The first union_distinct_num UNION streams need to do a DISTINCT transform after unite - else - { - QueryPlan distinct_query_plan; - - std::vector> plans(union_distinct_num); - DataStreams data_streams(union_distinct_num); - - for (size_t i = 0; i < union_distinct_num; ++i) - { - plans[i] = std::make_unique(); - nested_interpreters[i]->buildQueryPlan(*plans[i]); - data_streams[i] = plans[i]->getCurrentDataStream(); - } - - auto max_threads = context->getSettingsRef().max_threads; - auto union_step = std::make_unique(std::move(data_streams), result_header, max_threads); - - distinct_query_plan.unitePlans(std::move(union_step), std::move(plans)); - - /// Add distinct transform - const Settings & settings = context->getSettingsRef(); - SizeLimits limits(settings.max_rows_in_distinct, settings.max_bytes_in_distinct, settings.distinct_overflow_mode); - - auto distinct_step - = std::make_unique(distinct_query_plan.getCurrentDataStream(), limits, 0, result_header.getNames(), false); - - distinct_query_plan.addStep(std::move(distinct_step)); - - /// No other UNION streams after DISTINCT stream - if (num_plans == union_distinct_num) - { - query_plan = std::move(distinct_query_plan); - return; - } - - /// Build final UNION step - std::vector> final_plans(num_plans - union_distinct_num + 1); - DataStreams final_data_streams(num_plans - union_distinct_num + 1); - - final_plans[0] = std::make_unique(std::move(distinct_query_plan)); - final_data_streams[0] = final_plans[0]->getCurrentDataStream(); - - for (size_t i = 1; i < num_plans - union_distinct_num + 1; ++i) - { - final_plans[i] = std::make_unique(); - nested_interpreters[union_distinct_num + i - 1]->buildQueryPlan(*final_plans[i]); - final_data_streams[i] = final_plans[i]->getCurrentDataStream(); - } - - auto final_union_step = std::make_unique(std::move(final_data_streams), result_header, max_threads); - query_plan.unitePlans(std::move(final_union_step), std::move(final_plans)); - } - + query_plan = nested_interpreter->buildQueryPlan(context, result_header); } BlockIO InterpreterSelectWithUnionQuery::execute() @@ -314,8 +390,7 @@ BlockIO InterpreterSelectWithUnionQuery::execute() void InterpreterSelectWithUnionQuery::ignoreWithTotals() { - for (auto & interpreter : nested_interpreters) - interpreter->ignoreWithTotals(); + nested_interpreter->ignoreWithTotals(); } } diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.h b/src/Interpreters/InterpreterSelectWithUnionQuery.h index b41f966f336..4af73b3c723 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.h +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.h @@ -1,10 +1,10 @@ #pragma once -#include #include #include #include #include +#include namespace DB { @@ -13,6 +13,22 @@ class Context; class InterpreterSelectQuery; class QueryPlan; +struct NestedInterpreter +{ + ~NestedInterpreter() { } + enum class Type + { + LEAF, + INTERNAL + }; + Type type = Type::INTERNAL; + std::vector> children; + std::shared_ptr interpreter; + size_t num_distinct_union = 0; + QueryPlan buildQueryPlan(const std::shared_ptr & context, const Block & header); + void ignoreWithTotals(); +}; + /** Interprets one or multiple SELECT queries inside UNION/UNION ALL/UNION DISTINCT chain. */ class InterpreterSelectWithUnionQuery : public IInterpreter @@ -49,16 +65,19 @@ private: ASTPtr query_ptr; std::shared_ptr context; - std::vector> nested_interpreters; + std::shared_ptr nested_interpreter; Block result_header; size_t max_streams = 1; - /// First union_distinct_num streams need to do a DISTINCT transform after unite - size_t union_distinct_num = 0; - static Block getCommonHeaderForUnion(const Blocks & headers); + + static void buildNestedTreeInterpreter( + const ASTPtr & ast_ptr, + std::shared_ptr nested_interpreter_, + std::vector> & interpreters, + int & index); }; } diff --git a/src/Interpreters/executeQuery.cpp b/src/Interpreters/executeQuery.cpp index 57c557c5658..8b4b35785c1 100644 --- a/src/Interpreters/executeQuery.cpp +++ b/src/Interpreters/executeQuery.cpp @@ -70,10 +70,12 @@ namespace ErrorCodes static void checkASTSizeLimits(const IAST & ast, const Settings & settings) { + std::cout << "\n\n before check limits"; if (settings.max_ast_depth) ast.checkDepth(settings.max_ast_depth); if (settings.max_ast_elements) ast.checkSize(settings.max_ast_elements); + std::cout << "\n\n after check limits"; } diff --git a/src/Parsers/ASTSelectWithUnionQuery.cpp b/src/Parsers/ASTSelectWithUnionQuery.cpp index 41b34e14571..5deae6f653f 100644 --- a/src/Parsers/ASTSelectWithUnionQuery.cpp +++ b/src/Parsers/ASTSelectWithUnionQuery.cpp @@ -2,6 +2,7 @@ #include #include +#include namespace DB { @@ -14,6 +15,9 @@ ASTPtr ASTSelectWithUnionQuery::clone() const res->list_of_selects = list_of_selects->clone(); res->children.push_back(res->list_of_selects); + res->union_modes.insert(res->union_modes.begin(), union_modes.begin(), union_modes.end()); + res->flatten_nodes_list = flatten_nodes_list->clone(); + cloneOutputOptions(*res); return res; } @@ -21,8 +25,10 @@ ASTPtr ASTSelectWithUnionQuery::clone() const void ASTSelectWithUnionQuery::formatQueryImpl(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const { + std::cout << "\n\nin format \n\n"; std::string indent_str = settings.one_line ? "" : std::string(4 * frame.indent, ' '); +#if 0 auto mode_to_str = [&](auto mode) { if (mode == Mode::Unspecified) @@ -32,16 +38,18 @@ void ASTSelectWithUnionQuery::formatQueryImpl(const FormatSettings & settings, F else return "DISTINCT"; }; +#endif - for (ASTs::const_iterator it = list_of_selects->children.begin(); it != list_of_selects->children.end(); ++it) + for (ASTs::const_iterator it = flatten_nodes_list->children.begin(); it != flatten_nodes_list->children.end(); ++it) { if (it != list_of_selects->children.begin()) settings.ostr << settings.nl_or_ws << indent_str << (settings.hilite ? hilite_keyword : "") << "UNION " - << mode_to_str(union_modes[it - list_of_selects->children.begin() - 1]) << (settings.hilite ? hilite_none : "") + // << mode_to_str(union_modes[it - list_of_selects->children.begin() - 1]) << (settings.hilite ? hilite_none : "") << settings.nl_or_ws; (*it)->formatImpl(settings, state, frame); } + std::cout << "\n\nafter format \n\n"; } } diff --git a/src/Parsers/ASTSelectWithUnionQuery.h b/src/Parsers/ASTSelectWithUnionQuery.h index 776ff033724..67ec21e246c 100644 --- a/src/Parsers/ASTSelectWithUnionQuery.h +++ b/src/Parsers/ASTSelectWithUnionQuery.h @@ -5,9 +5,8 @@ namespace DB { - -/** Single SELECT query or multiple SELECT queries with UNION ALL. - * Only UNION ALL is possible. No UNION DISTINCT or plain UNION. +/** Single SELECT query or multiple SELECT queries with UNION + * or UNION or UNION DISTINCT */ class ASTSelectWithUnionQuery : public ASTQueryWithOutput { @@ -29,6 +28,9 @@ public: Modes union_modes; ASTPtr list_of_selects; + + /// we need flatten_nodes to help build nested_interpreter + ASTPtr flatten_nodes_list; }; } diff --git a/src/Parsers/ExpressionListParsers.cpp b/src/Parsers/ExpressionListParsers.cpp index 8b9a36422af..220d304751e 100644 --- a/src/Parsers/ExpressionListParsers.cpp +++ b/src/Parsers/ExpressionListParsers.cpp @@ -139,7 +139,7 @@ bool ParserUnionList::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) if (!parseUtil(pos, parse_element, parse_separator)) return false; - auto list = std::make_shared(result_separator); + auto list = std::make_shared(); list->children = std::move(elements); node = list; return true; diff --git a/src/Parsers/ExpressionListParsers.h b/src/Parsers/ExpressionListParsers.h index a6f1be712c4..d93952923a9 100644 --- a/src/Parsers/ExpressionListParsers.h +++ b/src/Parsers/ExpressionListParsers.h @@ -119,7 +119,6 @@ private: ParserPtr s_union_parser; ParserPtr s_all_parser; ParserPtr s_distinct_parser; - char result_separator = ','; ASTSelectWithUnionQuery::Modes union_modes; }; diff --git a/src/Parsers/IAST.cpp b/src/Parsers/IAST.cpp index 8ee4154541b..d9f0b3562bc 100644 --- a/src/Parsers/IAST.cpp +++ b/src/Parsers/IAST.cpp @@ -76,13 +76,18 @@ void IAST::updateTreeHashImpl(SipHash & hash_state) const size_t IAST::checkDepthImpl(size_t max_depth, size_t level) const { + std::cout << "\n\n in check depth impl\n\n"; + std::cout << "\nchildren.size = " << children.size() << "\n\n"; size_t res = level + 1; for (const auto & child : children) { + std::cout << "\n in for\n\n"; if (level >= max_depth) throw Exception("AST is too deep. Maximum: " + toString(max_depth), ErrorCodes::TOO_DEEP_AST); res = std::max(res, child->checkDepthImpl(max_depth, level + 1)); + std::cout << "\n after for\n\n"; } + std::cout << "\n\n after impl\n\n"; return res; } diff --git a/src/Parsers/IAST.h b/src/Parsers/IAST.h index c88c80021d6..d1fca853592 100644 --- a/src/Parsers/IAST.h +++ b/src/Parsers/IAST.h @@ -11,6 +11,7 @@ #include #include +#include class SipHash; @@ -91,6 +92,7 @@ public: */ size_t checkDepth(size_t max_depth) const { + std::cout << "\n in check depth\n\n"; return checkDepthImpl(max_depth, 0); } diff --git a/src/Parsers/ParserSelectWithUnionQuery.cpp b/src/Parsers/ParserSelectWithUnionQuery.cpp index c1e748fbbd6..ee03da753e4 100644 --- a/src/Parsers/ParserSelectWithUnionQuery.cpp +++ b/src/Parsers/ParserSelectWithUnionQuery.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -9,13 +10,14 @@ namespace DB { - static void getSelectsFromUnionListNode(ASTPtr & ast_select, ASTs & selects) { if (auto * inner_union = ast_select->as()) { for (auto & child : inner_union->list_of_selects->children) + { getSelectsFromUnionListNode(child, selects); + } return; } @@ -23,9 +25,9 @@ static void getSelectsFromUnionListNode(ASTPtr & ast_select, ASTs & selects) selects.push_back(std::move(ast_select)); } - bool ParserSelectWithUnionQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) { + std::cout << "\n\n in ParserSelectWithUnionQuery\n\n"; ASTPtr list_node; ParserUnionList parser( @@ -42,11 +44,23 @@ bool ParserSelectWithUnionQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & node = select_with_union_query; select_with_union_query->list_of_selects = std::make_shared(); select_with_union_query->children.push_back(select_with_union_query->list_of_selects); + select_with_union_query->list_of_selects->children.insert( + select_with_union_query->list_of_selects->children.begin(), list_node->children.begin(), list_node->children.end()); select_with_union_query->union_modes = parser.getUnionModes(); - // flatten inner union query + /// NOTE: We cann't simply flatten inner union query now, since we may have different union mode in query, + /// so flatten may change it's semantics. For example: + /// flatten `SELECT 1 UNION (SELECT 1 UNION ALL SELETC 1)` -> `SELECT 1 UNION SELECT 1 UNION ALL SELECT 1` + /// We can use a non-flatten AST to help build QueryPlan in InterpreterSelectWithUnionQuery + + select_with_union_query->flatten_nodes_list = std::make_shared(); + for (auto & child : list_node->children) - getSelectsFromUnionListNode(child, select_with_union_query->list_of_selects->children); + { + getSelectsFromUnionListNode(child, select_with_union_query->flatten_nodes_list->children); + } + std::cout << "\n\n after ParserSelectWithUnionQuery\n\n"; + std::cout << "\n\n flatten_nodes.size =" << select_with_union_query->flatten_nodes_list->children.size() << "\n\n"; return true; } diff --git a/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.sql b/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.sql index 1a6e582aebe..12fe204591c 100644 --- a/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.sql +++ b/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.sql @@ -1,13 +1,2 @@ -SELECT * FROM numbers(10) UNION SELECT * FROM numbers(10); -SELECT * FROM numbers(10) UNION ALL SELECT * FROM numbers(10); -SELECT * FROM numbers(10) UNION DISTINCT SELECT * FROM numbers(10); - -SET union_default_mode='ALL'; -SELECT * FROM numbers(10) UNION SELECT * FROM numbers(10); -SELECT * FROM numbers(10) UNION ALL SELECT * FROM numbers(10); -SELECT * FROM numbers(10) UNION DISTINCT SELECT * FROM numbers(10); - -SET union_default_mode='DISTINCT'; -SELECT * FROM numbers(10) UNION SELECT * FROM numbers(10); -SELECT * FROM numbers(10) UNION ALL SELECT * FROM numbers(10); -SELECT * FROM numbers(10) UNION DISTINCT SELECT * FROM numbers(10); +SELECT 1; +(((((((SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1; From 18fbb3dc23212ed03d6788aff612c3a7eac405f6 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Fri, 30 Oct 2020 00:29:10 +0300 Subject: [PATCH 051/425] some drafts --- .../AggregateFunctionSumMap.h | 2 +- src/Core/Settings.h | 2 + src/DataTypes/DataTypeTuple.cpp | 126 ++++++++++--- src/Formats/FormatFactory.cpp | 2 + src/Formats/FormatSettings.h | 4 + src/Functions/tuple.cpp | 2 +- src/IO/HTTPCommon.cpp | 5 +- src/IO/ReadHelpers.cpp | 8 +- src/Parsers/ExpressionElementParsers.cpp | 1 + .../Impl/JSONEachRowRowOutputFormat.cpp | 67 ++++++- .../Formats/Impl/JSONEachRowRowOutputFormat.h | 9 +- ...JSONEachRowWithProgressRowOutputFormat.cpp | 14 +- .../Formats/Impl/JSONRowOutputFormat.cpp | 166 +++++++++++++----- .../Formats/Impl/JSONRowOutputFormat.h | 13 +- src/Storages/StorageFile.cpp | 13 ++ 15 files changed, 343 insertions(+), 91 deletions(-) diff --git a/src/AggregateFunctions/AggregateFunctionSumMap.h b/src/AggregateFunctions/AggregateFunctionSumMap.h index 456334ee9c3..6533903bbc1 100644 --- a/src/AggregateFunctions/AggregateFunctionSumMap.h +++ b/src/AggregateFunctions/AggregateFunctionSumMap.h @@ -105,7 +105,7 @@ public: types.emplace_back(std::make_shared(result_type)); } - return std::make_shared(types); + return std::make_shared(types, Strings{"keys", "values"}); } static const auto & getArgumentColumns(const IColumn**& columns) diff --git a/src/Core/Settings.h b/src/Core/Settings.h index fdc1ba4b28a..791ed49b7c7 100644 --- a/src/Core/Settings.h +++ b/src/Core/Settings.h @@ -439,6 +439,8 @@ class IColumn; M(Bool, output_format_json_quote_denormals, false, "Enables '+nan', '-nan', '+inf', '-inf' outputs in JSON output format.", 0) \ \ M(Bool, output_format_json_escape_forward_slashes, true, "Controls escaping forward slashes for string outputs in JSON output format. This is intended for compatibility with JavaScript. Don't confuse with backslashes that are always escaped.", 0) \ + M(Bool, output_format_json_write_metadata, true, "Write metadata in JSON output format.", 0) \ + M(Bool, output_format_json_named_tuple_as_object, false, "Serialize named tuple columns as JSON objects.", 0) \ \ M(UInt64, output_format_pretty_max_rows, 10000, "Rows limit for Pretty formats.", 0) \ M(UInt64, output_format_pretty_max_column_pad_width, 250, "Maximum width to pad all values in a column in Pretty formats.", 0) \ diff --git a/src/DataTypes/DataTypeTuple.cpp b/src/DataTypes/DataTypeTuple.cpp index 453cb7f37a3..f37e28dcef4 100644 --- a/src/DataTypes/DataTypeTuple.cpp +++ b/src/DataTypes/DataTypeTuple.cpp @@ -25,12 +25,13 @@ namespace DB namespace ErrorCodes { - extern const int LOGICAL_ERROR; - extern const int EMPTY_DATA_PASSED; - extern const int NUMBER_OF_ARGUMENTS_DOESNT_MATCH; - extern const int DUPLICATE_COLUMN; extern const int BAD_ARGUMENTS; + extern const int DUPLICATE_COLUMN; + extern const int EMPTY_DATA_PASSED; + extern const int LOGICAL_ERROR; extern const int NOT_FOUND_COLUMN_IN_BLOCK; + extern const int NUMBER_OF_ARGUMENTS_DOESNT_MATCH; + extern const int SIZES_OF_COLUMNS_IN_TUPLE_DOESNT_MATCH; } @@ -145,6 +146,20 @@ static void addElementSafe(const DataTypes & elems, IColumn & column, F && impl) try { impl(); + + // Check that all columns now have the same size. + size_t new_size = column.size(); + for (auto i : ext::range(1, ext::size(elems))) + { + const auto & element_column = extractElementColumn(column, i); + if (element_column.size() != new_size) + { + // This is not a logical error because it may work with + // user-supplied data. + throw Exception(ErrorCodes::SIZES_OF_COLUMNS_IN_TUPLE_DOESNT_MATCH, + "Cannot read a tuple because not all elements are present"); + } + } } catch (...) { @@ -157,6 +172,7 @@ static void addElementSafe(const DataTypes & elems, IColumn & column, F && impl) throw; } + } @@ -213,37 +229,93 @@ void DataTypeTuple::deserializeText(IColumn & column, ReadBuffer & istr, const F void DataTypeTuple::serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr, const FormatSettings & settings) const { - writeChar('[', ostr); - for (const auto i : ext::range(0, ext::size(elems))) + if (settings.json.named_tuple_as_object + && have_explicit_names) { - if (i != 0) - writeChar(',', ostr); - elems[i]->serializeAsTextJSON(extractElementColumn(column, i), row_num, ostr, settings); + writeChar('{', ostr); + for (const auto i : ext::range(0, ext::size(elems))) + { + if (i != 0) + { + writeChar(',', ostr); + } + writeJSONString(names[i], ostr, settings); + writeChar(':', ostr); + elems[i]->serializeAsTextJSON(extractElementColumn(column, i), row_num, ostr, settings); + } + writeChar('}', ostr); + } + else + { + writeChar('[', ostr); + for (const auto i : ext::range(0, ext::size(elems))) + { + if (i != 0) + writeChar(',', ostr); + elems[i]->serializeAsTextJSON(extractElementColumn(column, i), row_num, ostr, settings); + } + writeChar(']', ostr); } - writeChar(']', ostr); } void DataTypeTuple::deserializeTextJSON(IColumn & column, ReadBuffer & istr, const FormatSettings & settings) const { - const size_t size = elems.size(); - assertChar('[', istr); - - addElementSafe(elems, column, [&] + if (settings.json.named_tuple_as_object + && have_explicit_names) { - for (const auto i : ext::range(0, size)) - { - skipWhitespaceIfAny(istr); - if (i != 0) - { - assertChar(',', istr); - skipWhitespaceIfAny(istr); - } - elems[i]->deserializeAsTextJSON(extractElementColumn(column, i), istr, settings); - } - }); + skipWhitespaceIfAny(istr); + assertChar('{', istr); + skipWhitespaceIfAny(istr); - skipWhitespaceIfAny(istr); - assertChar(']', istr); + addElementSafe(elems, column, [&] + { + // Require all elements but in arbitrary order. + for (auto i : ext::range(0, ext::size(elems))) + { + if (i > 0) + { + skipWhitespaceIfAny(istr); + assertChar(',', istr); + skipWhitespaceIfAny(istr); + } + + std::string name; + readDoubleQuotedString(name, istr); + skipWhitespaceIfAny(istr); + assertChar(':', istr); + skipWhitespaceIfAny(istr); + + const size_t element_pos = getPositionByName(name); + auto & element_column = extractElementColumn(column, element_pos); + elems[element_pos]->deserializeAsTextJSON(element_column, istr, settings); + } + }); + + skipWhitespaceIfAny(istr); + assertChar('}', istr); + } + else + { + const size_t size = elems.size(); + assertChar('[', istr); + + addElementSafe(elems, column, [&] + { + for (const auto i : ext::range(0, size)) + { + skipWhitespaceIfAny(istr); + if (i != 0) + { + assertChar(',', istr); + skipWhitespaceIfAny(istr); + } + elems[i]->deserializeAsTextJSON(extractElementColumn(column, i), istr, settings); + } + }); + + skipWhitespaceIfAny(istr); + assertChar(']', istr); + } } void DataTypeTuple::serializeTextXML(const IColumn & column, size_t row_num, WriteBuffer & ostr, const FormatSettings & settings) const diff --git a/src/Formats/FormatFactory.cpp b/src/Formats/FormatFactory.cpp index 4dc5b816420..d7601166136 100644 --- a/src/Formats/FormatFactory.cpp +++ b/src/Formats/FormatFactory.cpp @@ -99,6 +99,8 @@ static FormatSettings getOutputFormatSetting(const Settings & settings, const Co format_settings.json.quote_64bit_integers = settings.output_format_json_quote_64bit_integers; format_settings.json.quote_denormals = settings.output_format_json_quote_denormals; format_settings.json.escape_forward_slashes = settings.output_format_json_escape_forward_slashes; + format_settings.json.write_metadata = settings.output_format_json_write_metadata; + //format_settings.json.named_tuple_as_object = settings.output_format_json_named_tuple_as_object; format_settings.csv.delimiter = settings.format_csv_delimiter; format_settings.csv.allow_single_quotes = settings.format_csv_allow_single_quotes; format_settings.csv.allow_double_quotes = settings.format_csv_allow_double_quotes; diff --git a/src/Formats/FormatSettings.h b/src/Formats/FormatSettings.h index 8d7c3cdb49f..102ae4a5a24 100644 --- a/src/Formats/FormatSettings.h +++ b/src/Formats/FormatSettings.h @@ -22,6 +22,10 @@ struct FormatSettings bool quote_64bit_integers = true; bool quote_denormals = true; bool escape_forward_slashes = true; + bool write_metadata = false; + bool named_tuple_as_object = true; + bool list_of_rows = false; + bool serialize_as_strings = false; }; JSON json; diff --git a/src/Functions/tuple.cpp b/src/Functions/tuple.cpp index 6d24391ed46..6522723dde4 100644 --- a/src/Functions/tuple.cpp +++ b/src/Functions/tuple.cpp @@ -68,7 +68,7 @@ public: /// Create named tuple if possible. if (DataTypeTuple::canBeCreatedWithNames(names)) - return std::make_shared(types, names, false); + return std::make_shared(types, names); return std::make_shared(types); } diff --git a/src/IO/HTTPCommon.cpp b/src/IO/HTTPCommon.cpp index 6b7f30cd9b6..7c3242ba0c8 100644 --- a/src/IO/HTTPCommon.cpp +++ b/src/IO/HTTPCommon.cpp @@ -236,7 +236,10 @@ void assertResponseIsOk(const Poco::Net::HTTPRequest & request, Poco::Net::HTTPR { auto status = response.getStatus(); - if (!(status == Poco::Net::HTTPResponse::HTTP_OK || (isRedirect(status) && allow_redirects))) + if (!(status == Poco::Net::HTTPResponse::HTTP_OK + || status == Poco::Net::HTTPResponse::HTTP_CREATED + || status == Poco::Net::HTTPResponse::HTTP_ACCEPTED + || (isRedirect(status) && allow_redirects))) { std::stringstream error_message; error_message << "Received error from remote server " << request.getURI() << ". HTTP status code: " << status << " " diff --git a/src/IO/ReadHelpers.cpp b/src/IO/ReadHelpers.cpp index 900e9c7b535..3ff8158096e 100644 --- a/src/IO/ReadHelpers.cpp +++ b/src/IO/ReadHelpers.cpp @@ -493,8 +493,12 @@ template static void readAnyQuotedStringInto(Vector & s, ReadBuffer & buf) { if (buf.eof() || *buf.position() != quote) - throw Exception("Cannot parse quoted string: expected opening quote", - ErrorCodes::CANNOT_PARSE_QUOTED_STRING); + { + throw Exception(ErrorCodes::CANNOT_PARSE_QUOTED_STRING, + "Cannot parse quoted string: expected opening quote '{}', got '{}'", + std::string{quote}, buf.eof() ? "EOF" : std::string{*buf.position()}); + } + ++buf.position(); while (!buf.eof()) diff --git a/src/Parsers/ExpressionElementParsers.cpp b/src/Parsers/ExpressionElementParsers.cpp index 3c45bd005a9..8d25609a7a7 100644 --- a/src/Parsers/ExpressionElementParsers.cpp +++ b/src/Parsers/ExpressionElementParsers.cpp @@ -1475,6 +1475,7 @@ bool ParserExpressionElement::parseImpl(Pos & pos, ASTPtr & node, Expected & exp || ParserFunction().parse(pos, node, expected) || ParserQualifiedAsterisk().parse(pos, node, expected) || ParserAsterisk().parse(pos, node, expected) + //|| ParserTupleElementExpression().parse(pos, node, expected) || ParserCompoundIdentifier().parse(pos, node, expected) || ParserSubstitution().parse(pos, node, expected) || ParserMySQLGlobalVariable().parse(pos, node, expected); diff --git a/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp b/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp index b3b83949642..2459c6f2451 100644 --- a/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp +++ b/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp @@ -12,9 +12,9 @@ JSONEachRowRowOutputFormat::JSONEachRowRowOutputFormat( WriteBuffer & out_, const Block & header_, const RowOutputFormatParams & params_, - const FormatSettings & settings_, - bool yield_strings_) - : IRowOutputFormat(header_, out_, params_), settings(settings_), yield_strings(yield_strings_) + const FormatSettings & settings_) + : IRowOutputFormat(header_, out_, params_), + settings(settings_) { const auto & sample = getPort(PortKind::Main).getHeader(); size_t columns = sample.columns(); @@ -33,7 +33,7 @@ void JSONEachRowRowOutputFormat::writeField(const IColumn & column, const IDataT writeString(fields[field_number], out); writeChar(':', out); - if (yield_strings) + if (settings.json.serialize_as_strings) { WriteBufferFromOwnString buf; @@ -61,29 +61,78 @@ void JSONEachRowRowOutputFormat::writeRowStartDelimiter() void JSONEachRowRowOutputFormat::writeRowEndDelimiter() { - writeCString("}\n", out); + writeCString("}", out); field_number = 0; } +void JSONEachRowRowOutputFormat::writeRowBetweenDelimiter() +{ + if (settings.json.list_of_rows) + { + writeCString(",\n", out); + } + else + { + writeCString("\n", out); + } +} + + +void JSONEachRowRowOutputFormat::writePrefix() +{ + if (settings.json.list_of_rows) + { + writeCString("[\n", out); + } +} + + +void JSONEachRowRowOutputFormat::writeSuffix() +{ + if (settings.json.list_of_rows) + { + writeCString("\n]\n", out); + } +} + + void registerOutputFormatProcessorJSONEachRow(FormatFactory & factory) { factory.registerOutputFormatProcessor("JSONEachRow", []( WriteBuffer & buf, const Block & sample, const RowOutputFormatParams & params, - const FormatSettings & format_settings) + const FormatSettings & _format_settings) { - return std::make_shared(buf, sample, params, format_settings, false); + FormatSettings settings = _format_settings; + settings.json.serialize_as_strings = false; + return std::make_shared(buf, sample, params, + settings); }); factory.registerOutputFormatProcessor("JSONStringsEachRow", []( WriteBuffer & buf, const Block & sample, const RowOutputFormatParams & params, - const FormatSettings & format_settings) + const FormatSettings & _format_settings) { - return std::make_shared(buf, sample, params, format_settings, true); + FormatSettings settings = _format_settings; + settings.json.serialize_as_strings = true; + return std::make_shared(buf, sample, params, + settings); + }); + + factory.registerOutputFormatProcessor("JSONList", []( + WriteBuffer & buf, + const Block & sample, + const RowOutputFormatParams & params, + const FormatSettings & _format_settings) + { + FormatSettings settings = _format_settings; + settings.json.list_of_rows = true; + return std::make_shared(buf, sample, params, + settings); }); } diff --git a/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.h b/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.h index bd9cfff68c5..38760379056 100644 --- a/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.h +++ b/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.h @@ -19,8 +19,7 @@ public: WriteBuffer & out_, const Block & header_, const RowOutputFormatParams & params_, - const FormatSettings & settings_, - bool yield_strings_); + const FormatSettings & settings_); String getName() const override { return "JSONEachRowRowOutputFormat"; } @@ -28,6 +27,9 @@ public: void writeFieldDelimiter() override; void writeRowStartDelimiter() override; void writeRowEndDelimiter() override; + void writeRowBetweenDelimiter() override; + void writePrefix() override; + void writeSuffix() override; protected: /// No totals and extremes. @@ -40,9 +42,6 @@ private: Names fields; FormatSettings settings; - -protected: - bool yield_strings; }; } diff --git a/src/Processors/Formats/Impl/JSONEachRowWithProgressRowOutputFormat.cpp b/src/Processors/Formats/Impl/JSONEachRowWithProgressRowOutputFormat.cpp index 48c23abd680..4612ce99f05 100644 --- a/src/Processors/Formats/Impl/JSONEachRowWithProgressRowOutputFormat.cpp +++ b/src/Processors/Formats/Impl/JSONEachRowWithProgressRowOutputFormat.cpp @@ -34,18 +34,24 @@ void registerOutputFormatProcessorJSONEachRowWithProgress(FormatFactory & factor WriteBuffer & buf, const Block & sample, const RowOutputFormatParams & params, - const FormatSettings & format_settings) + const FormatSettings & _format_settings) { - return std::make_shared(buf, sample, params, format_settings, false); + FormatSettings settings = _format_settings; + settings.json.serialize_as_strings = false; + return std::make_shared(buf, + sample, params, settings); }); factory.registerOutputFormatProcessor("JSONStringsEachRowWithProgress", []( WriteBuffer & buf, const Block & sample, const RowOutputFormatParams & params, - const FormatSettings & format_settings) + const FormatSettings & _format_settings) { - return std::make_shared(buf, sample, params, format_settings, true); + FormatSettings settings = _format_settings; + settings.json.serialize_as_strings = true; + return std::make_shared(buf, + sample, params, settings); }); } diff --git a/src/Processors/Formats/Impl/JSONRowOutputFormat.cpp b/src/Processors/Formats/Impl/JSONRowOutputFormat.cpp index 517f126060f..87eb88720c2 100644 --- a/src/Processors/Formats/Impl/JSONRowOutputFormat.cpp +++ b/src/Processors/Formats/Impl/JSONRowOutputFormat.cpp @@ -1,12 +1,45 @@ +#include + +#include +#include +#include +#include #include #include -#include #include namespace DB { +void JSONRowOutputFormat::addColumn(String name, DataTypePtr type, + bool & need_validate_utf8, std::string tabs) +{ + if (!type->textCanContainOnlyValidUTF8()) + need_validate_utf8 = true; + + WriteBufferFromOwnString buf; + writeJSONString(name, buf, settings); + + const auto * as_tuple = typeid_cast(type.get()); + const bool recurse = settings.json.named_tuple_as_object + && as_tuple && as_tuple->haveExplicitNames(); + + fields.emplace_back(FieldInfo{buf.str(), type, recurse, tabs}); + + if (recurse) + { + const auto & types = as_tuple->getElements(); + const auto & names = as_tuple->getElementNames(); + + assert(types.size() == names.size()); + for (size_t i = 0; i < types.size(); i++) + { + addColumn(names[i], types[i], need_validate_utf8, tabs + "\t"); + } + } +} + JSONRowOutputFormat::JSONRowOutputFormat( WriteBuffer & out_, const Block & header, @@ -17,20 +50,22 @@ JSONRowOutputFormat::JSONRowOutputFormat( { const auto & sample = getPort(PortKind::Main).getHeader(); NamesAndTypesList columns(sample.getNamesAndTypesList()); - fields.assign(columns.begin(), columns.end()); + fields.reserve(columns.size()); + + const std::string initial_tabs = settings.json.write_metadata ? "\t\t\t" : "\t\t"; bool need_validate_utf8 = false; - for (size_t i = 0; i < sample.columns(); ++i) + for (const auto & column : columns) { - if (!sample.getByPosition(i).type->textCanContainOnlyValidUTF8()) - need_validate_utf8 = true; - - WriteBufferFromOwnString buf; - writeJSONString(fields[i].name, buf, settings); - - fields[i].name = buf.str(); + addColumn(column.name, column.type, need_validate_utf8, initial_tabs); } +// for (size_t i = 0; i < fields.size(); i++) +// { +// fmt::print(stderr, "{}: '{}' '{}' '{}\n", +// i, fields[i].name, fields[i].type->getName(), fields[i].recurse); +// } + if (need_validate_utf8) { validating_ostr = std::make_unique(out); @@ -43,40 +78,76 @@ JSONRowOutputFormat::JSONRowOutputFormat( void JSONRowOutputFormat::writePrefix() { - writeCString("{\n", *ostr); - writeCString("\t\"meta\":\n", *ostr); - writeCString("\t[\n", *ostr); - - for (size_t i = 0; i < fields.size(); ++i) + if (settings.json.write_metadata) { - writeCString("\t\t{\n", *ostr); + writeCString("{\n", *ostr); + writeCString("\t\"meta\":\n", *ostr); + writeCString("\t[\n", *ostr); - writeCString("\t\t\t\"name\": ", *ostr); - writeString(fields[i].name, *ostr); - writeCString(",\n", *ostr); - writeCString("\t\t\t\"type\": ", *ostr); - writeJSONString(fields[i].type->getName(), *ostr, settings); - writeChar('\n', *ostr); + for (size_t i = 0; i < fields.size(); ++i) + { + writeCString("\t\t{\n", *ostr); - writeCString("\t\t}", *ostr); - if (i + 1 < fields.size()) - writeChar(',', *ostr); + writeCString("\t\t\t\"name\": ", *ostr); + writeString(fields[i].name, *ostr); + writeCString(",\n", *ostr); + writeCString("\t\t\t\"type\": ", *ostr); + writeJSONString(fields[i].type->getName(), *ostr, settings); + writeChar('\n', *ostr); + + writeCString("\t\t}", *ostr); + if (i + 1 < fields.size()) + writeChar(',', *ostr); + writeChar('\n', *ostr); + } + + writeCString("\t],\n", *ostr); writeChar('\n', *ostr); + writeCString("\t\"data\":\n", *ostr); + writeCString("\t", *ostr); } - - writeCString("\t],\n", *ostr); - writeChar('\n', *ostr); - writeCString("\t\"data\":\n", *ostr); - writeCString("\t[\n", *ostr); + writeCString("[\n", *ostr); } - void JSONRowOutputFormat::writeField(const IColumn & column, const IDataType & type, size_t row_num) { - writeCString("\t\t\t", *ostr); +// fmt::print(stderr, "write field column '{}' type '{}'\n", +// column.getName(), type.getName()); + + writeString(fields[field_number].tabs, *ostr); writeString(fields[field_number].name, *ostr); writeCString(": ", *ostr); + // Sanity check: the input column type is the same as in header block. + // If I don't write out the raw pointer explicitly, for some reason clang + // complains about side effect in dereferencing the pointer: + // src/Processors/Formats/Impl/JSONRowOutputFormat.cpp:120:35: warning: expression with side effects will be evaluated despite being used as an operand to 'typeid' [-Wpotentially-evaluated-expression] + [[maybe_unused]] const IDataType * raw_ptr = fields[field_number].type.get(); + assert(typeid(type) == typeid(*raw_ptr)); + + if (fields[field_number].recurse) + { + const auto & tabs = fields[field_number].tabs; + ++field_number; + const auto & tuple_column = assert_cast(column); + const auto & nested_columns = tuple_column.getColumns(); + writeCString("{\n", *ostr); + for (size_t i = 0; i < nested_columns.size(); i++) + { + // field_number is incremented inside, and should match the nested + // columns. + writeField(*nested_columns[i], *fields[field_number].type, row_num); + if (i + 1 < nested_columns.size()) + { + writeCString(",", *ostr); + } + writeCString("\n", *ostr); + } + writeString(tabs, *ostr); + writeCString("}", *ostr); + return; + } + if (yield_strings) { WriteBufferFromOwnString buf; @@ -144,6 +215,12 @@ void JSONRowOutputFormat::writeSuffix() void JSONRowOutputFormat::writeBeforeTotals() { + if (!settings.json.write_metadata) + { + throw Exception(ErrorCodes::BAD_ARGUMENTS, + "Cannot output totals in JSON format without metadata"); + } + writeCString(",\n", *ostr); writeChar('\n', *ostr); writeCString("\t\"totals\":\n", *ostr); @@ -172,6 +249,12 @@ void JSONRowOutputFormat::writeAfterTotals() void JSONRowOutputFormat::writeBeforeExtremes() { + if (!settings.json.write_metadata) + { + throw Exception(ErrorCodes::BAD_ARGUMENTS, + "Cannot output extremes in JSON format without metadata"); + } + writeCString(",\n", *ostr); writeChar('\n', *ostr); writeCString("\t\"extremes\":\n", *ostr); @@ -217,17 +300,20 @@ void JSONRowOutputFormat::writeAfterExtremes() void JSONRowOutputFormat::writeLastSuffix() { - writeCString(",\n\n", *ostr); - writeCString("\t\"rows\": ", *ostr); - writeIntText(row_count, *ostr); + if (settings.json.write_metadata) + { + writeCString(",\n\n", *ostr); + writeCString("\t\"rows\": ", *ostr); + writeIntText(row_count, *ostr); - writeRowsBeforeLimitAtLeast(); + writeRowsBeforeLimitAtLeast(); - if (settings.write_statistics) - writeStatistics(); + if (settings.write_statistics) + writeStatistics(); - writeChar('\n', *ostr); - writeCString("}\n", *ostr); + writeChar('\n', *ostr); + writeCString("}\n", *ostr); + } ostr->next(); } diff --git a/src/Processors/Formats/Impl/JSONRowOutputFormat.h b/src/Processors/Formats/Impl/JSONRowOutputFormat.h index 88b74afbabd..a4593663aeb 100644 --- a/src/Processors/Formats/Impl/JSONRowOutputFormat.h +++ b/src/Processors/Formats/Impl/JSONRowOutputFormat.h @@ -70,6 +70,8 @@ protected: void writeRowsBeforeLimitAtLeast(); void writeStatistics(); + void addColumn(String name, DataTypePtr type, bool & need_validate_utf8, + std::string tabs); std::unique_ptr validating_ostr; /// Validates UTF-8 sequences, replaces bad sequences with replacement character. WriteBuffer * ostr; @@ -78,7 +80,16 @@ protected: size_t row_count = 0; bool applied_limit = false; size_t rows_before_limit = 0; - NamesAndTypes fields; + + struct FieldInfo + { + String name; + DataTypePtr type; + bool recurse = false; + std::string tabs; + }; + + std::vector fields; Progress progress; Stopwatch watch; diff --git a/src/Storages/StorageFile.cpp b/src/Storages/StorageFile.cpp index 8c7cd7b63d7..956e88f6641 100644 --- a/src/Storages/StorageFile.cpp +++ b/src/Storages/StorageFile.cpp @@ -166,6 +166,19 @@ StorageFile::StorageFile(int table_fd_, CommonArguments args) StorageFile::StorageFile(const std::string & table_path_, const std::string & user_files_path, CommonArguments args) : StorageFile(args) { + fmt::print(stderr, "Create storage file from file at \n{}\n", StackTrace().toString()); + + const auto & changes = args.context.getSettings().changes(); + for (const auto & change : changes) + { + fmt::print(stderr, "Changed setting '{}' to '{}'\n", + change.name, toString(change.value)); + } + + fmt::print(stderr, "delimiter = {}\n", + toString(args.context.getSettings().get("format_csv_delimiter"))); + + is_db_table = false; paths = getPathsList(table_path_, user_files_path, args.context); From 1a3fe377a6ce6196e139d5ceb49d73b74f9501f4 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Fri, 30 Oct 2020 04:52:37 +0300 Subject: [PATCH 052/425] prepare for format settings in File engine --- src/Formats/FormatFactory.cpp | 85 +++++--- src/Formats/FormatFactory.h | 15 +- src/Formats/FormatSettings.h | 190 +++++++++--------- src/Processors/Formats/IRowInputFormat.cpp | 2 - src/Processors/Formats/IRowInputFormat.h | 3 - src/Processors/Formats/IRowOutputFormat.h | 8 - .../Formats/Impl/ProtobufRowOutputFormat.cpp | 32 +-- .../Formats/Impl/ProtobufRowOutputFormat.h | 4 +- .../Formats/Impl/ValuesBlockInputFormat.cpp | 2 - src/Storages/Kafka/KafkaBlockOutputStream.cpp | 17 +- .../RabbitMQ/RabbitMQBlockOutputStream.cpp | 17 +- src/Storages/StorageFile.cpp | 52 +++-- src/Storages/StorageFile.h | 6 +- 13 files changed, 232 insertions(+), 201 deletions(-) diff --git a/src/Formats/FormatFactory.cpp b/src/Formats/FormatFactory.cpp index d7601166136..c7c3c6c595a 100644 --- a/src/Formats/FormatFactory.cpp +++ b/src/Formats/FormatFactory.cpp @@ -41,8 +41,10 @@ const FormatFactory::Creators & FormatFactory::getCreators(const String & name) } -static FormatSettings getInputFormatSetting(const Settings & settings, const Context & context) +FormatSettings getInputFormatSettings(const Context & context) { + const auto & settings = context.getSettingsRef(); + FormatSettings format_settings; format_settings.csv.delimiter = settings.format_csv_delimiter; format_settings.csv.allow_single_quotes = settings.format_csv_allow_single_quotes; @@ -92,8 +94,10 @@ static FormatSettings getInputFormatSetting(const Settings & settings, const Con return format_settings; } -static FormatSettings getOutputFormatSetting(const Settings & settings, const Context & context) +FormatSettings getOutputFormatSettings(const Context & context) { + const auto & settings = context.getSettingsRef(); + FormatSettings format_settings; format_settings.enable_streaming = settings.output_format_enable_streaming; format_settings.json.quote_64bit_integers = settings.output_format_json_quote_64bit_integers; @@ -144,7 +148,7 @@ BlockInputStreamPtr FormatFactory::getInput( const Block & sample, const Context & context, UInt64 max_block_size, - ReadCallback callback) const + std::optional format_settings) const { if (name == "Native") return std::make_shared(buf, sample, 0); @@ -155,10 +159,12 @@ BlockInputStreamPtr FormatFactory::getInput( if (!input_getter) throw Exception("Format " + name + " is not suitable for input", ErrorCodes::FORMAT_IS_NOT_SUITABLE_FOR_INPUT); - const Settings & settings = context.getSettingsRef(); - FormatSettings format_settings = getInputFormatSetting(settings, context); + if (!format_settings) + { + format_settings = getInputFormatSettings(context); + } - return input_getter(buf, sample, max_block_size, callback ? callback : ReadCallback(), format_settings); + return input_getter(buf, sample, max_block_size, {}, *format_settings); } const Settings & settings = context.getSettingsRef(); @@ -184,17 +190,21 @@ BlockInputStreamPtr FormatFactory::getInput( if (!input_getter) throw Exception("Format " + name + " is not suitable for input", ErrorCodes::FORMAT_IS_NOT_SUITABLE_FOR_INPUT); - FormatSettings format_settings = getInputFormatSetting(settings, context); + if (!format_settings) + { + format_settings = getInputFormatSettings(context); + } RowInputFormatParams row_input_format_params; row_input_format_params.max_block_size = max_block_size; - row_input_format_params.allow_errors_num = format_settings.input_allow_errors_num; - row_input_format_params.allow_errors_ratio = format_settings.input_allow_errors_ratio; - row_input_format_params.callback = std::move(callback); + row_input_format_params.allow_errors_num = format_settings->input_allow_errors_num; + row_input_format_params.allow_errors_ratio = format_settings->input_allow_errors_ratio; row_input_format_params.max_execution_time = settings.max_execution_time; row_input_format_params.timeout_overflow_mode = settings.timeout_overflow_mode; - auto input_creator_params = ParallelParsingBlockInputStream::InputCreatorParams{sample, row_input_format_params, format_settings}; + auto input_creator_params = + ParallelParsingBlockInputStream::InputCreatorParams{sample, + row_input_format_params, *format_settings}; ParallelParsingBlockInputStream::Params params{buf, input_getter, input_creator_params, file_segmentation_engine, static_cast(settings.max_threads), @@ -202,13 +212,15 @@ BlockInputStreamPtr FormatFactory::getInput( return std::make_shared(params); } - auto format = getInputFormat(name, buf, sample, context, max_block_size, std::move(callback)); + auto format = getInputFormat(name, buf, sample, context, max_block_size, + format_settings); return std::make_shared(std::move(format)); } -BlockOutputStreamPtr FormatFactory::getOutput( - const String & name, WriteBuffer & buf, const Block & sample, const Context & context, WriteCallback callback, const bool ignore_no_row_delimiter) const +BlockOutputStreamPtr FormatFactory::getOutput(const String & name, + WriteBuffer & buf, const Block & sample, const Context & context, + WriteCallback callback, std::optional format_settings) const { if (!getCreators(name).output_processor_creator) { @@ -216,18 +228,23 @@ BlockOutputStreamPtr FormatFactory::getOutput( if (!output_getter) throw Exception("Format " + name + " is not suitable for output", ErrorCodes::FORMAT_IS_NOT_SUITABLE_FOR_OUTPUT); - const Settings & settings = context.getSettingsRef(); - FormatSettings format_settings = getOutputFormatSetting(settings, context); + if (!format_settings) + { + format_settings = getOutputFormatSettings(context); + } /** Materialization is needed, because formats can use the functions `IDataType`, * which only work with full columns. */ return std::make_shared( - output_getter(buf, sample, std::move(callback), format_settings), sample); + output_getter(buf, sample, std::move(callback), *format_settings), + sample); } - auto format = getOutputFormat(name, buf, sample, context, std::move(callback), ignore_no_row_delimiter); - return std::make_shared(std::make_shared(format), sample); + auto format = getOutputFormat(name, buf, sample, context, std::move(callback), + format_settings); + return std::make_shared( + std::make_shared(format), sample); } @@ -237,24 +254,27 @@ InputFormatPtr FormatFactory::getInputFormat( const Block & sample, const Context & context, UInt64 max_block_size, - ReadCallback callback) const + std::optional format_settings) const { const auto & input_getter = getCreators(name).input_processor_creator; if (!input_getter) throw Exception("Format " + name + " is not suitable for input", ErrorCodes::FORMAT_IS_NOT_SUITABLE_FOR_INPUT); const Settings & settings = context.getSettingsRef(); - FormatSettings format_settings = getInputFormatSetting(settings, context); + + if (!format_settings) + { + format_settings = getInputFormatSettings(context); + } RowInputFormatParams params; params.max_block_size = max_block_size; - params.allow_errors_num = format_settings.input_allow_errors_num; - params.allow_errors_ratio = format_settings.input_allow_errors_ratio; - params.callback = std::move(callback); + params.allow_errors_num = format_settings->input_allow_errors_num; + params.allow_errors_ratio = format_settings->input_allow_errors_ratio; params.max_execution_time = settings.max_execution_time; params.timeout_overflow_mode = settings.timeout_overflow_mode; - auto format = input_getter(buf, sample, params, format_settings); + auto format = input_getter(buf, sample, params, *format_settings); /// It's a kludge. Because I cannot remove context from values format. if (auto * values = typeid_cast(format.get())) @@ -265,26 +285,29 @@ InputFormatPtr FormatFactory::getInputFormat( OutputFormatPtr FormatFactory::getOutputFormat( - const String & name, WriteBuffer & buf, const Block & sample, const Context & context, WriteCallback callback, const bool ignore_no_row_delimiter) const + const String & name, WriteBuffer & buf, const Block & sample, + const Context & context, WriteCallback callback, + std::optional format_settings) const { const auto & output_getter = getCreators(name).output_processor_creator; if (!output_getter) throw Exception("Format " + name + " is not suitable for output", ErrorCodes::FORMAT_IS_NOT_SUITABLE_FOR_OUTPUT); - const Settings & settings = context.getSettingsRef(); - FormatSettings format_settings = getOutputFormatSetting(settings, context); + if (!format_settings) + { + format_settings = getOutputFormatSettings(context); + } RowOutputFormatParams params; - params.ignore_no_row_delimiter = ignore_no_row_delimiter; params.callback = std::move(callback); /** TODO: Materialization is needed, because formats can use the functions `IDataType`, * which only work with full columns. */ - auto format = output_getter(buf, sample, params, format_settings); + auto format = output_getter(buf, sample, params, *format_settings); /// Enable auto-flush for streaming mode. Currently it is needed by INSERT WATCH query. - if (format_settings.enable_streaming) + if (format_settings->enable_streaming) format->setAutoFlush(); /// It's a kludge. Because I cannot remove context from MySQL format. diff --git a/src/Formats/FormatFactory.h b/src/Formats/FormatFactory.h index d49414e3944..78d4d61ea09 100644 --- a/src/Formats/FormatFactory.h +++ b/src/Formats/FormatFactory.h @@ -3,6 +3,7 @@ #include #include #include +#include #include #include @@ -16,6 +17,7 @@ namespace DB class Block; class Context; struct FormatSettings; +struct Settings; class ReadBuffer; class WriteBuffer; @@ -32,6 +34,8 @@ struct RowOutputFormatParams; using InputFormatPtr = std::shared_ptr; using OutputFormatPtr = std::shared_ptr; +FormatSettings getInputFormatSettings(const Context & context); +FormatSettings getOutputFormatSettings(const Context & context); /** Allows to create an IBlockInputStream or IBlockOutputStream by the name of the format. * Note: format and compression are independent things. @@ -105,10 +109,11 @@ public: const Block & sample, const Context & context, UInt64 max_block_size, - ReadCallback callback = {}) const; + std::optional format_settings = std::nullopt) const; BlockOutputStreamPtr getOutput(const String & name, WriteBuffer & buf, - const Block & sample, const Context & context, WriteCallback callback = {}, const bool ignore_no_row_delimiter = false) const; + const Block & sample, const Context & context, WriteCallback callback = {}, + std::optional format_settings = std::nullopt) const; InputFormatPtr getInputFormat( const String & name, @@ -116,10 +121,12 @@ public: const Block & sample, const Context & context, UInt64 max_block_size, - ReadCallback callback = {}) const; + std::optional format_settings = std::nullopt) const; OutputFormatPtr getOutputFormat( - const String & name, WriteBuffer & buf, const Block & sample, const Context & context, WriteCallback callback = {}, const bool ignore_no_row_delimiter = false) const; + const String & name, WriteBuffer & buf, const Block & sample, + const Context & context, WriteCallback callback = {}, + std::optional format_settings = std::nullopt) const; /// Register format by its name. void registerInputFormat(const String & name, InputCreator input_creator); diff --git a/src/Formats/FormatSettings.h b/src/Formats/FormatSettings.h index 102ae4a5a24..76dc7bc1729 100644 --- a/src/Formats/FormatSettings.h +++ b/src/Formats/FormatSettings.h @@ -17,80 +17,6 @@ struct FormatSettings /// Option means that each chunk of data need to be formatted independently. Also each chunk will be flushed at the end of processing. bool enable_streaming = false; - struct JSON - { - bool quote_64bit_integers = true; - bool quote_denormals = true; - bool escape_forward_slashes = true; - bool write_metadata = false; - bool named_tuple_as_object = true; - bool list_of_rows = false; - bool serialize_as_strings = false; - }; - - JSON json; - - struct CSV - { - char delimiter = ','; - bool allow_single_quotes = true; - bool allow_double_quotes = true; - bool unquoted_null_literal_as_null = false; - bool empty_as_default = false; - bool crlf_end_of_line = false; - bool input_format_enum_as_number = false; - }; - - CSV csv; - - struct Pretty - { - UInt64 max_rows = 10000; - UInt64 max_column_pad_width = 250; - UInt64 max_value_width = 10000; - bool color = true; - - bool output_format_pretty_row_numbers = false; - - enum class Charset - { - UTF8, - ASCII, - }; - - Charset charset = Charset::UTF8; - }; - - Pretty pretty; - - struct Values - { - bool interpret_expressions = true; - bool deduce_templates_of_expressions = true; - bool accurate_types_of_literals = true; - }; - - Values values; - - struct Template - { - String resultset_format; - String row_format; - String row_between_delimiter; - }; - - Template template_settings; - - struct TSV - { - bool empty_as_default = false; - bool crlf_end_of_line = false; - String null_representation = "\\N"; - bool input_format_enum_as_number = false; - }; - - TSV tsv; - bool skip_unknown_fields = false; bool with_names_use_header = false; bool write_statistics = true; @@ -117,24 +43,29 @@ struct FormatSettings UInt64 input_allow_errors_num = 0; Float32 input_allow_errors_ratio = 0; - struct Arrow + struct { UInt64 row_group_size = 1000000; } arrow; - struct Parquet + struct { - UInt64 row_group_size = 1000000; - } parquet; + String schema_registry_url; + String output_codec; + UInt64 output_sync_interval = 16 * 1024; + bool allow_missing_fields = false; + } avro; - struct Schema + struct CSV { - std::string format_schema; - std::string format_schema_path; - bool is_server = false; - }; - - Schema schema; + char delimiter = ','; + bool allow_single_quotes = true; + bool allow_double_quotes = true; + bool unquoted_null_literal_as_null = false; + bool empty_as_default = false; + bool crlf_end_of_line = false; + bool input_format_enum_as_number = false; + } csv; struct Custom { @@ -145,29 +76,92 @@ struct FormatSettings std::string row_between_delimiter; std::string field_delimiter; std::string escaping_rule; - }; + } custom; - Custom custom; - - struct Avro + struct { - String schema_registry_url; - String output_codec; - UInt64 output_sync_interval = 16 * 1024; - bool allow_missing_fields = false; - }; + bool quote_64bit_integers = true; + bool quote_denormals = true; + bool escape_forward_slashes = true; + bool write_metadata = false; + bool named_tuple_as_object = true; + bool list_of_rows = false; + bool serialize_as_strings = false; + } json; - Avro avro; + struct + { + UInt64 row_group_size = 1000000; + } parquet; - struct Regexp + struct Pretty + { + UInt64 max_rows = 10000; + UInt64 max_column_pad_width = 250; + UInt64 max_value_width = 10000; + bool color = true; + + bool output_format_pretty_row_numbers = false; + + enum class Charset + { + UTF8, + ASCII, + }; + + Charset charset = Charset::UTF8; + } pretty; + + struct + { + bool write_row_delimiters = true; + /** + * Some buffers (kafka / rabbit) split the rows internally using callback + * so we can push there formats without framing / delimiters (like + * ProtobufSingle). In other cases you can't write more than single row + * in unframed format. + * Not sure we need this parameter at all, it only serves as an additional + * safety check in ProtobufSingle format, but exporting constant-size + * records w/o delimiters might be generally useful, not only for Kafka. + */ + bool allow_many_rows_no_delimiters = false; + } protobuf; + + struct { std::string regexp; std::string escaping_rule; bool skip_unmatched = false; - }; + } regexp; - Regexp regexp; + struct + { + std::string format_schema; + std::string format_schema_path; + bool is_server = false; + } schema; + struct + { + String resultset_format; + String row_format; + String row_between_delimiter; + } template_settings; + + struct + { + bool empty_as_default = false; + bool crlf_end_of_line = false; + String null_representation = "\\N"; + bool input_format_enum_as_number = false; + } tsv; + + struct + { + bool interpret_expressions = true; + bool deduce_templates_of_expressions = true; + bool accurate_types_of_literals = true; + } values; }; } diff --git a/src/Processors/Formats/IRowInputFormat.cpp b/src/Processors/Formats/IRowInputFormat.cpp index 12d4db1f4a8..48cfdb12d8b 100644 --- a/src/Processors/Formats/IRowInputFormat.cpp +++ b/src/Processors/Formats/IRowInputFormat.cpp @@ -63,8 +63,6 @@ Chunk IRowInputFormat::generate() info.read_columns.clear(); if (!readRow(columns, info)) break; - if (params.callback) - params.callback(); for (size_t column_idx = 0; column_idx < info.read_columns.size(); ++column_idx) { diff --git a/src/Processors/Formats/IRowInputFormat.h b/src/Processors/Formats/IRowInputFormat.h index 1931fba2a0d..14109f9c2be 100644 --- a/src/Processors/Formats/IRowInputFormat.h +++ b/src/Processors/Formats/IRowInputFormat.h @@ -27,9 +27,6 @@ struct RowInputFormatParams UInt64 allow_errors_num; Float64 allow_errors_ratio; - using ReadCallback = std::function; - ReadCallback callback; - Poco::Timespan max_execution_time = 0; OverflowMode timeout_overflow_mode = OverflowMode::THROW; }; diff --git a/src/Processors/Formats/IRowOutputFormat.h b/src/Processors/Formats/IRowOutputFormat.h index 4312691ea5e..4fb94f7b7f7 100644 --- a/src/Processors/Formats/IRowOutputFormat.h +++ b/src/Processors/Formats/IRowOutputFormat.h @@ -15,14 +15,6 @@ struct RowOutputFormatParams // Callback used to indicate that another row is written. WriteCallback callback; - - /** - * some buffers (kafka / rabbit) split the rows internally using callback - * so we can push there formats without framing / delimiters - * (like ProtobufSingle). In other cases you can't write more than single row - * in unframed format. - */ - bool ignore_no_row_delimiter = false; }; class WriteBuffer; diff --git a/src/Processors/Formats/Impl/ProtobufRowOutputFormat.cpp b/src/Processors/Formats/Impl/ProtobufRowOutputFormat.cpp index 930a83c52da..3c885e80e31 100644 --- a/src/Processors/Formats/Impl/ProtobufRowOutputFormat.cpp +++ b/src/Processors/Formats/Impl/ProtobufRowOutputFormat.cpp @@ -23,18 +23,22 @@ ProtobufRowOutputFormat::ProtobufRowOutputFormat( const Block & header, const RowOutputFormatParams & params_, const FormatSchemaInfo & format_schema, - const bool use_length_delimiters_) + const FormatSettings & settings) : IRowOutputFormat(header, out_, params_) , data_types(header.getDataTypes()) - , writer(out, ProtobufSchemas::instance().getMessageTypeForFormatSchema(format_schema), header.getNames(), use_length_delimiters_) - , throw_on_multiple_rows_undelimited(!use_length_delimiters_ && !params_.ignore_no_row_delimiter) + , writer(out, + ProtobufSchemas::instance().getMessageTypeForFormatSchema(format_schema), + header.getNames(), settings.protobuf.write_row_delimiters) + , allow_only_one_row( + !settings.protobuf.write_row_delimiters + && !settings.protobuf.allow_many_rows_no_delimiters) { value_indices.resize(header.columns()); } void ProtobufRowOutputFormat::write(const Columns & columns, size_t row_num) { - if (throw_on_multiple_rows_undelimited && !first_row) + if (allow_only_one_row && !first_row) { throw Exception("The ProtobufSingle format can't be used to write multiple rows because this format doesn't have any row delimiter.", ErrorCodes::NO_ROW_DELIMITER); } @@ -51,19 +55,23 @@ void ProtobufRowOutputFormat::write(const Columns & columns, size_t row_num) void registerOutputFormatProcessorProtobuf(FormatFactory & factory) { - for (bool use_length_delimiters : {false, true}) + for (bool write_row_delimiters : {false, true}) { factory.registerOutputFormatProcessor( - use_length_delimiters ? "Protobuf" : "ProtobufSingle", - [use_length_delimiters](WriteBuffer & buf, + write_row_delimiters ? "Protobuf" : "ProtobufSingle", + [write_row_delimiters](WriteBuffer & buf, const Block & header, const RowOutputFormatParams & params, - const FormatSettings & settings) + const FormatSettings & _settings) { - return std::make_shared(buf, header, params, - FormatSchemaInfo(settings.schema.format_schema, "Protobuf", true, - settings.schema.is_server, settings.schema.format_schema_path), - use_length_delimiters); + FormatSettings settings = _settings; + settings.protobuf.write_row_delimiters = write_row_delimiters; + return std::make_shared( + buf, header, params, + FormatSchemaInfo(settings.schema.format_schema, "Protobuf", + true, settings.schema.is_server, + settings.schema.format_schema_path), + settings); }); } } diff --git a/src/Processors/Formats/Impl/ProtobufRowOutputFormat.h b/src/Processors/Formats/Impl/ProtobufRowOutputFormat.h index 740efcfa24c..847f7607ff5 100644 --- a/src/Processors/Formats/Impl/ProtobufRowOutputFormat.h +++ b/src/Processors/Formats/Impl/ProtobufRowOutputFormat.h @@ -41,7 +41,7 @@ public: const Block & header, const RowOutputFormatParams & params_, const FormatSchemaInfo & format_schema, - const bool use_length_delimiters_); + const FormatSettings & settings); String getName() const override { return "ProtobufRowOutputFormat"; } @@ -53,7 +53,7 @@ private: DataTypes data_types; ProtobufWriter writer; std::vector value_indices; - const bool throw_on_multiple_rows_undelimited; + const bool allow_only_one_row; }; } diff --git a/src/Processors/Formats/Impl/ValuesBlockInputFormat.cpp b/src/Processors/Formats/Impl/ValuesBlockInputFormat.cpp index de5a1b71580..c3b753e7261 100644 --- a/src/Processors/Formats/Impl/ValuesBlockInputFormat.cpp +++ b/src/Processors/Formats/Impl/ValuesBlockInputFormat.cpp @@ -54,8 +54,6 @@ Chunk ValuesBlockInputFormat::generate() if (buf.eof() || *buf.position() == ';') break; readRow(columns, rows_in_block); - if (params.callback) - params.callback(); } catch (Exception & e) { diff --git a/src/Storages/Kafka/KafkaBlockOutputStream.cpp b/src/Storages/Kafka/KafkaBlockOutputStream.cpp index 9d7fe465d44..685ab59fdac 100644 --- a/src/Storages/Kafka/KafkaBlockOutputStream.cpp +++ b/src/Storages/Kafka/KafkaBlockOutputStream.cpp @@ -32,13 +32,16 @@ void KafkaBlockOutputStream::writePrefix() if (!buffer) throw Exception("Failed to create Kafka producer!", ErrorCodes::CANNOT_CREATE_IO_BUFFER); - child = FormatFactory::instance().getOutput( - storage.getFormatName(), *buffer, getHeader(), *context, [this](const Columns & columns, size_t row) - { - buffer->countRow(columns, row); - }, - /* ignore_no_row_delimiter = */ true - ); + auto format_settings = getOutputFormatSettings(*context); + format_settings.protobuf.allow_many_rows_no_delimiters = true; + + child = FormatFactory::instance().getOutput(storage.getFormatName(), *buffer, + getHeader(), *context, + [this](const Columns & columns, size_t row) + { + buffer->countRow(columns, row); + }, + format_settings); } void KafkaBlockOutputStream::write(const Block & block) diff --git a/src/Storages/RabbitMQ/RabbitMQBlockOutputStream.cpp b/src/Storages/RabbitMQ/RabbitMQBlockOutputStream.cpp index 76129dee30d..c4b2f187a5a 100644 --- a/src/Storages/RabbitMQ/RabbitMQBlockOutputStream.cpp +++ b/src/Storages/RabbitMQ/RabbitMQBlockOutputStream.cpp @@ -42,13 +42,16 @@ void RabbitMQBlockOutputStream::writePrefix() buffer->activateWriting(); - child = FormatFactory::instance().getOutput( - storage.getFormatName(), *buffer, getHeader(), context, [this](const Columns & /* columns */, size_t /* rows */) - { - buffer->countRow(); - }, - /* ignore_no_row_delimiter = */ true - ); + auto format_settings = getOutputFormatSettings(context); + format_settings.protobuf.allow_many_rows_no_delimiters = true; + + child = FormatFactory::instance().getOutput(storage.getFormatName(), *buffer, + getHeader(), context, + [this](const Columns & /* columns */, size_t /* rows */) + { + buffer->countRow(); + }, + format_settings); } diff --git a/src/Storages/StorageFile.cpp b/src/Storages/StorageFile.cpp index 956e88f6641..5a9fe7872e2 100644 --- a/src/Storages/StorageFile.cpp +++ b/src/Storages/StorageFile.cpp @@ -594,32 +594,40 @@ void StorageFile::truncate( void registerStorageFile(StorageFactory & factory) { + StorageFactory::StorageFeatures storage_features{ + .supports_settings = true, + .source_access_type = AccessType::FILE + }; + factory.registerStorage( "File", - [](const StorageFactory::Arguments & args) + [](const StorageFactory::Arguments & factory_args) { - ASTs & engine_args = args.engine_args; + StorageFile::CommonArguments storage_args{ + .table_id = factory_args.table_id, + .columns = factory_args.columns, + .constraints = factory_args.constraints, + .context = factory_args.context + }; - if (!(engine_args.size() >= 1 && engine_args.size() <= 3)) // NOLINT + ASTs & engine_args_ast = factory_args.engine_args; + + if (!(engine_args_ast.size() >= 1 && engine_args_ast.size() <= 3)) // NOLINT throw Exception( "Storage File requires from 1 to 3 arguments: name of used format, source and compression_method.", ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH); - engine_args[0] = evaluateConstantExpressionOrIdentifierAsLiteral(engine_args[0], args.local_context); - String format_name = engine_args[0]->as().value.safeGet(); + engine_args_ast[0] = evaluateConstantExpressionOrIdentifierAsLiteral(engine_args_ast[0], factory_args.local_context); + storage_args.format_name = engine_args_ast[0]->as().value.safeGet(); - String compression_method; - StorageFile::CommonArguments common_args{ - args.table_id, format_name, compression_method, args.columns, args.constraints, args.context}; - - if (engine_args.size() == 1) /// Table in database - return StorageFile::create(args.relative_data_path, common_args); + if (engine_args_ast.size() == 1) /// Table in database + return StorageFile::create(factory_args.relative_data_path, storage_args); /// Will use FD if engine_args[1] is int literal or identifier with std* name int source_fd = -1; String source_path; - if (auto opt_name = tryGetIdentifierName(engine_args[1])) + if (auto opt_name = tryGetIdentifierName(engine_args_ast[1])) { if (*opt_name == "stdin") source_fd = STDIN_FILENO; @@ -631,7 +639,7 @@ void registerStorageFile(StorageFactory & factory) throw Exception( "Unknown identifier '" + *opt_name + "' in second arg of File storage constructor", ErrorCodes::UNKNOWN_IDENTIFIER); } - else if (const auto * literal = engine_args[1]->as()) + else if (const auto * literal = engine_args_ast[1]->as()) { auto type = literal->value.getType(); if (type == Field::Types::Int64) @@ -644,23 +652,23 @@ void registerStorageFile(StorageFactory & factory) throw Exception("Second argument must be path or file descriptor", ErrorCodes::BAD_ARGUMENTS); } - if (engine_args.size() == 3) + if (engine_args_ast.size() == 3) { - engine_args[2] = evaluateConstantExpressionOrIdentifierAsLiteral(engine_args[2], args.local_context); - compression_method = engine_args[2]->as().value.safeGet(); + engine_args_ast[2] = evaluateConstantExpressionOrIdentifierAsLiteral(engine_args_ast[2], factory_args.local_context); + storage_args.compression_method = engine_args_ast[2]->as().value.safeGet(); } else - compression_method = "auto"; + storage_args.compression_method = "auto"; if (0 <= source_fd) /// File descriptor - return StorageFile::create(source_fd, common_args); + return StorageFile::create(source_fd, storage_args); else /// User's file - return StorageFile::create(source_path, args.context.getUserFilesPath(), common_args); + return StorageFile::create(source_path, factory_args.context.getUserFilesPath(), storage_args); }, - { - .source_access_type = AccessType::FILE, - }); + storage_features); } + + NamesAndTypesList StorageFile::getVirtuals() const { return NamesAndTypesList{ diff --git a/src/Storages/StorageFile.h b/src/Storages/StorageFile.h index f331538b4c7..cc8f6dc2b8a 100644 --- a/src/Storages/StorageFile.h +++ b/src/Storages/StorageFile.h @@ -50,9 +50,9 @@ public: struct CommonArguments { - const StorageID & table_id; - const std::string & format_name; - const std::string & compression_method; + StorageID table_id; + std::string format_name; + std::string compression_method; const ColumnsDescription & columns; const ConstraintsDescription & constraints; const Context & context; From 145ad495ce9322bec999d939af85179980984ea2 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Fri, 30 Oct 2020 13:42:32 +0300 Subject: [PATCH 053/425] fixes --- src/Formats/tests/tab_separated_streams.cpp | 4 ++-- src/Functions/tuple.cpp | 8 ++++++-- .../Formats/Impl/JSONRowOutputFormat.cpp | 15 ++++++++++----- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/Formats/tests/tab_separated_streams.cpp b/src/Formats/tests/tab_separated_streams.cpp index bb38d51cf98..bd733e4b9aa 100644 --- a/src/Formats/tests/tab_separated_streams.cpp +++ b/src/Formats/tests/tab_separated_streams.cpp @@ -38,8 +38,8 @@ try FormatSettings format_settings; - RowInputFormatParams in_params{DEFAULT_INSERT_BLOCK_SIZE, 0, 0, []{}}; - RowOutputFormatParams out_params{[](const Columns & /* columns */, size_t /* row */){},false}; + RowInputFormatParams in_params{DEFAULT_INSERT_BLOCK_SIZE, 0, 0}; + RowOutputFormatParams out_params{[](const Columns & /* columns */, size_t /* row */){}}; InputFormatPtr input_format = std::make_shared(sample, in_buf, in_params, false, false, format_settings); BlockInputStreamPtr block_input = std::make_shared(std::move(input_format)); diff --git a/src/Functions/tuple.cpp b/src/Functions/tuple.cpp index 6522723dde4..e4cbde6f9d3 100644 --- a/src/Functions/tuple.cpp +++ b/src/Functions/tuple.cpp @@ -66,9 +66,13 @@ public: names.emplace_back(argument.name); } - /// Create named tuple if possible. + /// Create named tuple if possible. We don't print tuple element names + /// because they are bad anyway -- aliases are not used, e.g. tuple(1 a) + /// will have element name '1' and not 'a'. If we ever change this, and + /// add the ability to access tuple elements by name, like tuple(1 a).a, + /// we should probably enable printing for better discoverability. if (DataTypeTuple::canBeCreatedWithNames(names)) - return std::make_shared(types, names); + return std::make_shared(types, names, false /*print names*/); return std::make_shared(types); } diff --git a/src/Processors/Formats/Impl/JSONRowOutputFormat.cpp b/src/Processors/Formats/Impl/JSONRowOutputFormat.cpp index 87eb88720c2..b7514bcff89 100644 --- a/src/Processors/Formats/Impl/JSONRowOutputFormat.cpp +++ b/src/Processors/Formats/Impl/JSONRowOutputFormat.cpp @@ -12,6 +12,11 @@ namespace DB { +namespace ErrorCodes +{ + extern const int BAD_ARGUMENTS; +} + void JSONRowOutputFormat::addColumn(String name, DataTypePtr type, bool & need_validate_utf8, std::string tabs) { @@ -29,13 +34,13 @@ void JSONRowOutputFormat::addColumn(String name, DataTypePtr type, if (recurse) { - const auto & types = as_tuple->getElements(); + const auto & element_types = as_tuple->getElements(); const auto & names = as_tuple->getElementNames(); - assert(types.size() == names.size()); - for (size_t i = 0; i < types.size(); i++) + assert(element_types.size() == names.size()); + for (size_t i = 0; i < element_types.size(); i++) { - addColumn(names[i], types[i], need_validate_utf8, tabs + "\t"); + addColumn(names[i], element_types[i], need_validate_utf8, tabs + "\t"); } } } @@ -195,7 +200,7 @@ void JSONRowOutputFormat::writeRowStartDelimiter() void JSONRowOutputFormat::writeRowEndDelimiter() { writeChar('\n', *ostr); - writeCString("\t\t}", *ostr); + writeCString("\t\t}\n", *ostr); field_number = 0; ++row_count; } From e81140b5fadb7382ef2bdb91b15212acb555ec04 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Fri, 30 Oct 2020 15:13:53 +0300 Subject: [PATCH 054/425] format settings in File engine --- .../AggregateFunctionSumMap.h | 2 +- src/Formats/FormatFactory.cpp | 136 +++++++----------- src/Formats/FormatFactory.h | 3 +- src/Formats/FormatSettings.h | 2 +- .../Impl/JSONEachRowRowOutputFormat.cpp | 13 +- .../Formats/Impl/JSONRowOutputFormat.cpp | 2 +- src/Storages/Kafka/KafkaBlockOutputStream.cpp | 2 +- .../RabbitMQ/RabbitMQBlockOutputStream.cpp | 2 +- src/Storages/StorageFile.cpp | 59 ++++++-- src/Storages/StorageFile.h | 2 + src/TableFunctions/TableFunctionFile.cpp | 23 ++- 11 files changed, 131 insertions(+), 115 deletions(-) diff --git a/src/AggregateFunctions/AggregateFunctionSumMap.h b/src/AggregateFunctions/AggregateFunctionSumMap.h index 6533903bbc1..456334ee9c3 100644 --- a/src/AggregateFunctions/AggregateFunctionSumMap.h +++ b/src/AggregateFunctions/AggregateFunctionSumMap.h @@ -105,7 +105,7 @@ public: types.emplace_back(std::make_shared(result_type)); } - return std::make_shared(types, Strings{"keys", "values"}); + return std::make_shared(types); } static const auto & getArgumentColumns(const IColumn**& columns) diff --git a/src/Formats/FormatFactory.cpp b/src/Formats/FormatFactory.cpp index c7c3c6c595a..814b75960fe 100644 --- a/src/Formats/FormatFactory.cpp +++ b/src/Formats/FormatFactory.cpp @@ -41,102 +41,76 @@ const FormatFactory::Creators & FormatFactory::getCreators(const String & name) } -FormatSettings getInputFormatSettings(const Context & context) +FormatSettings getFormatSettings(const Context & context) { const auto & settings = context.getSettingsRef(); FormatSettings format_settings; - format_settings.csv.delimiter = settings.format_csv_delimiter; - format_settings.csv.allow_single_quotes = settings.format_csv_allow_single_quotes; + + format_settings.avro.allow_missing_fields = settings.input_format_avro_allow_missing_fields; + format_settings.avro.output_codec = settings.output_format_avro_codec; + format_settings.avro.output_sync_interval = settings.output_format_avro_sync_interval; + format_settings.avro.schema_registry_url = settings.format_avro_schema_registry_url.toString(); format_settings.csv.allow_double_quotes = settings.format_csv_allow_double_quotes; - format_settings.csv.unquoted_null_literal_as_null = settings.input_format_csv_unquoted_null_literal_as_null; + format_settings.csv.allow_single_quotes = settings.format_csv_allow_single_quotes; + format_settings.csv.crlf_end_of_line = settings.output_format_csv_crlf_end_of_line; + format_settings.csv.delimiter = settings.format_csv_delimiter; format_settings.csv.empty_as_default = settings.input_format_defaults_for_omitted_fields; format_settings.csv.input_format_enum_as_number = settings.input_format_csv_enum_as_number; - format_settings.null_as_default = settings.input_format_null_as_default; - format_settings.values.interpret_expressions = settings.input_format_values_interpret_expressions; - format_settings.values.deduce_templates_of_expressions = settings.input_format_values_deduce_templates_of_expressions; - format_settings.values.accurate_types_of_literals = settings.input_format_values_accurate_types_of_literals; - format_settings.with_names_use_header = settings.input_format_with_names_use_header; - format_settings.skip_unknown_fields = settings.input_format_skip_unknown_fields; - format_settings.import_nested_json = settings.input_format_import_nested_json; + format_settings.csv.unquoted_null_literal_as_null = settings.input_format_csv_unquoted_null_literal_as_null; + format_settings.custom.escaping_rule = settings.format_custom_escaping_rule; + format_settings.custom.field_delimiter = settings.format_custom_field_delimiter; + format_settings.custom.result_after_delimiter = settings.format_custom_result_after_delimiter; + format_settings.custom.result_after_delimiter = settings.format_custom_result_after_delimiter; + format_settings.custom.result_before_delimiter = settings.format_custom_result_before_delimiter; + format_settings.custom.row_after_delimiter = settings.format_custom_row_after_delimiter; + format_settings.custom.row_before_delimiter = settings.format_custom_row_before_delimiter; + format_settings.custom.row_between_delimiter = settings.format_custom_row_between_delimiter; format_settings.date_time_input_format = settings.date_time_input_format; + format_settings.date_time_output_format = settings.date_time_output_format; + format_settings.enable_streaming = settings.output_format_enable_streaming; + format_settings.import_nested_json = settings.input_format_import_nested_json; format_settings.input_allow_errors_num = settings.input_format_allow_errors_num; format_settings.input_allow_errors_ratio = settings.input_format_allow_errors_ratio; - format_settings.template_settings.resultset_format = settings.format_template_resultset; - format_settings.template_settings.row_format = settings.format_template_row; - format_settings.template_settings.row_between_delimiter = settings.format_template_rows_between_delimiter; - format_settings.tsv.empty_as_default = settings.input_format_tsv_empty_as_default; - format_settings.tsv.input_format_enum_as_number = settings.input_format_tsv_enum_as_number; + format_settings.json.escape_forward_slashes = settings.output_format_json_escape_forward_slashes; + format_settings.json.quote_64bit_integers = settings.output_format_json_quote_64bit_integers; + format_settings.json.quote_denormals = settings.output_format_json_quote_denormals; + format_settings.json.write_metadata = settings.output_format_json_write_metadata; + format_settings.null_as_default = settings.input_format_null_as_default; + format_settings.parquet.row_group_size = settings.output_format_parquet_row_group_size; + format_settings.pretty.charset = settings.output_format_pretty_grid_charset.toString() == "ASCII" ? FormatSettings::Pretty::Charset::ASCII : FormatSettings::Pretty::Charset::UTF8; + format_settings.pretty.color = settings.output_format_pretty_color; + format_settings.pretty.max_column_pad_width = settings.output_format_pretty_max_column_pad_width; + format_settings.pretty.max_rows = settings.output_format_pretty_max_rows; + format_settings.pretty.max_value_width = settings.output_format_pretty_max_value_width; + format_settings.pretty.output_format_pretty_row_numbers = settings.output_format_pretty_row_numbers; + format_settings.regexp.escaping_rule = settings.format_regexp_escaping_rule; + format_settings.regexp.regexp = settings.format_regexp; + format_settings.regexp.skip_unmatched = settings.format_regexp_skip_unmatched; format_settings.schema.format_schema = settings.format_schema; format_settings.schema.format_schema_path = context.getFormatSchemaPath(); format_settings.schema.is_server = context.hasGlobalContext() && (context.getGlobalContext().getApplicationType() == Context::ApplicationType::SERVER); - format_settings.custom.result_before_delimiter = settings.format_custom_result_before_delimiter; - format_settings.custom.result_after_delimiter = settings.format_custom_result_after_delimiter; - format_settings.custom.escaping_rule = settings.format_custom_escaping_rule; - format_settings.custom.field_delimiter = settings.format_custom_field_delimiter; - format_settings.custom.row_before_delimiter = settings.format_custom_row_before_delimiter; - format_settings.custom.row_after_delimiter = settings.format_custom_row_after_delimiter; - format_settings.custom.row_between_delimiter = settings.format_custom_row_between_delimiter; - format_settings.regexp.regexp = settings.format_regexp; - format_settings.regexp.escaping_rule = settings.format_regexp_escaping_rule; - format_settings.regexp.skip_unmatched = settings.format_regexp_skip_unmatched; + format_settings.skip_unknown_fields = settings.input_format_skip_unknown_fields; + format_settings.template_settings.resultset_format = settings.format_template_resultset; + format_settings.template_settings.row_between_delimiter = settings.format_template_rows_between_delimiter; + format_settings.template_settings.row_format = settings.format_template_row; + format_settings.tsv.crlf_end_of_line = settings.output_format_tsv_crlf_end_of_line; + format_settings.tsv.empty_as_default = settings.input_format_tsv_empty_as_default; + format_settings.tsv.input_format_enum_as_number = settings.input_format_tsv_enum_as_number; + format_settings.tsv.null_representation = settings.output_format_tsv_null_representation; + format_settings.values.accurate_types_of_literals = settings.input_format_values_accurate_types_of_literals; + format_settings.values.deduce_templates_of_expressions = settings.input_format_values_deduce_templates_of_expressions; + format_settings.values.interpret_expressions = settings.input_format_values_interpret_expressions; + format_settings.with_names_use_header = settings.input_format_with_names_use_header; + format_settings.write_statistics = settings.output_format_write_statistics; /// Validate avro_schema_registry_url with RemoteHostFilter when non-empty and in Server context - if (context.hasGlobalContext() && (context.getGlobalContext().getApplicationType() == Context::ApplicationType::SERVER)) + if (format_settings.schema.is_server) { const Poco::URI & avro_schema_registry_url = settings.format_avro_schema_registry_url; if (!avro_schema_registry_url.empty()) context.getRemoteHostFilter().checkURL(avro_schema_registry_url); } - format_settings.avro.schema_registry_url = settings.format_avro_schema_registry_url.toString(); - format_settings.avro.allow_missing_fields = settings.input_format_avro_allow_missing_fields; - - return format_settings; -} - -FormatSettings getOutputFormatSettings(const Context & context) -{ - const auto & settings = context.getSettingsRef(); - - FormatSettings format_settings; - format_settings.enable_streaming = settings.output_format_enable_streaming; - format_settings.json.quote_64bit_integers = settings.output_format_json_quote_64bit_integers; - format_settings.json.quote_denormals = settings.output_format_json_quote_denormals; - format_settings.json.escape_forward_slashes = settings.output_format_json_escape_forward_slashes; - format_settings.json.write_metadata = settings.output_format_json_write_metadata; - //format_settings.json.named_tuple_as_object = settings.output_format_json_named_tuple_as_object; - format_settings.csv.delimiter = settings.format_csv_delimiter; - format_settings.csv.allow_single_quotes = settings.format_csv_allow_single_quotes; - format_settings.csv.allow_double_quotes = settings.format_csv_allow_double_quotes; - format_settings.csv.crlf_end_of_line = settings.output_format_csv_crlf_end_of_line; - format_settings.pretty.max_rows = settings.output_format_pretty_max_rows; - format_settings.pretty.max_column_pad_width = settings.output_format_pretty_max_column_pad_width; - format_settings.pretty.max_value_width = settings.output_format_pretty_max_value_width; - format_settings.pretty.color = settings.output_format_pretty_color; - format_settings.pretty.charset = settings.output_format_pretty_grid_charset.toString() == "ASCII" ? - FormatSettings::Pretty::Charset::ASCII : - FormatSettings::Pretty::Charset::UTF8; - format_settings.pretty.output_format_pretty_row_numbers = settings.output_format_pretty_row_numbers; - format_settings.template_settings.resultset_format = settings.format_template_resultset; - format_settings.template_settings.row_format = settings.format_template_row; - format_settings.template_settings.row_between_delimiter = settings.format_template_rows_between_delimiter; - format_settings.tsv.crlf_end_of_line = settings.output_format_tsv_crlf_end_of_line; - format_settings.tsv.null_representation = settings.output_format_tsv_null_representation; - format_settings.write_statistics = settings.output_format_write_statistics; - format_settings.parquet.row_group_size = settings.output_format_parquet_row_group_size; - format_settings.schema.format_schema = settings.format_schema; - format_settings.schema.format_schema_path = context.getFormatSchemaPath(); - format_settings.schema.is_server = context.hasGlobalContext() && (context.getGlobalContext().getApplicationType() == Context::ApplicationType::SERVER); - format_settings.custom.result_before_delimiter = settings.format_custom_result_before_delimiter; - format_settings.custom.result_after_delimiter = settings.format_custom_result_after_delimiter; - format_settings.custom.escaping_rule = settings.format_custom_escaping_rule; - format_settings.custom.field_delimiter = settings.format_custom_field_delimiter; - format_settings.custom.row_before_delimiter = settings.format_custom_row_before_delimiter; - format_settings.custom.row_after_delimiter = settings.format_custom_row_after_delimiter; - format_settings.custom.row_between_delimiter = settings.format_custom_row_between_delimiter; - format_settings.avro.output_codec = settings.output_format_avro_codec; - format_settings.avro.output_sync_interval = settings.output_format_avro_sync_interval; - format_settings.date_time_output_format = settings.date_time_output_format; return format_settings; } @@ -161,7 +135,7 @@ BlockInputStreamPtr FormatFactory::getInput( if (!format_settings) { - format_settings = getInputFormatSettings(context); + format_settings = getFormatSettings(context); } return input_getter(buf, sample, max_block_size, {}, *format_settings); @@ -192,7 +166,7 @@ BlockInputStreamPtr FormatFactory::getInput( if (!format_settings) { - format_settings = getInputFormatSettings(context); + format_settings = getFormatSettings(context); } RowInputFormatParams row_input_format_params; @@ -230,7 +204,7 @@ BlockOutputStreamPtr FormatFactory::getOutput(const String & name, if (!format_settings) { - format_settings = getOutputFormatSettings(context); + format_settings = getFormatSettings(context); } /** Materialization is needed, because formats can use the functions `IDataType`, @@ -264,7 +238,7 @@ InputFormatPtr FormatFactory::getInputFormat( if (!format_settings) { - format_settings = getInputFormatSettings(context); + format_settings = getFormatSettings(context); } RowInputFormatParams params; @@ -295,7 +269,7 @@ OutputFormatPtr FormatFactory::getOutputFormat( if (!format_settings) { - format_settings = getOutputFormatSettings(context); + format_settings = getFormatSettings(context); } RowOutputFormatParams params; diff --git a/src/Formats/FormatFactory.h b/src/Formats/FormatFactory.h index 78d4d61ea09..619acd10e0f 100644 --- a/src/Formats/FormatFactory.h +++ b/src/Formats/FormatFactory.h @@ -34,8 +34,7 @@ struct RowOutputFormatParams; using InputFormatPtr = std::shared_ptr; using OutputFormatPtr = std::shared_ptr; -FormatSettings getInputFormatSettings(const Context & context); -FormatSettings getOutputFormatSettings(const Context & context); +FormatSettings getFormatSettings(const Context & context); /** Allows to create an IBlockInputStream or IBlockOutputStream by the name of the format. * Note: format and compression are independent things. diff --git a/src/Formats/FormatSettings.h b/src/Formats/FormatSettings.h index 76dc7bc1729..a4f2962c223 100644 --- a/src/Formats/FormatSettings.h +++ b/src/Formats/FormatSettings.h @@ -85,7 +85,7 @@ struct FormatSettings bool escape_forward_slashes = true; bool write_metadata = false; bool named_tuple_as_object = true; - bool list_of_rows = false; + bool array_of_rows = false; bool serialize_as_strings = false; } json; diff --git a/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp b/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp index 2459c6f2451..79027b4afac 100644 --- a/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp +++ b/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp @@ -68,7 +68,7 @@ void JSONEachRowRowOutputFormat::writeRowEndDelimiter() void JSONEachRowRowOutputFormat::writeRowBetweenDelimiter() { - if (settings.json.list_of_rows) + if (settings.json.array_of_rows) { writeCString(",\n", out); } @@ -81,7 +81,7 @@ void JSONEachRowRowOutputFormat::writeRowBetweenDelimiter() void JSONEachRowRowOutputFormat::writePrefix() { - if (settings.json.list_of_rows) + if (settings.json.array_of_rows) { writeCString("[\n", out); } @@ -90,9 +90,10 @@ void JSONEachRowRowOutputFormat::writePrefix() void JSONEachRowRowOutputFormat::writeSuffix() { - if (settings.json.list_of_rows) + writeCString("\n"); + if (settings.json.array_of_rows) { - writeCString("\n]\n", out); + writeCString("]\n", out); } } @@ -123,14 +124,14 @@ void registerOutputFormatProcessorJSONEachRow(FormatFactory & factory) settings); }); - factory.registerOutputFormatProcessor("JSONList", []( + factory.registerOutputFormatProcessor("JSONArray", []( WriteBuffer & buf, const Block & sample, const RowOutputFormatParams & params, const FormatSettings & _format_settings) { FormatSettings settings = _format_settings; - settings.json.list_of_rows = true; + settings.json.array_of_rows = true; return std::make_shared(buf, sample, params, settings); }); diff --git a/src/Processors/Formats/Impl/JSONRowOutputFormat.cpp b/src/Processors/Formats/Impl/JSONRowOutputFormat.cpp index b7514bcff89..babb217ea15 100644 --- a/src/Processors/Formats/Impl/JSONRowOutputFormat.cpp +++ b/src/Processors/Formats/Impl/JSONRowOutputFormat.cpp @@ -200,7 +200,7 @@ void JSONRowOutputFormat::writeRowStartDelimiter() void JSONRowOutputFormat::writeRowEndDelimiter() { writeChar('\n', *ostr); - writeCString("\t\t}\n", *ostr); + writeCString("\t\t}", *ostr); field_number = 0; ++row_count; } diff --git a/src/Storages/Kafka/KafkaBlockOutputStream.cpp b/src/Storages/Kafka/KafkaBlockOutputStream.cpp index 685ab59fdac..e7bf562339f 100644 --- a/src/Storages/Kafka/KafkaBlockOutputStream.cpp +++ b/src/Storages/Kafka/KafkaBlockOutputStream.cpp @@ -32,7 +32,7 @@ void KafkaBlockOutputStream::writePrefix() if (!buffer) throw Exception("Failed to create Kafka producer!", ErrorCodes::CANNOT_CREATE_IO_BUFFER); - auto format_settings = getOutputFormatSettings(*context); + auto format_settings = getFormatSettings(*context); format_settings.protobuf.allow_many_rows_no_delimiters = true; child = FormatFactory::instance().getOutput(storage.getFormatName(), *buffer, diff --git a/src/Storages/RabbitMQ/RabbitMQBlockOutputStream.cpp b/src/Storages/RabbitMQ/RabbitMQBlockOutputStream.cpp index c4b2f187a5a..b3bd57bdd0b 100644 --- a/src/Storages/RabbitMQ/RabbitMQBlockOutputStream.cpp +++ b/src/Storages/RabbitMQ/RabbitMQBlockOutputStream.cpp @@ -42,7 +42,7 @@ void RabbitMQBlockOutputStream::writePrefix() buffer->activateWriting(); - auto format_settings = getOutputFormatSettings(context); + auto format_settings = getFormatSettings(context); format_settings.protobuf.allow_many_rows_no_delimiters = true; child = FormatFactory::instance().getOutput(storage.getFormatName(), *buffer, diff --git a/src/Storages/StorageFile.cpp b/src/Storages/StorageFile.cpp index 5a9fe7872e2..d175736e8f8 100644 --- a/src/Storages/StorageFile.cpp +++ b/src/Storages/StorageFile.cpp @@ -4,6 +4,7 @@ #include #include +#include #include #include @@ -166,7 +167,8 @@ StorageFile::StorageFile(int table_fd_, CommonArguments args) StorageFile::StorageFile(const std::string & table_path_, const std::string & user_files_path, CommonArguments args) : StorageFile(args) { - fmt::print(stderr, "Create storage file from file at \n{}\n", StackTrace().toString()); + fmt::print(stderr, "Create storage File '{}' from file at \n{}\n", + args.table_id.getNameForLogs(), StackTrace().toString()); const auto & changes = args.context.getSettings().changes(); for (const auto & change : changes) @@ -175,7 +177,7 @@ StorageFile::StorageFile(const std::string & table_path_, const std::string & us change.name, toString(change.value)); } - fmt::print(stderr, "delimiter = {}\n", + fmt::print(stderr, "delimiter = '{}'\n", toString(args.context.getSettings().get("format_csv_delimiter"))); @@ -202,6 +204,9 @@ StorageFile::StorageFile(const std::string & table_path_, const std::string & us StorageFile::StorageFile(const std::string & relative_table_dir_path, CommonArguments args) : StorageFile(args) { + fmt::print(stderr, "Create storage File '{}' from database at \n{}\n", + args.table_id.getNameForLogs(), StackTrace().toString()); + if (relative_table_dir_path.empty()) throw Exception("Storage " + getName() + " requires data path", ErrorCodes::INCORRECT_FILE_NAME); if (args.format_name == "Distributed") @@ -215,6 +220,7 @@ StorageFile::StorageFile(const std::string & relative_table_dir_path, CommonArgu StorageFile::StorageFile(CommonArguments args) : IStorage(args.table_id) , format_name(args.format_name) + , format_settings(args.format_settings) , compression_method(args.compression_method) , base_path(args.context.getPath()) { @@ -256,12 +262,12 @@ public: } StorageFileSource( - std::shared_ptr storage_, - const StorageMetadataPtr & metadata_snapshot_, - const Context & context_, - UInt64 max_block_size_, - FilesInfoPtr files_info_, - ColumnsDescription columns_description_) + std::shared_ptr storage_, + const StorageMetadataPtr & metadata_snapshot_, + const Context & context_, + UInt64 max_block_size_, + FilesInfoPtr files_info_, + ColumnsDescription columns_description_) : SourceWithProgress(getHeader(metadata_snapshot_, files_info_->need_path_column, files_info_->need_file_column)) , storage(std::move(storage_)) , metadata_snapshot(metadata_snapshot_) @@ -337,9 +343,11 @@ public: method = chooseCompressionMethod(current_path, storage->compression_method); } - read_buf = wrapReadBufferWithCompressionMethod(std::move(nested_buffer), method); - reader = FormatFactory::instance().getInput( - storage->format_name, *read_buf, metadata_snapshot->getSampleBlock(), context, max_block_size); + read_buf = wrapReadBufferWithCompressionMethod( + std::move(nested_buffer), method); + reader = FormatFactory::instance().getInput(storage->format_name, + *read_buf, metadata_snapshot->getSampleBlock(), context, + max_block_size, storage->format_settings); if (columns_description.hasDefaults()) reader = std::make_shared(reader, columns_description, context); @@ -443,8 +451,11 @@ Pipe StorageFile::read( pipes.reserve(num_streams); for (size_t i = 0; i < num_streams; ++i) + { pipes.emplace_back(std::make_shared( - this_ptr, metadata_snapshot, context, max_block_size, files_info, metadata_snapshot->getColumns())); + this_ptr, metadata_snapshot, context, max_block_size, files_info, + metadata_snapshot->getColumns())); + } return Pipe::unitePipes(std::move(pipes)); } @@ -457,7 +468,8 @@ public: StorageFile & storage_, const StorageMetadataPtr & metadata_snapshot_, const CompressionMethod compression_method, - const Context & context) + const Context & context, + const FormatSettings & format_settings) : storage(storage_) , metadata_snapshot(metadata_snapshot_) , lock(storage.rwlock) @@ -485,7 +497,9 @@ public: write_buf = wrapWriteBufferWithCompressionMethod(std::move(naked_buffer), compression_method, 3); - writer = FormatFactory::instance().getOutput(storage.format_name, *write_buf, metadata_snapshot->getSampleBlock(), context); + writer = FormatFactory::instance().getOutput(storage.format_name, + *write_buf, metadata_snapshot->getSampleBlock(), context, + {}, format_settings); } Block getHeader() const override { return metadata_snapshot->getSampleBlock(); } @@ -534,7 +548,8 @@ BlockOutputStreamPtr StorageFile::write( path = paths[0]; return std::make_shared(*this, metadata_snapshot, - chooseCompressionMethod(path, compression_method), context); + chooseCompressionMethod(path, compression_method), context, + format_settings); } Strings StorageFile::getDataPaths() const @@ -620,6 +635,20 @@ void registerStorageFile(StorageFactory & factory) engine_args_ast[0] = evaluateConstantExpressionOrIdentifierAsLiteral(engine_args_ast[0], factory_args.local_context); storage_args.format_name = engine_args_ast[0]->as().value.safeGet(); + if (factory_args.storage_def->settings) + { + Context local_context_copy = factory_args.local_context; + local_context_copy.applySettingsChanges( + factory_args.storage_def->settings->changes); + storage_args.format_settings = getFormatSettings( + local_context_copy); + } + else + { + storage_args.format_settings = getFormatSettings( + factory_args.local_context); + } + if (engine_args_ast.size() == 1) /// Table in database return StorageFile::create(factory_args.relative_data_path, storage_args); diff --git a/src/Storages/StorageFile.h b/src/Storages/StorageFile.h index cc8f6dc2b8a..695cd0d3912 100644 --- a/src/Storages/StorageFile.h +++ b/src/Storages/StorageFile.h @@ -52,6 +52,7 @@ public: { StorageID table_id; std::string format_name; + FormatSettings format_settings; std::string compression_method; const ColumnsDescription & columns; const ConstraintsDescription & constraints; @@ -79,6 +80,7 @@ private: explicit StorageFile(CommonArguments args); std::string format_name; + FormatSettings format_settings; int table_fd = -1; String compression_method; diff --git a/src/TableFunctions/TableFunctionFile.cpp b/src/TableFunctions/TableFunctionFile.cpp index 39de6dce92c..5dbb338b91f 100644 --- a/src/TableFunctions/TableFunctionFile.cpp +++ b/src/TableFunctions/TableFunctionFile.cpp @@ -1,10 +1,12 @@ -#include -#include -#include -#include #include -#include + #include "registerTableFunctions.h" +#include +#include +#include +#include +#include +#include namespace DB { @@ -12,7 +14,16 @@ StoragePtr TableFunctionFile::getStorage( const String & source, const String & format_, const ColumnsDescription & columns, Context & global_context, const std::string & table_name, const std::string & compression_method_) const { - StorageFile::CommonArguments args{StorageID(getDatabaseName(), table_name), format_, compression_method_, columns, ConstraintsDescription{}, global_context}; + StorageFile::CommonArguments args{StorageID(getDatabaseName(), table_name), + format_, + getFormatSettings(global_context), + compression_method_, + columns, + ConstraintsDescription{}, + global_context}; + + fmt::print(stderr, "format settings delimiter = '{}'\n", + args.format_settings.csv.delimiter); return StorageFile::create(source, global_context.getUserFilesPath(), args); } From 417fa65cb487e5115281b3b12ba877f2de08cbd0 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Fri, 30 Oct 2020 16:34:59 +0300 Subject: [PATCH 055/425] fixup --- src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp b/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp index 79027b4afac..1c6ed0e843f 100644 --- a/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp +++ b/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp @@ -90,7 +90,7 @@ void JSONEachRowRowOutputFormat::writePrefix() void JSONEachRowRowOutputFormat::writeSuffix() { - writeCString("\n"); + writeCString("\n", out); if (settings.json.array_of_rows) { writeCString("]\n", out); From b3379e9cf05c88b3b5225e836171e9d637e69302 Mon Sep 17 00:00:00 2001 From: myrrc Date: Fri, 30 Oct 2020 19:17:57 +0300 Subject: [PATCH 056/425] fixed some wrong tests, updated docs --- .../aggregate-functions/reference/avg.md | 58 ++++++++++++++++++- .../reference/avgweighted.md | 36 +++++++++++- src/AggregateFunctions/AggregateFunctionAvg.h | 56 ++++++------------ .../AggregateFunctionAvgWeighted.h | 4 +- .../00700_decimal_empty_aggregates.reference | 3 - .../00700_decimal_empty_aggregates.sql | 4 -- tests/queries/0_stateless/01035_avg.reference | 2 + tests/queries/0_stateless/01035_avg.sql | 9 +++ 8 files changed, 122 insertions(+), 50 deletions(-) create mode 100644 tests/queries/0_stateless/01035_avg.reference create mode 100644 tests/queries/0_stateless/01035_avg.sql diff --git a/docs/en/sql-reference/aggregate-functions/reference/avg.md b/docs/en/sql-reference/aggregate-functions/reference/avg.md index 1741bbb744b..06117cb83cf 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/avg.md +++ b/docs/en/sql-reference/aggregate-functions/reference/avg.md @@ -4,5 +4,59 @@ toc_priority: 5 # avg {#agg_function-avg} -Calculates the average. Only works for numbers (Integral, floating-point, or Decimals). -The result is always Float64. +Calculates the arithmetic mean. + +**Syntax** + +``` sql +avgWeighted(x) +``` + +**Parameter** + +- `x` — Values. + +`x` must be +[Integer](../../../sql-reference/data-types/int-uint.md), +[floating-point](../../../sql-reference/data-types/float.md), or +[Decimal](../../../sql-reference/data-types/decimal.md). + +**Returned value** + +- `0` if the supplied parameter is empty. +- Mean otherwise. + +**Return type** is always [Float64](../../../sql-reference/data-types/float.md). + +**Example** + +Query: + +``` sql +SELECT avg(x) FROM values('x Int8', 0, 1, 2, 3, 4, 5) +``` + +Result: + +``` text +┌─avg(x)─┐ +│ 2.5 │ +└────────┘ +``` + +**Example** + +Query: + +``` sql +CREATE table test (t UInt8) ENGINE = Memory; +SELECT avg(t) FROM test +``` + +Result: + +``` text +┌─avg(x)─┐ +│ 0 │ +└────────┘ +``` diff --git a/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md b/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md index 22993f93e16..7b9c0de2755 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md +++ b/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md @@ -25,7 +25,7 @@ but may have different types. **Returned value** -- `NaN`. If all the weights are equal to 0. +- `NaN` if all the weights are equal to 0 or the supplied weights parameter is empty. - Weighted mean otherwise. **Return type** is always [Float64](../../../sql-reference/data-types/float.md). @@ -63,3 +63,37 @@ Result: │ 8 │ └────────────────────────┘ ``` + +**Example** + +Query: + +``` sql +SELECT avgWeighted(x, w) +FROM values('x Int8, w Int8', (0, 0), (1, 0), (10, 0)) +``` + +Result: + +``` text +┌─avgWeighted(x, weight)─┐ +│ nan │ +└────────────────────────┘ +``` + +**Example** + +Query: + +``` sql +CREATE table test (t UInt8) ENGINE = Memory; +SELECT avgWeighted(t) FROM test +``` + +Result: + +``` text +┌─avgWeighted(x, weight)─┐ +│ nan │ +└────────────────────────┘ +``` diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index 16eb11143da..c28d235a8f4 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -10,26 +10,23 @@ namespace DB { -/// A type-fixed fraction represented by a pair of #Numerator and #Denominator. -template + +/// @tparam BothZeroMeansNaN If false, the pair 0 / 0 = 0, nan otherwise. +template struct RationalFraction { - constexpr RationalFraction(): numerator(0), denominator(0) {} + Float64 numerator{0}; + Denominator denominator{0}; - Numerator numerator; - Denominator denominator; - - /// Calculate the fraction as a #Result. - template - Result NO_SANITIZE_UNDEFINED result() const + Float64 NO_SANITIZE_UNDEFINED result() const { - if constexpr (std::is_floating_point_v && std::numeric_limits::is_iec559) - return static_cast(numerator) / denominator; /// allow division by zero + if constexpr (BothZeroMeansNaN && std::numeric_limits::is_iec559) + return static_cast(numerator) / denominator; /// allow division by zero if (denominator == static_cast(0)) - return static_cast(0); + return static_cast(0); - return static_cast(numerator / denominator); + return static_cast(numerator / denominator); } }; @@ -46,31 +43,17 @@ struct RationalFraction * @tparam Derived When deriving from this class, use the child class name as in CRTP, e.g. * class Self : Agg. */ -template +template class AggregateFunctionAvgBase : public - IAggregateFunctionDataHelper, Derived> + IAggregateFunctionDataHelper, Derived> { public: - using Numerator = Float64; - using Fraction = RationalFraction; - - using ResultType = Float64; - using ResultDataType = DataTypeNumber; - using ResultVectorType = ColumnVector; - + using Fraction = RationalFraction; using Base = IAggregateFunctionDataHelper; - /// ctor for native types - explicit AggregateFunctionAvgBase(const DataTypes & argument_types_): Base(argument_types_, {}), scale(0) {} + explicit AggregateFunctionAvgBase(const DataTypes & argument_types_): Base(argument_types_, {}) {} - /// ctor for Decimals - AggregateFunctionAvgBase(const IDataType & data_type, const DataTypes & argument_types_) - : Base(argument_types_, {}), scale(getDecimalScale(data_type)) {} - - DataTypePtr getReturnType() const override - { - return std::make_shared(); - } + DataTypePtr getReturnType() const override { return std::make_shared>(); } void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena *) const override { @@ -100,17 +83,14 @@ public: void insertResultInto(AggregateDataPtr place, IColumn & to, Arena *) const override { - static_cast(to).getData().push_back(this->data(place).template result()); + static_cast &>(to).getData().push_back(this->data(place).result()); } - -protected: - UInt32 scale; }; -class AggregateFunctionAvg final : public AggregateFunctionAvgBase +class AggregateFunctionAvg final : public AggregateFunctionAvgBase { public: - using AggregateFunctionAvgBase::AggregateFunctionAvgBase; + using AggregateFunctionAvgBase::AggregateFunctionAvgBase; void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const final { diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h index ca9f0757cba..ef9384e48ab 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h @@ -5,10 +5,10 @@ namespace DB { -class AggregateFunctionAvgWeighted final : public AggregateFunctionAvgBase +class AggregateFunctionAvgWeighted final : public AggregateFunctionAvgBase { public: - using AggregateFunctionAvgBase::AggregateFunctionAvgBase; + using AggregateFunctionAvgBase::AggregateFunctionAvgBase; void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const override { diff --git a/tests/queries/0_stateless/00700_decimal_empty_aggregates.reference b/tests/queries/0_stateless/00700_decimal_empty_aggregates.reference index 580cf0e26b7..b079e91fddc 100644 --- a/tests/queries/0_stateless/00700_decimal_empty_aggregates.reference +++ b/tests/queries/0_stateless/00700_decimal_empty_aggregates.reference @@ -5,9 +5,6 @@ 0.0000 0.0000000 0.00000000 0.0000 0.0000000 0.00000000 0.0000 0.0000000 0.00000000 0.0000 0.0000000 0.00000000 0.0000 0.0000000 0.00000000 0.0000 0.0000000 0.00000000 -0.0000 0.0000000 0.00000000 Decimal(9, 4) Decimal(18, 7) Decimal(38, 8) -0.0000 0.0000000 0.00000000 Decimal(9, 4) Decimal(18, 7) Decimal(38, 8) -0.0000 0.0000000 0.00000000 Decimal(9, 4) Decimal(18, 7) Decimal(38, 8) (0,0,0) (0,0,0) (0,0,0) (0,0,0) (0,0,0) 0 0 0 0 0 0 diff --git a/tests/queries/0_stateless/00700_decimal_empty_aggregates.sql b/tests/queries/0_stateless/00700_decimal_empty_aggregates.sql index 2d14ffae49d..c77f605a4c2 100644 --- a/tests/queries/0_stateless/00700_decimal_empty_aggregates.sql +++ b/tests/queries/0_stateless/00700_decimal_empty_aggregates.sql @@ -16,10 +16,6 @@ SELECT sum(a), sum(b), sum(c), sumWithOverflow(a), sumWithOverflow(b), sumWithOv SELECT sum(a+1), sum(b+1), sum(c+1), sumWithOverflow(a+1), sumWithOverflow(b+1), sumWithOverflow(c+1) FROM decimal; SELECT sum(a-1), sum(b-1), sum(c-1), sumWithOverflow(a-1), sumWithOverflow(b-1), sumWithOverflow(c-1) FROM decimal; -SELECT avg(a) as aa, avg(b) as ab, avg(c) as ac, toTypeName(aa), toTypeName(ab),toTypeName(ac) FROM decimal; -SELECT avg(a) as aa, avg(b) as ab, avg(c) as ac, toTypeName(aa), toTypeName(ab),toTypeName(ac) FROM decimal WHERE a > 0; -SELECT avg(a) as aa, avg(b) as ab, avg(c) as ac, toTypeName(aa), toTypeName(ab),toTypeName(ac) FROM decimal WHERE a < 0; - SELECT (uniq(a), uniq(b), uniq(c)), (uniqCombined(a), uniqCombined(b), uniqCombined(c)), (uniqCombined(17)(a), uniqCombined(17)(b), uniqCombined(17)(c)), diff --git a/tests/queries/0_stateless/01035_avg.reference b/tests/queries/0_stateless/01035_avg.reference new file mode 100644 index 00000000000..d1644f95165 --- /dev/null +++ b/tests/queries/0_stateless/01035_avg.reference @@ -0,0 +1,2 @@ +0 +499.5 diff --git a/tests/queries/0_stateless/01035_avg.sql b/tests/queries/0_stateless/01035_avg.sql new file mode 100644 index 00000000000..ee58587736f --- /dev/null +++ b/tests/queries/0_stateless/01035_avg.sql @@ -0,0 +1,9 @@ +CREATE TABLE IF NOT EXISTS test_01035 ( + t UInt16 +) ENGINE = Memory; + +SELECT avg(t) FROM test_01035; +INSERT INTO test_01035 SELECT * FROM system.numbers LIMIT 1000; +SELECT avg(t) FROM test_01035; + +DROP TABLE IF EXISTS test_01035 From c24ffc72c76c3f95d5cba32b32fd2b02ffb9121e Mon Sep 17 00:00:00 2001 From: myrrc Date: Fri, 30 Oct 2020 19:35:55 +0300 Subject: [PATCH 057/425] fixed some other tests --- tests/queries/0_stateless/00700_decimal_aggregates.reference | 3 --- tests/queries/0_stateless/00700_decimal_aggregates.sql | 4 ---- .../00910_decimal_group_array_crash_3783.reference | 2 +- .../0_stateless/01018_empty_aggregation_filling.reference | 2 +- 4 files changed, 2 insertions(+), 9 deletions(-) diff --git a/tests/queries/0_stateless/00700_decimal_aggregates.reference b/tests/queries/0_stateless/00700_decimal_aggregates.reference index f58e1900b80..251445675a2 100644 --- a/tests/queries/0_stateless/00700_decimal_aggregates.reference +++ b/tests/queries/0_stateless/00700_decimal_aggregates.reference @@ -5,9 +5,6 @@ -1275.0000 -424.99999983 -255.00000000 -1275.0000 -424.99999983 -255.00000000 101.0000 101.00000000 101.00000000 101.0000 101.00000000 101.00000000 -101.0000 -101.00000000 -101.00000000 -101.0000 -101.00000000 -101.00000000 -0.0000 0.00000000 0.00000000 -25.5000 8.49999999 5.10000000 --25.5000 -8.49999999 -5.10000000 (101,101,101) (101,101,101) (101,101,101) (101,101,101) (102,100,101) 5 5 5 10 10 10 diff --git a/tests/queries/0_stateless/00700_decimal_aggregates.sql b/tests/queries/0_stateless/00700_decimal_aggregates.sql index c9caa4fa9be..a1814fc866f 100644 --- a/tests/queries/0_stateless/00700_decimal_aggregates.sql +++ b/tests/queries/0_stateless/00700_decimal_aggregates.sql @@ -20,10 +20,6 @@ SELECT sum(a), sum(b), sum(c), sumWithOverflow(a), sumWithOverflow(b), sumWithOv SELECT sum(a+1), sum(b+1), sum(c+1), sumWithOverflow(a+1), sumWithOverflow(b+1), sumWithOverflow(c+1) FROM decimal; SELECT sum(a-1), sum(b-1), sum(c-1), sumWithOverflow(a-1), sumWithOverflow(b-1), sumWithOverflow(c-1) FROM decimal; -SELECT avg(a), avg(b), avg(c) FROM decimal; -SELECT avg(a), avg(b), avg(c) FROM decimal WHERE a > 0; -SELECT avg(a), avg(b), avg(c) FROM decimal WHERE a < 0; - SELECT (uniq(a), uniq(b), uniq(c)), (uniqCombined(a), uniqCombined(b), uniqCombined(c)), (uniqCombined(17)(a), uniqCombined(17)(b), uniqCombined(17)(c)), diff --git a/tests/queries/0_stateless/00910_decimal_group_array_crash_3783.reference b/tests/queries/0_stateless/00910_decimal_group_array_crash_3783.reference index 5bacac7ffea..232d9aa7974 100644 --- a/tests/queries/0_stateless/00910_decimal_group_array_crash_3783.reference +++ b/tests/queries/0_stateless/00910_decimal_group_array_crash_3783.reference @@ -4,6 +4,6 @@ [499500.00] [499500.00000] [499500.0000000000] -1545081300 [('ed87e57c-9331-462a-80b4-9f0c005e88c8',0.4400)] +1545081300 [('ed87e57c-9331-462a-80b4-9f0c005e88c8',0.44)] 4341757 5657967 2018-11-01 16:47:46 txt 321.380000000000 315.080000000000 0.000000000000 2018-11-02 00:00:00 4360430 5681495 2018-11-02 09:00:07 txt 274.350000000000 268.970000000000 0.000000000000 2018-11-02 00:00:00 diff --git a/tests/queries/0_stateless/01018_empty_aggregation_filling.reference b/tests/queries/0_stateless/01018_empty_aggregation_filling.reference index e16276600fb..4595c3b9112 100644 --- a/tests/queries/0_stateless/01018_empty_aggregation_filling.reference +++ b/tests/queries/0_stateless/01018_empty_aggregation_filling.reference @@ -41,7 +41,7 @@ nan \N \N \N -0.00 +0 \N 0 \N From 06ae95a10a9adb93f47b9df862716da2ba65dcca Mon Sep 17 00:00:00 2001 From: myrrc Date: Fri, 30 Oct 2020 21:08:33 +0300 Subject: [PATCH 058/425] fixing nan values for functions --- .../aggregate-functions/reference/avg.md | 4 +- src/AggregateFunctions/AggregateFunctionAvg.h | 15 +- .../AggregateFunctionAvgWeighted.h | 4 +- tests/queries/0_stateless/01035_avg.reference | 2 +- ...01518_nullable_aggregate_states2.reference | 3654 ++++++++--------- 5 files changed, 1839 insertions(+), 1840 deletions(-) diff --git a/docs/en/sql-reference/aggregate-functions/reference/avg.md b/docs/en/sql-reference/aggregate-functions/reference/avg.md index 06117cb83cf..e2e6aace734 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/avg.md +++ b/docs/en/sql-reference/aggregate-functions/reference/avg.md @@ -23,7 +23,7 @@ avgWeighted(x) **Returned value** -- `0` if the supplied parameter is empty. +- `NaN` if the supplied parameter is empty. - Mean otherwise. **Return type** is always [Float64](../../../sql-reference/data-types/float.md). @@ -57,6 +57,6 @@ Result: ``` text ┌─avg(x)─┐ -│ 0 │ +│ nan │ └────────┘ ``` diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index c28d235a8f4..2369ae835c3 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -11,8 +11,7 @@ namespace DB { -/// @tparam BothZeroMeansNaN If false, the pair 0 / 0 = 0, nan otherwise. -template +template struct RationalFraction { Float64 numerator{0}; @@ -20,7 +19,7 @@ struct RationalFraction Float64 NO_SANITIZE_UNDEFINED result() const { - if constexpr (BothZeroMeansNaN && std::numeric_limits::is_iec559) + if constexpr (std::numeric_limits::is_iec559) return static_cast(numerator) / denominator; /// allow division by zero if (denominator == static_cast(0)) @@ -43,12 +42,12 @@ struct RationalFraction * @tparam Derived When deriving from this class, use the child class name as in CRTP, e.g. * class Self : Agg. */ -template +template class AggregateFunctionAvgBase : public - IAggregateFunctionDataHelper, Derived> + IAggregateFunctionDataHelper, Derived> { public: - using Fraction = RationalFraction; + using Fraction = RationalFraction; using Base = IAggregateFunctionDataHelper; explicit AggregateFunctionAvgBase(const DataTypes & argument_types_): Base(argument_types_, {}) {} @@ -87,10 +86,10 @@ public: } }; -class AggregateFunctionAvg final : public AggregateFunctionAvgBase +class AggregateFunctionAvg final : public AggregateFunctionAvgBase { public: - using AggregateFunctionAvgBase::AggregateFunctionAvgBase; + using AggregateFunctionAvgBase::AggregateFunctionAvgBase; void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const final { diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h index ef9384e48ab..ca9f0757cba 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h @@ -5,10 +5,10 @@ namespace DB { -class AggregateFunctionAvgWeighted final : public AggregateFunctionAvgBase +class AggregateFunctionAvgWeighted final : public AggregateFunctionAvgBase { public: - using AggregateFunctionAvgBase::AggregateFunctionAvgBase; + using AggregateFunctionAvgBase::AggregateFunctionAvgBase; void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const override { diff --git a/tests/queries/0_stateless/01035_avg.reference b/tests/queries/0_stateless/01035_avg.reference index d1644f95165..8e5b888b523 100644 --- a/tests/queries/0_stateless/01035_avg.reference +++ b/tests/queries/0_stateless/01035_avg.reference @@ -1,2 +1,2 @@ -0 +nan 499.5 diff --git a/tests/queries/0_stateless/01518_nullable_aggregate_states2.reference b/tests/queries/0_stateless/01518_nullable_aggregate_states2.reference index cb1a5a32ebf..e068a35dbd1 100644 --- a/tests/queries/0_stateless/01518_nullable_aggregate_states2.reference +++ b/tests/queries/0_stateless/01518_nullable_aggregate_states2.reference @@ -6,2010 +6,2010 @@ -3 1 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N -4 1 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N -5 1 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N -0 102 0 99900 0 300 150 15150 0 300 150 15150 0.00000 300.00000 150.00000 15150.00000 2020-01-01 2020-01-02 2020-01-01 00:00:00 2020-01-02 03:45:00 2020-01-01 00:00:00.000 2020-01-02 03:45:00.000 0 99900 49950 5044950 0 99900 49950 5044950 -32569 32366 4529.009900990099 457430 -127 124 -2.9504950495049505 -298 -1 102 1 9991 0.003 300.003 150.003 15150.3033 0.003 300.003 150.003 15150.30329 0.00300 300.00300 150.00300 15150.30300 2020-01-01 2020-01-02 2020-01-01 00:00:01 2020-01-02 03:45:01 2020-01-01 00:00:01.000 2020-01-02 03:45:01.000 1 99901 49951 5045051 1 99901 49951 5045051 -32568 32367 4530.009900990099 457531 -126 125 -1.9504950495049505 -197 -10 102 10 99910 0.03003 300.03003 150.03003 15153.03303 0.03003 300.03003 150.03002 15153.03296 0.03003 300.03003 150.03003 15153.03303 2020-01-01 2020-01-02 2020-01-01 00:00:10 2020-01-02 03:45:10 2020-01-01 00:00:10.000 2020-01-02 03:45:10.000 10 99910 49960 5045960 10 99910 49960 5045960 -32559 32376 4539.009900990099 458440 -128 127 -0.5544554455445545 -56 -100 101 100 99001 0.3003 297.3003 148.8003 14880.03003 0.3003 297.3003 148.80029 14880.02962 0.30030 297.30030 148.80030 14880.03000 2020-01-01 2020-01-02 2020-01-01 00:01:40 2020-01-02 03:30:01 2020-01-01 00:01:40.000 2020-01-02 03:30:01.000 100 99001 49550.5 4955050 100 99001 49550.5 4955050 -32469 32466 4986.02 498602 -127 124 -0.86 -86 -101 101 10091 99002 0.3033 297.3033 148.8033 14880.33033 0.3033 297.3033 148.8033 14880.33035 0.30330 297.30330 148.80330 14880.33000 2020-01-01 2020-01-02 2020-01-01 00:01:41 2020-01-02 03:30:02 2020-01-01 00:01:41.000 2020-01-02 03:30:02.000 101 99002 49551.5 4955150 101 99002 49551.5 4955150 -32468 32467 4987.02 498702 -126 125 0.14 14 -102 101 10092 99003 0.3063 297.3063 148.8063 14880.63063 0.3063 297.3063 148.8063 14880.6305 0.30630 297.30630 148.80630 14880.63000 2020-01-01 2020-01-02 2020-01-01 00:01:42 2020-01-02 03:30:03 2020-01-01 00:01:42.000 2020-01-02 03:30:03.000 102 99003 49552.5 4955250 102 99003 49552.5 4955250 -32467 32468 4988.02 498802 -125 126 1.14 114 -103 101 10093 99004 0.3093 297.3093 148.8093 14880.93093 0.3093 297.3093 148.8093 14880.93085 0.30930 297.30930 148.80930 14880.93000 2020-01-01 2020-01-02 2020-01-01 00:01:43 2020-01-02 03:30:04 2020-01-01 00:01:43.000 2020-01-02 03:30:04.000 103 99004 49553.5 4955350 103 99004 49553.5 4955350 -32466 32469 4989.02 498902 -124 127 2.14 214 -104 101 10094 99005 0.31231 297.31231 148.81231 14881.23123 0.31231 297.31232 148.81231 14881.23144 0.31231 297.31231 148.81231 14881.23100 2020-01-01 2020-01-02 2020-01-01 00:01:44 2020-01-02 03:30:05 2020-01-01 00:01:44.000 2020-01-02 03:30:05.000 104 99005 49554.5 4955450 104 99005 49554.5 4955450 -32465 32470 4990.02 499002 -128 127 0.58 58 -105 101 10095 99006 0.31531 297.31531 148.81531 14881.53153 0.31531 297.3153 148.81531 14881.53174 0.31531 297.31531 148.81531 14881.53100 2020-01-01 2020-01-02 2020-01-01 00:01:45 2020-01-02 03:30:06 2020-01-01 00:01:45.000 2020-01-02 03:30:06.000 105 99006 49555.5 4955550 105 99006 49555.5 4955550 -32464 32471 4991.02 499102 -128 123 -0.98 -98 -106 101 10096 99007 0.31831 297.31831 148.81831 14881.83183 0.31831 297.31833 148.81831 14881.83182 0.31831 297.31831 148.81831 14881.83100 2020-01-01 2020-01-02 2020-01-01 00:01:46 2020-01-02 03:30:07 2020-01-01 00:01:46.000 2020-01-02 03:30:07.000 106 99007 49556.5 4955650 106 99007 49556.5 4955650 -32463 32472 4992.02 499202 -127 124 0.02 2 -107 101 10097 99008 0.32132 297.32132 148.82132 14882.13213 0.32132 297.32132 148.82131 14882.13197 0.32132 297.32132 148.82132 14882.13200 2020-01-01 2020-01-02 2020-01-01 00:01:47 2020-01-02 03:30:08 2020-01-01 00:01:47.000 2020-01-02 03:30:08.000 107 99008 49557.5 4955750 107 99008 49557.5 4955750 -32462 32473 4993.02 499302 -126 125 1.02 102 -108 101 10098 99009 0.32432 297.32432 148.82432 14882.43243 0.32432 297.3243 148.82432 14882.43232 0.32432 297.32432 148.82432 14882.43200 2020-01-01 2020-01-02 2020-01-01 00:01:48 2020-01-02 03:30:09 2020-01-01 00:01:48.000 2020-01-02 03:30:09.000 108 99009 49558.5 4955850 108 99009 49558.5 4955850 -32461 32474 4994.02 499402 -125 126 2.02 202 -109 101 10099 99010 0.32732 297.32732 148.82732 14882.73273 0.32732 297.32733 148.82732 14882.7329 0.32732 297.32732 148.82732 14882.73200 2020-01-01 2020-01-02 2020-01-01 00:01:49 2020-01-02 03:30:10 2020-01-01 00:01:49.000 2020-01-02 03:30:10.000 109 99010 49559.5 4955950 109 99010 49559.5 4955950 -32460 32475 4995.02 499502 -124 127 3.02 302 +0 102 0 99900 0 300 150 15150 0 300 150 15150 0.00000 300.00000 150 15150.00000 2020-01-01 2020-01-02 2020-01-01 00:00:00 2020-01-02 03:45:00 2020-01-01 00:00:00.000 2020-01-02 03:45:00.000 0 99900 49950 5044950 0 99900 49950 5044950 -32569 32366 4529.009900990099 457430 -127 124 -2.9504950495049505 -298 +1 102 1 9991 0.003 300.003 150.003 15150.3033 0.003 300.003 150.003 15150.30329 0.00300 300.00300 150.00300000000004 15150.30300 2020-01-01 2020-01-02 2020-01-01 00:00:01 2020-01-02 03:45:01 2020-01-01 00:00:01.000 2020-01-02 03:45:01.000 1 99901 49951 5045051 1 99901 49951 5045051 -32568 32367 4530.009900990099 457531 -126 125 -1.9504950495049505 -197 +10 102 10 99910 0.03003 300.03003 150.03003 15153.03303 0.03003 300.03003 150.03002 15153.03296 0.03003 300.03003 150.03002999999993 15153.03303 2020-01-01 2020-01-02 2020-01-01 00:00:10 2020-01-02 03:45:10 2020-01-01 00:00:10.000 2020-01-02 03:45:10.000 10 99910 49960 5045960 10 99910 49960 5045960 -32559 32376 4539.009900990099 458440 -128 127 -0.5544554455445545 -56 +100 101 100 99001 0.3003 297.3003 148.8003 14880.03003 0.3003 297.3003 148.80029 14880.02962 0.30030 297.30030 148.80030000000005 14880.03000 2020-01-01 2020-01-02 2020-01-01 00:01:40 2020-01-02 03:30:01 2020-01-01 00:01:40.000 2020-01-02 03:30:01.000 100 99001 49550.5 4955050 100 99001 49550.5 4955050 -32469 32466 4986.02 498602 -127 124 -0.86 -86 +101 101 10091 99002 0.3033 297.3033 148.8033 14880.33033 0.3033 297.3033 148.8033 14880.33035 0.30330 297.30330 148.80329999999987 14880.33000 2020-01-01 2020-01-02 2020-01-01 00:01:41 2020-01-02 03:30:02 2020-01-01 00:01:41.000 2020-01-02 03:30:02.000 101 99002 49551.5 4955150 101 99002 49551.5 4955150 -32468 32467 4987.02 498702 -126 125 0.14 14 +102 101 10092 99003 0.3063 297.3063 148.8063 14880.63063 0.3063 297.3063 148.8063 14880.6305 0.30630 297.30630 148.80630000000008 14880.63000 2020-01-01 2020-01-02 2020-01-01 00:01:42 2020-01-02 03:30:03 2020-01-01 00:01:42.000 2020-01-02 03:30:03.000 102 99003 49552.5 4955250 102 99003 49552.5 4955250 -32467 32468 4988.02 498802 -125 126 1.14 114 +103 101 10093 99004 0.3093 297.3093 148.8093 14880.93093 0.3093 297.3093 148.8093 14880.93085 0.30930 297.30930 148.80930000000006 14880.93000 2020-01-01 2020-01-02 2020-01-01 00:01:43 2020-01-02 03:30:04 2020-01-01 00:01:43.000 2020-01-02 03:30:04.000 103 99004 49553.5 4955350 103 99004 49553.5 4955350 -32466 32469 4989.02 498902 -124 127 2.14 214 +104 101 10094 99005 0.31231 297.31231 148.81231 14881.23123 0.31231 297.31232 148.81231 14881.23144 0.31231 297.31231 148.81230999999997 14881.23100 2020-01-01 2020-01-02 2020-01-01 00:01:44 2020-01-02 03:30:05 2020-01-01 00:01:44.000 2020-01-02 03:30:05.000 104 99005 49554.5 4955450 104 99005 49554.5 4955450 -32465 32470 4990.02 499002 -128 127 0.58 58 +105 101 10095 99006 0.31531 297.31531 148.81531 14881.53153 0.31531 297.3153 148.81531 14881.53174 0.31531 297.31531 148.81530999999998 14881.53100 2020-01-01 2020-01-02 2020-01-01 00:01:45 2020-01-02 03:30:06 2020-01-01 00:01:45.000 2020-01-02 03:30:06.000 105 99006 49555.5 4955550 105 99006 49555.5 4955550 -32464 32471 4991.02 499102 -128 123 -0.98 -98 +106 101 10096 99007 0.31831 297.31831 148.81831 14881.83183 0.31831 297.31833 148.81831 14881.83182 0.31831 297.31831 148.81831000000003 14881.83100 2020-01-01 2020-01-02 2020-01-01 00:01:46 2020-01-02 03:30:07 2020-01-01 00:01:46.000 2020-01-02 03:30:07.000 106 99007 49556.5 4955650 106 99007 49556.5 4955650 -32463 32472 4992.02 499202 -127 124 0.02 2 +107 101 10097 99008 0.32132 297.32132 148.82132 14882.13213 0.32132 297.32132 148.82131 14882.13197 0.32132 297.32132 148.8213199999999 14882.13200 2020-01-01 2020-01-02 2020-01-01 00:01:47 2020-01-02 03:30:08 2020-01-01 00:01:47.000 2020-01-02 03:30:08.000 107 99008 49557.5 4955750 107 99008 49557.5 4955750 -32462 32473 4993.02 499302 -126 125 1.02 102 +108 101 10098 99009 0.32432 297.32432 148.82432 14882.43243 0.32432 297.3243 148.82432 14882.43232 0.32432 297.32432 148.82431999999994 14882.43200 2020-01-01 2020-01-02 2020-01-01 00:01:48 2020-01-02 03:30:09 2020-01-01 00:01:48.000 2020-01-02 03:30:09.000 108 99009 49558.5 4955850 108 99009 49558.5 4955850 -32461 32474 4994.02 499402 -125 126 2.02 202 +109 101 10099 99010 0.32732 297.32732 148.82732 14882.73273 0.32732 297.32733 148.82732 14882.7329 0.32732 297.32732 148.8273200000001 14882.73200 2020-01-01 2020-01-02 2020-01-01 00:01:49 2020-01-02 03:30:10 2020-01-01 00:01:49.000 2020-01-02 03:30:10.000 109 99010 49559.5 4955950 109 99010 49559.5 4955950 -32460 32475 4995.02 499502 -124 127 3.02 302 11 102 10001 99911 0.03303 300.03303 150.03303 15153.33633 0.03303 300.03302 150.03303 15153.33627 0.03303 300.03303 150.03303 15153.33603 2020-01-01 2020-01-02 2020-01-01 00:00:11 2020-01-02 03:45:11 2020-01-01 00:00:11.000 2020-01-02 03:45:11.000 11 99911 49961 5046061 11 99911 49961 5046061 -32558 32377 4540.009900990099 458541 -128 123 -2.089108910891089 -211 110 101 10100 99011 0.33033 297.33033 148.83033 14883.03303 0.33033 297.33032 148.83033 14883.03321 0.33033 297.33033 148.83033 14883.03300 2020-01-01 2020-01-02 2020-01-01 00:01:50 2020-01-02 03:30:11 2020-01-01 00:01:50.000 2020-01-02 03:30:11.000 110 99011 49560.5 4956050 110 99011 49560.5 4956050 -32459 32476 4996.02 499602 -128 127 1.46 146 111 101 10101 99012 0.33333 297.33333 148.83333 14883.33333 0.33333 297.33334 148.83333 14883.33329 0.33333 297.33333 148.83333 14883.33300 2020-01-01 2020-01-02 2020-01-01 00:01:51 2020-01-02 03:30:12 2020-01-01 00:01:51.000 2020-01-02 03:30:12.000 111 99012 49561.5 4956150 111 99012 49561.5 4956150 -32458 32477 4997.02 499702 -128 123 -0.1 -10 -112 101 10102 99013 0.33633 297.33633 148.83633 14883.63363 0.33633 297.33633 148.83633 14883.63348 0.33633 297.33633 148.83633 14883.63300 2020-01-01 2020-01-02 2020-01-01 00:01:52 2020-01-02 03:30:13 2020-01-01 00:01:52.000 2020-01-02 03:30:13.000 112 99013 49562.5 4956250 112 99013 49562.5 4956250 -32457 32478 4998.02 499802 -127 124 0.9 90 -113 101 10103 99014 0.33933 297.33933 148.83933 14883.93393 0.33933 297.33932 148.83933 14883.9338 0.33933 297.33933 148.83933 14883.93300 2020-01-01 2020-01-02 2020-01-01 00:01:53 2020-01-02 03:30:14 2020-01-01 00:01:53.000 2020-01-02 03:30:14.000 113 99014 49563.5 4956350 113 99014 49563.5 4956350 -32456 32479 4999.02 499902 -126 125 1.9 190 -114 101 10104 99015 0.34234 297.34234 148.84234 14884.23423 0.34234 297.34235 148.84234 14884.23437 0.34234 297.34234 148.84234 14884.23400 2020-01-01 2020-01-02 2020-01-01 00:01:54 2020-01-02 03:30:15 2020-01-01 00:01:54.000 2020-01-02 03:30:15.000 114 99015 49564.5 4956450 114 99015 49564.5 4956450 -32455 32480 5000.02 500002 -125 126 2.9 290 -115 101 10105 99016 0.34534 297.34534 148.84534 14884.53453 0.34534 297.34534 148.84534 14884.53468 0.34534 297.34534 148.84534 14884.53400 2020-01-01 2020-01-02 2020-01-01 00:01:55 2020-01-02 03:30:16 2020-01-01 00:01:55.000 2020-01-02 03:30:16.000 115 99016 49565.5 4956550 115 99016 49565.5 4956550 -32454 32481 5001.02 500102 -124 127 3.9 390 -116 101 10106 99017 0.34834 297.34834 148.84834 14884.83483 0.34834 297.34836 148.84834 14884.83476 0.34834 297.34834 148.84834 14884.83400 2020-01-01 2020-01-02 2020-01-01 00:01:56 2020-01-02 03:30:17 2020-01-01 00:01:56.000 2020-01-02 03:30:17.000 116 99017 49566.5 4956650 116 99017 49566.5 4956650 -32453 32482 5002.02 500202 -128 127 2.34 234 -117 101 10107 99018 0.35135 297.35135 148.85135 14885.13513 0.35135 297.35135 148.85134 14885.13495 0.35135 297.35135 148.85135 14885.13500 2020-01-01 2020-01-02 2020-01-01 00:01:57 2020-01-02 03:30:18 2020-01-01 00:01:57.000 2020-01-02 03:30:18.000 117 99018 49567.5 4956750 117 99018 49567.5 4956750 -32452 32483 5003.02 500302 -128 123 0.78 78 -118 101 10108 99019 0.35435 297.35435 148.85435 14885.43543 0.35435 297.35434 148.85435 14885.43526 0.35435 297.35435 148.85435 14885.43500 2020-01-01 2020-01-02 2020-01-01 00:01:58 2020-01-02 03:30:19 2020-01-01 00:01:58.000 2020-01-02 03:30:19.000 118 99019 49568.5 4956850 118 99019 49568.5 4956850 -32451 32484 5004.02 500402 -127 124 1.78 178 -119 101 10109 99020 0.35735 297.35735 148.85735 14885.73573 0.35735 297.35736 148.85736 14885.736 0.35735 297.35735 148.85735 14885.73500 2020-01-01 2020-01-02 2020-01-01 00:01:59 2020-01-02 03:30:20 2020-01-01 00:01:59.000 2020-01-02 03:30:20.000 119 99020 49569.5 4956950 119 99020 49569.5 4956950 -32450 32485 5005.02 500502 -126 125 2.78 278 +112 101 10102 99013 0.33633 297.33633 148.83633 14883.63363 0.33633 297.33633 148.83633 14883.63348 0.33633 297.33633 148.83633000000006 14883.63300 2020-01-01 2020-01-02 2020-01-01 00:01:52 2020-01-02 03:30:13 2020-01-01 00:01:52.000 2020-01-02 03:30:13.000 112 99013 49562.5 4956250 112 99013 49562.5 4956250 -32457 32478 4998.02 499802 -127 124 0.9 90 +113 101 10103 99014 0.33933 297.33933 148.83933 14883.93393 0.33933 297.33932 148.83933 14883.9338 0.33933 297.33933 148.83933000000002 14883.93300 2020-01-01 2020-01-02 2020-01-01 00:01:53 2020-01-02 03:30:14 2020-01-01 00:01:53.000 2020-01-02 03:30:14.000 113 99014 49563.5 4956350 113 99014 49563.5 4956350 -32456 32479 4999.02 499902 -126 125 1.9 190 +114 101 10104 99015 0.34234 297.34234 148.84234 14884.23423 0.34234 297.34235 148.84234 14884.23437 0.34234 297.34234 148.84233999999998 14884.23400 2020-01-01 2020-01-02 2020-01-01 00:01:54 2020-01-02 03:30:15 2020-01-01 00:01:54.000 2020-01-02 03:30:15.000 114 99015 49564.5 4956450 114 99015 49564.5 4956450 -32455 32480 5000.02 500002 -125 126 2.9 290 +115 101 10105 99016 0.34534 297.34534 148.84534 14884.53453 0.34534 297.34534 148.84534 14884.53468 0.34534 297.34534 148.84533999999994 14884.53400 2020-01-01 2020-01-02 2020-01-01 00:01:55 2020-01-02 03:30:16 2020-01-01 00:01:55.000 2020-01-02 03:30:16.000 115 99016 49565.5 4956550 115 99016 49565.5 4956550 -32454 32481 5001.02 500102 -124 127 3.9 390 +116 101 10106 99017 0.34834 297.34834 148.84834 14884.83483 0.34834 297.34836 148.84834 14884.83476 0.34834 297.34834 148.84834000000015 14884.83400 2020-01-01 2020-01-02 2020-01-01 00:01:56 2020-01-02 03:30:17 2020-01-01 00:01:56.000 2020-01-02 03:30:17.000 116 99017 49566.5 4956650 116 99017 49566.5 4956650 -32453 32482 5002.02 500202 -128 127 2.34 234 +117 101 10107 99018 0.35135 297.35135 148.85135 14885.13513 0.35135 297.35135 148.85134 14885.13495 0.35135 297.35135 148.85135000000005 14885.13500 2020-01-01 2020-01-02 2020-01-01 00:01:57 2020-01-02 03:30:18 2020-01-01 00:01:57.000 2020-01-02 03:30:18.000 117 99018 49567.5 4956750 117 99018 49567.5 4956750 -32452 32483 5003.02 500302 -128 123 0.78 78 +118 101 10108 99019 0.35435 297.35435 148.85435 14885.43543 0.35435 297.35434 148.85435 14885.43526 0.35435 297.35435 148.8543499999999 14885.43500 2020-01-01 2020-01-02 2020-01-01 00:01:58 2020-01-02 03:30:19 2020-01-01 00:01:58.000 2020-01-02 03:30:19.000 118 99019 49568.5 4956850 118 99019 49568.5 4956850 -32451 32484 5004.02 500402 -127 124 1.78 178 +119 101 10109 99020 0.35735 297.35735 148.85735 14885.73573 0.35735 297.35736 148.85736 14885.736 0.35735 297.35735 148.8573500000001 14885.73500 2020-01-01 2020-01-02 2020-01-01 00:01:59 2020-01-02 03:30:20 2020-01-01 00:01:59.000 2020-01-02 03:30:20.000 119 99020 49569.5 4956950 119 99020 49569.5 4956950 -32450 32485 5005.02 500502 -126 125 2.78 278 12 102 10002 99912 0.03603 300.03603 150.03603 15153.63963 0.03603 300.03604 150.03603 15153.6399 0.03603 300.03603 150.03603 15153.63903 2020-01-01 2020-01-02 2020-01-01 00:00:12 2020-01-02 03:45:12 2020-01-01 00:00:12.000 2020-01-02 03:45:12.000 12 99912 49962 5046162 12 99912 49962 5046162 -32557 32378 4541.009900990099 458642 -127 124 -1.0891089108910892 -110 -120 101 10110 99021 0.36036 297.36036 148.86036 14886.03603 0.36036 297.36035 148.86036 14886.03615 0.36036 297.36036 148.86036 14886.03600 2020-01-01 2020-01-02 2020-01-01 00:02:00 2020-01-02 03:30:21 2020-01-01 00:02:00.000 2020-01-02 03:30:21.000 120 99021 49570.5 4957050 120 99021 49570.5 4957050 -32449 32486 5006.02 500602 -125 126 3.78 378 -121 101 10111 99022 0.36336 297.36336 148.86336 14886.33633 0.36336 297.36337 148.86336 14886.33627 0.36336 297.36336 148.86336 14886.33600 2020-01-01 2020-01-02 2020-01-01 00:02:01 2020-01-02 03:30:22 2020-01-01 00:02:01.000 2020-01-02 03:30:22.000 121 99022 49571.5 4957150 121 99022 49571.5 4957150 -32448 32487 5007.02 500702 -124 127 4.78 478 +120 101 10110 99021 0.36036 297.36036 148.86036 14886.03603 0.36036 297.36035 148.86036 14886.03615 0.36036 297.36036 148.86036000000004 14886.03600 2020-01-01 2020-01-02 2020-01-01 00:02:00 2020-01-02 03:30:21 2020-01-01 00:02:00.000 2020-01-02 03:30:21.000 120 99021 49570.5 4957050 120 99021 49570.5 4957050 -32449 32486 5006.02 500602 -125 126 3.78 378 +121 101 10111 99022 0.36336 297.36336 148.86336 14886.33633 0.36336 297.36337 148.86336 14886.33627 0.36336 297.36336 148.86335999999994 14886.33600 2020-01-01 2020-01-02 2020-01-01 00:02:01 2020-01-02 03:30:22 2020-01-01 00:02:01.000 2020-01-02 03:30:22.000 121 99022 49571.5 4957150 121 99022 49571.5 4957150 -32448 32487 5007.02 500702 -124 127 4.78 478 122 101 10112 99023 0.36636 297.36636 148.86636 14886.63663 0.36636 297.36636 148.86636 14886.63642 0.36636 297.36636 148.86636 14886.63600 2020-01-01 2020-01-02 2020-01-01 00:02:02 2020-01-02 03:30:23 2020-01-01 00:02:02.000 2020-01-02 03:30:23.000 122 99023 49572.5 4957250 122 99023 49572.5 4957250 -32447 32488 5008.02 500802 -128 127 3.22 322 -123 101 10113 99024 0.36936 297.36936 148.86936 14886.93693 0.36936 297.36935 148.86936 14886.93673 0.36936 297.36936 148.86936 14886.93600 2020-01-01 2020-01-02 2020-01-01 00:02:03 2020-01-02 03:30:24 2020-01-01 00:02:03.000 2020-01-02 03:30:24.000 123 99024 49573.5 4957350 123 99024 49573.5 4957350 -32446 32489 5009.02 500902 -128 127 1.66 166 -124 101 10114 99025 0.37237 297.37237 148.87237 14887.23723 0.37237 297.37238 148.87237 14887.23746 0.37237 297.37237 148.87237 14887.23700 2020-01-01 2020-01-02 2020-01-01 00:02:04 2020-01-02 03:30:25 2020-01-01 00:02:04.000 2020-01-02 03:30:25.000 124 99025 49574.5 4957450 124 99025 49574.5 4957450 -32445 32490 5010.02 501002 -128 124 0.1 10 -125 101 10115 99026 0.37537 297.37537 148.87537 14887.53753 0.37537 297.37537 148.87537 14887.53762 0.37537 297.37537 148.87537 14887.53700 2020-01-01 2020-01-02 2020-01-01 00:02:05 2020-01-02 03:30:26 2020-01-01 00:02:05.000 2020-01-02 03:30:26.000 125 99026 49575.5 4957550 125 99026 49575.5 4957550 -32444 32491 5011.02 501102 -127 125 1.1 110 -126 101 10116 99027 0.37837 297.37837 148.87837 14887.83783 0.37837 297.3784 148.87837 14887.83774 0.37837 297.37837 148.87837 14887.83700 2020-01-01 2020-01-02 2020-01-01 00:02:06 2020-01-02 03:30:27 2020-01-01 00:02:06.000 2020-01-02 03:30:27.000 126 99027 49576.5 4957650 126 99027 49576.5 4957650 -32443 32492 5012.02 501202 -126 126 2.1 210 +123 101 10113 99024 0.36936 297.36936 148.86936 14886.93693 0.36936 297.36935 148.86936 14886.93673 0.36936 297.36936 148.86936000000003 14886.93600 2020-01-01 2020-01-02 2020-01-01 00:02:03 2020-01-02 03:30:24 2020-01-01 00:02:03.000 2020-01-02 03:30:24.000 123 99024 49573.5 4957350 123 99024 49573.5 4957350 -32446 32489 5009.02 500902 -128 127 1.66 166 +124 101 10114 99025 0.37237 297.37237 148.87237 14887.23723 0.37237 297.37238 148.87237 14887.23746 0.37237 297.37237 148.87236999999993 14887.23700 2020-01-01 2020-01-02 2020-01-01 00:02:04 2020-01-02 03:30:25 2020-01-01 00:02:04.000 2020-01-02 03:30:25.000 124 99025 49574.5 4957450 124 99025 49574.5 4957450 -32445 32490 5010.02 501002 -128 124 0.1 10 +125 101 10115 99026 0.37537 297.37537 148.87537 14887.53753 0.37537 297.37537 148.87537 14887.53762 0.37537 297.37537 148.87536999999992 14887.53700 2020-01-01 2020-01-02 2020-01-01 00:02:05 2020-01-02 03:30:26 2020-01-01 00:02:05.000 2020-01-02 03:30:26.000 125 99026 49575.5 4957550 125 99026 49575.5 4957550 -32444 32491 5011.02 501102 -127 125 1.1 110 +126 101 10116 99027 0.37837 297.37837 148.87837 14887.83783 0.37837 297.3784 148.87837 14887.83774 0.37837 297.37837 148.87837000000007 14887.83700 2020-01-01 2020-01-02 2020-01-01 00:02:06 2020-01-02 03:30:27 2020-01-01 00:02:06.000 2020-01-02 03:30:27.000 126 99027 49576.5 4957650 126 99027 49576.5 4957650 -32443 32492 5012.02 501202 -126 126 2.1 210 127 101 10117 99028 0.38138 297.38138 148.88138 14888.13813 0.38138 297.38138 148.88137 14888.13789 0.38138 297.38138 148.88138 14888.13800 2020-01-01 2020-01-02 2020-01-01 00:02:07 2020-01-02 03:30:28 2020-01-01 00:02:07.000 2020-01-02 03:30:28.000 127 99028 49577.5 4957750 127 99028 49577.5 4957750 -32442 32493 5013.02 501302 -125 127 3.1 310 -128 101 10118 99029 0.38438 297.38438 148.88438 14888.43843 0.38438 297.3844 148.88438 14888.43862 0.38438 297.38438 148.88438 14888.43800 2020-01-01 2020-01-02 2020-01-01 00:02:08 2020-01-02 03:30:29 2020-01-01 00:02:08.000 2020-01-02 03:30:29.000 128 99029 49578.5 4957850 128 99029 49578.5 4957850 -32441 32494 5014.02 501402 -128 127 1.54 154 -129 101 10119 99030 0.38738 297.38738 148.88738 14888.73873 0.38738 297.3874 148.88738 14888.73894 0.38738 297.38738 148.88738 14888.73800 2020-01-01 2020-01-02 2020-01-01 00:02:09 2020-01-02 03:30:30 2020-01-01 00:02:09.000 2020-01-02 03:30:30.000 129 99030 49579.5 4957950 129 99030 49579.5 4957950 -32440 32495 5015.02 501502 -128 127 -0.02 -2 -13 102 10003 99913 0.03903 300.03903 150.03903 15153.94294 0.03903 300.03903 150.03903 15153.94255 0.03903 300.03903 150.03903 15153.94203 2020-01-01 2020-01-02 2020-01-01 00:00:13 2020-01-02 03:45:13 2020-01-01 00:00:13.000 2020-01-02 03:45:13.000 13 99913 49963 5046263 13 99913 49963 5046263 -32556 32379 4542.009900990099 458743 -126 125 -0.0891089108910891 -9 +128 101 10118 99029 0.38438 297.38438 148.88438 14888.43843 0.38438 297.3844 148.88438 14888.43862 0.38438 297.38438 148.88438000000002 14888.43800 2020-01-01 2020-01-02 2020-01-01 00:02:08 2020-01-02 03:30:29 2020-01-01 00:02:08.000 2020-01-02 03:30:29.000 128 99029 49578.5 4957850 128 99029 49578.5 4957850 -32441 32494 5014.02 501402 -128 127 1.54 154 +129 101 10119 99030 0.38738 297.38738 148.88738 14888.73873 0.38738 297.3874 148.88738 14888.73894 0.38738 297.38738 148.88738000000006 14888.73800 2020-01-01 2020-01-02 2020-01-01 00:02:09 2020-01-02 03:30:30 2020-01-01 00:02:09.000 2020-01-02 03:30:30.000 129 99030 49579.5 4957950 129 99030 49579.5 4957950 -32440 32495 5015.02 501502 -128 127 -0.02 -2 +13 102 10003 99913 0.03903 300.03903 150.03903 15153.94294 0.03903 300.03903 150.03903 15153.94255 0.03903 300.03903 150.03902999999994 15153.94203 2020-01-01 2020-01-02 2020-01-01 00:00:13 2020-01-02 03:45:13 2020-01-01 00:00:13.000 2020-01-02 03:45:13.000 13 99913 49963 5046263 13 99913 49963 5046263 -32556 32379 4542.009900990099 458743 -126 125 -0.0891089108910891 -9 130 101 10120 99031 0.39039 297.39039 148.89039 14889.03903 0.39039 297.39038 148.89039 14889.03909 0.39039 297.39039 148.89039 14889.03900 2020-01-01 2020-01-02 2020-01-01 00:02:10 2020-01-02 03:30:31 2020-01-01 00:02:10.000 2020-01-02 03:30:31.000 130 99031 49580.5 4958050 130 99031 49580.5 4958050 -32439 32496 5016.02 501602 -128 123 -1.58 -158 -131 101 10121 99032 0.39339 297.39339 148.89339 14889.33933 0.39339 297.3934 148.89339 14889.33921 0.39339 297.39339 148.89339 14889.33900 2020-01-01 2020-01-02 2020-01-01 00:02:11 2020-01-02 03:30:32 2020-01-01 00:02:11.000 2020-01-02 03:30:32.000 131 99032 49581.5 4958150 131 99032 49581.5 4958150 -32438 32497 5017.02 501702 -127 124 -0.58 -58 -132 101 10122 99033 0.39639 297.39639 148.89639 14889.63963 0.39639 297.3964 148.89639 14889.63936 0.39639 297.39639 148.89639 14889.63900 2020-01-01 2020-01-02 2020-01-01 00:02:12 2020-01-02 03:30:33 2020-01-01 00:02:12.000 2020-01-02 03:30:33.000 132 99033 49582.5 4958250 132 99033 49582.5 4958250 -32437 32498 5018.02 501802 -126 125 0.42 42 -133 101 10123 99034 0.39939 297.39939 148.89939 14889.93993 0.39939 297.3994 148.8994 14889.94009 0.39939 297.39939 148.89939 14889.93900 2020-01-01 2020-01-02 2020-01-01 00:02:13 2020-01-02 03:30:34 2020-01-01 00:02:13.000 2020-01-02 03:30:34.000 133 99034 49583.5 4958350 133 99034 49583.5 4958350 -32436 32499 5019.02 501902 -125 126 1.42 142 -134 101 10124 99035 0.4024 297.4024 148.9024 14890.24024 0.4024 297.4024 148.9024 14890.24041 0.40240 297.40240 148.90240 14890.24000 2020-01-01 2020-01-02 2020-01-01 00:02:14 2020-01-02 03:30:35 2020-01-01 00:02:14.000 2020-01-02 03:30:35.000 134 99035 49584.5 4958450 134 99035 49584.5 4958450 -32435 32500 5020.02 502002 -124 127 2.42 242 -135 101 10125 99036 0.4054 297.4054 148.9054 14890.54054 0.4054 297.4054 148.9054 14890.54059 0.40540 297.40540 148.90540 14890.54000 2020-01-01 2020-01-02 2020-01-01 00:02:15 2020-01-02 03:30:36 2020-01-01 00:02:15.000 2020-01-02 03:30:36.000 135 99036 49585.5 4958550 135 99036 49585.5 4958550 -32434 32501 5021.02 502102 -128 127 0.86 86 -136 101 10126 99037 0.4084 297.4084 148.9084 14890.84084 0.4084 297.40842 148.9084 14890.84068 0.40840 297.40840 148.90840 14890.84000 2020-01-01 2020-01-02 2020-01-01 00:02:16 2020-01-02 03:30:37 2020-01-01 00:02:16.000 2020-01-02 03:30:37.000 136 99037 49586.5 4958650 136 99037 49586.5 4958650 -32433 32502 5022.02 502202 -128 123 -0.7 -70 -137 101 10127 99038 0.41141 297.41141 148.91141 14891.14114 0.41141 297.4114 148.9114 14891.14099 0.41141 297.41141 148.91141 14891.14100 2020-01-01 2020-01-02 2020-01-01 00:02:17 2020-01-02 03:30:38 2020-01-01 00:02:17.000 2020-01-02 03:30:38.000 137 99038 49587.5 4958750 137 99038 49587.5 4958750 -32432 32503 5023.02 502302 -127 124 0.3 30 -138 101 10128 99039 0.41441 297.41441 148.91441 14891.44144 0.41441 297.41443 148.91441 14891.44157 0.41441 297.41441 148.91441 14891.44100 2020-01-01 2020-01-02 2020-01-01 00:02:18 2020-01-02 03:30:39 2020-01-01 00:02:18.000 2020-01-02 03:30:39.000 138 99039 49588.5 4958850 138 99039 49588.5 4958850 -32431 32504 5024.02 502402 -126 125 1.3 130 +131 101 10121 99032 0.39339 297.39339 148.89339 14889.33933 0.39339 297.3934 148.89339 14889.33921 0.39339 297.39339 148.89338999999998 14889.33900 2020-01-01 2020-01-02 2020-01-01 00:02:11 2020-01-02 03:30:32 2020-01-01 00:02:11.000 2020-01-02 03:30:32.000 131 99032 49581.5 4958150 131 99032 49581.5 4958150 -32438 32497 5017.02 501702 -127 124 -0.58 -58 +132 101 10122 99033 0.39639 297.39639 148.89639 14889.63963 0.39639 297.3964 148.89639 14889.63936 0.39639 297.39639 148.8963899999999 14889.63900 2020-01-01 2020-01-02 2020-01-01 00:02:12 2020-01-02 03:30:33 2020-01-01 00:02:12.000 2020-01-02 03:30:33.000 132 99033 49582.5 4958250 132 99033 49582.5 4958250 -32437 32498 5018.02 501802 -126 125 0.42 42 +133 101 10123 99034 0.39939 297.39939 148.89939 14889.93993 0.39939 297.3994 148.8994 14889.94009 0.39939 297.39939 148.89938999999998 14889.93900 2020-01-01 2020-01-02 2020-01-01 00:02:13 2020-01-02 03:30:34 2020-01-01 00:02:13.000 2020-01-02 03:30:34.000 133 99034 49583.5 4958350 133 99034 49583.5 4958350 -32436 32499 5019.02 501902 -125 126 1.42 142 +134 101 10124 99035 0.4024 297.4024 148.9024 14890.24024 0.4024 297.4024 148.9024 14890.24041 0.40240 297.40240 148.90240000000009 14890.24000 2020-01-01 2020-01-02 2020-01-01 00:02:14 2020-01-02 03:30:35 2020-01-01 00:02:14.000 2020-01-02 03:30:35.000 134 99035 49584.5 4958450 134 99035 49584.5 4958450 -32435 32500 5020.02 502002 -124 127 2.42 242 +135 101 10125 99036 0.4054 297.4054 148.9054 14890.54054 0.4054 297.4054 148.9054 14890.54059 0.40540 297.40540 148.90539999999993 14890.54000 2020-01-01 2020-01-02 2020-01-01 00:02:15 2020-01-02 03:30:36 2020-01-01 00:02:15.000 2020-01-02 03:30:36.000 135 99036 49585.5 4958550 135 99036 49585.5 4958550 -32434 32501 5021.02 502102 -128 127 0.86 86 +136 101 10126 99037 0.4084 297.4084 148.9084 14890.84084 0.4084 297.40842 148.9084 14890.84068 0.40840 297.40840 148.90840000000003 14890.84000 2020-01-01 2020-01-02 2020-01-01 00:02:16 2020-01-02 03:30:37 2020-01-01 00:02:16.000 2020-01-02 03:30:37.000 136 99037 49586.5 4958650 136 99037 49586.5 4958650 -32433 32502 5022.02 502202 -128 123 -0.7 -70 +137 101 10127 99038 0.41141 297.41141 148.91141 14891.14114 0.41141 297.4114 148.9114 14891.14099 0.41141 297.41141 148.91141000000005 14891.14100 2020-01-01 2020-01-02 2020-01-01 00:02:17 2020-01-02 03:30:38 2020-01-01 00:02:17.000 2020-01-02 03:30:38.000 137 99038 49587.5 4958750 137 99038 49587.5 4958750 -32432 32503 5023.02 502302 -127 124 0.3 30 +138 101 10128 99039 0.41441 297.41441 148.91441 14891.44144 0.41441 297.41443 148.91441 14891.44157 0.41441 297.41441 148.91440999999995 14891.44100 2020-01-01 2020-01-02 2020-01-01 00:02:18 2020-01-02 03:30:39 2020-01-01 00:02:18.000 2020-01-02 03:30:39.000 138 99039 49588.5 4958850 138 99039 49588.5 4958850 -32431 32504 5024.02 502402 -126 125 1.3 130 139 101 10129 99040 0.41741 297.41741 148.91741 14891.74174 0.41741 297.41742 148.91741 14891.74188 0.41741 297.41741 148.91741 14891.74100 2020-01-01 2020-01-02 2020-01-01 00:02:19 2020-01-02 03:30:40 2020-01-01 00:02:19.000 2020-01-02 03:30:40.000 139 99040 49589.5 4958950 139 99040 49589.5 4958950 -32430 32505 5025.02 502502 -125 126 2.3 230 -14 102 10004 99914 0.04204 300.04204 150.04204 15154.24624 0.04204 300.04205 150.04204 15154.2463 0.04204 300.04204 150.04204 15154.24604 2020-01-01 2020-01-02 2020-01-01 00:00:14 2020-01-02 03:45:14 2020-01-01 00:00:14.000 2020-01-02 03:45:14.000 14 99914 49964 5046364 14 99914 49964 5046364 -32555 32380 4543.009900990099 458844 -125 126 0.9108910891089109 92 -140 101 10130 99041 0.42042 297.42042 148.92042 14892.04204 0.42042 297.4204 148.92042 14892.04206 0.42042 297.42042 148.92042 14892.04200 2020-01-01 2020-01-02 2020-01-01 00:02:20 2020-01-02 03:30:41 2020-01-01 00:02:20.000 2020-01-02 03:30:41.000 140 99041 49590.5 4959050 140 99041 49590.5 4959050 -32429 32506 5026.02 502602 -124 127 3.3 330 -141 101 10131 99042 0.42342 297.42342 148.92342 14892.34234 0.42342 297.42343 148.92342 14892.34215 0.42342 297.42342 148.92342 14892.34200 2020-01-01 2020-01-02 2020-01-01 00:02:21 2020-01-02 03:30:42 2020-01-01 00:02:21.000 2020-01-02 03:30:42.000 141 99042 49591.5 4959150 141 99042 49591.5 4959150 -32428 32507 5027.02 502702 -128 127 1.74 174 -142 101 10132 99043 0.42642 297.42642 148.92642 14892.64264 0.42642 297.42642 148.92642 14892.64246 0.42642 297.42642 148.92642 14892.64200 2020-01-01 2020-01-02 2020-01-01 00:02:22 2020-01-02 03:30:43 2020-01-01 00:02:22.000 2020-01-02 03:30:43.000 142 99043 49592.5 4959250 142 99043 49592.5 4959250 -32427 32508 5028.02 502802 -128 123 0.18 18 -143 101 10133 99044 0.42942 297.42942 148.92942 14892.94294 0.42942 297.42944 148.92943 14892.94304 0.42942 297.42942 148.92942 14892.94200 2020-01-01 2020-01-02 2020-01-01 00:02:23 2020-01-02 03:30:44 2020-01-01 00:02:23.000 2020-01-02 03:30:44.000 143 99044 49593.5 4959350 143 99044 49593.5 4959350 -32426 32509 5029.02 502902 -127 124 1.18 118 +14 102 10004 99914 0.04204 300.04204 150.04204 15154.24624 0.04204 300.04205 150.04204 15154.2463 0.04204 300.04204 150.04204000000004 15154.24604 2020-01-01 2020-01-02 2020-01-01 00:00:14 2020-01-02 03:45:14 2020-01-01 00:00:14.000 2020-01-02 03:45:14.000 14 99914 49964 5046364 14 99914 49964 5046364 -32555 32380 4543.009900990099 458844 -125 126 0.9108910891089109 92 +140 101 10130 99041 0.42042 297.42042 148.92042 14892.04204 0.42042 297.4204 148.92042 14892.04206 0.42042 297.42042 148.9204200000001 14892.04200 2020-01-01 2020-01-02 2020-01-01 00:02:20 2020-01-02 03:30:41 2020-01-01 00:02:20.000 2020-01-02 03:30:41.000 140 99041 49590.5 4959050 140 99041 49590.5 4959050 -32429 32506 5026.02 502602 -124 127 3.3 330 +141 101 10131 99042 0.42342 297.42342 148.92342 14892.34234 0.42342 297.42343 148.92342 14892.34215 0.42342 297.42342 148.92341999999994 14892.34200 2020-01-01 2020-01-02 2020-01-01 00:02:21 2020-01-02 03:30:42 2020-01-01 00:02:21.000 2020-01-02 03:30:42.000 141 99042 49591.5 4959150 141 99042 49591.5 4959150 -32428 32507 5027.02 502702 -128 127 1.74 174 +142 101 10132 99043 0.42642 297.42642 148.92642 14892.64264 0.42642 297.42642 148.92642 14892.64246 0.42642 297.42642 148.9264199999999 14892.64200 2020-01-01 2020-01-02 2020-01-01 00:02:22 2020-01-02 03:30:43 2020-01-01 00:02:22.000 2020-01-02 03:30:43.000 142 99043 49592.5 4959250 142 99043 49592.5 4959250 -32427 32508 5028.02 502802 -128 123 0.18 18 +143 101 10133 99044 0.42942 297.42942 148.92942 14892.94294 0.42942 297.42944 148.92943 14892.94304 0.42942 297.42942 148.9294200000001 14892.94200 2020-01-01 2020-01-02 2020-01-01 00:02:23 2020-01-02 03:30:44 2020-01-01 00:02:23.000 2020-01-02 03:30:44.000 143 99044 49593.5 4959350 143 99044 49593.5 4959350 -32426 32509 5029.02 502902 -127 124 1.18 118 144 101 10134 99045 0.43243 297.43243 148.93243 14893.24324 0.43243 297.43243 148.93243 14893.24338 0.43243 297.43243 148.93243 14893.24300 2020-01-01 2020-01-02 2020-01-01 00:02:24 2020-01-02 03:30:45 2020-01-01 00:02:24.000 2020-01-02 03:30:45.000 144 99045 49594.5 4959450 144 99045 49594.5 4959450 -32425 32510 5030.02 503002 -126 125 2.18 218 -145 101 10135 99046 0.43543 297.43543 148.93543 14893.54354 0.43543 297.43542 148.93543 14893.54354 0.43543 297.43543 148.93543 14893.54300 2020-01-01 2020-01-02 2020-01-01 00:02:25 2020-01-02 03:30:46 2020-01-01 00:02:25.000 2020-01-02 03:30:46.000 145 99046 49595.5 4959550 145 99046 49595.5 4959550 -32424 32511 5031.02 503102 -125 126 3.18 318 -146 101 10136 99047 0.43843 297.43843 148.93843 14893.84384 0.43843 297.43845 148.93844 14893.84427 0.43843 297.43843 148.93843 14893.84300 2020-01-01 2020-01-02 2020-01-01 00:02:26 2020-01-02 03:30:47 2020-01-01 00:02:26.000 2020-01-02 03:30:47.000 146 99047 49596.5 4959650 146 99047 49596.5 4959650 -32423 32512 5032.02 503202 -124 127 4.18 418 +145 101 10135 99046 0.43543 297.43543 148.93543 14893.54354 0.43543 297.43542 148.93543 14893.54354 0.43543 297.43543 148.93542999999983 14893.54300 2020-01-01 2020-01-02 2020-01-01 00:02:25 2020-01-02 03:30:46 2020-01-01 00:02:25.000 2020-01-02 03:30:46.000 145 99046 49595.5 4959550 145 99046 49595.5 4959550 -32424 32511 5031.02 503102 -125 126 3.18 318 +146 101 10136 99047 0.43843 297.43843 148.93843 14893.84384 0.43843 297.43845 148.93844 14893.84427 0.43843 297.43843 148.93843000000007 14893.84300 2020-01-01 2020-01-02 2020-01-01 00:02:26 2020-01-02 03:30:47 2020-01-01 00:02:26.000 2020-01-02 03:30:47.000 146 99047 49596.5 4959650 146 99047 49596.5 4959650 -32423 32512 5032.02 503202 -124 127 4.18 418 147 101 10137 99048 0.44144 297.44144 148.94144 14894.14414 0.44144 297.44144 148.94143 14894.14392 0.44144 297.44144 148.94144 14894.14400 2020-01-01 2020-01-02 2020-01-01 00:02:27 2020-01-02 03:30:48 2020-01-01 00:02:27.000 2020-01-02 03:30:48.000 147 99048 49597.5 4959750 147 99048 49597.5 4959750 -32422 32513 5033.02 503302 -128 127 2.62 262 148 101 10138 99049 0.44444 297.44444 148.94444 14894.44444 0.44444 297.44446 148.94444 14894.4445 0.44444 297.44444 148.94444 14894.44400 2020-01-01 2020-01-02 2020-01-01 00:02:28 2020-01-02 03:30:49 2020-01-01 00:02:28.000 2020-01-02 03:30:49.000 148 99049 49598.5 4959850 148 99049 49598.5 4959850 -32421 32514 5034.02 503402 -128 127 1.06 106 -149 101 10139 99050 0.44744 297.44744 148.94744 14894.74474 0.44744 297.44745 148.94744 14894.74485 0.44744 297.44744 148.94744 14894.74400 2020-01-01 2020-01-02 2020-01-01 00:02:29 2020-01-02 03:30:50 2020-01-01 00:02:29.000 2020-01-02 03:30:50.000 149 99050 49599.5 4959950 149 99050 49599.5 4959950 -32420 32515 5035.02 503502 -128 124 -0.5 -50 -15 102 10005 99915 0.04504 300.04504 150.04504 15154.54954 0.04504 300.04504 150.04504 15154.54945 0.04504 300.04504 150.04504 15154.54904 2020-01-01 2020-01-02 2020-01-01 00:00:15 2020-01-02 03:45:15 2020-01-01 00:00:15.000 2020-01-02 03:45:15.000 15 99915 49965 5046465 15 99915 49965 5046465 -32554 32381 4544.009900990099 458945 -124 127 1.9108910891089108 193 -150 101 10140 99051 0.45045 297.45045 148.95045 14895.04504 0.45045 297.45044 148.95045 14895.04501 0.45045 297.45045 148.95045 14895.04500 2020-01-01 2020-01-02 2020-01-01 00:02:30 2020-01-02 03:30:51 2020-01-01 00:02:30.000 2020-01-02 03:30:51.000 150 99051 49600.5 4960050 150 99051 49600.5 4960050 -32419 32516 5036.02 503602 -127 125 0.5 50 -151 101 10141 99052 0.45345 297.45345 148.95345 14895.34534 0.45345 297.45346 148.95345 14895.34574 0.45345 297.45345 148.95345 14895.34500 2020-01-01 2020-01-02 2020-01-01 00:02:31 2020-01-02 03:30:52 2020-01-01 00:02:31.000 2020-01-02 03:30:52.000 151 99052 49601.5 4960150 151 99052 49601.5 4960150 -32418 32517 5037.02 503702 -126 126 1.5 150 -152 101 10142 99053 0.45645 297.45645 148.95645 14895.64564 0.45645 297.45645 148.95645 14895.6454 0.45645 297.45645 148.95645 14895.64500 2020-01-01 2020-01-02 2020-01-01 00:02:32 2020-01-02 03:30:53 2020-01-01 00:02:32.000 2020-01-02 03:30:53.000 152 99053 49602.5 4960250 152 99053 49602.5 4960250 -32417 32518 5038.02 503802 -125 127 2.5 250 -153 101 10143 99054 0.45945 297.45945 148.95945 14895.94594 0.45945 297.45947 148.95946 14895.94601 0.45945 297.45945 148.95945 14895.94500 2020-01-01 2020-01-02 2020-01-01 00:02:33 2020-01-02 03:30:54 2020-01-01 00:02:33.000 2020-01-02 03:30:54.000 153 99054 49603.5 4960350 153 99054 49603.5 4960350 -32416 32519 5039.02 503902 -128 127 0.94 94 -154 101 10144 99055 0.46246 297.46246 148.96246 14896.24624 0.46246 297.46246 148.96246 14896.24633 0.46246 297.46246 148.96246 14896.24600 2020-01-01 2020-01-02 2020-01-01 00:02:34 2020-01-02 03:30:55 2020-01-01 00:02:34.000 2020-01-02 03:30:55.000 154 99055 49604.5 4960450 154 99055 49604.5 4960450 -32415 32520 5040.02 504002 -128 127 -0.62 -62 -155 101 10145 99056 0.46546 297.46546 148.96546 14896.54654 0.46546 297.46545 148.96546 14896.54647 0.46546 297.46546 148.96546 14896.54600 2020-01-01 2020-01-02 2020-01-01 00:02:35 2020-01-02 03:30:56 2020-01-01 00:02:35.000 2020-01-02 03:30:56.000 155 99056 49605.5 4960550 155 99056 49605.5 4960550 -32414 32521 5041.02 504102 -128 123 -2.18 -218 -156 101 10146 99057 0.46846 297.46846 148.96846 14896.84684 0.46846 297.46848 148.96847 14896.84721 0.46846 297.46846 148.96846 14896.84600 2020-01-01 2020-01-02 2020-01-01 00:02:36 2020-01-02 03:30:57 2020-01-01 00:02:36.000 2020-01-02 03:30:57.000 156 99057 49606.5 4960650 156 99057 49606.5 4960650 -32413 32522 5042.02 504202 -127 124 -1.18 -118 -157 101 10147 99058 0.47147 297.47147 148.97147 14897.14714 0.47147 297.47147 148.97146 14897.14687 0.47147 297.47147 148.97147 14897.14700 2020-01-01 2020-01-02 2020-01-01 00:02:37 2020-01-02 03:30:58 2020-01-01 00:02:37.000 2020-01-02 03:30:58.000 157 99058 49607.5 4960750 157 99058 49607.5 4960750 -32412 32523 5043.02 504302 -126 125 -0.18 -18 -158 101 10148 99059 0.47447 297.47447 148.97447 14897.44744 0.47447 297.4745 148.97447 14897.44748 0.47447 297.47447 148.97447 14897.44700 2020-01-01 2020-01-02 2020-01-01 00:02:38 2020-01-02 03:30:59 2020-01-01 00:02:38.000 2020-01-02 03:30:59.000 158 99059 49608.5 4960850 158 99059 49608.5 4960850 -32411 32524 5044.02 504402 -125 126 0.82 82 -159 101 10149 99060 0.47747 297.47747 148.97747 14897.74774 0.47747 297.47748 148.97747 14897.74779 0.47747 297.47747 148.97747 14897.74700 2020-01-01 2020-01-02 2020-01-01 00:02:39 2020-01-02 03:31:00 2020-01-01 00:02:39.000 2020-01-02 03:31:00.000 159 99060 49609.5 4960950 159 99060 49609.5 4960950 -32410 32525 5045.02 504502 -124 127 1.82 182 -16 102 10006 99916 0.04804 300.04804 150.04804 15154.85285 0.04804 300.04803 150.04804 15154.85279 0.04804 300.04804 150.04804 15154.85204 2020-01-01 2020-01-02 2020-01-01 00:00:16 2020-01-02 03:45:16 2020-01-01 00:00:16.000 2020-01-02 03:45:16.000 16 99916 49966 5046566 16 99916 49966 5046566 -32553 32382 4545.009900990099 459046 -128 127 0.37623762376237624 38 -160 101 10150 99061 0.48048 297.48048 148.98048 14898.04804 0.48048 297.48047 148.98048 14898.0481 0.48048 297.48048 148.98048 14898.04800 2020-01-01 2020-01-02 2020-01-01 00:02:40 2020-01-02 03:31:01 2020-01-01 00:02:40.000 2020-01-02 03:31:01.000 160 99061 49610.5 4961050 160 99061 49610.5 4961050 -32409 32526 5046.02 504602 -128 127 0.26 26 -161 101 10151 99062 0.48348 297.48348 148.98348 14898.34834 0.48348 297.4835 148.98348 14898.34868 0.48348 297.48348 148.98348 14898.34800 2020-01-01 2020-01-02 2020-01-01 00:02:41 2020-01-02 03:31:02 2020-01-01 00:02:41.000 2020-01-02 03:31:02.000 161 99062 49611.5 4961150 161 99062 49611.5 4961150 -32408 32527 5047.02 504702 -128 123 -1.3 -130 -162 101 10152 99063 0.48648 297.48648 148.98648 14898.64864 0.48648 297.48648 148.98648 14898.64837 0.48648 297.48648 148.98648 14898.64800 2020-01-01 2020-01-02 2020-01-01 00:02:42 2020-01-02 03:31:03 2020-01-01 00:02:42.000 2020-01-02 03:31:03.000 162 99063 49612.5 4961250 162 99063 49612.5 4961250 -32407 32528 5048.02 504802 -127 124 -0.3 -30 -163 101 10153 99064 0.48948 297.48948 148.98948 14898.94894 0.48948 297.4895 148.98948 14898.94895 0.48948 297.48948 148.98948 14898.94800 2020-01-01 2020-01-02 2020-01-01 00:02:43 2020-01-02 03:31:04 2020-01-01 00:02:43.000 2020-01-02 03:31:04.000 163 99064 49613.5 4961350 163 99064 49613.5 4961350 -32406 32529 5049.02 504902 -126 125 0.7 70 +149 101 10139 99050 0.44744 297.44744 148.94744 14894.74474 0.44744 297.44745 148.94744 14894.74485 0.44744 297.44744 148.94743999999994 14894.74400 2020-01-01 2020-01-02 2020-01-01 00:02:29 2020-01-02 03:30:50 2020-01-01 00:02:29.000 2020-01-02 03:30:50.000 149 99050 49599.5 4959950 149 99050 49599.5 4959950 -32420 32515 5035.02 503502 -128 124 -0.5 -50 +15 102 10005 99915 0.04504 300.04504 150.04504 15154.54954 0.04504 300.04504 150.04504 15154.54945 0.04504 300.04504 150.04504000000006 15154.54904 2020-01-01 2020-01-02 2020-01-01 00:00:15 2020-01-02 03:45:15 2020-01-01 00:00:15.000 2020-01-02 03:45:15.000 15 99915 49965 5046465 15 99915 49965 5046465 -32554 32381 4544.009900990099 458945 -124 127 1.9108910891089108 193 +150 101 10140 99051 0.45045 297.45045 148.95045 14895.04504 0.45045 297.45044 148.95045 14895.04501 0.45045 297.45045 148.95045000000005 14895.04500 2020-01-01 2020-01-02 2020-01-01 00:02:30 2020-01-02 03:30:51 2020-01-01 00:02:30.000 2020-01-02 03:30:51.000 150 99051 49600.5 4960050 150 99051 49600.5 4960050 -32419 32516 5036.02 503602 -127 125 0.5 50 +151 101 10141 99052 0.45345 297.45345 148.95345 14895.34534 0.45345 297.45346 148.95345 14895.34574 0.45345 297.45345 148.9534500000001 14895.34500 2020-01-01 2020-01-02 2020-01-01 00:02:31 2020-01-02 03:30:52 2020-01-01 00:02:31.000 2020-01-02 03:30:52.000 151 99052 49601.5 4960150 151 99052 49601.5 4960150 -32418 32517 5037.02 503702 -126 126 1.5 150 +152 101 10142 99053 0.45645 297.45645 148.95645 14895.64564 0.45645 297.45645 148.95645 14895.6454 0.45645 297.45645 148.9564499999999 14895.64500 2020-01-01 2020-01-02 2020-01-01 00:02:32 2020-01-02 03:30:53 2020-01-01 00:02:32.000 2020-01-02 03:30:53.000 152 99053 49602.5 4960250 152 99053 49602.5 4960250 -32417 32518 5038.02 503802 -125 127 2.5 250 +153 101 10143 99054 0.45945 297.45945 148.95945 14895.94594 0.45945 297.45947 148.95946 14895.94601 0.45945 297.45945 148.95945000000006 14895.94500 2020-01-01 2020-01-02 2020-01-01 00:02:33 2020-01-02 03:30:54 2020-01-01 00:02:33.000 2020-01-02 03:30:54.000 153 99054 49603.5 4960350 153 99054 49603.5 4960350 -32416 32519 5039.02 503902 -128 127 0.94 94 +154 101 10144 99055 0.46246 297.46246 148.96246 14896.24624 0.46246 297.46246 148.96246 14896.24633 0.46246 297.46246 148.96246000000008 14896.24600 2020-01-01 2020-01-02 2020-01-01 00:02:34 2020-01-02 03:30:55 2020-01-01 00:02:34.000 2020-01-02 03:30:55.000 154 99055 49604.5 4960450 154 99055 49604.5 4960450 -32415 32520 5040.02 504002 -128 127 -0.62 -62 +155 101 10145 99056 0.46546 297.46546 148.96546 14896.54654 0.46546 297.46545 148.96546 14896.54647 0.46546 297.46546 148.96545999999998 14896.54600 2020-01-01 2020-01-02 2020-01-01 00:02:35 2020-01-02 03:30:56 2020-01-01 00:02:35.000 2020-01-02 03:30:56.000 155 99056 49605.5 4960550 155 99056 49605.5 4960550 -32414 32521 5041.02 504102 -128 123 -2.18 -218 +156 101 10146 99057 0.46846 297.46846 148.96846 14896.84684 0.46846 297.46848 148.96847 14896.84721 0.46846 297.46846 148.96846000000002 14896.84600 2020-01-01 2020-01-02 2020-01-01 00:02:36 2020-01-02 03:30:57 2020-01-01 00:02:36.000 2020-01-02 03:30:57.000 156 99057 49606.5 4960650 156 99057 49606.5 4960650 -32413 32522 5042.02 504202 -127 124 -1.18 -118 +157 101 10147 99058 0.47147 297.47147 148.97147 14897.14714 0.47147 297.47147 148.97146 14897.14687 0.47147 297.47147 148.97147000000012 14897.14700 2020-01-01 2020-01-02 2020-01-01 00:02:37 2020-01-02 03:30:58 2020-01-01 00:02:37.000 2020-01-02 03:30:58.000 157 99058 49607.5 4960750 157 99058 49607.5 4960750 -32412 32523 5043.02 504302 -126 125 -0.18 -18 +158 101 10148 99059 0.47447 297.47447 148.97447 14897.44744 0.47447 297.4745 148.97447 14897.44748 0.47447 297.47447 148.97446999999994 14897.44700 2020-01-01 2020-01-02 2020-01-01 00:02:38 2020-01-02 03:30:59 2020-01-01 00:02:38.000 2020-01-02 03:30:59.000 158 99059 49608.5 4960850 158 99059 49608.5 4960850 -32411 32524 5044.02 504402 -125 126 0.82 82 +159 101 10149 99060 0.47747 297.47747 148.97747 14897.74774 0.47747 297.47748 148.97747 14897.74779 0.47747 297.47747 148.97746999999993 14897.74700 2020-01-01 2020-01-02 2020-01-01 00:02:39 2020-01-02 03:31:00 2020-01-01 00:02:39.000 2020-01-02 03:31:00.000 159 99060 49609.5 4960950 159 99060 49609.5 4960950 -32410 32525 5045.02 504502 -124 127 1.82 182 +16 102 10006 99916 0.04804 300.04804 150.04804 15154.85285 0.04804 300.04803 150.04804 15154.85279 0.04804 300.04804 150.0480399999999 15154.85204 2020-01-01 2020-01-02 2020-01-01 00:00:16 2020-01-02 03:45:16 2020-01-01 00:00:16.000 2020-01-02 03:45:16.000 16 99916 49966 5046566 16 99916 49966 5046566 -32553 32382 4545.009900990099 459046 -128 127 0.37623762376237624 38 +160 101 10150 99061 0.48048 297.48048 148.98048 14898.04804 0.48048 297.48047 148.98048 14898.0481 0.48048 297.48048 148.98048000000009 14898.04800 2020-01-01 2020-01-02 2020-01-01 00:02:40 2020-01-02 03:31:01 2020-01-01 00:02:40.000 2020-01-02 03:31:01.000 160 99061 49610.5 4961050 160 99061 49610.5 4961050 -32409 32526 5046.02 504602 -128 127 0.26 26 +161 101 10151 99062 0.48348 297.48348 148.98348 14898.34834 0.48348 297.4835 148.98348 14898.34868 0.48348 297.48348 148.98348000000004 14898.34800 2020-01-01 2020-01-02 2020-01-01 00:02:41 2020-01-02 03:31:02 2020-01-01 00:02:41.000 2020-01-02 03:31:02.000 161 99062 49611.5 4961150 161 99062 49611.5 4961150 -32408 32527 5047.02 504702 -128 123 -1.3 -130 +162 101 10152 99063 0.48648 297.48648 148.98648 14898.64864 0.48648 297.48648 148.98648 14898.64837 0.48648 297.48648 148.98647999999986 14898.64800 2020-01-01 2020-01-02 2020-01-01 00:02:42 2020-01-02 03:31:03 2020-01-01 00:02:42.000 2020-01-02 03:31:03.000 162 99063 49612.5 4961250 162 99063 49612.5 4961250 -32407 32528 5048.02 504802 -127 124 -0.3 -30 +163 101 10153 99064 0.48948 297.48948 148.98948 14898.94894 0.48948 297.4895 148.98948 14898.94895 0.48948 297.48948 148.98948000000007 14898.94800 2020-01-01 2020-01-02 2020-01-01 00:02:43 2020-01-02 03:31:04 2020-01-01 00:02:43.000 2020-01-02 03:31:04.000 163 99064 49613.5 4961350 163 99064 49613.5 4961350 -32406 32529 5049.02 504902 -126 125 0.7 70 164 101 10154 99065 0.49249 297.49249 148.99249 14899.24924 0.49249 297.4925 148.99249 14899.24926 0.49249 297.49249 148.99249 14899.24900 2020-01-01 2020-01-02 2020-01-01 00:02:44 2020-01-02 03:31:05 2020-01-01 00:02:44.000 2020-01-02 03:31:05.000 164 99065 49614.5 4961450 164 99065 49614.5 4961450 -32405 32530 5050.02 505002 -125 126 1.7 170 -165 101 10155 99066 0.49549 297.49549 148.99549 14899.54954 0.49549 297.49548 148.99549 14899.54957 0.49549 297.49549 148.99549 14899.54900 2020-01-01 2020-01-02 2020-01-01 00:02:45 2020-01-02 03:31:06 2020-01-01 00:02:45.000 2020-01-02 03:31:06.000 165 99066 49615.5 4961550 165 99066 49615.5 4961550 -32404 32531 5051.02 505102 -124 127 2.7 270 -166 101 10156 99067 0.49849 297.49849 148.99849 14899.84984 0.49849 297.4985 148.9985 14899.85015 0.49849 297.49849 148.99849 14899.84900 2020-01-01 2020-01-02 2020-01-01 00:02:46 2020-01-02 03:31:07 2020-01-01 00:02:46.000 2020-01-02 03:31:07.000 166 99067 49616.5 4961650 166 99067 49616.5 4961650 -32403 32532 5052.02 505202 -128 127 1.14 114 -167 101 10157 99068 0.5015 297.5015 149.0015 14900.15015 0.5015 297.5015 149.00149 14900.14984 0.50150 297.50150 149.00150 14900.15000 2020-01-01 2020-01-02 2020-01-01 00:02:47 2020-01-02 03:31:08 2020-01-01 00:02:47.000 2020-01-02 03:31:08.000 167 99068 49617.5 4961750 167 99068 49617.5 4961750 -32402 32533 5053.02 505302 -128 123 -0.42 -42 -168 101 10158 99069 0.5045 297.5045 149.0045 14900.45045 0.5045 297.50452 149.0045 14900.45042 0.50450 297.50450 149.00450 14900.45000 2020-01-01 2020-01-02 2020-01-01 00:02:48 2020-01-02 03:31:09 2020-01-01 00:02:48.000 2020-01-02 03:31:09.000 168 99069 49618.5 4961850 168 99069 49618.5 4961850 -32401 32534 5054.02 505402 -127 124 0.58 58 -169 101 10159 99070 0.5075 297.5075 149.0075 14900.75075 0.5075 297.5075 149.0075 14900.75073 0.50750 297.50750 149.00750 14900.75000 2020-01-01 2020-01-02 2020-01-01 00:02:49 2020-01-02 03:31:10 2020-01-01 00:02:49.000 2020-01-02 03:31:10.000 169 99070 49619.5 4961950 169 99070 49619.5 4961950 -32400 32535 5055.02 505502 -126 125 1.58 158 +165 101 10155 99066 0.49549 297.49549 148.99549 14899.54954 0.49549 297.49548 148.99549 14899.54957 0.49549 297.49549 148.99548999999996 14899.54900 2020-01-01 2020-01-02 2020-01-01 00:02:45 2020-01-02 03:31:06 2020-01-01 00:02:45.000 2020-01-02 03:31:06.000 165 99066 49615.5 4961550 165 99066 49615.5 4961550 -32404 32531 5051.02 505102 -124 127 2.7 270 +166 101 10156 99067 0.49849 297.49849 148.99849 14899.84984 0.49849 297.4985 148.9985 14899.85015 0.49849 297.49849 148.99848999999998 14899.84900 2020-01-01 2020-01-02 2020-01-01 00:02:46 2020-01-02 03:31:07 2020-01-01 00:02:46.000 2020-01-02 03:31:07.000 166 99067 49616.5 4961650 166 99067 49616.5 4961650 -32403 32532 5052.02 505202 -128 127 1.14 114 +167 101 10157 99068 0.5015 297.5015 149.0015 14900.15015 0.5015 297.5015 149.00149 14900.14984 0.50150 297.50150 149.00150000000008 14900.15000 2020-01-01 2020-01-02 2020-01-01 00:02:47 2020-01-02 03:31:08 2020-01-01 00:02:47.000 2020-01-02 03:31:08.000 167 99068 49617.5 4961750 167 99068 49617.5 4961750 -32402 32533 5053.02 505302 -128 123 -0.42 -42 +168 101 10158 99069 0.5045 297.5045 149.0045 14900.45045 0.5045 297.50452 149.0045 14900.45042 0.50450 297.50450 149.0044999999999 14900.45000 2020-01-01 2020-01-02 2020-01-01 00:02:48 2020-01-02 03:31:09 2020-01-01 00:02:48.000 2020-01-02 03:31:09.000 168 99069 49618.5 4961850 168 99069 49618.5 4961850 -32401 32534 5054.02 505402 -127 124 0.58 58 +169 101 10159 99070 0.5075 297.5075 149.0075 14900.75075 0.5075 297.5075 149.0075 14900.75073 0.50750 297.50750 149.00749999999994 14900.75000 2020-01-01 2020-01-02 2020-01-01 00:02:49 2020-01-02 03:31:10 2020-01-01 00:02:49.000 2020-01-02 03:31:10.000 169 99070 49619.5 4961950 169 99070 49619.5 4961950 -32400 32535 5055.02 505502 -126 125 1.58 158 17 102 10007 99917 0.05105 300.05105 150.05105 15155.15615 0.05105 300.05106 150.05105 15155.15638 0.05105 300.05105 150.05105 15155.15605 2020-01-01 2020-01-02 2020-01-01 00:00:17 2020-01-02 03:45:17 2020-01-01 00:00:17.000 2020-01-02 03:45:17.000 17 99917 49967 5046667 17 99917 49967 5046667 -32552 32383 4546.009900990099 459147 -128 127 -1.1584158415841583 -117 -170 101 10160 99071 0.51051 297.51051 149.01051 14901.05105 0.51051 297.5105 149.01051 14901.05104 0.51051 297.51051 149.01051 14901.05100 2020-01-01 2020-01-02 2020-01-01 00:02:50 2020-01-02 03:31:11 2020-01-01 00:02:50.000 2020-01-02 03:31:11.000 170 99071 49620.5 4962050 170 99071 49620.5 4962050 -32399 32536 5056.02 505602 -125 126 2.58 258 +170 101 10160 99071 0.51051 297.51051 149.01051 14901.05105 0.51051 297.5105 149.01051 14901.05104 0.51051 297.51051 149.01051000000004 14901.05100 2020-01-01 2020-01-02 2020-01-01 00:02:50 2020-01-02 03:31:11 2020-01-01 00:02:50.000 2020-01-02 03:31:11.000 170 99071 49620.5 4962050 170 99071 49620.5 4962050 -32399 32536 5056.02 505602 -125 126 2.58 258 171 101 10161 99072 0.51351 297.51351 149.01351 14901.35135 0.51351 297.51352 149.01351 14901.35162 0.51351 297.51351 149.01351 14901.35100 2020-01-01 2020-01-02 2020-01-01 00:02:51 2020-01-02 03:31:12 2020-01-01 00:02:51.000 2020-01-02 03:31:12.000 171 99072 49621.5 4962150 171 99072 49621.5 4962150 -32398 32537 5057.02 505702 -124 127 3.58 358 -172 101 10162 99073 0.51651 297.51651 149.01651 14901.65165 0.51651 297.5165 149.01651 14901.65131 0.51651 297.51651 149.01651 14901.65100 2020-01-01 2020-01-02 2020-01-01 00:02:52 2020-01-02 03:31:13 2020-01-01 00:02:52.000 2020-01-02 03:31:13.000 172 99073 49622.5 4962250 172 99073 49622.5 4962250 -32397 32538 5058.02 505802 -128 127 2.02 202 -173 101 10163 99074 0.51951 297.51951 149.01951 14901.95195 0.51951 297.51953 149.01951 14901.95189 0.51951 297.51951 149.01951 14901.95100 2020-01-01 2020-01-02 2020-01-01 00:02:53 2020-01-02 03:31:14 2020-01-01 00:02:53.000 2020-01-02 03:31:14.000 173 99074 49623.5 4962350 173 99074 49623.5 4962350 -32396 32539 5059.02 505902 -128 127 0.46 46 -174 101 10164 99075 0.52252 297.52252 149.02252 14902.25225 0.52252 297.52252 149.02252 14902.2522 0.52252 297.52252 149.02252 14902.25200 2020-01-01 2020-01-02 2020-01-01 00:02:54 2020-01-02 03:31:15 2020-01-01 00:02:54.000 2020-01-02 03:31:15.000 174 99075 49624.5 4962450 174 99075 49624.5 4962450 -32395 32540 5060.02 506002 -128 124 -1.1 -110 -175 101 10165 99076 0.52552 297.52552 149.02552 14902.55255 0.52552 297.5255 149.02552 14902.55251 0.52552 297.52552 149.02552 14902.55200 2020-01-01 2020-01-02 2020-01-01 00:02:55 2020-01-02 03:31:16 2020-01-01 00:02:55.000 2020-01-02 03:31:16.000 175 99076 49625.5 4962550 175 99076 49625.5 4962550 -32394 32541 5061.02 506102 -127 125 -0.1 -10 -176 101 10166 99077 0.52852 297.52852 149.02852 14902.85285 0.52852 297.52853 149.02853 14902.85312 0.52852 297.52852 149.02852 14902.85200 2020-01-01 2020-01-02 2020-01-01 00:02:56 2020-01-02 03:31:17 2020-01-01 00:02:56.000 2020-01-02 03:31:17.000 176 99077 49626.5 4962650 176 99077 49626.5 4962650 -32393 32542 5062.02 506202 -126 126 0.9 90 -177 101 10167 99078 0.53153 297.53153 149.03153 14903.15315 0.53153 297.53152 149.03152 14903.15278 0.53153 297.53153 149.03153 14903.15300 2020-01-01 2020-01-02 2020-01-01 00:02:57 2020-01-02 03:31:18 2020-01-01 00:02:57.000 2020-01-02 03:31:18.000 177 99078 49627.5 4962750 177 99078 49627.5 4962750 -32392 32543 5063.02 506302 -125 127 1.9 190 -178 101 10168 99079 0.53453 297.53453 149.03453 14903.45345 0.53453 297.53455 149.03453 14903.45352 0.53453 297.53453 149.03453 14903.45300 2020-01-01 2020-01-02 2020-01-01 00:02:58 2020-01-02 03:31:19 2020-01-01 00:02:58.000 2020-01-02 03:31:19.000 178 99079 49628.5 4962850 178 99079 49628.5 4962850 -32391 32544 5064.02 506402 -128 127 0.34 34 -179 101 10169 99080 0.53753 297.53753 149.03753 14903.75375 0.53753 297.53754 149.03753 14903.75366 0.53753 297.53753 149.03753 14903.75300 2020-01-01 2020-01-02 2020-01-01 00:02:59 2020-01-02 03:31:20 2020-01-01 00:02:59.000 2020-01-02 03:31:20.000 179 99080 49629.5 4962950 179 99080 49629.5 4962950 -32390 32545 5065.02 506502 -128 127 -1.22 -122 -18 102 10008 99918 0.05405 300.05405 150.05405 15155.45945 0.05405 300.05405 150.05404 15155.45903 0.05405 300.05405 150.05405 15155.45905 2020-01-01 2020-01-02 2020-01-01 00:00:18 2020-01-02 03:45:18 2020-01-01 00:00:18.000 2020-01-02 03:45:18.000 18 99918 49968 5046768 18 99918 49968 5046768 -32551 32384 4547.009900990099 459248 -128 124 -2.6930693069306932 -272 +172 101 10162 99073 0.51651 297.51651 149.01651 14901.65165 0.51651 297.5165 149.01651 14901.65131 0.51651 297.51651 149.01650999999998 14901.65100 2020-01-01 2020-01-02 2020-01-01 00:02:52 2020-01-02 03:31:13 2020-01-01 00:02:52.000 2020-01-02 03:31:13.000 172 99073 49622.5 4962250 172 99073 49622.5 4962250 -32397 32538 5058.02 505802 -128 127 2.02 202 +173 101 10163 99074 0.51951 297.51951 149.01951 14901.95195 0.51951 297.51953 149.01951 14901.95189 0.51951 297.51951 149.01951000000005 14901.95100 2020-01-01 2020-01-02 2020-01-01 00:02:53 2020-01-02 03:31:14 2020-01-01 00:02:53.000 2020-01-02 03:31:14.000 173 99074 49623.5 4962350 173 99074 49623.5 4962350 -32396 32539 5059.02 505902 -128 127 0.46 46 +174 101 10164 99075 0.52252 297.52252 149.02252 14902.25225 0.52252 297.52252 149.02252 14902.2522 0.52252 297.52252 149.02252000000016 14902.25200 2020-01-01 2020-01-02 2020-01-01 00:02:54 2020-01-02 03:31:15 2020-01-01 00:02:54.000 2020-01-02 03:31:15.000 174 99075 49624.5 4962450 174 99075 49624.5 4962450 -32395 32540 5060.02 506002 -128 124 -1.1 -110 +175 101 10165 99076 0.52552 297.52552 149.02552 14902.55255 0.52552 297.5255 149.02552 14902.55251 0.52552 297.52552 149.02551999999997 14902.55200 2020-01-01 2020-01-02 2020-01-01 00:02:55 2020-01-02 03:31:16 2020-01-01 00:02:55.000 2020-01-02 03:31:16.000 175 99076 49625.5 4962550 175 99076 49625.5 4962550 -32394 32541 5061.02 506102 -127 125 -0.1 -10 +176 101 10166 99077 0.52852 297.52852 149.02852 14902.85285 0.52852 297.52853 149.02853 14902.85312 0.52852 297.52852 149.02851999999993 14902.85200 2020-01-01 2020-01-02 2020-01-01 00:02:56 2020-01-02 03:31:17 2020-01-01 00:02:56.000 2020-01-02 03:31:17.000 176 99077 49626.5 4962650 176 99077 49626.5 4962650 -32393 32542 5062.02 506202 -126 126 0.9 90 +177 101 10167 99078 0.53153 297.53153 149.03153 14903.15315 0.53153 297.53152 149.03152 14903.15278 0.53153 297.53153 149.0315300000001 14903.15300 2020-01-01 2020-01-02 2020-01-01 00:02:57 2020-01-02 03:31:18 2020-01-01 00:02:57.000 2020-01-02 03:31:18.000 177 99078 49627.5 4962750 177 99078 49627.5 4962750 -32392 32543 5063.02 506302 -125 127 1.9 190 +178 101 10168 99079 0.53453 297.53453 149.03453 14903.45345 0.53453 297.53455 149.03453 14903.45352 0.53453 297.53453 149.03453000000005 14903.45300 2020-01-01 2020-01-02 2020-01-01 00:02:58 2020-01-02 03:31:19 2020-01-01 00:02:58.000 2020-01-02 03:31:19.000 178 99079 49628.5 4962850 178 99079 49628.5 4962850 -32391 32544 5064.02 506402 -128 127 0.34 34 +179 101 10169 99080 0.53753 297.53753 149.03753 14903.75375 0.53753 297.53754 149.03753 14903.75366 0.53753 297.53753 149.0375299999999 14903.75300 2020-01-01 2020-01-02 2020-01-01 00:02:59 2020-01-02 03:31:20 2020-01-01 00:02:59.000 2020-01-02 03:31:20.000 179 99080 49629.5 4962950 179 99080 49629.5 4962950 -32390 32545 5065.02 506502 -128 127 -1.22 -122 +18 102 10008 99918 0.05405 300.05405 150.05405 15155.45945 0.05405 300.05405 150.05404 15155.45903 0.05405 300.05405 150.05405000000007 15155.45905 2020-01-01 2020-01-02 2020-01-01 00:00:18 2020-01-02 03:45:18 2020-01-01 00:00:18.000 2020-01-02 03:45:18.000 18 99918 49968 5046768 18 99918 49968 5046768 -32551 32384 4547.009900990099 459248 -128 124 -2.6930693069306932 -272 180 101 10170 99081 0.54054 297.54054 149.04054 14904.05405 0.54054 297.54053 149.04053 14904.05398 0.54054 297.54054 149.04054 14904.05400 2020-01-01 2020-01-02 2020-01-01 00:03:00 2020-01-02 03:31:21 2020-01-01 00:03:00.000 2020-01-02 03:31:21.000 180 99081 49630.5 4963050 180 99081 49630.5 4963050 -32389 32546 5066.02 506602 -128 123 -2.78 -278 -181 101 10171 99082 0.54354 297.54354 149.04354 14904.35435 0.54354 297.54355 149.04354 14904.35459 0.54354 297.54354 149.04354 14904.35400 2020-01-01 2020-01-02 2020-01-01 00:03:01 2020-01-02 03:31:22 2020-01-01 00:03:01.000 2020-01-02 03:31:22.000 181 99082 49631.5 4963150 181 99082 49631.5 4963150 -32388 32547 5067.02 506702 -127 124 -1.78 -178 -182 101 10172 99083 0.54654 297.54654 149.04654 14904.65465 0.54654 297.54654 149.04654 14904.65425 0.54654 297.54654 149.04654 14904.65400 2020-01-01 2020-01-02 2020-01-01 00:03:02 2020-01-02 03:31:23 2020-01-01 00:03:02.000 2020-01-02 03:31:23.000 182 99083 49632.5 4963250 182 99083 49632.5 4963250 -32387 32548 5068.02 506802 -126 125 -0.78 -78 +181 101 10171 99082 0.54354 297.54354 149.04354 14904.35435 0.54354 297.54355 149.04354 14904.35459 0.54354 297.54354 149.04354000000004 14904.35400 2020-01-01 2020-01-02 2020-01-01 00:03:01 2020-01-02 03:31:22 2020-01-01 00:03:01.000 2020-01-02 03:31:22.000 181 99082 49631.5 4963150 181 99082 49631.5 4963150 -32388 32547 5067.02 506702 -127 124 -1.78 -178 +182 101 10172 99083 0.54654 297.54654 149.04654 14904.65465 0.54654 297.54654 149.04654 14904.65425 0.54654 297.54654 149.04653999999994 14904.65400 2020-01-01 2020-01-02 2020-01-01 00:03:02 2020-01-02 03:31:23 2020-01-01 00:03:02.000 2020-01-02 03:31:23.000 182 99083 49632.5 4963250 182 99083 49632.5 4963250 -32387 32548 5068.02 506802 -126 125 -0.78 -78 183 101 10173 99084 0.54954 297.54954 149.04954 14904.95495 0.54954 297.54956 149.04954 14904.95498 0.54954 297.54954 149.04954 14904.95400 2020-01-01 2020-01-02 2020-01-01 00:03:03 2020-01-02 03:31:24 2020-01-01 00:03:03.000 2020-01-02 03:31:24.000 183 99084 49633.5 4963350 183 99084 49633.5 4963350 -32386 32549 5069.02 506902 -125 126 0.22 22 -184 101 10174 99085 0.55255 297.55255 149.05255 14905.25525 0.55255 297.55255 149.05255 14905.25514 0.55255 297.55255 149.05255 14905.25500 2020-01-01 2020-01-02 2020-01-01 00:03:04 2020-01-02 03:31:25 2020-01-01 00:03:04.000 2020-01-02 03:31:25.000 184 99085 49634.5 4963450 184 99085 49634.5 4963450 -32385 32550 5070.02 507002 -124 127 1.22 122 -185 101 10175 99086 0.55555 297.55555 149.05555 14905.55555 0.55555 297.55554 149.05555 14905.55549 0.55555 297.55555 149.05555 14905.55500 2020-01-01 2020-01-02 2020-01-01 00:03:05 2020-01-02 03:31:26 2020-01-01 00:03:05.000 2020-01-02 03:31:26.000 185 99086 49635.5 4963550 185 99086 49635.5 4963550 -32384 32551 5071.02 507102 -128 127 -0.34 -34 -186 101 10176 99087 0.55855 297.55855 149.05855 14905.85585 0.55855 297.55856 149.05856 14905.85607 0.55855 297.55855 149.05855 14905.85500 2020-01-01 2020-01-02 2020-01-01 00:03:06 2020-01-02 03:31:27 2020-01-01 00:03:06.000 2020-01-02 03:31:27.000 186 99087 49636.5 4963650 186 99087 49636.5 4963650 -32383 32552 5072.02 507202 -128 123 -1.9 -190 -187 101 10177 99088 0.56156 297.56156 149.06156 14906.15615 0.56156 297.56155 149.06155 14906.15572 0.56156 297.56156 149.06156 14906.15600 2020-01-01 2020-01-02 2020-01-01 00:03:07 2020-01-02 03:31:28 2020-01-01 00:03:07.000 2020-01-02 03:31:28.000 187 99088 49637.5 4963750 187 99088 49637.5 4963750 -32382 32553 5073.02 507302 -127 124 -0.9 -90 +184 101 10174 99085 0.55255 297.55255 149.05255 14905.25525 0.55255 297.55255 149.05255 14905.25514 0.55255 297.55255 149.05255000000005 14905.25500 2020-01-01 2020-01-02 2020-01-01 00:03:04 2020-01-02 03:31:25 2020-01-01 00:03:04.000 2020-01-02 03:31:25.000 184 99085 49634.5 4963450 184 99085 49634.5 4963450 -32385 32550 5070.02 507002 -124 127 1.22 122 +185 101 10175 99086 0.55555 297.55555 149.05555 14905.55555 0.55555 297.55554 149.05555 14905.55549 0.55555 297.55555 149.05554999999993 14905.55500 2020-01-01 2020-01-02 2020-01-01 00:03:05 2020-01-02 03:31:26 2020-01-01 00:03:05.000 2020-01-02 03:31:26.000 185 99086 49635.5 4963550 185 99086 49635.5 4963550 -32384 32551 5071.02 507102 -128 127 -0.34 -34 +186 101 10176 99087 0.55855 297.55855 149.05855 14905.85585 0.55855 297.55856 149.05856 14905.85607 0.55855 297.55855 149.05854999999997 14905.85500 2020-01-01 2020-01-02 2020-01-01 00:03:06 2020-01-02 03:31:27 2020-01-01 00:03:06.000 2020-01-02 03:31:27.000 186 99087 49636.5 4963650 186 99087 49636.5 4963650 -32383 32552 5072.02 507202 -128 123 -1.9 -190 +187 101 10177 99088 0.56156 297.56156 149.06156 14906.15615 0.56156 297.56155 149.06155 14906.15572 0.56156 297.56156 149.06156000000007 14906.15600 2020-01-01 2020-01-02 2020-01-01 00:03:07 2020-01-02 03:31:28 2020-01-01 00:03:07.000 2020-01-02 03:31:28.000 187 99088 49637.5 4963750 187 99088 49637.5 4963750 -32382 32553 5073.02 507302 -127 124 -0.9 -90 188 101 10178 99089 0.56456 297.56456 149.06456 14906.45645 0.56456 297.56458 149.06456 14906.45645 0.56456 297.56456 149.06456 14906.45600 2020-01-01 2020-01-02 2020-01-01 00:03:08 2020-01-02 03:31:29 2020-01-01 00:03:08.000 2020-01-02 03:31:29.000 188 99089 49638.5 4963850 188 99089 49638.5 4963850 -32381 32554 5074.02 507402 -126 125 0.1 10 -189 101 10179 99090 0.56756 297.56756 149.06756 14906.75675 0.56756 297.56757 149.06756 14906.75661 0.56756 297.56756 149.06756 14906.75600 2020-01-01 2020-01-02 2020-01-01 00:03:09 2020-01-02 03:31:30 2020-01-01 00:03:09.000 2020-01-02 03:31:30.000 189 99090 49639.5 4963950 189 99090 49639.5 4963950 -32380 32555 5075.02 507502 -125 126 1.1 110 -19 102 10009 99919 0.05705 300.05705 150.05705 15155.76276 0.05705 300.05707 150.05705 15155.76279 0.05705 300.05705 150.05705 15155.76205 2020-01-01 2020-01-02 2020-01-01 00:00:19 2020-01-02 03:45:19 2020-01-01 00:00:19.000 2020-01-02 03:45:19.000 19 99919 49969 5046869 19 99919 49969 5046869 -32550 32385 4548.009900990099 459349 -127 125 -1.693069306930693 -171 -190 101 10180 99091 0.57057 297.57057 149.07057 14907.05705 0.57057 297.57056 149.07056 14907.05695 0.57057 297.57057 149.07057 14907.05700 2020-01-01 2020-01-02 2020-01-01 00:03:10 2020-01-02 03:31:31 2020-01-01 00:03:10.000 2020-01-02 03:31:31.000 190 99091 49640.5 4964050 190 99091 49640.5 4964050 -32379 32556 5076.02 507602 -124 127 2.1 210 +189 101 10179 99090 0.56756 297.56756 149.06756 14906.75675 0.56756 297.56757 149.06756 14906.75661 0.56756 297.56756 149.06756000000001 14906.75600 2020-01-01 2020-01-02 2020-01-01 00:03:09 2020-01-02 03:31:30 2020-01-01 00:03:09.000 2020-01-02 03:31:30.000 189 99090 49639.5 4963950 189 99090 49639.5 4963950 -32380 32555 5075.02 507502 -125 126 1.1 110 +19 102 10009 99919 0.05705 300.05705 150.05705 15155.76276 0.05705 300.05707 150.05705 15155.76279 0.05705 300.05705 150.05704999999998 15155.76205 2020-01-01 2020-01-02 2020-01-01 00:00:19 2020-01-02 03:45:19 2020-01-01 00:00:19.000 2020-01-02 03:45:19.000 19 99919 49969 5046869 19 99919 49969 5046869 -32550 32385 4548.009900990099 459349 -127 125 -1.693069306930693 -171 +190 101 10180 99091 0.57057 297.57057 149.07057 14907.05705 0.57057 297.57056 149.07056 14907.05695 0.57057 297.57057 149.07056999999995 14907.05700 2020-01-01 2020-01-02 2020-01-01 00:03:10 2020-01-02 03:31:31 2020-01-01 00:03:10.000 2020-01-02 03:31:31.000 190 99091 49640.5 4964050 190 99091 49640.5 4964050 -32379 32556 5076.02 507602 -124 127 2.1 210 191 101 10181 99092 0.57357 297.57357 149.07357 14907.35735 0.57357 297.57358 149.07357 14907.35753 0.57357 297.57357 149.07357 14907.35700 2020-01-01 2020-01-02 2020-01-01 00:03:11 2020-01-02 03:31:32 2020-01-01 00:03:11.000 2020-01-02 03:31:32.000 191 99092 49641.5 4964150 191 99092 49641.5 4964150 -32378 32557 5077.02 507702 -128 127 0.54 54 -192 101 10182 99093 0.57657 297.57657 149.07657 14907.65765 0.57657 297.57657 149.07657 14907.65784 0.57657 297.57657 149.07657 14907.65700 2020-01-01 2020-01-02 2020-01-01 00:03:12 2020-01-02 03:31:33 2020-01-01 00:03:12.000 2020-01-02 03:31:33.000 192 99093 49642.5 4964250 192 99093 49642.5 4964250 -32377 32558 5078.02 507802 -128 123 -1.02 -102 -193 101 10183 99094 0.57957 297.57957 149.07957 14907.95795 0.57957 297.5796 149.07957 14907.95793 0.57957 297.57957 149.07957 14907.95700 2020-01-01 2020-01-02 2020-01-01 00:03:13 2020-01-02 03:31:34 2020-01-01 00:03:13.000 2020-01-02 03:31:34.000 193 99094 49643.5 4964350 193 99094 49643.5 4964350 -32376 32559 5079.02 507902 -127 124 -0.02 -2 -194 101 10184 99095 0.58258 297.58258 149.08258 14908.25825 0.58258 297.58258 149.08258 14908.25811 0.58258 297.58258 149.08258 14908.25800 2020-01-01 2020-01-02 2020-01-01 00:03:14 2020-01-02 03:31:35 2020-01-01 00:03:14.000 2020-01-02 03:31:35.000 194 99095 49644.5 4964450 194 99095 49644.5 4964450 -32375 32560 5080.02 508002 -126 125 0.98 98 -195 101 10185 99096 0.58558 297.58558 149.08558 14908.55855 0.58558 297.58557 149.08558 14908.55842 0.58558 297.58558 149.08558 14908.55800 2020-01-01 2020-01-02 2020-01-01 00:03:15 2020-01-02 03:31:36 2020-01-01 00:03:15.000 2020-01-02 03:31:36.000 195 99096 49645.5 4964550 195 99096 49645.5 4964550 -32374 32561 5081.02 508102 -125 126 1.98 198 -196 101 10186 99097 0.58858 297.58858 149.08858 14908.85885 0.58858 297.5886 149.08859 14908.859 0.58858 297.58858 149.08858 14908.85800 2020-01-01 2020-01-02 2020-01-01 00:03:16 2020-01-02 03:31:37 2020-01-01 00:03:16.000 2020-01-02 03:31:37.000 196 99097 49646.5 4964650 196 99097 49646.5 4964650 -32373 32562 5082.02 508202 -124 127 2.98 298 +192 101 10182 99093 0.57657 297.57657 149.07657 14907.65765 0.57657 297.57657 149.07657 14907.65784 0.57657 297.57657 149.07656999999998 14907.65700 2020-01-01 2020-01-02 2020-01-01 00:03:12 2020-01-02 03:31:33 2020-01-01 00:03:12.000 2020-01-02 03:31:33.000 192 99093 49642.5 4964250 192 99093 49642.5 4964250 -32377 32558 5078.02 507802 -128 123 -1.02 -102 +193 101 10183 99094 0.57957 297.57957 149.07957 14907.95795 0.57957 297.5796 149.07957 14907.95793 0.57957 297.57957 149.07956999999993 14907.95700 2020-01-01 2020-01-02 2020-01-01 00:03:13 2020-01-02 03:31:34 2020-01-01 00:03:13.000 2020-01-02 03:31:34.000 193 99094 49643.5 4964350 193 99094 49643.5 4964350 -32376 32559 5079.02 507902 -127 124 -0.02 -2 +194 101 10184 99095 0.58258 297.58258 149.08258 14908.25825 0.58258 297.58258 149.08258 14908.25811 0.58258 297.58258 149.0825800000001 14908.25800 2020-01-01 2020-01-02 2020-01-01 00:03:14 2020-01-02 03:31:35 2020-01-01 00:03:14.000 2020-01-02 03:31:35.000 194 99095 49644.5 4964450 194 99095 49644.5 4964450 -32375 32560 5080.02 508002 -126 125 0.98 98 +195 101 10185 99096 0.58558 297.58558 149.08558 14908.55855 0.58558 297.58557 149.08558 14908.55842 0.58558 297.58558 149.08558000000008 14908.55800 2020-01-01 2020-01-02 2020-01-01 00:03:15 2020-01-02 03:31:36 2020-01-01 00:03:15.000 2020-01-02 03:31:36.000 195 99096 49645.5 4964550 195 99096 49645.5 4964550 -32374 32561 5081.02 508102 -125 126 1.98 198 +196 101 10186 99097 0.58858 297.58858 149.08858 14908.85885 0.58858 297.5886 149.08859 14908.859 0.58858 297.58858 149.08857999999992 14908.85800 2020-01-01 2020-01-02 2020-01-01 00:03:16 2020-01-02 03:31:37 2020-01-01 00:03:16.000 2020-01-02 03:31:37.000 196 99097 49646.5 4964650 196 99097 49646.5 4964650 -32373 32562 5082.02 508202 -124 127 2.98 298 197 101 10187 99098 0.59159 297.59159 149.09159 14909.15915 0.59159 297.59158 149.09159 14909.15931 0.59159 297.59159 149.09159 14909.15900 2020-01-01 2020-01-02 2020-01-01 00:03:17 2020-01-02 03:31:38 2020-01-01 00:03:17.000 2020-01-02 03:31:38.000 197 99098 49647.5 4964750 197 99098 49647.5 4964750 -32372 32563 5083.02 508302 -128 127 1.42 142 -198 101 10188 99099 0.59459 297.59459 149.09459 14909.45945 0.59459 297.5946 149.09459 14909.4594 0.59459 297.59459 149.09459 14909.45900 2020-01-01 2020-01-02 2020-01-01 00:03:18 2020-01-02 03:31:39 2020-01-01 00:03:18.000 2020-01-02 03:31:39.000 198 99099 49648.5 4964850 198 99099 49648.5 4964850 -32371 32564 5084.02 508402 -128 127 -0.14 -14 -199 101 10189 99100 0.59759 297.59759 149.09759 14909.75975 0.59759 297.5976 149.09759 14909.75958 0.59759 297.59759 149.09759 14909.75900 2020-01-01 2020-01-02 2020-01-01 00:03:19 2020-01-02 03:31:40 2020-01-01 00:03:19.000 2020-01-02 03:31:40.000 199 99100 49649.5 4964950 199 99100 49649.5 4964950 -32370 32565 5085.02 508502 -128 124 -1.7 -170 -2 102 1001 9992 0.006 300.006 150.006 15150.6066 0.006 300.006 150.006 15150.6069 0.00600 300.00600 150.00600 15150.60600 2020-01-01 2020-01-02 2020-01-01 00:00:02 2020-01-02 03:45:02 2020-01-01 00:00:02.000 2020-01-02 03:45:02.000 2 99902 49952 5045152 2 99902 49952 5045152 -32567 32368 4531.009900990099 457632 -125 126 -0.9504950495049505 -96 -20 102 10010 99920 0.06006 300.06006 150.06006 15156.06606 0.06006 300.06006 150.06005 15156.06593 0.06006 300.06006 150.06006 15156.06606 2020-01-01 2020-01-02 2020-01-01 00:00:20 2020-01-02 03:45:20 2020-01-01 00:00:20.000 2020-01-02 03:45:20.000 20 99920 49970 5046970 20 99920 49970 5046970 -32549 32386 4549.009900990099 459450 -126 126 -0.693069306930693 -70 -200 101 10190 99101 0.6006 297.6006 149.1006 14910.06006 0.6006 297.6006 149.10059 14910.0599 0.60060 297.60060 149.10060 14910.06000 2020-01-01 2020-01-02 2020-01-01 00:03:20 2020-01-02 03:31:41 2020-01-01 00:03:20.000 2020-01-02 03:31:41.000 200 99101 49650.5 4965050 200 99101 49650.5 4965050 -32369 32566 5086.02 508602 -127 125 -0.7 -70 -201 101 10191 99102 0.6036 297.6036 149.1036 14910.36036 0.6036 297.6036 149.1036 14910.36063 0.60360 297.60360 149.10360 14910.36000 2020-01-01 2020-01-02 2020-01-01 00:03:21 2020-01-02 03:31:42 2020-01-01 00:03:21.000 2020-01-02 03:31:42.000 201 99102 49651.5 4965150 201 99102 49651.5 4965150 -32368 32567 5087.02 508702 -126 126 0.3 30 -202 101 10192 99103 0.6066 297.6066 149.1066 14910.66066 0.6066 297.6066 149.1066 14910.66078 0.60660 297.60660 149.10660 14910.66000 2020-01-01 2020-01-02 2020-01-01 00:03:22 2020-01-02 03:31:43 2020-01-01 00:03:22.000 2020-01-02 03:31:43.000 202 99103 49652.5 4965250 202 99103 49652.5 4965250 -32367 32568 5088.02 508802 -125 127 1.3 130 -203 101 10193 99104 0.6096 297.6096 149.1096 14910.96096 0.6096 297.60962 149.1096 14910.9609 0.60960 297.60960 149.10960 14910.96000 2020-01-01 2020-01-02 2020-01-01 00:03:23 2020-01-02 03:31:44 2020-01-01 00:03:23.000 2020-01-02 03:31:44.000 203 99104 49653.5 4965350 203 99104 49653.5 4965350 -32366 32569 5089.02 508902 -128 127 -0.26 -26 -204 101 10194 99105 0.61261 297.61261 149.11261 14911.26126 0.61261 297.6126 149.11261 14911.26105 0.61261 297.61261 149.11261 14911.26100 2020-01-01 2020-01-02 2020-01-01 00:03:24 2020-01-02 03:31:45 2020-01-01 00:03:24.000 2020-01-02 03:31:45.000 204 99105 49654.5 4965450 204 99105 49654.5 4965450 -32365 32570 5090.02 509002 -128 127 -1.82 -182 -205 101 10195 99106 0.61561 297.61561 149.11561 14911.56156 0.61561 297.6156 149.11561 14911.56137 0.61561 297.61561 149.11561 14911.56100 2020-01-01 2020-01-02 2020-01-01 00:03:25 2020-01-02 03:31:46 2020-01-01 00:03:25.000 2020-01-02 03:31:46.000 205 99106 49655.5 4965550 205 99106 49655.5 4965550 -32364 32571 5091.02 509102 -128 123 -3.38 -338 -206 101 10196 99107 0.61861 297.61861 149.11861 14911.86186 0.61861 297.61862 149.11862 14911.8621 0.61861 297.61861 149.11861 14911.86100 2020-01-01 2020-01-02 2020-01-01 00:03:26 2020-01-02 03:31:47 2020-01-01 00:03:26.000 2020-01-02 03:31:47.000 206 99107 49656.5 4965650 206 99107 49656.5 4965650 -32363 32572 5092.02 509202 -127 124 -2.38 -238 -207 101 10197 99108 0.62162 297.62162 149.12162 14912.16216 0.62162 297.6216 149.12162 14912.16225 0.62162 297.62162 149.12162 14912.16200 2020-01-01 2020-01-02 2020-01-01 00:03:27 2020-01-02 03:31:48 2020-01-01 00:03:27.000 2020-01-02 03:31:48.000 207 99108 49657.5 4965750 207 99108 49657.5 4965750 -32362 32573 5093.02 509302 -126 125 -1.38 -138 +198 101 10188 99099 0.59459 297.59459 149.09459 14909.45945 0.59459 297.5946 149.09459 14909.4594 0.59459 297.59459 149.09459000000004 14909.45900 2020-01-01 2020-01-02 2020-01-01 00:03:18 2020-01-02 03:31:39 2020-01-01 00:03:18.000 2020-01-02 03:31:39.000 198 99099 49648.5 4964850 198 99099 49648.5 4964850 -32371 32564 5084.02 508402 -128 127 -0.14 -14 +199 101 10189 99100 0.59759 297.59759 149.09759 14909.75975 0.59759 297.5976 149.09759 14909.75958 0.59759 297.59759 149.09758999999997 14909.75900 2020-01-01 2020-01-02 2020-01-01 00:03:19 2020-01-02 03:31:40 2020-01-01 00:03:19.000 2020-01-02 03:31:40.000 199 99100 49649.5 4964950 199 99100 49649.5 4964950 -32370 32565 5085.02 508502 -128 124 -1.7 -170 +2 102 1001 9992 0.006 300.006 150.006 15150.6066 0.006 300.006 150.006 15150.6069 0.00600 300.00600 150.00599999999997 15150.60600 2020-01-01 2020-01-02 2020-01-01 00:00:02 2020-01-02 03:45:02 2020-01-01 00:00:02.000 2020-01-02 03:45:02.000 2 99902 49952 5045152 2 99902 49952 5045152 -32567 32368 4531.009900990099 457632 -125 126 -0.9504950495049505 -96 +20 102 10010 99920 0.06006 300.06006 150.06006 15156.06606 0.06006 300.06006 150.06005 15156.06593 0.06006 300.06006 150.0600599999999 15156.06606 2020-01-01 2020-01-02 2020-01-01 00:00:20 2020-01-02 03:45:20 2020-01-01 00:00:20.000 2020-01-02 03:45:20.000 20 99920 49970 5046970 20 99920 49970 5046970 -32549 32386 4549.009900990099 459450 -126 126 -0.693069306930693 -70 +200 101 10190 99101 0.6006 297.6006 149.1006 14910.06006 0.6006 297.6006 149.10059 14910.0599 0.60060 297.60060 149.1005999999999 14910.06000 2020-01-01 2020-01-02 2020-01-01 00:03:20 2020-01-02 03:31:41 2020-01-01 00:03:20.000 2020-01-02 03:31:41.000 200 99101 49650.5 4965050 200 99101 49650.5 4965050 -32369 32566 5086.02 508602 -127 125 -0.7 -70 +201 101 10191 99102 0.6036 297.6036 149.1036 14910.36036 0.6036 297.6036 149.1036 14910.36063 0.60360 297.60360 149.10360000000009 14910.36000 2020-01-01 2020-01-02 2020-01-01 00:03:21 2020-01-02 03:31:42 2020-01-01 00:03:21.000 2020-01-02 03:31:42.000 201 99102 49651.5 4965150 201 99102 49651.5 4965150 -32368 32567 5087.02 508702 -126 126 0.3 30 +202 101 10192 99103 0.6066 297.6066 149.1066 14910.66066 0.6066 297.6066 149.1066 14910.66078 0.60660 297.60660 149.10659999999993 14910.66000 2020-01-01 2020-01-02 2020-01-01 00:03:22 2020-01-02 03:31:43 2020-01-01 00:03:22.000 2020-01-02 03:31:43.000 202 99103 49652.5 4965250 202 99103 49652.5 4965250 -32367 32568 5088.02 508802 -125 127 1.3 130 +203 101 10193 99104 0.6096 297.6096 149.1096 14910.96096 0.6096 297.60962 149.1096 14910.9609 0.60960 297.60960 149.1095999999999 14910.96000 2020-01-01 2020-01-02 2020-01-01 00:03:23 2020-01-02 03:31:44 2020-01-01 00:03:23.000 2020-01-02 03:31:44.000 203 99104 49653.5 4965350 203 99104 49653.5 4965350 -32366 32569 5089.02 508902 -128 127 -0.26 -26 +204 101 10194 99105 0.61261 297.61261 149.11261 14911.26126 0.61261 297.6126 149.11261 14911.26105 0.61261 297.61261 149.11261000000005 14911.26100 2020-01-01 2020-01-02 2020-01-01 00:03:24 2020-01-02 03:31:45 2020-01-01 00:03:24.000 2020-01-02 03:31:45.000 204 99105 49654.5 4965450 204 99105 49654.5 4965450 -32365 32570 5090.02 509002 -128 127 -1.82 -182 +205 101 10195 99106 0.61561 297.61561 149.11561 14911.56156 0.61561 297.6156 149.11561 14911.56137 0.61561 297.61561 149.11561000000003 14911.56100 2020-01-01 2020-01-02 2020-01-01 00:03:25 2020-01-02 03:31:46 2020-01-01 00:03:25.000 2020-01-02 03:31:46.000 205 99106 49655.5 4965550 205 99106 49655.5 4965550 -32364 32571 5091.02 509102 -128 123 -3.38 -338 +206 101 10196 99107 0.61861 297.61861 149.11861 14911.86186 0.61861 297.61862 149.11862 14911.8621 0.61861 297.61861 149.11860999999985 14911.86100 2020-01-01 2020-01-02 2020-01-01 00:03:26 2020-01-02 03:31:47 2020-01-01 00:03:26.000 2020-01-02 03:31:47.000 206 99107 49656.5 4965650 206 99107 49656.5 4965650 -32363 32572 5092.02 509202 -127 124 -2.38 -238 +207 101 10197 99108 0.62162 297.62162 149.12162 14912.16216 0.62162 297.6216 149.12162 14912.16225 0.62162 297.62162 149.12161999999992 14912.16200 2020-01-01 2020-01-02 2020-01-01 00:03:27 2020-01-02 03:31:48 2020-01-01 00:03:27.000 2020-01-02 03:31:48.000 207 99108 49657.5 4965750 207 99108 49657.5 4965750 -32362 32573 5093.02 509302 -126 125 -1.38 -138 208 101 10198 99109 0.62462 297.62462 149.12462 14912.46246 0.62462 297.62463 149.12462 14912.46237 0.62462 297.62462 149.12462 14912.46200 2020-01-01 2020-01-02 2020-01-01 00:03:28 2020-01-02 03:31:49 2020-01-01 00:03:28.000 2020-01-02 03:31:49.000 208 99109 49658.5 4965850 208 99109 49658.5 4965850 -32361 32574 5094.02 509402 -125 126 -0.38 -38 -209 101 10199 99110 0.62762 297.62762 149.12762 14912.76276 0.62762 297.62762 149.12762 14912.76253 0.62762 297.62762 149.12762 14912.76200 2020-01-01 2020-01-02 2020-01-01 00:03:29 2020-01-02 03:31:50 2020-01-01 00:03:29.000 2020-01-02 03:31:50.000 209 99110 49659.5 4965950 209 99110 49659.5 4965950 -32360 32575 5095.02 509502 -124 127 0.62 62 -21 102 10011 99921 0.06306 300.06306 150.06306 15156.36936 0.06306 300.06305 150.06306 15156.36927 0.06306 300.06306 150.06306 15156.36906 2020-01-01 2020-01-02 2020-01-01 00:00:21 2020-01-02 03:45:21 2020-01-01 00:00:21.000 2020-01-02 03:45:21.000 21 99921 49971 5047071 21 99921 49971 5047071 -32548 32387 4550.009900990099 459551 -125 127 0.3069306930693069 31 -210 101 10200 99111 0.63063 297.63063 149.13063 14913.06306 0.63063 297.63065 149.13063 14913.06326 0.63063 297.63063 149.13063 14913.06300 2020-01-01 2020-01-02 2020-01-01 00:03:30 2020-01-02 03:31:51 2020-01-01 00:03:30.000 2020-01-02 03:31:51.000 210 99111 49660.5 4966050 210 99111 49660.5 4966050 -32359 32576 5096.02 509602 -128 127 -0.94 -94 -211 101 10201 99112 0.63363 297.63363 149.13363 14913.36336 0.63363 297.63364 149.13363 14913.36357 0.63363 297.63363 149.13363 14913.36300 2020-01-01 2020-01-02 2020-01-01 00:03:31 2020-01-02 03:31:52 2020-01-01 00:03:31.000 2020-01-02 03:31:52.000 211 99112 49661.5 4966150 211 99112 49661.5 4966150 -32358 32577 5097.02 509702 -128 123 -2.5 -250 -212 101 10202 99113 0.63663 297.63663 149.13663 14913.66366 0.63663 297.63663 149.13663 14913.66372 0.63663 297.63663 149.13663 14913.66300 2020-01-01 2020-01-02 2020-01-01 00:03:32 2020-01-02 03:31:53 2020-01-01 00:03:32.000 2020-01-02 03:31:53.000 212 99113 49662.5 4966250 212 99113 49662.5 4966250 -32357 32578 5098.02 509802 -127 124 -1.5 -150 -213 101 10203 99114 0.63963 297.63963 149.13963 14913.96396 0.63963 297.63965 149.13963 14913.96384 0.63963 297.63963 149.13963 14913.96300 2020-01-01 2020-01-02 2020-01-01 00:03:33 2020-01-02 03:31:54 2020-01-01 00:03:33.000 2020-01-02 03:31:54.000 213 99114 49663.5 4966350 213 99114 49663.5 4966350 -32356 32579 5099.02 509902 -126 125 -0.5 -50 +209 101 10199 99110 0.62762 297.62762 149.12762 14912.76276 0.62762 297.62762 149.12762 14912.76253 0.62762 297.62762 149.12761999999998 14912.76200 2020-01-01 2020-01-02 2020-01-01 00:03:29 2020-01-02 03:31:50 2020-01-01 00:03:29.000 2020-01-02 03:31:50.000 209 99110 49659.5 4965950 209 99110 49659.5 4965950 -32360 32575 5095.02 509502 -124 127 0.62 62 +21 102 10011 99921 0.06306 300.06306 150.06306 15156.36936 0.06306 300.06305 150.06306 15156.36927 0.06306 300.06306 150.06306000000012 15156.36906 2020-01-01 2020-01-02 2020-01-01 00:00:21 2020-01-02 03:45:21 2020-01-01 00:00:21.000 2020-01-02 03:45:21.000 21 99921 49971 5047071 21 99921 49971 5047071 -32548 32387 4550.009900990099 459551 -125 127 0.3069306930693069 31 +210 101 10200 99111 0.63063 297.63063 149.13063 14913.06306 0.63063 297.63065 149.13063 14913.06326 0.63063 297.63063 149.13062999999994 14913.06300 2020-01-01 2020-01-02 2020-01-01 00:03:30 2020-01-02 03:31:51 2020-01-01 00:03:30.000 2020-01-02 03:31:51.000 210 99111 49660.5 4966050 210 99111 49660.5 4966050 -32359 32576 5096.02 509602 -128 127 -0.94 -94 +211 101 10201 99112 0.63363 297.63363 149.13363 14913.36336 0.63363 297.63364 149.13363 14913.36357 0.63363 297.63363 149.13363000000004 14913.36300 2020-01-01 2020-01-02 2020-01-01 00:03:31 2020-01-02 03:31:52 2020-01-01 00:03:31.000 2020-01-02 03:31:52.000 211 99112 49661.5 4966150 211 99112 49661.5 4966150 -32358 32577 5097.02 509702 -128 123 -2.5 -250 +212 101 10202 99113 0.63663 297.63663 149.13663 14913.66366 0.63663 297.63663 149.13663 14913.66372 0.63663 297.63663 149.13663000000008 14913.66300 2020-01-01 2020-01-02 2020-01-01 00:03:32 2020-01-02 03:31:53 2020-01-01 00:03:32.000 2020-01-02 03:31:53.000 212 99113 49662.5 4966250 212 99113 49662.5 4966250 -32357 32578 5098.02 509802 -127 124 -1.5 -150 +213 101 10203 99114 0.63963 297.63963 149.13963 14913.96396 0.63963 297.63965 149.13963 14913.96384 0.63963 297.63963 149.1396299999999 14913.96300 2020-01-01 2020-01-02 2020-01-01 00:03:33 2020-01-02 03:31:54 2020-01-01 00:03:33.000 2020-01-02 03:31:54.000 213 99114 49663.5 4966350 213 99114 49663.5 4966350 -32356 32579 5099.02 509902 -126 125 -0.5 -50 214 101 10204 99115 0.64264 297.64264 149.14264 14914.26426 0.64264 297.64264 149.14263 14914.26399 0.64264 297.64264 149.14264 14914.26400 2020-01-01 2020-01-02 2020-01-01 00:03:34 2020-01-02 03:31:55 2020-01-01 00:03:34.000 2020-01-02 03:31:55.000 214 99115 49664.5 4966450 214 99115 49664.5 4966450 -32355 32580 5100.02 510002 -125 126 0.5 50 -215 101 10205 99116 0.64564 297.64564 149.14564 14914.56456 0.64564 297.64566 149.14564 14914.56473 0.64564 297.64564 149.14564 14914.56400 2020-01-01 2020-01-02 2020-01-01 00:03:35 2020-01-02 03:31:56 2020-01-01 00:03:35.000 2020-01-02 03:31:56.000 215 99116 49665.5 4966550 215 99116 49665.5 4966550 -32354 32581 5101.02 510102 -124 127 1.5 150 -216 101 10206 99117 0.64864 297.64864 149.14864 14914.86486 0.64864 297.64865 149.14865 14914.86504 0.64864 297.64864 149.14864 14914.86400 2020-01-01 2020-01-02 2020-01-01 00:03:36 2020-01-02 03:31:57 2020-01-01 00:03:36.000 2020-01-02 03:31:57.000 216 99117 49666.5 4966650 216 99117 49666.5 4966650 -32353 32582 5102.02 510202 -128 127 -0.06 -6 -217 101 10207 99118 0.65165 297.65165 149.15165 14915.16516 0.65165 297.65164 149.15165 14915.16523 0.65165 297.65165 149.15165 14915.16500 2020-01-01 2020-01-02 2020-01-01 00:03:37 2020-01-02 03:31:58 2020-01-01 00:03:37.000 2020-01-02 03:31:58.000 217 99118 49667.5 4966750 217 99118 49667.5 4966750 -32352 32583 5103.02 510302 -128 123 -1.62 -162 -218 101 10208 99119 0.65465 297.65465 149.15465 14915.46546 0.65465 297.65466 149.15465 14915.46531 0.65465 297.65465 149.15465 14915.46500 2020-01-01 2020-01-02 2020-01-01 00:03:38 2020-01-02 03:31:59 2020-01-01 00:03:38.000 2020-01-02 03:31:59.000 218 99119 49668.5 4966850 218 99119 49668.5 4966850 -32351 32584 5104.02 510402 -127 124 -0.62 -62 -219 101 10209 99120 0.65765 297.65765 149.15765 14915.76576 0.65765 297.65765 149.15765 14915.76562 0.65765 297.65765 149.15765 14915.76500 2020-01-01 2020-01-02 2020-01-01 00:03:39 2020-01-02 03:32:00 2020-01-01 00:03:39.000 2020-01-02 03:32:00.000 219 99120 49669.5 4966950 219 99120 49669.5 4966950 -32350 32585 5105.02 510502 -126 125 0.38 38 -22 102 10012 99922 0.06606 300.06606 150.06606 15156.67267 0.06606 300.06607 150.06606 15156.67287 0.06606 300.06606 150.06606 15156.67206 2020-01-01 2020-01-02 2020-01-01 00:00:22 2020-01-02 03:45:22 2020-01-01 00:00:22.000 2020-01-02 03:45:22.000 22 99922 49972 5047172 22 99922 49972 5047172 -32547 32388 4551.009900990099 459652 -128 127 -1.2277227722772277 -124 -220 101 10210 99121 0.66066 297.66066 149.16066 14916.06606 0.66066 297.66068 149.16066 14916.06619 0.66066 297.66066 149.16066 14916.06600 2020-01-01 2020-01-02 2020-01-01 00:03:40 2020-01-02 03:32:01 2020-01-01 00:03:40.000 2020-01-02 03:32:01.000 220 99121 49670.5 4967050 220 99121 49670.5 4967050 -32349 32586 5106.02 510602 -125 126 1.38 138 -221 101 10211 99122 0.66366 297.66366 149.16366 14916.36636 0.66366 297.66367 149.16366 14916.36651 0.66366 297.66366 149.16366 14916.36600 2020-01-01 2020-01-02 2020-01-01 00:03:41 2020-01-02 03:32:02 2020-01-01 00:03:41.000 2020-01-02 03:32:02.000 221 99122 49671.5 4967150 221 99122 49671.5 4967150 -32348 32587 5107.02 510702 -124 127 2.38 238 -222 101 10212 99123 0.66666 297.66666 149.16666 14916.66666 0.66666 297.66666 149.16666 14916.6667 0.66666 297.66666 149.16666 14916.66600 2020-01-01 2020-01-02 2020-01-01 00:03:42 2020-01-02 03:32:03 2020-01-01 00:03:42.000 2020-01-02 03:32:03.000 222 99123 49672.5 4967250 222 99123 49672.5 4967250 -32347 32588 5108.02 510802 -128 127 0.82 82 -223 101 10213 99124 0.66966 297.66966 149.16966 14916.96696 0.66966 297.66968 149.16966 14916.96678 0.66966 297.66966 149.16966 14916.96600 2020-01-01 2020-01-02 2020-01-01 00:03:43 2020-01-02 03:32:04 2020-01-01 00:03:43.000 2020-01-02 03:32:04.000 223 99124 49673.5 4967350 223 99124 49673.5 4967350 -32346 32589 5109.02 510902 -128 127 -0.74 -74 -224 101 10214 99125 0.67267 297.67267 149.17267 14917.26726 0.67267 297.67267 149.17267 14917.26709 0.67267 297.67267 149.17267 14917.26700 2020-01-01 2020-01-02 2020-01-01 00:03:44 2020-01-02 03:32:05 2020-01-01 00:03:44.000 2020-01-02 03:32:05.000 224 99125 49674.5 4967450 224 99125 49674.5 4967450 -32345 32590 5110.02 511002 -128 124 -2.3 -230 +215 101 10205 99116 0.64564 297.64564 149.14564 14914.56456 0.64564 297.64566 149.14564 14914.56473 0.64564 297.64564 149.14564000000007 14914.56400 2020-01-01 2020-01-02 2020-01-01 00:03:35 2020-01-02 03:31:56 2020-01-01 00:03:35.000 2020-01-02 03:31:56.000 215 99116 49665.5 4966550 215 99116 49665.5 4966550 -32354 32581 5101.02 510102 -124 127 1.5 150 +216 101 10206 99117 0.64864 297.64864 149.14864 14914.86486 0.64864 297.64865 149.14865 14914.86504 0.64864 297.64864 149.14863999999997 14914.86400 2020-01-01 2020-01-02 2020-01-01 00:03:36 2020-01-02 03:31:57 2020-01-01 00:03:36.000 2020-01-02 03:31:57.000 216 99117 49666.5 4966650 216 99117 49666.5 4966650 -32353 32582 5102.02 510202 -128 127 -0.06 -6 +217 101 10207 99118 0.65165 297.65165 149.15165 14915.16516 0.65165 297.65164 149.15165 14915.16523 0.65165 297.65165 149.1516499999999 14915.16500 2020-01-01 2020-01-02 2020-01-01 00:03:37 2020-01-02 03:31:58 2020-01-01 00:03:37.000 2020-01-02 03:31:58.000 217 99118 49667.5 4966750 217 99118 49667.5 4966750 -32352 32583 5103.02 510302 -128 123 -1.62 -162 +218 101 10208 99119 0.65465 297.65465 149.15465 14915.46546 0.65465 297.65466 149.15465 14915.46531 0.65465 297.65465 149.15465000000012 14915.46500 2020-01-01 2020-01-02 2020-01-01 00:03:38 2020-01-02 03:31:59 2020-01-01 00:03:38.000 2020-01-02 03:31:59.000 218 99119 49668.5 4966850 218 99119 49668.5 4966850 -32351 32584 5104.02 510402 -127 124 -0.62 -62 +219 101 10209 99120 0.65765 297.65765 149.15765 14915.76576 0.65765 297.65765 149.15765 14915.76562 0.65765 297.65765 149.15764999999993 14915.76500 2020-01-01 2020-01-02 2020-01-01 00:03:39 2020-01-02 03:32:00 2020-01-01 00:03:39.000 2020-01-02 03:32:00.000 219 99120 49669.5 4966950 219 99120 49669.5 4966950 -32350 32585 5105.02 510502 -126 125 0.38 38 +22 102 10012 99922 0.06606 300.06606 150.06606 15156.67267 0.06606 300.06607 150.06606 15156.67287 0.06606 300.06606 150.06605999999996 15156.67206 2020-01-01 2020-01-02 2020-01-01 00:00:22 2020-01-02 03:45:22 2020-01-01 00:00:22.000 2020-01-02 03:45:22.000 22 99922 49972 5047172 22 99922 49972 5047172 -32547 32388 4551.009900990099 459652 -128 127 -1.2277227722772277 -124 +220 101 10210 99121 0.66066 297.66066 149.16066 14916.06606 0.66066 297.66068 149.16066 14916.06619 0.66066 297.66066 149.16065999999984 14916.06600 2020-01-01 2020-01-02 2020-01-01 00:03:40 2020-01-02 03:32:01 2020-01-01 00:03:40.000 2020-01-02 03:32:01.000 220 99121 49670.5 4967050 220 99121 49670.5 4967050 -32349 32586 5106.02 510602 -125 126 1.38 138 +221 101 10211 99122 0.66366 297.66366 149.16366 14916.36636 0.66366 297.66367 149.16366 14916.36651 0.66366 297.66366 149.16366000000008 14916.36600 2020-01-01 2020-01-02 2020-01-01 00:03:41 2020-01-02 03:32:02 2020-01-01 00:03:41.000 2020-01-02 03:32:02.000 221 99122 49671.5 4967150 221 99122 49671.5 4967150 -32348 32587 5107.02 510702 -124 127 2.38 238 +222 101 10212 99123 0.66666 297.66666 149.16666 14916.66666 0.66666 297.66666 149.16666 14916.6667 0.66666 297.66666 149.16666000000004 14916.66600 2020-01-01 2020-01-02 2020-01-01 00:03:42 2020-01-02 03:32:03 2020-01-01 00:03:42.000 2020-01-02 03:32:03.000 222 99123 49672.5 4967250 222 99123 49672.5 4967250 -32347 32588 5108.02 510802 -128 127 0.82 82 +223 101 10213 99124 0.66966 297.66966 149.16966 14916.96696 0.66966 297.66968 149.16966 14916.96678 0.66966 297.66966 149.16965999999985 14916.96600 2020-01-01 2020-01-02 2020-01-01 00:03:43 2020-01-02 03:32:04 2020-01-01 00:03:43.000 2020-01-02 03:32:04.000 223 99124 49673.5 4967350 223 99124 49673.5 4967350 -32346 32589 5109.02 510902 -128 127 -0.74 -74 +224 101 10214 99125 0.67267 297.67267 149.17267 14917.26726 0.67267 297.67267 149.17267 14917.26709 0.67267 297.67267 149.17266999999995 14917.26700 2020-01-01 2020-01-02 2020-01-01 00:03:44 2020-01-02 03:32:05 2020-01-01 00:03:44.000 2020-01-02 03:32:05.000 224 99125 49674.5 4967450 224 99125 49674.5 4967450 -32345 32590 5110.02 511002 -128 124 -2.3 -230 225 101 10215 99126 0.67567 297.67567 149.17567 14917.56756 0.67567 297.6757 149.17567 14917.56767 0.67567 297.67567 149.17567 14917.56700 2020-01-01 2020-01-02 2020-01-01 00:03:45 2020-01-02 03:32:06 2020-01-01 00:03:45.000 2020-01-02 03:32:06.000 225 99126 49675.5 4967550 225 99126 49675.5 4967550 -32344 32591 5111.02 511102 -127 125 -1.3 -130 -226 101 10216 99127 0.67867 297.67867 149.17867 14917.86786 0.67867 297.67868 149.17868 14917.86802 0.67867 297.67867 149.17867 14917.86700 2020-01-01 2020-01-02 2020-01-01 00:03:46 2020-01-02 03:32:07 2020-01-01 00:03:46.000 2020-01-02 03:32:07.000 226 99127 49676.5 4967650 226 99127 49676.5 4967650 -32343 32592 5112.02 511202 -126 126 -0.3 -30 -227 101 10217 99128 0.68168 297.68168 149.18168 14918.16816 0.68168 297.68167 149.18168 14918.16817 0.68168 297.68168 149.18168 14918.16800 2020-01-01 2020-01-02 2020-01-01 00:03:47 2020-01-02 03:32:08 2020-01-01 00:03:47.000 2020-01-02 03:32:08.000 227 99128 49677.5 4967750 227 99128 49677.5 4967750 -32342 32593 5113.02 511302 -125 127 0.7 70 -228 101 10218 99129 0.68468 297.68468 149.18468 14918.46846 0.68468 297.6847 149.18468 14918.46825 0.68468 297.68468 149.18468 14918.46800 2020-01-01 2020-01-02 2020-01-01 00:03:48 2020-01-02 03:32:09 2020-01-01 00:03:48.000 2020-01-02 03:32:09.000 228 99129 49678.5 4967850 228 99129 49678.5 4967850 -32341 32594 5114.02 511402 -128 127 -0.86 -86 -229 101 10219 99130 0.68768 297.68768 149.18768 14918.76876 0.68768 297.68768 149.18768 14918.76855 0.68768 297.68768 149.18768 14918.76800 2020-01-01 2020-01-02 2020-01-01 00:03:49 2020-01-02 03:32:10 2020-01-01 00:03:49.000 2020-01-02 03:32:10.000 229 99130 49679.5 4967950 229 99130 49679.5 4967950 -32340 32595 5115.02 511502 -128 127 -2.42 -242 -23 102 10013 99923 0.06906 300.06906 150.06906 15156.97597 0.06906 300.06906 150.06907 15156.97617 0.06906 300.06906 150.06906 15156.97506 2020-01-01 2020-01-02 2020-01-01 00:00:23 2020-01-02 03:45:23 2020-01-01 00:00:23.000 2020-01-02 03:45:23.000 23 99923 49973 5047273 23 99923 49973 5047273 -32546 32389 4552.009900990099 459753 -128 127 -2.762376237623762 -279 +226 101 10216 99127 0.67867 297.67867 149.17867 14917.86786 0.67867 297.67868 149.17868 14917.86802 0.67867 297.67867 149.17866999999998 14917.86700 2020-01-01 2020-01-02 2020-01-01 00:03:46 2020-01-02 03:32:07 2020-01-01 00:03:46.000 2020-01-02 03:32:07.000 226 99127 49676.5 4967650 226 99127 49676.5 4967650 -32343 32592 5112.02 511202 -126 126 -0.3 -30 +227 101 10217 99128 0.68168 297.68168 149.18168 14918.16816 0.68168 297.68167 149.18168 14918.16817 0.68168 297.68168 149.18167999999991 14918.16800 2020-01-01 2020-01-02 2020-01-01 00:03:47 2020-01-02 03:32:08 2020-01-01 00:03:47.000 2020-01-02 03:32:08.000 227 99128 49677.5 4967750 227 99128 49677.5 4967750 -32342 32593 5113.02 511302 -125 127 0.7 70 +228 101 10218 99129 0.68468 297.68468 149.18468 14918.46846 0.68468 297.6847 149.18468 14918.46825 0.68468 297.68468 149.18468000000007 14918.46800 2020-01-01 2020-01-02 2020-01-01 00:03:48 2020-01-02 03:32:09 2020-01-01 00:03:48.000 2020-01-02 03:32:09.000 228 99129 49678.5 4967850 228 99129 49678.5 4967850 -32341 32594 5114.02 511402 -128 127 -0.86 -86 +229 101 10219 99130 0.68768 297.68768 149.18768 14918.76876 0.68768 297.68768 149.18768 14918.76855 0.68768 297.68768 149.1876799999999 14918.76800 2020-01-01 2020-01-02 2020-01-01 00:03:49 2020-01-02 03:32:10 2020-01-01 00:03:49.000 2020-01-02 03:32:10.000 229 99130 49679.5 4967950 229 99130 49679.5 4967950 -32340 32595 5115.02 511502 -128 127 -2.42 -242 +23 102 10013 99923 0.06906 300.06906 150.06906 15156.97597 0.06906 300.06906 150.06907 15156.97617 0.06906 300.06906 150.06905999999992 15156.97506 2020-01-01 2020-01-02 2020-01-01 00:00:23 2020-01-02 03:45:23 2020-01-01 00:00:23.000 2020-01-02 03:45:23.000 23 99923 49973 5047273 23 99923 49973 5047273 -32546 32389 4552.009900990099 459753 -128 127 -2.762376237623762 -279 230 101 10220 99131 0.69069 297.69069 149.19069 14919.06906 0.69069 297.6907 149.19069 14919.06914 0.69069 297.69069 149.19069 14919.06900 2020-01-01 2020-01-02 2020-01-01 00:03:50 2020-01-02 03:32:11 2020-01-01 00:03:50.000 2020-01-02 03:32:11.000 230 99131 49680.5 4968050 230 99131 49680.5 4968050 -32339 32596 5116.02 511602 -128 123 -3.98 -398 -231 101 10221 99132 0.69369 297.69369 149.19369 14919.36936 0.69369 297.6937 149.19369 14919.36949 0.69369 297.69369 149.19369 14919.36900 2020-01-01 2020-01-02 2020-01-01 00:03:51 2020-01-02 03:32:12 2020-01-01 00:03:51.000 2020-01-02 03:32:12.000 231 99132 49681.5 4968150 231 99132 49681.5 4968150 -32338 32597 5117.02 511702 -127 124 -2.98 -298 -232 101 10222 99133 0.69669 297.69669 149.19669 14919.66966 0.69669 297.6967 149.19669 14919.66964 0.69669 297.69669 149.19669 14919.66900 2020-01-01 2020-01-02 2020-01-01 00:03:52 2020-01-02 03:32:13 2020-01-01 00:03:52.000 2020-01-02 03:32:13.000 232 99133 49682.5 4968250 232 99133 49682.5 4968250 -32337 32598 5118.02 511802 -126 125 -1.98 -198 -233 101 10223 99134 0.69969 297.69969 149.19969 14919.96996 0.69969 297.6997 149.1997 14919.97037 0.69969 297.69969 149.19969 14919.96900 2020-01-01 2020-01-02 2020-01-01 00:03:53 2020-01-02 03:32:14 2020-01-01 00:03:53.000 2020-01-02 03:32:14.000 233 99134 49683.5 4968350 233 99134 49683.5 4968350 -32336 32599 5119.02 511902 -125 126 -0.98 -98 -234 101 10224 99135 0.7027 297.7027 149.2027 14920.27027 0.7027 297.7027 149.2027 14920.27003 0.70270 297.70270 149.20270 14920.27000 2020-01-01 2020-01-02 2020-01-01 00:03:54 2020-01-02 03:32:15 2020-01-01 00:03:54.000 2020-01-02 03:32:15.000 234 99135 49684.5 4968450 234 99135 49684.5 4968450 -32335 32600 5120.02 512002 -124 127 0.02 2 -235 101 10225 99136 0.7057 297.7057 149.2057 14920.57057 0.7057 297.70572 149.2057 14920.57065 0.70570 297.70570 149.20570 14920.57000 2020-01-01 2020-01-02 2020-01-01 00:03:55 2020-01-02 03:32:16 2020-01-01 00:03:55.000 2020-01-02 03:32:16.000 235 99136 49685.5 4968550 235 99136 49685.5 4968550 -32334 32601 5121.02 512102 -128 127 -1.54 -154 -236 101 10226 99137 0.7087 297.7087 149.2087 14920.87087 0.7087 297.7087 149.2087 14920.87095 0.70870 297.70870 149.20870 14920.87000 2020-01-01 2020-01-02 2020-01-01 00:03:56 2020-01-02 03:32:17 2020-01-01 00:03:56.000 2020-01-02 03:32:17.000 236 99137 49686.5 4968650 236 99137 49686.5 4968650 -32333 32602 5122.02 512202 -128 123 -3.1 -310 -237 101 10227 99138 0.71171 297.71171 149.21171 14921.17117 0.71171 297.7117 149.21171 14921.17111 0.71171 297.71171 149.21171 14921.17100 2020-01-01 2020-01-02 2020-01-01 00:03:57 2020-01-02 03:32:18 2020-01-01 00:03:57.000 2020-01-02 03:32:18.000 237 99138 49687.5 4968750 237 99138 49687.5 4968750 -32332 32603 5123.02 512302 -127 124 -2.1 -210 -238 101 10228 99139 0.71471 297.71471 149.21471 14921.47147 0.71471 297.71472 149.21471 14921.47184 0.71471 297.71471 149.21471 14921.47100 2020-01-01 2020-01-02 2020-01-01 00:03:58 2020-01-02 03:32:19 2020-01-01 00:03:58.000 2020-01-02 03:32:19.000 238 99139 49688.5 4968850 238 99139 49688.5 4968850 -32331 32604 5124.02 512402 -126 125 -1.1 -110 -239 101 10229 99140 0.71771 297.71771 149.21771 14921.77177 0.71771 297.7177 149.21771 14921.7715 0.71771 297.71771 149.21771 14921.77100 2020-01-01 2020-01-02 2020-01-01 00:03:59 2020-01-02 03:32:20 2020-01-01 00:03:59.000 2020-01-02 03:32:20.000 239 99140 49689.5 4968950 239 99140 49689.5 4968950 -32330 32605 5125.02 512502 -125 126 -0.1 -10 -24 102 10014 99924 0.07207 300.07207 150.07207 15157.27927 0.07207 300.07208 150.07207 15157.27928 0.07207 300.07207 150.07207 15157.27907 2020-01-01 2020-01-02 2020-01-01 00:00:24 2020-01-02 03:45:24 2020-01-01 00:00:24.000 2020-01-02 03:45:24.000 24 99924 49974 5047374 24 99924 49974 5047374 -32545 32390 4553.009900990099 459854 -128 123 -4.297029702970297 -434 -240 101 10230 99141 0.72072 297.72072 149.22072 14922.07207 0.72072 297.72073 149.22072 14922.07211 0.72072 297.72072 149.22072 14922.07200 2020-01-01 2020-01-02 2020-01-01 00:04:00 2020-01-02 03:32:21 2020-01-01 00:04:00.000 2020-01-02 03:32:21.000 240 99141 49690.5 4969050 240 99141 49690.5 4969050 -32329 32606 5126.02 512602 -124 127 0.9 90 +231 101 10221 99132 0.69369 297.69369 149.19369 14919.36936 0.69369 297.6937 149.19369 14919.36949 0.69369 297.69369 149.19369000000003 14919.36900 2020-01-01 2020-01-02 2020-01-01 00:03:51 2020-01-02 03:32:12 2020-01-01 00:03:51.000 2020-01-02 03:32:12.000 231 99132 49681.5 4968150 231 99132 49681.5 4968150 -32338 32597 5117.02 511702 -127 124 -2.98 -298 +232 101 10222 99133 0.69669 297.69669 149.19669 14919.66966 0.69669 297.6967 149.19669 14919.66964 0.69669 297.69669 149.19669000000002 14919.66900 2020-01-01 2020-01-02 2020-01-01 00:03:52 2020-01-02 03:32:13 2020-01-01 00:03:52.000 2020-01-02 03:32:13.000 232 99133 49682.5 4968250 232 99133 49682.5 4968250 -32337 32598 5118.02 511802 -126 125 -1.98 -198 +233 101 10223 99134 0.69969 297.69969 149.19969 14919.96996 0.69969 297.6997 149.1997 14919.97037 0.69969 297.69969 149.19968999999998 14919.96900 2020-01-01 2020-01-02 2020-01-01 00:03:53 2020-01-02 03:32:14 2020-01-01 00:03:53.000 2020-01-02 03:32:14.000 233 99134 49683.5 4968350 233 99134 49683.5 4968350 -32336 32599 5119.02 511902 -125 126 -0.98 -98 +234 101 10224 99135 0.7027 297.7027 149.2027 14920.27027 0.7027 297.7027 149.2027 14920.27003 0.70270 297.70270 149.2026999999999 14920.27000 2020-01-01 2020-01-02 2020-01-01 00:03:54 2020-01-02 03:32:15 2020-01-01 00:03:54.000 2020-01-02 03:32:15.000 234 99135 49684.5 4968450 234 99135 49684.5 4968450 -32335 32600 5120.02 512002 -124 127 0.02 2 +235 101 10225 99136 0.7057 297.7057 149.2057 14920.57057 0.7057 297.70572 149.2057 14920.57065 0.70570 297.70570 149.20570000000015 14920.57000 2020-01-01 2020-01-02 2020-01-01 00:03:55 2020-01-02 03:32:16 2020-01-01 00:03:55.000 2020-01-02 03:32:16.000 235 99136 49685.5 4968550 235 99136 49685.5 4968550 -32334 32601 5121.02 512102 -128 127 -1.54 -154 +236 101 10226 99137 0.7087 297.7087 149.2087 14920.87087 0.7087 297.7087 149.2087 14920.87095 0.70870 297.70870 149.20869999999996 14920.87000 2020-01-01 2020-01-02 2020-01-01 00:03:56 2020-01-02 03:32:17 2020-01-01 00:03:56.000 2020-01-02 03:32:17.000 236 99137 49686.5 4968650 236 99137 49686.5 4968650 -32333 32602 5122.02 512202 -128 123 -3.1 -310 +237 101 10227 99138 0.71171 297.71171 149.21171 14921.17117 0.71171 297.7117 149.21171 14921.17111 0.71171 297.71171 149.21170999999987 14921.17100 2020-01-01 2020-01-02 2020-01-01 00:03:57 2020-01-02 03:32:18 2020-01-01 00:03:57.000 2020-01-02 03:32:18.000 237 99138 49687.5 4968750 237 99138 49687.5 4968750 -32332 32603 5123.02 512302 -127 124 -2.1 -210 +238 101 10228 99139 0.71471 297.71471 149.21471 14921.47147 0.71471 297.71472 149.21471 14921.47184 0.71471 297.71471 149.21471000000008 14921.47100 2020-01-01 2020-01-02 2020-01-01 00:03:58 2020-01-02 03:32:19 2020-01-01 00:03:58.000 2020-01-02 03:32:19.000 238 99139 49688.5 4968850 238 99139 49688.5 4968850 -32331 32604 5124.02 512402 -126 125 -1.1 -110 +239 101 10229 99140 0.71771 297.71771 149.21771 14921.77177 0.71771 297.7177 149.21771 14921.7715 0.71771 297.71771 149.21771000000007 14921.77100 2020-01-01 2020-01-02 2020-01-01 00:03:59 2020-01-02 03:32:20 2020-01-01 00:03:59.000 2020-01-02 03:32:20.000 239 99140 49689.5 4968950 239 99140 49689.5 4968950 -32330 32605 5125.02 512502 -125 126 -0.1 -10 +24 102 10014 99924 0.07207 300.07207 150.07207 15157.27927 0.07207 300.07208 150.07207 15157.27928 0.07207 300.07207 150.07207000000008 15157.27907 2020-01-01 2020-01-02 2020-01-01 00:00:24 2020-01-02 03:45:24 2020-01-01 00:00:24.000 2020-01-02 03:45:24.000 24 99924 49974 5047374 24 99924 49974 5047374 -32545 32390 4553.009900990099 459854 -128 123 -4.297029702970297 -434 +240 101 10230 99141 0.72072 297.72072 149.22072 14922.07207 0.72072 297.72073 149.22072 14922.07211 0.72072 297.72072 149.22071999999994 14922.07200 2020-01-01 2020-01-02 2020-01-01 00:04:00 2020-01-02 03:32:21 2020-01-01 00:04:00.000 2020-01-02 03:32:21.000 240 99141 49690.5 4969050 240 99141 49690.5 4969050 -32329 32606 5126.02 512602 -124 127 0.9 90 241 101 10231 99142 0.72372 297.72372 149.22372 14922.37237 0.72372 297.72372 149.22372 14922.37243 0.72372 297.72372 149.22372 14922.37200 2020-01-01 2020-01-02 2020-01-01 00:04:01 2020-01-02 03:32:22 2020-01-01 00:04:01.000 2020-01-02 03:32:22.000 241 99142 49691.5 4969150 241 99142 49691.5 4969150 -32328 32607 5127.02 512702 -128 127 -0.66 -66 -242 101 10232 99143 0.72672 297.72672 149.22672 14922.67267 0.72672 297.7267 149.22672 14922.67273 0.72672 297.72672 149.22672 14922.67200 2020-01-01 2020-01-02 2020-01-01 00:04:02 2020-01-02 03:32:23 2020-01-01 00:04:02.000 2020-01-02 03:32:23.000 242 99143 49692.5 4969250 242 99143 49692.5 4969250 -32327 32608 5128.02 512802 -128 123 -2.22 -222 -243 101 10233 99144 0.72972 297.72972 149.22972 14922.97297 0.72972 297.72974 149.22973 14922.97332 0.72972 297.72972 149.22972 14922.97200 2020-01-01 2020-01-02 2020-01-01 00:04:03 2020-01-02 03:32:24 2020-01-01 00:04:03.000 2020-01-02 03:32:24.000 243 99144 49693.5 4969350 243 99144 49693.5 4969350 -32326 32609 5129.02 512902 -127 124 -1.22 -122 -244 101 10234 99145 0.73273 297.73273 149.23273 14923.27327 0.73273 297.73273 149.23272 14923.27297 0.73273 297.73273 149.23273 14923.27300 2020-01-01 2020-01-02 2020-01-01 00:04:04 2020-01-02 03:32:25 2020-01-01 00:04:04.000 2020-01-02 03:32:25.000 244 99145 49694.5 4969450 244 99145 49694.5 4969450 -32325 32610 5130.02 513002 -126 125 -0.22 -22 -245 101 10235 99146 0.73573 297.73573 149.23573 14923.57357 0.73573 297.73575 149.23573 14923.57358 0.73573 297.73573 149.23573 14923.57300 2020-01-01 2020-01-02 2020-01-01 00:04:05 2020-01-02 03:32:26 2020-01-01 00:04:05.000 2020-01-02 03:32:26.000 245 99146 49695.5 4969550 245 99146 49695.5 4969550 -32324 32611 5131.02 513102 -125 126 0.78 78 -246 101 10236 99147 0.73873 297.73873 149.23873 14923.87387 0.73873 297.73874 149.23873 14923.8739 0.73873 297.73873 149.23873 14923.87300 2020-01-01 2020-01-02 2020-01-01 00:04:06 2020-01-02 03:32:27 2020-01-01 00:04:06.000 2020-01-02 03:32:27.000 246 99147 49696.5 4969650 246 99147 49696.5 4969650 -32323 32612 5132.02 513202 -124 127 1.78 178 +242 101 10232 99143 0.72672 297.72672 149.22672 14922.67267 0.72672 297.7267 149.22672 14922.67273 0.72672 297.72672 149.22672000000003 14922.67200 2020-01-01 2020-01-02 2020-01-01 00:04:02 2020-01-02 03:32:23 2020-01-01 00:04:02.000 2020-01-02 03:32:23.000 242 99143 49692.5 4969250 242 99143 49692.5 4969250 -32327 32608 5128.02 512802 -128 123 -2.22 -222 +243 101 10233 99144 0.72972 297.72972 149.22972 14922.97297 0.72972 297.72974 149.22973 14922.97332 0.72972 297.72972 149.22971999999993 14922.97200 2020-01-01 2020-01-02 2020-01-01 00:04:03 2020-01-02 03:32:24 2020-01-01 00:04:03.000 2020-01-02 03:32:24.000 243 99144 49693.5 4969350 243 99144 49693.5 4969350 -32326 32609 5129.02 512902 -127 124 -1.22 -122 +244 101 10234 99145 0.73273 297.73273 149.23273 14923.27327 0.73273 297.73273 149.23272 14923.27297 0.73273 297.73273 149.23272999999995 14923.27300 2020-01-01 2020-01-02 2020-01-01 00:04:04 2020-01-02 03:32:25 2020-01-01 00:04:04.000 2020-01-02 03:32:25.000 244 99145 49694.5 4969450 244 99145 49694.5 4969450 -32325 32610 5130.02 513002 -126 125 -0.22 -22 +245 101 10235 99146 0.73573 297.73573 149.23573 14923.57357 0.73573 297.73575 149.23573 14923.57358 0.73573 297.73573 149.2357300000001 14923.57300 2020-01-01 2020-01-02 2020-01-01 00:04:05 2020-01-02 03:32:26 2020-01-01 00:04:05.000 2020-01-02 03:32:26.000 245 99146 49695.5 4969550 245 99146 49695.5 4969550 -32324 32611 5131.02 513102 -125 126 0.78 78 +246 101 10236 99147 0.73873 297.73873 149.23873 14923.87387 0.73873 297.73874 149.23873 14923.8739 0.73873 297.73873 149.23872999999992 14923.87300 2020-01-01 2020-01-02 2020-01-01 00:04:06 2020-01-02 03:32:27 2020-01-01 00:04:06.000 2020-01-02 03:32:27.000 246 99147 49696.5 4969650 246 99147 49696.5 4969650 -32323 32612 5132.02 513202 -124 127 1.78 178 247 101 10237 99148 0.74174 297.74174 149.24174 14924.17417 0.74174 297.74173 149.24174 14924.1742 0.74174 297.74174 149.24174 14924.17400 2020-01-01 2020-01-02 2020-01-01 00:04:07 2020-01-02 03:32:28 2020-01-01 00:04:07.000 2020-01-02 03:32:28.000 247 99148 49697.5 4969750 247 99148 49697.5 4969750 -32322 32613 5133.02 513302 -128 127 0.22 22 -248 101 10238 99149 0.74474 297.74474 149.24474 14924.47447 0.74474 297.74475 149.24474 14924.47478 0.74474 297.74474 149.24474 14924.47400 2020-01-01 2020-01-02 2020-01-01 00:04:08 2020-01-02 03:32:29 2020-01-01 00:04:08.000 2020-01-02 03:32:29.000 248 99149 49698.5 4969850 248 99149 49698.5 4969850 -32321 32614 5134.02 513402 -128 127 -1.34 -134 -249 101 10239 99150 0.74774 297.74774 149.24774 14924.77477 0.74774 297.74774 149.24774 14924.77447 0.74774 297.74774 149.24774 14924.77400 2020-01-01 2020-01-02 2020-01-01 00:04:09 2020-01-02 03:32:30 2020-01-01 00:04:09.000 2020-01-02 03:32:30.000 249 99150 49699.5 4969950 249 99150 49699.5 4969950 -32320 32615 5135.02 513502 -128 124 -2.9 -290 -25 102 10015 99925 0.07507 300.07507 150.07507 15157.58258 0.07507 300.07507 150.07507 15157.58241 0.07507 300.07507 150.07507 15157.58207 2020-01-01 2020-01-02 2020-01-01 00:00:25 2020-01-02 03:45:25 2020-01-01 00:00:25.000 2020-01-02 03:45:25.000 25 99925 49975 5047475 25 99925 49975 5047475 -32544 32391 4554.009900990099 459955 -127 124 -3.297029702970297 -333 -250 101 10240 99151 0.75075 297.75075 149.25075 14925.07507 0.75075 297.75076 149.25075 14925.07506 0.75075 297.75075 149.25075 14925.07500 2020-01-01 2020-01-02 2020-01-01 00:04:10 2020-01-02 03:32:31 2020-01-01 00:04:10.000 2020-01-02 03:32:31.000 250 99151 49700.5 4970050 250 99151 49700.5 4970050 -32319 32616 5136.02 513602 -127 125 -1.9 -190 -251 101 10241 99152 0.75375 297.75375 149.25375 14925.37537 0.75375 297.75375 149.25375 14925.37536 0.75375 297.75375 149.25375 14925.37500 2020-01-01 2020-01-02 2020-01-01 00:04:11 2020-01-02 03:32:32 2020-01-01 00:04:11.000 2020-01-02 03:32:32.000 251 99152 49701.5 4970150 251 99152 49701.5 4970150 -32318 32617 5137.02 513702 -126 126 -0.9 -90 -252 101 10242 99153 0.75675 297.75675 149.25675 14925.67567 0.75675 297.75674 149.25675 14925.67567 0.75675 297.75675 149.25675 14925.67500 2020-01-01 2020-01-02 2020-01-01 00:04:12 2020-01-02 03:32:33 2020-01-01 00:04:12.000 2020-01-02 03:32:33.000 252 99153 49702.5 4970250 252 99153 49702.5 4970250 -32317 32618 5138.02 513802 -125 127 0.1 10 -253 101 10243 99154 0.75975 297.75975 149.25975 14925.97597 0.75975 297.75977 149.25976 14925.97625 0.75975 297.75975 149.25975 14925.97500 2020-01-01 2020-01-02 2020-01-01 00:04:13 2020-01-02 03:32:34 2020-01-01 00:04:13.000 2020-01-02 03:32:34.000 253 99154 49703.5 4970350 253 99154 49703.5 4970350 -32316 32619 5139.02 513902 -128 127 -1.46 -146 -254 101 10244 99155 0.76276 297.76276 149.26276 14926.27627 0.76276 297.76276 149.26275 14926.27594 0.76276 297.76276 149.26276 14926.27600 2020-01-01 2020-01-02 2020-01-01 00:04:14 2020-01-02 03:32:35 2020-01-01 00:04:14.000 2020-01-02 03:32:35.000 254 99155 49704.5 4970450 254 99155 49704.5 4970450 -32315 32620 5140.02 514002 -128 127 -3.02 -302 -255 101 10245 99156 0.76576 297.76576 149.26576 14926.57657 0.76576 297.76578 149.26576 14926.57652 0.76576 297.76576 149.26576 14926.57600 2020-01-01 2020-01-02 2020-01-01 00:04:15 2020-01-02 03:32:36 2020-01-01 00:04:15.000 2020-01-02 03:32:36.000 255 99156 49705.5 4970550 255 99156 49705.5 4970550 -32314 32621 5141.02 514102 -128 123 -4.58 -458 -256 101 10246 99157 0.76876 297.76876 149.26876 14926.87687 0.76876 297.76877 149.26876 14926.87683 0.76876 297.76876 149.26876 14926.87600 2020-01-01 2020-01-02 2020-01-01 00:04:16 2020-01-02 03:32:37 2020-01-01 00:04:16.000 2020-01-02 03:32:37.000 256 99157 49706.5 4970650 256 99157 49706.5 4970650 -32313 32622 5142.02 514202 -127 124 -3.58 -358 -257 101 10247 99158 0.77177 297.77177 149.27177 14927.17717 0.77177 297.77176 149.27177 14927.17714 0.77177 297.77177 149.27177 14927.17700 2020-01-01 2020-01-02 2020-01-01 00:04:17 2020-01-02 03:32:38 2020-01-01 00:04:17.000 2020-01-02 03:32:38.000 257 99158 49707.5 4970750 257 99158 49707.5 4970750 -32312 32623 5143.02 514302 -126 125 -2.58 -258 +248 101 10238 99149 0.74474 297.74474 149.24474 14924.47447 0.74474 297.74475 149.24474 14924.47478 0.74474 297.74474 149.24474000000006 14924.47400 2020-01-01 2020-01-02 2020-01-01 00:04:08 2020-01-02 03:32:29 2020-01-01 00:04:08.000 2020-01-02 03:32:29.000 248 99149 49698.5 4969850 248 99149 49698.5 4969850 -32321 32614 5134.02 513402 -128 127 -1.34 -134 +249 101 10239 99150 0.74774 297.74774 149.24774 14924.77477 0.74774 297.74774 149.24774 14924.77447 0.74774 297.74774 149.24774000000002 14924.77400 2020-01-01 2020-01-02 2020-01-01 00:04:09 2020-01-02 03:32:30 2020-01-01 00:04:09.000 2020-01-02 03:32:30.000 249 99150 49699.5 4969950 249 99150 49699.5 4969950 -32320 32615 5135.02 513502 -128 124 -2.9 -290 +25 102 10015 99925 0.07507 300.07507 150.07507 15157.58258 0.07507 300.07507 150.07507 15157.58241 0.07507 300.07507 150.07507000000004 15157.58207 2020-01-01 2020-01-02 2020-01-01 00:00:25 2020-01-02 03:45:25 2020-01-01 00:00:25.000 2020-01-02 03:45:25.000 25 99925 49975 5047475 25 99925 49975 5047475 -32544 32391 4554.009900990099 459955 -127 124 -3.297029702970297 -333 +250 101 10240 99151 0.75075 297.75075 149.25075 14925.07507 0.75075 297.75076 149.25075 14925.07506 0.75075 297.75075 149.25074999999998 14925.07500 2020-01-01 2020-01-02 2020-01-01 00:04:10 2020-01-02 03:32:31 2020-01-01 00:04:10.000 2020-01-02 03:32:31.000 250 99151 49700.5 4970050 250 99151 49700.5 4970050 -32319 32616 5136.02 513602 -127 125 -1.9 -190 +251 101 10241 99152 0.75375 297.75375 149.25375 14925.37537 0.75375 297.75375 149.25375 14925.37536 0.75375 297.75375 149.25374999999994 14925.37500 2020-01-01 2020-01-02 2020-01-01 00:04:11 2020-01-02 03:32:32 2020-01-01 00:04:11.000 2020-01-02 03:32:32.000 251 99152 49701.5 4970150 251 99152 49701.5 4970150 -32318 32617 5137.02 513702 -126 126 -0.9 -90 +252 101 10242 99153 0.75675 297.75675 149.25675 14925.67567 0.75675 297.75674 149.25675 14925.67567 0.75675 297.75675 149.25675000000015 14925.67500 2020-01-01 2020-01-02 2020-01-01 00:04:12 2020-01-02 03:32:33 2020-01-01 00:04:12.000 2020-01-02 03:32:33.000 252 99153 49702.5 4970250 252 99153 49702.5 4970250 -32317 32618 5138.02 513802 -125 127 0.1 10 +253 101 10243 99154 0.75975 297.75975 149.25975 14925.97597 0.75975 297.75977 149.25976 14925.97625 0.75975 297.75975 149.25974999999997 14925.97500 2020-01-01 2020-01-02 2020-01-01 00:04:13 2020-01-02 03:32:34 2020-01-01 00:04:13.000 2020-01-02 03:32:34.000 253 99154 49703.5 4970350 253 99154 49703.5 4970350 -32316 32619 5139.02 513902 -128 127 -1.46 -146 +254 101 10244 99155 0.76276 297.76276 149.26276 14926.27627 0.76276 297.76276 149.26275 14926.27594 0.76276 297.76276 149.2627599999999 14926.27600 2020-01-01 2020-01-02 2020-01-01 00:04:14 2020-01-02 03:32:35 2020-01-01 00:04:14.000 2020-01-02 03:32:35.000 254 99155 49704.5 4970450 254 99155 49704.5 4970450 -32315 32620 5140.02 514002 -128 127 -3.02 -302 +255 101 10245 99156 0.76576 297.76576 149.26576 14926.57657 0.76576 297.76578 149.26576 14926.57652 0.76576 297.76576 149.2657600000001 14926.57600 2020-01-01 2020-01-02 2020-01-01 00:04:15 2020-01-02 03:32:36 2020-01-01 00:04:15.000 2020-01-02 03:32:36.000 255 99156 49705.5 4970550 255 99156 49705.5 4970550 -32314 32621 5141.02 514102 -128 123 -4.58 -458 +256 101 10246 99157 0.76876 297.76876 149.26876 14926.87687 0.76876 297.76877 149.26876 14926.87683 0.76876 297.76876 149.26876000000007 14926.87600 2020-01-01 2020-01-02 2020-01-01 00:04:16 2020-01-02 03:32:37 2020-01-01 00:04:16.000 2020-01-02 03:32:37.000 256 99157 49706.5 4970650 256 99157 49706.5 4970650 -32313 32622 5142.02 514202 -127 124 -3.58 -358 +257 101 10247 99158 0.77177 297.77177 149.27177 14927.17717 0.77177 297.77176 149.27177 14927.17714 0.77177 297.77177 149.27176999999995 14927.17700 2020-01-01 2020-01-02 2020-01-01 00:04:17 2020-01-02 03:32:38 2020-01-01 00:04:17.000 2020-01-02 03:32:38.000 257 99158 49707.5 4970750 257 99158 49707.5 4970750 -32312 32623 5143.02 514302 -126 125 -2.58 -258 258 101 10248 99159 0.77477 297.77477 149.27477 14927.47747 0.77477 297.77478 149.27477 14927.47776 0.77477 297.77477 149.27477 14927.47700 2020-01-01 2020-01-02 2020-01-01 00:04:18 2020-01-02 03:32:39 2020-01-01 00:04:18.000 2020-01-02 03:32:39.000 258 99159 49708.5 4970850 258 99159 49708.5 4970850 -32311 32624 5144.02 514402 -125 126 -1.58 -158 -259 101 10249 99160 0.77777 297.77777 149.27777 14927.77777 0.77777 297.77777 149.27777 14927.77742 0.77777 297.77777 149.27777 14927.77700 2020-01-01 2020-01-02 2020-01-01 00:04:19 2020-01-02 03:32:40 2020-01-01 00:04:19.000 2020-01-02 03:32:40.000 259 99160 49709.5 4970950 259 99160 49709.5 4970950 -32310 32625 5145.02 514502 -124 127 -0.58 -58 -26 102 10016 99926 0.07807 300.07807 150.07807 15157.88588 0.07807 300.07806 150.07807 15157.88575 0.07807 300.07807 150.07807 15157.88507 2020-01-01 2020-01-02 2020-01-01 00:00:26 2020-01-02 03:45:26 2020-01-01 00:00:26.000 2020-01-02 03:45:26.000 26 99926 49976 5047576 26 99926 49976 5047576 -32543 32392 4555.009900990099 460056 -126 125 -2.297029702970297 -232 -260 101 10250 99161 0.78078 297.78078 149.28078 14928.07807 0.78078 297.7808 149.28077 14928.07799 0.78078 297.78078 149.28078 14928.07800 2020-01-01 2020-01-02 2020-01-01 00:04:20 2020-01-02 03:32:41 2020-01-01 00:04:20.000 2020-01-02 03:32:41.000 260 99161 49710.5 4971050 260 99161 49710.5 4971050 -32309 32626 5146.02 514602 -128 127 -2.14 -214 -261 101 10251 99162 0.78378 297.78378 149.28378 14928.37837 0.78378 297.78378 149.28378 14928.3783 0.78378 297.78378 149.28378 14928.37800 2020-01-01 2020-01-02 2020-01-01 00:04:21 2020-01-02 03:32:42 2020-01-01 00:04:21.000 2020-01-02 03:32:42.000 261 99162 49711.5 4971150 261 99162 49711.5 4971150 -32308 32627 5147.02 514702 -128 123 -3.7 -370 -262 101 10252 99163 0.78678 297.78678 149.28678 14928.67867 0.78678 297.78677 149.28678 14928.67861 0.78678 297.78678 149.28678 14928.67800 2020-01-01 2020-01-02 2020-01-01 00:04:22 2020-01-02 03:32:43 2020-01-01 00:04:22.000 2020-01-02 03:32:43.000 262 99163 49712.5 4971250 262 99163 49712.5 4971250 -32307 32628 5148.02 514802 -127 124 -2.7 -270 -263 101 10253 99164 0.78978 297.78978 149.28978 14928.97897 0.78978 297.7898 149.28979 14928.97923 0.78978 297.78978 149.28978 14928.97800 2020-01-01 2020-01-02 2020-01-01 00:04:23 2020-01-02 03:32:44 2020-01-01 00:04:23.000 2020-01-02 03:32:44.000 263 99164 49713.5 4971350 263 99164 49713.5 4971350 -32306 32629 5149.02 514902 -126 125 -1.7 -170 -264 101 10254 99165 0.79279 297.79279 149.29279 14929.27927 0.79279 297.7928 149.29278 14929.27888 0.79279 297.79279 149.29279 14929.27900 2020-01-01 2020-01-02 2020-01-01 00:04:24 2020-01-02 03:32:45 2020-01-01 00:04:24.000 2020-01-02 03:32:45.000 264 99165 49714.5 4971450 264 99165 49714.5 4971450 -32305 32630 5150.02 515002 -125 126 -0.7 -70 -265 101 10255 99166 0.79579 297.79579 149.29579 14929.57957 0.79579 297.7958 149.29579 14929.57962 0.79579 297.79579 149.29579 14929.57900 2020-01-01 2020-01-02 2020-01-01 00:04:25 2020-01-02 03:32:46 2020-01-01 00:04:25.000 2020-01-02 03:32:46.000 265 99166 49715.5 4971550 265 99166 49715.5 4971550 -32304 32631 5151.02 515102 -124 127 0.3 30 -266 101 10256 99167 0.79879 297.79879 149.29879 14929.87987 0.79879 297.7988 149.29879 14929.87977 0.79879 297.79879 149.29879 14929.87900 2020-01-01 2020-01-02 2020-01-01 00:04:26 2020-01-02 03:32:47 2020-01-01 00:04:26.000 2020-01-02 03:32:47.000 266 99167 49716.5 4971650 266 99167 49716.5 4971650 -32303 32632 5152.02 515202 -128 127 -1.26 -126 -267 101 10257 99168 0.8018 297.8018 149.3018 14930.18018 0.8018 297.8018 149.3018 14930.18012 0.80180 297.80180 149.30180 14930.18000 2020-01-01 2020-01-02 2020-01-01 00:04:27 2020-01-02 03:32:48 2020-01-01 00:04:27.000 2020-01-02 03:32:48.000 267 99168 49717.5 4971750 267 99168 49717.5 4971750 -32302 32633 5153.02 515302 -128 123 -2.82 -282 -268 101 10258 99169 0.8048 297.8048 149.3048 14930.48048 0.8048 297.8048 149.3048 14930.4807 0.80480 297.80480 149.30480 14930.48000 2020-01-01 2020-01-02 2020-01-01 00:04:28 2020-01-02 03:32:49 2020-01-01 00:04:28.000 2020-01-02 03:32:49.000 268 99169 49718.5 4971850 268 99169 49718.5 4971850 -32301 32634 5154.02 515402 -127 124 -1.82 -182 -269 101 10259 99170 0.8078 297.8078 149.3078 14930.78078 0.8078 297.8078 149.3078 14930.78035 0.80780 297.80780 149.30780 14930.78000 2020-01-01 2020-01-02 2020-01-01 00:04:29 2020-01-02 03:32:50 2020-01-01 00:04:29.000 2020-01-02 03:32:50.000 269 99170 49719.5 4971950 269 99170 49719.5 4971950 -32300 32635 5155.02 515502 -126 125 -0.82 -82 -27 102 10017 99927 0.08108 300.08108 150.08108 15158.18918 0.08108 300.0811 150.08108 15158.18936 0.08108 300.08108 150.08108 15158.18908 2020-01-01 2020-01-02 2020-01-01 00:00:27 2020-01-02 03:45:27 2020-01-01 00:00:27.000 2020-01-02 03:45:27.000 27 99927 49977 5047677 27 99927 49977 5047677 -32542 32393 4556.009900990099 460157 -125 126 -1.297029702970297 -131 -270 101 10260 99171 0.81081 297.81081 149.31081 14931.08108 0.81081 297.81082 149.31081 14931.08109 0.81081 297.81081 149.31081 14931.08100 2020-01-01 2020-01-02 2020-01-01 00:04:30 2020-01-02 03:32:51 2020-01-01 00:04:30.000 2020-01-02 03:32:51.000 270 99171 49720.5 4972050 270 99171 49720.5 4972050 -32299 32636 5156.02 515602 -125 126 0.18 18 -271 101 10261 99172 0.81381 297.81381 149.31381 14931.38138 0.81381 297.8138 149.31381 14931.38124 0.81381 297.81381 149.31381 14931.38100 2020-01-01 2020-01-02 2020-01-01 00:04:31 2020-01-02 03:32:52 2020-01-01 00:04:31.000 2020-01-02 03:32:52.000 271 99172 49721.5 4972150 271 99172 49721.5 4972150 -32298 32637 5157.02 515702 -124 127 1.18 118 -272 101 10262 99173 0.81681 297.81681 149.31681 14931.68168 0.81681 297.8168 149.31681 14931.68159 0.81681 297.81681 149.31681 14931.68100 2020-01-01 2020-01-02 2020-01-01 00:04:32 2020-01-02 03:32:53 2020-01-01 00:04:32.000 2020-01-02 03:32:53.000 272 99173 49722.5 4972250 272 99173 49722.5 4972250 -32297 32638 5158.02 515802 -128 127 -0.38 -38 -273 101 10263 99174 0.81981 297.81981 149.31981 14931.98198 0.81981 297.81982 149.31982 14931.98217 0.81981 297.81981 149.31981 14931.98100 2020-01-01 2020-01-02 2020-01-01 00:04:33 2020-01-02 03:32:54 2020-01-01 00:04:33.000 2020-01-02 03:32:54.000 273 99174 49723.5 4972350 273 99174 49723.5 4972350 -32296 32639 5159.02 515902 -128 127 -1.94 -194 -274 101 10264 99175 0.82282 297.82282 149.32282 14932.28228 0.82282 297.8228 149.32282 14932.28247 0.82282 297.82282 149.32282 14932.28200 2020-01-01 2020-01-02 2020-01-01 00:04:34 2020-01-02 03:32:55 2020-01-01 00:04:34.000 2020-01-02 03:32:55.000 274 99175 49724.5 4972450 274 99175 49724.5 4972450 -32295 32640 5160.02 516002 -128 124 -3.5 -350 -275 101 10265 99176 0.82582 297.82582 149.32582 14932.58258 0.82582 297.82584 149.32582 14932.58256 0.82582 297.82582 149.32582 14932.58200 2020-01-01 2020-01-02 2020-01-01 00:04:35 2020-01-02 03:32:56 2020-01-01 00:04:35.000 2020-01-02 03:32:56.000 275 99176 49725.5 4972550 275 99176 49725.5 4972550 -32294 32641 5161.02 516102 -127 125 -2.5 -250 -276 101 10266 99177 0.82882 297.82882 149.32882 14932.88288 0.82882 297.82883 149.32882 14932.88275 0.82882 297.82882 149.32882 14932.88200 2020-01-01 2020-01-02 2020-01-01 00:04:36 2020-01-02 03:32:57 2020-01-01 00:04:36.000 2020-01-02 03:32:57.000 276 99177 49726.5 4972650 276 99177 49726.5 4972650 -32293 32642 5162.02 516202 -126 126 -1.5 -150 -277 101 10267 99178 0.83183 297.83183 149.33183 14933.18318 0.83183 297.83182 149.33183 14933.18305 0.83183 297.83183 149.33183 14933.18300 2020-01-01 2020-01-02 2020-01-01 00:04:37 2020-01-02 03:32:58 2020-01-01 00:04:37.000 2020-01-02 03:32:58.000 277 99178 49727.5 4972750 277 99178 49727.5 4972750 -32292 32643 5163.02 516302 -125 127 -0.5 -50 -278 101 10268 99179 0.83483 297.83483 149.33483 14933.48348 0.83483 297.83484 149.33483 14933.48364 0.83483 297.83483 149.33483 14933.48300 2020-01-01 2020-01-02 2020-01-01 00:04:38 2020-01-02 03:32:59 2020-01-01 00:04:38.000 2020-01-02 03:32:59.000 278 99179 49728.5 4972850 278 99179 49728.5 4972850 -32291 32644 5164.02 516402 -128 127 -2.06 -206 -279 101 10269 99180 0.83783 297.83783 149.33783 14933.78378 0.83783 297.83783 149.33783 14933.78394 0.83783 297.83783 149.33783 14933.78300 2020-01-01 2020-01-02 2020-01-01 00:04:39 2020-01-02 03:33:00 2020-01-01 00:04:39.000 2020-01-02 03:33:00.000 279 99180 49729.5 4972950 279 99180 49729.5 4972950 -32290 32645 5165.02 516502 -128 127 -3.62 -362 -28 102 10018 99928 0.08408 300.08408 150.08408 15158.49249 0.08408 300.08408 150.08408 15158.49265 0.08408 300.08408 150.08408 15158.49208 2020-01-01 2020-01-02 2020-01-01 00:00:28 2020-01-02 03:45:28 2020-01-01 00:00:28.000 2020-01-02 03:45:28.000 28 99928 49978 5047778 28 99928 49978 5047778 -32541 32394 4557.009900990099 460258 -124 127 -0.297029702970297 -30 -280 101 10270 99181 0.84084 297.84084 149.34084 14934.08408 0.84084 297.84085 149.34084 14934.08403 0.84084 297.84084 149.34084 14934.08400 2020-01-01 2020-01-02 2020-01-01 00:04:40 2020-01-02 03:33:01 2020-01-01 00:04:40.000 2020-01-02 03:33:01.000 280 99181 49730.5 4973050 280 99181 49730.5 4973050 -32289 32646 5166.02 516602 -128 123 -5.18 -518 -281 101 10271 99182 0.84384 297.84384 149.34384 14934.38438 0.84384 297.84384 149.34384 14934.38421 0.84384 297.84384 149.34384 14934.38400 2020-01-01 2020-01-02 2020-01-01 00:04:41 2020-01-02 03:33:02 2020-01-01 00:04:41.000 2020-01-02 03:33:02.000 281 99182 49731.5 4973150 281 99182 49731.5 4973150 -32288 32647 5167.02 516702 -127 124 -4.18 -418 -282 101 10272 99183 0.84684 297.84684 149.34684 14934.68468 0.84684 297.84683 149.34684 14934.68453 0.84684 297.84684 149.34684 14934.68400 2020-01-01 2020-01-02 2020-01-01 00:04:42 2020-01-02 03:33:03 2020-01-01 00:04:42.000 2020-01-02 03:33:03.000 282 99183 49732.5 4973250 282 99183 49732.5 4973250 -32287 32648 5168.02 516802 -126 125 -3.18 -318 -283 101 10273 99184 0.84984 297.84984 149.34984 14934.98498 0.84984 297.84985 149.34985 14934.98526 0.84984 297.84984 149.34984 14934.98400 2020-01-01 2020-01-02 2020-01-01 00:04:43 2020-01-02 03:33:04 2020-01-01 00:04:43.000 2020-01-02 03:33:04.000 283 99184 49733.5 4973350 283 99184 49733.5 4973350 -32286 32649 5169.02 516902 -125 126 -2.18 -218 -284 101 10274 99185 0.85285 297.85285 149.35285 14935.28528 0.85285 297.85284 149.35285 14935.28542 0.85285 297.85285 149.35285 14935.28500 2020-01-01 2020-01-02 2020-01-01 00:04:44 2020-01-02 03:33:05 2020-01-01 00:04:44.000 2020-01-02 03:33:05.000 284 99185 49734.5 4973450 284 99185 49734.5 4973450 -32285 32650 5170.02 517002 -124 127 -1.18 -118 -285 101 10275 99186 0.85585 297.85585 149.35585 14935.58558 0.85585 297.85587 149.35585 14935.5855 0.85585 297.85585 149.35585 14935.58500 2020-01-01 2020-01-02 2020-01-01 00:04:45 2020-01-02 03:33:06 2020-01-01 00:04:45.000 2020-01-02 03:33:06.000 285 99186 49735.5 4973550 285 99186 49735.5 4973550 -32284 32651 5171.02 517102 -128 127 -2.74 -274 -286 101 10276 99187 0.85885 297.85885 149.35885 14935.88588 0.85885 297.85886 149.35885 14935.88568 0.85885 297.85885 149.35885 14935.88500 2020-01-01 2020-01-02 2020-01-01 00:04:46 2020-01-02 03:33:07 2020-01-01 00:04:46.000 2020-01-02 03:33:07.000 286 99187 49736.5 4973650 286 99187 49736.5 4973650 -32283 32652 5172.02 517202 -128 123 -4.3 -430 -287 101 10277 99188 0.86186 297.86186 149.36186 14936.18618 0.86186 297.86185 149.36186 14936.186 0.86186 297.86186 149.36186 14936.18600 2020-01-01 2020-01-02 2020-01-01 00:04:47 2020-01-02 03:33:08 2020-01-01 00:04:47.000 2020-01-02 03:33:08.000 287 99188 49737.5 4973750 287 99188 49737.5 4973750 -32282 32653 5173.02 517302 -127 124 -3.3 -330 -288 101 10278 99189 0.86486 297.86486 149.36486 14936.48648 0.86486 297.86487 149.36486 14936.48673 0.86486 297.86486 149.36486 14936.48600 2020-01-01 2020-01-02 2020-01-01 00:04:48 2020-01-02 03:33:09 2020-01-01 00:04:48.000 2020-01-02 03:33:09.000 288 99189 49738.5 4973850 288 99189 49738.5 4973850 -32281 32654 5174.02 517402 -126 125 -2.3 -230 -289 101 10279 99190 0.86786 297.86786 149.36786 14936.78678 0.86786 297.86786 149.36786 14936.78688 0.86786 297.86786 149.36786 14936.78600 2020-01-01 2020-01-02 2020-01-01 00:04:49 2020-01-02 03:33:10 2020-01-01 00:04:49.000 2020-01-02 03:33:10.000 289 99190 49739.5 4973950 289 99190 49739.5 4973950 -32280 32655 5175.02 517502 -125 126 -1.3 -130 -29 102 10019 99929 0.08708 300.08708 150.08708 15158.79579 0.08708 300.0871 150.08708 15158.79576 0.08708 300.08708 150.08708 15158.79508 2020-01-01 2020-01-02 2020-01-01 00:00:29 2020-01-02 03:45:29 2020-01-01 00:00:29.000 2020-01-02 03:45:29.000 29 99929 49979 5047879 29 99929 49979 5047879 -32540 32395 4558.009900990099 460359 -128 127 -1.8316831683168318 -185 -290 101 10280 99191 0.87087 297.87087 149.37087 14937.08708 0.87087 297.87088 149.37087 14937.087 0.87087 297.87087 149.37087 14937.08700 2020-01-01 2020-01-02 2020-01-01 00:04:50 2020-01-02 03:33:11 2020-01-01 00:04:50.000 2020-01-02 03:33:11.000 290 99191 49740.5 4974050 290 99191 49740.5 4974050 -32279 32656 5176.02 517602 -124 127 -0.3 -30 -291 101 10281 99192 0.87387 297.87387 149.37387 14937.38738 0.87387 297.87387 149.37387 14937.38716 0.87387 297.87387 149.37387 14937.38700 2020-01-01 2020-01-02 2020-01-01 00:04:51 2020-01-02 03:33:12 2020-01-01 00:04:51.000 2020-01-02 03:33:12.000 291 99192 49741.5 4974150 291 99192 49741.5 4974150 -32278 32657 5177.02 517702 -128 127 -1.86 -186 -292 101 10282 99193 0.87687 297.87687 149.37687 14937.68768 0.87687 297.8769 149.37687 14937.68789 0.87687 297.87687 149.37687 14937.68700 2020-01-01 2020-01-02 2020-01-01 00:04:52 2020-01-02 03:33:13 2020-01-01 00:04:52.000 2020-01-02 03:33:13.000 292 99193 49742.5 4974250 292 99193 49742.5 4974250 -32277 32658 5178.02 517802 -128 123 -3.42 -342 -293 101 10283 99194 0.87987 297.87987 149.37987 14937.98798 0.87987 297.87988 149.37988 14937.9882 0.87987 297.87987 149.37987 14937.98700 2020-01-01 2020-01-02 2020-01-01 00:04:53 2020-01-02 03:33:14 2020-01-01 00:04:53.000 2020-01-02 03:33:14.000 293 99194 49743.5 4974350 293 99194 49743.5 4974350 -32276 32659 5179.02 517902 -127 124 -2.42 -242 -294 101 10284 99195 0.88288 297.88288 149.38288 14938.28828 0.88288 297.88287 149.38288 14938.28835 0.88288 297.88288 149.38288 14938.28800 2020-01-01 2020-01-02 2020-01-01 00:04:54 2020-01-02 03:33:15 2020-01-01 00:04:54.000 2020-01-02 03:33:15.000 294 99195 49744.5 4974450 294 99195 49744.5 4974450 -32275 32660 5180.02 518002 -126 125 -1.42 -142 -295 101 10285 99196 0.88588 297.88588 149.38588 14938.58858 0.88588 297.8859 149.38588 14938.58847 0.88588 297.88588 149.38588 14938.58800 2020-01-01 2020-01-02 2020-01-01 00:04:55 2020-01-02 03:33:16 2020-01-01 00:04:55.000 2020-01-02 03:33:16.000 295 99196 49745.5 4974550 295 99196 49745.5 4974550 -32274 32661 5181.02 518102 -125 126 -0.42 -42 -296 101 10286 99197 0.88888 297.88888 149.38888 14938.88888 0.88888 297.8889 149.38888 14938.88863 0.88888 297.88888 149.38888 14938.88800 2020-01-01 2020-01-02 2020-01-01 00:04:56 2020-01-02 03:33:17 2020-01-01 00:04:56.000 2020-01-02 03:33:17.000 296 99197 49746.5 4974650 296 99197 49746.5 4974650 -32273 32662 5182.02 518202 -124 127 0.58 58 -297 101 10287 99198 0.89189 297.89189 149.39189 14939.18918 0.89189 297.8919 149.39189 14939.18936 0.89189 297.89189 149.39189 14939.18900 2020-01-01 2020-01-02 2020-01-01 00:04:57 2020-01-02 03:33:18 2020-01-01 00:04:57.000 2020-01-02 03:33:18.000 297 99198 49747.5 4974750 297 99198 49747.5 4974750 -32272 32663 5183.02 518302 -128 127 -0.98 -98 -298 101 10288 99199 0.89489 297.89489 149.39489 14939.48948 0.89489 297.8949 149.39489 14939.48967 0.89489 297.89489 149.39489 14939.48900 2020-01-01 2020-01-02 2020-01-01 00:04:58 2020-01-02 03:33:19 2020-01-01 00:04:58.000 2020-01-02 03:33:19.000 298 99199 49748.5 4974850 298 99199 49748.5 4974850 -32271 32664 5184.02 518402 -128 127 -2.54 -254 -299 101 10289 99200 0.89789 297.89789 149.39789 14939.78978 0.89789 297.8979 149.39789 14939.78986 0.89789 297.89789 149.39789 14939.78900 2020-01-01 2020-01-02 2020-01-01 00:04:59 2020-01-02 03:33:20 2020-01-01 00:04:59.000 2020-01-02 03:33:20.000 299 99200 49749.5 4974950 299 99200 49749.5 4974950 -32270 32665 5185.02 518502 -128 124 -4.1 -410 -3 102 1002 9993 0.009 300.009 150.009 15150.9099 0.009 300.009 150.009 15150.90958 0.00900 300.00900 150.00900 15150.90900 2020-01-01 2020-01-02 2020-01-01 00:00:03 2020-01-02 03:45:03 2020-01-01 00:00:03.000 2020-01-02 03:45:03.000 3 99903 49953 5045253 3 99903 49953 5045253 -32566 32369 4532.009900990099 457733 -124 127 0.04950495049504951 5 -30 102 10020 99930 0.09009 300.09009 150.09009 15159.09909 0.09009 300.0901 150.09008 15159.09894 0.09009 300.09009 150.09009 15159.09909 2020-01-01 2020-01-02 2020-01-01 00:00:30 2020-01-02 03:45:30 2020-01-01 00:00:30.000 2020-01-02 03:45:30.000 30 99930 49980 5047980 30 99930 49980 5047980 -32539 32396 4559.009900990099 460460 -128 123 -3.366336633663366 -340 -300 101 10290 99201 0.9009 297.9009 149.4009 14940.09009 0.9009 297.9009 149.40089 14940.08995 0.90090 297.90090 149.40090 14940.09000 2020-01-01 2020-01-02 2020-01-01 00:05:00 2020-01-02 03:33:21 2020-01-01 00:05:00.000 2020-01-02 03:33:21.000 300 99201 49750.5 4975050 300 99201 49750.5 4975050 -32269 32666 5186.02 518602 -127 125 -3.1 -310 -301 101 10291 99202 0.9039 297.9039 149.4039 14940.39039 0.9039 297.9039 149.4039 14940.39009 0.90390 297.90390 149.40390 14940.39000 2020-01-01 2020-01-02 2020-01-01 00:05:01 2020-01-02 03:33:22 2020-01-01 00:05:01.000 2020-01-02 03:33:22.000 301 99202 49751.5 4975150 301 99202 49751.5 4975150 -32268 32667 5187.02 518702 -126 126 -2.1 -210 -302 101 10292 99203 0.9069 297.9069 149.4069 14940.69069 0.9069 297.90692 149.4069 14940.69083 0.90690 297.90690 149.40690 14940.69000 2020-01-01 2020-01-02 2020-01-01 00:05:02 2020-01-02 03:33:23 2020-01-01 00:05:02.000 2020-01-02 03:33:23.000 302 99203 49752.5 4975250 302 99203 49752.5 4975250 -32267 32668 5188.02 518802 -125 127 -1.1 -110 -303 101 10293 99204 0.9099 297.9099 149.4099 14940.99099 0.9099 297.9099 149.40991 14940.99114 0.90990 297.90990 149.40990 14940.99000 2020-01-01 2020-01-02 2020-01-01 00:05:03 2020-01-02 03:33:24 2020-01-01 00:05:03.000 2020-01-02 03:33:24.000 303 99204 49753.5 4975350 303 99204 49753.5 4975350 -32266 32669 5189.02 518902 -128 127 -2.66 -266 -304 101 10294 99205 0.91291 297.91291 149.41291 14941.29129 0.91291 297.9129 149.41291 14941.29133 0.91291 297.91291 149.41291 14941.29100 2020-01-01 2020-01-02 2020-01-01 00:05:04 2020-01-02 03:33:25 2020-01-01 00:05:04.000 2020-01-02 03:33:25.000 304 99205 49754.5 4975450 304 99205 49754.5 4975450 -32265 32670 5190.02 519002 -128 127 -4.22 -422 -305 101 10295 99206 0.91591 297.91591 149.41591 14941.59159 0.91591 297.91592 149.41591 14941.59141 0.91591 297.91591 149.41591 14941.59100 2020-01-01 2020-01-02 2020-01-01 00:05:05 2020-01-02 03:33:26 2020-01-01 00:05:05.000 2020-01-02 03:33:26.000 305 99206 49755.5 4975550 305 99206 49755.5 4975550 -32264 32671 5191.02 519102 -128 123 -5.78 -578 -306 101 10296 99207 0.91891 297.91891 149.41891 14941.89189 0.91891 297.9189 149.41891 14941.89172 0.91891 297.91891 149.41891 14941.89100 2020-01-01 2020-01-02 2020-01-01 00:05:06 2020-01-02 03:33:27 2020-01-01 00:05:06.000 2020-01-02 03:33:27.000 306 99207 49756.5 4975650 306 99207 49756.5 4975650 -32263 32672 5192.02 519202 -127 124 -4.78 -478 -307 101 10297 99208 0.92192 297.92192 149.42192 14942.19219 0.92192 297.92194 149.42192 14942.1923 0.92192 297.92192 149.42192 14942.19200 2020-01-01 2020-01-02 2020-01-01 00:05:07 2020-01-02 03:33:28 2020-01-01 00:05:07.000 2020-01-02 03:33:28.000 307 99208 49757.5 4975750 307 99208 49757.5 4975750 -32262 32673 5193.02 519302 -126 125 -3.78 -378 -308 101 10298 99209 0.92492 297.92492 149.42492 14942.49249 0.92492 297.92493 149.42492 14942.49265 0.92492 297.92492 149.42492 14942.49200 2020-01-01 2020-01-02 2020-01-01 00:05:08 2020-01-02 03:33:29 2020-01-01 00:05:08.000 2020-01-02 03:33:29.000 308 99209 49758.5 4975850 308 99209 49758.5 4975850 -32261 32674 5194.02 519402 -125 126 -2.78 -278 -309 101 10299 99210 0.92792 297.92792 149.42792 14942.79279 0.92792 297.92792 149.42792 14942.7928 0.92792 297.92792 149.42792 14942.79200 2020-01-01 2020-01-02 2020-01-01 00:05:09 2020-01-02 03:33:30 2020-01-01 00:05:09.000 2020-01-02 03:33:30.000 309 99210 49759.5 4975950 309 99210 49759.5 4975950 -32260 32675 5195.02 519502 -124 127 -1.78 -178 -31 102 10021 99931 0.09309 300.09309 150.09309 15159.4024 0.09309 300.09308 150.09309 15159.40224 0.09309 300.09309 150.09309 15159.40209 2020-01-01 2020-01-02 2020-01-01 00:00:31 2020-01-02 03:45:31 2020-01-01 00:00:31.000 2020-01-02 03:45:31.000 31 99931 49981 5048081 31 99931 49981 5048081 -32538 32397 4560.009900990099 460561 -127 124 -2.366336633663366 -239 -310 101 10300 99211 0.93093 297.93093 149.43093 14943.09309 0.93093 297.93094 149.43092 14943.09288 0.93093 297.93093 149.43093 14943.09300 2020-01-01 2020-01-02 2020-01-01 00:05:10 2020-01-02 03:33:31 2020-01-01 00:05:10.000 2020-01-02 03:33:31.000 310 99211 49760.5 4976050 310 99211 49760.5 4976050 -32259 32676 5196.02 519602 -128 127 -3.34 -334 -311 101 10301 99212 0.93393 297.93393 149.43393 14943.39339 0.93393 297.93393 149.43393 14943.39319 0.93393 297.93393 149.43393 14943.39300 2020-01-01 2020-01-02 2020-01-01 00:05:11 2020-01-02 03:33:32 2020-01-01 00:05:11.000 2020-01-02 03:33:32.000 311 99212 49761.5 4976150 311 99212 49761.5 4976150 -32258 32677 5197.02 519702 -128 123 -4.9 -490 -312 101 10302 99213 0.93693 297.93693 149.43693 14943.69369 0.93693 297.93695 149.43693 14943.69377 0.93693 297.93693 149.43693 14943.69300 2020-01-01 2020-01-02 2020-01-01 00:05:12 2020-01-02 03:33:33 2020-01-01 00:05:12.000 2020-01-02 03:33:33.000 312 99213 49762.5 4976250 312 99213 49762.5 4976250 -32257 32678 5198.02 519802 -127 124 -3.9 -390 -313 101 10303 99214 0.93993 297.93993 149.43993 14943.99399 0.93993 297.93994 149.43994 14943.99412 0.93993 297.93993 149.43993 14943.99300 2020-01-01 2020-01-02 2020-01-01 00:05:13 2020-01-02 03:33:34 2020-01-01 00:05:13.000 2020-01-02 03:33:34.000 313 99214 49763.5 4976350 313 99214 49763.5 4976350 -32256 32679 5199.02 519902 -126 125 -2.9 -290 -314 101 10304 99215 0.94294 297.94294 149.44294 14944.29429 0.94294 297.94293 149.44294 14944.29427 0.94294 297.94294 149.44294 14944.29400 2020-01-01 2020-01-02 2020-01-01 00:05:14 2020-01-02 03:33:35 2020-01-01 00:05:14.000 2020-01-02 03:33:35.000 314 99215 49764.5 4976450 314 99215 49764.5 4976450 -32255 32680 5200.02 520002 -125 126 -1.9 -190 -315 101 10305 99216 0.94594 297.94594 149.44594 14944.59459 0.94594 297.94595 149.44595 14944.595 0.94594 297.94594 149.44594 14944.59400 2020-01-01 2020-01-02 2020-01-01 00:05:15 2020-01-02 03:33:36 2020-01-01 00:05:15.000 2020-01-02 03:33:36.000 315 99216 49765.5 4976550 315 99216 49765.5 4976550 -32254 32681 5201.02 520102 -124 127 -0.9 -90 -316 101 10306 99217 0.94894 297.94894 149.44894 14944.89489 0.94894 297.94894 149.44894 14944.89466 0.94894 297.94894 149.44894 14944.89400 2020-01-01 2020-01-02 2020-01-01 00:05:16 2020-01-02 03:33:37 2020-01-01 00:05:16.000 2020-01-02 03:33:37.000 316 99217 49766.5 4976650 316 99217 49766.5 4976650 -32253 32682 5202.02 520202 -128 127 -2.46 -246 -317 101 10307 99218 0.95195 297.95195 149.45195 14945.19519 0.95195 297.95197 149.45195 14945.19524 0.95195 297.95195 149.45195 14945.19500 2020-01-01 2020-01-02 2020-01-01 00:05:17 2020-01-02 03:33:38 2020-01-01 00:05:17.000 2020-01-02 03:33:38.000 317 99218 49767.5 4976750 317 99218 49767.5 4976750 -32252 32683 5203.02 520302 -128 123 -4.02 -402 -318 101 10308 99219 0.95495 297.95495 149.45495 14945.49549 0.95495 297.95496 149.45495 14945.49558 0.95495 297.95495 149.45495 14945.49500 2020-01-01 2020-01-02 2020-01-01 00:05:18 2020-01-02 03:33:39 2020-01-01 00:05:18.000 2020-01-02 03:33:39.000 318 99219 49768.5 4976850 318 99219 49768.5 4976850 -32251 32684 5204.02 520402 -127 124 -3.02 -302 -319 101 10309 99220 0.95795 297.95795 149.45795 14945.79579 0.95795 297.95795 149.45795 14945.79574 0.95795 297.95795 149.45795 14945.79500 2020-01-01 2020-01-02 2020-01-01 00:05:19 2020-01-02 03:33:40 2020-01-01 00:05:19.000 2020-01-02 03:33:40.000 319 99220 49769.5 4976950 319 99220 49769.5 4976950 -32250 32685 5205.02 520502 -126 125 -2.02 -202 -32 102 10022 99932 0.09609 300.09609 150.09609 15159.7057 0.09609 300.0961 150.09609 15159.706 0.09609 300.09609 150.09609 15159.70509 2020-01-01 2020-01-02 2020-01-01 00:00:32 2020-01-02 03:45:32 2020-01-01 00:00:32.000 2020-01-02 03:45:32.000 32 99932 49982 5048182 32 99932 49982 5048182 -32537 32398 4561.009900990099 460662 -126 125 -1.3663366336633664 -138 -320 101 10310 99221 0.96096 297.96096 149.46096 14946.09609 0.96096 297.96097 149.46096 14946.09647 0.96096 297.96096 149.46096 14946.09600 2020-01-01 2020-01-02 2020-01-01 00:05:20 2020-01-02 03:33:41 2020-01-01 00:05:20.000 2020-01-02 03:33:41.000 320 99221 49770.5 4977050 320 99221 49770.5 4977050 -32249 32686 5206.02 520602 -125 126 -1.02 -102 -321 101 10311 99222 0.96396 297.96396 149.46396 14946.39639 0.96396 297.96396 149.46396 14946.39613 0.96396 297.96396 149.46396 14946.39600 2020-01-01 2020-01-02 2020-01-01 00:05:21 2020-01-02 03:33:42 2020-01-01 00:05:21.000 2020-01-02 03:33:42.000 321 99222 49771.5 4977150 321 99222 49771.5 4977150 -32248 32687 5207.02 520702 -124 127 -0.02 -2 -322 101 10312 99223 0.96696 297.96696 149.46696 14946.69669 0.96696 297.96698 149.46696 14946.69674 0.96696 297.96696 149.46696 14946.69600 2020-01-01 2020-01-02 2020-01-01 00:05:22 2020-01-02 03:33:43 2020-01-01 00:05:22.000 2020-01-02 03:33:43.000 322 99223 49772.5 4977250 322 99223 49772.5 4977250 -32247 32688 5208.02 520802 -128 127 -1.58 -158 -323 101 10313 99224 0.96996 297.96996 149.46996 14946.99699 0.96997 297.96997 149.46997 14946.99706 0.96996 297.96996 149.46996 14946.99600 2020-01-01 2020-01-02 2020-01-01 00:05:23 2020-01-02 03:33:44 2020-01-01 00:05:23.000 2020-01-02 03:33:44.000 323 99224 49773.5 4977350 323 99224 49773.5 4977350 -32246 32689 5209.02 520902 -128 123 -3.14 -314 -324 101 10314 99225 0.97297 297.97297 149.47297 14947.29729 0.97297 297.97296 149.47297 14947.29737 0.97297 297.97297 149.47297 14947.29700 2020-01-01 2020-01-02 2020-01-01 00:05:24 2020-01-02 03:33:45 2020-01-01 00:05:24.000 2020-01-02 03:33:45.000 324 99225 49774.5 4977450 324 99225 49774.5 4977450 -32245 32690 5210.02 521002 -127 124 -2.14 -214 +259 101 10249 99160 0.77777 297.77777 149.27777 14927.77777 0.77777 297.77777 149.27777 14927.77742 0.77777 297.77777 149.27777000000003 14927.77700 2020-01-01 2020-01-02 2020-01-01 00:04:19 2020-01-02 03:32:40 2020-01-01 00:04:19.000 2020-01-02 03:32:40.000 259 99160 49709.5 4970950 259 99160 49709.5 4970950 -32310 32625 5145.02 514502 -124 127 -0.58 -58 +26 102 10016 99926 0.07807 300.07807 150.07807 15157.88588 0.07807 300.07806 150.07807 15157.88575 0.07807 300.07807 150.07806999999985 15157.88507 2020-01-01 2020-01-02 2020-01-01 00:00:26 2020-01-02 03:45:26 2020-01-01 00:00:26.000 2020-01-02 03:45:26.000 26 99926 49976 5047576 26 99926 49976 5047576 -32543 32392 4555.009900990099 460056 -126 125 -2.297029702970297 -232 +260 101 10250 99161 0.78078 297.78078 149.28078 14928.07807 0.78078 297.7808 149.28077 14928.07799 0.78078 297.78078 149.2807799999999 14928.07800 2020-01-01 2020-01-02 2020-01-01 00:04:20 2020-01-02 03:32:41 2020-01-01 00:04:20.000 2020-01-02 03:32:41.000 260 99161 49710.5 4971050 260 99161 49710.5 4971050 -32309 32626 5146.02 514602 -128 127 -2.14 -214 +261 101 10251 99162 0.78378 297.78378 149.28378 14928.37837 0.78378 297.78378 149.28378 14928.3783 0.78378 297.78378 149.28377999999992 14928.37800 2020-01-01 2020-01-02 2020-01-01 00:04:21 2020-01-02 03:32:42 2020-01-01 00:04:21.000 2020-01-02 03:32:42.000 261 99162 49711.5 4971150 261 99162 49711.5 4971150 -32308 32627 5147.02 514702 -128 123 -3.7 -370 +262 101 10252 99163 0.78678 297.78678 149.28678 14928.67867 0.78678 297.78677 149.28678 14928.67861 0.78678 297.78678 149.28678000000008 14928.67800 2020-01-01 2020-01-02 2020-01-01 00:04:22 2020-01-02 03:32:43 2020-01-01 00:04:22.000 2020-01-02 03:32:43.000 262 99163 49712.5 4971250 262 99163 49712.5 4971250 -32307 32628 5148.02 514802 -127 124 -2.7 -270 +263 101 10253 99164 0.78978 297.78978 149.28978 14928.97897 0.78978 297.7898 149.28979 14928.97923 0.78978 297.78978 149.28977999999992 14928.97800 2020-01-01 2020-01-02 2020-01-01 00:04:23 2020-01-02 03:32:44 2020-01-01 00:04:23.000 2020-01-02 03:32:44.000 263 99164 49713.5 4971350 263 99164 49713.5 4971350 -32306 32629 5149.02 514902 -126 125 -1.7 -170 +264 101 10254 99165 0.79279 297.79279 149.29279 14929.27927 0.79279 297.7928 149.29278 14929.27888 0.79279 297.79279 149.29279000000002 14929.27900 2020-01-01 2020-01-02 2020-01-01 00:04:24 2020-01-02 03:32:45 2020-01-01 00:04:24.000 2020-01-02 03:32:45.000 264 99165 49714.5 4971450 264 99165 49714.5 4971450 -32305 32630 5150.02 515002 -125 126 -0.7 -70 +265 101 10255 99166 0.79579 297.79579 149.29579 14929.57957 0.79579 297.7958 149.29579 14929.57962 0.79579 297.79579 149.29579000000007 14929.57900 2020-01-01 2020-01-02 2020-01-01 00:04:25 2020-01-02 03:32:46 2020-01-01 00:04:25.000 2020-01-02 03:32:46.000 265 99166 49715.5 4971550 265 99166 49715.5 4971550 -32304 32631 5151.02 515102 -124 127 0.3 30 +266 101 10256 99167 0.79879 297.79879 149.29879 14929.87987 0.79879 297.7988 149.29879 14929.87977 0.79879 297.79879 149.29879000000003 14929.87900 2020-01-01 2020-01-02 2020-01-01 00:04:26 2020-01-02 03:32:47 2020-01-01 00:04:26.000 2020-01-02 03:32:47.000 266 99167 49716.5 4971650 266 99167 49716.5 4971650 -32303 32632 5152.02 515202 -128 127 -1.26 -126 +267 101 10257 99168 0.8018 297.8018 149.3018 14930.18018 0.8018 297.8018 149.3018 14930.18012 0.80180 297.80180 149.3018 14930.18000 2020-01-01 2020-01-02 2020-01-01 00:04:27 2020-01-02 03:32:48 2020-01-01 00:04:27.000 2020-01-02 03:32:48.000 267 99168 49717.5 4971750 267 99168 49717.5 4971750 -32302 32633 5153.02 515302 -128 123 -2.82 -282 +268 101 10258 99169 0.8048 297.8048 149.3048 14930.48048 0.8048 297.8048 149.3048 14930.4807 0.80480 297.80480 149.30479999999994 14930.48000 2020-01-01 2020-01-02 2020-01-01 00:04:28 2020-01-02 03:32:49 2020-01-01 00:04:28.000 2020-01-02 03:32:49.000 268 99169 49718.5 4971850 268 99169 49718.5 4971850 -32301 32634 5154.02 515402 -127 124 -1.82 -182 +269 101 10259 99170 0.8078 297.8078 149.3078 14930.78078 0.8078 297.8078 149.3078 14930.78035 0.80780 297.80780 149.30780000000001 14930.78000 2020-01-01 2020-01-02 2020-01-01 00:04:29 2020-01-02 03:32:50 2020-01-01 00:04:29.000 2020-01-02 03:32:50.000 269 99170 49719.5 4971950 269 99170 49719.5 4971950 -32300 32635 5155.02 515502 -126 125 -0.82 -82 +27 102 10017 99927 0.08108 300.08108 150.08108 15158.18918 0.08108 300.0811 150.08108 15158.18936 0.08108 300.08108 150.08107999999996 15158.18908 2020-01-01 2020-01-02 2020-01-01 00:00:27 2020-01-02 03:45:27 2020-01-01 00:00:27.000 2020-01-02 03:45:27.000 27 99927 49977 5047677 27 99927 49977 5047677 -32542 32393 4556.009900990099 460157 -125 126 -1.297029702970297 -131 +270 101 10260 99171 0.81081 297.81081 149.31081 14931.08108 0.81081 297.81082 149.31081 14931.08109 0.81081 297.81081 149.31081000000023 14931.08100 2020-01-01 2020-01-02 2020-01-01 00:04:30 2020-01-02 03:32:51 2020-01-01 00:04:30.000 2020-01-02 03:32:51.000 270 99171 49720.5 4972050 270 99171 49720.5 4972050 -32299 32636 5156.02 515602 -125 126 0.18 18 +271 101 10261 99172 0.81381 297.81381 149.31381 14931.38138 0.81381 297.8138 149.31381 14931.38124 0.81381 297.81381 149.3138099999998 14931.38100 2020-01-01 2020-01-02 2020-01-01 00:04:31 2020-01-02 03:32:52 2020-01-01 00:04:31.000 2020-01-02 03:32:52.000 271 99172 49721.5 4972150 271 99172 49721.5 4972150 -32298 32637 5157.02 515702 -124 127 1.18 118 +272 101 10262 99173 0.81681 297.81681 149.31681 14931.68168 0.81681 297.8168 149.31681 14931.68159 0.81681 297.81681 149.31681000000015 14931.68100 2020-01-01 2020-01-02 2020-01-01 00:04:32 2020-01-02 03:32:53 2020-01-01 00:04:32.000 2020-01-02 03:32:53.000 272 99173 49722.5 4972250 272 99173 49722.5 4972250 -32297 32638 5158.02 515802 -128 127 -0.38 -38 +273 101 10263 99174 0.81981 297.81981 149.31981 14931.98198 0.81981 297.81982 149.31982 14931.98217 0.81981 297.81981 149.31981000000025 14931.98100 2020-01-01 2020-01-02 2020-01-01 00:04:33 2020-01-02 03:32:54 2020-01-01 00:04:33.000 2020-01-02 03:32:54.000 273 99174 49723.5 4972350 273 99174 49723.5 4972350 -32296 32639 5159.02 515902 -128 127 -1.94 -194 +274 101 10264 99175 0.82282 297.82282 149.32282 14932.28228 0.82282 297.8228 149.32282 14932.28247 0.82282 297.82282 149.3228199999999 14932.28200 2020-01-01 2020-01-02 2020-01-01 00:04:34 2020-01-02 03:32:55 2020-01-01 00:04:34.000 2020-01-02 03:32:55.000 274 99175 49724.5 4972450 274 99175 49724.5 4972450 -32295 32640 5160.02 516002 -128 124 -3.5 -350 +275 101 10265 99176 0.82582 297.82582 149.32582 14932.58258 0.82582 297.82584 149.32582 14932.58256 0.82582 297.82582 149.32582000000002 14932.58200 2020-01-01 2020-01-02 2020-01-01 00:04:35 2020-01-02 03:32:56 2020-01-01 00:04:35.000 2020-01-02 03:32:56.000 275 99176 49725.5 4972550 275 99176 49725.5 4972550 -32294 32641 5161.02 516102 -127 125 -2.5 -250 +276 101 10266 99177 0.82882 297.82882 149.32882 14932.88288 0.82882 297.82883 149.32882 14932.88275 0.82882 297.82882 149.32882000000015 14932.88200 2020-01-01 2020-01-02 2020-01-01 00:04:36 2020-01-02 03:32:57 2020-01-01 00:04:36.000 2020-01-02 03:32:57.000 276 99177 49726.5 4972650 276 99177 49726.5 4972650 -32293 32642 5162.02 516202 -126 126 -1.5 -150 +277 101 10267 99178 0.83183 297.83183 149.33183 14933.18318 0.83183 297.83182 149.33183 14933.18305 0.83183 297.83183 149.3318299999998 14933.18300 2020-01-01 2020-01-02 2020-01-01 00:04:37 2020-01-02 03:32:58 2020-01-01 00:04:37.000 2020-01-02 03:32:58.000 277 99178 49727.5 4972750 277 99178 49727.5 4972750 -32292 32643 5163.02 516302 -125 127 -0.5 -50 +278 101 10268 99179 0.83483 297.83483 149.33483 14933.48348 0.83483 297.83484 149.33483 14933.48364 0.83483 297.83483 149.3348299999998 14933.48300 2020-01-01 2020-01-02 2020-01-01 00:04:38 2020-01-02 03:32:59 2020-01-01 00:04:38.000 2020-01-02 03:32:59.000 278 99179 49728.5 4972850 278 99179 49728.5 4972850 -32291 32644 5164.02 516402 -128 127 -2.06 -206 +279 101 10269 99180 0.83783 297.83783 149.33783 14933.78378 0.83783 297.83783 149.33783 14933.78394 0.83783 297.83783 149.33783000000025 14933.78300 2020-01-01 2020-01-02 2020-01-01 00:04:39 2020-01-02 03:33:00 2020-01-01 00:04:39.000 2020-01-02 03:33:00.000 279 99180 49729.5 4972950 279 99180 49729.5 4972950 -32290 32645 5165.02 516502 -128 127 -3.62 -362 +28 102 10018 99928 0.08408 300.08408 150.08408 15158.49249 0.08408 300.08408 150.08408 15158.49265 0.08408 300.08408 150.08408000000003 15158.49208 2020-01-01 2020-01-02 2020-01-01 00:00:28 2020-01-02 03:45:28 2020-01-01 00:00:28.000 2020-01-02 03:45:28.000 28 99928 49978 5047778 28 99928 49978 5047778 -32541 32394 4557.009900990099 460258 -124 127 -0.297029702970297 -30 +280 101 10270 99181 0.84084 297.84084 149.34084 14934.08408 0.84084 297.84085 149.34084 14934.08403 0.84084 297.84084 149.34084000000016 14934.08400 2020-01-01 2020-01-02 2020-01-01 00:04:40 2020-01-02 03:33:01 2020-01-01 00:04:40.000 2020-01-02 03:33:01.000 280 99181 49730.5 4973050 280 99181 49730.5 4973050 -32289 32646 5166.02 516602 -128 123 -5.18 -518 +281 101 10271 99182 0.84384 297.84384 149.34384 14934.38438 0.84384 297.84384 149.34384 14934.38421 0.84384 297.84384 149.3438399999997 14934.38400 2020-01-01 2020-01-02 2020-01-01 00:04:41 2020-01-02 03:33:02 2020-01-01 00:04:41.000 2020-01-02 03:33:02.000 281 99182 49731.5 4973150 281 99182 49731.5 4973150 -32288 32647 5167.02 516702 -127 124 -4.18 -418 +282 101 10272 99183 0.84684 297.84684 149.34684 14934.68468 0.84684 297.84683 149.34684 14934.68453 0.84684 297.84684 149.34684000000013 14934.68400 2020-01-01 2020-01-02 2020-01-01 00:04:42 2020-01-02 03:33:03 2020-01-01 00:04:42.000 2020-01-02 03:33:03.000 282 99183 49732.5 4973250 282 99183 49732.5 4973250 -32287 32648 5168.02 516802 -126 125 -3.18 -318 +283 101 10273 99184 0.84984 297.84984 149.34984 14934.98498 0.84984 297.84985 149.34985 14934.98526 0.84984 297.84984 149.34984000000014 14934.98400 2020-01-01 2020-01-02 2020-01-01 00:04:43 2020-01-02 03:33:04 2020-01-01 00:04:43.000 2020-01-02 03:33:04.000 283 99184 49733.5 4973350 283 99184 49733.5 4973350 -32286 32649 5169.02 516902 -125 126 -2.18 -218 +284 101 10274 99185 0.85285 297.85285 149.35285 14935.28528 0.85285 297.85284 149.35285 14935.28542 0.85285 297.85285 149.3528499999999 14935.28500 2020-01-01 2020-01-02 2020-01-01 00:04:44 2020-01-02 03:33:05 2020-01-01 00:04:44.000 2020-01-02 03:33:05.000 284 99185 49734.5 4973450 284 99185 49734.5 4973450 -32285 32650 5170.02 517002 -124 127 -1.18 -118 +285 101 10275 99186 0.85585 297.85585 149.35585 14935.58558 0.85585 297.85587 149.35585 14935.5855 0.85585 297.85585 149.35584999999995 14935.58500 2020-01-01 2020-01-02 2020-01-01 00:04:45 2020-01-02 03:33:06 2020-01-01 00:04:45.000 2020-01-02 03:33:06.000 285 99186 49735.5 4973550 285 99186 49735.5 4973550 -32284 32651 5171.02 517102 -128 127 -2.74 -274 +286 101 10276 99187 0.85885 297.85885 149.35885 14935.88588 0.85885 297.85886 149.35885 14935.88568 0.85885 297.85885 149.35885000000005 14935.88500 2020-01-01 2020-01-02 2020-01-01 00:04:46 2020-01-02 03:33:07 2020-01-01 00:04:46.000 2020-01-02 03:33:07.000 286 99187 49736.5 4973650 286 99187 49736.5 4973650 -32283 32652 5172.02 517202 -128 123 -4.3 -430 +287 101 10277 99188 0.86186 297.86186 149.36186 14936.18618 0.86186 297.86185 149.36186 14936.186 0.86186 297.86186 149.36186000000026 14936.18600 2020-01-01 2020-01-02 2020-01-01 00:04:47 2020-01-02 03:33:08 2020-01-01 00:04:47.000 2020-01-02 03:33:08.000 287 99188 49737.5 4973750 287 99188 49737.5 4973750 -32282 32653 5173.02 517302 -127 124 -3.3 -330 +288 101 10278 99189 0.86486 297.86486 149.36486 14936.48648 0.86486 297.86487 149.36486 14936.48673 0.86486 297.86486 149.36485999999982 14936.48600 2020-01-01 2020-01-02 2020-01-01 00:04:48 2020-01-02 03:33:09 2020-01-01 00:04:48.000 2020-01-02 03:33:09.000 288 99189 49738.5 4973850 288 99189 49738.5 4973850 -32281 32654 5174.02 517402 -126 125 -2.3 -230 +289 101 10279 99190 0.86786 297.86786 149.36786 14936.78678 0.86786 297.86786 149.36786 14936.78688 0.86786 297.86786 149.36786000000018 14936.78600 2020-01-01 2020-01-02 2020-01-01 00:04:49 2020-01-02 03:33:10 2020-01-01 00:04:49.000 2020-01-02 03:33:10.000 289 99190 49739.5 4973950 289 99190 49739.5 4973950 -32280 32655 5175.02 517502 -125 126 -1.3 -130 +29 102 10019 99929 0.08708 300.08708 150.08708 15158.79579 0.08708 300.0871 150.08708 15158.79576 0.08708 300.08708 150.08707999999987 15158.79508 2020-01-01 2020-01-02 2020-01-01 00:00:29 2020-01-02 03:45:29 2020-01-01 00:00:29.000 2020-01-02 03:45:29.000 29 99929 49979 5047879 29 99929 49979 5047879 -32540 32395 4558.009900990099 460359 -128 127 -1.8316831683168318 -185 +290 101 10280 99191 0.87087 297.87087 149.37087 14937.08708 0.87087 297.87088 149.37087 14937.087 0.87087 297.87087 149.37087000000017 14937.08700 2020-01-01 2020-01-02 2020-01-01 00:04:50 2020-01-02 03:33:11 2020-01-01 00:04:50.000 2020-01-02 03:33:11.000 290 99191 49740.5 4974050 290 99191 49740.5 4974050 -32279 32656 5176.02 517602 -124 127 -0.3 -30 +291 101 10281 99192 0.87387 297.87387 149.37387 14937.38738 0.87387 297.87387 149.37387 14937.38716 0.87387 297.87387 149.37386999999993 14937.38700 2020-01-01 2020-01-02 2020-01-01 00:04:51 2020-01-02 03:33:12 2020-01-01 00:04:51.000 2020-01-02 03:33:12.000 291 99192 49741.5 4974150 291 99192 49741.5 4974150 -32278 32657 5177.02 517702 -128 127 -1.86 -186 +292 101 10282 99193 0.87687 297.87687 149.37687 14937.68768 0.87687 297.8769 149.37687 14937.68789 0.87687 297.87687 149.37687000000003 14937.68700 2020-01-01 2020-01-02 2020-01-01 00:04:52 2020-01-02 03:33:13 2020-01-01 00:04:52.000 2020-01-02 03:33:13.000 292 99193 49742.5 4974250 292 99193 49742.5 4974250 -32277 32658 5178.02 517802 -128 123 -3.42 -342 +293 101 10283 99194 0.87987 297.87987 149.37987 14937.98798 0.87987 297.87988 149.37988 14937.9882 0.87987 297.87987 149.37987000000012 14937.98700 2020-01-01 2020-01-02 2020-01-01 00:04:53 2020-01-02 03:33:14 2020-01-01 00:04:53.000 2020-01-02 03:33:14.000 293 99194 49743.5 4974350 293 99194 49743.5 4974350 -32276 32659 5179.02 517902 -127 124 -2.42 -242 +294 101 10284 99195 0.88288 297.88288 149.38288 14938.28828 0.88288 297.88287 149.38288 14938.28835 0.88288 297.88288 149.38287999999983 14938.28800 2020-01-01 2020-01-02 2020-01-01 00:04:54 2020-01-02 03:33:15 2020-01-01 00:04:54.000 2020-01-02 03:33:15.000 294 99195 49744.5 4974450 294 99195 49744.5 4974450 -32275 32660 5180.02 518002 -126 125 -1.42 -142 +295 101 10285 99196 0.88588 297.88588 149.38588 14938.58858 0.88588 297.8859 149.38588 14938.58847 0.88588 297.88588 149.38587999999984 14938.58800 2020-01-01 2020-01-02 2020-01-01 00:04:55 2020-01-02 03:33:16 2020-01-01 00:04:55.000 2020-01-02 03:33:16.000 295 99196 49745.5 4974550 295 99196 49745.5 4974550 -32274 32661 5181.02 518102 -125 126 -0.42 -42 +296 101 10286 99197 0.88888 297.88888 149.38888 14938.88888 0.88888 297.8889 149.38888 14938.88863 0.88888 297.88888 149.38888000000028 14938.88800 2020-01-01 2020-01-02 2020-01-01 00:04:56 2020-01-02 03:33:17 2020-01-01 00:04:56.000 2020-01-02 03:33:17.000 296 99197 49746.5 4974650 296 99197 49746.5 4974650 -32273 32662 5182.02 518202 -124 127 0.58 58 +297 101 10287 99198 0.89189 297.89189 149.39189 14939.18918 0.89189 297.8919 149.39189 14939.18936 0.89189 297.89189 149.39189000000016 14939.18900 2020-01-01 2020-01-02 2020-01-01 00:04:57 2020-01-02 03:33:18 2020-01-01 00:04:57.000 2020-01-02 03:33:18.000 297 99198 49747.5 4974750 297 99198 49747.5 4974750 -32272 32663 5183.02 518302 -128 127 -0.98 -98 +298 101 10288 99199 0.89489 297.89489 149.39489 14939.48948 0.89489 297.8949 149.39489 14939.48967 0.89489 297.89489 149.39488999999972 14939.48900 2020-01-01 2020-01-02 2020-01-01 00:04:58 2020-01-02 03:33:19 2020-01-01 00:04:58.000 2020-01-02 03:33:19.000 298 99199 49748.5 4974850 298 99199 49748.5 4974850 -32271 32664 5184.02 518402 -128 127 -2.54 -254 +299 101 10289 99200 0.89789 297.89789 149.39789 14939.78978 0.89789 297.8979 149.39789 14939.78986 0.89789 297.89789 149.39789000000016 14939.78900 2020-01-01 2020-01-02 2020-01-01 00:04:59 2020-01-02 03:33:20 2020-01-01 00:04:59.000 2020-01-02 03:33:20.000 299 99200 49749.5 4974950 299 99200 49749.5 4974950 -32270 32665 5185.02 518502 -128 124 -4.1 -410 +3 102 1002 9993 0.009 300.009 150.009 15150.9099 0.009 300.009 150.009 15150.90958 0.00900 300.00900 150.00900000000001 15150.90900 2020-01-01 2020-01-02 2020-01-01 00:00:03 2020-01-02 03:45:03 2020-01-01 00:00:03.000 2020-01-02 03:45:03.000 3 99903 49953 5045253 3 99903 49953 5045253 -32566 32369 4532.009900990099 457733 -124 127 0.04950495049504951 5 +30 102 10020 99930 0.09009 300.09009 150.09009 15159.09909 0.09009 300.0901 150.09008 15159.09894 0.09009 300.09009 150.0900899999998 15159.09909 2020-01-01 2020-01-02 2020-01-01 00:00:30 2020-01-02 03:45:30 2020-01-01 00:00:30.000 2020-01-02 03:45:30.000 30 99930 49980 5047980 30 99930 49980 5047980 -32539 32396 4559.009900990099 460460 -128 123 -3.366336633663366 -340 +300 101 10290 99201 0.9009 297.9009 149.4009 14940.09009 0.9009 297.9009 149.40089 14940.08995 0.90090 297.90090 149.40090000000006 14940.09000 2020-01-01 2020-01-02 2020-01-01 00:05:00 2020-01-02 03:33:21 2020-01-01 00:05:00.000 2020-01-02 03:33:21.000 300 99201 49750.5 4975050 300 99201 49750.5 4975050 -32269 32666 5186.02 518602 -127 125 -3.1 -310 +301 101 10291 99202 0.9039 297.9039 149.4039 14940.39039 0.9039 297.9039 149.4039 14940.39009 0.90390 297.90390 149.40389999999988 14940.39000 2020-01-01 2020-01-02 2020-01-01 00:05:01 2020-01-02 03:33:22 2020-01-01 00:05:01.000 2020-01-02 03:33:22.000 301 99202 49751.5 4975150 301 99202 49751.5 4975150 -32268 32667 5187.02 518702 -126 126 -2.1 -210 +302 101 10292 99203 0.9069 297.9069 149.4069 14940.69069 0.9069 297.90692 149.4069 14940.69083 0.90690 297.90690 149.40689999999998 14940.69000 2020-01-01 2020-01-02 2020-01-01 00:05:02 2020-01-02 03:33:23 2020-01-01 00:05:02.000 2020-01-02 03:33:23.000 302 99203 49752.5 4975250 302 99203 49752.5 4975250 -32267 32668 5188.02 518802 -125 127 -1.1 -110 +303 101 10293 99204 0.9099 297.9099 149.4099 14940.99099 0.9099 297.9099 149.40991 14940.99114 0.90990 297.90990 149.40990000000008 14940.99000 2020-01-01 2020-01-02 2020-01-01 00:05:03 2020-01-02 03:33:24 2020-01-01 00:05:03.000 2020-01-02 03:33:24.000 303 99204 49753.5 4975350 303 99204 49753.5 4975350 -32266 32669 5189.02 518902 -128 127 -2.66 -266 +304 101 10294 99205 0.91291 297.91291 149.41291 14941.29129 0.91291 297.9129 149.41291 14941.29133 0.91291 297.91291 149.41290999999973 14941.29100 2020-01-01 2020-01-02 2020-01-01 00:05:04 2020-01-02 03:33:25 2020-01-01 00:05:04.000 2020-01-02 03:33:25.000 304 99205 49754.5 4975450 304 99205 49754.5 4975450 -32265 32670 5190.02 519002 -128 127 -4.22 -422 +305 101 10295 99206 0.91591 297.91591 149.41591 14941.59159 0.91591 297.91592 149.41591 14941.59141 0.91591 297.91591 149.41590999999983 14941.59100 2020-01-01 2020-01-02 2020-01-01 00:05:05 2020-01-02 03:33:26 2020-01-01 00:05:05.000 2020-01-02 03:33:26.000 305 99206 49755.5 4975550 305 99206 49755.5 4975550 -32264 32671 5191.02 519102 -128 123 -5.78 -578 +306 101 10296 99207 0.91891 297.91891 149.41891 14941.89189 0.91891 297.9189 149.41891 14941.89172 0.91891 297.91891 149.41891000000018 14941.89100 2020-01-01 2020-01-02 2020-01-01 00:05:06 2020-01-02 03:33:27 2020-01-01 00:05:06.000 2020-01-02 03:33:27.000 306 99207 49756.5 4975650 306 99207 49756.5 4975650 -32263 32672 5192.02 519202 -127 124 -4.78 -478 +307 101 10297 99208 0.92192 297.92192 149.42192 14942.19219 0.92192 297.92194 149.42192 14942.1923 0.92192 297.92192 149.42192000000009 14942.19200 2020-01-01 2020-01-02 2020-01-01 00:05:07 2020-01-02 03:33:28 2020-01-01 00:05:07.000 2020-01-02 03:33:28.000 307 99208 49757.5 4975750 307 99208 49757.5 4975750 -32262 32673 5193.02 519302 -126 125 -3.78 -378 +308 101 10298 99209 0.92492 297.92492 149.42492 14942.49249 0.92492 297.92493 149.42492 14942.49265 0.92492 297.92492 149.42491999999996 14942.49200 2020-01-01 2020-01-02 2020-01-01 00:05:08 2020-01-02 03:33:29 2020-01-01 00:05:08.000 2020-01-02 03:33:29.000 308 99209 49758.5 4975850 308 99209 49758.5 4975850 -32261 32674 5194.02 519402 -125 126 -2.78 -278 +309 101 10299 99210 0.92792 297.92792 149.42792 14942.79279 0.92792 297.92792 149.42792 14942.7928 0.92792 297.92792 149.42792000000006 14942.79200 2020-01-01 2020-01-02 2020-01-01 00:05:09 2020-01-02 03:33:30 2020-01-01 00:05:09.000 2020-01-02 03:33:30.000 309 99210 49759.5 4975950 309 99210 49759.5 4975950 -32260 32675 5195.02 519502 -124 127 -1.78 -178 +31 102 10021 99931 0.09309 300.09309 150.09309 15159.4024 0.09309 300.09308 150.09309 15159.40224 0.09309 300.09309 150.0930900000002 15159.40209 2020-01-01 2020-01-02 2020-01-01 00:00:31 2020-01-02 03:45:31 2020-01-01 00:00:31.000 2020-01-02 03:45:31.000 31 99931 49981 5048081 31 99931 49981 5048081 -32538 32397 4560.009900990099 460561 -127 124 -2.366336633663366 -239 +310 101 10300 99211 0.93093 297.93093 149.43093 14943.09309 0.93093 297.93094 149.43092 14943.09288 0.93093 297.93093 149.4309300000003 14943.09300 2020-01-01 2020-01-02 2020-01-01 00:05:10 2020-01-02 03:33:31 2020-01-01 00:05:10.000 2020-01-02 03:33:31.000 310 99211 49760.5 4976050 310 99211 49760.5 4976050 -32259 32676 5196.02 519602 -128 127 -3.34 -334 +311 101 10301 99212 0.93393 297.93393 149.43393 14943.39339 0.93393 297.93393 149.43393 14943.39319 0.93393 297.93393 149.43392999999983 14943.39300 2020-01-01 2020-01-02 2020-01-01 00:05:11 2020-01-02 03:33:32 2020-01-01 00:05:11.000 2020-01-02 03:33:32.000 311 99212 49761.5 4976150 311 99212 49761.5 4976150 -32258 32677 5197.02 519702 -128 123 -4.9 -490 +312 101 10302 99213 0.93693 297.93693 149.43693 14943.69369 0.93693 297.93695 149.43693 14943.69377 0.93693 297.93693 149.43692999999988 14943.69300 2020-01-01 2020-01-02 2020-01-01 00:05:12 2020-01-02 03:33:33 2020-01-01 00:05:12.000 2020-01-02 03:33:33.000 312 99213 49762.5 4976250 312 99213 49762.5 4976250 -32257 32678 5198.02 519802 -127 124 -3.9 -390 +313 101 10303 99214 0.93993 297.93993 149.43993 14943.99399 0.93993 297.93994 149.43994 14943.99412 0.93993 297.93993 149.4399300000003 14943.99300 2020-01-01 2020-01-02 2020-01-01 00:05:13 2020-01-02 03:33:34 2020-01-01 00:05:13.000 2020-01-02 03:33:34.000 313 99214 49763.5 4976350 313 99214 49763.5 4976350 -32256 32679 5199.02 519902 -126 125 -2.9 -290 +314 101 10304 99215 0.94294 297.94294 149.44294 14944.29429 0.94294 297.94293 149.44294 14944.29427 0.94294 297.94294 149.4429400000002 14944.29400 2020-01-01 2020-01-02 2020-01-01 00:05:14 2020-01-02 03:33:35 2020-01-01 00:05:14.000 2020-01-02 03:33:35.000 314 99215 49764.5 4976450 314 99215 49764.5 4976450 -32255 32680 5200.02 520002 -125 126 -1.9 -190 +315 101 10305 99216 0.94594 297.94594 149.44594 14944.59459 0.94594 297.94595 149.44595 14944.595 0.94594 297.94594 149.44593999999975 14944.59400 2020-01-01 2020-01-02 2020-01-01 00:05:15 2020-01-02 03:33:36 2020-01-01 00:05:15.000 2020-01-02 03:33:36.000 315 99216 49765.5 4976550 315 99216 49765.5 4976550 -32254 32681 5201.02 520102 -124 127 -0.9 -90 +316 101 10306 99217 0.94894 297.94894 149.44894 14944.89489 0.94894 297.94894 149.44894 14944.89466 0.94894 297.94894 149.4489400000002 14944.89400 2020-01-01 2020-01-02 2020-01-01 00:05:16 2020-01-02 03:33:37 2020-01-01 00:05:16.000 2020-01-02 03:33:37.000 316 99217 49766.5 4976650 316 99217 49766.5 4976650 -32253 32682 5202.02 520202 -128 127 -2.46 -246 +317 101 10307 99218 0.95195 297.95195 149.45195 14945.19519 0.95195 297.95197 149.45195 14945.19524 0.95195 297.95195 149.4519500000001 14945.19500 2020-01-01 2020-01-02 2020-01-01 00:05:17 2020-01-02 03:33:38 2020-01-01 00:05:17.000 2020-01-02 03:33:38.000 317 99218 49767.5 4976750 317 99218 49767.5 4976750 -32252 32683 5203.02 520302 -128 123 -4.02 -402 +318 101 10308 99219 0.95495 297.95495 149.45495 14945.49549 0.95495 297.95496 149.45495 14945.49558 0.95495 297.95495 149.45494999999985 14945.49500 2020-01-01 2020-01-02 2020-01-01 00:05:18 2020-01-02 03:33:39 2020-01-01 00:05:18.000 2020-01-02 03:33:39.000 318 99219 49768.5 4976850 318 99219 49768.5 4976850 -32251 32684 5204.02 520402 -127 124 -3.02 -302 +319 101 10309 99220 0.95795 297.95795 149.45795 14945.79579 0.95795 297.95795 149.45795 14945.79574 0.95795 297.95795 149.45794999999998 14945.79500 2020-01-01 2020-01-02 2020-01-01 00:05:19 2020-01-02 03:33:40 2020-01-01 00:05:19.000 2020-01-02 03:33:40.000 319 99220 49769.5 4976950 319 99220 49769.5 4976950 -32250 32685 5205.02 520502 -126 125 -2.02 -202 +32 102 10022 99932 0.09609 300.09609 150.09609 15159.7057 0.09609 300.0961 150.09609 15159.706 0.09609 300.09609 150.09608999999972 15159.70509 2020-01-01 2020-01-02 2020-01-01 00:00:32 2020-01-02 03:45:32 2020-01-01 00:00:32.000 2020-01-02 03:45:32.000 32 99932 49982 5048182 32 99932 49982 5048182 -32537 32398 4561.009900990099 460662 -126 125 -1.3663366336633664 -138 +320 101 10310 99221 0.96096 297.96096 149.46096 14946.09609 0.96096 297.96097 149.46096 14946.09647 0.96096 297.96096 149.4609600000002 14946.09600 2020-01-01 2020-01-02 2020-01-01 00:05:20 2020-01-02 03:33:41 2020-01-01 00:05:20.000 2020-01-02 03:33:41.000 320 99221 49770.5 4977050 320 99221 49770.5 4977050 -32249 32686 5206.02 520602 -125 126 -1.02 -102 +321 101 10311 99222 0.96396 297.96396 149.46396 14946.39639 0.96396 297.96396 149.46396 14946.39613 0.96396 297.96396 149.46395999999976 14946.39600 2020-01-01 2020-01-02 2020-01-01 00:05:21 2020-01-02 03:33:42 2020-01-01 00:05:21.000 2020-01-02 03:33:42.000 321 99222 49771.5 4977150 321 99222 49771.5 4977150 -32248 32687 5207.02 520702 -124 127 -0.02 -2 +322 101 10312 99223 0.96696 297.96696 149.46696 14946.69669 0.96696 297.96698 149.46696 14946.69674 0.96696 297.96696 149.46695999999986 14946.69600 2020-01-01 2020-01-02 2020-01-01 00:05:22 2020-01-02 03:33:43 2020-01-01 00:05:22.000 2020-01-02 03:33:43.000 322 99223 49772.5 4977250 322 99223 49772.5 4977250 -32247 32688 5208.02 520802 -128 127 -1.58 -158 +323 101 10313 99224 0.96996 297.96996 149.46996 14946.99699 0.96997 297.96997 149.46997 14946.99706 0.96996 297.96996 149.4699600000002 14946.99600 2020-01-01 2020-01-02 2020-01-01 00:05:23 2020-01-02 03:33:44 2020-01-01 00:05:23.000 2020-01-02 03:33:44.000 323 99224 49773.5 4977350 323 99224 49773.5 4977350 -32246 32689 5209.02 520902 -128 123 -3.14 -314 +324 101 10314 99225 0.97297 297.97297 149.47297 14947.29729 0.97297 297.97296 149.47297 14947.29737 0.97297 297.97297 149.47297000000012 14947.29700 2020-01-01 2020-01-02 2020-01-01 00:05:24 2020-01-02 03:33:45 2020-01-01 00:05:24.000 2020-01-02 03:33:45.000 324 99225 49774.5 4977450 324 99225 49774.5 4977450 -32245 32690 5210.02 521002 -127 124 -2.14 -214 325 101 10315 99226 0.97597 297.97597 149.47597 14947.59759 0.97597 297.97598 149.47597 14947.59794 0.97597 297.97597 149.47597 14947.59700 2020-01-01 2020-01-02 2020-01-01 00:05:25 2020-01-02 03:33:46 2020-01-01 00:05:25.000 2020-01-02 03:33:46.000 325 99226 49775.5 4977550 325 99226 49775.5 4977550 -32244 32691 5211.02 521102 -126 125 -1.14 -114 -326 101 10316 99227 0.97897 297.97897 149.47897 14947.89789 0.97897 297.97897 149.47897 14947.8976 0.97897 297.97897 149.47897 14947.89700 2020-01-01 2020-01-02 2020-01-01 00:05:26 2020-01-02 03:33:47 2020-01-01 00:05:26.000 2020-01-02 03:33:47.000 326 99227 49776.5 4977650 326 99227 49776.5 4977650 -32243 32692 5212.02 521202 -125 126 -0.14 -14 +326 101 10316 99227 0.97897 297.97897 149.47897 14947.89789 0.97897 297.97897 149.47897 14947.8976 0.97897 297.97897 149.4789700000001 14947.89700 2020-01-01 2020-01-02 2020-01-01 00:05:26 2020-01-02 03:33:47 2020-01-01 00:05:26.000 2020-01-02 03:33:47.000 326 99227 49776.5 4977650 326 99227 49776.5 4977650 -32243 32692 5212.02 521202 -125 126 -0.14 -14 327 101 10317 99228 0.98198 297.98198 149.48198 14948.19819 0.98198 297.982 149.48198 14948.19821 0.98198 297.98198 149.48198 14948.19800 2020-01-01 2020-01-02 2020-01-01 00:05:27 2020-01-02 03:33:48 2020-01-01 00:05:27.000 2020-01-02 03:33:48.000 327 99228 49777.5 4977750 327 99228 49777.5 4977750 -32242 32693 5213.02 521302 -124 127 0.86 86 -328 101 10318 99229 0.98498 297.98498 149.48498 14948.49849 0.98498 297.985 149.48498 14948.49853 0.98498 297.98498 149.48498 14948.49800 2020-01-01 2020-01-02 2020-01-01 00:05:28 2020-01-02 03:33:49 2020-01-01 00:05:28.000 2020-01-02 03:33:49.000 328 99229 49778.5 4977850 328 99229 49778.5 4977850 -32241 32694 5214.02 521402 -128 127 -0.7 -70 -329 101 10319 99230 0.98798 297.98798 149.48798 14948.79879 0.98798 297.98798 149.48798 14948.79883 0.98798 297.98798 149.48798 14948.79800 2020-01-01 2020-01-02 2020-01-01 00:05:29 2020-01-02 03:33:50 2020-01-01 00:05:29.000 2020-01-02 03:33:50.000 329 99230 49779.5 4977950 329 99230 49779.5 4977950 -32240 32695 5215.02 521502 -128 127 -2.26 -226 -33 102 10023 99933 0.09909 300.09909 150.09909 15160.009 0.09909 300.0991 150.0991 15160.00913 0.09909 300.09909 150.09909 15160.00809 2020-01-01 2020-01-02 2020-01-01 00:00:33 2020-01-02 03:45:33 2020-01-01 00:00:33.000 2020-01-02 03:45:33.000 33 99933 49983 5048283 33 99933 49983 5048283 -32536 32399 4562.009900990099 460763 -125 126 -0.36633663366336633 -37 -330 101 10320 99231 0.99099 297.99099 149.49099 14949.09909 0.99099 297.991 149.49099 14949.09941 0.99099 297.99099 149.49099 14949.09900 2020-01-01 2020-01-02 2020-01-01 00:05:30 2020-01-02 03:33:51 2020-01-01 00:05:30.000 2020-01-02 03:33:51.000 330 99231 49780.5 4978050 330 99231 49780.5 4978050 -32239 32696 5216.02 521602 -128 123 -3.82 -382 -331 101 10321 99232 0.99399 297.99399 149.49399 14949.39939 0.99399 297.994 149.49399 14949.39911 0.99399 297.99399 149.49399 14949.39900 2020-01-01 2020-01-02 2020-01-01 00:05:31 2020-01-02 03:33:52 2020-01-01 00:05:31.000 2020-01-02 03:33:52.000 331 99232 49781.5 4978150 331 99232 49781.5 4978150 -32238 32697 5217.02 521702 -127 124 -2.82 -282 -332 101 10322 99233 0.99699 297.99699 149.49699 14949.69969 0.99699 297.997 149.49699 14949.69969 0.99699 297.99699 149.49699 14949.69900 2020-01-01 2020-01-02 2020-01-01 00:05:32 2020-01-02 03:33:53 2020-01-01 00:05:32.000 2020-01-02 03:33:53.000 332 99233 49782.5 4978250 332 99233 49782.5 4978250 -32237 32698 5218.02 521802 -126 125 -1.82 -182 -333 101 10323 99234 1 298 149.5 14950 1 298 149.5 14950 1.00000 298.00000 149.50000 14950.00000 2020-01-01 2020-01-02 2020-01-01 00:05:33 2020-01-02 03:33:54 2020-01-01 00:05:33.000 2020-01-02 03:33:54.000 333 99234 49783.5 4978350 333 99234 49783.5 4978350 -32236 32699 5219.02 521902 -125 126 -0.82 -82 -334 101 10324 99235 1.003 298.003 149.503 14950.3003 1.003 298.003 149.503 14950.30029 1.00300 298.00300 149.50300 14950.30000 2020-01-01 2020-01-02 2020-01-01 00:05:34 2020-01-02 03:33:55 2020-01-01 00:05:34.000 2020-01-02 03:33:55.000 334 99235 49784.5 4978450 334 99235 49784.5 4978450 -32235 32700 5220.02 522002 -124 127 0.18 18 -335 101 10325 99236 1.006 298.006 149.506 14950.6006 1.006 298.006 149.506 14950.60088 1.00600 298.00600 149.50600 14950.60000 2020-01-01 2020-01-02 2020-01-01 00:05:35 2020-01-02 03:33:56 2020-01-01 00:05:35.000 2020-01-02 03:33:56.000 335 99236 49785.5 4978550 335 99236 49785.5 4978550 -32234 32701 5221.02 522102 -128 127 -1.38 -138 -336 101 10326 99237 1.009 298.009 149.509 14950.9009 1.009 298.009 149.509 14950.90057 1.00900 298.00900 149.50900 14950.90000 2020-01-01 2020-01-02 2020-01-01 00:05:36 2020-01-02 03:33:57 2020-01-01 00:05:36.000 2020-01-02 03:33:57.000 336 99237 49786.5 4978650 336 99237 49786.5 4978650 -32233 32702 5222.02 522202 -128 123 -2.94 -294 -337 101 10327 99238 1.01201 298.01201 149.51201 14951.2012 1.01201 298.01202 149.51201 14951.20117 1.01201 298.01201 149.51201 14951.20100 2020-01-01 2020-01-02 2020-01-01 00:05:37 2020-01-02 03:33:58 2020-01-01 00:05:37.000 2020-01-02 03:33:58.000 337 99238 49787.5 4978750 337 99238 49787.5 4978750 -32232 32703 5223.02 522302 -127 124 -1.94 -194 -338 101 10328 99239 1.01501 298.01501 149.51501 14951.5015 1.01501 298.015 149.51501 14951.50146 1.01501 298.01501 149.51501 14951.50100 2020-01-01 2020-01-02 2020-01-01 00:05:38 2020-01-02 03:33:59 2020-01-01 00:05:38.000 2020-01-02 03:33:59.000 338 99239 49788.5 4978850 338 99239 49788.5 4978850 -32231 32704 5224.02 522402 -126 125 -0.94 -94 -339 101 10329 99240 1.01801 298.01801 149.51801 14951.8018 1.01801 298.018 149.51801 14951.80177 1.01801 298.01801 149.51801 14951.80100 2020-01-01 2020-01-02 2020-01-01 00:05:39 2020-01-02 03:34:00 2020-01-01 00:05:39.000 2020-01-02 03:34:00.000 339 99240 49789.5 4978950 339 99240 49789.5 4978950 -32230 32705 5225.02 522502 -125 126 0.06 6 -34 102 10024 99934 0.1021 300.1021 150.1021 15160.31231 0.1021 300.1021 150.1021 15160.31224 0.10210 300.10210 150.10210 15160.31210 2020-01-01 2020-01-02 2020-01-01 00:00:34 2020-01-02 03:45:34 2020-01-01 00:00:34.000 2020-01-02 03:45:34.000 34 99934 49984 5048384 34 99934 49984 5048384 -32535 32400 4563.009900990099 460864 -124 127 0.6336633663366337 64 -340 101 10330 99241 1.02102 298.02102 149.52102 14952.1021 1.02102 298.02103 149.52102 14952.10239 1.02102 298.02102 149.52102 14952.10200 2020-01-01 2020-01-02 2020-01-01 00:05:40 2020-01-02 03:34:01 2020-01-01 00:05:40.000 2020-01-02 03:34:01.000 340 99241 49790.5 4979050 340 99241 49790.5 4979050 -32229 32706 5226.02 522602 -124 127 1.06 106 -341 101 10331 99242 1.02402 298.02402 149.52402 14952.4024 1.02402 298.02402 149.52402 14952.40205 1.02402 298.02402 149.52402 14952.40200 2020-01-01 2020-01-02 2020-01-01 00:05:41 2020-01-02 03:34:02 2020-01-01 00:05:41.000 2020-01-02 03:34:02.000 341 99242 49791.5 4979150 341 99242 49791.5 4979150 -32228 32707 5227.02 522702 -128 127 -0.5 -50 -342 101 10332 99243 1.02702 298.02702 149.52702 14952.7027 1.02702 298.02704 149.52702 14952.70264 1.02702 298.02702 149.52702 14952.70200 2020-01-01 2020-01-02 2020-01-01 00:05:42 2020-01-02 03:34:03 2020-01-01 00:05:42.000 2020-01-02 03:34:03.000 342 99243 49792.5 4979250 342 99243 49792.5 4979250 -32227 32708 5228.02 522802 -128 123 -2.06 -206 -343 101 10333 99244 1.03003 298.03003 149.53003 14953.003 1.03003 298.03003 149.53002 14953.00293 1.03003 298.03003 149.53003 14953.00300 2020-01-01 2020-01-02 2020-01-01 00:05:43 2020-01-02 03:34:04 2020-01-01 00:05:43.000 2020-01-02 03:34:04.000 343 99244 49793.5 4979350 343 99244 49793.5 4979350 -32226 32709 5229.02 522902 -127 124 -1.06 -106 -344 101 10334 99245 1.03303 298.03303 149.53303 14953.3033 1.03303 298.03302 149.53303 14953.30323 1.03303 298.03303 149.53303 14953.30300 2020-01-01 2020-01-02 2020-01-01 00:05:44 2020-01-02 03:34:05 2020-01-01 00:05:44.000 2020-01-02 03:34:05.000 344 99245 49794.5 4979450 344 99245 49794.5 4979450 -32225 32710 5230.02 523002 -126 125 -0.06 -6 -345 101 10335 99246 1.03603 298.03603 149.53603 14953.6036 1.03603 298.03604 149.53603 14953.60386 1.03603 298.03603 149.53603 14953.60300 2020-01-01 2020-01-02 2020-01-01 00:05:45 2020-01-02 03:34:06 2020-01-01 00:05:45.000 2020-01-02 03:34:06.000 345 99246 49795.5 4979550 345 99246 49795.5 4979550 -32224 32711 5231.02 523102 -125 126 0.94 94 -346 101 10336 99247 1.03903 298.03903 149.53903 14953.9039 1.03903 298.03903 149.53903 14953.90352 1.03903 298.03903 149.53903 14953.90300 2020-01-01 2020-01-02 2020-01-01 00:05:46 2020-01-02 03:34:07 2020-01-01 00:05:46.000 2020-01-02 03:34:07.000 346 99247 49796.5 4979650 346 99247 49796.5 4979650 -32223 32712 5232.02 523202 -124 127 1.94 194 -347 101 10337 99248 1.04204 298.04204 149.54204 14954.2042 1.04204 298.04205 149.54204 14954.20427 1.04204 298.04204 149.54204 14954.20400 2020-01-01 2020-01-02 2020-01-01 00:05:47 2020-01-02 03:34:08 2020-01-01 00:05:47.000 2020-01-02 03:34:08.000 347 99248 49797.5 4979750 347 99248 49797.5 4979750 -32222 32713 5233.02 523302 -128 127 0.38 38 -348 101 10338 99249 1.04504 298.04504 149.54504 14954.5045 1.04504 298.04504 149.54504 14954.50441 1.04504 298.04504 149.54504 14954.50400 2020-01-01 2020-01-02 2020-01-01 00:05:48 2020-01-02 03:34:09 2020-01-01 00:05:48.000 2020-01-02 03:34:09.000 348 99249 49798.5 4979850 348 99249 49798.5 4979850 -32221 32714 5234.02 523402 -128 123 -1.18 -118 -349 101 10339 99250 1.04804 298.04804 149.54804 14954.8048 1.04804 298.04803 149.54804 14954.80474 1.04804 298.04804 149.54804 14954.80400 2020-01-01 2020-01-02 2020-01-01 00:05:49 2020-01-02 03:34:10 2020-01-01 00:05:49.000 2020-01-02 03:34:10.000 349 99250 49799.5 4979950 349 99250 49799.5 4979950 -32220 32715 5235.02 523502 -127 124 -0.18 -18 -35 102 10025 99935 0.1051 300.1051 150.1051 15160.61561 0.1051 300.1051 150.1051 15160.61542 0.10510 300.10510 150.10510 15160.61510 2020-01-01 2020-01-02 2020-01-01 00:00:35 2020-01-02 03:45:35 2020-01-01 00:00:35.000 2020-01-02 03:45:35.000 35 99935 49985 5048485 35 99935 49985 5048485 -32534 32401 4564.009900990099 460965 -128 127 -0.900990099009901 -91 +328 101 10318 99229 0.98498 297.98498 149.48498 14948.49849 0.98498 297.985 149.48498 14948.49853 0.98498 297.98498 149.48497999999987 14948.49800 2020-01-01 2020-01-02 2020-01-01 00:05:28 2020-01-02 03:33:49 2020-01-01 00:05:28.000 2020-01-02 03:33:49.000 328 99229 49778.5 4977850 328 99229 49778.5 4977850 -32241 32694 5214.02 521402 -128 127 -0.7 -70 +329 101 10319 99230 0.98798 297.98798 149.48798 14948.79879 0.98798 297.98798 149.48798 14948.79883 0.98798 297.98798 149.4879799999999 14948.79800 2020-01-01 2020-01-02 2020-01-01 00:05:29 2020-01-02 03:33:50 2020-01-01 00:05:29.000 2020-01-02 03:33:50.000 329 99230 49779.5 4977950 329 99230 49779.5 4977950 -32240 32695 5215.02 521502 -128 127 -2.26 -226 +33 102 10023 99933 0.09909 300.09909 150.09909 15160.009 0.09909 300.0991 150.0991 15160.00913 0.09909 300.09909 150.09908999999982 15160.00809 2020-01-01 2020-01-02 2020-01-01 00:00:33 2020-01-02 03:45:33 2020-01-01 00:00:33.000 2020-01-02 03:45:33.000 33 99933 49983 5048283 33 99933 49983 5048283 -32536 32399 4562.009900990099 460763 -125 126 -0.36633663366336633 -37 +330 101 10320 99231 0.99099 297.99099 149.49099 14949.09909 0.99099 297.991 149.49099 14949.09941 0.99099 297.99099 149.49099000000012 14949.09900 2020-01-01 2020-01-02 2020-01-01 00:05:30 2020-01-02 03:33:51 2020-01-01 00:05:30.000 2020-01-02 03:33:51.000 330 99231 49780.5 4978050 330 99231 49780.5 4978050 -32239 32696 5216.02 521602 -128 123 -3.82 -382 +331 101 10321 99232 0.99399 297.99399 149.49399 14949.39939 0.99399 297.994 149.49399 14949.39911 0.99399 297.99399 149.49399000000022 14949.39900 2020-01-01 2020-01-02 2020-01-01 00:05:31 2020-01-02 03:33:52 2020-01-01 00:05:31.000 2020-01-02 03:33:52.000 331 99232 49781.5 4978150 331 99232 49781.5 4978150 -32238 32697 5217.02 521702 -127 124 -2.82 -282 +332 101 10322 99233 0.99699 297.99699 149.49699 14949.69969 0.99699 297.997 149.49699 14949.69969 0.99699 297.99699 149.49698999999978 14949.69900 2020-01-01 2020-01-02 2020-01-01 00:05:32 2020-01-02 03:33:53 2020-01-01 00:05:32.000 2020-01-02 03:33:53.000 332 99233 49782.5 4978250 332 99233 49782.5 4978250 -32237 32698 5218.02 521802 -126 125 -1.82 -182 +333 101 10323 99234 1 298 149.5 14950 1 298 149.5 14950 1.00000 298.00000 149.5 14950.00000 2020-01-01 2020-01-02 2020-01-01 00:05:33 2020-01-02 03:33:54 2020-01-01 00:05:33.000 2020-01-02 03:33:54.000 333 99234 49783.5 4978350 333 99234 49783.5 4978350 -32236 32699 5219.02 521902 -125 126 -0.82 -82 +334 101 10324 99235 1.003 298.003 149.503 14950.3003 1.003 298.003 149.503 14950.30029 1.00300 298.00300 149.50300000000013 14950.30000 2020-01-01 2020-01-02 2020-01-01 00:05:34 2020-01-02 03:33:55 2020-01-01 00:05:34.000 2020-01-02 03:33:55.000 334 99235 49784.5 4978450 334 99235 49784.5 4978450 -32235 32700 5220.02 522002 -124 127 0.18 18 +335 101 10325 99236 1.006 298.006 149.506 14950.6006 1.006 298.006 149.506 14950.60088 1.00600 298.00600 149.5059999999999 14950.60000 2020-01-01 2020-01-02 2020-01-01 00:05:35 2020-01-02 03:33:56 2020-01-01 00:05:35.000 2020-01-02 03:33:56.000 335 99236 49785.5 4978550 335 99236 49785.5 4978550 -32234 32701 5221.02 522102 -128 127 -1.38 -138 +336 101 10326 99237 1.009 298.009 149.509 14950.9009 1.009 298.009 149.509 14950.90057 1.00900 298.00900 149.50900000000001 14950.90000 2020-01-01 2020-01-02 2020-01-01 00:05:36 2020-01-02 03:33:57 2020-01-01 00:05:36.000 2020-01-02 03:33:57.000 336 99237 49786.5 4978650 336 99237 49786.5 4978650 -32233 32702 5222.02 522202 -128 123 -2.94 -294 +337 101 10327 99238 1.01201 298.01201 149.51201 14951.2012 1.01201 298.01202 149.51201 14951.20117 1.01201 298.01201 149.51201000000023 14951.20100 2020-01-01 2020-01-02 2020-01-01 00:05:37 2020-01-02 03:33:58 2020-01-01 00:05:37.000 2020-01-02 03:33:58.000 337 99238 49787.5 4978750 337 99238 49787.5 4978750 -32232 32703 5223.02 522302 -127 124 -1.94 -194 +338 101 10328 99239 1.01501 298.01501 149.51501 14951.5015 1.01501 298.015 149.51501 14951.50146 1.01501 298.01501 149.5150099999998 14951.50100 2020-01-01 2020-01-02 2020-01-01 00:05:38 2020-01-02 03:33:59 2020-01-01 00:05:38.000 2020-01-02 03:33:59.000 338 99239 49788.5 4978850 338 99239 49788.5 4978850 -32231 32704 5224.02 522402 -126 125 -0.94 -94 +339 101 10329 99240 1.01801 298.01801 149.51801 14951.8018 1.01801 298.018 149.51801 14951.80177 1.01801 298.01801 149.5180099999998 14951.80100 2020-01-01 2020-01-02 2020-01-01 00:05:39 2020-01-02 03:34:00 2020-01-01 00:05:39.000 2020-01-02 03:34:00.000 339 99240 49789.5 4978950 339 99240 49789.5 4978950 -32230 32705 5225.02 522502 -125 126 0.06 6 +34 102 10024 99934 0.1021 300.1021 150.1021 15160.31231 0.1021 300.1021 150.1021 15160.31224 0.10210 300.10210 150.10210000000004 15160.31210 2020-01-01 2020-01-02 2020-01-01 00:00:34 2020-01-02 03:45:34 2020-01-01 00:00:34.000 2020-01-02 03:45:34.000 34 99934 49984 5048384 34 99934 49984 5048384 -32535 32400 4563.009900990099 460864 -124 127 0.6336633663366337 64 +340 101 10330 99241 1.02102 298.02102 149.52102 14952.1021 1.02102 298.02103 149.52102 14952.10239 1.02102 298.02102 149.5210200000001 14952.10200 2020-01-01 2020-01-02 2020-01-01 00:05:40 2020-01-02 03:34:01 2020-01-01 00:05:40.000 2020-01-02 03:34:01.000 340 99241 49790.5 4979050 340 99241 49790.5 4979050 -32229 32706 5226.02 522602 -124 127 1.06 106 +341 101 10331 99242 1.02402 298.02402 149.52402 14952.4024 1.02402 298.02402 149.52402 14952.40205 1.02402 298.02402 149.52402000000015 14952.40200 2020-01-01 2020-01-02 2020-01-01 00:05:41 2020-01-02 03:34:02 2020-01-01 00:05:41.000 2020-01-02 03:34:02.000 341 99242 49791.5 4979150 341 99242 49791.5 4979150 -32228 32707 5227.02 522702 -128 127 -0.5 -50 +342 101 10332 99243 1.02702 298.02702 149.52702 14952.7027 1.02702 298.02704 149.52702 14952.70264 1.02702 298.02702 149.5270199999997 14952.70200 2020-01-01 2020-01-02 2020-01-01 00:05:42 2020-01-02 03:34:03 2020-01-01 00:05:42.000 2020-01-02 03:34:03.000 342 99243 49792.5 4979250 342 99243 49792.5 4979250 -32227 32708 5228.02 522802 -128 123 -2.06 -206 +343 101 10333 99244 1.03003 298.03003 149.53003 14953.003 1.03003 298.03003 149.53002 14953.00293 1.03003 298.03003 149.53002999999993 14953.00300 2020-01-01 2020-01-02 2020-01-01 00:05:43 2020-01-02 03:34:04 2020-01-01 00:05:43.000 2020-01-02 03:34:04.000 343 99244 49793.5 4979350 343 99244 49793.5 4979350 -32226 32709 5229.02 522902 -127 124 -1.06 -106 +344 101 10334 99245 1.03303 298.03303 149.53303 14953.3033 1.03303 298.03302 149.53303 14953.30323 1.03303 298.03303 149.53303000000002 14953.30300 2020-01-01 2020-01-02 2020-01-01 00:05:44 2020-01-02 03:34:05 2020-01-01 00:05:44.000 2020-01-02 03:34:05.000 344 99245 49794.5 4979450 344 99245 49794.5 4979450 -32225 32710 5230.02 523002 -126 125 -0.06 -6 +345 101 10335 99246 1.03603 298.03603 149.53603 14953.6036 1.03603 298.03604 149.53603 14953.60386 1.03603 298.03603 149.5360299999999 14953.60300 2020-01-01 2020-01-02 2020-01-01 00:05:45 2020-01-02 03:34:06 2020-01-01 00:05:45.000 2020-01-02 03:34:06.000 345 99246 49795.5 4979550 345 99246 49795.5 4979550 -32224 32711 5231.02 523102 -125 126 0.94 94 +346 101 10336 99247 1.03903 298.03903 149.53903 14953.9039 1.03903 298.03903 149.53903 14953.90352 1.03903 298.03903 149.53902999999994 14953.90300 2020-01-01 2020-01-02 2020-01-01 00:05:46 2020-01-02 03:34:07 2020-01-01 00:05:46.000 2020-01-02 03:34:07.000 346 99247 49796.5 4979650 346 99247 49796.5 4979650 -32223 32712 5232.02 523202 -124 127 1.94 194 +347 101 10337 99248 1.04204 298.04204 149.54204 14954.2042 1.04204 298.04205 149.54204 14954.20427 1.04204 298.04204 149.54204000000016 14954.20400 2020-01-01 2020-01-02 2020-01-01 00:05:47 2020-01-02 03:34:08 2020-01-01 00:05:47.000 2020-01-02 03:34:08.000 347 99248 49797.5 4979750 347 99248 49797.5 4979750 -32222 32713 5233.02 523302 -128 127 0.38 38 +348 101 10338 99249 1.04504 298.04504 149.54504 14954.5045 1.04504 298.04504 149.54504 14954.50441 1.04504 298.04504 149.54504000000026 14954.50400 2020-01-01 2020-01-02 2020-01-01 00:05:48 2020-01-02 03:34:09 2020-01-01 00:05:48.000 2020-01-02 03:34:09.000 348 99249 49798.5 4979850 348 99249 49798.5 4979850 -32221 32714 5234.02 523402 -128 123 -1.18 -118 +349 101 10339 99250 1.04804 298.04804 149.54804 14954.8048 1.04804 298.04803 149.54804 14954.80474 1.04804 298.04804 149.54803999999982 14954.80400 2020-01-01 2020-01-02 2020-01-01 00:05:49 2020-01-02 03:34:10 2020-01-01 00:05:49.000 2020-01-02 03:34:10.000 349 99250 49799.5 4979950 349 99250 49799.5 4979950 -32220 32715 5235.02 523502 -127 124 -0.18 -18 +35 102 10025 99935 0.1051 300.1051 150.1051 15160.61561 0.1051 300.1051 150.1051 15160.61542 0.10510 300.10510 150.10510000000014 15160.61510 2020-01-01 2020-01-02 2020-01-01 00:00:35 2020-01-02 03:45:35 2020-01-01 00:00:35.000 2020-01-02 03:45:35.000 35 99935 49985 5048485 35 99935 49985 5048485 -32534 32401 4564.009900990099 460965 -128 127 -0.900990099009901 -91 350 101 10340 99251 1.05105 298.05105 149.55105 14955.1051 1.05105 298.05106 149.55105 14955.10532 1.05105 298.05105 149.55105 14955.10500 2020-01-01 2020-01-02 2020-01-01 00:05:50 2020-01-02 03:34:11 2020-01-01 00:05:50.000 2020-01-02 03:34:11.000 350 99251 49800.5 4980050 350 99251 49800.5 4980050 -32219 32716 5236.02 523602 -126 125 0.82 82 -351 101 10341 99252 1.05405 298.05405 149.55405 14955.4054 1.05405 298.05405 149.55404 14955.40499 1.05405 298.05405 149.55405 14955.40500 2020-01-01 2020-01-02 2020-01-01 00:05:51 2020-01-02 03:34:12 2020-01-01 00:05:51.000 2020-01-02 03:34:12.000 351 99252 49801.5 4980150 351 99252 49801.5 4980150 -32218 32717 5237.02 523702 -125 126 1.82 182 -352 101 10342 99253 1.05705 298.05705 149.55705 14955.7057 1.05705 298.05707 149.55705 14955.70574 1.05705 298.05705 149.55705 14955.70500 2020-01-01 2020-01-02 2020-01-01 00:05:52 2020-01-02 03:34:13 2020-01-01 00:05:52.000 2020-01-02 03:34:13.000 352 99253 49802.5 4980250 352 99253 49802.5 4980250 -32217 32718 5238.02 523802 -124 127 2.82 282 -353 101 10343 99254 1.06006 298.06006 149.56006 14956.006 1.06006 298.06006 149.56005 14956.00587 1.06006 298.06006 149.56006 14956.00600 2020-01-01 2020-01-02 2020-01-01 00:05:53 2020-01-02 03:34:14 2020-01-01 00:05:53.000 2020-01-02 03:34:14.000 353 99254 49803.5 4980350 353 99254 49803.5 4980350 -32216 32719 5239.02 523902 -128 127 1.26 126 -354 101 10344 99255 1.06306 298.06306 149.56306 14956.3063 1.06306 298.06305 149.56306 14956.3062 1.06306 298.06306 149.56306 14956.30600 2020-01-01 2020-01-02 2020-01-01 00:05:54 2020-01-02 03:34:15 2020-01-01 00:05:54.000 2020-01-02 03:34:15.000 354 99255 49804.5 4980450 354 99255 49804.5 4980450 -32215 32720 5240.02 524002 -128 127 -0.3 -30 -355 101 10345 99256 1.06606 298.06606 149.56606 14956.6066 1.06606 298.06607 149.56606 14956.6068 1.06606 298.06606 149.56606 14956.60600 2020-01-01 2020-01-02 2020-01-01 00:05:55 2020-01-02 03:34:16 2020-01-01 00:05:55.000 2020-01-02 03:34:16.000 355 99256 49805.5 4980550 355 99256 49805.5 4980550 -32214 32721 5241.02 524102 -128 123 -1.86 -186 -356 101 10346 99257 1.06906 298.06906 149.56906 14956.9069 1.06906 298.06906 149.56907 14956.90709 1.06906 298.06906 149.56906 14956.90600 2020-01-01 2020-01-02 2020-01-01 00:05:56 2020-01-02 03:34:17 2020-01-01 00:05:56.000 2020-01-02 03:34:17.000 356 99257 49806.5 4980650 356 99257 49806.5 4980650 -32213 32722 5242.02 524202 -127 124 -0.86 -86 -357 101 10347 99258 1.07207 298.07207 149.57207 14957.2072 1.07207 298.07208 149.57207 14957.20721 1.07207 298.07207 149.57207 14957.20700 2020-01-01 2020-01-02 2020-01-01 00:05:57 2020-01-02 03:34:18 2020-01-01 00:05:57.000 2020-01-02 03:34:18.000 357 99258 49807.5 4980750 357 99258 49807.5 4980750 -32212 32723 5243.02 524302 -126 125 0.14 14 -358 101 10348 99259 1.07507 298.07507 149.57507 14957.5075 1.07507 298.07507 149.57507 14957.50734 1.07507 298.07507 149.57507 14957.50700 2020-01-01 2020-01-02 2020-01-01 00:05:58 2020-01-02 03:34:19 2020-01-01 00:05:58.000 2020-01-02 03:34:19.000 358 99259 49808.5 4980850 358 99259 49808.5 4980850 -32211 32724 5244.02 524402 -125 126 1.14 114 -359 101 10349 99260 1.07807 298.07807 149.57807 14957.8078 1.07807 298.07806 149.57807 14957.80767 1.07807 298.07807 149.57807 14957.80700 2020-01-01 2020-01-02 2020-01-01 00:05:59 2020-01-02 03:34:20 2020-01-01 00:05:59.000 2020-01-02 03:34:20.000 359 99260 49809.5 4980950 359 99260 49809.5 4980950 -32210 32725 5245.02 524502 -124 127 2.14 214 -36 102 10026 99936 0.1081 300.1081 150.1081 15160.91891 0.1081 300.1081 150.1081 15160.91873 0.10810 300.10810 150.10810 15160.91810 2020-01-01 2020-01-02 2020-01-01 00:00:36 2020-01-02 03:45:36 2020-01-01 00:00:36.000 2020-01-02 03:45:36.000 36 99936 49986 5048586 36 99936 49986 5048586 -32533 32402 4565.009900990099 461066 -128 123 -2.4356435643564356 -246 -360 101 10350 99261 1.08108 298.08108 149.58108 14958.1081 1.08108 298.0811 149.58108 14958.10827 1.08108 298.08108 149.58108 14958.10800 2020-01-01 2020-01-02 2020-01-01 00:06:00 2020-01-02 03:34:21 2020-01-01 00:06:00.000 2020-01-02 03:34:21.000 360 99261 49810.5 4981050 360 99261 49810.5 4981050 -32209 32726 5246.02 524602 -128 127 0.58 58 -361 101 10351 99262 1.08408 298.08408 149.58408 14958.4084 1.08408 298.08408 149.58408 14958.40856 1.08408 298.08408 149.58408 14958.40800 2020-01-01 2020-01-02 2020-01-01 00:06:01 2020-01-02 03:34:22 2020-01-01 00:06:01.000 2020-01-02 03:34:22.000 361 99262 49811.5 4981150 361 99262 49811.5 4981150 -32208 32727 5247.02 524702 -128 123 -0.98 -98 -362 101 10352 99263 1.08708 298.08708 149.58708 14958.7087 1.08708 298.0871 149.58708 14958.70868 1.08708 298.08708 149.58708 14958.70800 2020-01-01 2020-01-02 2020-01-01 00:06:02 2020-01-02 03:34:23 2020-01-01 00:06:02.000 2020-01-02 03:34:23.000 362 99263 49812.5 4981250 362 99263 49812.5 4981250 -32207 32728 5248.02 524802 -127 124 0.02 2 -363 101 10353 99264 1.09009 298.09009 149.59009 14959.009 1.09009 298.0901 149.59008 14959.00884 1.09009 298.09009 149.59009 14959.00900 2020-01-01 2020-01-02 2020-01-01 00:06:03 2020-01-02 03:34:24 2020-01-01 00:06:03.000 2020-01-02 03:34:24.000 363 99264 49813.5 4981350 363 99264 49813.5 4981350 -32206 32729 5249.02 524902 -126 125 1.02 102 -364 101 10354 99265 1.09309 298.09309 149.59309 14959.3093 1.09309 298.09308 149.59309 14959.30915 1.09309 298.09309 149.59309 14959.30900 2020-01-01 2020-01-02 2020-01-01 00:06:04 2020-01-02 03:34:25 2020-01-01 00:06:04.000 2020-01-02 03:34:25.000 364 99265 49814.5 4981450 364 99265 49814.5 4981450 -32205 32730 5250.02 525002 -125 126 2.02 202 -365 101 10355 99266 1.09609 298.09609 149.59609 14959.6096 1.09609 298.0961 149.59609 14959.6099 1.09609 298.09609 149.59609 14959.60900 2020-01-01 2020-01-02 2020-01-01 00:06:05 2020-01-02 03:34:26 2020-01-01 00:06:05.000 2020-01-02 03:34:26.000 365 99266 49815.5 4981550 365 99266 49815.5 4981550 -32204 32731 5251.02 525102 -124 127 3.02 302 -366 101 10356 99267 1.09909 298.09909 149.59909 14959.9099 1.09909 298.0991 149.5991 14959.91003 1.09909 298.09909 149.59909 14959.90900 2020-01-01 2020-01-02 2020-01-01 00:06:06 2020-01-02 03:34:27 2020-01-01 00:06:06.000 2020-01-02 03:34:27.000 366 99267 49816.5 4981650 366 99267 49816.5 4981650 -32203 32732 5252.02 525202 -128 127 1.46 146 -367 101 10357 99268 1.1021 298.1021 149.6021 14960.21021 1.1021 298.1021 149.6021 14960.21015 1.10210 298.10210 149.60210 14960.21000 2020-01-01 2020-01-02 2020-01-01 00:06:07 2020-01-02 03:34:28 2020-01-01 00:06:07.000 2020-01-02 03:34:28.000 367 99268 49817.5 4981750 367 99268 49817.5 4981750 -32202 32733 5253.02 525302 -128 123 -0.1 -10 -368 101 10358 99269 1.1051 298.1051 149.6051 14960.51051 1.1051 298.1051 149.6051 14960.51031 1.10510 298.10510 149.60510 14960.51000 2020-01-01 2020-01-02 2020-01-01 00:06:08 2020-01-02 03:34:29 2020-01-01 00:06:08.000 2020-01-02 03:34:29.000 368 99269 49818.5 4981850 368 99269 49818.5 4981850 -32201 32734 5254.02 525402 -127 124 0.9 90 -369 101 10359 99270 1.1081 298.1081 149.6081 14960.81081 1.1081 298.1081 149.6081 14960.81062 1.10810 298.10810 149.60810 14960.81000 2020-01-01 2020-01-02 2020-01-01 00:06:09 2020-01-02 03:34:30 2020-01-01 00:06:09.000 2020-01-02 03:34:30.000 369 99270 49819.5 4981950 369 99270 49819.5 4981950 -32200 32735 5255.02 525502 -126 125 1.9 190 -37 102 10027 99937 0.11111 300.11111 150.11111 15161.22222 0.11111 300.1111 150.11111 15161.22248 0.11111 300.11111 150.11111 15161.22211 2020-01-01 2020-01-02 2020-01-01 00:00:37 2020-01-02 03:45:37 2020-01-01 00:00:37.000 2020-01-02 03:45:37.000 37 99937 49987 5048687 37 99937 49987 5048687 -32532 32403 4566.009900990099 461167 -127 124 -1.4356435643564356 -145 -370 101 10360 99271 1.11111 298.11111 149.61111 14961.11111 1.11111 298.1111 149.61111 14961.11137 1.11111 298.11111 149.61111 14961.11100 2020-01-01 2020-01-02 2020-01-01 00:06:10 2020-01-02 03:34:31 2020-01-01 00:06:10.000 2020-01-02 03:34:31.000 370 99271 49820.5 4982050 370 99271 49820.5 4982050 -32199 32736 5256.02 525602 -125 126 2.9 290 -371 101 10361 99272 1.11411 298.11411 149.61411 14961.41141 1.11411 298.1141 149.61411 14961.4115 1.11411 298.11411 149.61411 14961.41100 2020-01-01 2020-01-02 2020-01-01 00:06:11 2020-01-02 03:34:32 2020-01-01 00:06:11.000 2020-01-02 03:34:32.000 371 99272 49821.5 4982150 371 99272 49821.5 4982150 -32198 32737 5257.02 525702 -124 127 3.9 390 -372 101 10362 99273 1.11711 298.11711 149.61711 14961.71171 1.11711 298.11713 149.61711 14961.71165 1.11711 298.11711 149.61711 14961.71100 2020-01-01 2020-01-02 2020-01-01 00:06:12 2020-01-02 03:34:33 2020-01-01 00:06:12.000 2020-01-02 03:34:33.000 372 99273 49822.5 4982250 372 99273 49822.5 4982250 -32197 32738 5258.02 525802 -128 127 2.34 234 -373 101 10363 99274 1.12012 298.12012 149.62012 14962.01201 1.12012 298.12012 149.62011 14962.01179 1.12012 298.12012 149.62012 14962.01200 2020-01-01 2020-01-02 2020-01-01 00:06:13 2020-01-02 03:34:34 2020-01-01 00:06:13.000 2020-01-02 03:34:34.000 373 99274 49823.5 4982350 373 99274 49823.5 4982350 -32196 32739 5259.02 525902 -128 123 0.78 78 -374 101 10364 99275 1.12312 298.12312 149.62312 14962.31231 1.12312 298.1231 149.62312 14962.31208 1.12312 298.12312 149.62312 14962.31200 2020-01-01 2020-01-02 2020-01-01 00:06:14 2020-01-02 03:34:35 2020-01-01 00:06:14.000 2020-01-02 03:34:35.000 374 99275 49824.5 4982450 374 99275 49824.5 4982450 -32195 32740 5260.02 526002 -127 124 1.78 178 -375 101 10365 99276 1.12612 298.12612 149.62612 14962.61261 1.12612 298.12613 149.62612 14962.61283 1.12612 298.12612 149.62612 14962.61200 2020-01-01 2020-01-02 2020-01-01 00:06:15 2020-01-02 03:34:36 2020-01-01 00:06:15.000 2020-01-02 03:34:36.000 375 99276 49825.5 4982550 375 99276 49825.5 4982550 -32194 32741 5261.02 526102 -126 125 2.78 278 -376 101 10366 99277 1.12912 298.12912 149.62912 14962.91291 1.12912 298.12912 149.62912 14962.91297 1.12912 298.12912 149.62912 14962.91200 2020-01-01 2020-01-02 2020-01-01 00:06:16 2020-01-02 03:34:37 2020-01-01 00:06:16.000 2020-01-02 03:34:37.000 376 99277 49826.5 4982650 376 99277 49826.5 4982650 -32193 32742 5262.02 526202 -125 126 3.78 378 +351 101 10341 99252 1.05405 298.05405 149.55405 14955.4054 1.05405 298.05405 149.55404 14955.40499 1.05405 298.05405 149.55405000000016 14955.40500 2020-01-01 2020-01-02 2020-01-01 00:05:51 2020-01-02 03:34:12 2020-01-01 00:05:51.000 2020-01-02 03:34:12.000 351 99252 49801.5 4980150 351 99252 49801.5 4980150 -32218 32717 5237.02 523702 -125 126 1.82 182 +352 101 10342 99253 1.05705 298.05705 149.55705 14955.7057 1.05705 298.05707 149.55705 14955.70574 1.05705 298.05705 149.55704999999992 14955.70500 2020-01-01 2020-01-02 2020-01-01 00:05:52 2020-01-02 03:34:13 2020-01-01 00:05:52.000 2020-01-02 03:34:13.000 352 99253 49802.5 4980250 352 99253 49802.5 4980250 -32217 32718 5238.02 523802 -124 127 2.82 282 +353 101 10343 99254 1.06006 298.06006 149.56006 14956.006 1.06006 298.06006 149.56005 14956.00587 1.06006 298.06006 149.56005999999982 14956.00600 2020-01-01 2020-01-02 2020-01-01 00:05:53 2020-01-02 03:34:14 2020-01-01 00:05:53.000 2020-01-02 03:34:14.000 353 99254 49803.5 4980350 353 99254 49803.5 4980350 -32216 32719 5239.02 523902 -128 127 1.26 126 +354 101 10344 99255 1.06306 298.06306 149.56306 14956.3063 1.06306 298.06305 149.56306 14956.3062 1.06306 298.06306 149.56306000000026 14956.30600 2020-01-01 2020-01-02 2020-01-01 00:05:54 2020-01-02 03:34:15 2020-01-01 00:05:54.000 2020-01-02 03:34:15.000 354 99255 49804.5 4980450 354 99255 49804.5 4980450 -32215 32720 5240.02 524002 -128 127 -0.3 -30 +355 101 10345 99256 1.06606 298.06606 149.56606 14956.6066 1.06606 298.06607 149.56606 14956.6068 1.06606 298.06606 149.56605999999982 14956.60600 2020-01-01 2020-01-02 2020-01-01 00:05:55 2020-01-02 03:34:16 2020-01-01 00:05:55.000 2020-01-02 03:34:16.000 355 99256 49805.5 4980550 355 99256 49805.5 4980550 -32214 32721 5241.02 524102 -128 123 -1.86 -186 +356 101 10346 99257 1.06906 298.06906 149.56906 14956.9069 1.06906 298.06906 149.56907 14956.90709 1.06906 298.06906 149.56905999999984 14956.90600 2020-01-01 2020-01-02 2020-01-01 00:05:56 2020-01-02 03:34:17 2020-01-01 00:05:56.000 2020-01-02 03:34:17.000 356 99257 49806.5 4980650 356 99257 49806.5 4980650 -32213 32722 5242.02 524202 -127 124 -0.86 -86 +357 101 10347 99258 1.07207 298.07207 149.57207 14957.2072 1.07207 298.07208 149.57207 14957.20721 1.07207 298.07207 149.57207000000014 14957.20700 2020-01-01 2020-01-02 2020-01-01 00:05:57 2020-01-02 03:34:18 2020-01-01 00:05:57.000 2020-01-02 03:34:18.000 357 99258 49807.5 4980750 357 99258 49807.5 4980750 -32212 32723 5243.02 524302 -126 125 0.14 14 +358 101 10348 99259 1.07507 298.07507 149.57507 14957.5075 1.07507 298.07507 149.57507 14957.50734 1.07507 298.07507 149.57507000000015 14957.50700 2020-01-01 2020-01-02 2020-01-01 00:05:58 2020-01-02 03:34:19 2020-01-01 00:05:58.000 2020-01-02 03:34:19.000 358 99259 49808.5 4980850 358 99259 49808.5 4980850 -32211 32724 5244.02 524402 -125 126 1.14 114 +359 101 10349 99260 1.07807 298.07807 149.57807 14957.8078 1.07807 298.07806 149.57807 14957.80767 1.07807 298.07807 149.5780699999997 14957.80700 2020-01-01 2020-01-02 2020-01-01 00:05:59 2020-01-02 03:34:20 2020-01-01 00:05:59.000 2020-01-02 03:34:20.000 359 99260 49809.5 4980950 359 99260 49809.5 4980950 -32210 32725 5245.02 524502 -124 127 2.14 214 +36 102 10026 99936 0.1081 300.1081 150.1081 15160.91891 0.1081 300.1081 150.1081 15160.91873 0.10810 300.10810 150.10809999999998 15160.91810 2020-01-01 2020-01-02 2020-01-01 00:00:36 2020-01-02 03:45:36 2020-01-01 00:00:36.000 2020-01-02 03:45:36.000 36 99936 49986 5048586 36 99936 49986 5048586 -32533 32402 4565.009900990099 461066 -128 123 -2.4356435643564356 -246 +360 101 10350 99261 1.08108 298.08108 149.58108 14958.1081 1.08108 298.0811 149.58108 14958.10827 1.08108 298.08108 149.58107999999996 14958.10800 2020-01-01 2020-01-02 2020-01-01 00:06:00 2020-01-02 03:34:21 2020-01-01 00:06:00.000 2020-01-02 03:34:21.000 360 99261 49810.5 4981050 360 99261 49810.5 4981050 -32209 32726 5246.02 524602 -128 127 0.58 58 +361 101 10351 99262 1.08408 298.08408 149.58408 14958.4084 1.08408 298.08408 149.58408 14958.40856 1.08408 298.08408 149.58408000000006 14958.40800 2020-01-01 2020-01-02 2020-01-01 00:06:01 2020-01-02 03:34:22 2020-01-01 00:06:01.000 2020-01-02 03:34:22.000 361 99262 49811.5 4981150 361 99262 49811.5 4981150 -32208 32727 5247.02 524702 -128 123 -0.98 -98 +362 101 10352 99263 1.08708 298.08708 149.58708 14958.7087 1.08708 298.0871 149.58708 14958.70868 1.08708 298.08708 149.58707999999987 14958.70800 2020-01-01 2020-01-02 2020-01-01 00:06:02 2020-01-02 03:34:23 2020-01-01 00:06:02.000 2020-01-02 03:34:23.000 362 99263 49812.5 4981250 362 99263 49812.5 4981250 -32207 32728 5248.02 524802 -127 124 0.02 2 +363 101 10353 99264 1.09009 298.09009 149.59009 14959.009 1.09009 298.0901 149.59008 14959.00884 1.09009 298.09009 149.5900899999998 14959.00900 2020-01-01 2020-01-02 2020-01-01 00:06:03 2020-01-02 03:34:24 2020-01-01 00:06:03.000 2020-01-02 03:34:24.000 363 99264 49813.5 4981350 363 99264 49813.5 4981350 -32206 32729 5249.02 524902 -126 125 1.02 102 +364 101 10354 99265 1.09309 298.09309 149.59309 14959.3093 1.09309 298.09308 149.59309 14959.30915 1.09309 298.09309 149.5930900000002 14959.30900 2020-01-01 2020-01-02 2020-01-01 00:06:04 2020-01-02 03:34:25 2020-01-01 00:06:04.000 2020-01-02 03:34:25.000 364 99265 49814.5 4981450 364 99265 49814.5 4981450 -32205 32730 5250.02 525002 -125 126 2.02 202 +365 101 10355 99266 1.09609 298.09609 149.59609 14959.6096 1.09609 298.0961 149.59609 14959.6099 1.09609 298.09609 149.59608999999972 14959.60900 2020-01-01 2020-01-02 2020-01-01 00:06:05 2020-01-02 03:34:26 2020-01-01 00:06:05.000 2020-01-02 03:34:26.000 365 99266 49815.5 4981550 365 99266 49815.5 4981550 -32204 32731 5251.02 525102 -124 127 3.02 302 +366 101 10356 99267 1.09909 298.09909 149.59909 14959.9099 1.09909 298.0991 149.5991 14959.91003 1.09909 298.09909 149.59908999999982 14959.90900 2020-01-01 2020-01-02 2020-01-01 00:06:06 2020-01-02 03:34:27 2020-01-01 00:06:06.000 2020-01-02 03:34:27.000 366 99267 49816.5 4981650 366 99267 49816.5 4981650 -32203 32732 5252.02 525202 -128 127 1.46 146 +367 101 10357 99268 1.1021 298.1021 149.6021 14960.21021 1.1021 298.1021 149.6021 14960.21015 1.10210 298.10210 149.60210000000004 14960.21000 2020-01-01 2020-01-02 2020-01-01 00:06:07 2020-01-02 03:34:28 2020-01-01 00:06:07.000 2020-01-02 03:34:28.000 367 99268 49817.5 4981750 367 99268 49817.5 4981750 -32202 32733 5253.02 525302 -128 123 -0.1 -10 +368 101 10358 99269 1.1051 298.1051 149.6051 14960.51051 1.1051 298.1051 149.6051 14960.51031 1.10510 298.10510 149.60510000000014 14960.51000 2020-01-01 2020-01-02 2020-01-01 00:06:08 2020-01-02 03:34:29 2020-01-01 00:06:08.000 2020-01-02 03:34:29.000 368 99269 49818.5 4981850 368 99269 49818.5 4981850 -32201 32734 5254.02 525402 -127 124 0.9 90 +369 101 10359 99270 1.1081 298.1081 149.6081 14960.81081 1.1081 298.1081 149.6081 14960.81062 1.10810 298.10810 149.60809999999995 14960.81000 2020-01-01 2020-01-02 2020-01-01 00:06:09 2020-01-02 03:34:30 2020-01-01 00:06:09.000 2020-01-02 03:34:30.000 369 99270 49819.5 4981950 369 99270 49819.5 4981950 -32200 32735 5255.02 525502 -126 125 1.9 190 +37 102 10027 99937 0.11111 300.11111 150.11111 15161.22222 0.11111 300.1111 150.11111 15161.22248 0.11111 300.11111 150.11110999999985 15161.22211 2020-01-01 2020-01-02 2020-01-01 00:00:37 2020-01-02 03:45:37 2020-01-01 00:00:37.000 2020-01-02 03:45:37.000 37 99937 49987 5048687 37 99937 49987 5048687 -32532 32403 4566.009900990099 461167 -127 124 -1.4356435643564356 -145 +370 101 10360 99271 1.11111 298.11111 149.61111 14961.11111 1.11111 298.1111 149.61111 14961.11137 1.11111 298.11111 149.61110999999985 14961.11100 2020-01-01 2020-01-02 2020-01-01 00:06:10 2020-01-02 03:34:31 2020-01-01 00:06:10.000 2020-01-02 03:34:31.000 370 99271 49820.5 4982050 370 99271 49820.5 4982050 -32199 32736 5256.02 525602 -125 126 2.9 290 +371 101 10361 99272 1.11411 298.11411 149.61411 14961.41141 1.11411 298.1141 149.61411 14961.4115 1.11411 298.11411 149.6141100000003 14961.41100 2020-01-01 2020-01-02 2020-01-01 00:06:11 2020-01-02 03:34:32 2020-01-01 00:06:11.000 2020-01-02 03:34:32.000 371 99272 49821.5 4982150 371 99272 49821.5 4982150 -32198 32737 5257.02 525702 -124 127 3.9 390 +372 101 10362 99273 1.11711 298.11711 149.61711 14961.71171 1.11711 298.11713 149.61711 14961.71165 1.11711 298.11711 149.61710999999985 14961.71100 2020-01-01 2020-01-02 2020-01-01 00:06:12 2020-01-02 03:34:33 2020-01-01 00:06:12.000 2020-01-02 03:34:33.000 372 99273 49822.5 4982250 372 99273 49822.5 4982250 -32197 32738 5258.02 525802 -128 127 2.34 234 +373 101 10363 99274 1.12012 298.12012 149.62012 14962.01201 1.12012 298.12012 149.62011 14962.01179 1.12012 298.12012 149.62011999999973 14962.01200 2020-01-01 2020-01-02 2020-01-01 00:06:13 2020-01-02 03:34:34 2020-01-01 00:06:13.000 2020-01-02 03:34:34.000 373 99274 49823.5 4982350 373 99274 49823.5 4982350 -32196 32739 5259.02 525902 -128 123 0.78 78 +374 101 10364 99275 1.12312 298.12312 149.62312 14962.31231 1.12312 298.1231 149.62312 14962.31208 1.12312 298.12312 149.62312000000017 14962.31200 2020-01-01 2020-01-02 2020-01-01 00:06:14 2020-01-02 03:34:35 2020-01-01 00:06:14.000 2020-01-02 03:34:35.000 374 99275 49824.5 4982450 374 99275 49824.5 4982450 -32195 32740 5260.02 526002 -127 124 1.78 178 +375 101 10365 99276 1.12612 298.12612 149.62612 14962.61261 1.12612 298.12613 149.62612 14962.61283 1.12612 298.12612 149.62612000000018 14962.61200 2020-01-01 2020-01-02 2020-01-01 00:06:15 2020-01-02 03:34:36 2020-01-01 00:06:15.000 2020-01-02 03:34:36.000 375 99276 49825.5 4982550 375 99276 49825.5 4982550 -32194 32741 5261.02 526102 -126 125 2.78 278 +376 101 10366 99277 1.12912 298.12912 149.62912 14962.91291 1.12912 298.12912 149.62912 14962.91297 1.12912 298.12912 149.62911999999974 14962.91200 2020-01-01 2020-01-02 2020-01-01 00:06:16 2020-01-02 03:34:37 2020-01-01 00:06:16.000 2020-01-02 03:34:37.000 376 99277 49826.5 4982650 376 99277 49826.5 4982650 -32193 32742 5262.02 526202 -125 126 3.78 378 377 101 10367 99278 1.13213 298.13213 149.63213 14963.21321 1.13213 298.13214 149.63213 14963.21312 1.13213 298.13213 149.63213 14963.21300 2020-01-01 2020-01-02 2020-01-01 00:06:17 2020-01-02 03:34:38 2020-01-01 00:06:17.000 2020-01-02 03:34:38.000 377 99278 49827.5 4982750 377 99278 49827.5 4982750 -32192 32743 5263.02 526302 -124 127 4.78 478 -378 101 10368 99279 1.13513 298.13513 149.63513 14963.51351 1.13513 298.13513 149.63513 14963.51326 1.13513 298.13513 149.63513 14963.51300 2020-01-01 2020-01-02 2020-01-01 00:06:18 2020-01-02 03:34:39 2020-01-01 00:06:18.000 2020-01-02 03:34:39.000 378 99279 49828.5 4982850 378 99279 49828.5 4982850 -32191 32744 5264.02 526402 -128 127 3.22 322 -379 101 10369 99280 1.13813 298.13813 149.63813 14963.81381 1.13813 298.13815 149.63814 14963.81401 1.13813 298.13813 149.63813 14963.81300 2020-01-01 2020-01-02 2020-01-01 00:06:19 2020-01-02 03:34:40 2020-01-01 00:06:19.000 2020-01-02 03:34:40.000 379 99280 49829.5 4982950 379 99280 49829.5 4982950 -32190 32745 5265.02 526502 -128 127 1.66 166 -38 102 10028 99938 0.11411 300.11411 150.11411 15161.52552 0.11411 300.1141 150.11411 15161.52562 0.11411 300.11411 150.11411 15161.52511 2020-01-01 2020-01-02 2020-01-01 00:00:38 2020-01-02 03:45:38 2020-01-01 00:00:38.000 2020-01-02 03:45:38.000 38 99938 49988 5048788 38 99938 49988 5048788 -32531 32404 4567.009900990099 461268 -126 125 -0.43564356435643564 -44 -380 101 10370 99281 1.14114 298.14114 149.64114 14964.11411 1.14114 298.14114 149.64114 14964.11431 1.14114 298.14114 149.64114 14964.11400 2020-01-01 2020-01-02 2020-01-01 00:06:20 2020-01-02 03:34:41 2020-01-01 00:06:20.000 2020-01-02 03:34:41.000 380 99281 49830.5 4983050 380 99281 49830.5 4983050 -32189 32746 5266.02 526602 -128 124 0.1 10 -381 101 10371 99282 1.14414 298.14414 149.64414 14964.41441 1.14414 298.14413 149.64414 14964.41448 1.14414 298.14414 149.64414 14964.41400 2020-01-01 2020-01-02 2020-01-01 00:06:21 2020-01-02 03:34:42 2020-01-01 00:06:21.000 2020-01-02 03:34:42.000 381 99282 49831.5 4983150 381 99282 49831.5 4983150 -32188 32747 5267.02 526702 -127 125 1.1 110 -382 101 10372 99283 1.14714 298.14714 149.64714 14964.71471 1.14714 298.14716 149.64714 14964.71459 1.14714 298.14714 149.64714 14964.71400 2020-01-01 2020-01-02 2020-01-01 00:06:22 2020-01-02 03:34:43 2020-01-01 00:06:22.000 2020-01-02 03:34:43.000 382 99283 49832.5 4983250 382 99283 49832.5 4983250 -32187 32748 5268.02 526802 -126 126 2.1 210 -383 101 10373 99284 1.15015 298.15015 149.65015 14965.01501 1.15015 298.15015 149.65014 14965.01472 1.15015 298.15015 149.65015 14965.01500 2020-01-01 2020-01-02 2020-01-01 00:06:23 2020-01-02 03:34:44 2020-01-01 00:06:23.000 2020-01-02 03:34:44.000 383 99284 49833.5 4983350 383 99284 49833.5 4983350 -32186 32749 5269.02 526902 -125 127 3.1 310 -384 101 10374 99285 1.15315 298.15315 149.65315 14965.31531 1.15315 298.15317 149.65315 14965.31547 1.15315 298.15315 149.65315 14965.31500 2020-01-01 2020-01-02 2020-01-01 00:06:24 2020-01-02 03:34:45 2020-01-01 00:06:24.000 2020-01-02 03:34:45.000 384 99285 49834.5 4983450 384 99285 49834.5 4983450 -32185 32750 5270.02 527002 -128 127 1.54 154 -385 101 10375 99286 1.15615 298.15615 149.65615 14965.61561 1.15615 298.15616 149.65615 14965.61578 1.15615 298.15615 149.65615 14965.61500 2020-01-01 2020-01-02 2020-01-01 00:06:25 2020-01-02 03:34:46 2020-01-01 00:06:25.000 2020-01-02 03:34:46.000 385 99286 49835.5 4983550 385 99286 49835.5 4983550 -32184 32751 5271.02 527102 -128 127 -0.02 -2 -386 101 10376 99287 1.15915 298.15915 149.65915 14965.91591 1.15915 298.15915 149.65915 14965.91594 1.15915 298.15915 149.65915 14965.91500 2020-01-01 2020-01-02 2020-01-01 00:06:26 2020-01-02 03:34:47 2020-01-01 00:06:26.000 2020-01-02 03:34:47.000 386 99287 49836.5 4983650 386 99287 49836.5 4983650 -32183 32752 5272.02 527202 -128 123 -1.58 -158 -387 101 10377 99288 1.16216 298.16216 149.66216 14966.21621 1.16216 298.16217 149.66216 14966.21606 1.16216 298.16216 149.66216 14966.21600 2020-01-01 2020-01-02 2020-01-01 00:06:27 2020-01-02 03:34:48 2020-01-01 00:06:27.000 2020-01-02 03:34:48.000 387 99288 49837.5 4983750 387 99288 49837.5 4983750 -32182 32753 5273.02 527302 -127 124 -0.58 -58 +378 101 10368 99279 1.13513 298.13513 149.63513 14963.51351 1.13513 298.13513 149.63513 14963.51326 1.13513 298.13513 149.6351300000001 14963.51300 2020-01-01 2020-01-02 2020-01-01 00:06:18 2020-01-02 03:34:39 2020-01-01 00:06:18.000 2020-01-02 03:34:39.000 378 99279 49828.5 4982850 378 99279 49828.5 4982850 -32191 32744 5264.02 526402 -128 127 3.22 322 +379 101 10369 99280 1.13813 298.13813 149.63813 14963.81381 1.13813 298.13815 149.63814 14963.81401 1.13813 298.13813 149.63812999999985 14963.81300 2020-01-01 2020-01-02 2020-01-01 00:06:19 2020-01-02 03:34:40 2020-01-01 00:06:19.000 2020-01-02 03:34:40.000 379 99280 49829.5 4982950 379 99280 49829.5 4982950 -32190 32745 5265.02 526502 -128 127 1.66 166 +38 102 10028 99938 0.11411 300.11411 150.11411 15161.52552 0.11411 300.1141 150.11411 15161.52562 0.11411 300.11411 150.11411000000032 15161.52511 2020-01-01 2020-01-02 2020-01-01 00:00:38 2020-01-02 03:45:38 2020-01-01 00:00:38.000 2020-01-02 03:45:38.000 38 99938 49988 5048788 38 99938 49988 5048788 -32531 32404 4567.009900990099 461268 -126 125 -0.43564356435643564 -44 +380 101 10370 99281 1.14114 298.14114 149.64114 14964.11411 1.14114 298.14114 149.64114 14964.11431 1.14114 298.14114 149.64113999999984 14964.11400 2020-01-01 2020-01-02 2020-01-01 00:06:20 2020-01-02 03:34:41 2020-01-01 00:06:20.000 2020-01-02 03:34:41.000 380 99281 49830.5 4983050 380 99281 49830.5 4983050 -32189 32746 5266.02 526602 -128 124 0.1 10 +381 101 10371 99282 1.14414 298.14414 149.64414 14964.41441 1.14414 298.14413 149.64414 14964.41448 1.14414 298.14414 149.6441400000002 14964.41400 2020-01-01 2020-01-02 2020-01-01 00:06:21 2020-01-02 03:34:42 2020-01-01 00:06:21.000 2020-01-02 03:34:42.000 381 99282 49831.5 4983150 381 99282 49831.5 4983150 -32188 32747 5267.02 526702 -127 125 1.1 110 +382 101 10372 99283 1.14714 298.14714 149.64714 14964.71471 1.14714 298.14716 149.64714 14964.71459 1.14714 298.14714 149.64713999999975 14964.71400 2020-01-01 2020-01-02 2020-01-01 00:06:22 2020-01-02 03:34:43 2020-01-01 00:06:22.000 2020-01-02 03:34:43.000 382 99283 49832.5 4983250 382 99283 49832.5 4983250 -32187 32748 5268.02 526802 -126 126 2.1 210 +383 101 10373 99284 1.15015 298.15015 149.65015 14965.01501 1.15015 298.15015 149.65014 14965.01472 1.15015 298.15015 149.65014999999997 14965.01500 2020-01-01 2020-01-02 2020-01-01 00:06:23 2020-01-02 03:34:44 2020-01-01 00:06:23.000 2020-01-02 03:34:44.000 383 99284 49833.5 4983350 383 99284 49833.5 4983350 -32186 32749 5269.02 526902 -125 127 3.1 310 +384 101 10374 99285 1.15315 298.15315 149.65315 14965.31531 1.15315 298.15317 149.65315 14965.31547 1.15315 298.15315 149.65315000000007 14965.31500 2020-01-01 2020-01-02 2020-01-01 00:06:24 2020-01-02 03:34:45 2020-01-01 00:06:24.000 2020-01-02 03:34:45.000 384 99285 49834.5 4983450 384 99285 49834.5 4983450 -32185 32750 5270.02 527002 -128 127 1.54 154 +385 101 10375 99286 1.15615 298.15615 149.65615 14965.61561 1.15615 298.15616 149.65615 14965.61578 1.15615 298.15615 149.6561500000001 14965.61500 2020-01-01 2020-01-02 2020-01-01 00:06:25 2020-01-02 03:34:46 2020-01-01 00:06:25.000 2020-01-02 03:34:46.000 385 99286 49835.5 4983550 385 99286 49835.5 4983550 -32184 32751 5271.02 527102 -128 127 -0.02 -2 +386 101 10376 99287 1.15915 298.15915 149.65915 14965.91591 1.15915 298.15915 149.65915 14965.91594 1.15915 298.15915 149.65914999999998 14965.91500 2020-01-01 2020-01-02 2020-01-01 00:06:26 2020-01-02 03:34:47 2020-01-01 00:06:26.000 2020-01-02 03:34:47.000 386 99287 49836.5 4983650 386 99287 49836.5 4983650 -32183 32752 5272.02 527202 -128 123 -1.58 -158 +387 101 10377 99288 1.16216 298.16216 149.66216 14966.21621 1.16216 298.16217 149.66216 14966.21606 1.16216 298.16216 149.6621599999999 14966.21600 2020-01-01 2020-01-02 2020-01-01 00:06:27 2020-01-02 03:34:48 2020-01-01 00:06:27.000 2020-01-02 03:34:48.000 387 99288 49837.5 4983750 387 99288 49837.5 4983750 -32182 32753 5273.02 527302 -127 124 -0.58 -58 388 101 10378 99289 1.16516 298.16516 149.66516 14966.51651 1.16516 298.16516 149.66516 14966.51636 1.16516 298.16516 149.66516 14966.51600 2020-01-01 2020-01-02 2020-01-01 00:06:28 2020-01-02 03:34:49 2020-01-01 00:06:28.000 2020-01-02 03:34:49.000 388 99289 49838.5 4983850 388 99289 49838.5 4983850 -32181 32754 5274.02 527402 -126 125 0.42 42 -389 101 10379 99290 1.16816 298.16816 149.66816 14966.81681 1.16816 298.16818 149.66816 14966.81695 1.16816 298.16816 149.66816 14966.81600 2020-01-01 2020-01-02 2020-01-01 00:06:29 2020-01-02 03:34:50 2020-01-01 00:06:29.000 2020-01-02 03:34:50.000 389 99290 49839.5 4983950 389 99290 49839.5 4983950 -32180 32755 5275.02 527502 -125 126 1.42 142 -39 102 10029 99939 0.11711 300.11711 150.11711 15161.82882 0.11711 300.11713 150.11711 15161.82876 0.11711 300.11711 150.11711 15161.82811 2020-01-01 2020-01-02 2020-01-01 00:00:39 2020-01-02 03:45:39 2020-01-01 00:00:39.000 2020-01-02 03:45:39.000 39 99939 49989 5048889 39 99939 49989 5048889 -32530 32405 4568.009900990099 461369 -125 126 0.5643564356435643 57 -390 101 10380 99291 1.17117 298.17117 149.67117 14967.11711 1.17117 298.17117 149.67117 14967.11725 1.17117 298.17117 149.67117 14967.11700 2020-01-01 2020-01-02 2020-01-01 00:06:30 2020-01-02 03:34:51 2020-01-01 00:06:30.000 2020-01-02 03:34:51.000 390 99291 49840.5 4984050 390 99291 49840.5 4984050 -32179 32756 5276.02 527602 -124 127 2.42 242 -391 101 10381 99292 1.17417 298.17417 149.67417 14967.41741 1.17417 298.17416 149.67417 14967.41741 1.17417 298.17417 149.67417 14967.41700 2020-01-01 2020-01-02 2020-01-01 00:06:31 2020-01-02 03:34:52 2020-01-01 00:06:31.000 2020-01-02 03:34:52.000 391 99292 49841.5 4984150 391 99292 49841.5 4984150 -32178 32757 5277.02 527702 -128 127 0.86 86 -392 101 10382 99293 1.17717 298.17717 149.67717 14967.71771 1.17717 298.1772 149.67717 14967.71753 1.17717 298.17717 149.67717 14967.71700 2020-01-01 2020-01-02 2020-01-01 00:06:32 2020-01-02 03:34:53 2020-01-01 00:06:32.000 2020-01-02 03:34:53.000 392 99293 49842.5 4984250 392 99293 49842.5 4984250 -32177 32758 5278.02 527802 -128 123 -0.7 -70 -393 101 10383 99294 1.18018 298.18018 149.68018 14968.01801 1.18018 298.18018 149.68017 14968.01782 1.18018 298.18018 149.68018 14968.01800 2020-01-01 2020-01-02 2020-01-01 00:06:33 2020-01-02 03:34:54 2020-01-01 00:06:33.000 2020-01-02 03:34:54.000 393 99294 49843.5 4984350 393 99294 49843.5 4984350 -32176 32759 5279.02 527902 -127 124 0.3 30 +389 101 10379 99290 1.16816 298.16816 149.66816 14966.81681 1.16816 298.16818 149.66816 14966.81695 1.16816 298.16816 149.66815999999986 14966.81600 2020-01-01 2020-01-02 2020-01-01 00:06:29 2020-01-02 03:34:50 2020-01-01 00:06:29.000 2020-01-02 03:34:50.000 389 99290 49839.5 4983950 389 99290 49839.5 4983950 -32180 32755 5275.02 527502 -125 126 1.42 142 +39 102 10029 99939 0.11711 300.11711 150.11711 15161.82882 0.11711 300.11713 150.11711 15161.82876 0.11711 300.11711 150.11710999999983 15161.82811 2020-01-01 2020-01-02 2020-01-01 00:00:39 2020-01-02 03:45:39 2020-01-01 00:00:39.000 2020-01-02 03:45:39.000 39 99939 49989 5048889 39 99939 49989 5048889 -32530 32405 4568.009900990099 461369 -125 126 0.5643564356435643 57 +390 101 10380 99291 1.17117 298.17117 149.67117 14967.11711 1.17117 298.17117 149.67117 14967.11725 1.17117 298.17117 149.67116999999976 14967.11700 2020-01-01 2020-01-02 2020-01-01 00:06:30 2020-01-02 03:34:51 2020-01-01 00:06:30.000 2020-01-02 03:34:51.000 390 99291 49840.5 4984050 390 99291 49840.5 4984050 -32179 32756 5276.02 527602 -124 127 2.42 242 +391 101 10381 99292 1.17417 298.17417 149.67417 14967.41741 1.17417 298.17416 149.67417 14967.41741 1.17417 298.17417 149.67417000000012 14967.41700 2020-01-01 2020-01-02 2020-01-01 00:06:31 2020-01-02 03:34:52 2020-01-01 00:06:31.000 2020-01-02 03:34:52.000 391 99292 49841.5 4984150 391 99292 49841.5 4984150 -32178 32757 5277.02 527702 -128 127 0.86 86 +392 101 10382 99293 1.17717 298.17717 149.67717 14967.71771 1.17717 298.1772 149.67717 14967.71753 1.17717 298.17717 149.67717000000022 14967.71700 2020-01-01 2020-01-02 2020-01-01 00:06:32 2020-01-02 03:34:53 2020-01-01 00:06:32.000 2020-01-02 03:34:53.000 392 99293 49842.5 4984250 392 99293 49842.5 4984250 -32177 32758 5278.02 527802 -128 123 -0.7 -70 +393 101 10383 99294 1.18018 298.18018 149.68018 14968.01801 1.18018 298.18018 149.68017 14968.01782 1.18018 298.18018 149.68017999999987 14968.01800 2020-01-01 2020-01-02 2020-01-01 00:06:33 2020-01-02 03:34:54 2020-01-01 00:06:33.000 2020-01-02 03:34:54.000 393 99294 49843.5 4984350 393 99294 49843.5 4984350 -32176 32759 5279.02 527902 -127 124 0.3 30 394 101 10384 99295 1.18318 298.18318 149.68318 14968.31831 1.18318 298.1832 149.68318 14968.31842 1.18318 298.18318 149.68318 14968.31800 2020-01-01 2020-01-02 2020-01-01 00:06:34 2020-01-02 03:34:55 2020-01-01 00:06:34.000 2020-01-02 03:34:55.000 394 99295 49844.5 4984450 394 99295 49844.5 4984450 -32175 32760 5280.02 528002 -126 125 1.3 130 -395 101 10385 99296 1.18618 298.18618 149.68618 14968.61861 1.18618 298.1862 149.68618 14968.61875 1.18618 298.18618 149.68618 14968.61800 2020-01-01 2020-01-02 2020-01-01 00:06:35 2020-01-02 03:34:56 2020-01-01 00:06:35.000 2020-01-02 03:34:56.000 395 99296 49845.5 4984550 395 99296 49845.5 4984550 -32174 32761 5281.02 528102 -125 126 2.3 230 -396 101 10386 99297 1.18918 298.18918 149.68918 14968.91891 1.18918 298.18918 149.68918 14968.91889 1.18918 298.18918 149.68918 14968.91800 2020-01-01 2020-01-02 2020-01-01 00:06:36 2020-01-02 03:34:57 2020-01-01 00:06:36.000 2020-01-02 03:34:57.000 396 99297 49846.5 4984650 396 99297 49846.5 4984650 -32173 32762 5282.02 528202 -124 127 3.3 330 -397 101 10387 99298 1.19219 298.19219 149.69219 14969.21921 1.19219 298.1922 149.69219 14969.21964 1.19219 298.19219 149.69219 14969.21900 2020-01-01 2020-01-02 2020-01-01 00:06:37 2020-01-02 03:34:58 2020-01-01 00:06:37.000 2020-01-02 03:34:58.000 397 99298 49847.5 4984750 397 99298 49847.5 4984750 -32172 32763 5283.02 528302 -128 127 1.74 174 -398 101 10388 99299 1.19519 298.19519 149.69519 14969.51951 1.19519 298.1952 149.69519 14969.51929 1.19519 298.19519 149.69519 14969.51900 2020-01-01 2020-01-02 2020-01-01 00:06:38 2020-01-02 03:34:59 2020-01-01 00:06:38.000 2020-01-02 03:34:59.000 398 99299 49848.5 4984850 398 99299 49848.5 4984850 -32171 32764 5284.02 528402 -128 123 0.18 18 -399 101 10389 99300 1.19819 298.19819 149.69819 14969.81981 1.19819 298.1982 149.69819 14969.81989 1.19819 298.19819 149.69819 14969.81900 2020-01-01 2020-01-02 2020-01-01 00:06:39 2020-01-02 03:35:00 2020-01-01 00:06:39.000 2020-01-02 03:35:00.000 399 99300 49849.5 4984950 399 99300 49849.5 4984950 -32170 32765 5285.02 528502 -127 124 1.18 118 -4 102 1003 9994 0.01201 300.01201 150.01201 15151.21321 0.01201 300.01202 150.01201 15151.21318 0.01201 300.01201 150.01201 15151.21301 2020-01-01 2020-01-02 2020-01-01 00:00:04 2020-01-02 03:45:04 2020-01-01 00:00:04.000 2020-01-02 03:45:04.000 4 99904 49954 5045354 4 99904 49954 5045354 -32565 32370 4533.009900990099 457834 -128 127 -1.4851485148514851 -150 -40 102 10030 99940 0.12012 300.12012 150.12012 15162.13213 0.12012 300.12012 150.12011 15162.13191 0.12012 300.12012 150.12012 15162.13212 2020-01-01 2020-01-02 2020-01-01 00:00:40 2020-01-02 03:45:40 2020-01-01 00:00:40.000 2020-01-02 03:45:40.000 40 99940 49990 5048990 40 99940 49990 5048990 -32529 32406 4569.009900990099 461470 -124 127 1.5643564356435644 158 -400 101 10390 99301 1.2012 298.2012 149.7012 14970.12012 1.2012 298.2012 149.7012 14970.12022 1.20120 298.20120 149.70120 14970.12000 2020-01-01 2020-01-02 2020-01-01 00:06:40 2020-01-02 03:35:01 2020-01-01 00:06:40.000 2020-01-02 03:35:01.000 400 99301 49850.5 4985050 400 99301 49850.5 4985050 -32169 32766 5286.02 528602 -126 125 2.18 218 -401 101 10391 99302 1.2042 298.2042 149.7042 14970.42042 1.2042 298.2042 149.7042 14970.42035 1.20420 298.20420 149.70420 14970.42000 2020-01-01 2020-01-02 2020-01-01 00:06:41 2020-01-02 03:35:02 2020-01-01 00:06:41.000 2020-01-02 03:35:02.000 401 99302 49851.5 4985150 401 99302 49851.5 4985150 -32168 32767 5287.02 528702 -125 126 3.18 318 -402 101 10392 99303 1.2072 298.2072 149.7072 14970.72072 1.2072 298.2072 149.70721 14970.72111 1.20720 298.20720 149.70720 14970.72000 2020-01-01 2020-01-02 2020-01-01 00:06:42 2020-01-02 03:35:03 2020-01-01 00:06:42.000 2020-01-02 03:35:03.000 402 99303 49852.5 4985250 402 99303 49852.5 4985250 -32768 32370 4632.66 463266 -124 127 4.18 418 -403 101 10393 99304 1.21021 298.21021 149.71021 14971.02102 1.21021 298.2102 149.7102 14971.02077 1.21021 298.21021 149.71021 14971.02100 2020-01-01 2020-01-02 2020-01-01 00:06:43 2020-01-02 03:35:04 2020-01-01 00:06:43.000 2020-01-02 03:35:04.000 403 99304 49853.5 4985350 403 99304 49853.5 4985350 -32767 32371 4633.66 463366 -128 127 2.62 262 -404 101 10394 99305 1.21321 298.21321 149.71321 14971.32132 1.21321 298.21323 149.71321 14971.32139 1.21321 298.21321 149.71321 14971.32100 2020-01-01 2020-01-02 2020-01-01 00:06:44 2020-01-02 03:35:05 2020-01-01 00:06:44.000 2020-01-02 03:35:05.000 404 99305 49854.5 4985450 404 99305 49854.5 4985450 -32766 32372 4634.66 463466 -128 127 1.06 106 -405 101 10395 99306 1.21621 298.21621 149.71621 14971.62162 1.21621 298.21622 149.71621 14971.62169 1.21621 298.21621 149.71621 14971.62100 2020-01-01 2020-01-02 2020-01-01 00:06:45 2020-01-02 03:35:06 2020-01-01 00:06:45.000 2020-01-02 03:35:06.000 405 99306 49855.5 4985550 405 99306 49855.5 4985550 -32765 32373 4635.66 463566 -128 124 -0.5 -50 -406 101 10396 99307 1.21921 298.21921 149.71921 14971.92192 1.21921 298.2192 149.71921 14971.92199 1.21921 298.21921 149.71921 14971.92100 2020-01-01 2020-01-02 2020-01-01 00:06:46 2020-01-02 03:35:07 2020-01-01 00:06:46.000 2020-01-02 03:35:07.000 406 99307 49856.5 4985650 406 99307 49856.5 4985650 -32764 32374 4636.66 463666 -127 125 0.5 50 -407 101 10397 99308 1.22222 298.22222 149.72222 14972.22222 1.22222 298.22223 149.72222 14972.22257 1.22222 298.22222 149.72222 14972.22200 2020-01-01 2020-01-02 2020-01-01 00:06:47 2020-01-02 03:35:08 2020-01-01 00:06:47.000 2020-01-02 03:35:08.000 407 99308 49857.5 4985750 407 99308 49857.5 4985750 -32763 32375 4637.66 463766 -126 126 1.5 150 -408 101 10398 99309 1.22522 298.22522 149.72522 14972.52252 1.22522 298.22522 149.72522 14972.52224 1.22522 298.22522 149.72522 14972.52200 2020-01-01 2020-01-02 2020-01-01 00:06:48 2020-01-02 03:35:09 2020-01-01 00:06:48.000 2020-01-02 03:35:09.000 408 99309 49858.5 4985850 408 99309 49858.5 4985850 -32762 32376 4638.66 463866 -125 127 2.5 250 -409 101 10399 99310 1.22822 298.22822 149.72822 14972.82282 1.22822 298.22824 149.72822 14972.82286 1.22822 298.22822 149.72822 14972.82200 2020-01-01 2020-01-02 2020-01-01 00:06:49 2020-01-02 03:35:10 2020-01-01 00:06:49.000 2020-01-02 03:35:10.000 409 99310 49859.5 4985950 409 99310 49859.5 4985950 -32761 32377 4639.66 463966 -128 127 0.94 94 -41 102 10031 99941 0.12312 300.12312 150.12312 15162.43543 0.12312 300.1231 150.12312 15162.43521 0.12312 300.12312 150.12312 15162.43512 2020-01-01 2020-01-02 2020-01-01 00:00:41 2020-01-02 03:45:41 2020-01-01 00:00:41.000 2020-01-02 03:45:41.000 41 99941 49991 5049091 41 99941 49991 5049091 -32528 32407 4570.009900990099 461571 -128 127 0.0297029702970297 3 -410 101 10400 99311 1.23123 298.23123 149.73123 14973.12312 1.23123 298.23123 149.73123 14973.12316 1.23123 298.23123 149.73123 14973.12300 2020-01-01 2020-01-02 2020-01-01 00:06:50 2020-01-02 03:35:11 2020-01-01 00:06:50.000 2020-01-02 03:35:11.000 410 99311 49860.5 4986050 410 99311 49860.5 4986050 -32760 32378 4640.66 464066 -128 127 -0.62 -62 -411 101 10401 99312 1.23423 298.23423 149.73423 14973.42342 1.23423 298.23422 149.73423 14973.42345 1.23423 298.23423 149.73423 14973.42300 2020-01-01 2020-01-02 2020-01-01 00:06:51 2020-01-02 03:35:12 2020-01-01 00:06:51.000 2020-01-02 03:35:12.000 411 99312 49861.5 4986150 411 99312 49861.5 4986150 -32759 32379 4641.66 464166 -128 123 -2.18 -218 -412 101 10402 99313 1.23723 298.23723 149.73723 14973.72372 1.23723 298.23724 149.73724 14973.72405 1.23723 298.23723 149.73723 14973.72300 2020-01-01 2020-01-02 2020-01-01 00:06:52 2020-01-02 03:35:13 2020-01-01 00:06:52.000 2020-01-02 03:35:13.000 412 99313 49862.5 4986250 412 99313 49862.5 4986250 -32758 32380 4642.66 464266 -127 124 -1.18 -118 -413 101 10403 99314 1.24024 298.24024 149.74024 14974.02402 1.24024 298.24023 149.74023 14974.02374 1.24024 298.24024 149.74024 14974.02400 2020-01-01 2020-01-02 2020-01-01 00:06:53 2020-01-02 03:35:14 2020-01-01 00:06:53.000 2020-01-02 03:35:14.000 413 99314 49863.5 4986350 413 99314 49863.5 4986350 -32757 32381 4643.66 464366 -126 125 -0.18 -18 -414 101 10404 99315 1.24324 298.24324 149.74324 14974.32432 1.24324 298.24326 149.74324 14974.32433 1.24324 298.24324 149.74324 14974.32400 2020-01-01 2020-01-02 2020-01-01 00:06:54 2020-01-02 03:35:15 2020-01-01 00:06:54.000 2020-01-02 03:35:15.000 414 99315 49864.5 4986450 414 99315 49864.5 4986450 -32756 32382 4644.66 464466 -125 126 0.82 82 -415 101 10405 99316 1.24624 298.24624 149.74624 14974.62462 1.24624 298.24625 149.74624 14974.62463 1.24624 298.24624 149.74624 14974.62400 2020-01-01 2020-01-02 2020-01-01 00:06:55 2020-01-02 03:35:16 2020-01-01 00:06:55.000 2020-01-02 03:35:16.000 415 99316 49865.5 4986550 415 99316 49865.5 4986550 -32755 32383 4645.66 464566 -124 127 1.82 182 -416 101 10406 99317 1.24924 298.24924 149.74924 14974.92492 1.24924 298.24924 149.74924 14974.92492 1.24924 298.24924 149.74924 14974.92400 2020-01-01 2020-01-02 2020-01-01 00:06:56 2020-01-02 03:35:17 2020-01-01 00:06:56.000 2020-01-02 03:35:17.000 416 99317 49866.5 4986650 416 99317 49866.5 4986650 -32754 32384 4646.66 464666 -128 127 0.26 26 -417 101 10407 99318 1.25225 298.25225 149.75225 14975.22522 1.25225 298.25226 149.75225 14975.22552 1.25225 298.25225 149.75225 14975.22500 2020-01-01 2020-01-02 2020-01-01 00:06:57 2020-01-02 03:35:18 2020-01-01 00:06:57.000 2020-01-02 03:35:18.000 417 99318 49867.5 4986750 417 99318 49867.5 4986750 -32753 32385 4647.66 464766 -128 123 -1.3 -130 -418 101 10408 99319 1.25525 298.25525 149.75525 14975.52552 1.25525 298.25525 149.75525 14975.52521 1.25525 298.25525 149.75525 14975.52500 2020-01-01 2020-01-02 2020-01-01 00:06:58 2020-01-02 03:35:19 2020-01-01 00:06:58.000 2020-01-02 03:35:19.000 418 99319 49868.5 4986850 418 99319 49868.5 4986850 -32752 32386 4648.66 464866 -127 124 -0.3 -30 -419 101 10409 99320 1.25825 298.25825 149.75825 14975.82582 1.25825 298.25827 149.75825 14975.8258 1.25825 298.25825 149.75825 14975.82500 2020-01-01 2020-01-02 2020-01-01 00:06:59 2020-01-02 03:35:20 2020-01-01 00:06:59.000 2020-01-02 03:35:20.000 419 99320 49869.5 4986950 419 99320 49869.5 4986950 -32751 32387 4649.66 464966 -126 125 0.7 70 -42 102 10032 99942 0.12612 300.12612 150.12612 15162.73873 0.12612 300.12613 150.12612 15162.73896 0.12612 300.12612 150.12612 15162.73812 2020-01-01 2020-01-02 2020-01-01 00:00:42 2020-01-02 03:45:42 2020-01-01 00:00:42.000 2020-01-02 03:45:42.000 42 99942 49992 5049192 42 99942 49992 5049192 -32527 32408 4571.009900990099 461672 -128 127 -1.504950495049505 -152 -420 101 10410 99321 1.26126 298.26126 149.76126 14976.12612 1.26126 298.26126 149.76126 14976.12609 1.26126 298.26126 149.76126 14976.12600 2020-01-01 2020-01-02 2020-01-01 00:07:00 2020-01-02 03:35:21 2020-01-01 00:07:00.000 2020-01-02 03:35:21.000 420 99321 49870.5 4987050 420 99321 49870.5 4987050 -32750 32388 4650.66 465066 -125 126 1.7 170 -421 101 10411 99322 1.26426 298.26426 149.76426 14976.42642 1.26426 298.26425 149.76426 14976.4264 1.26426 298.26426 149.76426 14976.42600 2020-01-01 2020-01-02 2020-01-01 00:07:01 2020-01-02 03:35:22 2020-01-01 00:07:01.000 2020-01-02 03:35:22.000 421 99322 49871.5 4987150 421 99322 49871.5 4987150 -32749 32389 4651.66 465166 -124 127 2.7 270 -422 101 10412 99323 1.26726 298.26726 149.76726 14976.72672 1.26726 298.26727 149.76727 14976.72702 1.26726 298.26726 149.76726 14976.72600 2020-01-01 2020-01-02 2020-01-01 00:07:02 2020-01-02 03:35:23 2020-01-01 00:07:02.000 2020-01-02 03:35:23.000 422 99323 49872.5 4987250 422 99323 49872.5 4987250 -32748 32390 4652.66 465266 -128 127 1.14 114 -423 101 10413 99324 1.27027 298.27027 149.77027 14977.02702 1.27027 298.27026 149.77026 14977.02667 1.27027 298.27027 149.77027 14977.02700 2020-01-01 2020-01-02 2020-01-01 00:07:03 2020-01-02 03:35:24 2020-01-01 00:07:03.000 2020-01-02 03:35:24.000 423 99324 49873.5 4987350 423 99324 49873.5 4987350 -32747 32391 4653.66 465366 -128 123 -0.42 -42 -424 101 10414 99325 1.27327 298.27327 149.77327 14977.32732 1.27327 298.2733 149.77327 14977.32727 1.27327 298.27327 149.77327 14977.32700 2020-01-01 2020-01-02 2020-01-01 00:07:04 2020-01-02 03:35:25 2020-01-01 00:07:04.000 2020-01-02 03:35:25.000 424 99325 49874.5 4987450 424 99325 49874.5 4987450 -32746 32392 4654.66 465466 -127 124 0.58 58 -425 101 10415 99326 1.27627 298.27627 149.77627 14977.62762 1.27627 298.27628 149.77627 14977.62756 1.27627 298.27627 149.77627 14977.62700 2020-01-01 2020-01-02 2020-01-01 00:07:05 2020-01-02 03:35:26 2020-01-01 00:07:05.000 2020-01-02 03:35:26.000 425 99326 49875.5 4987550 425 99326 49875.5 4987550 -32745 32393 4655.66 465566 -126 125 1.58 158 -426 101 10416 99327 1.27927 298.27927 149.77927 14977.92792 1.27927 298.27927 149.77927 14977.92787 1.27927 298.27927 149.77927 14977.92700 2020-01-01 2020-01-02 2020-01-01 00:07:06 2020-01-02 03:35:27 2020-01-01 00:07:06.000 2020-01-02 03:35:27.000 426 99327 49876.5 4987650 426 99327 49876.5 4987650 -32744 32394 4656.66 465666 -125 126 2.58 258 -427 101 10417 99328 1.28228 298.28228 149.78228 14978.22822 1.28228 298.2823 149.78228 14978.22849 1.28228 298.28228 149.78228 14978.22800 2020-01-01 2020-01-02 2020-01-01 00:07:07 2020-01-02 03:35:28 2020-01-01 00:07:07.000 2020-01-02 03:35:28.000 427 99328 49877.5 4987750 427 99328 49877.5 4987750 -32743 32395 4657.66 465766 -124 127 3.58 358 -428 101 10418 99329 1.28528 298.28528 149.78528 14978.52852 1.28528 298.28528 149.78528 14978.52815 1.28528 298.28528 149.78528 14978.52800 2020-01-01 2020-01-02 2020-01-01 00:07:08 2020-01-02 03:35:29 2020-01-01 00:07:08.000 2020-01-02 03:35:29.000 428 99329 49878.5 4987850 428 99329 49878.5 4987850 -32742 32396 4658.66 465866 -128 127 2.02 202 -429 101 10419 99330 1.28828 298.28828 149.78828 14978.82882 1.28828 298.2883 149.78828 14978.8289 1.28828 298.28828 149.78828 14978.82800 2020-01-01 2020-01-02 2020-01-01 00:07:09 2020-01-02 03:35:30 2020-01-01 00:07:09.000 2020-01-02 03:35:30.000 429 99330 49879.5 4987950 429 99330 49879.5 4987950 -32741 32397 4659.66 465966 -128 127 0.46 46 -43 102 10033 99943 0.12912 300.12912 150.12912 15163.04204 0.12912 300.12912 150.12912 15163.04211 0.12912 300.12912 150.12912 15163.04112 2020-01-01 2020-01-02 2020-01-01 00:00:43 2020-01-02 03:45:43 2020-01-01 00:00:43.000 2020-01-02 03:45:43.000 43 99943 49993 5049293 43 99943 49993 5049293 -32526 32409 4572.009900990099 461773 -128 124 -3.0396039603960396 -307 -430 101 10420 99331 1.29129 298.29129 149.79129 14979.12912 1.29129 298.2913 149.79129 14979.12904 1.29129 298.29129 149.79129 14979.12900 2020-01-01 2020-01-02 2020-01-01 00:07:10 2020-01-02 03:35:31 2020-01-01 00:07:10.000 2020-01-02 03:35:31.000 430 99331 49880.5 4988050 430 99331 49880.5 4988050 -32740 32398 4660.66 466066 -128 124 -1.1 -110 -431 101 10421 99332 1.29429 298.29429 149.79429 14979.42942 1.29429 298.29428 149.79429 14979.42933 1.29429 298.29429 149.79429 14979.42900 2020-01-01 2020-01-02 2020-01-01 00:07:11 2020-01-02 03:35:32 2020-01-01 00:07:11.000 2020-01-02 03:35:32.000 431 99332 49881.5 4988150 431 99332 49881.5 4988150 -32739 32399 4661.66 466166 -127 125 -0.1 -10 -432 101 10422 99333 1.29729 298.29729 149.79729 14979.72972 1.29729 298.2973 149.79729 14979.72996 1.29729 298.29729 149.79729 14979.72900 2020-01-01 2020-01-02 2020-01-01 00:07:12 2020-01-02 03:35:33 2020-01-01 00:07:12.000 2020-01-02 03:35:33.000 432 99333 49882.5 4988250 432 99333 49882.5 4988250 -32738 32400 4662.66 466266 -126 126 0.9 90 -433 101 10423 99334 1.3003 298.3003 149.8003 14980.03003 1.3003 298.3003 149.80029 14980.02962 1.30030 298.30030 149.80030 14980.03000 2020-01-01 2020-01-02 2020-01-01 00:07:13 2020-01-02 03:35:34 2020-01-01 00:07:13.000 2020-01-02 03:35:34.000 433 99334 49883.5 4988350 433 99334 49883.5 4988350 -32737 32401 4663.66 466366 -125 127 1.9 190 -434 101 10424 99335 1.3033 298.3033 149.8033 14980.33033 1.3033 298.3033 149.8033 14980.33037 1.30330 298.30330 149.80330 14980.33000 2020-01-01 2020-01-02 2020-01-01 00:07:14 2020-01-02 03:35:35 2020-01-01 00:07:14.000 2020-01-02 03:35:35.000 434 99335 49884.5 4988450 434 99335 49884.5 4988450 -32736 32402 4664.66 466466 -128 127 0.34 34 -435 101 10425 99336 1.3063 298.3063 149.8063 14980.63063 1.3063 298.3063 149.8063 14980.63051 1.30630 298.30630 149.80630 14980.63000 2020-01-01 2020-01-02 2020-01-01 00:07:15 2020-01-02 03:35:36 2020-01-01 00:07:15.000 2020-01-02 03:35:36.000 435 99336 49885.5 4988550 435 99336 49885.5 4988550 -32735 32403 4665.66 466566 -128 127 -1.22 -122 -436 101 10426 99337 1.3093 298.3093 149.8093 14980.93093 1.3093 298.3093 149.8093 14980.93084 1.30930 298.30930 149.80930 14980.93000 2020-01-01 2020-01-02 2020-01-01 00:07:16 2020-01-02 03:35:37 2020-01-01 00:07:16.000 2020-01-02 03:35:37.000 436 99337 49886.5 4988650 436 99337 49886.5 4988650 -32734 32404 4666.66 466666 -128 123 -2.78 -278 -437 101 10427 99338 1.31231 298.31231 149.81231 14981.23123 1.31231 298.31232 149.81231 14981.23143 1.31231 298.31231 149.81231 14981.23100 2020-01-01 2020-01-02 2020-01-01 00:07:17 2020-01-02 03:35:38 2020-01-01 00:07:17.000 2020-01-02 03:35:38.000 437 99338 49887.5 4988750 437 99338 49887.5 4988750 -32733 32405 4667.66 466766 -127 124 -1.78 -178 -438 101 10428 99339 1.31531 298.31531 149.81531 14981.53153 1.31531 298.3153 149.81531 14981.53173 1.31531 298.31531 149.81531 14981.53100 2020-01-01 2020-01-02 2020-01-01 00:07:18 2020-01-02 03:35:39 2020-01-01 00:07:18.000 2020-01-02 03:35:39.000 438 99339 49888.5 4988850 438 99339 49888.5 4988850 -32732 32406 4668.66 466866 -126 125 -0.78 -78 -439 101 10429 99340 1.31831 298.31831 149.81831 14981.83183 1.31831 298.31833 149.81831 14981.83184 1.31831 298.31831 149.81831 14981.83100 2020-01-01 2020-01-02 2020-01-01 00:07:19 2020-01-02 03:35:40 2020-01-01 00:07:19.000 2020-01-02 03:35:40.000 439 99340 49889.5 4988950 439 99340 49889.5 4988950 -32731 32407 4669.66 466966 -125 126 0.22 22 +395 101 10385 99296 1.18618 298.18618 149.68618 14968.61861 1.18618 298.1862 149.68618 14968.61875 1.18618 298.18618 149.68618000000012 14968.61800 2020-01-01 2020-01-02 2020-01-01 00:06:35 2020-01-02 03:34:56 2020-01-01 00:06:35.000 2020-01-02 03:34:56.000 395 99296 49845.5 4984550 395 99296 49845.5 4984550 -32174 32761 5281.02 528102 -125 126 2.3 230 +396 101 10386 99297 1.18918 298.18918 149.68918 14968.91891 1.18918 298.18918 149.68918 14968.91889 1.18918 298.18918 149.68917999999988 14968.91800 2020-01-01 2020-01-02 2020-01-01 00:06:36 2020-01-02 03:34:57 2020-01-01 00:06:36.000 2020-01-02 03:34:57.000 396 99297 49846.5 4984650 396 99297 49846.5 4984650 -32173 32762 5282.02 528202 -124 127 3.3 330 +397 101 10387 99298 1.19219 298.19219 149.69219 14969.21921 1.19219 298.1922 149.69219 14969.21964 1.19219 298.19219 149.69218999999987 14969.21900 2020-01-01 2020-01-02 2020-01-01 00:06:37 2020-01-02 03:34:58 2020-01-01 00:06:37.000 2020-01-02 03:34:58.000 397 99298 49847.5 4984750 397 99298 49847.5 4984750 -32172 32763 5283.02 528302 -128 127 1.74 174 +398 101 10388 99299 1.19519 298.19519 149.69519 14969.51951 1.19519 298.1952 149.69519 14969.51929 1.19519 298.19519 149.69519000000022 14969.51900 2020-01-01 2020-01-02 2020-01-01 00:06:38 2020-01-02 03:34:59 2020-01-01 00:06:38.000 2020-01-02 03:34:59.000 398 99299 49848.5 4984850 398 99299 49848.5 4984850 -32171 32764 5284.02 528402 -128 123 0.18 18 +399 101 10389 99300 1.19819 298.19819 149.69819 14969.81981 1.19819 298.1982 149.69819 14969.81989 1.19819 298.19819 149.69818999999978 14969.81900 2020-01-01 2020-01-02 2020-01-01 00:06:39 2020-01-02 03:35:00 2020-01-01 00:06:39.000 2020-01-02 03:35:00.000 399 99300 49849.5 4984950 399 99300 49849.5 4984950 -32170 32765 5285.02 528502 -127 124 1.18 118 +4 102 1003 9994 0.01201 300.01201 150.01201 15151.21321 0.01201 300.01202 150.01201 15151.21318 0.01201 300.01201 150.01201000000026 15151.21301 2020-01-01 2020-01-02 2020-01-01 00:00:04 2020-01-02 03:45:04 2020-01-01 00:00:04.000 2020-01-02 03:45:04.000 4 99904 49954 5045354 4 99904 49954 5045354 -32565 32370 4533.009900990099 457834 -128 127 -1.4851485148514851 -150 +40 102 10030 99940 0.12012 300.12012 150.12012 15162.13213 0.12012 300.12012 150.12011 15162.13191 0.12012 300.12012 150.1201199999997 15162.13212 2020-01-01 2020-01-02 2020-01-01 00:00:40 2020-01-02 03:45:40 2020-01-01 00:00:40.000 2020-01-02 03:45:40.000 40 99940 49990 5048990 40 99940 49990 5048990 -32529 32406 4569.009900990099 461470 -124 127 1.5643564356435644 158 +400 101 10390 99301 1.2012 298.2012 149.7012 14970.12012 1.2012 298.2012 149.7012 14970.12022 1.20120 298.20120 149.7012 14970.12000 2020-01-01 2020-01-02 2020-01-01 00:06:40 2020-01-02 03:35:01 2020-01-01 00:06:40.000 2020-01-02 03:35:01.000 400 99301 49850.5 4985050 400 99301 49850.5 4985050 -32169 32766 5286.02 528602 -126 125 2.18 218 +401 101 10391 99302 1.2042 298.2042 149.7042 14970.42042 1.2042 298.2042 149.7042 14970.42035 1.20420 298.20420 149.7042000000001 14970.42000 2020-01-01 2020-01-02 2020-01-01 00:06:41 2020-01-02 03:35:02 2020-01-01 00:06:41.000 2020-01-02 03:35:02.000 401 99302 49851.5 4985150 401 99302 49851.5 4985150 -32168 32767 5287.02 528702 -125 126 3.18 318 +402 101 10392 99303 1.2072 298.2072 149.7072 14970.72072 1.2072 298.2072 149.70721 14970.72111 1.20720 298.20720 149.70720000000014 14970.72000 2020-01-01 2020-01-02 2020-01-01 00:06:42 2020-01-02 03:35:03 2020-01-01 00:06:42.000 2020-01-02 03:35:03.000 402 99303 49852.5 4985250 402 99303 49852.5 4985250 -32768 32370 4632.66 463266 -124 127 4.18 418 +403 101 10393 99304 1.21021 298.21021 149.71021 14971.02102 1.21021 298.2102 149.7102 14971.02077 1.21021 298.21021 149.71020999999988 14971.02100 2020-01-01 2020-01-02 2020-01-01 00:06:43 2020-01-02 03:35:04 2020-01-01 00:06:43.000 2020-01-02 03:35:04.000 403 99304 49853.5 4985350 403 99304 49853.5 4985350 -32767 32371 4633.66 463366 -128 127 2.62 262 +404 101 10394 99305 1.21321 298.21321 149.71321 14971.32132 1.21321 298.21323 149.71321 14971.32139 1.21321 298.21321 149.71320999999992 14971.32100 2020-01-01 2020-01-02 2020-01-01 00:06:44 2020-01-02 03:35:05 2020-01-01 00:06:44.000 2020-01-02 03:35:05.000 404 99305 49854.5 4985450 404 99305 49854.5 4985450 -32766 32372 4634.66 463466 -128 127 1.06 106 +405 101 10395 99306 1.21621 298.21621 149.71621 14971.62162 1.21621 298.21622 149.71621 14971.62169 1.21621 298.21621 149.71621000000002 14971.62100 2020-01-01 2020-01-02 2020-01-01 00:06:45 2020-01-02 03:35:06 2020-01-01 00:06:45.000 2020-01-02 03:35:06.000 405 99306 49855.5 4985550 405 99306 49855.5 4985550 -32765 32373 4635.66 463566 -128 124 -0.5 -50 +406 101 10396 99307 1.21921 298.21921 149.71921 14971.92192 1.21921 298.2192 149.71921 14971.92199 1.21921 298.21921 149.7192099999999 14971.92100 2020-01-01 2020-01-02 2020-01-01 00:06:46 2020-01-02 03:35:07 2020-01-01 00:06:46.000 2020-01-02 03:35:07.000 406 99307 49856.5 4985650 406 99307 49856.5 4985650 -32764 32374 4636.66 463666 -127 125 0.5 50 +407 101 10397 99308 1.22222 298.22222 149.72222 14972.22222 1.22222 298.22223 149.72222 14972.22257 1.22222 298.22222 149.7222199999998 14972.22200 2020-01-01 2020-01-02 2020-01-01 00:06:47 2020-01-02 03:35:08 2020-01-01 00:06:47.000 2020-01-02 03:35:08.000 407 99308 49857.5 4985750 407 99308 49857.5 4985750 -32763 32375 4637.66 463766 -126 126 1.5 150 +408 101 10398 99309 1.22522 298.22522 149.72522 14972.52252 1.22522 298.22522 149.72522 14972.52224 1.22522 298.22522 149.72522000000015 14972.52200 2020-01-01 2020-01-02 2020-01-01 00:06:48 2020-01-02 03:35:09 2020-01-01 00:06:48.000 2020-01-02 03:35:09.000 408 99309 49858.5 4985850 408 99309 49858.5 4985850 -32762 32376 4638.66 463866 -125 127 2.5 250 +409 101 10399 99310 1.22822 298.22822 149.72822 14972.82282 1.22822 298.22824 149.72822 14972.82286 1.22822 298.22822 149.72822000000025 14972.82200 2020-01-01 2020-01-02 2020-01-01 00:06:49 2020-01-02 03:35:10 2020-01-01 00:06:49.000 2020-01-02 03:35:10.000 409 99310 49859.5 4985950 409 99310 49859.5 4985950 -32761 32377 4639.66 463966 -128 127 0.94 94 +41 102 10031 99941 0.12312 300.12312 150.12312 15162.43543 0.12312 300.1231 150.12312 15162.43521 0.12312 300.12312 150.12312000000017 15162.43512 2020-01-01 2020-01-02 2020-01-01 00:00:41 2020-01-02 03:45:41 2020-01-01 00:00:41.000 2020-01-02 03:45:41.000 41 99941 49991 5049091 41 99941 49991 5049091 -32528 32407 4570.009900990099 461571 -128 127 0.0297029702970297 3 +410 101 10400 99311 1.23123 298.23123 149.73123 14973.12312 1.23123 298.23123 149.73123 14973.12316 1.23123 298.23123 149.7312299999999 14973.12300 2020-01-01 2020-01-02 2020-01-01 00:06:50 2020-01-02 03:35:11 2020-01-01 00:06:50.000 2020-01-02 03:35:11.000 410 99311 49860.5 4986050 410 99311 49860.5 4986050 -32760 32378 4640.66 464066 -128 127 -0.62 -62 +411 101 10401 99312 1.23423 298.23423 149.73423 14973.42342 1.23423 298.23422 149.73423 14973.42345 1.23423 298.23423 149.73423000000003 14973.42300 2020-01-01 2020-01-02 2020-01-01 00:06:51 2020-01-02 03:35:12 2020-01-01 00:06:51.000 2020-01-02 03:35:12.000 411 99312 49861.5 4986150 411 99312 49861.5 4986150 -32759 32379 4641.66 464166 -128 123 -2.18 -218 +412 101 10402 99313 1.23723 298.23723 149.73723 14973.72372 1.23723 298.23724 149.73724 14973.72405 1.23723 298.23723 149.73723000000015 14973.72300 2020-01-01 2020-01-02 2020-01-01 00:06:52 2020-01-02 03:35:13 2020-01-01 00:06:52.000 2020-01-02 03:35:13.000 412 99313 49862.5 4986250 412 99313 49862.5 4986250 -32758 32380 4642.66 464266 -127 124 -1.18 -118 +413 101 10403 99314 1.24024 298.24024 149.74024 14974.02402 1.24024 298.24023 149.74023 14974.02374 1.24024 298.24024 149.7402399999998 14974.02400 2020-01-01 2020-01-02 2020-01-01 00:06:53 2020-01-02 03:35:14 2020-01-01 00:06:53.000 2020-01-02 03:35:14.000 413 99314 49863.5 4986350 413 99314 49863.5 4986350 -32757 32381 4643.66 464366 -126 125 -0.18 -18 +414 101 10404 99315 1.24324 298.24324 149.74324 14974.32432 1.24324 298.24326 149.74324 14974.32433 1.24324 298.24324 149.74323999999982 14974.32400 2020-01-01 2020-01-02 2020-01-01 00:06:54 2020-01-02 03:35:15 2020-01-01 00:06:54.000 2020-01-02 03:35:15.000 414 99315 49864.5 4986450 414 99315 49864.5 4986450 -32756 32382 4644.66 464466 -125 126 0.82 82 +415 101 10405 99316 1.24624 298.24624 149.74624 14974.62462 1.24624 298.24625 149.74624 14974.62463 1.24624 298.24624 149.74624000000026 14974.62400 2020-01-01 2020-01-02 2020-01-01 00:06:55 2020-01-02 03:35:16 2020-01-01 00:06:55.000 2020-01-02 03:35:16.000 415 99316 49865.5 4986550 415 99316 49865.5 4986550 -32755 32383 4645.66 464566 -124 127 1.82 182 +416 101 10406 99317 1.24924 298.24924 149.74924 14974.92492 1.24924 298.24924 149.74924 14974.92492 1.24924 298.24924 149.74923999999982 14974.92400 2020-01-01 2020-01-02 2020-01-01 00:06:56 2020-01-02 03:35:17 2020-01-01 00:06:56.000 2020-01-02 03:35:17.000 416 99317 49866.5 4986650 416 99317 49866.5 4986650 -32754 32384 4646.66 464666 -128 127 0.26 26 +417 101 10407 99318 1.25225 298.25225 149.75225 14975.22522 1.25225 298.25226 149.75225 14975.22552 1.25225 298.25225 149.7522499999997 14975.22500 2020-01-01 2020-01-02 2020-01-01 00:06:57 2020-01-02 03:35:18 2020-01-01 00:06:57.000 2020-01-02 03:35:18.000 417 99318 49867.5 4986750 417 99318 49867.5 4986750 -32753 32385 4647.66 464766 -128 123 -1.3 -130 +418 101 10408 99319 1.25525 298.25525 149.75525 14975.52552 1.25525 298.25525 149.75525 14975.52521 1.25525 298.25525 149.75525000000013 14975.52500 2020-01-01 2020-01-02 2020-01-01 00:06:58 2020-01-02 03:35:19 2020-01-01 00:06:58.000 2020-01-02 03:35:19.000 418 99319 49868.5 4986850 418 99319 49868.5 4986850 -32752 32386 4648.66 464866 -127 124 -0.3 -30 +419 101 10409 99320 1.25825 298.25825 149.75825 14975.82582 1.25825 298.25827 149.75825 14975.8258 1.25825 298.25825 149.75825000000015 14975.82500 2020-01-01 2020-01-02 2020-01-01 00:06:59 2020-01-02 03:35:20 2020-01-01 00:06:59.000 2020-01-02 03:35:20.000 419 99320 49869.5 4986950 419 99320 49869.5 4986950 -32751 32387 4649.66 464966 -126 125 0.7 70 +42 102 10032 99942 0.12612 300.12612 150.12612 15162.73873 0.12612 300.12613 150.12612 15162.73896 0.12612 300.12612 150.1261200000002 15162.73812 2020-01-01 2020-01-02 2020-01-01 00:00:42 2020-01-02 03:45:42 2020-01-01 00:00:42.000 2020-01-02 03:45:42.000 42 99942 49992 5049192 42 99942 49992 5049192 -32527 32408 4571.009900990099 461672 -128 127 -1.504950495049505 -152 +420 101 10410 99321 1.26126 298.26126 149.76126 14976.12612 1.26126 298.26126 149.76126 14976.12609 1.26126 298.26126 149.7612599999999 14976.12600 2020-01-01 2020-01-02 2020-01-01 00:07:00 2020-01-02 03:35:21 2020-01-01 00:07:00.000 2020-01-02 03:35:21.000 420 99321 49870.5 4987050 420 99321 49870.5 4987050 -32750 32388 4650.66 465066 -125 126 1.7 170 +421 101 10411 99322 1.26426 298.26426 149.76426 14976.42642 1.26426 298.26425 149.76426 14976.4264 1.26426 298.26426 149.76425999999995 14976.42600 2020-01-01 2020-01-02 2020-01-01 00:07:01 2020-01-02 03:35:22 2020-01-01 00:07:01.000 2020-01-02 03:35:22.000 421 99322 49871.5 4987150 421 99322 49871.5 4987150 -32749 32389 4651.66 465166 -124 127 2.7 270 +422 101 10412 99323 1.26726 298.26726 149.76726 14976.72672 1.26726 298.26727 149.76727 14976.72702 1.26726 298.26726 149.76726000000005 14976.72600 2020-01-01 2020-01-02 2020-01-01 00:07:02 2020-01-02 03:35:23 2020-01-01 00:07:02.000 2020-01-02 03:35:23.000 422 99323 49872.5 4987250 422 99323 49872.5 4987250 -32748 32390 4652.66 465266 -128 127 1.14 114 +423 101 10413 99324 1.27027 298.27027 149.77027 14977.02702 1.27027 298.27026 149.77026 14977.02667 1.27027 298.27027 149.77027000000027 14977.02700 2020-01-01 2020-01-02 2020-01-01 00:07:03 2020-01-02 03:35:24 2020-01-01 00:07:03.000 2020-01-02 03:35:24.000 423 99324 49873.5 4987350 423 99324 49873.5 4987350 -32747 32391 4653.66 465366 -128 123 -0.42 -42 +424 101 10414 99325 1.27327 298.27327 149.77327 14977.32732 1.27327 298.2733 149.77327 14977.32727 1.27327 298.27327 149.77326999999983 14977.32700 2020-01-01 2020-01-02 2020-01-01 00:07:04 2020-01-02 03:35:25 2020-01-01 00:07:04.000 2020-01-02 03:35:25.000 424 99325 49874.5 4987450 424 99325 49874.5 4987450 -32746 32392 4654.66 465466 -127 124 0.58 58 +425 101 10415 99326 1.27627 298.27627 149.77627 14977.62762 1.27627 298.27628 149.77627 14977.62756 1.27627 298.27627 149.77627000000018 14977.62700 2020-01-01 2020-01-02 2020-01-01 00:07:05 2020-01-02 03:35:26 2020-01-01 00:07:05.000 2020-01-02 03:35:26.000 425 99326 49875.5 4987550 425 99326 49875.5 4987550 -32745 32393 4655.66 465566 -126 125 1.58 158 +426 101 10416 99327 1.27927 298.27927 149.77927 14977.92792 1.27927 298.27927 149.77927 14977.92787 1.27927 298.27927 149.7792699999997 14977.92700 2020-01-01 2020-01-02 2020-01-01 00:07:06 2020-01-02 03:35:27 2020-01-01 00:07:06.000 2020-01-02 03:35:27.000 426 99327 49876.5 4987650 426 99327 49876.5 4987650 -32744 32394 4656.66 465666 -125 126 2.58 258 +427 101 10417 99328 1.28228 298.28228 149.78228 14978.22822 1.28228 298.2823 149.78228 14978.22849 1.28228 298.28228 149.78227999999993 14978.22800 2020-01-01 2020-01-02 2020-01-01 00:07:07 2020-01-02 03:35:28 2020-01-01 00:07:07.000 2020-01-02 03:35:28.000 427 99328 49877.5 4987750 427 99328 49877.5 4987750 -32743 32395 4657.66 465766 -124 127 3.58 358 +428 101 10418 99329 1.28528 298.28528 149.78528 14978.52852 1.28528 298.28528 149.78528 14978.52815 1.28528 298.28528 149.78528000000003 14978.52800 2020-01-01 2020-01-02 2020-01-01 00:07:08 2020-01-02 03:35:29 2020-01-01 00:07:08.000 2020-01-02 03:35:29.000 428 99329 49878.5 4987850 428 99329 49878.5 4987850 -32742 32396 4658.66 465866 -128 127 2.02 202 +429 101 10419 99330 1.28828 298.28828 149.78828 14978.82882 1.28828 298.2883 149.78828 14978.8289 1.28828 298.28828 149.78828000000013 14978.82800 2020-01-01 2020-01-02 2020-01-01 00:07:09 2020-01-02 03:35:30 2020-01-01 00:07:09.000 2020-01-02 03:35:30.000 429 99330 49879.5 4987950 429 99330 49879.5 4987950 -32741 32397 4659.66 465966 -128 127 0.46 46 +43 102 10033 99943 0.12912 300.12912 150.12912 15163.04204 0.12912 300.12912 150.12912 15163.04211 0.12912 300.12912 150.12911999999972 15163.04112 2020-01-01 2020-01-02 2020-01-01 00:00:43 2020-01-02 03:45:43 2020-01-01 00:00:43.000 2020-01-02 03:45:43.000 43 99943 49993 5049293 43 99943 49993 5049293 -32526 32409 4572.009900990099 461773 -128 124 -3.0396039603960396 -307 +430 101 10420 99331 1.29129 298.29129 149.79129 14979.12912 1.29129 298.2913 149.79129 14979.12904 1.29129 298.29129 149.79128999999983 14979.12900 2020-01-01 2020-01-02 2020-01-01 00:07:10 2020-01-02 03:35:31 2020-01-01 00:07:10.000 2020-01-02 03:35:31.000 430 99331 49880.5 4988050 430 99331 49880.5 4988050 -32740 32398 4660.66 466066 -128 124 -1.1 -110 +431 101 10421 99332 1.29429 298.29429 149.79429 14979.42942 1.29429 298.29428 149.79429 14979.42933 1.29429 298.29429 149.79428999999985 14979.42900 2020-01-01 2020-01-02 2020-01-01 00:07:11 2020-01-02 03:35:32 2020-01-01 00:07:11.000 2020-01-02 03:35:32.000 431 99332 49881.5 4988150 431 99332 49881.5 4988150 -32739 32399 4661.66 466166 -127 125 -0.1 -10 +432 101 10422 99333 1.29729 298.29729 149.79729 14979.72972 1.29729 298.2973 149.79729 14979.72996 1.29729 298.29729 149.7972900000003 14979.72900 2020-01-01 2020-01-02 2020-01-01 00:07:12 2020-01-02 03:35:33 2020-01-01 00:07:12.000 2020-01-02 03:35:33.000 432 99333 49882.5 4988250 432 99333 49882.5 4988250 -32738 32400 4662.66 466266 -126 126 0.9 90 +433 101 10423 99334 1.3003 298.3003 149.8003 14980.03003 1.3003 298.3003 149.80029 14980.02962 1.30030 298.30030 149.80030000000016 14980.03000 2020-01-01 2020-01-02 2020-01-01 00:07:13 2020-01-02 03:35:34 2020-01-01 00:07:13.000 2020-01-02 03:35:34.000 433 99334 49883.5 4988350 433 99334 49883.5 4988350 -32737 32401 4663.66 466366 -125 127 1.9 190 +434 101 10424 99335 1.3033 298.3033 149.8033 14980.33033 1.3033 298.3033 149.8033 14980.33037 1.30330 298.30330 149.80329999999972 14980.33000 2020-01-01 2020-01-02 2020-01-01 00:07:14 2020-01-02 03:35:35 2020-01-01 00:07:14.000 2020-01-02 03:35:35.000 434 99335 49884.5 4988450 434 99335 49884.5 4988450 -32736 32402 4664.66 466466 -128 127 0.34 34 +435 101 10425 99336 1.3063 298.3063 149.8063 14980.63063 1.3063 298.3063 149.8063 14980.63051 1.30630 298.30630 149.80630000000016 14980.63000 2020-01-01 2020-01-02 2020-01-01 00:07:15 2020-01-02 03:35:36 2020-01-01 00:07:15.000 2020-01-02 03:35:36.000 435 99336 49885.5 4988550 435 99336 49885.5 4988550 -32735 32403 4665.66 466566 -128 127 -1.22 -122 +436 101 10426 99337 1.3093 298.3093 149.8093 14980.93093 1.3093 298.3093 149.8093 14980.93084 1.30930 298.30930 149.80930000000018 14980.93000 2020-01-01 2020-01-02 2020-01-01 00:07:16 2020-01-02 03:35:37 2020-01-01 00:07:16.000 2020-01-02 03:35:37.000 436 99337 49886.5 4988650 436 99337 49886.5 4988650 -32734 32404 4666.66 466666 -128 123 -2.78 -278 +437 101 10427 99338 1.31231 298.31231 149.81231 14981.23123 1.31231 298.31232 149.81231 14981.23143 1.31231 298.31231 149.81231000000008 14981.23100 2020-01-01 2020-01-02 2020-01-01 00:07:17 2020-01-02 03:35:38 2020-01-01 00:07:17.000 2020-01-02 03:35:38.000 437 99338 49887.5 4988750 437 99338 49887.5 4988750 -32733 32405 4667.66 466766 -127 124 -1.78 -178 +438 101 10428 99339 1.31531 298.31531 149.81531 14981.53153 1.31531 298.3153 149.81531 14981.53173 1.31531 298.31531 149.81530999999998 14981.53100 2020-01-01 2020-01-02 2020-01-01 00:07:18 2020-01-02 03:35:39 2020-01-01 00:07:18.000 2020-01-02 03:35:39.000 438 99339 49888.5 4988850 438 99339 49888.5 4988850 -32732 32406 4668.66 466866 -126 125 -0.78 -78 +439 101 10429 99340 1.31831 298.31831 149.81831 14981.83183 1.31831 298.31833 149.81831 14981.83184 1.31831 298.31831 149.81831000000005 14981.83100 2020-01-01 2020-01-02 2020-01-01 00:07:19 2020-01-02 03:35:40 2020-01-01 00:07:19.000 2020-01-02 03:35:40.000 439 99340 49889.5 4988950 439 99340 49889.5 4988950 -32731 32407 4669.66 466966 -125 126 0.22 22 44 102 10034 99944 0.13213 300.13213 150.13213 15163.34534 0.13213 300.13214 150.13213 15163.34525 0.13213 300.13213 150.13213 15163.34513 2020-01-01 2020-01-02 2020-01-01 00:00:44 2020-01-02 03:45:44 2020-01-01 00:00:44.000 2020-01-02 03:45:44.000 44 99944 49994 5049394 44 99944 49994 5049394 -32525 32410 4573.009900990099 461874 -127 125 -2.0396039603960396 -206 -440 101 10430 99341 1.32132 298.32132 149.82132 14982.13213 1.32132 298.32132 149.82131 14982.13197 1.32132 298.32132 149.82132 14982.13200 2020-01-01 2020-01-02 2020-01-01 00:07:20 2020-01-02 03:35:41 2020-01-01 00:07:20.000 2020-01-02 03:35:41.000 440 99341 49890.5 4989050 440 99341 49890.5 4989050 -32730 32408 4670.66 467066 -124 127 1.22 122 -441 101 10431 99342 1.32432 298.32432 149.82432 14982.43243 1.32432 298.3243 149.82432 14982.4323 1.32432 298.32432 149.82432 14982.43200 2020-01-01 2020-01-02 2020-01-01 00:07:21 2020-01-02 03:35:42 2020-01-01 00:07:21.000 2020-01-02 03:35:42.000 441 99342 49891.5 4989150 441 99342 49891.5 4989150 -32729 32409 4671.66 467166 -128 127 -0.34 -34 -442 101 10432 99343 1.32732 298.32732 149.82732 14982.73273 1.32732 298.32733 149.82732 14982.7329 1.32732 298.32732 149.82732 14982.73200 2020-01-01 2020-01-02 2020-01-01 00:07:22 2020-01-02 03:35:43 2020-01-01 00:07:22.000 2020-01-02 03:35:43.000 442 99343 49892.5 4989250 442 99343 49892.5 4989250 -32728 32410 4672.66 467266 -128 123 -1.9 -190 +440 101 10430 99341 1.32132 298.32132 149.82132 14982.13213 1.32132 298.32132 149.82131 14982.13197 1.32132 298.32132 149.82131999999987 14982.13200 2020-01-01 2020-01-02 2020-01-01 00:07:20 2020-01-02 03:35:41 2020-01-01 00:07:20.000 2020-01-02 03:35:41.000 440 99341 49890.5 4989050 440 99341 49890.5 4989050 -32730 32408 4670.66 467066 -124 127 1.22 122 +441 101 10431 99342 1.32432 298.32432 149.82432 14982.43243 1.32432 298.3243 149.82432 14982.4323 1.32432 298.32432 149.82431999999994 14982.43200 2020-01-01 2020-01-02 2020-01-01 00:07:21 2020-01-02 03:35:42 2020-01-01 00:07:21.000 2020-01-02 03:35:42.000 441 99342 49891.5 4989150 441 99342 49891.5 4989150 -32729 32409 4671.66 467166 -128 127 -0.34 -34 +442 101 10432 99343 1.32732 298.32732 149.82732 14982.73273 1.32732 298.32733 149.82732 14982.7329 1.32732 298.32732 149.8273200000001 14982.73200 2020-01-01 2020-01-02 2020-01-01 00:07:22 2020-01-02 03:35:43 2020-01-01 00:07:22.000 2020-01-02 03:35:43.000 442 99343 49892.5 4989250 442 99343 49892.5 4989250 -32728 32410 4672.66 467266 -128 123 -1.9 -190 443 101 10433 99344 1.33033 298.33033 149.83033 14983.03303 1.33033 298.33032 149.83033 14983.03319 1.33033 298.33033 149.83033 14983.03300 2020-01-01 2020-01-02 2020-01-01 00:07:23 2020-01-02 03:35:44 2020-01-01 00:07:23.000 2020-01-02 03:35:44.000 443 99344 49893.5 4989350 443 99344 49893.5 4989350 -32727 32411 4673.66 467366 -127 124 -0.9 -90 444 101 10434 99345 1.33333 298.33333 149.83333 14983.33333 1.33333 298.33334 149.83333 14983.33331 1.33333 298.33333 149.83333 14983.33300 2020-01-01 2020-01-02 2020-01-01 00:07:24 2020-01-02 03:35:45 2020-01-01 00:07:24.000 2020-01-02 03:35:45.000 444 99345 49894.5 4989450 444 99345 49894.5 4989450 -32726 32412 4674.66 467466 -126 125 0.1 10 -445 101 10435 99346 1.33633 298.33633 149.83633 14983.63363 1.33633 298.33633 149.83633 14983.63348 1.33633 298.33633 149.83633 14983.63300 2020-01-01 2020-01-02 2020-01-01 00:07:25 2020-01-02 03:35:46 2020-01-01 00:07:25.000 2020-01-02 03:35:46.000 445 99346 49895.5 4989550 445 99346 49895.5 4989550 -32725 32413 4675.66 467566 -125 126 1.1 110 -446 101 10436 99347 1.33933 298.33933 149.83933 14983.93393 1.33933 298.33932 149.83933 14983.93378 1.33933 298.33933 149.83933 14983.93300 2020-01-01 2020-01-02 2020-01-01 00:07:26 2020-01-02 03:35:47 2020-01-01 00:07:26.000 2020-01-02 03:35:47.000 446 99347 49896.5 4989650 446 99347 49896.5 4989650 -32724 32414 4676.66 467666 -124 127 2.1 210 -447 101 10437 99348 1.34234 298.34234 149.84234 14984.23423 1.34234 298.34235 149.84234 14984.23437 1.34234 298.34234 149.84234 14984.23400 2020-01-01 2020-01-02 2020-01-01 00:07:27 2020-01-02 03:35:48 2020-01-01 00:07:27.000 2020-01-02 03:35:48.000 447 99348 49897.5 4989750 447 99348 49897.5 4989750 -32723 32415 4677.66 467766 -128 127 0.54 54 -448 101 10438 99349 1.34534 298.34534 149.84534 14984.53453 1.34534 298.34534 149.84534 14984.53466 1.34534 298.34534 149.84534 14984.53400 2020-01-01 2020-01-02 2020-01-01 00:07:28 2020-01-02 03:35:49 2020-01-01 00:07:28.000 2020-01-02 03:35:49.000 448 99349 49898.5 4989850 448 99349 49898.5 4989850 -32722 32416 4678.66 467866 -128 123 -1.02 -102 -449 101 10439 99350 1.34834 298.34834 149.84834 14984.83483 1.34834 298.34836 149.84834 14984.83478 1.34834 298.34834 149.84834 14984.83400 2020-01-01 2020-01-02 2020-01-01 00:07:29 2020-01-02 03:35:50 2020-01-01 00:07:29.000 2020-01-02 03:35:50.000 449 99350 49899.5 4989950 449 99350 49899.5 4989950 -32721 32417 4679.66 467966 -127 124 -0.02 -2 -45 102 10035 99945 0.13513 300.13513 150.13513 15163.64864 0.13513 300.13513 150.13513 15163.64839 0.13513 300.13513 150.13513 15163.64813 2020-01-01 2020-01-02 2020-01-01 00:00:45 2020-01-02 03:45:45 2020-01-01 00:00:45.000 2020-01-02 03:45:45.000 45 99945 49995 5049495 45 99945 49995 5049495 -32524 32411 4574.009900990099 461975 -126 126 -1.0396039603960396 -105 -450 101 10440 99351 1.35135 298.35135 149.85135 14985.13513 1.35135 298.35135 149.85134 14985.13495 1.35135 298.35135 149.85135 14985.13500 2020-01-01 2020-01-02 2020-01-01 00:07:30 2020-01-02 03:35:51 2020-01-01 00:07:30.000 2020-01-02 03:35:51.000 450 99351 49900.5 4990050 450 99351 49900.5 4990050 -32720 32418 4680.66 468066 -126 125 0.98 98 -451 101 10441 99352 1.35435 298.35435 149.85435 14985.43543 1.35435 298.35434 149.85435 14985.43525 1.35435 298.35435 149.85435 14985.43500 2020-01-01 2020-01-02 2020-01-01 00:07:31 2020-01-02 03:35:52 2020-01-01 00:07:31.000 2020-01-02 03:35:52.000 451 99352 49901.5 4990150 451 99352 49901.5 4990150 -32719 32419 4681.66 468166 -125 126 1.98 198 -452 101 10442 99353 1.35735 298.35735 149.85735 14985.73573 1.35735 298.35736 149.85736 14985.736 1.35735 298.35735 149.85735 14985.73500 2020-01-01 2020-01-02 2020-01-01 00:07:32 2020-01-02 03:35:53 2020-01-01 00:07:32.000 2020-01-02 03:35:53.000 452 99353 49902.5 4990250 452 99353 49902.5 4990250 -32718 32420 4682.66 468266 -124 127 2.98 298 -453 101 10443 99354 1.36036 298.36036 149.86036 14986.03603 1.36036 298.36035 149.86036 14986.03614 1.36036 298.36036 149.86036 14986.03600 2020-01-01 2020-01-02 2020-01-01 00:07:33 2020-01-02 03:35:54 2020-01-01 00:07:33.000 2020-01-02 03:35:54.000 453 99354 49903.5 4990350 453 99354 49903.5 4990350 -32717 32421 4683.66 468366 -128 127 1.42 142 -454 101 10444 99355 1.36336 298.36336 149.86336 14986.33633 1.36336 298.36337 149.86336 14986.33629 1.36336 298.36336 149.86336 14986.33600 2020-01-01 2020-01-02 2020-01-01 00:07:34 2020-01-02 03:35:55 2020-01-01 00:07:34.000 2020-01-02 03:35:55.000 454 99355 49904.5 4990450 454 99355 49904.5 4990450 -32716 32422 4684.66 468466 -128 127 -0.14 -14 +445 101 10435 99346 1.33633 298.33633 149.83633 14983.63363 1.33633 298.33633 149.83633 14983.63348 1.33633 298.33633 149.83633000000006 14983.63300 2020-01-01 2020-01-02 2020-01-01 00:07:25 2020-01-02 03:35:46 2020-01-01 00:07:25.000 2020-01-02 03:35:46.000 445 99346 49895.5 4989550 445 99346 49895.5 4989550 -32725 32413 4675.66 467566 -125 126 1.1 110 +446 101 10436 99347 1.33933 298.33933 149.83933 14983.93393 1.33933 298.33932 149.83933 14983.93378 1.33933 298.33933 149.83933000000002 14983.93300 2020-01-01 2020-01-02 2020-01-01 00:07:26 2020-01-02 03:35:47 2020-01-01 00:07:26.000 2020-01-02 03:35:47.000 446 99347 49896.5 4989650 446 99347 49896.5 4989650 -32724 32414 4676.66 467666 -124 127 2.1 210 +447 101 10437 99348 1.34234 298.34234 149.84234 14984.23423 1.34234 298.34235 149.84234 14984.23437 1.34234 298.34234 149.84233999999995 14984.23400 2020-01-01 2020-01-02 2020-01-01 00:07:27 2020-01-02 03:35:48 2020-01-01 00:07:27.000 2020-01-02 03:35:48.000 447 99348 49897.5 4989750 447 99348 49897.5 4989750 -32723 32415 4677.66 467766 -128 127 0.54 54 +448 101 10438 99349 1.34534 298.34534 149.84534 14984.53453 1.34534 298.34534 149.84534 14984.53466 1.34534 298.34534 149.84533999999994 14984.53400 2020-01-01 2020-01-02 2020-01-01 00:07:28 2020-01-02 03:35:49 2020-01-01 00:07:28.000 2020-01-02 03:35:49.000 448 99349 49898.5 4989850 448 99349 49898.5 4989850 -32722 32416 4678.66 467866 -128 123 -1.02 -102 +449 101 10439 99350 1.34834 298.34834 149.84834 14984.83483 1.34834 298.34836 149.84834 14984.83478 1.34834 298.34834 149.84834000000015 14984.83400 2020-01-01 2020-01-02 2020-01-01 00:07:29 2020-01-02 03:35:50 2020-01-01 00:07:29.000 2020-01-02 03:35:50.000 449 99350 49899.5 4989950 449 99350 49899.5 4989950 -32721 32417 4679.66 467966 -127 124 -0.02 -2 +45 102 10035 99945 0.13513 300.13513 150.13513 15163.64864 0.13513 300.13513 150.13513 15163.64839 0.13513 300.13513 150.13513000000003 15163.64813 2020-01-01 2020-01-02 2020-01-01 00:00:45 2020-01-02 03:45:45 2020-01-01 00:00:45.000 2020-01-02 03:45:45.000 45 99945 49995 5049495 45 99945 49995 5049495 -32524 32411 4574.009900990099 461975 -126 126 -1.0396039603960396 -105 +450 101 10440 99351 1.35135 298.35135 149.85135 14985.13513 1.35135 298.35135 149.85134 14985.13495 1.35135 298.35135 149.85135000000008 14985.13500 2020-01-01 2020-01-02 2020-01-01 00:07:30 2020-01-02 03:35:51 2020-01-01 00:07:30.000 2020-01-02 03:35:51.000 450 99351 49900.5 4990050 450 99351 49900.5 4990050 -32720 32418 4680.66 468066 -126 125 0.98 98 +451 101 10441 99352 1.35435 298.35435 149.85435 14985.43543 1.35435 298.35434 149.85435 14985.43525 1.35435 298.35435 149.8543499999999 14985.43500 2020-01-01 2020-01-02 2020-01-01 00:07:31 2020-01-02 03:35:52 2020-01-01 00:07:31.000 2020-01-02 03:35:52.000 451 99352 49901.5 4990150 451 99352 49901.5 4990150 -32719 32419 4681.66 468166 -125 126 1.98 198 +452 101 10442 99353 1.35735 298.35735 149.85735 14985.73573 1.35735 298.35736 149.85736 14985.736 1.35735 298.35735 149.8573500000001 14985.73500 2020-01-01 2020-01-02 2020-01-01 00:07:32 2020-01-02 03:35:53 2020-01-01 00:07:32.000 2020-01-02 03:35:53.000 452 99353 49902.5 4990250 452 99353 49902.5 4990250 -32718 32420 4682.66 468266 -124 127 2.98 298 +453 101 10443 99354 1.36036 298.36036 149.86036 14986.03603 1.36036 298.36035 149.86036 14986.03614 1.36036 298.36036 149.86036000000004 14986.03600 2020-01-01 2020-01-02 2020-01-01 00:07:33 2020-01-02 03:35:54 2020-01-01 00:07:33.000 2020-01-02 03:35:54.000 453 99354 49903.5 4990350 453 99354 49903.5 4990350 -32717 32421 4683.66 468366 -128 127 1.42 142 +454 101 10444 99355 1.36336 298.36336 149.86336 14986.33633 1.36336 298.36337 149.86336 14986.33629 1.36336 298.36336 149.86335999999994 14986.33600 2020-01-01 2020-01-02 2020-01-01 00:07:34 2020-01-02 03:35:55 2020-01-01 00:07:34.000 2020-01-02 03:35:55.000 454 99355 49904.5 4990450 454 99355 49904.5 4990450 -32716 32422 4684.66 468466 -128 127 -0.14 -14 455 101 10445 99356 1.36636 298.36636 149.86636 14986.63663 1.36636 298.36636 149.86636 14986.63641 1.36636 298.36636 149.86636 14986.63600 2020-01-01 2020-01-02 2020-01-01 00:07:35 2020-01-02 03:35:56 2020-01-01 00:07:35.000 2020-01-02 03:35:56.000 455 99356 49905.5 4990550 455 99356 49905.5 4990550 -32715 32423 4685.66 468566 -128 124 -1.7 -170 -456 101 10446 99357 1.36936 298.36936 149.86936 14986.93693 1.36936 298.36935 149.86936 14986.93672 1.36936 298.36936 149.86936 14986.93600 2020-01-01 2020-01-02 2020-01-01 00:07:36 2020-01-02 03:35:57 2020-01-01 00:07:36.000 2020-01-02 03:35:57.000 456 99357 49906.5 4990650 456 99357 49906.5 4990650 -32714 32424 4686.66 468666 -127 125 -0.7 -70 -457 101 10447 99358 1.37237 298.37237 149.87237 14987.23723 1.37237 298.37238 149.87237 14987.23747 1.37237 298.37237 149.87237 14987.23700 2020-01-01 2020-01-02 2020-01-01 00:07:37 2020-01-02 03:35:58 2020-01-01 00:07:37.000 2020-01-02 03:35:58.000 457 99358 49907.5 4990750 457 99358 49907.5 4990750 -32713 32425 4687.66 468766 -126 126 0.3 30 -458 101 10448 99359 1.37537 298.37537 149.87537 14987.53753 1.37537 298.37537 149.87537 14987.5376 1.37537 298.37537 149.87537 14987.53700 2020-01-01 2020-01-02 2020-01-01 00:07:38 2020-01-02 03:35:59 2020-01-01 00:07:38.000 2020-01-02 03:35:59.000 458 99359 49908.5 4990850 458 99359 49908.5 4990850 -32712 32426 4688.66 468866 -125 127 1.3 130 -459 101 10449 99360 1.37837 298.37837 149.87837 14987.83783 1.37837 298.3784 149.87837 14987.83775 1.37837 298.37837 149.87837 14987.83700 2020-01-01 2020-01-02 2020-01-01 00:07:39 2020-01-02 03:36:00 2020-01-01 00:07:39.000 2020-01-02 03:36:00.000 459 99360 49909.5 4990950 459 99360 49909.5 4990950 -32711 32427 4689.66 468966 -128 127 -0.26 -26 -46 102 10036 99946 0.13813 300.13813 150.13813 15163.95195 0.13813 300.13815 150.13814 15163.95214 0.13813 300.13813 150.13813 15163.95113 2020-01-01 2020-01-02 2020-01-01 00:00:46 2020-01-02 03:45:46 2020-01-01 00:00:46.000 2020-01-02 03:45:46.000 46 99946 49996 5049596 46 99946 49996 5049596 -32523 32412 4575.009900990099 462076 -125 127 -0.039603960396039604 -4 -460 101 10450 99361 1.38138 298.38138 149.88138 14988.13813 1.38138 298.38138 149.88137 14988.13789 1.38138 298.38138 149.88138 14988.13800 2020-01-01 2020-01-02 2020-01-01 00:07:40 2020-01-02 03:36:01 2020-01-01 00:07:40.000 2020-01-02 03:36:01.000 460 99361 49910.5 4991050 460 99361 49910.5 4991050 -32710 32428 4690.66 469066 -128 127 -1.82 -182 -461 101 10451 99362 1.38438 298.38438 149.88438 14988.43843 1.38438 298.3844 149.88438 14988.43864 1.38438 298.38438 149.88438 14988.43800 2020-01-01 2020-01-02 2020-01-01 00:07:41 2020-01-02 03:36:02 2020-01-01 00:07:41.000 2020-01-02 03:36:02.000 461 99362 49911.5 4991150 461 99362 49911.5 4991150 -32709 32429 4691.66 469166 -128 123 -3.38 -338 -462 101 10452 99363 1.38738 298.38738 149.88738 14988.73873 1.38738 298.3874 149.88738 14988.73894 1.38738 298.38738 149.88738 14988.73800 2020-01-01 2020-01-02 2020-01-01 00:07:42 2020-01-02 03:36:03 2020-01-01 00:07:42.000 2020-01-02 03:36:03.000 462 99363 49912.5 4991250 462 99363 49912.5 4991250 -32708 32430 4692.66 469266 -127 124 -2.38 -238 +456 101 10446 99357 1.36936 298.36936 149.86936 14986.93693 1.36936 298.36935 149.86936 14986.93672 1.36936 298.36936 149.86936000000003 14986.93600 2020-01-01 2020-01-02 2020-01-01 00:07:36 2020-01-02 03:35:57 2020-01-01 00:07:36.000 2020-01-02 03:35:57.000 456 99357 49906.5 4990650 456 99357 49906.5 4990650 -32714 32424 4686.66 468666 -127 125 -0.7 -70 +457 101 10447 99358 1.37237 298.37237 149.87237 14987.23723 1.37237 298.37238 149.87237 14987.23747 1.37237 298.37237 149.8723699999999 14987.23700 2020-01-01 2020-01-02 2020-01-01 00:07:37 2020-01-02 03:35:58 2020-01-01 00:07:37.000 2020-01-02 03:35:58.000 457 99358 49907.5 4990750 457 99358 49907.5 4990750 -32713 32425 4687.66 468766 -126 126 0.3 30 +458 101 10448 99359 1.37537 298.37537 149.87537 14987.53753 1.37537 298.37537 149.87537 14987.5376 1.37537 298.37537 149.87536999999992 14987.53700 2020-01-01 2020-01-02 2020-01-01 00:07:38 2020-01-02 03:35:59 2020-01-01 00:07:38.000 2020-01-02 03:35:59.000 458 99359 49908.5 4990850 458 99359 49908.5 4990850 -32712 32426 4688.66 468866 -125 127 1.3 130 +459 101 10449 99360 1.37837 298.37837 149.87837 14987.83783 1.37837 298.3784 149.87837 14987.83775 1.37837 298.37837 149.87837000000007 14987.83700 2020-01-01 2020-01-02 2020-01-01 00:07:39 2020-01-02 03:36:00 2020-01-01 00:07:39.000 2020-01-02 03:36:00.000 459 99360 49909.5 4990950 459 99360 49909.5 4990950 -32711 32427 4689.66 468966 -128 127 -0.26 -26 +46 102 10036 99946 0.13813 300.13813 150.13813 15163.95195 0.13813 300.13815 150.13814 15163.95214 0.13813 300.13813 150.13812999999993 15163.95113 2020-01-01 2020-01-02 2020-01-01 00:00:46 2020-01-02 03:45:46 2020-01-01 00:00:46.000 2020-01-02 03:45:46.000 46 99946 49996 5049596 46 99946 49996 5049596 -32523 32412 4575.009900990099 462076 -125 127 -0.039603960396039604 -4 +460 101 10450 99361 1.38138 298.38138 149.88138 14988.13813 1.38138 298.38138 149.88137 14988.13789 1.38138 298.38138 149.88138000000004 14988.13800 2020-01-01 2020-01-02 2020-01-01 00:07:40 2020-01-02 03:36:01 2020-01-01 00:07:40.000 2020-01-02 03:36:01.000 460 99361 49910.5 4991050 460 99361 49910.5 4991050 -32710 32428 4690.66 469066 -128 127 -1.82 -182 +461 101 10451 99362 1.38438 298.38438 149.88438 14988.43843 1.38438 298.3844 149.88438 14988.43864 1.38438 298.38438 149.88438000000002 14988.43800 2020-01-01 2020-01-02 2020-01-01 00:07:41 2020-01-02 03:36:02 2020-01-01 00:07:41.000 2020-01-02 03:36:02.000 461 99362 49911.5 4991150 461 99362 49911.5 4991150 -32709 32429 4691.66 469166 -128 123 -3.38 -338 +462 101 10452 99363 1.38738 298.38738 149.88738 14988.73873 1.38738 298.3874 149.88738 14988.73894 1.38738 298.38738 149.88738000000006 14988.73800 2020-01-01 2020-01-02 2020-01-01 00:07:42 2020-01-02 03:36:03 2020-01-01 00:07:42.000 2020-01-02 03:36:03.000 462 99363 49912.5 4991250 462 99363 49912.5 4991250 -32708 32430 4692.66 469266 -127 124 -2.38 -238 463 101 10453 99364 1.39039 298.39039 149.89039 14989.03903 1.39039 298.39038 149.89039 14989.03907 1.39039 298.39039 149.89039 14989.03900 2020-01-01 2020-01-02 2020-01-01 00:07:43 2020-01-02 03:36:04 2020-01-01 00:07:43.000 2020-01-02 03:36:04.000 463 99364 49913.5 4991350 463 99364 49913.5 4991350 -32707 32431 4693.66 469366 -126 125 -1.38 -138 -464 101 10454 99365 1.39339 298.39339 149.89339 14989.33933 1.39339 298.3934 149.89339 14989.33922 1.39339 298.39339 149.89339 14989.33900 2020-01-01 2020-01-02 2020-01-01 00:07:44 2020-01-02 03:36:05 2020-01-01 00:07:44.000 2020-01-02 03:36:05.000 464 99365 49914.5 4991450 464 99365 49914.5 4991450 -32706 32432 4694.66 469466 -125 126 -0.38 -38 -465 101 10455 99366 1.39639 298.39639 149.89639 14989.63963 1.39639 298.3964 149.89639 14989.63936 1.39639 298.39639 149.89639 14989.63900 2020-01-01 2020-01-02 2020-01-01 00:07:45 2020-01-02 03:36:06 2020-01-01 00:07:45.000 2020-01-02 03:36:06.000 465 99366 49915.5 4991550 465 99366 49915.5 4991550 -32705 32433 4695.66 469566 -124 127 0.62 62 -466 101 10456 99367 1.39939 298.39939 149.89939 14989.93993 1.39939 298.3994 149.8994 14989.94011 1.39939 298.39939 149.89939 14989.93900 2020-01-01 2020-01-02 2020-01-01 00:07:46 2020-01-02 03:36:07 2020-01-01 00:07:46.000 2020-01-02 03:36:07.000 466 99367 49916.5 4991650 466 99367 49916.5 4991650 -32704 32434 4696.66 469666 -128 127 -0.94 -94 -467 101 10457 99368 1.4024 298.4024 149.9024 14990.24024 1.4024 298.4024 149.9024 14990.24041 1.40240 298.40240 149.90240 14990.24000 2020-01-01 2020-01-02 2020-01-01 00:07:47 2020-01-02 03:36:08 2020-01-01 00:07:47.000 2020-01-02 03:36:08.000 467 99368 49917.5 4991750 467 99368 49917.5 4991750 -32703 32435 4697.66 469766 -128 123 -2.5 -250 -468 101 10458 99369 1.4054 298.4054 149.9054 14990.54054 1.4054 298.4054 149.9054 14990.54058 1.40540 298.40540 149.90540 14990.54000 2020-01-01 2020-01-02 2020-01-01 00:07:48 2020-01-02 03:36:09 2020-01-01 00:07:48.000 2020-01-02 03:36:09.000 468 99369 49918.5 4991850 468 99369 49918.5 4991850 -32702 32436 4698.66 469866 -127 124 -1.5 -150 -469 101 10459 99370 1.4084 298.4084 149.9084 14990.84084 1.4084 298.40842 149.9084 14990.8407 1.40840 298.40840 149.90840 14990.84000 2020-01-01 2020-01-02 2020-01-01 00:07:49 2020-01-02 03:36:10 2020-01-01 00:07:49.000 2020-01-02 03:36:10.000 469 99370 49919.5 4991950 469 99370 49919.5 4991950 -32701 32437 4699.66 469966 -126 125 -0.5 -50 -47 102 10037 99947 0.14114 300.14114 150.14114 15164.25525 0.14114 300.14114 150.14114 15164.25545 0.14114 300.14114 150.14114 15164.25514 2020-01-01 2020-01-02 2020-01-01 00:00:47 2020-01-02 03:45:47 2020-01-01 00:00:47.000 2020-01-02 03:45:47.000 47 99947 49997 5049697 47 99947 49997 5049697 -32522 32413 4576.009900990099 462177 -128 127 -1.5742574257425743 -159 -470 101 10460 99371 1.41141 298.41141 149.91141 14991.14114 1.41141 298.4114 149.9114 14991.14099 1.41141 298.41141 149.91141 14991.14100 2020-01-01 2020-01-02 2020-01-01 00:07:50 2020-01-02 03:36:11 2020-01-01 00:07:50.000 2020-01-02 03:36:11.000 470 99371 49920.5 4992050 470 99371 49920.5 4992050 -32700 32438 4700.66 470066 -125 126 0.5 50 -471 101 10461 99372 1.41441 298.41441 149.91441 14991.44144 1.41441 298.41443 149.91441 14991.44159 1.41441 298.41441 149.91441 14991.44100 2020-01-01 2020-01-02 2020-01-01 00:07:51 2020-01-02 03:36:12 2020-01-01 00:07:51.000 2020-01-02 03:36:12.000 471 99372 49921.5 4992150 471 99372 49921.5 4992150 -32699 32439 4701.66 470166 -124 127 1.5 150 +464 101 10454 99365 1.39339 298.39339 149.89339 14989.33933 1.39339 298.3934 149.89339 14989.33922 1.39339 298.39339 149.89338999999998 14989.33900 2020-01-01 2020-01-02 2020-01-01 00:07:44 2020-01-02 03:36:05 2020-01-01 00:07:44.000 2020-01-02 03:36:05.000 464 99365 49914.5 4991450 464 99365 49914.5 4991450 -32706 32432 4694.66 469466 -125 126 -0.38 -38 +465 101 10455 99366 1.39639 298.39639 149.89639 14989.63963 1.39639 298.3964 149.89639 14989.63936 1.39639 298.39639 149.8963899999999 14989.63900 2020-01-01 2020-01-02 2020-01-01 00:07:45 2020-01-02 03:36:06 2020-01-01 00:07:45.000 2020-01-02 03:36:06.000 465 99366 49915.5 4991550 465 99366 49915.5 4991550 -32705 32433 4695.66 469566 -124 127 0.62 62 +466 101 10456 99367 1.39939 298.39939 149.89939 14989.93993 1.39939 298.3994 149.8994 14989.94011 1.39939 298.39939 149.89938999999998 14989.93900 2020-01-01 2020-01-02 2020-01-01 00:07:46 2020-01-02 03:36:07 2020-01-01 00:07:46.000 2020-01-02 03:36:07.000 466 99367 49916.5 4991650 466 99367 49916.5 4991650 -32704 32434 4696.66 469666 -128 127 -0.94 -94 +467 101 10457 99368 1.4024 298.4024 149.9024 14990.24024 1.4024 298.4024 149.9024 14990.24041 1.40240 298.40240 149.90240000000009 14990.24000 2020-01-01 2020-01-02 2020-01-01 00:07:47 2020-01-02 03:36:08 2020-01-01 00:07:47.000 2020-01-02 03:36:08.000 467 99368 49917.5 4991750 467 99368 49917.5 4991750 -32703 32435 4697.66 469766 -128 123 -2.5 -250 +468 101 10458 99369 1.4054 298.4054 149.9054 14990.54054 1.4054 298.4054 149.9054 14990.54058 1.40540 298.40540 149.90539999999993 14990.54000 2020-01-01 2020-01-02 2020-01-01 00:07:48 2020-01-02 03:36:09 2020-01-01 00:07:48.000 2020-01-02 03:36:09.000 468 99369 49918.5 4991850 468 99369 49918.5 4991850 -32702 32436 4698.66 469866 -127 124 -1.5 -150 +469 101 10459 99370 1.4084 298.4084 149.9084 14990.84084 1.4084 298.40842 149.9084 14990.8407 1.40840 298.40840 149.90840000000003 14990.84000 2020-01-01 2020-01-02 2020-01-01 00:07:49 2020-01-02 03:36:10 2020-01-01 00:07:49.000 2020-01-02 03:36:10.000 469 99370 49919.5 4991950 469 99370 49919.5 4991950 -32701 32437 4699.66 469966 -126 125 -0.5 -50 +47 102 10037 99947 0.14114 300.14114 150.14114 15164.25525 0.14114 300.14114 150.14114 15164.25545 0.14114 300.14114 150.14113999999995 15164.25514 2020-01-01 2020-01-02 2020-01-01 00:00:47 2020-01-02 03:45:47 2020-01-01 00:00:47.000 2020-01-02 03:45:47.000 47 99947 49997 5049697 47 99947 49997 5049697 -32522 32413 4576.009900990099 462177 -128 127 -1.5742574257425743 -159 +470 101 10460 99371 1.41141 298.41141 149.91141 14991.14114 1.41141 298.4114 149.9114 14991.14099 1.41141 298.41141 149.91141000000005 14991.14100 2020-01-01 2020-01-02 2020-01-01 00:07:50 2020-01-02 03:36:11 2020-01-01 00:07:50.000 2020-01-02 03:36:11.000 470 99371 49920.5 4992050 470 99371 49920.5 4992050 -32700 32438 4700.66 470066 -125 126 0.5 50 +471 101 10461 99372 1.41441 298.41441 149.91441 14991.44144 1.41441 298.41443 149.91441 14991.44159 1.41441 298.41441 149.91440999999995 14991.44100 2020-01-01 2020-01-02 2020-01-01 00:07:51 2020-01-02 03:36:12 2020-01-01 00:07:51.000 2020-01-02 03:36:12.000 471 99372 49921.5 4992150 471 99372 49921.5 4992150 -32699 32439 4701.66 470166 -124 127 1.5 150 472 101 10462 99373 1.41741 298.41741 149.91741 14991.74174 1.41741 298.41742 149.91741 14991.74188 1.41741 298.41741 149.91741 14991.74100 2020-01-01 2020-01-02 2020-01-01 00:07:52 2020-01-02 03:36:13 2020-01-01 00:07:52.000 2020-01-02 03:36:13.000 472 99373 49922.5 4992250 472 99373 49922.5 4992250 -32698 32440 4702.66 470266 -128 127 -0.06 -6 -473 101 10463 99374 1.42042 298.42042 149.92042 14992.04204 1.42042 298.4204 149.92042 14992.04204 1.42042 298.42042 149.92042 14992.04200 2020-01-01 2020-01-02 2020-01-01 00:07:53 2020-01-02 03:36:14 2020-01-01 00:07:53.000 2020-01-02 03:36:14.000 473 99374 49923.5 4992350 473 99374 49923.5 4992350 -32697 32441 4703.66 470366 -128 123 -1.62 -162 -474 101 10464 99375 1.42342 298.42342 149.92342 14992.34234 1.42342 298.42343 149.92342 14992.34216 1.42342 298.42342 149.92342 14992.34200 2020-01-01 2020-01-02 2020-01-01 00:07:54 2020-01-02 03:36:15 2020-01-01 00:07:54.000 2020-01-02 03:36:15.000 474 99375 49924.5 4992450 474 99375 49924.5 4992450 -32696 32442 4704.66 470466 -127 124 -0.62 -62 -475 101 10465 99376 1.42642 298.42642 149.92642 14992.64264 1.42642 298.42642 149.92642 14992.64246 1.42642 298.42642 149.92642 14992.64200 2020-01-01 2020-01-02 2020-01-01 00:07:55 2020-01-02 03:36:16 2020-01-01 00:07:55.000 2020-01-02 03:36:16.000 475 99376 49925.5 4992550 475 99376 49925.5 4992550 -32695 32443 4705.66 470566 -126 125 0.38 38 -476 101 10466 99377 1.42942 298.42942 149.92942 14992.94294 1.42942 298.42944 149.92943 14992.94305 1.42942 298.42942 149.92942 14992.94200 2020-01-01 2020-01-02 2020-01-01 00:07:56 2020-01-02 03:36:17 2020-01-01 00:07:56.000 2020-01-02 03:36:17.000 476 99377 49926.5 4992650 476 99377 49926.5 4992650 -32694 32444 4706.66 470666 -125 126 1.38 138 -477 101 10467 99378 1.43243 298.43243 149.93243 14993.24324 1.43243 298.43243 149.93243 14993.24338 1.43243 298.43243 149.93243 14993.24300 2020-01-01 2020-01-02 2020-01-01 00:07:57 2020-01-02 03:36:18 2020-01-01 00:07:57.000 2020-01-02 03:36:18.000 477 99378 49927.5 4992750 477 99378 49927.5 4992750 -32693 32445 4707.66 470766 -124 127 2.38 238 -478 101 10468 99379 1.43543 298.43543 149.93543 14993.54354 1.43543 298.43542 149.93543 14993.54352 1.43543 298.43543 149.93543 14993.54300 2020-01-01 2020-01-02 2020-01-01 00:07:58 2020-01-02 03:36:19 2020-01-01 00:07:58.000 2020-01-02 03:36:19.000 478 99379 49928.5 4992850 478 99379 49928.5 4992850 -32692 32446 4708.66 470866 -128 127 0.82 82 -479 101 10469 99380 1.43843 298.43843 149.93843 14993.84384 1.43843 298.43845 149.93844 14993.84427 1.43843 298.43843 149.93843 14993.84300 2020-01-01 2020-01-02 2020-01-01 00:07:59 2020-01-02 03:36:20 2020-01-01 00:07:59.000 2020-01-02 03:36:20.000 479 99380 49929.5 4992950 479 99380 49929.5 4992950 -32691 32447 4709.66 470966 -128 127 -0.74 -74 -48 102 10038 99948 0.14414 300.14414 150.14414 15164.55855 0.14414 300.14413 150.14414 15164.55863 0.14414 300.14414 150.14414 15164.55814 2020-01-01 2020-01-02 2020-01-01 00:00:48 2020-01-02 03:45:48 2020-01-01 00:00:48.000 2020-01-02 03:45:48.000 48 99948 49998 5049798 48 99948 49998 5049798 -32521 32414 4577.009900990099 462278 -128 127 -3.108910891089109 -314 +473 101 10463 99374 1.42042 298.42042 149.92042 14992.04204 1.42042 298.4204 149.92042 14992.04204 1.42042 298.42042 149.9204200000001 14992.04200 2020-01-01 2020-01-02 2020-01-01 00:07:53 2020-01-02 03:36:14 2020-01-01 00:07:53.000 2020-01-02 03:36:14.000 473 99374 49923.5 4992350 473 99374 49923.5 4992350 -32697 32441 4703.66 470366 -128 123 -1.62 -162 +474 101 10464 99375 1.42342 298.42342 149.92342 14992.34234 1.42342 298.42343 149.92342 14992.34216 1.42342 298.42342 149.9234199999999 14992.34200 2020-01-01 2020-01-02 2020-01-01 00:07:54 2020-01-02 03:36:15 2020-01-01 00:07:54.000 2020-01-02 03:36:15.000 474 99375 49924.5 4992450 474 99375 49924.5 4992450 -32696 32442 4704.66 470466 -127 124 -0.62 -62 +475 101 10465 99376 1.42642 298.42642 149.92642 14992.64264 1.42642 298.42642 149.92642 14992.64246 1.42642 298.42642 149.9264199999999 14992.64200 2020-01-01 2020-01-02 2020-01-01 00:07:55 2020-01-02 03:36:16 2020-01-01 00:07:55.000 2020-01-02 03:36:16.000 475 99376 49925.5 4992550 475 99376 49925.5 4992550 -32695 32443 4705.66 470566 -126 125 0.38 38 +476 101 10466 99377 1.42942 298.42942 149.92942 14992.94294 1.42942 298.42944 149.92943 14992.94305 1.42942 298.42942 149.9294200000001 14992.94200 2020-01-01 2020-01-02 2020-01-01 00:07:56 2020-01-02 03:36:17 2020-01-01 00:07:56.000 2020-01-02 03:36:17.000 476 99377 49926.5 4992650 476 99377 49926.5 4992650 -32694 32444 4706.66 470666 -125 126 1.38 138 +477 101 10467 99378 1.43243 298.43243 149.93243 14993.24324 1.43243 298.43243 149.93243 14993.24338 1.43243 298.43243 149.93243000000004 14993.24300 2020-01-01 2020-01-02 2020-01-01 00:07:57 2020-01-02 03:36:18 2020-01-01 00:07:57.000 2020-01-02 03:36:18.000 477 99378 49927.5 4992750 477 99378 49927.5 4992750 -32693 32445 4707.66 470766 -124 127 2.38 238 +478 101 10468 99379 1.43543 298.43543 149.93543 14993.54354 1.43543 298.43542 149.93543 14993.54352 1.43543 298.43543 149.93542999999983 14993.54300 2020-01-01 2020-01-02 2020-01-01 00:07:58 2020-01-02 03:36:19 2020-01-01 00:07:58.000 2020-01-02 03:36:19.000 478 99379 49928.5 4992850 478 99379 49928.5 4992850 -32692 32446 4708.66 470866 -128 127 0.82 82 +479 101 10469 99380 1.43843 298.43843 149.93843 14993.84384 1.43843 298.43845 149.93844 14993.84427 1.43843 298.43843 149.93843000000007 14993.84300 2020-01-01 2020-01-02 2020-01-01 00:07:59 2020-01-02 03:36:20 2020-01-01 00:07:59.000 2020-01-02 03:36:20.000 479 99380 49929.5 4992950 479 99380 49929.5 4992950 -32691 32447 4709.66 470966 -128 127 -0.74 -74 +48 102 10038 99948 0.14414 300.14414 150.14414 15164.55855 0.14414 300.14413 150.14414 15164.55863 0.14414 300.14414 150.14414000000005 15164.55814 2020-01-01 2020-01-02 2020-01-01 00:00:48 2020-01-02 03:45:48 2020-01-01 00:00:48.000 2020-01-02 03:45:48.000 48 99948 49998 5049798 48 99948 49998 5049798 -32521 32414 4577.009900990099 462278 -128 127 -3.108910891089109 -314 480 101 10470 99381 1.44144 298.44144 149.94144 14994.14414 1.44144 298.44144 149.94143 14994.14392 1.44144 298.44144 149.94144 14994.14400 2020-01-01 2020-01-02 2020-01-01 00:08:00 2020-01-02 03:36:21 2020-01-01 00:08:00.000 2020-01-02 03:36:21.000 480 99381 49930.5 4993050 480 99381 49930.5 4993050 -32690 32448 4710.66 471066 -128 124 -2.3 -230 481 101 10471 99382 1.44444 298.44444 149.94444 14994.44444 1.44444 298.44446 149.94444 14994.44452 1.44444 298.44444 149.94444 14994.44400 2020-01-01 2020-01-02 2020-01-01 00:08:01 2020-01-02 03:36:22 2020-01-01 00:08:01.000 2020-01-02 03:36:22.000 481 99382 49931.5 4993150 481 99382 49931.5 4993150 -32689 32449 4711.66 471166 -127 125 -1.3 -130 -482 101 10472 99383 1.44744 298.44744 149.94744 14994.74474 1.44744 298.44745 149.94744 14994.74485 1.44744 298.44744 149.94744 14994.74400 2020-01-01 2020-01-02 2020-01-01 00:08:02 2020-01-02 03:36:23 2020-01-01 00:08:02.000 2020-01-02 03:36:23.000 482 99383 49932.5 4993250 482 99383 49932.5 4993250 -32688 32450 4712.66 471266 -126 126 -0.3 -30 -483 101 10473 99384 1.45045 298.45045 149.95045 14995.04504 1.45045 298.45044 149.95044 14995.04499 1.45045 298.45045 149.95045 14995.04500 2020-01-01 2020-01-02 2020-01-01 00:08:03 2020-01-02 03:36:24 2020-01-01 00:08:03.000 2020-01-02 03:36:24.000 483 99384 49933.5 4993350 483 99384 49933.5 4993350 -32687 32451 4713.66 471366 -125 127 0.7 70 -484 101 10474 99385 1.45345 298.45345 149.95345 14995.34534 1.45345 298.45346 149.95345 14995.34574 1.45345 298.45345 149.95345 14995.34500 2020-01-01 2020-01-02 2020-01-01 00:08:04 2020-01-02 03:36:25 2020-01-01 00:08:04.000 2020-01-02 03:36:25.000 484 99385 49934.5 4993450 484 99385 49934.5 4993450 -32686 32452 4714.66 471466 -128 127 -0.86 -86 -485 101 10475 99386 1.45645 298.45645 149.95645 14995.64564 1.45645 298.45645 149.95645 14995.6454 1.45645 298.45645 149.95645 14995.64500 2020-01-01 2020-01-02 2020-01-01 00:08:05 2020-01-02 03:36:26 2020-01-01 00:08:05.000 2020-01-02 03:36:26.000 485 99386 49935.5 4993550 485 99386 49935.5 4993550 -32685 32453 4715.66 471566 -128 127 -2.42 -242 -486 101 10476 99387 1.45945 298.45945 149.95945 14995.94594 1.45945 298.45947 149.95946 14995.94602 1.45945 298.45945 149.95945 14995.94500 2020-01-01 2020-01-02 2020-01-01 00:08:06 2020-01-02 03:36:27 2020-01-01 00:08:06.000 2020-01-02 03:36:27.000 486 99387 49936.5 4993650 486 99387 49936.5 4993650 -32684 32454 4716.66 471666 -128 123 -3.98 -398 -487 101 10477 99388 1.46246 298.46246 149.96246 14996.24624 1.46246 298.46246 149.96246 14996.24633 1.46246 298.46246 149.96246 14996.24600 2020-01-01 2020-01-02 2020-01-01 00:08:07 2020-01-02 03:36:28 2020-01-01 00:08:07.000 2020-01-02 03:36:28.000 487 99388 49937.5 4993750 487 99388 49937.5 4993750 -32683 32455 4717.66 471766 -127 124 -2.98 -298 -488 101 10478 99389 1.46546 298.46546 149.96546 14996.54654 1.46546 298.46545 149.96546 14996.54645 1.46546 298.46546 149.96546 14996.54600 2020-01-01 2020-01-02 2020-01-01 00:08:08 2020-01-02 03:36:29 2020-01-01 00:08:08.000 2020-01-02 03:36:29.000 488 99389 49938.5 4993850 488 99389 49938.5 4993850 -32682 32456 4718.66 471866 -126 125 -1.98 -198 -489 101 10479 99390 1.46846 298.46846 149.96846 14996.84684 1.46846 298.46848 149.96847 14996.84721 1.46846 298.46846 149.96846 14996.84600 2020-01-01 2020-01-02 2020-01-01 00:08:09 2020-01-02 03:36:30 2020-01-01 00:08:09.000 2020-01-02 03:36:30.000 489 99390 49939.5 4993950 489 99390 49939.5 4993950 -32681 32457 4719.66 471966 -125 126 -0.98 -98 -49 102 10039 99949 0.14714 300.14714 150.14714 15164.86186 0.14714 300.14716 150.14714 15164.86173 0.14714 300.14714 150.14714 15164.86114 2020-01-01 2020-01-02 2020-01-01 00:00:49 2020-01-02 03:45:49 2020-01-01 00:00:49.000 2020-01-02 03:45:49.000 49 99949 49999 5049899 49 99949 49999 5049899 -32520 32415 4578.009900990099 462379 -128 123 -4.643564356435643 -469 -490 101 10480 99391 1.47147 298.47147 149.97147 14997.14714 1.47147 298.47147 149.97146 14997.14687 1.47147 298.47147 149.97147 14997.14700 2020-01-01 2020-01-02 2020-01-01 00:08:10 2020-01-02 03:36:31 2020-01-01 00:08:10.000 2020-01-02 03:36:31.000 490 99391 49940.5 4994050 490 99391 49940.5 4994050 -32680 32458 4720.66 472066 -124 127 0.02 2 -491 101 10481 99392 1.47447 298.47447 149.97447 14997.44744 1.47447 298.4745 149.97447 14997.44749 1.47447 298.47447 149.97447 14997.44700 2020-01-01 2020-01-02 2020-01-01 00:08:11 2020-01-02 03:36:32 2020-01-01 00:08:11.000 2020-01-02 03:36:32.000 491 99392 49941.5 4994150 491 99392 49941.5 4994150 -32679 32459 4721.66 472166 -128 127 -1.54 -154 -492 101 10482 99393 1.47747 298.47747 149.97747 14997.74774 1.47747 298.47748 149.97747 14997.74779 1.47747 298.47747 149.97747 14997.74700 2020-01-01 2020-01-02 2020-01-01 00:08:12 2020-01-02 03:36:33 2020-01-01 00:08:12.000 2020-01-02 03:36:33.000 492 99393 49942.5 4994250 492 99393 49942.5 4994250 -32678 32460 4722.66 472266 -128 123 -3.1 -310 -493 101 10483 99394 1.48048 298.48048 149.98048 14998.04804 1.48048 298.48047 149.98048 14998.04809 1.48048 298.48048 149.98048 14998.04800 2020-01-01 2020-01-02 2020-01-01 00:08:13 2020-01-02 03:36:34 2020-01-01 00:08:13.000 2020-01-02 03:36:34.000 493 99394 49943.5 4994350 493 99394 49943.5 4994350 -32677 32461 4723.66 472366 -127 124 -2.1 -210 -494 101 10484 99395 1.48348 298.48348 149.98348 14998.34834 1.48348 298.4835 149.98348 14998.34868 1.48348 298.48348 149.98348 14998.34800 2020-01-01 2020-01-02 2020-01-01 00:08:14 2020-01-02 03:36:35 2020-01-01 00:08:14.000 2020-01-02 03:36:35.000 494 99395 49944.5 4994450 494 99395 49944.5 4994450 -32676 32462 4724.66 472466 -126 125 -1.1 -110 -495 100 10485 99396 1.48648 298.48648 149.98648 14998.64864 1.48648 298.48648 149.98648 14998.64837 1.48648 298.48648 149.98648 14998.64800 2020-01-01 2020-01-02 2020-01-01 00:08:15 2020-01-02 03:36:36 2020-01-01 00:08:15.000 2020-01-02 03:36:36.000 495 99396 49945.5 4994550 495 99396 49945.5 4994550 -32675 32463 4725.66 472566 -125 126 -0.1 -10 -496 100 10486 99397 1.48948 298.48948 149.98948 14998.94894 1.48948 298.4895 149.98948 14998.94896 1.48948 298.48948 149.98948 14998.94800 2020-01-01 2020-01-02 2020-01-01 00:08:16 2020-01-02 03:36:37 2020-01-01 00:08:16.000 2020-01-02 03:36:37.000 496 99397 49946.5 4994650 496 99397 49946.5 4994650 -32674 32464 4726.66 472666 -124 127 0.9 90 +482 101 10472 99383 1.44744 298.44744 149.94744 14994.74474 1.44744 298.44745 149.94744 14994.74485 1.44744 298.44744 149.94743999999994 14994.74400 2020-01-01 2020-01-02 2020-01-01 00:08:02 2020-01-02 03:36:23 2020-01-01 00:08:02.000 2020-01-02 03:36:23.000 482 99383 49932.5 4993250 482 99383 49932.5 4993250 -32688 32450 4712.66 471266 -126 126 -0.3 -30 +483 101 10473 99384 1.45045 298.45045 149.95045 14995.04504 1.45045 298.45044 149.95044 14995.04499 1.45045 298.45045 149.95045000000005 14995.04500 2020-01-01 2020-01-02 2020-01-01 00:08:03 2020-01-02 03:36:24 2020-01-01 00:08:03.000 2020-01-02 03:36:24.000 483 99384 49933.5 4993350 483 99384 49933.5 4993350 -32687 32451 4713.66 471366 -125 127 0.7 70 +484 101 10474 99385 1.45345 298.45345 149.95345 14995.34534 1.45345 298.45346 149.95345 14995.34574 1.45345 298.45345 149.95345000000012 14995.34500 2020-01-01 2020-01-02 2020-01-01 00:08:04 2020-01-02 03:36:25 2020-01-01 00:08:04.000 2020-01-02 03:36:25.000 484 99385 49934.5 4993450 484 99385 49934.5 4993450 -32686 32452 4714.66 471466 -128 127 -0.86 -86 +485 101 10475 99386 1.45645 298.45645 149.95645 14995.64564 1.45645 298.45645 149.95645 14995.6454 1.45645 298.45645 149.9564499999999 14995.64500 2020-01-01 2020-01-02 2020-01-01 00:08:05 2020-01-02 03:36:26 2020-01-01 00:08:05.000 2020-01-02 03:36:26.000 485 99386 49935.5 4993550 485 99386 49935.5 4993550 -32685 32453 4715.66 471566 -128 127 -2.42 -242 +486 101 10476 99387 1.45945 298.45945 149.95945 14995.94594 1.45945 298.45947 149.95946 14995.94602 1.45945 298.45945 149.95945000000006 14995.94500 2020-01-01 2020-01-02 2020-01-01 00:08:06 2020-01-02 03:36:27 2020-01-01 00:08:06.000 2020-01-02 03:36:27.000 486 99387 49936.5 4993650 486 99387 49936.5 4993650 -32684 32454 4716.66 471666 -128 123 -3.98 -398 +487 101 10477 99388 1.46246 298.46246 149.96246 14996.24624 1.46246 298.46246 149.96246 14996.24633 1.46246 298.46246 149.96246000000008 14996.24600 2020-01-01 2020-01-02 2020-01-01 00:08:07 2020-01-02 03:36:28 2020-01-01 00:08:07.000 2020-01-02 03:36:28.000 487 99388 49937.5 4993750 487 99388 49937.5 4993750 -32683 32455 4717.66 471766 -127 124 -2.98 -298 +488 101 10478 99389 1.46546 298.46546 149.96546 14996.54654 1.46546 298.46545 149.96546 14996.54645 1.46546 298.46546 149.96545999999998 14996.54600 2020-01-01 2020-01-02 2020-01-01 00:08:08 2020-01-02 03:36:29 2020-01-01 00:08:08.000 2020-01-02 03:36:29.000 488 99389 49938.5 4993850 488 99389 49938.5 4993850 -32682 32456 4718.66 471866 -126 125 -1.98 -198 +489 101 10479 99390 1.46846 298.46846 149.96846 14996.84684 1.46846 298.46848 149.96847 14996.84721 1.46846 298.46846 149.96846000000002 14996.84600 2020-01-01 2020-01-02 2020-01-01 00:08:09 2020-01-02 03:36:30 2020-01-01 00:08:09.000 2020-01-02 03:36:30.000 489 99390 49939.5 4993950 489 99390 49939.5 4993950 -32681 32457 4719.66 471966 -125 126 -0.98 -98 +49 102 10039 99949 0.14714 300.14714 150.14714 15164.86186 0.14714 300.14716 150.14714 15164.86173 0.14714 300.14714 150.14713999999992 15164.86114 2020-01-01 2020-01-02 2020-01-01 00:00:49 2020-01-02 03:45:49 2020-01-01 00:00:49.000 2020-01-02 03:45:49.000 49 99949 49999 5049899 49 99949 49999 5049899 -32520 32415 4578.009900990099 462379 -128 123 -4.643564356435643 -469 +490 101 10480 99391 1.47147 298.47147 149.97147 14997.14714 1.47147 298.47147 149.97146 14997.14687 1.47147 298.47147 149.97147000000012 14997.14700 2020-01-01 2020-01-02 2020-01-01 00:08:10 2020-01-02 03:36:31 2020-01-01 00:08:10.000 2020-01-02 03:36:31.000 490 99391 49940.5 4994050 490 99391 49940.5 4994050 -32680 32458 4720.66 472066 -124 127 0.02 2 +491 101 10481 99392 1.47447 298.47447 149.97447 14997.44744 1.47447 298.4745 149.97447 14997.44749 1.47447 298.47447 149.97446999999997 14997.44700 2020-01-01 2020-01-02 2020-01-01 00:08:11 2020-01-02 03:36:32 2020-01-01 00:08:11.000 2020-01-02 03:36:32.000 491 99392 49941.5 4994150 491 99392 49941.5 4994150 -32679 32459 4721.66 472166 -128 127 -1.54 -154 +492 101 10482 99393 1.47747 298.47747 149.97747 14997.74774 1.47747 298.47748 149.97747 14997.74779 1.47747 298.47747 149.9774699999999 14997.74700 2020-01-01 2020-01-02 2020-01-01 00:08:12 2020-01-02 03:36:33 2020-01-01 00:08:12.000 2020-01-02 03:36:33.000 492 99393 49942.5 4994250 492 99393 49942.5 4994250 -32678 32460 4722.66 472266 -128 123 -3.1 -310 +493 101 10483 99394 1.48048 298.48048 149.98048 14998.04804 1.48048 298.48047 149.98048 14998.04809 1.48048 298.48048 149.98048000000009 14998.04800 2020-01-01 2020-01-02 2020-01-01 00:08:13 2020-01-02 03:36:34 2020-01-01 00:08:13.000 2020-01-02 03:36:34.000 493 99394 49943.5 4994350 493 99394 49943.5 4994350 -32677 32461 4723.66 472366 -127 124 -2.1 -210 +494 101 10484 99395 1.48348 298.48348 149.98348 14998.34834 1.48348 298.4835 149.98348 14998.34868 1.48348 298.48348 149.98348000000004 14998.34800 2020-01-01 2020-01-02 2020-01-01 00:08:14 2020-01-02 03:36:35 2020-01-01 00:08:14.000 2020-01-02 03:36:35.000 494 99395 49944.5 4994450 494 99395 49944.5 4994450 -32676 32462 4724.66 472466 -126 125 -1.1 -110 +495 100 10485 99396 1.48648 298.48648 149.98648 14998.64864 1.48648 298.48648 149.98648 14998.64837 1.48648 298.48648 149.98647999999986 14998.64800 2020-01-01 2020-01-02 2020-01-01 00:08:15 2020-01-02 03:36:36 2020-01-01 00:08:15.000 2020-01-02 03:36:36.000 495 99396 49945.5 4994550 495 99396 49945.5 4994550 -32675 32463 4725.66 472566 -125 126 -0.1 -10 +496 100 10486 99397 1.48948 298.48948 149.98948 14998.94894 1.48948 298.4895 149.98948 14998.94896 1.48948 298.48948 149.9894800000001 14998.94800 2020-01-01 2020-01-02 2020-01-01 00:08:16 2020-01-02 03:36:37 2020-01-01 00:08:16.000 2020-01-02 03:36:37.000 496 99397 49946.5 4994650 496 99397 49946.5 4994650 -32674 32464 4726.66 472666 -124 127 0.9 90 497 100 10487 99398 1.49249 298.49249 149.99249 14999.24924 1.49249 298.4925 149.99249 14999.24926 1.49249 298.49249 149.99249 14999.24900 2020-01-01 2020-01-02 2020-01-01 00:08:17 2020-01-02 03:36:38 2020-01-01 00:08:17.000 2020-01-02 03:36:38.000 497 99398 49947.5 4994750 497 99398 49947.5 4994750 -32673 32465 4727.66 472766 -128 127 -0.66 -66 -498 100 10488 99399 1.49549 298.49549 149.99549 14999.54954 1.49549 298.49548 149.99549 14999.54956 1.49549 298.49549 149.99549 14999.54900 2020-01-01 2020-01-02 2020-01-01 00:08:18 2020-01-02 03:36:39 2020-01-01 00:08:18.000 2020-01-02 03:36:39.000 498 99399 49948.5 4994850 498 99399 49948.5 4994850 -32672 32466 4728.66 472866 -128 123 -2.22 -222 -499 100 10489 99400 1.49849 298.49849 149.99849 14999.84984 1.49849 298.4985 149.9985 14999.85015 1.49849 298.49849 149.99849 14999.84900 2020-01-01 2020-01-02 2020-01-01 00:08:19 2020-01-02 03:36:40 2020-01-01 00:08:19.000 2020-01-02 03:36:40.000 499 99400 49949.5 4994950 499 99400 49949.5 4994950 -32671 32467 4729.66 472966 -127 124 -1.22 -122 -5 102 1004 9995 0.01501 300.01501 150.01501 15151.51651 0.01501 300.015 150.01501 15151.51648 0.01501 300.01501 150.01501 15151.51601 2020-01-01 2020-01-02 2020-01-01 00:00:05 2020-01-02 03:45:05 2020-01-01 00:00:05.000 2020-01-02 03:45:05.000 5 99905 49955 5045455 5 99905 49955 5045455 -32564 32371 4534.009900990099 457935 -128 123 -3.01980198019802 -305 +498 100 10488 99399 1.49549 298.49549 149.99549 14999.54954 1.49549 298.49548 149.99549 14999.54956 1.49549 298.49549 149.99548999999996 14999.54900 2020-01-01 2020-01-02 2020-01-01 00:08:18 2020-01-02 03:36:39 2020-01-01 00:08:18.000 2020-01-02 03:36:39.000 498 99399 49948.5 4994850 498 99399 49948.5 4994850 -32672 32466 4728.66 472866 -128 123 -2.22 -222 +499 100 10489 99400 1.49849 298.49849 149.99849 14999.84984 1.49849 298.4985 149.9985 14999.85015 1.49849 298.49849 149.99848999999998 14999.84900 2020-01-01 2020-01-02 2020-01-01 00:08:19 2020-01-02 03:36:40 2020-01-01 00:08:19.000 2020-01-02 03:36:40.000 499 99400 49949.5 4994950 499 99400 49949.5 4994950 -32671 32467 4729.66 472966 -127 124 -1.22 -122 +5 102 1004 9995 0.01501 300.01501 150.01501 15151.51651 0.01501 300.015 150.01501 15151.51648 0.01501 300.01501 150.01500999999993 15151.51601 2020-01-01 2020-01-02 2020-01-01 00:00:05 2020-01-02 03:45:05 2020-01-01 00:00:05.000 2020-01-02 03:45:05.000 5 99905 49955 5045455 5 99905 49955 5045455 -32564 32371 4534.009900990099 457935 -128 123 -3.01980198019802 -305 50 102 10040 99950 0.15015 300.15015 150.15015 15165.16516 0.15015 300.15015 150.15014 15165.16487 0.15015 300.15015 150.15015 15165.16515 2020-01-01 2020-01-02 2020-01-01 00:00:50 2020-01-02 03:45:50 2020-01-01 00:00:50.000 2020-01-02 03:45:50.000 50 99950 50000 5050000 50 99950 50000 5050000 -32519 32416 4579.009900990099 462480 -127 124 -3.6435643564356437 -368 -500 100 10490 99401 1.5015 298.5015 150.0015 15000.15015 1.5015 298.5015 150.00149 15000.14984 1.50150 298.50150 150.00150 15000.15000 2020-01-01 2020-01-02 2020-01-01 00:08:20 2020-01-02 03:36:41 2020-01-01 00:08:20.000 2020-01-02 03:36:41.000 500 99401 49950.5 4995050 500 99401 49950.5 4995050 -32670 32468 4730.66 473066 -126 125 -0.22 -22 -501 100 10491 99402 1.5045 298.5045 150.0045 15000.45045 1.5045 298.50452 150.0045 15000.45043 1.50450 298.50450 150.00450 15000.45000 2020-01-01 2020-01-02 2020-01-01 00:08:21 2020-01-02 03:36:42 2020-01-01 00:08:21.000 2020-01-02 03:36:42.000 501 99402 49951.5 4995150 501 99402 49951.5 4995150 -32669 32469 4731.66 473166 -125 126 0.78 78 -502 100 10492 99403 1.5075 298.5075 150.0075 15000.75075 1.5075 298.5075 150.0075 15000.75073 1.50750 298.50750 150.00750 15000.75000 2020-01-01 2020-01-02 2020-01-01 00:08:22 2020-01-02 03:36:43 2020-01-01 00:08:22.000 2020-01-02 03:36:43.000 502 99403 49952.5 4995250 502 99403 49952.5 4995250 -32668 32470 4732.66 473266 -124 127 1.78 178 -503 100 10493 99404 1.51051 298.51051 150.01051 15001.05105 1.51051 298.5105 150.01051 15001.05103 1.51051 298.51051 150.01051 15001.05100 2020-01-01 2020-01-02 2020-01-01 00:08:23 2020-01-02 03:36:44 2020-01-01 00:08:23.000 2020-01-02 03:36:44.000 503 99404 49953.5 4995350 503 99404 49953.5 4995350 -32667 32471 4733.66 473366 -128 127 0.22 22 +500 100 10490 99401 1.5015 298.5015 150.0015 15000.15015 1.5015 298.5015 150.00149 15000.14984 1.50150 298.50150 150.00150000000008 15000.15000 2020-01-01 2020-01-02 2020-01-01 00:08:20 2020-01-02 03:36:41 2020-01-01 00:08:20.000 2020-01-02 03:36:41.000 500 99401 49950.5 4995050 500 99401 49950.5 4995050 -32670 32468 4730.66 473066 -126 125 -0.22 -22 +501 100 10491 99402 1.5045 298.5045 150.0045 15000.45045 1.5045 298.50452 150.0045 15000.45043 1.50450 298.50450 150.0044999999999 15000.45000 2020-01-01 2020-01-02 2020-01-01 00:08:21 2020-01-02 03:36:42 2020-01-01 00:08:21.000 2020-01-02 03:36:42.000 501 99402 49951.5 4995150 501 99402 49951.5 4995150 -32669 32469 4731.66 473166 -125 126 0.78 78 +502 100 10492 99403 1.5075 298.5075 150.0075 15000.75075 1.5075 298.5075 150.0075 15000.75073 1.50750 298.50750 150.00749999999994 15000.75000 2020-01-01 2020-01-02 2020-01-01 00:08:22 2020-01-02 03:36:43 2020-01-01 00:08:22.000 2020-01-02 03:36:43.000 502 99403 49952.5 4995250 502 99403 49952.5 4995250 -32668 32470 4732.66 473266 -124 127 1.78 178 +503 100 10493 99404 1.51051 298.51051 150.01051 15001.05105 1.51051 298.5105 150.01051 15001.05103 1.51051 298.51051 150.01051000000004 15001.05100 2020-01-01 2020-01-02 2020-01-01 00:08:23 2020-01-02 03:36:44 2020-01-01 00:08:23.000 2020-01-02 03:36:44.000 503 99404 49953.5 4995350 503 99404 49953.5 4995350 -32667 32471 4733.66 473366 -128 127 0.22 22 504 100 10494 99405 1.51351 298.51351 150.01351 15001.35135 1.51351 298.51352 150.01351 15001.35162 1.51351 298.51351 150.01351 15001.35100 2020-01-01 2020-01-02 2020-01-01 00:08:24 2020-01-02 03:36:45 2020-01-01 00:08:24.000 2020-01-02 03:36:45.000 504 99405 49954.5 4995450 504 99405 49954.5 4995450 -32666 32472 4734.66 473466 -128 127 -1.34 -134 505 100 10495 99406 1.51651 298.51651 150.01651 15001.65165 1.51651 298.5165 150.01651 15001.65131 1.51651 298.51651 150.01651 15001.65100 2020-01-01 2020-01-02 2020-01-01 00:08:25 2020-01-02 03:36:46 2020-01-01 00:08:25.000 2020-01-02 03:36:46.000 505 99406 49955.5 4995550 505 99406 49955.5 4995550 -32665 32473 4735.66 473566 -128 124 -2.9 -290 -506 100 10496 99407 1.51951 298.51951 150.01951 15001.95195 1.51951 298.51953 150.01951 15001.9519 1.51951 298.51951 150.01951 15001.95100 2020-01-01 2020-01-02 2020-01-01 00:08:26 2020-01-02 03:36:47 2020-01-01 00:08:26.000 2020-01-02 03:36:47.000 506 99407 49956.5 4995650 506 99407 49956.5 4995650 -32664 32474 4736.66 473666 -127 125 -1.9 -190 -507 100 10497 99408 1.52252 298.52252 150.02252 15002.25225 1.52252 298.52252 150.02252 15002.2522 1.52252 298.52252 150.02252 15002.25200 2020-01-01 2020-01-02 2020-01-01 00:08:27 2020-01-02 03:36:48 2020-01-01 00:08:27.000 2020-01-02 03:36:48.000 507 99408 49957.5 4995750 507 99408 49957.5 4995750 -32663 32475 4737.66 473766 -126 126 -0.9 -90 -508 100 10498 99409 1.52552 298.52552 150.02552 15002.55255 1.52552 298.5255 150.02552 15002.5525 1.52552 298.52552 150.02552 15002.55200 2020-01-01 2020-01-02 2020-01-01 00:08:28 2020-01-02 03:36:49 2020-01-01 00:08:28.000 2020-01-02 03:36:49.000 508 99409 49958.5 4995850 508 99409 49958.5 4995850 -32662 32476 4738.66 473866 -125 127 0.1 10 -509 100 10499 99410 1.52852 298.52852 150.02852 15002.85285 1.52852 298.52853 150.02853 15002.85312 1.52852 298.52852 150.02852 15002.85200 2020-01-01 2020-01-02 2020-01-01 00:08:29 2020-01-02 03:36:50 2020-01-01 00:08:29.000 2020-01-02 03:36:50.000 509 99410 49959.5 4995950 509 99410 49959.5 4995950 -32661 32477 4739.66 473966 -128 127 -1.46 -146 -51 102 10041 99951 0.15315 300.15315 150.15315 15165.46846 0.15315 300.15317 150.15315 15165.46863 0.15315 300.15315 150.15315 15165.46815 2020-01-01 2020-01-02 2020-01-01 00:00:51 2020-01-02 03:45:51 2020-01-01 00:00:51.000 2020-01-02 03:45:51.000 51 99951 50001 5050101 51 99951 50001 5050101 -32518 32417 4580.009900990099 462581 -126 125 -2.6435643564356437 -267 -510 100 10500 99411 1.53153 298.53153 150.03153 15003.15315 1.53153 298.53152 150.03152 15003.15278 1.53153 298.53153 150.03153 15003.15300 2020-01-01 2020-01-02 2020-01-01 00:08:30 2020-01-02 03:36:51 2020-01-01 00:08:30.000 2020-01-02 03:36:51.000 510 99411 49960.5 4996050 510 99411 49960.5 4996050 -32660 32478 4740.66 474066 -128 127 -3.02 -302 -511 100 10501 99412 1.53453 298.53453 150.03453 15003.45345 1.53453 298.53455 150.03453 15003.45354 1.53453 298.53453 150.03453 15003.45300 2020-01-01 2020-01-02 2020-01-01 00:08:31 2020-01-02 03:36:52 2020-01-01 00:08:31.000 2020-01-02 03:36:52.000 511 99412 49961.5 4996150 511 99412 49961.5 4996150 -32659 32479 4741.66 474166 -128 123 -4.58 -458 -512 100 10502 99413 1.53753 298.53753 150.03753 15003.75375 1.53753 298.53754 150.03753 15003.75366 1.53753 298.53753 150.03753 15003.75300 2020-01-01 2020-01-02 2020-01-01 00:08:32 2020-01-02 03:36:53 2020-01-01 00:08:32.000 2020-01-02 03:36:53.000 512 99413 49962.5 4996250 512 99413 49962.5 4996250 -32658 32480 4742.66 474266 -127 124 -3.58 -358 +506 100 10496 99407 1.51951 298.51951 150.01951 15001.95195 1.51951 298.51953 150.01951 15001.9519 1.51951 298.51951 150.01951000000005 15001.95100 2020-01-01 2020-01-02 2020-01-01 00:08:26 2020-01-02 03:36:47 2020-01-01 00:08:26.000 2020-01-02 03:36:47.000 506 99407 49956.5 4995650 506 99407 49956.5 4995650 -32664 32474 4736.66 473666 -127 125 -1.9 -190 +507 100 10497 99408 1.52252 298.52252 150.02252 15002.25225 1.52252 298.52252 150.02252 15002.2522 1.52252 298.52252 150.02252000000016 15002.25200 2020-01-01 2020-01-02 2020-01-01 00:08:27 2020-01-02 03:36:48 2020-01-01 00:08:27.000 2020-01-02 03:36:48.000 507 99408 49957.5 4995750 507 99408 49957.5 4995750 -32663 32475 4737.66 473766 -126 126 -0.9 -90 +508 100 10498 99409 1.52552 298.52552 150.02552 15002.55255 1.52552 298.5255 150.02552 15002.5525 1.52552 298.52552 150.02551999999994 15002.55200 2020-01-01 2020-01-02 2020-01-01 00:08:28 2020-01-02 03:36:49 2020-01-01 00:08:28.000 2020-01-02 03:36:49.000 508 99409 49958.5 4995850 508 99409 49958.5 4995850 -32662 32476 4738.66 473866 -125 127 0.1 10 +509 100 10499 99410 1.52852 298.52852 150.02852 15002.85285 1.52852 298.52853 150.02853 15002.85312 1.52852 298.52852 150.02851999999993 15002.85200 2020-01-01 2020-01-02 2020-01-01 00:08:29 2020-01-02 03:36:50 2020-01-01 00:08:29.000 2020-01-02 03:36:50.000 509 99410 49959.5 4995950 509 99410 49959.5 4995950 -32661 32477 4739.66 473966 -128 127 -1.46 -146 +51 102 10041 99951 0.15315 300.15315 150.15315 15165.46846 0.15315 300.15317 150.15315 15165.46863 0.15315 300.15315 150.15315000000007 15165.46815 2020-01-01 2020-01-02 2020-01-01 00:00:51 2020-01-02 03:45:51 2020-01-01 00:00:51.000 2020-01-02 03:45:51.000 51 99951 50001 5050101 51 99951 50001 5050101 -32518 32417 4580.009900990099 462581 -126 125 -2.6435643564356437 -267 +510 100 10500 99411 1.53153 298.53153 150.03153 15003.15315 1.53153 298.53152 150.03152 15003.15278 1.53153 298.53153 150.0315300000001 15003.15300 2020-01-01 2020-01-02 2020-01-01 00:08:30 2020-01-02 03:36:51 2020-01-01 00:08:30.000 2020-01-02 03:36:51.000 510 99411 49960.5 4996050 510 99411 49960.5 4996050 -32660 32478 4740.66 474066 -128 127 -3.02 -302 +511 100 10501 99412 1.53453 298.53453 150.03453 15003.45345 1.53453 298.53455 150.03453 15003.45354 1.53453 298.53453 150.03453000000005 15003.45300 2020-01-01 2020-01-02 2020-01-01 00:08:31 2020-01-02 03:36:52 2020-01-01 00:08:31.000 2020-01-02 03:36:52.000 511 99412 49961.5 4996150 511 99412 49961.5 4996150 -32659 32479 4741.66 474166 -128 123 -4.58 -458 +512 100 10502 99413 1.53753 298.53753 150.03753 15003.75375 1.53753 298.53754 150.03753 15003.75366 1.53753 298.53753 150.0375299999999 15003.75300 2020-01-01 2020-01-02 2020-01-01 00:08:32 2020-01-02 03:36:53 2020-01-01 00:08:32.000 2020-01-02 03:36:53.000 512 99413 49962.5 4996250 512 99413 49962.5 4996250 -32658 32480 4742.66 474266 -127 124 -3.58 -358 513 100 10503 99414 1.54054 298.54054 150.04054 15004.05405 1.54054 298.54053 150.04053 15004.05397 1.54054 298.54054 150.04054 15004.05400 2020-01-01 2020-01-02 2020-01-01 00:08:33 2020-01-02 03:36:54 2020-01-01 00:08:33.000 2020-01-02 03:36:54.000 513 99414 49963.5 4996350 513 99414 49963.5 4996350 -32657 32481 4743.66 474366 -126 125 -2.58 -258 514 100 10504 99415 1.54354 298.54354 150.04354 15004.35435 1.54354 298.54355 150.04354 15004.35459 1.54354 298.54354 150.04354 15004.35400 2020-01-01 2020-01-02 2020-01-01 00:08:34 2020-01-02 03:36:55 2020-01-01 00:08:34.000 2020-01-02 03:36:55.000 514 99415 49964.5 4996450 514 99415 49964.5 4996450 -32656 32482 4744.66 474466 -125 126 -1.58 -158 -515 100 10505 99416 1.54654 298.54654 150.04654 15004.65465 1.54654 298.54654 150.04654 15004.65425 1.54654 298.54654 150.04654 15004.65400 2020-01-01 2020-01-02 2020-01-01 00:08:35 2020-01-02 03:36:56 2020-01-01 00:08:35.000 2020-01-02 03:36:56.000 515 99416 49965.5 4996550 515 99416 49965.5 4996550 -32655 32483 4745.66 474566 -124 127 -0.58 -58 +515 100 10505 99416 1.54654 298.54654 150.04654 15004.65465 1.54654 298.54654 150.04654 15004.65425 1.54654 298.54654 150.04653999999994 15004.65400 2020-01-01 2020-01-02 2020-01-01 00:08:35 2020-01-02 03:36:56 2020-01-01 00:08:35.000 2020-01-02 03:36:56.000 515 99416 49965.5 4996550 515 99416 49965.5 4996550 -32655 32483 4745.66 474566 -124 127 -0.58 -58 516 100 10506 99417 1.54954 298.54954 150.04954 15004.95495 1.54954 298.54956 150.04955 15004.955 1.54954 298.54954 150.04954 15004.95400 2020-01-01 2020-01-02 2020-01-01 00:08:36 2020-01-02 03:36:57 2020-01-01 00:08:36.000 2020-01-02 03:36:57.000 516 99417 49966.5 4996650 516 99417 49966.5 4996650 -32654 32484 4746.66 474666 -128 127 -2.14 -214 -517 100 10507 99418 1.55255 298.55255 150.05255 15005.25525 1.55255 298.55255 150.05255 15005.25514 1.55255 298.55255 150.05255 15005.25500 2020-01-01 2020-01-02 2020-01-01 00:08:37 2020-01-02 03:36:58 2020-01-01 00:08:37.000 2020-01-02 03:36:58.000 517 99418 49967.5 4996750 517 99418 49967.5 4996750 -32653 32485 4747.66 474766 -128 123 -3.7 -370 -518 100 10508 99419 1.55555 298.55555 150.05555 15005.55555 1.55555 298.55554 150.05555 15005.55547 1.55555 298.55555 150.05555 15005.55500 2020-01-01 2020-01-02 2020-01-01 00:08:38 2020-01-02 03:36:59 2020-01-01 00:08:38.000 2020-01-02 03:36:59.000 518 99419 49968.5 4996850 518 99419 49968.5 4996850 -32652 32486 4748.66 474866 -127 124 -2.7 -270 -519 100 10509 99420 1.55855 298.55855 150.05855 15005.85585 1.55855 298.55856 150.05856 15005.85607 1.55855 298.55855 150.05855 15005.85500 2020-01-01 2020-01-02 2020-01-01 00:08:39 2020-01-02 03:37:00 2020-01-01 00:08:39.000 2020-01-02 03:37:00.000 519 99420 49969.5 4996950 519 99420 49969.5 4996950 -32651 32487 4749.66 474966 -126 125 -1.7 -170 +517 100 10507 99418 1.55255 298.55255 150.05255 15005.25525 1.55255 298.55255 150.05255 15005.25514 1.55255 298.55255 150.05255000000005 15005.25500 2020-01-01 2020-01-02 2020-01-01 00:08:37 2020-01-02 03:36:58 2020-01-01 00:08:37.000 2020-01-02 03:36:58.000 517 99418 49967.5 4996750 517 99418 49967.5 4996750 -32653 32485 4747.66 474766 -128 123 -3.7 -370 +518 100 10508 99419 1.55555 298.55555 150.05555 15005.55555 1.55555 298.55554 150.05555 15005.55547 1.55555 298.55555 150.05554999999993 15005.55500 2020-01-01 2020-01-02 2020-01-01 00:08:38 2020-01-02 03:36:59 2020-01-01 00:08:38.000 2020-01-02 03:36:59.000 518 99419 49968.5 4996850 518 99419 49968.5 4996850 -32652 32486 4748.66 474866 -127 124 -2.7 -270 +519 100 10509 99420 1.55855 298.55855 150.05855 15005.85585 1.55855 298.55856 150.05856 15005.85607 1.55855 298.55855 150.05854999999997 15005.85500 2020-01-01 2020-01-02 2020-01-01 00:08:39 2020-01-02 03:37:00 2020-01-01 00:08:39.000 2020-01-02 03:37:00.000 519 99420 49969.5 4996950 519 99420 49969.5 4996950 -32651 32487 4749.66 474966 -126 125 -1.7 -170 52 102 10042 99952 0.15615 300.15615 150.15615 15165.77177 0.15615 300.15616 150.15615 15165.77193 0.15615 300.15615 150.15615 15165.77115 2020-01-01 2020-01-02 2020-01-01 00:00:52 2020-01-02 03:45:52 2020-01-01 00:00:52.000 2020-01-02 03:45:52.000 52 99952 50002 5050202 52 99952 50002 5050202 -32517 32418 4581.009900990099 462682 -125 126 -1.6435643564356435 -166 -520 100 10510 99421 1.56156 298.56156 150.06156 15006.15615 1.56156 298.56155 150.06155 15006.15572 1.56156 298.56156 150.06156 15006.15600 2020-01-01 2020-01-02 2020-01-01 00:08:40 2020-01-02 03:37:01 2020-01-01 00:08:40.000 2020-01-02 03:37:01.000 520 99421 49970.5 4997050 520 99421 49970.5 4997050 -32650 32488 4750.66 475066 -125 126 -0.7 -70 -521 100 10511 99422 1.56456 298.56456 150.06456 15006.45645 1.56456 298.56458 150.06456 15006.45647 1.56456 298.56456 150.06456 15006.45600 2020-01-01 2020-01-02 2020-01-01 00:08:41 2020-01-02 03:37:02 2020-01-01 00:08:41.000 2020-01-02 03:37:02.000 521 99422 49971.5 4997150 521 99422 49971.5 4997150 -32649 32489 4751.66 475166 -124 127 0.3 30 +520 100 10510 99421 1.56156 298.56156 150.06156 15006.15615 1.56156 298.56155 150.06155 15006.15572 1.56156 298.56156 150.06156000000007 15006.15600 2020-01-01 2020-01-02 2020-01-01 00:08:40 2020-01-02 03:37:01 2020-01-01 00:08:40.000 2020-01-02 03:37:01.000 520 99421 49970.5 4997050 520 99421 49970.5 4997050 -32650 32488 4750.66 475066 -125 126 -0.7 -70 +521 100 10511 99422 1.56456 298.56456 150.06456 15006.45645 1.56456 298.56458 150.06456 15006.45647 1.56456 298.56456 150.06456000000003 15006.45600 2020-01-01 2020-01-02 2020-01-01 00:08:41 2020-01-02 03:37:02 2020-01-01 00:08:41.000 2020-01-02 03:37:02.000 521 99422 49971.5 4997150 521 99422 49971.5 4997150 -32649 32489 4751.66 475166 -124 127 0.3 30 522 100 10512 99423 1.56756 298.56756 150.06756 15006.75675 1.56756 298.56757 150.06756 15006.75661 1.56756 298.56756 150.06756 15006.75600 2020-01-01 2020-01-02 2020-01-01 00:08:42 2020-01-02 03:37:03 2020-01-01 00:08:42.000 2020-01-02 03:37:03.000 522 99423 49972.5 4997250 522 99423 49972.5 4997250 -32648 32490 4752.66 475266 -128 127 -1.26 -126 -523 100 10513 99424 1.57057 298.57057 150.07057 15007.05705 1.57057 298.57056 150.07056 15007.05694 1.57057 298.57057 150.07057 15007.05700 2020-01-01 2020-01-02 2020-01-01 00:08:43 2020-01-02 03:37:04 2020-01-01 00:08:43.000 2020-01-02 03:37:04.000 523 99424 49973.5 4997350 523 99424 49973.5 4997350 -32647 32491 4753.66 475366 -128 123 -2.82 -282 +523 100 10513 99424 1.57057 298.57057 150.07057 15007.05705 1.57057 298.57056 150.07056 15007.05694 1.57057 298.57057 150.0705699999999 15007.05700 2020-01-01 2020-01-02 2020-01-01 00:08:43 2020-01-02 03:37:04 2020-01-01 00:08:43.000 2020-01-02 03:37:04.000 523 99424 49973.5 4997350 523 99424 49973.5 4997350 -32647 32491 4753.66 475366 -128 123 -2.82 -282 524 100 10514 99425 1.57357 298.57357 150.07357 15007.35735 1.57357 298.57358 150.07357 15007.35753 1.57357 298.57357 150.07357 15007.35700 2020-01-01 2020-01-02 2020-01-01 00:08:44 2020-01-02 03:37:05 2020-01-01 00:08:44.000 2020-01-02 03:37:05.000 524 99425 49974.5 4997450 524 99425 49974.5 4997450 -32646 32492 4754.66 475466 -127 124 -1.82 -182 -525 100 10515 99426 1.57657 298.57657 150.07657 15007.65765 1.57657 298.57657 150.07657 15007.65783 1.57657 298.57657 150.07657 15007.65700 2020-01-01 2020-01-02 2020-01-01 00:08:45 2020-01-02 03:37:06 2020-01-01 00:08:45.000 2020-01-02 03:37:06.000 525 99426 49975.5 4997550 525 99426 49975.5 4997550 -32645 32493 4755.66 475566 -126 125 -0.82 -82 -526 100 10516 99427 1.57957 298.57957 150.07957 15007.95795 1.57957 298.5796 150.07957 15007.95795 1.57957 298.57957 150.07957 15007.95700 2020-01-01 2020-01-02 2020-01-01 00:08:46 2020-01-02 03:37:07 2020-01-01 00:08:46.000 2020-01-02 03:37:07.000 526 99427 49976.5 4997650 526 99427 49976.5 4997650 -32644 32494 4756.66 475666 -125 126 0.18 18 -527 100 10517 99428 1.58258 298.58258 150.08258 15008.25825 1.58258 298.58258 150.08258 15008.25811 1.58258 298.58258 150.08258 15008.25800 2020-01-01 2020-01-02 2020-01-01 00:08:47 2020-01-02 03:37:08 2020-01-01 00:08:47.000 2020-01-02 03:37:08.000 527 99428 49977.5 4997750 527 99428 49977.5 4997750 -32643 32495 4757.66 475766 -124 127 1.18 118 -528 100 10518 99429 1.58558 298.58558 150.08558 15008.55855 1.58558 298.58557 150.08558 15008.5584 1.58558 298.58558 150.08558 15008.55800 2020-01-01 2020-01-02 2020-01-01 00:08:48 2020-01-02 03:37:09 2020-01-01 00:08:48.000 2020-01-02 03:37:09.000 528 99429 49978.5 4997850 528 99429 49978.5 4997850 -32642 32496 4758.66 475866 -128 127 -0.38 -38 -529 100 10519 99430 1.58858 298.58858 150.08858 15008.85885 1.58858 298.5886 150.08859 15008.859 1.58858 298.58858 150.08858 15008.85800 2020-01-01 2020-01-02 2020-01-01 00:08:49 2020-01-02 03:37:10 2020-01-01 00:08:49.000 2020-01-02 03:37:10.000 529 99430 49979.5 4997950 529 99430 49979.5 4997950 -32641 32497 4759.66 475966 -128 127 -1.94 -194 +525 100 10515 99426 1.57657 298.57657 150.07657 15007.65765 1.57657 298.57657 150.07657 15007.65783 1.57657 298.57657 150.07656999999986 15007.65700 2020-01-01 2020-01-02 2020-01-01 00:08:45 2020-01-02 03:37:06 2020-01-01 00:08:45.000 2020-01-02 03:37:06.000 525 99426 49975.5 4997550 525 99426 49975.5 4997550 -32645 32493 4755.66 475566 -126 125 -0.82 -82 +526 100 10516 99427 1.57957 298.57957 150.07957 15007.95795 1.57957 298.5796 150.07957 15007.95795 1.57957 298.57957 150.0795699999999 15007.95700 2020-01-01 2020-01-02 2020-01-01 00:08:46 2020-01-02 03:37:07 2020-01-01 00:08:46.000 2020-01-02 03:37:07.000 526 99427 49976.5 4997650 526 99427 49976.5 4997650 -32644 32494 4756.66 475666 -125 126 0.18 18 +527 100 10517 99428 1.58258 298.58258 150.08258 15008.25825 1.58258 298.58258 150.08258 15008.25811 1.58258 298.58258 150.08258000000015 15008.25800 2020-01-01 2020-01-02 2020-01-01 00:08:47 2020-01-02 03:37:08 2020-01-01 00:08:47.000 2020-01-02 03:37:08.000 527 99428 49977.5 4997750 527 99428 49977.5 4997750 -32643 32495 4757.66 475766 -124 127 1.18 118 +528 100 10518 99429 1.58558 298.58558 150.08558 15008.55855 1.58558 298.58557 150.08558 15008.5584 1.58558 298.58558 150.08558000000025 15008.55800 2020-01-01 2020-01-02 2020-01-01 00:08:48 2020-01-02 03:37:09 2020-01-01 00:08:48.000 2020-01-02 03:37:09.000 528 99429 49978.5 4997850 528 99429 49978.5 4997850 -32642 32496 4758.66 475866 -128 127 -0.38 -38 +529 100 10519 99430 1.58858 298.58858 150.08858 15008.85885 1.58858 298.5886 150.08859 15008.859 1.58858 298.58858 150.08857999999975 15008.85800 2020-01-01 2020-01-02 2020-01-01 00:08:49 2020-01-02 03:37:10 2020-01-01 00:08:49.000 2020-01-02 03:37:10.000 529 99430 49979.5 4997950 529 99430 49979.5 4997950 -32641 32497 4759.66 475966 -128 127 -1.94 -194 53 102 10043 99953 0.15915 300.15915 150.15915 15166.07507 0.15915 300.15915 150.15915 15166.07511 0.15915 300.15915 150.15915 15166.07415 2020-01-01 2020-01-02 2020-01-01 00:00:53 2020-01-02 03:45:53 2020-01-01 00:00:53.000 2020-01-02 03:45:53.000 53 99953 50003 5050303 53 99953 50003 5050303 -32516 32419 4582.009900990099 462783 -124 127 -0.6435643564356436 -65 530 100 10520 99431 1.59159 298.59159 150.09159 15009.15915 1.59159 298.59158 150.09159 15009.15929 1.59159 298.59159 150.09159 15009.15900 2020-01-01 2020-01-02 2020-01-01 00:08:50 2020-01-02 03:37:11 2020-01-01 00:08:50.000 2020-01-02 03:37:11.000 530 99431 49980.5 4998050 530 99431 49980.5 4998050 -32640 32498 4760.66 476066 -128 124 -3.5 -350 -531 100 10521 99432 1.59459 298.59459 150.09459 15009.45945 1.59459 298.5946 150.09459 15009.45941 1.59459 298.59459 150.09459 15009.45900 2020-01-01 2020-01-02 2020-01-01 00:08:51 2020-01-02 03:37:12 2020-01-01 00:08:51.000 2020-01-02 03:37:12.000 531 99432 49981.5 4998150 531 99432 49981.5 4998150 -32639 32499 4761.66 476166 -127 125 -2.5 -250 -532 100 10522 99433 1.59759 298.59759 150.09759 15009.75975 1.59759 298.5976 150.09759 15009.75958 1.59759 298.59759 150.09759 15009.75900 2020-01-01 2020-01-02 2020-01-01 00:08:52 2020-01-02 03:37:13 2020-01-01 00:08:52.000 2020-01-02 03:37:13.000 532 99433 49982.5 4998250 532 99433 49982.5 4998250 -32638 32500 4762.66 476266 -126 126 -1.5 -150 -533 100 10523 99434 1.6006 298.6006 150.1006 15010.06006 1.6006 298.6006 150.10059 15010.05988 1.60060 298.60060 150.10060 15010.06000 2020-01-01 2020-01-02 2020-01-01 00:08:53 2020-01-02 03:37:14 2020-01-01 00:08:53.000 2020-01-02 03:37:14.000 533 99434 49983.5 4998350 533 99434 49983.5 4998350 -32637 32501 4763.66 476366 -125 127 -0.5 -50 -534 100 10524 99435 1.6036 298.6036 150.1036 15010.36036 1.6036 298.6036 150.1036 15010.36063 1.60360 298.60360 150.10360 15010.36000 2020-01-01 2020-01-02 2020-01-01 00:08:54 2020-01-02 03:37:15 2020-01-01 00:08:54.000 2020-01-02 03:37:15.000 534 99435 49984.5 4998450 534 99435 49984.5 4998450 -32636 32502 4764.66 476466 -128 127 -2.06 -206 -535 100 10525 99436 1.6066 298.6066 150.1066 15010.66066 1.6066 298.6066 150.1066 15010.66077 1.60660 298.60660 150.10660 15010.66000 2020-01-01 2020-01-02 2020-01-01 00:08:55 2020-01-02 03:37:16 2020-01-01 00:08:55.000 2020-01-02 03:37:16.000 535 99436 49985.5 4998550 535 99436 49985.5 4998550 -32635 32503 4765.66 476566 -128 127 -3.62 -362 -536 100 10526 99437 1.6096 298.6096 150.1096 15010.96096 1.6096 298.60962 150.1096 15010.96092 1.60960 298.60960 150.10960 15010.96000 2020-01-01 2020-01-02 2020-01-01 00:08:56 2020-01-02 03:37:17 2020-01-01 00:08:56.000 2020-01-02 03:37:17.000 536 99437 49986.5 4998650 536 99437 49986.5 4998650 -32634 32504 4766.66 476666 -128 123 -5.18 -518 -537 100 10527 99438 1.61261 298.61261 150.11261 15011.26126 1.61261 298.6126 150.11261 15011.26105 1.61261 298.61261 150.11261 15011.26100 2020-01-01 2020-01-02 2020-01-01 00:08:57 2020-01-02 03:37:18 2020-01-01 00:08:57.000 2020-01-02 03:37:18.000 537 99438 49987.5 4998750 537 99438 49987.5 4998750 -32633 32505 4767.66 476766 -127 124 -4.18 -418 -538 100 10528 99439 1.61561 298.61561 150.11561 15011.56156 1.61561 298.6156 150.11561 15011.56135 1.61561 298.61561 150.11561 15011.56100 2020-01-01 2020-01-02 2020-01-01 00:08:58 2020-01-02 03:37:19 2020-01-01 00:08:58.000 2020-01-02 03:37:19.000 538 99439 49988.5 4998850 538 99439 49988.5 4998850 -32632 32506 4768.66 476866 -126 125 -3.18 -318 -539 100 10529 99440 1.61861 298.61861 150.11861 15011.86186 1.61861 298.61862 150.11862 15011.8621 1.61861 298.61861 150.11861 15011.86100 2020-01-01 2020-01-02 2020-01-01 00:08:59 2020-01-02 03:37:20 2020-01-01 00:08:59.000 2020-01-02 03:37:20.000 539 99440 49989.5 4998950 539 99440 49989.5 4998950 -32631 32507 4769.66 476966 -125 126 -2.18 -218 -54 102 10044 99954 0.16216 300.16216 150.16216 15166.37837 0.16216 300.16217 150.16216 15166.37822 0.16216 300.16216 150.16216 15166.37816 2020-01-01 2020-01-02 2020-01-01 00:00:54 2020-01-02 03:45:54 2020-01-01 00:00:54.000 2020-01-02 03:45:54.000 54 99954 50004 5050404 54 99954 50004 5050404 -32515 32420 4583.009900990099 462884 -128 127 -2.1782178217821784 -220 -540 100 10530 99441 1.62162 298.62162 150.12162 15012.16216 1.62162 298.6216 150.12162 15012.16224 1.62162 298.62162 150.12162 15012.16200 2020-01-01 2020-01-02 2020-01-01 00:09:00 2020-01-02 03:37:21 2020-01-01 00:09:00.000 2020-01-02 03:37:21.000 540 99441 49990.5 4999050 540 99441 49990.5 4999050 -32630 32508 4770.66 477066 -124 127 -1.18 -118 +531 100 10521 99432 1.59459 298.59459 150.09459 15009.45945 1.59459 298.5946 150.09459 15009.45941 1.59459 298.59459 150.0945900000001 15009.45900 2020-01-01 2020-01-02 2020-01-01 00:08:51 2020-01-02 03:37:12 2020-01-01 00:08:51.000 2020-01-02 03:37:12.000 531 99432 49981.5 4998150 531 99432 49981.5 4998150 -32639 32499 4761.66 476166 -127 125 -2.5 -250 +532 100 10522 99433 1.59759 298.59759 150.09759 15009.75975 1.59759 298.5976 150.09759 15009.75958 1.59759 298.59759 150.0975899999999 15009.75900 2020-01-01 2020-01-02 2020-01-01 00:08:52 2020-01-02 03:37:13 2020-01-01 00:08:52.000 2020-01-02 03:37:13.000 532 99433 49982.5 4998250 532 99433 49982.5 4998250 -32638 32500 4762.66 476266 -126 126 -1.5 -150 +533 100 10523 99434 1.6006 298.6006 150.1006 15010.06006 1.6006 298.6006 150.10059 15010.05988 1.60060 298.60060 150.10059999999984 15010.06000 2020-01-01 2020-01-02 2020-01-01 00:08:53 2020-01-02 03:37:14 2020-01-01 00:08:53.000 2020-01-02 03:37:14.000 533 99434 49983.5 4998350 533 99434 49983.5 4998350 -32637 32501 4763.66 476366 -125 127 -0.5 -50 +534 100 10524 99435 1.6036 298.6036 150.1036 15010.36036 1.6036 298.6036 150.1036 15010.36063 1.60360 298.60360 150.10360000000026 15010.36000 2020-01-01 2020-01-02 2020-01-01 00:08:54 2020-01-02 03:37:15 2020-01-01 00:08:54.000 2020-01-02 03:37:15.000 534 99435 49984.5 4998450 534 99435 49984.5 4998450 -32636 32502 4764.66 476466 -128 127 -2.06 -206 +535 100 10525 99436 1.6066 298.6066 150.1066 15010.66066 1.6066 298.6066 150.1066 15010.66077 1.60660 298.60660 150.10659999999976 15010.66000 2020-01-01 2020-01-02 2020-01-01 00:08:55 2020-01-02 03:37:16 2020-01-01 00:08:55.000 2020-01-02 03:37:16.000 535 99436 49985.5 4998550 535 99436 49985.5 4998550 -32635 32503 4765.66 476566 -128 127 -3.62 -362 +536 100 10526 99437 1.6096 298.6096 150.1096 15010.96096 1.6096 298.60962 150.1096 15010.96092 1.60960 298.60960 150.1095999999998 15010.96000 2020-01-01 2020-01-02 2020-01-01 00:08:56 2020-01-02 03:37:17 2020-01-01 00:08:56.000 2020-01-02 03:37:17.000 536 99437 49986.5 4998650 536 99437 49986.5 4998650 -32634 32504 4766.66 476666 -128 123 -5.18 -518 +537 100 10527 99438 1.61261 298.61261 150.11261 15011.26126 1.61261 298.6126 150.11261 15011.26105 1.61261 298.61261 150.1126100000001 15011.26100 2020-01-01 2020-01-02 2020-01-01 00:08:57 2020-01-02 03:37:18 2020-01-01 00:08:57.000 2020-01-02 03:37:18.000 537 99438 49987.5 4998750 537 99438 49987.5 4998750 -32633 32505 4767.66 476766 -127 124 -4.18 -418 +538 100 10528 99439 1.61561 298.61561 150.11561 15011.56156 1.61561 298.6156 150.11561 15011.56135 1.61561 298.61561 150.11561000000015 15011.56100 2020-01-01 2020-01-02 2020-01-01 00:08:58 2020-01-02 03:37:19 2020-01-01 00:08:58.000 2020-01-02 03:37:19.000 538 99439 49988.5 4998850 538 99439 49988.5 4998850 -32632 32506 4768.66 476866 -126 125 -3.18 -318 +539 100 10529 99440 1.61861 298.61861 150.11861 15011.86186 1.61861 298.61862 150.11862 15011.8621 1.61861 298.61861 150.11860999999993 15011.86100 2020-01-01 2020-01-02 2020-01-01 00:08:59 2020-01-02 03:37:20 2020-01-01 00:08:59.000 2020-01-02 03:37:20.000 539 99440 49989.5 4998950 539 99440 49989.5 4998950 -32631 32507 4769.66 476966 -125 126 -2.18 -218 +54 102 10044 99954 0.16216 300.16216 150.16216 15166.37837 0.16216 300.16217 150.16216 15166.37822 0.16216 300.16216 150.1621599999999 15166.37816 2020-01-01 2020-01-02 2020-01-01 00:00:54 2020-01-02 03:45:54 2020-01-01 00:00:54.000 2020-01-02 03:45:54.000 54 99954 50004 5050404 54 99954 50004 5050404 -32515 32420 4583.009900990099 462884 -128 127 -2.1782178217821784 -220 +540 100 10530 99441 1.62162 298.62162 150.12162 15012.16216 1.62162 298.6216 150.12162 15012.16224 1.62162 298.62162 150.12161999999992 15012.16200 2020-01-01 2020-01-02 2020-01-01 00:09:00 2020-01-02 03:37:21 2020-01-01 00:09:00.000 2020-01-02 03:37:21.000 540 99441 49990.5 4999050 540 99441 49990.5 4999050 -32630 32508 4770.66 477066 -124 127 -1.18 -118 541 100 10531 99442 1.62462 298.62462 150.12462 15012.46246 1.62462 298.62463 150.12462 15012.46239 1.62462 298.62462 150.12462 15012.46200 2020-01-01 2020-01-02 2020-01-01 00:09:01 2020-01-02 03:37:22 2020-01-01 00:09:01.000 2020-01-02 03:37:22.000 541 99442 49991.5 4999150 541 99442 49991.5 4999150 -32629 32509 4771.66 477166 -128 127 -2.74 -274 -542 100 10532 99443 1.62762 298.62762 150.12762 15012.76276 1.62762 298.62762 150.12762 15012.76252 1.62762 298.62762 150.12762 15012.76200 2020-01-01 2020-01-02 2020-01-01 00:09:02 2020-01-02 03:37:23 2020-01-01 00:09:02.000 2020-01-02 03:37:23.000 542 99443 49992.5 4999250 542 99443 49992.5 4999250 -32628 32510 4772.66 477266 -128 123 -4.3 -430 -543 100 10533 99444 1.63063 298.63063 150.13063 15013.06306 1.63063 298.63065 150.13063 15013.06327 1.63063 298.63063 150.13063 15013.06300 2020-01-01 2020-01-02 2020-01-01 00:09:03 2020-01-02 03:37:24 2020-01-01 00:09:03.000 2020-01-02 03:37:24.000 543 99444 49993.5 4999350 543 99444 49993.5 4999350 -32627 32511 4773.66 477366 -127 124 -3.3 -330 -544 100 10534 99445 1.63363 298.63363 150.13363 15013.36336 1.63363 298.63364 150.13363 15013.36358 1.63363 298.63363 150.13363 15013.36300 2020-01-01 2020-01-02 2020-01-01 00:09:04 2020-01-02 03:37:25 2020-01-01 00:09:04.000 2020-01-02 03:37:25.000 544 99445 49994.5 4999450 544 99445 49994.5 4999450 -32626 32512 4774.66 477466 -126 125 -2.3 -230 -545 100 10535 99446 1.63663 298.63663 150.13663 15013.66366 1.63663 298.63663 150.13663 15013.6637 1.63663 298.63663 150.13663 15013.66300 2020-01-01 2020-01-02 2020-01-01 00:09:05 2020-01-02 03:37:26 2020-01-01 00:09:05.000 2020-01-02 03:37:26.000 545 99446 49995.5 4999550 545 99446 49995.5 4999550 -32625 32513 4775.66 477566 -125 126 -1.3 -130 -546 100 10536 99447 1.63963 298.63963 150.13963 15013.96396 1.63963 298.63965 150.13963 15013.96385 1.63963 298.63963 150.13963 15013.96300 2020-01-01 2020-01-02 2020-01-01 00:09:06 2020-01-02 03:37:27 2020-01-01 00:09:06.000 2020-01-02 03:37:27.000 546 99447 49996.5 4999650 546 99447 49996.5 4999650 -32624 32514 4776.66 477666 -124 127 -0.3 -30 +542 100 10532 99443 1.62762 298.62762 150.12762 15012.76276 1.62762 298.62762 150.12762 15012.76252 1.62762 298.62762 150.1276199999999 15012.76200 2020-01-01 2020-01-02 2020-01-01 00:09:02 2020-01-02 03:37:23 2020-01-01 00:09:02.000 2020-01-02 03:37:23.000 542 99443 49992.5 4999250 542 99443 49992.5 4999250 -32628 32510 4772.66 477266 -128 123 -4.3 -430 +543 100 10533 99444 1.63063 298.63063 150.13063 15013.06306 1.63063 298.63065 150.13063 15013.06327 1.63063 298.63063 150.13062999999977 15013.06300 2020-01-01 2020-01-02 2020-01-01 00:09:03 2020-01-02 03:37:24 2020-01-01 00:09:03.000 2020-01-02 03:37:24.000 543 99444 49993.5 4999350 543 99444 49993.5 4999350 -32627 32511 4773.66 477366 -127 124 -3.3 -330 +544 100 10534 99445 1.63363 298.63363 150.13363 15013.36336 1.63363 298.63364 150.13363 15013.36358 1.63363 298.63363 150.13363000000015 15013.36300 2020-01-01 2020-01-02 2020-01-01 00:09:04 2020-01-02 03:37:25 2020-01-01 00:09:04.000 2020-01-02 03:37:25.000 544 99445 49994.5 4999450 544 99445 49994.5 4999450 -32626 32512 4774.66 477466 -126 125 -2.3 -230 +545 100 10535 99446 1.63663 298.63663 150.13663 15013.66366 1.63663 298.63663 150.13663 15013.6637 1.63663 298.63663 150.13663000000028 15013.66300 2020-01-01 2020-01-02 2020-01-01 00:09:05 2020-01-02 03:37:26 2020-01-01 00:09:05.000 2020-01-02 03:37:26.000 545 99446 49995.5 4999550 545 99446 49995.5 4999550 -32625 32513 4775.66 477566 -125 126 -1.3 -130 +546 100 10536 99447 1.63963 298.63963 150.13963 15013.96396 1.63963 298.63965 150.13963 15013.96385 1.63963 298.63963 150.13962999999978 15013.96300 2020-01-01 2020-01-02 2020-01-01 00:09:06 2020-01-02 03:37:27 2020-01-01 00:09:06.000 2020-01-02 03:37:27.000 546 99447 49996.5 4999650 546 99447 49996.5 4999650 -32624 32514 4776.66 477666 -124 127 -0.3 -30 547 100 10537 99448 1.64264 298.64264 150.14264 15014.26426 1.64264 298.64264 150.14263 15014.26399 1.64264 298.64264 150.14264 15014.26400 2020-01-01 2020-01-02 2020-01-01 00:09:07 2020-01-02 03:37:28 2020-01-01 00:09:07.000 2020-01-02 03:37:28.000 547 99448 49997.5 4999750 547 99448 49997.5 4999750 -32623 32515 4777.66 477766 -128 127 -1.86 -186 -548 100 10538 99449 1.64564 298.64564 150.14564 15014.56456 1.64564 298.64566 150.14564 15014.56474 1.64564 298.64564 150.14564 15014.56400 2020-01-01 2020-01-02 2020-01-01 00:09:08 2020-01-02 03:37:29 2020-01-01 00:09:08.000 2020-01-02 03:37:29.000 548 99449 49998.5 4999850 548 99449 49998.5 4999850 -32622 32516 4778.66 477866 -128 123 -3.42 -342 -549 100 10539 99450 1.64864 298.64864 150.14864 15014.86486 1.64864 298.64865 150.14865 15014.86504 1.64864 298.64864 150.14864 15014.86400 2020-01-01 2020-01-02 2020-01-01 00:09:09 2020-01-02 03:37:30 2020-01-01 00:09:09.000 2020-01-02 03:37:30.000 549 99450 49999.5 4999950 549 99450 49999.5 4999950 -32621 32517 4779.66 477966 -127 124 -2.42 -242 -55 102 10045 99955 0.16516 300.16516 150.16516 15166.68168 0.16516 300.16516 150.16516 15166.68151 0.16516 300.16516 150.16516 15166.68116 2020-01-01 2020-01-02 2020-01-01 00:00:55 2020-01-02 03:45:55 2020-01-01 00:00:55.000 2020-01-02 03:45:55.000 55 99955 50005 5050505 55 99955 50005 5050505 -32514 32421 4584.009900990099 462985 -128 123 -3.712871287128713 -375 -550 100 10540 99451 1.65165 298.65165 150.15165 15015.16516 1.65165 298.65164 150.15165 15015.16521 1.65165 298.65165 150.15165 15015.16500 2020-01-01 2020-01-02 2020-01-01 00:09:10 2020-01-02 03:37:31 2020-01-01 00:09:10.000 2020-01-02 03:37:31.000 550 99451 50000.5 5000050 550 99451 50000.5 5000050 -32620 32518 4780.66 478066 -126 125 -1.42 -142 -551 100 10541 99452 1.65465 298.65465 150.15465 15015.46546 1.65465 298.65466 150.15465 15015.46533 1.65465 298.65465 150.15465 15015.46500 2020-01-01 2020-01-02 2020-01-01 00:09:11 2020-01-02 03:37:32 2020-01-01 00:09:11.000 2020-01-02 03:37:32.000 551 99452 50001.5 5000150 551 99452 50001.5 5000150 -32619 32519 4781.66 478166 -125 126 -0.42 -42 -552 100 10542 99453 1.65765 298.65765 150.15765 15015.76576 1.65765 298.65765 150.15765 15015.76562 1.65765 298.65765 150.15765 15015.76500 2020-01-01 2020-01-02 2020-01-01 00:09:12 2020-01-02 03:37:33 2020-01-01 00:09:12.000 2020-01-02 03:37:33.000 552 99453 50002.5 5000250 552 99453 50002.5 5000250 -32618 32520 4782.66 478266 -124 127 0.58 58 -553 100 10543 99454 1.66066 298.66066 150.16066 15016.06606 1.66066 298.66068 150.16066 15016.06621 1.66066 298.66066 150.16066 15016.06600 2020-01-01 2020-01-02 2020-01-01 00:09:13 2020-01-02 03:37:34 2020-01-01 00:09:13.000 2020-01-02 03:37:34.000 553 99454 50003.5 5000350 553 99454 50003.5 5000350 -32617 32521 4783.66 478366 -128 127 -0.98 -98 -554 100 10544 99455 1.66366 298.66366 150.16366 15016.36636 1.66366 298.66367 150.16366 15016.36651 1.66366 298.66366 150.16366 15016.36600 2020-01-01 2020-01-02 2020-01-01 00:09:14 2020-01-02 03:37:35 2020-01-01 00:09:14.000 2020-01-02 03:37:35.000 554 99455 50004.5 5000450 554 99455 50004.5 5000450 -32616 32522 4784.66 478466 -128 127 -2.54 -254 -555 100 10545 99456 1.66666 298.66666 150.16666 15016.66666 1.66666 298.66666 150.16666 15016.66668 1.66666 298.66666 150.16666 15016.66600 2020-01-01 2020-01-02 2020-01-01 00:09:15 2020-01-02 03:37:36 2020-01-01 00:09:15.000 2020-01-02 03:37:36.000 555 99456 50005.5 5000550 555 99456 50005.5 5000550 -32615 32523 4785.66 478566 -128 124 -4.1 -410 -556 100 10546 99457 1.66966 298.66966 150.16966 15016.96696 1.66966 298.66968 150.16966 15016.9668 1.66966 298.66966 150.16966 15016.96600 2020-01-01 2020-01-02 2020-01-01 00:09:16 2020-01-02 03:37:37 2020-01-01 00:09:16.000 2020-01-02 03:37:37.000 556 99457 50006.5 5000650 556 99457 50006.5 5000650 -32614 32524 4786.66 478666 -127 125 -3.1 -310 -557 100 10547 99458 1.67267 298.67267 150.17267 15017.26726 1.67267 298.67267 150.17267 15017.26709 1.67267 298.67267 150.17267 15017.26700 2020-01-01 2020-01-02 2020-01-01 00:09:17 2020-01-02 03:37:38 2020-01-01 00:09:17.000 2020-01-02 03:37:38.000 557 99458 50007.5 5000750 557 99458 50007.5 5000750 -32613 32525 4787.66 478766 -126 126 -2.1 -210 -558 100 10548 99459 1.67567 298.67567 150.17567 15017.56756 1.67567 298.6757 150.17567 15017.56769 1.67567 298.67567 150.17567 15017.56700 2020-01-01 2020-01-02 2020-01-01 00:09:18 2020-01-02 03:37:39 2020-01-01 00:09:18.000 2020-01-02 03:37:39.000 558 99459 50008.5 5000850 558 99459 50008.5 5000850 -32612 32526 4788.66 478866 -125 127 -1.1 -110 -559 100 10549 99460 1.67867 298.67867 150.17867 15017.86786 1.67867 298.67868 150.17868 15017.86802 1.67867 298.67867 150.17867 15017.86700 2020-01-01 2020-01-02 2020-01-01 00:09:19 2020-01-02 03:37:40 2020-01-01 00:09:19.000 2020-01-02 03:37:40.000 559 99460 50009.5 5000950 559 99460 50009.5 5000950 -32611 32527 4789.66 478966 -128 127 -2.66 -266 -56 102 10046 99956 0.16816 300.16816 150.16816 15166.98498 0.16816 300.16818 150.16816 15166.98512 0.16816 300.16816 150.16816 15166.98416 2020-01-01 2020-01-02 2020-01-01 00:00:56 2020-01-02 03:45:56 2020-01-01 00:00:56.000 2020-01-02 03:45:56.000 56 99956 50006 5050606 56 99956 50006 5050606 -32513 32422 4585.009900990099 463086 -127 124 -2.712871287128713 -274 -560 100 10550 99461 1.68168 298.68168 150.18168 15018.16816 1.68168 298.68167 150.18168 15018.16815 1.68168 298.68168 150.18168 15018.16800 2020-01-01 2020-01-02 2020-01-01 00:09:20 2020-01-02 03:37:41 2020-01-01 00:09:20.000 2020-01-02 03:37:41.000 560 99461 50010.5 5001050 560 99461 50010.5 5001050 -32610 32528 4790.66 479066 -128 127 -4.22 -422 -561 100 10551 99462 1.68468 298.68468 150.18468 15018.46846 1.68468 298.6847 150.18468 15018.46826 1.68468 298.68468 150.18468 15018.46800 2020-01-01 2020-01-02 2020-01-01 00:09:21 2020-01-02 03:37:42 2020-01-01 00:09:21.000 2020-01-02 03:37:42.000 561 99462 50011.5 5001150 561 99462 50011.5 5001150 -32609 32529 4791.66 479166 -128 123 -5.78 -578 -562 100 10552 99463 1.68768 298.68768 150.18768 15018.76876 1.68768 298.68768 150.18768 15018.76856 1.68768 298.68768 150.18768 15018.76800 2020-01-01 2020-01-02 2020-01-01 00:09:22 2020-01-02 03:37:43 2020-01-01 00:09:22.000 2020-01-02 03:37:43.000 562 99463 50012.5 5001250 562 99463 50012.5 5001250 -32608 32530 4792.66 479266 -127 124 -4.78 -478 -563 100 10553 99464 1.69069 298.69069 150.19069 15019.06906 1.69069 298.6907 150.19069 15019.06915 1.69069 298.69069 150.19069 15019.06900 2020-01-01 2020-01-02 2020-01-01 00:09:23 2020-01-02 03:37:44 2020-01-01 00:09:23.000 2020-01-02 03:37:44.000 563 99464 50013.5 5001350 563 99464 50013.5 5001350 -32607 32531 4793.66 479366 -126 125 -3.78 -378 -564 100 10554 99465 1.69369 298.69369 150.19369 15019.36936 1.69369 298.6937 150.19369 15019.36948 1.69369 298.69369 150.19369 15019.36900 2020-01-01 2020-01-02 2020-01-01 00:09:24 2020-01-02 03:37:45 2020-01-01 00:09:24.000 2020-01-02 03:37:45.000 564 99465 50014.5 5001450 564 99465 50014.5 5001450 -32606 32532 4794.66 479466 -125 126 -2.78 -278 -565 100 10555 99466 1.69669 298.69669 150.19669 15019.66966 1.69669 298.6967 150.19669 15019.66962 1.69669 298.69669 150.19669 15019.66900 2020-01-01 2020-01-02 2020-01-01 00:09:25 2020-01-02 03:37:46 2020-01-01 00:09:25.000 2020-01-02 03:37:46.000 565 99466 50015.5 5001550 565 99466 50015.5 5001550 -32605 32533 4795.66 479566 -124 127 -1.78 -178 -566 100 10556 99467 1.69969 298.69969 150.19969 15019.96996 1.69969 298.6997 150.1997 15019.97037 1.69969 298.69969 150.19969 15019.96900 2020-01-01 2020-01-02 2020-01-01 00:09:26 2020-01-02 03:37:47 2020-01-01 00:09:26.000 2020-01-02 03:37:47.000 566 99467 50016.5 5001650 566 99467 50016.5 5001650 -32604 32534 4796.66 479666 -128 127 -3.34 -334 -567 100 10557 99468 1.7027 298.7027 150.2027 15020.27027 1.7027 298.7027 150.2027 15020.27003 1.70270 298.70270 150.20270 15020.27000 2020-01-01 2020-01-02 2020-01-01 00:09:27 2020-01-02 03:37:48 2020-01-01 00:09:27.000 2020-01-02 03:37:48.000 567 99468 50017.5 5001750 567 99468 50017.5 5001750 -32603 32535 4797.66 479766 -128 123 -4.9 -490 -568 100 10558 99469 1.7057 298.7057 150.2057 15020.57057 1.7057 298.70572 150.2057 15020.57066 1.70570 298.70570 150.20570 15020.57000 2020-01-01 2020-01-02 2020-01-01 00:09:28 2020-01-02 03:37:49 2020-01-01 00:09:28.000 2020-01-02 03:37:49.000 568 99469 50018.5 5001850 568 99469 50018.5 5001850 -32602 32536 4798.66 479866 -127 124 -3.9 -390 -569 100 10559 99470 1.7087 298.7087 150.2087 15020.87087 1.7087 298.7087 150.2087 15020.87095 1.70870 298.70870 150.20870 15020.87000 2020-01-01 2020-01-02 2020-01-01 00:09:29 2020-01-02 03:37:50 2020-01-01 00:09:29.000 2020-01-02 03:37:50.000 569 99470 50019.5 5001950 569 99470 50019.5 5001950 -32601 32537 4799.66 479966 -126 125 -2.9 -290 -57 102 10047 99957 0.17117 300.17117 150.17117 15167.28828 0.17117 300.17117 150.17117 15167.28841 0.17117 300.17117 150.17117 15167.28817 2020-01-01 2020-01-02 2020-01-01 00:00:57 2020-01-02 03:45:57 2020-01-01 00:00:57.000 2020-01-02 03:45:57.000 57 99957 50007 5050707 57 99957 50007 5050707 -32512 32423 4586.009900990099 463187 -126 125 -1.7128712871287128 -173 -570 100 10560 99471 1.71171 298.71171 150.21171 15021.17117 1.71171 298.7117 150.21171 15021.17109 1.71171 298.71171 150.21171 15021.17100 2020-01-01 2020-01-02 2020-01-01 00:09:30 2020-01-02 03:37:51 2020-01-01 00:09:30.000 2020-01-02 03:37:51.000 570 99471 50020.5 5002050 570 99471 50020.5 5002050 -32600 32538 4800.66 480066 -125 126 -1.9 -190 -571 100 10561 99472 1.71471 298.71471 150.21471 15021.47147 1.71471 298.71472 150.21471 15021.47184 1.71471 298.71471 150.21471 15021.47100 2020-01-01 2020-01-02 2020-01-01 00:09:31 2020-01-02 03:37:52 2020-01-01 00:09:31.000 2020-01-02 03:37:52.000 571 99472 50021.5 5002150 571 99472 50021.5 5002150 -32599 32539 4801.66 480166 -124 127 -0.9 -90 -572 100 10562 99473 1.71771 298.71771 150.21771 15021.77177 1.71771 298.7177 150.21771 15021.7715 1.71771 298.71771 150.21771 15021.77100 2020-01-01 2020-01-02 2020-01-01 00:09:32 2020-01-02 03:37:53 2020-01-01 00:09:32.000 2020-01-02 03:37:53.000 572 99473 50022.5 5002250 572 99473 50022.5 5002250 -32598 32540 4802.66 480266 -128 127 -2.46 -246 -573 100 10563 99474 1.72072 298.72072 150.22072 15022.07207 1.72072 298.72073 150.22072 15022.07212 1.72072 298.72072 150.22072 15022.07200 2020-01-01 2020-01-02 2020-01-01 00:09:33 2020-01-02 03:37:54 2020-01-01 00:09:33.000 2020-01-02 03:37:54.000 573 99474 50023.5 5002350 573 99474 50023.5 5002350 -32597 32541 4803.66 480366 -128 123 -4.02 -402 +548 100 10538 99449 1.64564 298.64564 150.14564 15014.56456 1.64564 298.64566 150.14564 15014.56474 1.64564 298.64564 150.14564000000013 15014.56400 2020-01-01 2020-01-02 2020-01-01 00:09:08 2020-01-02 03:37:29 2020-01-01 00:09:08.000 2020-01-02 03:37:29.000 548 99449 49998.5 4999850 548 99449 49998.5 4999850 -32622 32516 4778.66 477866 -128 123 -3.42 -342 +549 100 10539 99450 1.64864 298.64864 150.14864 15014.86486 1.64864 298.64865 150.14865 15014.86504 1.64864 298.64864 150.14863999999994 15014.86400 2020-01-01 2020-01-02 2020-01-01 00:09:09 2020-01-02 03:37:30 2020-01-01 00:09:09.000 2020-01-02 03:37:30.000 549 99450 49999.5 4999950 549 99450 49999.5 4999950 -32621 32517 4779.66 477966 -127 124 -2.42 -242 +55 102 10045 99955 0.16516 300.16516 150.16516 15166.68168 0.16516 300.16516 150.16516 15166.68151 0.16516 300.16516 150.16515999999996 15166.68116 2020-01-01 2020-01-02 2020-01-01 00:00:55 2020-01-02 03:45:55 2020-01-01 00:00:55.000 2020-01-02 03:45:55.000 55 99955 50005 5050505 55 99955 50005 5050505 -32514 32421 4584.009900990099 462985 -128 123 -3.712871287128713 -375 +550 100 10540 99451 1.65165 298.65165 150.15165 15015.16516 1.65165 298.65164 150.15165 15015.16521 1.65165 298.65165 150.15164999999982 15015.16500 2020-01-01 2020-01-02 2020-01-01 00:09:10 2020-01-02 03:37:31 2020-01-01 00:09:10.000 2020-01-02 03:37:31.000 550 99451 50000.5 5000050 550 99451 50000.5 5000050 -32620 32518 4780.66 478066 -126 125 -1.42 -142 +551 100 10541 99452 1.65465 298.65465 150.15465 15015.46546 1.65465 298.65466 150.15465 15015.46533 1.65465 298.65465 150.1546500000003 15015.46500 2020-01-01 2020-01-02 2020-01-01 00:09:11 2020-01-02 03:37:32 2020-01-01 00:09:11.000 2020-01-02 03:37:32.000 551 99452 50001.5 5000150 551 99452 50001.5 5000150 -32619 32519 4781.66 478166 -125 126 -0.42 -42 +552 100 10542 99453 1.65765 298.65765 150.15765 15015.76576 1.65765 298.65765 150.15765 15015.76562 1.65765 298.65765 150.1576499999998 15015.76500 2020-01-01 2020-01-02 2020-01-01 00:09:12 2020-01-02 03:37:33 2020-01-01 00:09:12.000 2020-01-02 03:37:33.000 552 99453 50002.5 5000250 552 99453 50002.5 5000250 -32618 32520 4782.66 478266 -124 127 0.58 58 +553 100 10543 99454 1.66066 298.66066 150.16066 15016.06606 1.66066 298.66068 150.16066 15016.06621 1.66066 298.66066 150.16065999999967 15016.06600 2020-01-01 2020-01-02 2020-01-01 00:09:13 2020-01-02 03:37:34 2020-01-01 00:09:13.000 2020-01-02 03:37:34.000 553 99454 50003.5 5000350 553 99454 50003.5 5000350 -32617 32521 4783.66 478366 -128 127 -0.98 -98 +554 100 10544 99455 1.66366 298.66366 150.16366 15016.36636 1.66366 298.66367 150.16366 15016.36651 1.66366 298.66366 150.16366000000014 15016.36600 2020-01-01 2020-01-02 2020-01-01 00:09:14 2020-01-02 03:37:35 2020-01-01 00:09:14.000 2020-01-02 03:37:35.000 554 99455 50004.5 5000450 554 99455 50004.5 5000450 -32616 32522 4784.66 478466 -128 127 -2.54 -254 +555 100 10545 99456 1.66666 298.66666 150.16666 15016.66666 1.66666 298.66666 150.16666 15016.66668 1.66666 298.66666 150.16666000000018 15016.66600 2020-01-01 2020-01-02 2020-01-01 00:09:15 2020-01-02 03:37:36 2020-01-01 00:09:15.000 2020-01-02 03:37:36.000 555 99456 50005.5 5000550 555 99456 50005.5 5000550 -32615 32523 4785.66 478566 -128 124 -4.1 -410 +556 100 10546 99457 1.66966 298.66966 150.16966 15016.96696 1.66966 298.66968 150.16966 15016.9668 1.66966 298.66966 150.16965999999968 15016.96600 2020-01-01 2020-01-02 2020-01-01 00:09:16 2020-01-02 03:37:37 2020-01-01 00:09:16.000 2020-01-02 03:37:37.000 556 99457 50006.5 5000650 556 99457 50006.5 5000650 -32614 32524 4786.66 478666 -127 125 -3.1 -310 +557 100 10547 99458 1.67267 298.67267 150.17267 15017.26726 1.67267 298.67267 150.17267 15017.26709 1.67267 298.67267 150.17266999999995 15017.26700 2020-01-01 2020-01-02 2020-01-01 00:09:17 2020-01-02 03:37:38 2020-01-01 00:09:17.000 2020-01-02 03:37:38.000 557 99458 50007.5 5000750 557 99458 50007.5 5000750 -32613 32525 4787.66 478766 -126 126 -2.1 -210 +558 100 10548 99459 1.67567 298.67567 150.17567 15017.56756 1.67567 298.6757 150.17567 15017.56769 1.67567 298.67567 150.17567000000003 15017.56700 2020-01-01 2020-01-02 2020-01-01 00:09:18 2020-01-02 03:37:39 2020-01-01 00:09:18.000 2020-01-02 03:37:39.000 558 99459 50008.5 5000850 558 99459 50008.5 5000850 -32612 32526 4788.66 478866 -125 127 -1.1 -110 +559 100 10549 99460 1.67867 298.67867 150.17867 15017.86786 1.67867 298.67868 150.17868 15017.86802 1.67867 298.67867 150.17866999999987 15017.86700 2020-01-01 2020-01-02 2020-01-01 00:09:19 2020-01-02 03:37:40 2020-01-01 00:09:19.000 2020-01-02 03:37:40.000 559 99460 50009.5 5000950 559 99460 50009.5 5000950 -32611 32527 4789.66 478966 -128 127 -2.66 -266 +56 102 10046 99956 0.16816 300.16816 150.16816 15166.98498 0.16816 300.16818 150.16816 15166.98512 0.16816 300.16816 150.16815999999986 15166.98416 2020-01-01 2020-01-02 2020-01-01 00:00:56 2020-01-02 03:45:56 2020-01-01 00:00:56.000 2020-01-02 03:45:56.000 56 99956 50006 5050606 56 99956 50006 5050606 -32513 32422 4585.009900990099 463086 -127 124 -2.712871287128713 -274 +560 100 10550 99461 1.68168 298.68168 150.18168 15018.16816 1.68168 298.68167 150.18168 15018.16815 1.68168 298.68168 150.1816799999998 15018.16800 2020-01-01 2020-01-02 2020-01-01 00:09:20 2020-01-02 03:37:41 2020-01-01 00:09:20.000 2020-01-02 03:37:41.000 560 99461 50010.5 5001050 560 99461 50010.5 5001050 -32610 32528 4790.66 479066 -128 127 -4.22 -422 +561 100 10551 99462 1.68468 298.68468 150.18468 15018.46846 1.68468 298.6847 150.18468 15018.46826 1.68468 298.68468 150.18468000000018 15018.46800 2020-01-01 2020-01-02 2020-01-01 00:09:21 2020-01-02 03:37:42 2020-01-01 00:09:21.000 2020-01-02 03:37:42.000 561 99462 50011.5 5001150 561 99462 50011.5 5001150 -32609 32529 4791.66 479166 -128 123 -5.78 -578 +562 100 10552 99463 1.68768 298.68768 150.18768 15018.76876 1.68768 298.68768 150.18768 15018.76856 1.68768 298.68768 150.18767999999972 15018.76800 2020-01-01 2020-01-02 2020-01-01 00:09:22 2020-01-02 03:37:43 2020-01-01 00:09:22.000 2020-01-02 03:37:43.000 562 99463 50012.5 5001250 562 99463 50012.5 5001250 -32608 32530 4792.66 479266 -127 124 -4.78 -478 +563 100 10553 99464 1.69069 298.69069 150.19069 15019.06906 1.69069 298.6907 150.19069 15019.06915 1.69069 298.69069 150.19068999999996 15019.06900 2020-01-01 2020-01-02 2020-01-01 00:09:23 2020-01-02 03:37:44 2020-01-01 00:09:23.000 2020-01-02 03:37:44.000 563 99464 50013.5 5001350 563 99464 50013.5 5001350 -32607 32531 4793.66 479366 -126 125 -3.78 -378 +564 100 10554 99465 1.69369 298.69369 150.19369 15019.36936 1.69369 298.6937 150.19369 15019.36948 1.69369 298.69369 150.19369000000003 15019.36900 2020-01-01 2020-01-02 2020-01-01 00:09:24 2020-01-02 03:37:45 2020-01-01 00:09:24.000 2020-01-02 03:37:45.000 564 99465 50014.5 5001450 564 99465 50014.5 5001450 -32606 32532 4794.66 479466 -125 126 -2.78 -278 +565 100 10555 99466 1.69669 298.69669 150.19669 15019.66966 1.69669 298.6967 150.19669 15019.66962 1.69669 298.69669 150.19669000000013 15019.66900 2020-01-01 2020-01-02 2020-01-01 00:09:25 2020-01-02 03:37:46 2020-01-01 00:09:25.000 2020-01-02 03:37:46.000 565 99466 50015.5 5001550 565 99466 50015.5 5001550 -32605 32533 4795.66 479566 -124 127 -1.78 -178 +566 100 10556 99467 1.69969 298.69969 150.19969 15019.96996 1.69969 298.6997 150.1997 15019.97037 1.69969 298.69969 150.19968999999998 15019.96900 2020-01-01 2020-01-02 2020-01-01 00:09:26 2020-01-02 03:37:47 2020-01-01 00:09:26.000 2020-01-02 03:37:47.000 566 99467 50016.5 5001650 566 99467 50016.5 5001650 -32604 32534 4796.66 479666 -128 127 -3.34 -334 +567 100 10557 99468 1.7027 298.7027 150.2027 15020.27027 1.7027 298.7027 150.2027 15020.27003 1.70270 298.70270 150.20269999999985 15020.27000 2020-01-01 2020-01-02 2020-01-01 00:09:27 2020-01-02 03:37:48 2020-01-01 00:09:27.000 2020-01-02 03:37:48.000 567 99468 50017.5 5001750 567 99468 50017.5 5001750 -32603 32535 4797.66 479766 -128 123 -4.9 -490 +568 100 10558 99469 1.7057 298.7057 150.2057 15020.57057 1.7057 298.70572 150.2057 15020.57066 1.70570 298.70570 150.20570000000032 15020.57000 2020-01-01 2020-01-02 2020-01-01 00:09:28 2020-01-02 03:37:49 2020-01-01 00:09:28.000 2020-01-02 03:37:49.000 568 99469 50018.5 5001850 568 99469 50018.5 5001850 -32602 32536 4798.66 479866 -127 124 -3.9 -390 +569 100 10559 99470 1.7087 298.7087 150.2087 15020.87087 1.7087 298.7087 150.2087 15020.87095 1.70870 298.70870 150.20869999999982 15020.87000 2020-01-01 2020-01-02 2020-01-01 00:09:29 2020-01-02 03:37:50 2020-01-01 00:09:29.000 2020-01-02 03:37:50.000 569 99470 50019.5 5001950 569 99470 50019.5 5001950 -32601 32537 4799.66 479966 -126 125 -2.9 -290 +57 102 10047 99957 0.17117 300.17117 150.17117 15167.28828 0.17117 300.17117 150.17117 15167.28841 0.17117 300.17117 150.17116999999973 15167.28817 2020-01-01 2020-01-02 2020-01-01 00:00:57 2020-01-02 03:45:57 2020-01-01 00:00:57.000 2020-01-02 03:45:57.000 57 99957 50007 5050707 57 99957 50007 5050707 -32512 32423 4586.009900990099 463187 -126 125 -1.7128712871287128 -173 +570 100 10560 99471 1.71171 298.71171 150.21171 15021.17117 1.71171 298.7117 150.21171 15021.17109 1.71171 298.71171 150.2117099999997 15021.17100 2020-01-01 2020-01-02 2020-01-01 00:09:30 2020-01-02 03:37:51 2020-01-01 00:09:30.000 2020-01-02 03:37:51.000 570 99471 50020.5 5002050 570 99471 50020.5 5002050 -32600 32538 4800.66 480066 -125 126 -1.9 -190 +571 100 10561 99472 1.71471 298.71471 150.21471 15021.47147 1.71471 298.71472 150.21471 15021.47184 1.71471 298.71471 150.21471000000017 15021.47100 2020-01-01 2020-01-02 2020-01-01 00:09:31 2020-01-02 03:37:52 2020-01-01 00:09:31.000 2020-01-02 03:37:52.000 571 99472 50021.5 5002150 571 99472 50021.5 5002150 -32599 32539 4801.66 480166 -124 127 -0.9 -90 +572 100 10562 99473 1.71771 298.71771 150.21771 15021.77177 1.71771 298.7177 150.21771 15021.7715 1.71771 298.71771 150.2177100000002 15021.77100 2020-01-01 2020-01-02 2020-01-01 00:09:32 2020-01-02 03:37:53 2020-01-01 00:09:32.000 2020-01-02 03:37:53.000 572 99473 50022.5 5002250 572 99473 50022.5 5002250 -32598 32540 4802.66 480266 -128 127 -2.46 -246 +573 100 10563 99474 1.72072 298.72072 150.22072 15022.07207 1.72072 298.72073 150.22072 15022.07212 1.72072 298.72072 150.22071999999986 15022.07200 2020-01-01 2020-01-02 2020-01-01 00:09:33 2020-01-02 03:37:54 2020-01-01 00:09:33.000 2020-01-02 03:37:54.000 573 99474 50023.5 5002350 573 99474 50023.5 5002350 -32597 32541 4803.66 480366 -128 123 -4.02 -402 574 100 10564 99475 1.72372 298.72372 150.22372 15022.37237 1.72372 298.72372 150.22372 15022.37243 1.72372 298.72372 150.22372 15022.37200 2020-01-01 2020-01-02 2020-01-01 00:09:34 2020-01-02 03:37:55 2020-01-01 00:09:34.000 2020-01-02 03:37:55.000 574 99475 50024.5 5002450 574 99475 50024.5 5002450 -32596 32542 4804.66 480466 -127 124 -3.02 -302 -575 100 10565 99476 1.72672 298.72672 150.22672 15022.67267 1.72672 298.7267 150.22672 15022.67272 1.72672 298.72672 150.22672 15022.67200 2020-01-01 2020-01-02 2020-01-01 00:09:35 2020-01-02 03:37:56 2020-01-01 00:09:35.000 2020-01-02 03:37:56.000 575 99476 50025.5 5002550 575 99476 50025.5 5002550 -32595 32543 4805.66 480566 -126 125 -2.02 -202 -576 100 10566 99477 1.72972 298.72972 150.22972 15022.97297 1.72972 298.72974 150.22973 15022.97332 1.72972 298.72972 150.22972 15022.97200 2020-01-01 2020-01-02 2020-01-01 00:09:36 2020-01-02 03:37:57 2020-01-01 00:09:36.000 2020-01-02 03:37:57.000 576 99477 50026.5 5002650 576 99477 50026.5 5002650 -32594 32544 4806.66 480666 -125 126 -1.02 -102 -577 100 10567 99478 1.73273 298.73273 150.23273 15023.27327 1.73273 298.73273 150.23272 15023.27297 1.73273 298.73273 150.23273 15023.27300 2020-01-01 2020-01-02 2020-01-01 00:09:37 2020-01-02 03:37:58 2020-01-01 00:09:37.000 2020-01-02 03:37:58.000 577 99478 50027.5 5002750 577 99478 50027.5 5002750 -32593 32545 4807.66 480766 -124 127 -0.02 -2 -578 100 10568 99479 1.73573 298.73573 150.23573 15023.57357 1.73573 298.73575 150.23573 15023.57359 1.73573 298.73573 150.23573 15023.57300 2020-01-01 2020-01-02 2020-01-01 00:09:38 2020-01-02 03:37:59 2020-01-01 00:09:38.000 2020-01-02 03:37:59.000 578 99479 50028.5 5002850 578 99479 50028.5 5002850 -32592 32546 4808.66 480866 -128 127 -1.58 -158 -579 100 10569 99480 1.73873 298.73873 150.23873 15023.87387 1.73873 298.73874 150.23873 15023.8739 1.73873 298.73873 150.23873 15023.87300 2020-01-01 2020-01-02 2020-01-01 00:09:39 2020-01-02 03:38:00 2020-01-01 00:09:39.000 2020-01-02 03:38:00.000 579 99480 50029.5 5002950 579 99480 50029.5 5002950 -32591 32547 4809.66 480966 -128 123 -3.14 -314 -58 102 10048 99958 0.17417 300.17417 150.17417 15167.59159 0.17417 300.17416 150.17417 15167.59159 0.17417 300.17417 150.17417 15167.59117 2020-01-01 2020-01-02 2020-01-01 00:00:58 2020-01-02 03:45:58 2020-01-01 00:00:58.000 2020-01-02 03:45:58.000 58 99958 50008 5050808 58 99958 50008 5050808 -32511 32424 4587.009900990099 463288 -125 126 -0.7128712871287128 -72 +575 100 10565 99476 1.72672 298.72672 150.22672 15022.67267 1.72672 298.7267 150.22672 15022.67272 1.72672 298.72672 150.22672000000006 15022.67200 2020-01-01 2020-01-02 2020-01-01 00:09:35 2020-01-02 03:37:56 2020-01-01 00:09:35.000 2020-01-02 03:37:56.000 575 99476 50025.5 5002550 575 99476 50025.5 5002550 -32595 32543 4805.66 480566 -126 125 -2.02 -202 +576 100 10566 99477 1.72972 298.72972 150.22972 15022.97297 1.72972 298.72974 150.22973 15022.97332 1.72972 298.72972 150.22971999999987 15022.97200 2020-01-01 2020-01-02 2020-01-01 00:09:36 2020-01-02 03:37:57 2020-01-01 00:09:36.000 2020-01-02 03:37:57.000 576 99477 50026.5 5002650 576 99477 50026.5 5002650 -32594 32544 4806.66 480666 -125 126 -1.02 -102 +577 100 10567 99478 1.73273 298.73273 150.23273 15023.27327 1.73273 298.73273 150.23272 15023.27297 1.73273 298.73273 150.23272999999983 15023.27300 2020-01-01 2020-01-02 2020-01-01 00:09:37 2020-01-02 03:37:58 2020-01-01 00:09:37.000 2020-01-02 03:37:58.000 577 99478 50027.5 5002750 577 99478 50027.5 5002750 -32593 32545 4807.66 480766 -124 127 -0.02 -2 +578 100 10568 99479 1.73573 298.73573 150.23573 15023.57357 1.73573 298.73575 150.23573 15023.57359 1.73573 298.73573 150.23573000000022 15023.57300 2020-01-01 2020-01-02 2020-01-01 00:09:38 2020-01-02 03:37:59 2020-01-01 00:09:38.000 2020-01-02 03:37:59.000 578 99479 50028.5 5002850 578 99479 50028.5 5002850 -32592 32546 4808.66 480866 -128 127 -1.58 -158 +579 100 10569 99480 1.73873 298.73873 150.23873 15023.87387 1.73873 298.73874 150.23873 15023.8739 1.73873 298.73873 150.23872999999972 15023.87300 2020-01-01 2020-01-02 2020-01-01 00:09:39 2020-01-02 03:38:00 2020-01-01 00:09:39.000 2020-01-02 03:38:00.000 579 99480 50029.5 5002950 579 99480 50029.5 5002950 -32591 32547 4809.66 480966 -128 123 -3.14 -314 +58 102 10048 99958 0.17417 300.17417 150.17417 15167.59159 0.17417 300.17416 150.17417 15167.59159 0.17417 300.17417 150.17417000000015 15167.59117 2020-01-01 2020-01-02 2020-01-01 00:00:58 2020-01-02 03:45:58 2020-01-01 00:00:58.000 2020-01-02 03:45:58.000 58 99958 50008 5050808 58 99958 50008 5050808 -32511 32424 4587.009900990099 463288 -125 126 -0.7128712871287128 -72 580 100 10570 99481 1.74174 298.74174 150.24174 15024.17417 1.74174 298.74173 150.24174 15024.17419 1.74174 298.74174 150.24174 15024.17400 2020-01-01 2020-01-02 2020-01-01 00:09:40 2020-01-02 03:38:01 2020-01-01 00:09:40.000 2020-01-02 03:38:01.000 580 99481 50030.5 5003050 580 99481 50030.5 5003050 -32590 32548 4810.66 481066 -127 124 -2.14 -214 -581 100 10571 99482 1.74474 298.74474 150.24474 15024.47447 1.74474 298.74475 150.24474 15024.47478 1.74474 298.74474 150.24474 15024.47400 2020-01-01 2020-01-02 2020-01-01 00:09:41 2020-01-02 03:38:02 2020-01-01 00:09:41.000 2020-01-02 03:38:02.000 581 99482 50031.5 5003150 581 99482 50031.5 5003150 -32589 32549 4811.66 481166 -126 125 -1.14 -114 -582 100 10572 99483 1.74774 298.74774 150.24774 15024.77477 1.74774 298.74774 150.24774 15024.77447 1.74774 298.74774 150.24774 15024.77400 2020-01-01 2020-01-02 2020-01-01 00:09:42 2020-01-02 03:38:03 2020-01-01 00:09:42.000 2020-01-02 03:38:03.000 582 99483 50032.5 5003250 582 99483 50032.5 5003250 -32588 32550 4812.66 481266 -125 126 -0.14 -14 -583 100 10573 99484 1.75075 298.75075 150.25075 15025.07507 1.75075 298.75076 150.25075 15025.07507 1.75075 298.75075 150.25075 15025.07500 2020-01-01 2020-01-02 2020-01-01 00:09:43 2020-01-02 03:38:04 2020-01-01 00:09:43.000 2020-01-02 03:38:04.000 583 99484 50033.5 5003350 583 99484 50033.5 5003350 -32587 32551 4813.66 481366 -124 127 0.86 86 -584 100 10574 99485 1.75375 298.75375 150.25375 15025.37537 1.75375 298.75375 150.25375 15025.37536 1.75375 298.75375 150.25375 15025.37500 2020-01-01 2020-01-02 2020-01-01 00:09:44 2020-01-02 03:38:05 2020-01-01 00:09:44.000 2020-01-02 03:38:05.000 584 99485 50034.5 5003450 584 99485 50034.5 5003450 -32586 32552 4814.66 481466 -128 127 -0.7 -70 -585 100 10575 99486 1.75675 298.75675 150.25675 15025.67567 1.75675 298.75674 150.25675 15025.67566 1.75675 298.75675 150.25675 15025.67500 2020-01-01 2020-01-02 2020-01-01 00:09:45 2020-01-02 03:38:06 2020-01-01 00:09:45.000 2020-01-02 03:38:06.000 585 99486 50035.5 5003550 585 99486 50035.5 5003550 -32585 32553 4815.66 481566 -128 127 -2.26 -226 -586 100 10576 99487 1.75975 298.75975 150.25975 15025.97597 1.75975 298.75977 150.25976 15025.97625 1.75975 298.75975 150.25975 15025.97500 2020-01-01 2020-01-02 2020-01-01 00:09:46 2020-01-02 03:38:07 2020-01-01 00:09:46.000 2020-01-02 03:38:07.000 586 99487 50036.5 5003650 586 99487 50036.5 5003650 -32584 32554 4816.66 481666 -128 123 -3.82 -382 -587 100 10577 99488 1.76276 298.76276 150.26276 15026.27627 1.76276 298.76276 150.26275 15026.27594 1.76276 298.76276 150.26276 15026.27600 2020-01-01 2020-01-02 2020-01-01 00:09:47 2020-01-02 03:38:08 2020-01-01 00:09:47.000 2020-01-02 03:38:08.000 587 99488 50037.5 5003750 587 99488 50037.5 5003750 -32583 32555 4817.66 481766 -127 124 -2.82 -282 -588 100 10578 99489 1.76576 298.76576 150.26576 15026.57657 1.76576 298.76578 150.26576 15026.57654 1.76576 298.76576 150.26576 15026.57600 2020-01-01 2020-01-02 2020-01-01 00:09:48 2020-01-02 03:38:09 2020-01-01 00:09:48.000 2020-01-02 03:38:09.000 588 99489 50038.5 5003850 588 99489 50038.5 5003850 -32582 32556 4818.66 481866 -126 125 -1.82 -182 -589 100 10579 99490 1.76876 298.76876 150.26876 15026.87687 1.76876 298.76877 150.26876 15026.87683 1.76876 298.76876 150.26876 15026.87600 2020-01-01 2020-01-02 2020-01-01 00:09:49 2020-01-02 03:38:10 2020-01-01 00:09:49.000 2020-01-02 03:38:10.000 589 99490 50039.5 5003950 589 99490 50039.5 5003950 -32581 32557 4819.66 481966 -125 126 -0.82 -82 -59 102 10049 99959 0.17717 300.17717 150.17717 15167.89489 0.17717 300.1772 150.17717 15167.8947 0.17717 300.17717 150.17717 15167.89417 2020-01-01 2020-01-02 2020-01-01 00:00:59 2020-01-02 03:45:59 2020-01-01 00:00:59.000 2020-01-02 03:45:59.000 59 99959 50009 5050909 59 99959 50009 5050909 -32510 32425 4588.009900990099 463389 -124 127 0.2871287128712871 29 -590 100 10580 99491 1.77177 298.77177 150.27177 15027.17717 1.77177 298.77176 150.27177 15027.17713 1.77177 298.77177 150.27177 15027.17700 2020-01-01 2020-01-02 2020-01-01 00:09:50 2020-01-02 03:38:11 2020-01-01 00:09:50.000 2020-01-02 03:38:11.000 590 99491 50040.5 5004050 590 99491 50040.5 5004050 -32580 32558 4820.66 482066 -124 127 0.18 18 +581 100 10571 99482 1.74474 298.74474 150.24474 15024.47447 1.74474 298.74475 150.24474 15024.47478 1.74474 298.74474 150.24474000000006 15024.47400 2020-01-01 2020-01-02 2020-01-01 00:09:41 2020-01-02 03:38:02 2020-01-01 00:09:41.000 2020-01-02 03:38:02.000 581 99482 50031.5 5003150 581 99482 50031.5 5003150 -32589 32549 4811.66 481166 -126 125 -1.14 -114 +582 100 10572 99483 1.74774 298.74774 150.24774 15024.77477 1.74774 298.74774 150.24774 15024.77447 1.74774 298.74774 150.2477400000001 15024.77400 2020-01-01 2020-01-02 2020-01-01 00:09:42 2020-01-02 03:38:03 2020-01-01 00:09:42.000 2020-01-02 03:38:03.000 582 99483 50032.5 5003250 582 99483 50032.5 5003250 -32588 32550 4812.66 481266 -125 126 -0.14 -14 +583 100 10573 99484 1.75075 298.75075 150.25075 15025.07507 1.75075 298.75076 150.25075 15025.07507 1.75075 298.75075 150.25074999999984 15025.07500 2020-01-01 2020-01-02 2020-01-01 00:09:43 2020-01-02 03:38:04 2020-01-01 00:09:43.000 2020-01-02 03:38:04.000 583 99484 50033.5 5003350 583 99484 50033.5 5003350 -32587 32551 4813.66 481366 -124 127 0.86 86 +584 100 10574 99485 1.75375 298.75375 150.25375 15025.37537 1.75375 298.75375 150.25375 15025.37536 1.75375 298.75375 150.25374999999988 15025.37500 2020-01-01 2020-01-02 2020-01-01 00:09:44 2020-01-02 03:38:05 2020-01-01 00:09:44.000 2020-01-02 03:38:05.000 584 99485 50034.5 5003450 584 99485 50034.5 5003450 -32586 32552 4814.66 481466 -128 127 -0.7 -70 +585 100 10575 99486 1.75675 298.75675 150.25675 15025.67567 1.75675 298.75674 150.25675 15025.67566 1.75675 298.75675 150.25675000000007 15025.67500 2020-01-01 2020-01-02 2020-01-01 00:09:45 2020-01-02 03:38:06 2020-01-01 00:09:45.000 2020-01-02 03:38:06.000 585 99486 50035.5 5003550 585 99486 50035.5 5003550 -32585 32553 4815.66 481566 -128 127 -2.26 -226 +586 100 10576 99487 1.75975 298.75975 150.25975 15025.97597 1.75975 298.75977 150.25976 15025.97625 1.75975 298.75975 150.25974999999985 15025.97500 2020-01-01 2020-01-02 2020-01-01 00:09:46 2020-01-02 03:38:07 2020-01-01 00:09:46.000 2020-01-02 03:38:07.000 586 99487 50036.5 5003650 586 99487 50036.5 5003650 -32584 32554 4816.66 481666 -128 123 -3.82 -382 +587 100 10577 99488 1.76276 298.76276 150.26276 15026.27627 1.76276 298.76276 150.26275 15026.27594 1.76276 298.76276 150.26275999999973 15026.27600 2020-01-01 2020-01-02 2020-01-01 00:09:47 2020-01-02 03:38:08 2020-01-01 00:09:47.000 2020-01-02 03:38:08.000 587 99488 50037.5 5003750 587 99488 50037.5 5003750 -32583 32555 4817.66 481766 -127 124 -2.82 -282 +588 100 10578 99489 1.76576 298.76576 150.26576 15026.57657 1.76576 298.76578 150.26576 15026.57654 1.76576 298.76576 150.2657600000002 15026.57600 2020-01-01 2020-01-02 2020-01-01 00:09:48 2020-01-02 03:38:09 2020-01-01 00:09:48.000 2020-01-02 03:38:09.000 588 99489 50038.5 5003850 588 99489 50038.5 5003850 -32582 32556 4818.66 481866 -126 125 -1.82 -182 +589 100 10579 99490 1.76876 298.76876 150.26876 15026.87687 1.76876 298.76877 150.26876 15026.87683 1.76876 298.76876 150.26876000000024 15026.87600 2020-01-01 2020-01-02 2020-01-01 00:09:49 2020-01-02 03:38:10 2020-01-01 00:09:49.000 2020-01-02 03:38:10.000 589 99490 50039.5 5003950 589 99490 50039.5 5003950 -32581 32557 4819.66 481966 -125 126 -0.82 -82 +59 102 10049 99959 0.17717 300.17717 150.17717 15167.89489 0.17717 300.1772 150.17717 15167.8947 0.17717 300.17717 150.17717000000025 15167.89417 2020-01-01 2020-01-02 2020-01-01 00:00:59 2020-01-02 03:45:59 2020-01-01 00:00:59.000 2020-01-02 03:45:59.000 59 99959 50009 5050909 59 99959 50009 5050909 -32510 32425 4588.009900990099 463389 -124 127 0.2871287128712871 29 +590 100 10580 99491 1.77177 298.77177 150.27177 15027.17717 1.77177 298.77176 150.27177 15027.17713 1.77177 298.77177 150.2717699999999 15027.17700 2020-01-01 2020-01-02 2020-01-01 00:09:50 2020-01-02 03:38:11 2020-01-01 00:09:50.000 2020-01-02 03:38:11.000 590 99491 50040.5 5004050 590 99491 50040.5 5004050 -32580 32558 4820.66 482066 -124 127 0.18 18 591 100 10581 99492 1.77477 298.77477 150.27477 15027.47747 1.77477 298.77478 150.27477 15027.47775 1.77477 298.77477 150.27477 15027.47700 2020-01-01 2020-01-02 2020-01-01 00:09:51 2020-01-02 03:38:12 2020-01-01 00:09:51.000 2020-01-02 03:38:12.000 591 99492 50041.5 5004150 591 99492 50041.5 5004150 -32579 32559 4821.66 482166 -128 127 -1.38 -138 -592 100 10582 99493 1.77777 298.77777 150.27777 15027.77777 1.77777 298.77777 150.27777 15027.77742 1.77777 298.77777 150.27777 15027.77700 2020-01-01 2020-01-02 2020-01-01 00:09:52 2020-01-02 03:38:13 2020-01-01 00:09:52.000 2020-01-02 03:38:13.000 592 99493 50042.5 5004250 592 99493 50042.5 5004250 -32578 32560 4822.66 482266 -128 123 -2.94 -294 -593 100 10583 99494 1.78078 298.78078 150.28078 15028.07807 1.78078 298.7808 150.28078 15028.078 1.78078 298.78078 150.28078 15028.07800 2020-01-01 2020-01-02 2020-01-01 00:09:53 2020-01-02 03:38:14 2020-01-01 00:09:53.000 2020-01-02 03:38:14.000 593 99494 50043.5 5004350 593 99494 50043.5 5004350 -32577 32561 4823.66 482366 -127 124 -1.94 -194 -594 100 10584 99495 1.78378 298.78378 150.28378 15028.37837 1.78378 298.78378 150.28378 15028.3783 1.78378 298.78378 150.28378 15028.37800 2020-01-01 2020-01-02 2020-01-01 00:09:54 2020-01-02 03:38:15 2020-01-01 00:09:54.000 2020-01-02 03:38:15.000 594 99495 50044.5 5004450 594 99495 50044.5 5004450 -32576 32562 4824.66 482466 -126 125 -0.94 -94 -595 100 10585 99496 1.78678 298.78678 150.28678 15028.67867 1.78678 298.78677 150.28678 15028.6786 1.78678 298.78678 150.28678 15028.67800 2020-01-01 2020-01-02 2020-01-01 00:09:55 2020-01-02 03:38:16 2020-01-01 00:09:55.000 2020-01-02 03:38:16.000 595 99496 50045.5 5004550 595 99496 50045.5 5004550 -32575 32563 4825.66 482566 -125 126 0.06 6 -596 100 10586 99497 1.78978 298.78978 150.28978 15028.97897 1.78978 298.7898 150.28979 15028.97922 1.78978 298.78978 150.28978 15028.97800 2020-01-01 2020-01-02 2020-01-01 00:09:56 2020-01-02 03:38:17 2020-01-01 00:09:56.000 2020-01-02 03:38:17.000 596 99497 50046.5 5004650 596 99497 50046.5 5004650 -32574 32564 4826.66 482666 -124 127 1.06 106 -597 100 10587 99498 1.79279 298.79279 150.29279 15029.27927 1.79279 298.7928 150.29278 15029.27888 1.79279 298.79279 150.29279 15029.27900 2020-01-01 2020-01-02 2020-01-01 00:09:57 2020-01-02 03:38:18 2020-01-01 00:09:57.000 2020-01-02 03:38:18.000 597 99498 50047.5 5004750 597 99498 50047.5 5004750 -32573 32565 4827.66 482766 -128 127 -0.5 -50 -598 100 10588 99499 1.79579 298.79579 150.29579 15029.57957 1.79579 298.7958 150.29579 15029.57964 1.79579 298.79579 150.29579 15029.57900 2020-01-01 2020-01-02 2020-01-01 00:09:58 2020-01-02 03:38:19 2020-01-01 00:09:58.000 2020-01-02 03:38:19.000 598 99499 50048.5 5004850 598 99499 50048.5 5004850 -32572 32566 4828.66 482866 -128 123 -2.06 -206 -599 100 10589 99500 1.79879 298.79879 150.29879 15029.87987 1.79879 298.7988 150.29879 15029.87977 1.79879 298.79879 150.29879 15029.87900 2020-01-01 2020-01-02 2020-01-01 00:09:59 2020-01-02 03:38:20 2020-01-01 00:09:59.000 2020-01-02 03:38:20.000 599 99500 50049.5 5004950 599 99500 50049.5 5004950 -32571 32567 4829.66 482966 -127 124 -1.06 -106 -6 102 1005 9996 0.01801 300.01801 150.01801 15151.81981 0.01801 300.018 150.01801 15151.81978 0.01801 300.01801 150.01801 15151.81901 2020-01-01 2020-01-02 2020-01-01 00:00:06 2020-01-02 03:45:06 2020-01-01 00:00:06.000 2020-01-02 03:45:06.000 6 99906 49956 5045556 6 99906 49956 5045556 -32563 32372 4535.009900990099 458036 -127 124 -2.01980198019802 -204 -60 102 10050 99960 0.18018 300.18018 150.18018 15168.19819 0.18018 300.18018 150.18017 15168.198 0.18018 300.18018 150.18018 15168.19818 2020-01-01 2020-01-02 2020-01-01 00:01:00 2020-01-02 03:46:00 2020-01-01 00:01:00.000 2020-01-02 03:46:00.000 60 99960 50010 5051010 60 99960 50010 5051010 -32509 32426 4589.009900990099 463490 -128 127 -1.2475247524752475 -126 -600 100 10590 99501 1.8018 298.8018 150.3018 15030.18018 1.8018 298.8018 150.3018 15030.1801 1.80180 298.80180 150.30180 15030.18000 2020-01-01 2020-01-02 2020-01-01 00:10:00 2020-01-02 03:38:21 2020-01-01 00:10:00.000 2020-01-02 03:38:21.000 600 99501 50050.5 5005050 600 99501 50050.5 5005050 -32570 32568 4830.66 483066 -126 125 -0.06 -6 -601 100 10591 99502 1.8048 298.8048 150.3048 15030.48048 1.8048 298.8048 150.3048 15030.4807 1.80480 298.80480 150.30480 15030.48000 2020-01-01 2020-01-02 2020-01-01 00:10:01 2020-01-02 03:38:22 2020-01-01 00:10:01.000 2020-01-02 03:38:22.000 601 99502 50051.5 5005150 601 99502 50051.5 5005150 -32569 32569 4831.66 483166 -125 126 0.94 94 -602 100 10592 99503 1.8078 298.8078 150.3078 15030.78078 1.8078 298.8078 150.3078 15030.78035 1.80780 298.80780 150.30780 15030.78000 2020-01-01 2020-01-02 2020-01-01 00:10:02 2020-01-02 03:38:23 2020-01-01 00:10:02.000 2020-01-02 03:38:23.000 602 99503 50052.5 5005250 602 99503 50052.5 5005250 -32568 32570 4832.66 483266 -124 127 1.94 194 -603 100 10593 99504 1.81081 298.81081 150.31081 15031.08108 1.81081 298.81082 150.31081 15031.0811 1.81081 298.81081 150.31081 15031.08100 2020-01-01 2020-01-02 2020-01-01 00:10:03 2020-01-02 03:38:24 2020-01-01 00:10:03.000 2020-01-02 03:38:24.000 603 99504 50053.5 5005350 603 99504 50053.5 5005350 -32567 32571 4833.66 483366 -128 127 0.38 38 -604 100 10594 99505 1.81381 298.81381 150.31381 15031.38138 1.81381 298.8138 150.31381 15031.38124 1.81381 298.81381 150.31381 15031.38100 2020-01-01 2020-01-02 2020-01-01 00:10:04 2020-01-02 03:38:25 2020-01-01 00:10:04.000 2020-01-02 03:38:25.000 604 99505 50054.5 5005450 604 99505 50054.5 5005450 -32566 32572 4834.66 483466 -128 123 -1.18 -118 -605 100 10595 99506 1.81681 298.81681 150.31681 15031.68168 1.81681 298.8168 150.31681 15031.68157 1.81681 298.81681 150.31681 15031.68100 2020-01-01 2020-01-02 2020-01-01 00:10:05 2020-01-02 03:38:26 2020-01-01 00:10:05.000 2020-01-02 03:38:26.000 605 99506 50055.5 5005550 605 99506 50055.5 5005550 -32565 32573 4835.66 483566 -127 124 -0.18 -18 -606 100 10596 99507 1.81981 298.81981 150.31981 15031.98198 1.81981 298.81982 150.31982 15031.98217 1.81981 298.81981 150.31981 15031.98100 2020-01-01 2020-01-02 2020-01-01 00:10:06 2020-01-02 03:38:27 2020-01-01 00:10:06.000 2020-01-02 03:38:27.000 606 99507 50056.5 5005650 606 99507 50056.5 5005650 -32564 32574 4836.66 483666 -126 125 0.82 82 -607 100 10597 99508 1.82282 298.82282 150.32282 15032.28228 1.82282 298.8228 150.32282 15032.28246 1.82282 298.82282 150.32282 15032.28200 2020-01-01 2020-01-02 2020-01-01 00:10:07 2020-01-02 03:38:28 2020-01-01 00:10:07.000 2020-01-02 03:38:28.000 607 99508 50057.5 5005750 607 99508 50057.5 5005750 -32563 32575 4837.66 483766 -125 126 1.82 182 +592 100 10582 99493 1.77777 298.77777 150.27777 15027.77777 1.77777 298.77777 150.27777 15027.77742 1.77777 298.77777 150.2777700000001 15027.77700 2020-01-01 2020-01-02 2020-01-01 00:09:52 2020-01-02 03:38:13 2020-01-01 00:09:52.000 2020-01-02 03:38:13.000 592 99493 50042.5 5004250 592 99493 50042.5 5004250 -32578 32560 4822.66 482266 -128 123 -2.94 -294 +593 100 10583 99494 1.78078 298.78078 150.28078 15028.07807 1.78078 298.7808 150.28078 15028.078 1.78078 298.78078 150.28077999999974 15028.07800 2020-01-01 2020-01-02 2020-01-01 00:09:53 2020-01-02 03:38:14 2020-01-01 00:09:53.000 2020-01-02 03:38:14.000 593 99494 50043.5 5004350 593 99494 50043.5 5004350 -32577 32561 4823.66 482366 -127 124 -1.94 -194 +594 100 10584 99495 1.78378 298.78378 150.28378 15028.37837 1.78378 298.78378 150.28378 15028.3783 1.78378 298.78378 150.28377999999984 15028.37800 2020-01-01 2020-01-02 2020-01-01 00:09:54 2020-01-02 03:38:15 2020-01-01 00:09:54.000 2020-01-02 03:38:15.000 594 99495 50044.5 5004450 594 99495 50044.5 5004450 -32576 32562 4824.66 482466 -126 125 -0.94 -94 +595 100 10585 99496 1.78678 298.78678 150.28678 15028.67867 1.78678 298.78677 150.28678 15028.6786 1.78678 298.78678 150.28678000000025 15028.67800 2020-01-01 2020-01-02 2020-01-01 00:09:55 2020-01-02 03:38:16 2020-01-01 00:09:55.000 2020-01-02 03:38:16.000 595 99496 50045.5 5004550 595 99496 50045.5 5004550 -32575 32563 4825.66 482566 -125 126 0.06 6 +596 100 10586 99497 1.78978 298.78978 150.28978 15028.97897 1.78978 298.7898 150.28979 15028.97922 1.78978 298.78978 150.28977999999975 15028.97800 2020-01-01 2020-01-02 2020-01-01 00:09:56 2020-01-02 03:38:17 2020-01-01 00:09:56.000 2020-01-02 03:38:17.000 596 99497 50046.5 5004650 596 99497 50046.5 5004650 -32574 32564 4826.66 482666 -124 127 1.06 106 +597 100 10587 99498 1.79279 298.79279 150.29279 15029.27927 1.79279 298.7928 150.29278 15029.27888 1.79279 298.79279 150.29279000000002 15029.27900 2020-01-01 2020-01-02 2020-01-01 00:09:57 2020-01-02 03:38:18 2020-01-01 00:09:57.000 2020-01-02 03:38:18.000 597 99498 50047.5 5004750 597 99498 50047.5 5004750 -32573 32565 4827.66 482766 -128 127 -0.5 -50 +598 100 10588 99499 1.79579 298.79579 150.29579 15029.57957 1.79579 298.7958 150.29579 15029.57964 1.79579 298.79579 150.2957900000001 15029.57900 2020-01-01 2020-01-02 2020-01-01 00:09:58 2020-01-02 03:38:19 2020-01-01 00:09:58.000 2020-01-02 03:38:19.000 598 99499 50048.5 5004850 598 99499 50048.5 5004850 -32572 32566 4828.66 482866 -128 123 -2.06 -206 +599 100 10589 99500 1.79879 298.79879 150.29879 15029.87987 1.79879 298.7988 150.29879 15029.87977 1.79879 298.79879 150.29879000000014 15029.87900 2020-01-01 2020-01-02 2020-01-01 00:09:59 2020-01-02 03:38:20 2020-01-01 00:09:59.000 2020-01-02 03:38:20.000 599 99500 50049.5 5004950 599 99500 50049.5 5004950 -32571 32567 4829.66 482966 -127 124 -1.06 -106 +6 102 1005 9996 0.01801 300.01801 150.01801 15151.81981 0.01801 300.018 150.01801 15151.81978 0.01801 300.01801 150.0180099999998 15151.81901 2020-01-01 2020-01-02 2020-01-01 00:00:06 2020-01-02 03:45:06 2020-01-01 00:00:06.000 2020-01-02 03:45:06.000 6 99906 49956 5045556 6 99906 49956 5045556 -32563 32372 4535.009900990099 458036 -127 124 -2.01980198019802 -204 +60 102 10050 99960 0.18018 300.18018 150.18018 15168.19819 0.18018 300.18018 150.18017 15168.198 0.18018 300.18018 150.1801799999999 15168.19818 2020-01-01 2020-01-02 2020-01-01 00:01:00 2020-01-02 03:46:00 2020-01-01 00:01:00.000 2020-01-02 03:46:00.000 60 99960 50010 5051010 60 99960 50010 5051010 -32509 32426 4589.009900990099 463490 -128 127 -1.2475247524752475 -126 +600 100 10590 99501 1.8018 298.8018 150.3018 15030.18018 1.8018 298.8018 150.3018 15030.1801 1.80180 298.80180 150.30179999999987 15030.18000 2020-01-01 2020-01-02 2020-01-01 00:10:00 2020-01-02 03:38:21 2020-01-01 00:10:00.000 2020-01-02 03:38:21.000 600 99501 50050.5 5005050 600 99501 50050.5 5005050 -32570 32568 4830.66 483066 -126 125 -0.06 -6 +601 100 10591 99502 1.8048 298.8048 150.3048 15030.48048 1.8048 298.8048 150.3048 15030.4807 1.80480 298.80480 150.30479999999991 15030.48000 2020-01-01 2020-01-02 2020-01-01 00:10:01 2020-01-02 03:38:22 2020-01-01 00:10:01.000 2020-01-02 03:38:22.000 601 99502 50051.5 5005150 601 99502 50051.5 5005150 -32569 32569 4831.66 483166 -125 126 0.94 94 +602 100 10592 99503 1.8078 298.8078 150.3078 15030.78078 1.8078 298.8078 150.3078 15030.78035 1.80780 298.80780 150.3078 15030.78000 2020-01-01 2020-01-02 2020-01-01 00:10:02 2020-01-02 03:38:23 2020-01-01 00:10:02.000 2020-01-02 03:38:23.000 602 99503 50052.5 5005250 602 99503 50052.5 5005250 -32568 32570 4832.66 483266 -124 127 1.94 194 +603 100 10593 99504 1.81081 298.81081 150.31081 15031.08108 1.81081 298.81082 150.31081 15031.0811 1.81081 298.81081 150.31081000000026 15031.08100 2020-01-01 2020-01-02 2020-01-01 00:10:03 2020-01-02 03:38:24 2020-01-01 00:10:03.000 2020-01-02 03:38:24.000 603 99504 50053.5 5005350 603 99504 50053.5 5005350 -32567 32571 4833.66 483366 -128 127 0.38 38 +604 100 10594 99505 1.81381 298.81381 150.31381 15031.38138 1.81381 298.8138 150.31381 15031.38124 1.81381 298.81381 150.31380999999976 15031.38100 2020-01-01 2020-01-02 2020-01-01 00:10:04 2020-01-02 03:38:25 2020-01-01 00:10:04.000 2020-01-02 03:38:25.000 604 99505 50054.5 5005450 604 99505 50054.5 5005450 -32566 32572 4834.66 483466 -128 123 -1.18 -118 +605 100 10595 99506 1.81681 298.81681 150.31681 15031.68168 1.81681 298.8168 150.31681 15031.68157 1.81681 298.81681 150.31681000000015 15031.68100 2020-01-01 2020-01-02 2020-01-01 00:10:05 2020-01-02 03:38:26 2020-01-01 00:10:05.000 2020-01-02 03:38:26.000 605 99506 50055.5 5005550 605 99506 50055.5 5005550 -32565 32573 4835.66 483566 -127 124 -0.18 -18 +606 100 10596 99507 1.81981 298.81981 150.31981 15031.98198 1.81981 298.81982 150.31982 15031.98217 1.81981 298.81981 150.31981000000027 15031.98100 2020-01-01 2020-01-02 2020-01-01 00:10:06 2020-01-02 03:38:27 2020-01-01 00:10:06.000 2020-01-02 03:38:27.000 606 99507 50056.5 5005650 606 99507 50056.5 5005650 -32564 32574 4836.66 483666 -126 125 0.82 82 +607 100 10597 99508 1.82282 298.82282 150.32282 15032.28228 1.82282 298.8228 150.32282 15032.28246 1.82282 298.82282 150.32281999999992 15032.28200 2020-01-01 2020-01-02 2020-01-01 00:10:07 2020-01-02 03:38:28 2020-01-01 00:10:07.000 2020-01-02 03:38:28.000 607 99508 50057.5 5005750 607 99508 50057.5 5005750 -32563 32575 4837.66 483766 -125 126 1.82 182 608 100 10598 99509 1.82582 298.82582 150.32582 15032.58258 1.82582 298.82584 150.32582 15032.58258 1.82582 298.82582 150.32582 15032.58200 2020-01-01 2020-01-02 2020-01-01 00:10:08 2020-01-02 03:38:29 2020-01-01 00:10:08.000 2020-01-02 03:38:29.000 608 99509 50058.5 5005850 608 99509 50058.5 5005850 -32562 32576 4838.66 483866 -124 127 2.82 282 -609 100 10599 99510 1.82882 298.82882 150.32882 15032.88288 1.82882 298.82883 150.32882 15032.88274 1.82882 298.82882 150.32882 15032.88200 2020-01-01 2020-01-02 2020-01-01 00:10:09 2020-01-02 03:38:30 2020-01-01 00:10:09.000 2020-01-02 03:38:30.000 609 99510 50059.5 5005950 609 99510 50059.5 5005950 -32561 32577 4839.66 483966 -128 127 1.26 126 +609 100 10599 99510 1.82882 298.82882 150.32882 15032.88288 1.82882 298.82883 150.32882 15032.88274 1.82882 298.82882 150.32882000000006 15032.88200 2020-01-01 2020-01-02 2020-01-01 00:10:09 2020-01-02 03:38:30 2020-01-01 00:10:09.000 2020-01-02 03:38:30.000 609 99510 50059.5 5005950 609 99510 50059.5 5005950 -32561 32577 4839.66 483966 -128 127 1.26 126 61 102 10051 99961 0.18318 300.18318 150.18318 15168.5015 0.18318 300.1832 150.18318 15168.5016 0.18318 300.18318 150.18318 15168.50118 2020-01-01 2020-01-02 2020-01-01 00:01:01 2020-01-02 03:46:01 2020-01-01 00:01:01.000 2020-01-02 03:46:01.000 61 99961 50011 5051111 61 99961 50011 5051111 -32508 32427 4590.009900990099 463591 -128 123 -2.782178217821782 -281 -610 100 10600 99511 1.83183 298.83183 150.33183 15033.18318 1.83183 298.83182 150.33183 15033.18304 1.83183 298.83183 150.33183 15033.18300 2020-01-01 2020-01-02 2020-01-01 00:10:10 2020-01-02 03:38:31 2020-01-01 00:10:10.000 2020-01-02 03:38:31.000 610 99511 50060.5 5006050 610 99511 50060.5 5006050 -32560 32578 4840.66 484066 -128 127 -0.3 -30 -611 100 10601 99512 1.83483 298.83483 150.33483 15033.48348 1.83483 298.83484 150.33483 15033.48363 1.83483 298.83483 150.33483 15033.48300 2020-01-01 2020-01-02 2020-01-01 00:10:11 2020-01-02 03:38:32 2020-01-01 00:10:11.000 2020-01-02 03:38:32.000 611 99512 50061.5 5006150 611 99512 50061.5 5006150 -32559 32579 4841.66 484166 -128 123 -1.86 -186 -612 100 10602 99513 1.83783 298.83783 150.33783 15033.78378 1.83783 298.83783 150.33783 15033.78393 1.83783 298.83783 150.33783 15033.78300 2020-01-01 2020-01-02 2020-01-01 00:10:12 2020-01-02 03:38:33 2020-01-01 00:10:12.000 2020-01-02 03:38:33.000 612 99513 50062.5 5006250 612 99513 50062.5 5006250 -32558 32580 4842.66 484266 -127 124 -0.86 -86 -613 100 10603 99514 1.84084 298.84084 150.34084 15034.08408 1.84084 298.84085 150.34084 15034.08405 1.84084 298.84084 150.34084 15034.08400 2020-01-01 2020-01-02 2020-01-01 00:10:13 2020-01-02 03:38:34 2020-01-01 00:10:13.000 2020-01-02 03:38:34.000 613 99514 50063.5 5006350 613 99514 50063.5 5006350 -32557 32581 4843.66 484366 -126 125 0.14 14 -614 100 10604 99515 1.84384 298.84384 150.34384 15034.38438 1.84384 298.84384 150.34384 15034.38421 1.84384 298.84384 150.34384 15034.38400 2020-01-01 2020-01-02 2020-01-01 00:10:14 2020-01-02 03:38:35 2020-01-01 00:10:14.000 2020-01-02 03:38:35.000 614 99515 50064.5 5006450 614 99515 50064.5 5006450 -32556 32582 4844.66 484466 -125 126 1.14 114 -615 100 10605 99516 1.84684 298.84684 150.34684 15034.68468 1.84684 298.84683 150.34684 15034.68452 1.84684 298.84684 150.34684 15034.68400 2020-01-01 2020-01-02 2020-01-01 00:10:15 2020-01-02 03:38:36 2020-01-01 00:10:15.000 2020-01-02 03:38:36.000 615 99516 50065.5 5006550 615 99516 50065.5 5006550 -32555 32583 4845.66 484566 -124 127 2.14 214 -616 100 10606 99517 1.84984 298.84984 150.34984 15034.98498 1.84984 298.84985 150.34985 15034.98527 1.84984 298.84984 150.34984 15034.98400 2020-01-01 2020-01-02 2020-01-01 00:10:16 2020-01-02 03:38:37 2020-01-01 00:10:16.000 2020-01-02 03:38:37.000 616 99517 50066.5 5006650 616 99517 50066.5 5006650 -32554 32584 4846.66 484666 -128 127 0.58 58 +610 100 10600 99511 1.83183 298.83183 150.33183 15033.18318 1.83183 298.83182 150.33183 15033.18304 1.83183 298.83183 150.33182999999994 15033.18300 2020-01-01 2020-01-02 2020-01-01 00:10:10 2020-01-02 03:38:31 2020-01-01 00:10:10.000 2020-01-02 03:38:31.000 610 99511 50060.5 5006050 610 99511 50060.5 5006050 -32560 32578 4840.66 484066 -128 127 -0.3 -30 +611 100 10601 99512 1.83483 298.83483 150.33483 15033.48348 1.83483 298.83484 150.33483 15033.48363 1.83483 298.83483 150.3348299999999 15033.48300 2020-01-01 2020-01-02 2020-01-01 00:10:11 2020-01-02 03:38:32 2020-01-01 00:10:11.000 2020-01-02 03:38:32.000 611 99512 50061.5 5006150 611 99512 50061.5 5006150 -32559 32579 4841.66 484166 -128 123 -1.86 -186 +612 100 10602 99513 1.83783 298.83783 150.33783 15033.78378 1.83783 298.83783 150.33783 15033.78393 1.83783 298.83783 150.3378300000001 15033.78300 2020-01-01 2020-01-02 2020-01-01 00:10:12 2020-01-02 03:38:33 2020-01-01 00:10:12.000 2020-01-02 03:38:33.000 612 99513 50062.5 5006250 612 99513 50062.5 5006250 -32558 32580 4842.66 484266 -127 124 -0.86 -86 +613 100 10603 99514 1.84084 298.84084 150.34084 15034.08408 1.84084 298.84085 150.34084 15034.08405 1.84084 298.84084 150.34084000000004 15034.08400 2020-01-01 2020-01-02 2020-01-01 00:10:13 2020-01-02 03:38:34 2020-01-01 00:10:13.000 2020-01-02 03:38:34.000 613 99514 50063.5 5006350 613 99514 50063.5 5006350 -32557 32581 4843.66 484366 -126 125 0.14 14 +614 100 10604 99515 1.84384 298.84384 150.34384 15034.38438 1.84384 298.84384 150.34384 15034.38421 1.84384 298.84384 150.34383999999983 15034.38400 2020-01-01 2020-01-02 2020-01-01 00:10:14 2020-01-02 03:38:35 2020-01-01 00:10:14.000 2020-01-02 03:38:35.000 614 99515 50064.5 5006450 614 99515 50064.5 5006450 -32556 32582 4844.66 484466 -125 126 1.14 114 +615 100 10605 99516 1.84684 298.84684 150.34684 15034.68468 1.84684 298.84683 150.34684 15034.68452 1.84684 298.84684 150.34684000000007 15034.68400 2020-01-01 2020-01-02 2020-01-01 00:10:15 2020-01-02 03:38:36 2020-01-01 00:10:15.000 2020-01-02 03:38:36.000 615 99516 50065.5 5006550 615 99516 50065.5 5006550 -32555 32583 4845.66 484566 -124 127 2.14 214 +616 100 10606 99517 1.84984 298.84984 150.34984 15034.98498 1.84984 298.84985 150.34985 15034.98527 1.84984 298.84984 150.34984000000003 15034.98400 2020-01-01 2020-01-02 2020-01-01 00:10:16 2020-01-02 03:38:37 2020-01-01 00:10:16.000 2020-01-02 03:38:37.000 616 99517 50066.5 5006650 616 99517 50066.5 5006650 -32554 32584 4846.66 484666 -128 127 0.58 58 617 100 10607 99518 1.85285 298.85285 150.35285 15035.28528 1.85285 298.85284 150.35285 15035.2854 1.85285 298.85285 150.35285 15035.28500 2020-01-01 2020-01-02 2020-01-01 00:10:17 2020-01-02 03:38:38 2020-01-01 00:10:17.000 2020-01-02 03:38:38.000 617 99518 50067.5 5006750 617 99518 50067.5 5006750 -32553 32585 4847.66 484766 -128 123 -0.98 -98 -618 100 10608 99519 1.85585 298.85585 150.35585 15035.58558 1.85585 298.85587 150.35585 15035.58551 1.85585 298.85585 150.35585 15035.58500 2020-01-01 2020-01-02 2020-01-01 00:10:18 2020-01-02 03:38:39 2020-01-01 00:10:18.000 2020-01-02 03:38:39.000 618 99519 50068.5 5006850 618 99519 50068.5 5006850 -32552 32586 4848.66 484866 -127 124 0.02 2 +618 100 10608 99519 1.85585 298.85585 150.35585 15035.58558 1.85585 298.85587 150.35585 15035.58551 1.85585 298.85585 150.35584999999995 15035.58500 2020-01-01 2020-01-02 2020-01-01 00:10:18 2020-01-02 03:38:39 2020-01-01 00:10:18.000 2020-01-02 03:38:39.000 618 99519 50068.5 5006850 618 99519 50068.5 5006850 -32552 32586 4848.66 484866 -127 124 0.02 2 619 100 10609 99520 1.85885 298.85885 150.35885 15035.88588 1.85885 298.85886 150.35885 15035.88568 1.85885 298.85885 150.35885 15035.88500 2020-01-01 2020-01-02 2020-01-01 00:10:19 2020-01-02 03:38:40 2020-01-01 00:10:19.000 2020-01-02 03:38:40.000 619 99520 50069.5 5006950 619 99520 50069.5 5006950 -32551 32587 4849.66 484966 -126 125 1.02 102 -62 102 10052 99962 0.18618 300.18618 150.18618 15168.8048 0.18618 300.1862 150.18618 15168.80494 0.18618 300.18618 150.18618 15168.80418 2020-01-01 2020-01-02 2020-01-01 00:01:02 2020-01-02 03:46:02 2020-01-01 00:01:02.000 2020-01-02 03:46:02.000 62 99962 50012 5051212 62 99962 50012 5051212 -32507 32428 4591.009900990099 463692 -127 124 -1.7821782178217822 -180 -620 100 10610 99521 1.86186 298.86186 150.36186 15036.18618 1.86186 298.86185 150.36185 15036.18598 1.86186 298.86186 150.36186 15036.18600 2020-01-01 2020-01-02 2020-01-01 00:10:20 2020-01-02 03:38:41 2020-01-01 00:10:20.000 2020-01-02 03:38:41.000 620 99521 50070.5 5007050 620 99521 50070.5 5007050 -32550 32588 4850.66 485066 -125 126 2.02 202 -621 100 10611 99522 1.86486 298.86486 150.36486 15036.48648 1.86486 298.86487 150.36486 15036.48673 1.86486 298.86486 150.36486 15036.48600 2020-01-01 2020-01-02 2020-01-01 00:10:21 2020-01-02 03:38:42 2020-01-01 00:10:21.000 2020-01-02 03:38:42.000 621 99522 50071.5 5007150 621 99522 50071.5 5007150 -32549 32589 4851.66 485166 -124 127 3.02 302 -622 100 10612 99523 1.86786 298.86786 150.36786 15036.78678 1.86786 298.86786 150.36786 15036.78687 1.86786 298.86786 150.36786 15036.78600 2020-01-01 2020-01-02 2020-01-01 00:10:22 2020-01-02 03:38:43 2020-01-01 00:10:22.000 2020-01-02 03:38:43.000 622 99523 50072.5 5007250 622 99523 50072.5 5007250 -32548 32590 4852.66 485266 -128 127 1.46 146 -623 100 10613 99524 1.87087 298.87087 150.37087 15037.08708 1.87087 298.87088 150.37087 15037.08702 1.87087 298.87087 150.37087 15037.08700 2020-01-01 2020-01-02 2020-01-01 00:10:23 2020-01-02 03:38:44 2020-01-01 00:10:23.000 2020-01-02 03:38:44.000 623 99524 50073.5 5007350 623 99524 50073.5 5007350 -32547 32591 4853.66 485366 -128 123 -0.1 -10 -624 100 10614 99525 1.87387 298.87387 150.37387 15037.38738 1.87387 298.87387 150.37387 15037.38716 1.87387 298.87387 150.37387 15037.38700 2020-01-01 2020-01-02 2020-01-01 00:10:24 2020-01-02 03:38:45 2020-01-01 00:10:24.000 2020-01-02 03:38:45.000 624 99525 50074.5 5007450 624 99525 50074.5 5007450 -32546 32592 4854.66 485466 -127 124 0.9 90 -625 100 10615 99526 1.87687 298.87687 150.37687 15037.68768 1.87687 298.8769 150.37687 15037.68791 1.87687 298.87687 150.37687 15037.68700 2020-01-01 2020-01-02 2020-01-01 00:10:25 2020-01-02 03:38:46 2020-01-01 00:10:25.000 2020-01-02 03:38:46.000 625 99526 50075.5 5007550 625 99526 50075.5 5007550 -32545 32593 4855.66 485566 -126 125 1.9 190 -626 100 10616 99527 1.87987 298.87987 150.37987 15037.98798 1.87987 298.87988 150.37988 15037.9882 1.87987 298.87987 150.37987 15037.98700 2020-01-01 2020-01-02 2020-01-01 00:10:26 2020-01-02 03:38:47 2020-01-01 00:10:26.000 2020-01-02 03:38:47.000 626 99527 50076.5 5007650 626 99527 50076.5 5007650 -32544 32594 4856.66 485666 -125 126 2.9 290 -627 100 10617 99528 1.88288 298.88288 150.38288 15038.28828 1.88288 298.88287 150.38288 15038.28834 1.88288 298.88288 150.38288 15038.28800 2020-01-01 2020-01-02 2020-01-01 00:10:27 2020-01-02 03:38:48 2020-01-01 00:10:27.000 2020-01-02 03:38:48.000 627 99528 50077.5 5007750 627 99528 50077.5 5007750 -32543 32595 4857.66 485766 -124 127 3.9 390 -628 100 10618 99529 1.88588 298.88588 150.38588 15038.58858 1.88588 298.8859 150.38588 15038.58849 1.88588 298.88588 150.38588 15038.58800 2020-01-01 2020-01-02 2020-01-01 00:10:28 2020-01-02 03:38:49 2020-01-01 00:10:28.000 2020-01-02 03:38:49.000 628 99529 50078.5 5007850 628 99529 50078.5 5007850 -32542 32596 4858.66 485866 -128 127 2.34 234 -629 100 10619 99530 1.88888 298.88888 150.38888 15038.88888 1.88888 298.8889 150.38888 15038.88862 1.88888 298.88888 150.38888 15038.88800 2020-01-01 2020-01-02 2020-01-01 00:10:29 2020-01-02 03:38:50 2020-01-01 00:10:29.000 2020-01-02 03:38:50.000 629 99530 50079.5 5007950 629 99530 50079.5 5007950 -32541 32597 4859.66 485966 -128 123 0.78 78 -63 102 10053 99963 0.18918 300.18918 150.18918 15169.1081 0.18918 300.18918 150.18918 15169.10808 0.18918 300.18918 150.18918 15169.10718 2020-01-01 2020-01-02 2020-01-01 00:01:03 2020-01-02 03:46:03 2020-01-01 00:01:03.000 2020-01-02 03:46:03.000 63 99963 50013 5051313 63 99963 50013 5051313 -32506 32429 4592.009900990099 463793 -126 125 -0.7821782178217822 -79 -630 100 10620 99531 1.89189 298.89189 150.39189 15039.18918 1.89189 298.8919 150.39189 15039.18937 1.89189 298.89189 150.39189 15039.18900 2020-01-01 2020-01-02 2020-01-01 00:10:30 2020-01-02 03:38:51 2020-01-01 00:10:30.000 2020-01-02 03:38:51.000 630 99531 50080.5 5008050 630 99531 50080.5 5008050 -32540 32598 4860.66 486066 -127 124 1.78 178 -631 100 10621 99532 1.89489 298.89489 150.39489 15039.48948 1.89489 298.8949 150.39489 15039.48968 1.89489 298.89489 150.39489 15039.48900 2020-01-01 2020-01-02 2020-01-01 00:10:31 2020-01-02 03:38:52 2020-01-01 00:10:31.000 2020-01-02 03:38:52.000 631 99532 50081.5 5008150 631 99532 50081.5 5008150 -32539 32599 4861.66 486166 -126 125 2.78 278 -632 100 10622 99533 1.89789 298.89789 150.39789 15039.78978 1.89789 298.8979 150.39789 15039.78984 1.89789 298.89789 150.39789 15039.78900 2020-01-01 2020-01-02 2020-01-01 00:10:32 2020-01-02 03:38:53 2020-01-01 00:10:32.000 2020-01-02 03:38:53.000 632 99533 50082.5 5008250 632 99533 50082.5 5008250 -32538 32600 4862.66 486266 -125 126 3.78 378 -633 100 10623 99534 1.9009 298.9009 150.4009 15040.09009 1.9009 298.9009 150.40089 15040.08996 1.90090 298.90090 150.40090 15040.09000 2020-01-01 2020-01-02 2020-01-01 00:10:33 2020-01-02 03:38:54 2020-01-01 00:10:33.000 2020-01-02 03:38:54.000 633 99534 50083.5 5008350 633 99534 50083.5 5008350 -32537 32601 4863.66 486366 -124 127 4.78 478 -634 100 10624 99535 1.9039 298.9039 150.4039 15040.39039 1.9039 298.9039 150.4039 15040.39009 1.90390 298.90390 150.40390 15040.39000 2020-01-01 2020-01-02 2020-01-01 00:10:34 2020-01-02 03:38:55 2020-01-01 00:10:34.000 2020-01-02 03:38:55.000 634 99535 50084.5 5008450 634 99535 50084.5 5008450 -32536 32602 4864.66 486466 -128 127 3.22 322 -635 100 10625 99536 1.9069 298.9069 150.4069 15040.69069 1.9069 298.90692 150.4069 15040.69084 1.90690 298.90690 150.40690 15040.69000 2020-01-01 2020-01-02 2020-01-01 00:10:35 2020-01-02 03:38:56 2020-01-01 00:10:35.000 2020-01-02 03:38:56.000 635 99536 50085.5 5008550 635 99536 50085.5 5008550 -32535 32603 4865.66 486566 -128 127 1.66 166 -636 100 10626 99537 1.9099 298.9099 150.4099 15040.99099 1.90991 298.9099 150.40991 15040.99115 1.90990 298.90990 150.40990 15040.99000 2020-01-01 2020-01-02 2020-01-01 00:10:36 2020-01-02 03:38:57 2020-01-01 00:10:36.000 2020-01-02 03:38:57.000 636 99537 50086.5 5008650 636 99537 50086.5 5008650 -32534 32604 4866.66 486666 -128 124 0.1 10 -637 100 10627 99538 1.91291 298.91291 150.41291 15041.29129 1.91291 298.9129 150.41291 15041.29131 1.91291 298.91291 150.41291 15041.29100 2020-01-01 2020-01-02 2020-01-01 00:10:37 2020-01-02 03:38:58 2020-01-01 00:10:37.000 2020-01-02 03:38:58.000 637 99538 50087.5 5008750 637 99538 50087.5 5008750 -32533 32605 4867.66 486766 -127 125 1.1 110 -638 100 10628 99539 1.91591 298.91591 150.41591 15041.59159 1.91591 298.91592 150.41591 15041.59143 1.91591 298.91591 150.41591 15041.59100 2020-01-01 2020-01-02 2020-01-01 00:10:38 2020-01-02 03:38:59 2020-01-01 00:10:38.000 2020-01-02 03:38:59.000 638 99539 50088.5 5008850 638 99539 50088.5 5008850 -32532 32606 4868.66 486866 -126 126 2.1 210 -639 100 10629 99540 1.91891 298.91891 150.41891 15041.89189 1.91891 298.9189 150.41891 15041.89172 1.91891 298.91891 150.41891 15041.89100 2020-01-01 2020-01-02 2020-01-01 00:10:39 2020-01-02 03:39:00 2020-01-01 00:10:39.000 2020-01-02 03:39:00.000 639 99540 50089.5 5008950 639 99540 50089.5 5008950 -32531 32607 4869.66 486966 -125 127 3.1 310 -64 102 10054 99964 0.19219 300.19219 150.19219 15169.41141 0.19219 300.1922 150.19219 15169.41184 0.19219 300.19219 150.19219 15169.41119 2020-01-01 2020-01-02 2020-01-01 00:01:04 2020-01-02 03:46:04 2020-01-01 00:01:04.000 2020-01-02 03:46:04.000 64 99964 50014 5051414 64 99964 50014 5051414 -32505 32430 4593.009900990099 463894 -125 126 0.21782178217821782 22 +62 102 10052 99962 0.18618 300.18618 150.18618 15168.8048 0.18618 300.1862 150.18618 15168.80494 0.18618 300.18618 150.18618000000004 15168.80418 2020-01-01 2020-01-02 2020-01-01 00:01:02 2020-01-02 03:46:02 2020-01-01 00:01:02.000 2020-01-02 03:46:02.000 62 99962 50012 5051212 62 99962 50012 5051212 -32507 32428 4591.009900990099 463692 -127 124 -1.7821782178217822 -180 +620 100 10610 99521 1.86186 298.86186 150.36186 15036.18618 1.86186 298.86185 150.36185 15036.18598 1.86186 298.86186 150.3618600000001 15036.18600 2020-01-01 2020-01-02 2020-01-01 00:10:20 2020-01-02 03:38:41 2020-01-01 00:10:20.000 2020-01-02 03:38:41.000 620 99521 50070.5 5007050 620 99521 50070.5 5007050 -32550 32588 4850.66 485066 -125 126 2.02 202 +621 100 10611 99522 1.86486 298.86486 150.36486 15036.48648 1.86486 298.86487 150.36486 15036.48673 1.86486 298.86486 150.3648599999999 15036.48600 2020-01-01 2020-01-02 2020-01-01 00:10:21 2020-01-02 03:38:42 2020-01-01 00:10:21.000 2020-01-02 03:38:42.000 621 99522 50071.5 5007150 621 99522 50071.5 5007150 -32549 32589 4851.66 485166 -124 127 3.02 302 +622 100 10612 99523 1.86786 298.86786 150.36786 15036.78678 1.86786 298.86786 150.36786 15036.78687 1.86786 298.86786 150.36786000000006 15036.78600 2020-01-01 2020-01-02 2020-01-01 00:10:22 2020-01-02 03:38:43 2020-01-01 00:10:22.000 2020-01-02 03:38:43.000 622 99523 50072.5 5007250 622 99523 50072.5 5007250 -32548 32590 4852.66 485266 -128 127 1.46 146 +623 100 10613 99524 1.87087 298.87087 150.37087 15037.08708 1.87087 298.87088 150.37087 15037.08702 1.87087 298.87087 150.37087000000008 15037.08700 2020-01-01 2020-01-02 2020-01-01 00:10:23 2020-01-02 03:38:44 2020-01-01 00:10:23.000 2020-01-02 03:38:44.000 623 99524 50073.5 5007350 623 99524 50073.5 5007350 -32547 32591 4853.66 485366 -128 123 -0.1 -10 +624 100 10614 99525 1.87387 298.87387 150.37387 15037.38738 1.87387 298.87387 150.37387 15037.38716 1.87387 298.87387 150.37386999999998 15037.38700 2020-01-01 2020-01-02 2020-01-01 00:10:24 2020-01-02 03:38:45 2020-01-01 00:10:24.000 2020-01-02 03:38:45.000 624 99525 50074.5 5007450 624 99525 50074.5 5007450 -32546 32592 4854.66 485466 -127 124 0.9 90 +625 100 10615 99526 1.87687 298.87687 150.37687 15037.68768 1.87687 298.8769 150.37687 15037.68791 1.87687 298.87687 150.37687000000003 15037.68700 2020-01-01 2020-01-02 2020-01-01 00:10:25 2020-01-02 03:38:46 2020-01-01 00:10:25.000 2020-01-02 03:38:46.000 625 99526 50075.5 5007550 625 99526 50075.5 5007550 -32545 32593 4855.66 485566 -126 125 1.9 190 +626 100 10616 99527 1.87987 298.87987 150.37987 15037.98798 1.87987 298.87988 150.37988 15037.9882 1.87987 298.87987 150.37987000000004 15037.98700 2020-01-01 2020-01-02 2020-01-01 00:10:26 2020-01-02 03:38:47 2020-01-01 00:10:26.000 2020-01-02 03:38:47.000 626 99527 50076.5 5007650 626 99527 50076.5 5007650 -32544 32594 4856.66 485666 -125 126 2.9 290 +627 100 10617 99528 1.88288 298.88288 150.38288 15038.28828 1.88288 298.88287 150.38288 15038.28834 1.88288 298.88288 150.38287999999997 15038.28800 2020-01-01 2020-01-02 2020-01-01 00:10:27 2020-01-02 03:38:48 2020-01-01 00:10:27.000 2020-01-02 03:38:48.000 627 99528 50077.5 5007750 627 99528 50077.5 5007750 -32543 32595 4857.66 485766 -124 127 3.9 390 +628 100 10618 99529 1.88588 298.88588 150.38588 15038.58858 1.88588 298.8859 150.38588 15038.58849 1.88588 298.88588 150.3858799999999 15038.58800 2020-01-01 2020-01-02 2020-01-01 00:10:28 2020-01-02 03:38:49 2020-01-01 00:10:28.000 2020-01-02 03:38:49.000 628 99529 50078.5 5007850 628 99529 50078.5 5007850 -32542 32596 4858.66 485866 -128 127 2.34 234 +629 100 10619 99530 1.88888 298.88888 150.38888 15038.88888 1.88888 298.8889 150.38888 15038.88862 1.88888 298.88888 150.38888000000014 15038.88800 2020-01-01 2020-01-02 2020-01-01 00:10:29 2020-01-02 03:38:50 2020-01-01 00:10:29.000 2020-01-02 03:38:50.000 629 99530 50079.5 5007950 629 99530 50079.5 5007950 -32541 32597 4859.66 485966 -128 123 0.78 78 +63 102 10053 99963 0.18918 300.18918 150.18918 15169.1081 0.18918 300.18918 150.18918 15169.10808 0.18918 300.18918 150.18917999999996 15169.10718 2020-01-01 2020-01-02 2020-01-01 00:01:03 2020-01-02 03:46:03 2020-01-01 00:01:03.000 2020-01-02 03:46:03.000 63 99963 50013 5051313 63 99963 50013 5051313 -32506 32429 4592.009900990099 463793 -126 125 -0.7821782178217822 -79 +630 100 10620 99531 1.89189 298.89189 150.39189 15039.18918 1.89189 298.8919 150.39189 15039.18937 1.89189 298.89189 150.39189000000005 15039.18900 2020-01-01 2020-01-02 2020-01-01 00:10:30 2020-01-02 03:38:51 2020-01-01 00:10:30.000 2020-01-02 03:38:51.000 630 99531 50080.5 5008050 630 99531 50080.5 5008050 -32540 32598 4860.66 486066 -127 124 1.78 178 +631 100 10621 99532 1.89489 298.89489 150.39489 15039.48948 1.89489 298.8949 150.39489 15039.48968 1.89489 298.89489 150.39488999999986 15039.48900 2020-01-01 2020-01-02 2020-01-01 00:10:31 2020-01-02 03:38:52 2020-01-01 00:10:31.000 2020-01-02 03:38:52.000 631 99532 50081.5 5008150 631 99532 50081.5 5008150 -32539 32599 4861.66 486166 -126 125 2.78 278 +632 100 10622 99533 1.89789 298.89789 150.39789 15039.78978 1.89789 298.8979 150.39789 15039.78984 1.89789 298.89789 150.3978900000001 15039.78900 2020-01-01 2020-01-02 2020-01-01 00:10:32 2020-01-02 03:38:53 2020-01-01 00:10:32.000 2020-01-02 03:38:53.000 632 99533 50082.5 5008250 632 99533 50082.5 5008250 -32538 32600 4862.66 486266 -125 126 3.78 378 +633 100 10623 99534 1.9009 298.9009 150.4009 15040.09009 1.9009 298.9009 150.40089 15040.08996 1.90090 298.90090 150.4009 15040.09000 2020-01-01 2020-01-02 2020-01-01 00:10:33 2020-01-02 03:38:54 2020-01-01 00:10:33.000 2020-01-02 03:38:54.000 633 99534 50083.5 5008350 633 99534 50083.5 5008350 -32537 32601 4863.66 486366 -124 127 4.78 478 +634 100 10624 99535 1.9039 298.9039 150.4039 15040.39039 1.9039 298.9039 150.4039 15040.39009 1.90390 298.90390 150.40389999999996 15040.39000 2020-01-01 2020-01-02 2020-01-01 00:10:34 2020-01-02 03:38:55 2020-01-01 00:10:34.000 2020-01-02 03:38:55.000 634 99535 50084.5 5008450 634 99535 50084.5 5008450 -32536 32602 4864.66 486466 -128 127 3.22 322 +635 100 10625 99536 1.9069 298.9069 150.4069 15040.69069 1.9069 298.90692 150.4069 15040.69084 1.90690 298.90690 150.40689999999998 15040.69000 2020-01-01 2020-01-02 2020-01-01 00:10:35 2020-01-02 03:38:56 2020-01-01 00:10:35.000 2020-01-02 03:38:56.000 635 99536 50085.5 5008550 635 99536 50085.5 5008550 -32535 32603 4865.66 486566 -128 127 1.66 166 +636 100 10626 99537 1.9099 298.9099 150.4099 15040.99099 1.90991 298.9099 150.40991 15040.99115 1.90990 298.90990 150.40990000000002 15040.99000 2020-01-01 2020-01-02 2020-01-01 00:10:36 2020-01-02 03:38:57 2020-01-01 00:10:36.000 2020-01-02 03:38:57.000 636 99537 50086.5 5008650 636 99537 50086.5 5008650 -32534 32604 4866.66 486666 -128 124 0.1 10 +637 100 10627 99538 1.91291 298.91291 150.41291 15041.29129 1.91291 298.9129 150.41291 15041.29131 1.91291 298.91291 150.4129099999999 15041.29100 2020-01-01 2020-01-02 2020-01-01 00:10:37 2020-01-02 03:38:58 2020-01-01 00:10:37.000 2020-01-02 03:38:58.000 637 99538 50087.5 5008750 637 99538 50087.5 5008750 -32533 32605 4867.66 486766 -127 125 1.1 110 +638 100 10628 99539 1.91591 298.91591 150.41591 15041.59159 1.91591 298.91592 150.41591 15041.59143 1.91591 298.91591 150.41590999999994 15041.59100 2020-01-01 2020-01-02 2020-01-01 00:10:38 2020-01-02 03:38:59 2020-01-01 00:10:38.000 2020-01-02 03:38:59.000 638 99539 50088.5 5008850 638 99539 50088.5 5008850 -32532 32606 4868.66 486866 -126 126 2.1 210 +639 100 10629 99540 1.91891 298.91891 150.41891 15041.89189 1.91891 298.9189 150.41891 15041.89172 1.91891 298.91891 150.4189100000001 15041.89100 2020-01-01 2020-01-02 2020-01-01 00:10:39 2020-01-02 03:39:00 2020-01-01 00:10:39.000 2020-01-02 03:39:00.000 639 99540 50089.5 5008950 639 99540 50089.5 5008950 -32531 32607 4869.66 486966 -125 127 3.1 310 +64 102 10054 99964 0.19219 300.19219 150.19219 15169.41141 0.19219 300.1922 150.19219 15169.41184 0.19219 300.19219 150.19218999999993 15169.41119 2020-01-01 2020-01-02 2020-01-01 00:01:04 2020-01-02 03:46:04 2020-01-01 00:01:04.000 2020-01-02 03:46:04.000 64 99964 50014 5051414 64 99964 50014 5051414 -32505 32430 4593.009900990099 463894 -125 126 0.21782178217821782 22 640 100 10630 99541 1.92192 298.92192 150.42192 15042.19219 1.92192 298.92194 150.42192 15042.19232 1.92192 298.92192 150.42192 15042.19200 2020-01-01 2020-01-02 2020-01-01 00:10:40 2020-01-02 03:39:01 2020-01-01 00:10:40.000 2020-01-02 03:39:01.000 640 99541 50090.5 5009050 640 99541 50090.5 5009050 -32530 32608 4870.66 487066 -128 127 1.54 154 -641 100 10631 99542 1.92492 298.92492 150.42492 15042.49249 1.92492 298.92493 150.42492 15042.49265 1.92492 298.92492 150.42492 15042.49200 2020-01-01 2020-01-02 2020-01-01 00:10:41 2020-01-02 03:39:02 2020-01-01 00:10:41.000 2020-01-02 03:39:02.000 641 99542 50091.5 5009150 641 99542 50091.5 5009150 -32529 32609 4871.66 487166 -128 127 -0.02 -2 -642 100 10632 99543 1.92792 298.92792 150.42792 15042.79279 1.92792 298.92792 150.42792 15042.79278 1.92792 298.92792 150.42792 15042.79200 2020-01-01 2020-01-02 2020-01-01 00:10:42 2020-01-02 03:39:03 2020-01-01 00:10:42.000 2020-01-02 03:39:03.000 642 99543 50092.5 5009250 642 99543 50092.5 5009250 -32528 32610 4872.66 487266 -128 123 -1.58 -158 -643 100 10633 99544 1.93093 298.93093 150.43093 15043.09309 1.93093 298.93094 150.43092 15043.0929 1.93093 298.93093 150.43093 15043.09300 2020-01-01 2020-01-02 2020-01-01 00:10:43 2020-01-02 03:39:04 2020-01-01 00:10:43.000 2020-01-02 03:39:04.000 643 99544 50093.5 5009350 643 99544 50093.5 5009350 -32527 32611 4873.66 487366 -127 124 -0.58 -58 -644 100 10634 99545 1.93393 298.93393 150.43393 15043.39339 1.93393 298.93393 150.43393 15043.39319 1.93393 298.93393 150.43393 15043.39300 2020-01-01 2020-01-02 2020-01-01 00:10:44 2020-01-02 03:39:05 2020-01-01 00:10:44.000 2020-01-02 03:39:05.000 644 99545 50094.5 5009450 644 99545 50094.5 5009450 -32526 32612 4874.66 487466 -126 125 0.42 42 -645 100 10635 99546 1.93693 298.93693 150.43693 15043.69369 1.93693 298.93695 150.43693 15043.69379 1.93693 298.93693 150.43693 15043.69300 2020-01-01 2020-01-02 2020-01-01 00:10:45 2020-01-02 03:39:06 2020-01-01 00:10:45.000 2020-01-02 03:39:06.000 645 99546 50095.5 5009550 645 99546 50095.5 5009550 -32525 32613 4875.66 487566 -125 126 1.42 142 -646 100 10636 99547 1.93993 298.93993 150.43993 15043.99399 1.93994 298.93994 150.43994 15043.99412 1.93993 298.93993 150.43993 15043.99300 2020-01-01 2020-01-02 2020-01-01 00:10:46 2020-01-02 03:39:07 2020-01-01 00:10:46.000 2020-01-02 03:39:07.000 646 99547 50096.5 5009650 646 99547 50096.5 5009650 -32524 32614 4876.66 487666 -124 127 2.42 242 -647 100 10637 99548 1.94294 298.94294 150.44294 15044.29429 1.94294 298.94293 150.44294 15044.29425 1.94294 298.94294 150.44294 15044.29400 2020-01-01 2020-01-02 2020-01-01 00:10:47 2020-01-02 03:39:08 2020-01-01 00:10:47.000 2020-01-02 03:39:08.000 647 99548 50097.5 5009750 647 99548 50097.5 5009750 -32523 32615 4877.66 487766 -128 127 0.86 86 -648 100 10638 99549 1.94594 298.94594 150.44594 15044.59459 1.94594 298.94595 150.44595 15044.595 1.94594 298.94594 150.44594 15044.59400 2020-01-01 2020-01-02 2020-01-01 00:10:48 2020-01-02 03:39:09 2020-01-01 00:10:48.000 2020-01-02 03:39:09.000 648 99549 50098.5 5009850 648 99549 50098.5 5009850 -32522 32616 4878.66 487866 -128 123 -0.7 -70 -649 100 10639 99550 1.94894 298.94894 150.44894 15044.89489 1.94894 298.94894 150.44894 15044.89467 1.94894 298.94894 150.44894 15044.89400 2020-01-01 2020-01-02 2020-01-01 00:10:49 2020-01-02 03:39:10 2020-01-01 00:10:49.000 2020-01-02 03:39:10.000 649 99550 50099.5 5009950 649 99550 50099.5 5009950 -32521 32617 4879.66 487966 -127 124 0.3 30 -65 102 10055 99965 0.19519 300.19519 150.19519 15169.71471 0.19519 300.1952 150.19519 15169.71448 0.19519 300.19519 150.19519 15169.71419 2020-01-01 2020-01-02 2020-01-01 00:01:05 2020-01-02 03:46:05 2020-01-01 00:01:05.000 2020-01-02 03:46:05.000 65 99965 50015 5051515 65 99965 50015 5051515 -32504 32431 4594.009900990099 463995 -124 127 1.2178217821782178 123 +641 100 10631 99542 1.92492 298.92492 150.42492 15042.49249 1.92492 298.92493 150.42492 15042.49265 1.92492 298.92492 150.42492000000001 15042.49200 2020-01-01 2020-01-02 2020-01-01 00:10:41 2020-01-02 03:39:02 2020-01-01 00:10:41.000 2020-01-02 03:39:02.000 641 99542 50091.5 5009150 641 99542 50091.5 5009150 -32529 32609 4871.66 487166 -128 127 -0.02 -2 +642 100 10632 99543 1.92792 298.92792 150.42792 15042.79279 1.92792 298.92792 150.42792 15042.79278 1.92792 298.92792 150.42792000000006 15042.79200 2020-01-01 2020-01-02 2020-01-01 00:10:42 2020-01-02 03:39:03 2020-01-01 00:10:42.000 2020-01-02 03:39:03.000 642 99543 50092.5 5009250 642 99543 50092.5 5009250 -32528 32610 4872.66 487266 -128 123 -1.58 -158 +643 100 10633 99544 1.93093 298.93093 150.43093 15043.09309 1.93093 298.93094 150.43092 15043.0929 1.93093 298.93093 150.43093000000016 15043.09300 2020-01-01 2020-01-02 2020-01-01 00:10:43 2020-01-02 03:39:04 2020-01-01 00:10:43.000 2020-01-02 03:39:04.000 643 99544 50093.5 5009350 643 99544 50093.5 5009350 -32527 32611 4873.66 487366 -127 124 -0.58 -58 +644 100 10634 99545 1.93393 298.93393 150.43393 15043.39339 1.93393 298.93393 150.43393 15043.39319 1.93393 298.93393 150.43392999999995 15043.39300 2020-01-01 2020-01-02 2020-01-01 00:10:44 2020-01-02 03:39:05 2020-01-01 00:10:44.000 2020-01-02 03:39:05.000 644 99545 50094.5 5009450 644 99545 50094.5 5009450 -32526 32612 4874.66 487466 -126 125 0.42 42 +645 100 10635 99546 1.93693 298.93693 150.43693 15043.69369 1.93693 298.93695 150.43693 15043.69379 1.93693 298.93693 150.43692999999993 15043.69300 2020-01-01 2020-01-02 2020-01-01 00:10:45 2020-01-02 03:39:06 2020-01-01 00:10:45.000 2020-01-02 03:39:06.000 645 99546 50095.5 5009550 645 99546 50095.5 5009550 -32525 32613 4875.66 487566 -125 126 1.42 142 +646 100 10636 99547 1.93993 298.93993 150.43993 15043.99399 1.93994 298.93994 150.43994 15043.99412 1.93993 298.93993 150.43993000000017 15043.99300 2020-01-01 2020-01-02 2020-01-01 00:10:46 2020-01-02 03:39:07 2020-01-01 00:10:46.000 2020-01-02 03:39:07.000 646 99547 50096.5 5009650 646 99547 50096.5 5009650 -32524 32614 4876.66 487666 -124 127 2.42 242 +647 100 10637 99548 1.94294 298.94294 150.44294 15044.29429 1.94294 298.94293 150.44294 15044.29425 1.94294 298.94294 150.44294000000005 15044.29400 2020-01-01 2020-01-02 2020-01-01 00:10:47 2020-01-02 03:39:08 2020-01-01 00:10:47.000 2020-01-02 03:39:08.000 647 99548 50097.5 5009750 647 99548 50097.5 5009750 -32523 32615 4877.66 487766 -128 127 0.86 86 +648 100 10638 99549 1.94594 298.94594 150.44594 15044.59459 1.94594 298.94595 150.44595 15044.595 1.94594 298.94594 150.4459399999999 15044.59400 2020-01-01 2020-01-02 2020-01-01 00:10:48 2020-01-02 03:39:09 2020-01-01 00:10:48.000 2020-01-02 03:39:09.000 648 99549 50098.5 5009850 648 99549 50098.5 5009850 -32522 32616 4878.66 487866 -128 123 -0.7 -70 +649 100 10639 99550 1.94894 298.94894 150.44894 15044.89489 1.94894 298.94894 150.44894 15044.89467 1.94894 298.94894 150.4489400000001 15044.89400 2020-01-01 2020-01-02 2020-01-01 00:10:49 2020-01-02 03:39:10 2020-01-01 00:10:49.000 2020-01-02 03:39:10.000 649 99550 50099.5 5009950 649 99550 50099.5 5009950 -32521 32617 4879.66 487966 -127 124 0.3 30 +65 102 10055 99965 0.19519 300.19519 150.19519 15169.71471 0.19519 300.1952 150.19519 15169.71448 0.19519 300.19519 150.19519000000008 15169.71419 2020-01-01 2020-01-02 2020-01-01 00:01:05 2020-01-02 03:46:05 2020-01-01 00:01:05.000 2020-01-02 03:46:05.000 65 99965 50015 5051515 65 99965 50015 5051515 -32504 32431 4594.009900990099 463995 -124 127 1.2178217821782178 123 650 100 10640 99551 1.95195 298.95195 150.45195 15045.19519 1.95195 298.95197 150.45195 15045.19525 1.95195 298.95195 150.45195 15045.19500 2020-01-01 2020-01-02 2020-01-01 00:10:50 2020-01-02 03:39:11 2020-01-01 00:10:50.000 2020-01-02 03:39:11.000 650 99551 50100.5 5010050 650 99551 50100.5 5010050 -32520 32618 4880.66 488066 -126 125 1.3 130 -651 100 10641 99552 1.95495 298.95495 150.45495 15045.49549 1.95495 298.95496 150.45495 15045.49558 1.95495 298.95495 150.45495 15045.49500 2020-01-01 2020-01-02 2020-01-01 00:10:51 2020-01-02 03:39:12 2020-01-01 00:10:51.000 2020-01-02 03:39:12.000 651 99552 50101.5 5010150 651 99552 50101.5 5010150 -32519 32619 4881.66 488166 -125 126 2.3 230 +651 100 10641 99552 1.95495 298.95495 150.45495 15045.49549 1.95495 298.95496 150.45495 15045.49558 1.95495 298.95495 150.45494999999994 15045.49500 2020-01-01 2020-01-02 2020-01-01 00:10:51 2020-01-02 03:39:12 2020-01-01 00:10:51.000 2020-01-02 03:39:12.000 651 99552 50101.5 5010150 651 99552 50101.5 5010150 -32519 32619 4881.66 488166 -125 126 2.3 230 652 100 10642 99553 1.95795 298.95795 150.45795 15045.79579 1.95795 298.95795 150.45795 15045.79572 1.95795 298.95795 150.45795 15045.79500 2020-01-01 2020-01-02 2020-01-01 00:10:52 2020-01-02 03:39:13 2020-01-01 00:10:52.000 2020-01-02 03:39:13.000 652 99553 50102.5 5010250 652 99553 50102.5 5010250 -32518 32620 4882.66 488266 -124 127 3.3 330 -653 100 10643 99554 1.96096 298.96096 150.46096 15046.09609 1.96096 298.96097 150.46096 15046.09647 1.96096 298.96096 150.46096 15046.09600 2020-01-01 2020-01-02 2020-01-01 00:10:53 2020-01-02 03:39:14 2020-01-01 00:10:53.000 2020-01-02 03:39:14.000 653 99554 50103.5 5010350 653 99554 50103.5 5010350 -32517 32621 4883.66 488366 -128 127 1.74 174 -654 100 10644 99555 1.96396 298.96396 150.46396 15046.39639 1.96396 298.96396 150.46396 15046.39613 1.96396 298.96396 150.46396 15046.39600 2020-01-01 2020-01-02 2020-01-01 00:10:54 2020-01-02 03:39:15 2020-01-01 00:10:54.000 2020-01-02 03:39:15.000 654 99555 50104.5 5010450 654 99555 50104.5 5010450 -32516 32622 4884.66 488466 -128 123 0.18 18 -655 100 10645 99556 1.96696 298.96696 150.46696 15046.69669 1.96696 298.96698 150.46696 15046.69676 1.96696 298.96696 150.46696 15046.69600 2020-01-01 2020-01-02 2020-01-01 00:10:55 2020-01-02 03:39:16 2020-01-01 00:10:55.000 2020-01-02 03:39:16.000 655 99556 50105.5 5010550 655 99556 50105.5 5010550 -32515 32623 4885.66 488566 -127 124 1.18 118 -656 100 10646 99557 1.96996 298.96996 150.46996 15046.99699 1.96997 298.96997 150.46997 15046.99706 1.96996 298.96996 150.46996 15046.99600 2020-01-01 2020-01-02 2020-01-01 00:10:56 2020-01-02 03:39:17 2020-01-01 00:10:56.000 2020-01-02 03:39:17.000 656 99557 50106.5 5010650 656 99557 50106.5 5010650 -32514 32624 4886.66 488666 -126 125 2.18 218 -657 100 10647 99558 1.97297 298.97297 150.47297 15047.29729 1.97297 298.97296 150.47297 15047.29735 1.97297 298.97297 150.47297 15047.29700 2020-01-01 2020-01-02 2020-01-01 00:10:57 2020-01-02 03:39:18 2020-01-01 00:10:57.000 2020-01-02 03:39:18.000 657 99558 50107.5 5010750 657 99558 50107.5 5010750 -32513 32625 4887.66 488766 -125 126 3.18 318 -658 100 10648 99559 1.97597 298.97597 150.47597 15047.59759 1.97597 298.97598 150.47597 15047.59794 1.97597 298.97597 150.47597 15047.59700 2020-01-01 2020-01-02 2020-01-01 00:10:58 2020-01-02 03:39:19 2020-01-01 00:10:58.000 2020-01-02 03:39:19.000 658 99559 50108.5 5010850 658 99559 50108.5 5010850 -32512 32626 4888.66 488866 -124 127 4.18 418 -659 100 10649 99560 1.97897 298.97897 150.47897 15047.89789 1.97897 298.97897 150.47897 15047.8976 1.97897 298.97897 150.47897 15047.89700 2020-01-01 2020-01-02 2020-01-01 00:10:59 2020-01-02 03:39:20 2020-01-01 00:10:59.000 2020-01-02 03:39:20.000 659 99560 50109.5 5010950 659 99560 50109.5 5010950 -32511 32627 4889.66 488966 -128 127 2.62 262 -66 102 10056 99966 0.19819 300.19819 150.19819 15170.01801 0.19819 300.1982 150.19819 15170.01808 0.19819 300.19819 150.19819 15170.01719 2020-01-01 2020-01-02 2020-01-01 00:01:06 2020-01-02 03:46:06 2020-01-01 00:01:06.000 2020-01-02 03:46:06.000 66 99966 50016 5051616 66 99966 50016 5051616 -32503 32432 4595.009900990099 464096 -128 127 -0.31683168316831684 -32 -660 100 10650 99561 1.98198 298.98198 150.48198 15048.19819 1.98198 298.982 150.48198 15048.19822 1.98198 298.98198 150.48198 15048.19800 2020-01-01 2020-01-02 2020-01-01 00:11:00 2020-01-02 03:39:21 2020-01-01 00:11:00.000 2020-01-02 03:39:21.000 660 99561 50110.5 5011050 660 99561 50110.5 5011050 -32510 32628 4890.66 489066 -128 127 1.06 106 -661 100 10651 99562 1.98498 298.98498 150.48498 15048.49849 1.98498 298.985 150.48498 15048.49853 1.98498 298.98498 150.48498 15048.49800 2020-01-01 2020-01-02 2020-01-01 00:11:01 2020-01-02 03:39:22 2020-01-01 00:11:01.000 2020-01-02 03:39:22.000 661 99562 50111.5 5011150 661 99562 50111.5 5011150 -32509 32629 4891.66 489166 -128 124 -0.5 -50 -662 100 10652 99563 1.98798 298.98798 150.48798 15048.79879 1.98798 298.98798 150.48798 15048.79882 1.98798 298.98798 150.48798 15048.79800 2020-01-01 2020-01-02 2020-01-01 00:11:02 2020-01-02 03:39:23 2020-01-01 00:11:02.000 2020-01-02 03:39:23.000 662 99563 50112.5 5011250 662 99563 50112.5 5011250 -32508 32630 4892.66 489266 -127 125 0.5 50 -663 100 10653 99564 1.99099 298.99099 150.49099 15049.09909 1.99099 298.991 150.49099 15049.09942 1.99099 298.99099 150.49099 15049.09900 2020-01-01 2020-01-02 2020-01-01 00:11:03 2020-01-02 03:39:24 2020-01-01 00:11:03.000 2020-01-02 03:39:24.000 663 99564 50113.5 5011350 663 99564 50113.5 5011350 -32507 32631 4893.66 489366 -126 126 1.5 150 -664 100 10654 99565 1.99399 298.99399 150.49399 15049.39939 1.99399 298.994 150.49399 15049.39911 1.99399 298.99399 150.49399 15049.39900 2020-01-01 2020-01-02 2020-01-01 00:11:04 2020-01-02 03:39:25 2020-01-01 00:11:04.000 2020-01-02 03:39:25.000 664 99565 50114.5 5011450 664 99565 50114.5 5011450 -32506 32632 4894.66 489466 -125 127 2.5 250 -665 100 10655 99566 1.99699 298.99699 150.49699 15049.69969 1.99699 298.997 150.49699 15049.6997 1.99699 298.99699 150.49699 15049.69900 2020-01-01 2020-01-02 2020-01-01 00:11:05 2020-01-02 03:39:26 2020-01-01 00:11:05.000 2020-01-02 03:39:26.000 665 99566 50115.5 5011550 665 99566 50115.5 5011550 -32505 32633 4895.66 489566 -128 127 0.94 94 -666 100 10656 99567 2 299 150.5 15050 2 299 150.5 15050 2.00000 299.00000 150.50000 15050.00000 2020-01-01 2020-01-02 2020-01-01 00:11:06 2020-01-02 03:39:27 2020-01-01 00:11:06.000 2020-01-02 03:39:27.000 666 99567 50116.5 5011650 666 99567 50116.5 5011650 -32504 32634 4896.66 489666 -128 127 -0.62 -62 -667 100 10657 99568 2.003 299.003 150.503 15050.3003 2.003 299.003 150.503 15050.30029 2.00300 299.00300 150.50300 15050.30000 2020-01-01 2020-01-02 2020-01-01 00:11:07 2020-01-02 03:39:28 2020-01-01 00:11:07.000 2020-01-02 03:39:28.000 667 99568 50117.5 5011750 667 99568 50117.5 5011750 -32503 32635 4897.66 489766 -128 123 -2.18 -218 -668 100 10658 99569 2.006 299.006 150.506 15050.6006 2.006 299.006 150.506 15050.60089 2.00600 299.00600 150.50600 15050.60000 2020-01-01 2020-01-02 2020-01-01 00:11:08 2020-01-02 03:39:29 2020-01-01 00:11:08.000 2020-01-02 03:39:29.000 668 99569 50118.5 5011850 668 99569 50118.5 5011850 -32502 32636 4898.66 489866 -127 124 -1.18 -118 -669 100 10659 99570 2.009 299.009 150.509 15050.9009 2.009 299.009 150.509 15050.90057 2.00900 299.00900 150.50900 15050.90000 2020-01-01 2020-01-02 2020-01-01 00:11:09 2020-01-02 03:39:30 2020-01-01 00:11:09.000 2020-01-02 03:39:30.000 669 99570 50119.5 5011950 669 99570 50119.5 5011950 -32501 32637 4899.66 489966 -126 125 -0.18 -18 -67 102 10057 99967 0.2012 300.2012 150.2012 15170.32132 0.2012 300.2012 150.2012 15170.32142 0.20120 300.20120 150.20120 15170.32120 2020-01-01 2020-01-02 2020-01-01 00:01:07 2020-01-02 03:46:07 2020-01-01 00:01:07.000 2020-01-02 03:46:07.000 67 99967 50017 5051717 67 99967 50017 5051717 -32502 32433 4596.009900990099 464197 -128 127 -1.8514851485148516 -187 -670 100 10660 99571 2.01201 299.01201 150.51201 15051.2012 2.01201 299.01202 150.51201 15051.20117 2.01201 299.01201 150.51201 15051.20100 2020-01-01 2020-01-02 2020-01-01 00:11:10 2020-01-02 03:39:31 2020-01-01 00:11:10.000 2020-01-02 03:39:31.000 670 99571 50120.5 5012050 670 99571 50120.5 5012050 -32500 32638 4900.66 490066 -125 126 0.82 82 -671 100 10661 99572 2.01501 299.01501 150.51501 15051.5015 2.01501 299.015 150.51501 15051.50146 2.01501 299.01501 150.51501 15051.50100 2020-01-01 2020-01-02 2020-01-01 00:11:11 2020-01-02 03:39:32 2020-01-01 00:11:11.000 2020-01-02 03:39:32.000 671 99572 50121.5 5012150 671 99572 50121.5 5012150 -32499 32639 4901.66 490166 -124 127 1.82 182 -672 100 10662 99573 2.01801 299.01801 150.51801 15051.8018 2.01801 299.018 150.51801 15051.80176 2.01801 299.01801 150.51801 15051.80100 2020-01-01 2020-01-02 2020-01-01 00:11:12 2020-01-02 03:39:33 2020-01-01 00:11:12.000 2020-01-02 03:39:33.000 672 99573 50122.5 5012250 672 99573 50122.5 5012250 -32498 32640 4902.66 490266 -128 127 0.26 26 -673 100 10663 99574 2.02102 299.02102 150.52102 15052.1021 2.02102 299.02103 150.52102 15052.1024 2.02102 299.02102 150.52102 15052.10200 2020-01-01 2020-01-02 2020-01-01 00:11:13 2020-01-02 03:39:34 2020-01-01 00:11:13.000 2020-01-02 03:39:34.000 673 99574 50123.5 5012350 673 99574 50123.5 5012350 -32497 32641 4903.66 490366 -128 123 -1.3 -130 -674 100 10664 99575 2.02402 299.02402 150.52402 15052.4024 2.02402 299.02402 150.52402 15052.40204 2.02402 299.02402 150.52402 15052.40200 2020-01-01 2020-01-02 2020-01-01 00:11:14 2020-01-02 03:39:35 2020-01-01 00:11:14.000 2020-01-02 03:39:35.000 674 99575 50124.5 5012450 674 99575 50124.5 5012450 -32496 32642 4904.66 490466 -127 124 -0.3 -30 -675 100 10665 99576 2.02702 299.02702 150.52702 15052.7027 2.02702 299.02704 150.52702 15052.70264 2.02702 299.02702 150.52702 15052.70200 2020-01-01 2020-01-02 2020-01-01 00:11:15 2020-01-02 03:39:36 2020-01-01 00:11:15.000 2020-01-02 03:39:36.000 675 99576 50125.5 5012550 675 99576 50125.5 5012550 -32495 32643 4905.66 490566 -126 125 0.7 70 -676 100 10666 99577 2.03003 299.03003 150.53003 15053.003 2.03003 299.03003 150.53002 15053.00293 2.03003 299.03003 150.53003 15053.00300 2020-01-01 2020-01-02 2020-01-01 00:11:16 2020-01-02 03:39:37 2020-01-01 00:11:16.000 2020-01-02 03:39:37.000 676 99577 50126.5 5012650 676 99577 50126.5 5012650 -32494 32644 4906.66 490666 -125 126 1.7 170 +653 100 10643 99554 1.96096 298.96096 150.46096 15046.09609 1.96096 298.96097 150.46096 15046.09647 1.96096 298.96096 150.46096000000006 15046.09600 2020-01-01 2020-01-02 2020-01-01 00:10:53 2020-01-02 03:39:14 2020-01-01 00:10:53.000 2020-01-02 03:39:14.000 653 99554 50103.5 5010350 653 99554 50103.5 5010350 -32517 32621 4883.66 488366 -128 127 1.74 174 +654 100 10644 99555 1.96396 298.96396 150.46396 15046.39639 1.96396 298.96396 150.46396 15046.39613 1.96396 298.96396 150.46395999999993 15046.39600 2020-01-01 2020-01-02 2020-01-01 00:10:54 2020-01-02 03:39:15 2020-01-01 00:10:54.000 2020-01-02 03:39:15.000 654 99555 50104.5 5010450 654 99555 50104.5 5010450 -32516 32622 4884.66 488466 -128 123 0.18 18 +655 100 10645 99556 1.96696 298.96696 150.46696 15046.69669 1.96696 298.96698 150.46696 15046.69676 1.96696 298.96696 150.46695999999991 15046.69600 2020-01-01 2020-01-02 2020-01-01 00:10:55 2020-01-02 03:39:16 2020-01-01 00:10:55.000 2020-01-02 03:39:16.000 655 99556 50105.5 5010550 655 99556 50105.5 5010550 -32515 32623 4885.66 488566 -127 124 1.18 118 +656 100 10646 99557 1.96996 298.96996 150.46996 15046.99699 1.96997 298.96997 150.46997 15046.99706 1.96996 298.96996 150.46996000000007 15046.99600 2020-01-01 2020-01-02 2020-01-01 00:10:56 2020-01-02 03:39:17 2020-01-01 00:10:56.000 2020-01-02 03:39:17.000 656 99557 50106.5 5010650 656 99557 50106.5 5010650 -32514 32624 4886.66 488666 -126 125 2.18 218 +657 100 10647 99558 1.97297 298.97297 150.47297 15047.29729 1.97297 298.97296 150.47297 15047.29735 1.97297 298.97297 150.47297000000003 15047.29700 2020-01-01 2020-01-02 2020-01-01 00:10:57 2020-01-02 03:39:18 2020-01-01 00:10:57.000 2020-01-02 03:39:18.000 657 99558 50107.5 5010750 657 99558 50107.5 5010750 -32513 32625 4887.66 488766 -125 126 3.18 318 +658 100 10648 99559 1.97597 298.97597 150.47597 15047.59759 1.97597 298.97598 150.47597 15047.59794 1.97597 298.97597 150.47597000000002 15047.59700 2020-01-01 2020-01-02 2020-01-01 00:10:58 2020-01-02 03:39:19 2020-01-01 00:10:58.000 2020-01-02 03:39:19.000 658 99559 50108.5 5010850 658 99559 50108.5 5010850 -32512 32626 4888.66 488866 -124 127 4.18 418 +659 100 10649 99560 1.97897 298.97897 150.47897 15047.89789 1.97897 298.97897 150.47897 15047.8976 1.97897 298.97897 150.4789700000001 15047.89700 2020-01-01 2020-01-02 2020-01-01 00:10:59 2020-01-02 03:39:20 2020-01-01 00:10:59.000 2020-01-02 03:39:20.000 659 99560 50109.5 5010950 659 99560 50109.5 5010950 -32511 32627 4889.66 488966 -128 127 2.62 262 +66 102 10056 99966 0.19819 300.19819 150.19819 15170.01801 0.19819 300.1982 150.19819 15170.01808 0.19819 300.19819 150.19818999999993 15170.01719 2020-01-01 2020-01-02 2020-01-01 00:01:06 2020-01-02 03:46:06 2020-01-01 00:01:06.000 2020-01-02 03:46:06.000 66 99966 50016 5051616 66 99966 50016 5051616 -32503 32432 4595.009900990099 464096 -128 127 -0.31683168316831684 -32 +660 100 10650 99561 1.98198 298.98198 150.48198 15048.19819 1.98198 298.982 150.48198 15048.19822 1.98198 298.98198 150.48197999999996 15048.19800 2020-01-01 2020-01-02 2020-01-01 00:11:00 2020-01-02 03:39:21 2020-01-01 00:11:00.000 2020-01-02 03:39:21.000 660 99561 50110.5 5011050 660 99561 50110.5 5011050 -32510 32628 4890.66 489066 -128 127 1.06 106 +661 100 10651 99562 1.98498 298.98498 150.48498 15048.49849 1.98498 298.985 150.48498 15048.49853 1.98498 298.98498 150.48497999999998 15048.49800 2020-01-01 2020-01-02 2020-01-01 00:11:01 2020-01-02 03:39:22 2020-01-01 00:11:01.000 2020-01-02 03:39:22.000 661 99562 50111.5 5011150 661 99562 50111.5 5011150 -32509 32629 4891.66 489166 -128 124 -0.5 -50 +662 100 10652 99563 1.98798 298.98798 150.48798 15048.79879 1.98798 298.98798 150.48798 15048.79882 1.98798 298.98798 150.4879799999999 15048.79800 2020-01-01 2020-01-02 2020-01-01 00:11:02 2020-01-02 03:39:23 2020-01-01 00:11:02.000 2020-01-02 03:39:23.000 662 99563 50112.5 5011250 662 99563 50112.5 5011250 -32508 32630 4892.66 489266 -127 125 0.5 50 +663 100 10653 99564 1.99099 298.99099 150.49099 15049.09909 1.99099 298.991 150.49099 15049.09942 1.99099 298.99099 150.4909900000001 15049.09900 2020-01-01 2020-01-02 2020-01-01 00:11:03 2020-01-02 03:39:24 2020-01-01 00:11:03.000 2020-01-02 03:39:24.000 663 99564 50113.5 5011350 663 99564 50113.5 5011350 -32507 32631 4893.66 489366 -126 126 1.5 150 +664 100 10654 99565 1.99399 298.99399 150.49399 15049.39939 1.99399 298.994 150.49399 15049.39911 1.99399 298.99399 150.49399000000005 15049.39900 2020-01-01 2020-01-02 2020-01-01 00:11:04 2020-01-02 03:39:25 2020-01-01 00:11:04.000 2020-01-02 03:39:25.000 664 99565 50114.5 5011450 664 99565 50114.5 5011450 -32506 32632 4894.66 489466 -125 127 2.5 250 +665 100 10655 99566 1.99699 298.99699 150.49699 15049.69969 1.99699 298.997 150.49699 15049.6997 1.99699 298.99699 150.49698999999993 15049.69900 2020-01-01 2020-01-02 2020-01-01 00:11:05 2020-01-02 03:39:26 2020-01-01 00:11:05.000 2020-01-02 03:39:26.000 665 99566 50115.5 5011550 665 99566 50115.5 5011550 -32505 32633 4895.66 489566 -128 127 0.94 94 +666 100 10656 99567 2 299 150.5 15050 2 299 150.5 15050 2.00000 299.00000 150.5 15050.00000 2020-01-01 2020-01-02 2020-01-01 00:11:06 2020-01-02 03:39:27 2020-01-01 00:11:06.000 2020-01-02 03:39:27.000 666 99567 50116.5 5011650 666 99567 50116.5 5011650 -32504 32634 4896.66 489666 -128 127 -0.62 -62 +667 100 10657 99568 2.003 299.003 150.503 15050.3003 2.003 299.003 150.503 15050.30029 2.00300 299.00300 150.50300000000004 15050.30000 2020-01-01 2020-01-02 2020-01-01 00:11:07 2020-01-02 03:39:28 2020-01-01 00:11:07.000 2020-01-02 03:39:28.000 667 99568 50117.5 5011750 667 99568 50117.5 5011750 -32503 32635 4897.66 489766 -128 123 -2.18 -218 +668 100 10658 99569 2.006 299.006 150.506 15050.6006 2.006 299.006 150.506 15050.60089 2.00600 299.00600 150.50599999999997 15050.60000 2020-01-01 2020-01-02 2020-01-01 00:11:08 2020-01-02 03:39:29 2020-01-01 00:11:08.000 2020-01-02 03:39:29.000 668 99569 50118.5 5011850 668 99569 50118.5 5011850 -32502 32636 4898.66 489866 -127 124 -1.18 -118 +669 100 10659 99570 2.009 299.009 150.509 15050.9009 2.009 299.009 150.509 15050.90057 2.00900 299.00900 150.509 15050.90000 2020-01-01 2020-01-02 2020-01-01 00:11:09 2020-01-02 03:39:30 2020-01-01 00:11:09.000 2020-01-02 03:39:30.000 669 99570 50119.5 5011950 669 99570 50119.5 5011950 -32501 32637 4899.66 489966 -126 125 -0.18 -18 +67 102 10057 99967 0.2012 300.2012 150.2012 15170.32132 0.2012 300.2012 150.2012 15170.32142 0.20120 300.20120 150.20120000000003 15170.32120 2020-01-01 2020-01-02 2020-01-01 00:01:07 2020-01-02 03:46:07 2020-01-01 00:01:07.000 2020-01-02 03:46:07.000 67 99967 50017 5051717 67 99967 50017 5051717 -32502 32433 4596.009900990099 464197 -128 127 -1.8514851485148516 -187 +670 100 10660 99571 2.01201 299.01201 150.51201 15051.2012 2.01201 299.01202 150.51201 15051.20117 2.01201 299.01201 150.5120100000001 15051.20100 2020-01-01 2020-01-02 2020-01-01 00:11:10 2020-01-02 03:39:31 2020-01-01 00:11:10.000 2020-01-02 03:39:31.000 670 99571 50120.5 5012050 670 99571 50120.5 5012050 -32500 32638 4900.66 490066 -125 126 0.82 82 +671 100 10661 99572 2.01501 299.01501 150.51501 15051.5015 2.01501 299.015 150.51501 15051.50146 2.01501 299.01501 150.51500999999993 15051.50100 2020-01-01 2020-01-02 2020-01-01 00:11:11 2020-01-02 03:39:32 2020-01-01 00:11:11.000 2020-01-02 03:39:32.000 671 99572 50121.5 5012150 671 99572 50121.5 5012150 -32499 32639 4901.66 490166 -124 127 1.82 182 +672 100 10662 99573 2.01801 299.01801 150.51801 15051.8018 2.01801 299.018 150.51801 15051.80176 2.01801 299.01801 150.5180099999999 15051.80100 2020-01-01 2020-01-02 2020-01-01 00:11:12 2020-01-02 03:39:33 2020-01-01 00:11:12.000 2020-01-02 03:39:33.000 672 99573 50122.5 5012250 672 99573 50122.5 5012250 -32498 32640 4902.66 490266 -128 127 0.26 26 +673 100 10663 99574 2.02102 299.02102 150.52102 15052.1021 2.02102 299.02103 150.52102 15052.1024 2.02102 299.02102 150.52102000000005 15052.10200 2020-01-01 2020-01-02 2020-01-01 00:11:13 2020-01-02 03:39:34 2020-01-01 00:11:13.000 2020-01-02 03:39:34.000 673 99574 50123.5 5012350 673 99574 50123.5 5012350 -32497 32641 4903.66 490366 -128 123 -1.3 -130 +674 100 10664 99575 2.02402 299.02402 150.52402 15052.4024 2.02402 299.02402 150.52402 15052.40204 2.02402 299.02402 150.52402000000004 15052.40200 2020-01-01 2020-01-02 2020-01-01 00:11:14 2020-01-02 03:39:35 2020-01-01 00:11:14.000 2020-01-02 03:39:35.000 674 99575 50124.5 5012450 674 99575 50124.5 5012450 -32496 32642 4904.66 490466 -127 124 -0.3 -30 +675 100 10665 99576 2.02702 299.02702 150.52702 15052.7027 2.02702 299.02704 150.52702 15052.70264 2.02702 299.02702 150.52701999999982 15052.70200 2020-01-01 2020-01-02 2020-01-01 00:11:15 2020-01-02 03:39:36 2020-01-01 00:11:15.000 2020-01-02 03:39:36.000 675 99576 50125.5 5012550 675 99576 50125.5 5012550 -32495 32643 4905.66 490566 -126 125 0.7 70 +676 100 10666 99577 2.03003 299.03003 150.53003 15053.003 2.03003 299.03003 150.53002 15053.00293 2.03003 299.03003 150.53002999999993 15053.00300 2020-01-01 2020-01-02 2020-01-01 00:11:16 2020-01-02 03:39:37 2020-01-01 00:11:16.000 2020-01-02 03:39:37.000 676 99577 50126.5 5012650 676 99577 50126.5 5012650 -32494 32644 4906.66 490666 -125 126 1.7 170 677 100 10667 99578 2.03303 299.03303 150.53303 15053.3033 2.03303 299.03302 150.53303 15053.30323 2.03303 299.03303 150.53303 15053.30300 2020-01-01 2020-01-02 2020-01-01 00:11:17 2020-01-02 03:39:38 2020-01-01 00:11:17.000 2020-01-02 03:39:38.000 677 99578 50127.5 5012750 677 99578 50127.5 5012750 -32493 32645 4907.66 490766 -124 127 2.7 270 -678 100 10668 99579 2.03603 299.03603 150.53603 15053.6036 2.03603 299.03604 150.53603 15053.60387 2.03603 299.03603 150.53603 15053.60300 2020-01-01 2020-01-02 2020-01-01 00:11:18 2020-01-02 03:39:39 2020-01-01 00:11:18.000 2020-01-02 03:39:39.000 678 99579 50128.5 5012850 678 99579 50128.5 5012850 -32492 32646 4908.66 490866 -128 127 1.14 114 -679 100 10669 99580 2.03903 299.03903 150.53903 15053.9039 2.03903 299.03903 150.53903 15053.90351 2.03903 299.03903 150.53903 15053.90300 2020-01-01 2020-01-02 2020-01-01 00:11:19 2020-01-02 03:39:40 2020-01-01 00:11:19.000 2020-01-02 03:39:40.000 679 99580 50129.5 5012950 679 99580 50129.5 5012950 -32491 32647 4909.66 490966 -128 123 -0.42 -42 -68 102 10058 99968 0.2042 300.2042 150.2042 15170.62462 0.2042 300.2042 150.2042 15170.62457 0.20420 300.20420 150.20420 15170.62420 2020-01-01 2020-01-02 2020-01-01 00:01:08 2020-01-02 03:46:08 2020-01-01 00:01:08.000 2020-01-02 03:46:08.000 68 99968 50018 5051818 68 99968 50018 5051818 -32501 32434 4597.009900990099 464298 -128 124 -3.386138613861386 -342 -680 100 10670 99581 2.04204 299.04204 150.54204 15054.2042 2.04204 299.04205 150.54204 15054.20426 2.04204 299.04204 150.54204 15054.20400 2020-01-01 2020-01-02 2020-01-01 00:11:20 2020-01-02 03:39:41 2020-01-01 00:11:20.000 2020-01-02 03:39:41.000 680 99581 50130.5 5013050 680 99581 50130.5 5013050 -32490 32648 4910.66 491066 -127 124 0.58 58 -681 100 10671 99582 2.04504 299.04504 150.54504 15054.5045 2.04504 299.04504 150.54504 15054.5044 2.04504 299.04504 150.54504 15054.50400 2020-01-01 2020-01-02 2020-01-01 00:11:21 2020-01-02 03:39:42 2020-01-01 00:11:21.000 2020-01-02 03:39:42.000 681 99582 50131.5 5013150 681 99582 50131.5 5013150 -32489 32649 4911.66 491166 -126 125 1.58 158 -682 100 10672 99583 2.04804 299.04804 150.54804 15054.8048 2.04804 299.04803 150.54804 15054.80474 2.04804 299.04804 150.54804 15054.80400 2020-01-01 2020-01-02 2020-01-01 00:11:22 2020-01-02 03:39:43 2020-01-01 00:11:22.000 2020-01-02 03:39:43.000 682 99583 50132.5 5013250 682 99583 50132.5 5013250 -32488 32650 4912.66 491266 -125 126 2.58 258 +678 100 10668 99579 2.03603 299.03603 150.53603 15053.6036 2.03603 299.03604 150.53603 15053.60387 2.03603 299.03603 150.53602999999998 15053.60300 2020-01-01 2020-01-02 2020-01-01 00:11:18 2020-01-02 03:39:39 2020-01-01 00:11:18.000 2020-01-02 03:39:39.000 678 99579 50128.5 5012850 678 99579 50128.5 5012850 -32492 32646 4908.66 490866 -128 127 1.14 114 +679 100 10669 99580 2.03903 299.03903 150.53903 15053.9039 2.03903 299.03903 150.53903 15053.90351 2.03903 299.03903 150.53902999999994 15053.90300 2020-01-01 2020-01-02 2020-01-01 00:11:19 2020-01-02 03:39:40 2020-01-01 00:11:19.000 2020-01-02 03:39:40.000 679 99580 50129.5 5012950 679 99580 50129.5 5012950 -32491 32647 4909.66 490966 -128 123 -0.42 -42 +68 102 10058 99968 0.2042 300.2042 150.2042 15170.62462 0.2042 300.2042 150.2042 15170.62457 0.20420 300.20420 150.20420000000004 15170.62420 2020-01-01 2020-01-02 2020-01-01 00:01:08 2020-01-02 03:46:08 2020-01-01 00:01:08.000 2020-01-02 03:46:08.000 68 99968 50018 5051818 68 99968 50018 5051818 -32501 32434 4597.009900990099 464298 -128 124 -3.386138613861386 -342 +680 100 10670 99581 2.04204 299.04204 150.54204 15054.2042 2.04204 299.04205 150.54204 15054.20426 2.04204 299.04204 150.54204000000004 15054.20400 2020-01-01 2020-01-02 2020-01-01 00:11:20 2020-01-02 03:39:41 2020-01-01 00:11:20.000 2020-01-02 03:39:41.000 680 99581 50130.5 5013050 680 99581 50130.5 5013050 -32490 32648 4910.66 491066 -127 124 0.58 58 +681 100 10671 99582 2.04504 299.04504 150.54504 15054.5045 2.04504 299.04504 150.54504 15054.5044 2.04504 299.04504 150.54504000000009 15054.50400 2020-01-01 2020-01-02 2020-01-01 00:11:21 2020-01-02 03:39:42 2020-01-01 00:11:21.000 2020-01-02 03:39:42.000 681 99582 50131.5 5013150 681 99582 50131.5 5013150 -32489 32649 4911.66 491166 -126 125 1.58 158 +682 100 10672 99583 2.04804 299.04804 150.54804 15054.8048 2.04804 299.04803 150.54804 15054.80474 2.04804 299.04804 150.5480399999999 15054.80400 2020-01-01 2020-01-02 2020-01-01 00:11:22 2020-01-02 03:39:43 2020-01-01 00:11:22.000 2020-01-02 03:39:43.000 682 99583 50132.5 5013250 682 99583 50132.5 5013250 -32488 32650 4912.66 491266 -125 126 2.58 258 683 100 10673 99584 2.05105 299.05105 150.55105 15055.1051 2.05105 299.05106 150.55105 15055.10533 2.05105 299.05105 150.55105 15055.10500 2020-01-01 2020-01-02 2020-01-01 00:11:23 2020-01-02 03:39:44 2020-01-01 00:11:23.000 2020-01-02 03:39:44.000 683 99584 50133.5 5013350 683 99584 50133.5 5013350 -32487 32651 4913.66 491366 -124 127 3.58 358 -684 100 10674 99585 2.05405 299.05405 150.55405 15055.4054 2.05405 299.05405 150.55404 15055.40498 2.05405 299.05405 150.55405 15055.40500 2020-01-01 2020-01-02 2020-01-01 00:11:24 2020-01-02 03:39:45 2020-01-01 00:11:24.000 2020-01-02 03:39:45.000 684 99585 50134.5 5013450 684 99585 50134.5 5013450 -32486 32652 4914.66 491466 -128 127 2.02 202 -685 100 10675 99586 2.05705 299.05705 150.55705 15055.7057 2.05705 299.05707 150.55705 15055.70573 2.05705 299.05705 150.55705 15055.70500 2020-01-01 2020-01-02 2020-01-01 00:11:25 2020-01-02 03:39:46 2020-01-01 00:11:25.000 2020-01-02 03:39:46.000 685 99586 50135.5 5013550 685 99586 50135.5 5013550 -32485 32653 4915.66 491566 -128 127 0.46 46 -686 100 10676 99587 2.06006 299.06006 150.56006 15056.006 2.06006 299.06006 150.56005 15056.00587 2.06006 299.06006 150.56006 15056.00600 2020-01-01 2020-01-02 2020-01-01 00:11:26 2020-01-02 03:39:47 2020-01-01 00:11:26.000 2020-01-02 03:39:47.000 686 99587 50136.5 5013650 686 99587 50136.5 5013650 -32484 32654 4916.66 491666 -128 124 -1.1 -110 -687 100 10677 99588 2.06306 299.06306 150.56306 15056.3063 2.06306 299.06305 150.56306 15056.30621 2.06306 299.06306 150.56306 15056.30600 2020-01-01 2020-01-02 2020-01-01 00:11:27 2020-01-02 03:39:48 2020-01-01 00:11:27.000 2020-01-02 03:39:48.000 687 99588 50137.5 5013750 687 99588 50137.5 5013750 -32483 32655 4917.66 491766 -127 125 -0.1 -10 -688 100 10678 99589 2.06606 299.06606 150.56606 15056.6066 2.06606 299.06607 150.56606 15056.60681 2.06606 299.06606 150.56606 15056.60600 2020-01-01 2020-01-02 2020-01-01 00:11:28 2020-01-02 03:39:49 2020-01-01 00:11:28.000 2020-01-02 03:39:49.000 688 99589 50138.5 5013850 688 99589 50138.5 5013850 -32482 32656 4918.66 491866 -126 126 0.9 90 -689 100 10679 99590 2.06906 299.06906 150.56906 15056.9069 2.06906 299.06906 150.56907 15056.9071 2.06906 299.06906 150.56906 15056.90600 2020-01-01 2020-01-02 2020-01-01 00:11:29 2020-01-02 03:39:50 2020-01-01 00:11:29.000 2020-01-02 03:39:50.000 689 99590 50139.5 5013950 689 99590 50139.5 5013950 -32481 32657 4919.66 491966 -125 127 1.9 190 -69 102 10059 99969 0.2072 300.2072 150.2072 15170.92792 0.2072 300.2072 150.20721 15170.92832 0.20720 300.20720 150.20720 15170.92720 2020-01-01 2020-01-02 2020-01-01 00:01:09 2020-01-02 03:46:09 2020-01-01 00:01:09.000 2020-01-02 03:46:09.000 69 99969 50019 5051919 69 99969 50019 5051919 -32500 32435 4598.009900990099 464399 -127 125 -2.386138613861386 -241 -690 100 10680 99591 2.07207 299.07207 150.57207 15057.2072 2.07207 299.07208 150.57207 15057.2072 2.07207 299.07207 150.57207 15057.20700 2020-01-01 2020-01-02 2020-01-01 00:11:30 2020-01-02 03:39:51 2020-01-01 00:11:30.000 2020-01-02 03:39:51.000 690 99591 50140.5 5014050 690 99591 50140.5 5014050 -32480 32658 4920.66 492066 -128 127 0.34 34 -691 100 10681 99592 2.07507 299.07507 150.57507 15057.5075 2.07507 299.07507 150.57507 15057.50734 2.07507 299.07507 150.57507 15057.50700 2020-01-01 2020-01-02 2020-01-01 00:11:31 2020-01-02 03:39:52 2020-01-01 00:11:31.000 2020-01-02 03:39:52.000 691 99592 50141.5 5014150 691 99592 50141.5 5014150 -32479 32659 4921.66 492166 -128 127 -1.22 -122 -692 100 10682 99593 2.07807 299.07807 150.57807 15057.8078 2.07807 299.07806 150.57807 15057.80767 2.07807 299.07807 150.57807 15057.80700 2020-01-01 2020-01-02 2020-01-01 00:11:32 2020-01-02 03:39:53 2020-01-01 00:11:32.000 2020-01-02 03:39:53.000 692 99593 50142.5 5014250 692 99593 50142.5 5014250 -32478 32660 4922.66 492266 -128 123 -2.78 -278 -693 100 10683 99594 2.08108 299.08108 150.58108 15058.1081 2.08108 299.0811 150.58108 15058.10827 2.08108 299.08108 150.58108 15058.10800 2020-01-01 2020-01-02 2020-01-01 00:11:33 2020-01-02 03:39:54 2020-01-01 00:11:33.000 2020-01-02 03:39:54.000 693 99594 50143.5 5014350 693 99594 50143.5 5014350 -32477 32661 4923.66 492366 -127 124 -1.78 -178 +684 100 10674 99585 2.05405 299.05405 150.55405 15055.4054 2.05405 299.05405 150.55404 15055.40498 2.05405 299.05405 150.55405000000007 15055.40500 2020-01-01 2020-01-02 2020-01-01 00:11:24 2020-01-02 03:39:45 2020-01-01 00:11:24.000 2020-01-02 03:39:45.000 684 99585 50134.5 5013450 684 99585 50134.5 5013450 -32486 32652 4914.66 491466 -128 127 2.02 202 +685 100 10675 99586 2.05705 299.05705 150.55705 15055.7057 2.05705 299.05707 150.55705 15055.70573 2.05705 299.05705 150.55704999999998 15055.70500 2020-01-01 2020-01-02 2020-01-01 00:11:25 2020-01-02 03:39:46 2020-01-01 00:11:25.000 2020-01-02 03:39:46.000 685 99586 50135.5 5013550 685 99586 50135.5 5013550 -32485 32653 4915.66 491566 -128 127 0.46 46 +686 100 10676 99587 2.06006 299.06006 150.56006 15056.006 2.06006 299.06006 150.56005 15056.00587 2.06006 299.06006 150.5600599999999 15056.00600 2020-01-01 2020-01-02 2020-01-01 00:11:26 2020-01-02 03:39:47 2020-01-01 00:11:26.000 2020-01-02 03:39:47.000 686 99587 50136.5 5013650 686 99587 50136.5 5013650 -32484 32654 4916.66 491666 -128 124 -1.1 -110 +687 100 10677 99588 2.06306 299.06306 150.56306 15056.3063 2.06306 299.06305 150.56306 15056.30621 2.06306 299.06306 150.56306000000012 15056.30600 2020-01-01 2020-01-02 2020-01-01 00:11:27 2020-01-02 03:39:48 2020-01-01 00:11:27.000 2020-01-02 03:39:48.000 687 99588 50137.5 5013750 687 99588 50137.5 5013750 -32483 32655 4917.66 491766 -127 125 -0.1 -10 +688 100 10678 99589 2.06606 299.06606 150.56606 15056.6066 2.06606 299.06607 150.56606 15056.60681 2.06606 299.06606 150.56605999999996 15056.60600 2020-01-01 2020-01-02 2020-01-01 00:11:28 2020-01-02 03:39:49 2020-01-01 00:11:28.000 2020-01-02 03:39:49.000 688 99589 50138.5 5013850 688 99589 50138.5 5013850 -32482 32656 4918.66 491866 -126 126 0.9 90 +689 100 10679 99590 2.06906 299.06906 150.56906 15056.9069 2.06906 299.06906 150.56907 15056.9071 2.06906 299.06906 150.5690599999999 15056.90600 2020-01-01 2020-01-02 2020-01-01 00:11:29 2020-01-02 03:39:50 2020-01-01 00:11:29.000 2020-01-02 03:39:50.000 689 99590 50139.5 5013950 689 99590 50139.5 5013950 -32481 32657 4919.66 491966 -125 127 1.9 190 +69 102 10059 99969 0.2072 300.2072 150.2072 15170.92792 0.2072 300.2072 150.20721 15170.92832 0.20720 300.20720 150.20720000000003 15170.92720 2020-01-01 2020-01-02 2020-01-01 00:01:09 2020-01-02 03:46:09 2020-01-01 00:01:09.000 2020-01-02 03:46:09.000 69 99969 50019 5051919 69 99969 50019 5051919 -32500 32435 4598.009900990099 464399 -127 125 -2.386138613861386 -241 +690 100 10680 99591 2.07207 299.07207 150.57207 15057.2072 2.07207 299.07208 150.57207 15057.2072 2.07207 299.07207 150.57207000000008 15057.20700 2020-01-01 2020-01-02 2020-01-01 00:11:30 2020-01-02 03:39:51 2020-01-01 00:11:30.000 2020-01-02 03:39:51.000 690 99591 50140.5 5014050 690 99591 50140.5 5014050 -32480 32658 4920.66 492066 -128 127 0.34 34 +691 100 10681 99592 2.07507 299.07507 150.57507 15057.5075 2.07507 299.07507 150.57507 15057.50734 2.07507 299.07507 150.57507000000004 15057.50700 2020-01-01 2020-01-02 2020-01-01 00:11:31 2020-01-02 03:39:52 2020-01-01 00:11:31.000 2020-01-02 03:39:52.000 691 99592 50141.5 5014150 691 99592 50141.5 5014150 -32479 32659 4921.66 492166 -128 127 -1.22 -122 +692 100 10682 99593 2.07807 299.07807 150.57807 15057.8078 2.07807 299.07806 150.57807 15057.80767 2.07807 299.07807 150.57806999999985 15057.80700 2020-01-01 2020-01-02 2020-01-01 00:11:32 2020-01-02 03:39:53 2020-01-01 00:11:32.000 2020-01-02 03:39:53.000 692 99593 50142.5 5014250 692 99593 50142.5 5014250 -32478 32660 4922.66 492266 -128 123 -2.78 -278 +693 100 10683 99594 2.08108 299.08108 150.58108 15058.1081 2.08108 299.0811 150.58108 15058.10827 2.08108 299.08108 150.58107999999996 15058.10800 2020-01-01 2020-01-02 2020-01-01 00:11:33 2020-01-02 03:39:54 2020-01-01 00:11:33.000 2020-01-02 03:39:54.000 693 99594 50143.5 5014350 693 99594 50143.5 5014350 -32477 32661 4923.66 492366 -127 124 -1.78 -178 694 100 10684 99595 2.08408 299.08408 150.58408 15058.4084 2.08408 299.08408 150.58408 15058.40857 2.08408 299.08408 150.58408 15058.40800 2020-01-01 2020-01-02 2020-01-01 00:11:34 2020-01-02 03:39:55 2020-01-01 00:11:34.000 2020-01-02 03:39:55.000 694 99595 50144.5 5014450 694 99595 50144.5 5014450 -32476 32662 4924.66 492466 -126 125 -0.78 -78 -695 100 10685 99596 2.08708 299.08708 150.58708 15058.7087 2.08708 299.0871 150.58708 15058.70867 2.08708 299.08708 150.58708 15058.70800 2020-01-01 2020-01-02 2020-01-01 00:11:35 2020-01-02 03:39:56 2020-01-01 00:11:35.000 2020-01-02 03:39:56.000 695 99596 50145.5 5014550 695 99596 50145.5 5014550 -32475 32663 4925.66 492566 -125 126 0.22 22 -696 100 10686 99597 2.09009 299.09009 150.59009 15059.009 2.09009 299.0901 150.59008 15059.00885 2.09009 299.09009 150.59009 15059.00900 2020-01-01 2020-01-02 2020-01-01 00:11:36 2020-01-02 03:39:57 2020-01-01 00:11:36.000 2020-01-02 03:39:57.000 696 99597 50146.5 5014650 696 99597 50146.5 5014650 -32474 32664 4926.66 492666 -124 127 1.22 122 -697 100 10687 99598 2.09309 299.09309 150.59309 15059.3093 2.09309 299.09308 150.59309 15059.30915 2.09309 299.09309 150.59309 15059.30900 2020-01-01 2020-01-02 2020-01-01 00:11:37 2020-01-02 03:39:58 2020-01-01 00:11:37.000 2020-01-02 03:39:58.000 697 99598 50147.5 5014750 697 99598 50147.5 5014750 -32473 32665 4927.66 492766 -128 127 -0.34 -34 -698 100 10688 99599 2.09609 299.09609 150.59609 15059.6096 2.09609 299.0961 150.59609 15059.6099 2.09609 299.09609 150.59609 15059.60900 2020-01-01 2020-01-02 2020-01-01 00:11:38 2020-01-02 03:39:59 2020-01-01 00:11:38.000 2020-01-02 03:39:59.000 698 99599 50148.5 5014850 698 99599 50148.5 5014850 -32472 32666 4928.66 492866 -128 123 -1.9 -190 -699 100 10689 99600 2.09909 299.09909 150.59909 15059.9099 2.09909 299.0991 150.5991 15059.91003 2.09909 299.09909 150.59909 15059.90900 2020-01-01 2020-01-02 2020-01-01 00:11:39 2020-01-02 03:40:00 2020-01-01 00:11:39.000 2020-01-02 03:40:00.000 699 99600 50149.5 5014950 699 99600 50149.5 5014950 -32471 32667 4929.66 492966 -127 124 -0.9 -90 -7 102 1006 9997 0.02102 300.02102 150.02102 15152.12312 0.02102 300.02103 150.02102 15152.12342 0.02102 300.02102 150.02102 15152.12302 2020-01-01 2020-01-02 2020-01-01 00:00:07 2020-01-02 03:45:07 2020-01-01 00:00:07.000 2020-01-02 03:45:07.000 7 99907 49957 5045657 7 99907 49957 5045657 -32562 32373 4536.009900990099 458137 -126 125 -1.0198019801980198 -103 -70 102 10060 99970 0.21021 300.21021 150.21021 15171.23123 0.21021 300.2102 150.2102 15171.23097 0.21021 300.21021 150.21021 15171.23121 2020-01-01 2020-01-02 2020-01-01 00:01:10 2020-01-02 03:46:10 2020-01-01 00:01:10.000 2020-01-02 03:46:10.000 70 99970 50020 5052020 70 99970 50020 5052020 -32499 32436 4599.009900990099 464500 -126 126 -1.386138613861386 -140 -700 100 10690 99601 2.1021 299.1021 150.6021 15060.21021 2.1021 299.1021 150.6021 15060.21014 2.10210 299.10210 150.60210 15060.21000 2020-01-01 2020-01-02 2020-01-01 00:11:40 2020-01-02 03:40:01 2020-01-01 00:11:40.000 2020-01-02 03:40:01.000 700 99601 50150.5 5015050 700 99601 50150.5 5015050 -32470 32668 4930.66 493066 -126 125 0.1 10 -701 100 10691 99602 2.1051 299.1051 150.6051 15060.51051 2.1051 299.1051 150.6051 15060.51031 2.10510 299.10510 150.60510 15060.51000 2020-01-01 2020-01-02 2020-01-01 00:11:41 2020-01-02 03:40:02 2020-01-01 00:11:41.000 2020-01-02 03:40:02.000 701 99602 50151.5 5015150 701 99602 50151.5 5015150 -32469 32669 4931.66 493166 -125 126 1.1 110 -702 100 10692 99603 2.1081 299.1081 150.6081 15060.81081 2.1081 299.1081 150.6081 15060.81062 2.10810 299.10810 150.60810 15060.81000 2020-01-01 2020-01-02 2020-01-01 00:11:42 2020-01-02 03:40:03 2020-01-01 00:11:42.000 2020-01-02 03:40:03.000 702 99603 50152.5 5015250 702 99603 50152.5 5015250 -32468 32670 4932.66 493266 -124 127 2.1 210 -703 100 10693 99604 2.11111 299.11111 150.61111 15061.11111 2.11111 299.1111 150.61111 15061.11137 2.11111 299.11111 150.61111 15061.11100 2020-01-01 2020-01-02 2020-01-01 00:11:43 2020-01-02 03:40:04 2020-01-01 00:11:43.000 2020-01-02 03:40:04.000 703 99604 50153.5 5015350 703 99604 50153.5 5015350 -32467 32671 4933.66 493366 -128 127 0.54 54 -704 100 10694 99605 2.11411 299.11411 150.61411 15061.41141 2.11411 299.1141 150.61411 15061.41151 2.11411 299.11411 150.61411 15061.41100 2020-01-01 2020-01-02 2020-01-01 00:11:44 2020-01-02 03:40:05 2020-01-01 00:11:44.000 2020-01-02 03:40:05.000 704 99605 50154.5 5015450 704 99605 50154.5 5015450 -32466 32672 4934.66 493466 -128 123 -1.02 -102 -705 100 10695 99606 2.11711 299.11711 150.61711 15061.71171 2.11711 299.11713 150.61711 15061.71165 2.11711 299.11711 150.61711 15061.71100 2020-01-01 2020-01-02 2020-01-01 00:11:45 2020-01-02 03:40:06 2020-01-01 00:11:45.000 2020-01-02 03:40:06.000 705 99606 50155.5 5015550 705 99606 50155.5 5015550 -32465 32673 4935.66 493566 -127 124 -0.02 -2 -706 100 10696 99607 2.12012 299.12012 150.62012 15062.01201 2.12012 299.12012 150.62011 15062.01179 2.12012 299.12012 150.62012 15062.01200 2020-01-01 2020-01-02 2020-01-01 00:11:46 2020-01-02 03:40:07 2020-01-01 00:11:46.000 2020-01-02 03:40:07.000 706 99607 50156.5 5015650 706 99607 50156.5 5015650 -32464 32674 4936.66 493666 -126 125 0.98 98 -707 100 10697 99608 2.12312 299.12312 150.62312 15062.31231 2.12312 299.1231 150.62312 15062.31208 2.12312 299.12312 150.62312 15062.31200 2020-01-01 2020-01-02 2020-01-01 00:11:47 2020-01-02 03:40:08 2020-01-01 00:11:47.000 2020-01-02 03:40:08.000 707 99608 50157.5 5015750 707 99608 50157.5 5015750 -32463 32675 4937.66 493766 -125 126 1.98 198 -708 100 10698 99609 2.12612 299.12612 150.62612 15062.61261 2.12612 299.12613 150.62612 15062.61283 2.12612 299.12612 150.62612 15062.61200 2020-01-01 2020-01-02 2020-01-01 00:11:48 2020-01-02 03:40:09 2020-01-01 00:11:48.000 2020-01-02 03:40:09.000 708 99609 50158.5 5015850 708 99609 50158.5 5015850 -32462 32676 4938.66 493866 -124 127 2.98 298 -709 100 10699 99610 2.12912 299.12912 150.62912 15062.91291 2.12912 299.12912 150.62912 15062.91298 2.12912 299.12912 150.62912 15062.91200 2020-01-01 2020-01-02 2020-01-01 00:11:49 2020-01-02 03:40:10 2020-01-01 00:11:49.000 2020-01-02 03:40:10.000 709 99610 50159.5 5015950 709 99610 50159.5 5015950 -32461 32677 4939.66 493966 -128 127 1.42 142 -71 102 10061 99971 0.21321 300.21321 150.21321 15171.53453 0.21321 300.21323 150.21321 15171.5346 0.21321 300.21321 150.21321 15171.53421 2020-01-01 2020-01-02 2020-01-01 00:01:11 2020-01-02 03:46:11 2020-01-01 00:01:11.000 2020-01-02 03:46:11.000 71 99971 50021 5052121 71 99971 50021 5052121 -32498 32437 4600.009900990099 464601 -125 127 -0.38613861386138615 -39 +695 100 10685 99596 2.08708 299.08708 150.58708 15058.7087 2.08708 299.0871 150.58708 15058.70867 2.08708 299.08708 150.58707999999987 15058.70800 2020-01-01 2020-01-02 2020-01-01 00:11:35 2020-01-02 03:39:56 2020-01-01 00:11:35.000 2020-01-02 03:39:56.000 695 99596 50145.5 5014550 695 99596 50145.5 5014550 -32475 32663 4925.66 492566 -125 126 0.22 22 +696 100 10686 99597 2.09009 299.09009 150.59009 15059.009 2.09009 299.0901 150.59008 15059.00885 2.09009 299.09009 150.5900899999998 15059.00900 2020-01-01 2020-01-02 2020-01-01 00:11:36 2020-01-02 03:39:57 2020-01-01 00:11:36.000 2020-01-02 03:39:57.000 696 99597 50146.5 5014650 696 99597 50146.5 5014650 -32474 32664 4926.66 492666 -124 127 1.22 122 +697 100 10687 99598 2.09309 299.09309 150.59309 15059.3093 2.09309 299.09308 150.59309 15059.30915 2.09309 299.09309 150.5930900000002 15059.30900 2020-01-01 2020-01-02 2020-01-01 00:11:37 2020-01-02 03:39:58 2020-01-01 00:11:37.000 2020-01-02 03:39:58.000 697 99598 50147.5 5014750 697 99598 50147.5 5014750 -32473 32665 4927.66 492766 -128 127 -0.34 -34 +698 100 10688 99599 2.09609 299.09609 150.59609 15059.6096 2.09609 299.0961 150.59609 15059.6099 2.09609 299.09609 150.59608999999972 15059.60900 2020-01-01 2020-01-02 2020-01-01 00:11:38 2020-01-02 03:39:59 2020-01-01 00:11:38.000 2020-01-02 03:39:59.000 698 99599 50148.5 5014850 698 99599 50148.5 5014850 -32472 32666 4928.66 492866 -128 123 -1.9 -190 +699 100 10689 99600 2.09909 299.09909 150.59909 15059.9099 2.09909 299.0991 150.5991 15059.91003 2.09909 299.09909 150.59908999999982 15059.90900 2020-01-01 2020-01-02 2020-01-01 00:11:39 2020-01-02 03:40:00 2020-01-01 00:11:39.000 2020-01-02 03:40:00.000 699 99600 50149.5 5014950 699 99600 50149.5 5014950 -32471 32667 4929.66 492966 -127 124 -0.9 -90 +7 102 1006 9997 0.02102 300.02102 150.02102 15152.12312 0.02102 300.02103 150.02102 15152.12342 0.02102 300.02102 150.0210200000001 15152.12302 2020-01-01 2020-01-02 2020-01-01 00:00:07 2020-01-02 03:45:07 2020-01-01 00:00:07.000 2020-01-02 03:45:07.000 7 99907 49957 5045657 7 99907 49957 5045657 -32562 32373 4536.009900990099 458137 -126 125 -1.0198019801980198 -103 +70 102 10060 99970 0.21021 300.21021 150.21021 15171.23123 0.21021 300.2102 150.2102 15171.23097 0.21021 300.21021 150.21020999999988 15171.23121 2020-01-01 2020-01-02 2020-01-01 00:01:10 2020-01-02 03:46:10 2020-01-01 00:01:10.000 2020-01-02 03:46:10.000 70 99970 50020 5052020 70 99970 50020 5052020 -32499 32436 4599.009900990099 464500 -126 126 -1.386138613861386 -140 +700 100 10690 99601 2.1021 299.1021 150.6021 15060.21021 2.1021 299.1021 150.6021 15060.21014 2.10210 299.10210 150.60210000000004 15060.21000 2020-01-01 2020-01-02 2020-01-01 00:11:40 2020-01-02 03:40:01 2020-01-01 00:11:40.000 2020-01-02 03:40:01.000 700 99601 50150.5 5015050 700 99601 50150.5 5015050 -32470 32668 4930.66 493066 -126 125 0.1 10 +701 100 10691 99602 2.1051 299.1051 150.6051 15060.51051 2.1051 299.1051 150.6051 15060.51031 2.10510 299.10510 150.60510000000014 15060.51000 2020-01-01 2020-01-02 2020-01-01 00:11:41 2020-01-02 03:40:02 2020-01-01 00:11:41.000 2020-01-02 03:40:02.000 701 99602 50151.5 5015150 701 99602 50151.5 5015150 -32469 32669 4931.66 493166 -125 126 1.1 110 +702 100 10692 99603 2.1081 299.1081 150.6081 15060.81081 2.1081 299.1081 150.6081 15060.81062 2.10810 299.10810 150.60809999999998 15060.81000 2020-01-01 2020-01-02 2020-01-01 00:11:42 2020-01-02 03:40:03 2020-01-01 00:11:42.000 2020-01-02 03:40:03.000 702 99603 50152.5 5015250 702 99603 50152.5 5015250 -32468 32670 4932.66 493266 -124 127 2.1 210 +703 100 10693 99604 2.11111 299.11111 150.61111 15061.11111 2.11111 299.1111 150.61111 15061.11137 2.11111 299.11111 150.61110999999985 15061.11100 2020-01-01 2020-01-02 2020-01-01 00:11:43 2020-01-02 03:40:04 2020-01-01 00:11:43.000 2020-01-02 03:40:04.000 703 99604 50153.5 5015350 703 99604 50153.5 5015350 -32467 32671 4933.66 493366 -128 127 0.54 54 +704 100 10694 99605 2.11411 299.11411 150.61411 15061.41141 2.11411 299.1141 150.61411 15061.41151 2.11411 299.11411 150.61411000000032 15061.41100 2020-01-01 2020-01-02 2020-01-01 00:11:44 2020-01-02 03:40:05 2020-01-01 00:11:44.000 2020-01-02 03:40:05.000 704 99605 50154.5 5015450 704 99605 50154.5 5015450 -32466 32672 4934.66 493466 -128 123 -1.02 -102 +705 100 10695 99606 2.11711 299.11711 150.61711 15061.71171 2.11711 299.11713 150.61711 15061.71165 2.11711 299.11711 150.61710999999983 15061.71100 2020-01-01 2020-01-02 2020-01-01 00:11:45 2020-01-02 03:40:06 2020-01-01 00:11:45.000 2020-01-02 03:40:06.000 705 99606 50155.5 5015550 705 99606 50155.5 5015550 -32465 32673 4935.66 493566 -127 124 -0.02 -2 +706 100 10696 99607 2.12012 299.12012 150.62012 15062.01201 2.12012 299.12012 150.62011 15062.01179 2.12012 299.12012 150.6201199999997 15062.01200 2020-01-01 2020-01-02 2020-01-01 00:11:46 2020-01-02 03:40:07 2020-01-01 00:11:46.000 2020-01-02 03:40:07.000 706 99607 50156.5 5015650 706 99607 50156.5 5015650 -32464 32674 4936.66 493666 -126 125 0.98 98 +707 100 10697 99608 2.12312 299.12312 150.62312 15062.31231 2.12312 299.1231 150.62312 15062.31208 2.12312 299.12312 150.62312000000017 15062.31200 2020-01-01 2020-01-02 2020-01-01 00:11:47 2020-01-02 03:40:08 2020-01-01 00:11:47.000 2020-01-02 03:40:08.000 707 99608 50157.5 5015750 707 99608 50157.5 5015750 -32463 32675 4937.66 493766 -125 126 1.98 198 +708 100 10698 99609 2.12612 299.12612 150.62612 15062.61261 2.12612 299.12613 150.62612 15062.61283 2.12612 299.12612 150.6261200000002 15062.61200 2020-01-01 2020-01-02 2020-01-01 00:11:48 2020-01-02 03:40:09 2020-01-01 00:11:48.000 2020-01-02 03:40:09.000 708 99609 50158.5 5015850 708 99609 50158.5 5015850 -32462 32676 4938.66 493866 -124 127 2.98 298 +709 100 10699 99610 2.12912 299.12912 150.62912 15062.91291 2.12912 299.12912 150.62912 15062.91298 2.12912 299.12912 150.62911999999972 15062.91200 2020-01-01 2020-01-02 2020-01-01 00:11:49 2020-01-02 03:40:10 2020-01-01 00:11:49.000 2020-01-02 03:40:10.000 709 99610 50159.5 5015950 709 99610 50159.5 5015950 -32461 32677 4939.66 493966 -128 127 1.42 142 +71 102 10061 99971 0.21321 300.21321 150.21321 15171.53453 0.21321 300.21323 150.21321 15171.5346 0.21321 300.21321 150.21320999999992 15171.53421 2020-01-01 2020-01-02 2020-01-01 00:01:11 2020-01-02 03:46:11 2020-01-01 00:01:11.000 2020-01-02 03:46:11.000 71 99971 50021 5052121 71 99971 50021 5052121 -32498 32437 4600.009900990099 464601 -125 127 -0.38613861386138615 -39 710 100 10700 99611 2.13213 299.13213 150.63213 15063.21321 2.13213 299.13214 150.63213 15063.21311 2.13213 299.13213 150.63213 15063.21300 2020-01-01 2020-01-02 2020-01-01 00:11:50 2020-01-02 03:40:11 2020-01-01 00:11:50.000 2020-01-02 03:40:11.000 710 99611 50160.5 5016050 710 99611 50160.5 5016050 -32460 32678 4940.66 494066 -128 127 -0.14 -14 -711 100 10701 99612 2.13513 299.13513 150.63513 15063.51351 2.13513 299.13513 150.63513 15063.51325 2.13513 299.13513 150.63513 15063.51300 2020-01-01 2020-01-02 2020-01-01 00:11:51 2020-01-02 03:40:12 2020-01-01 00:11:51.000 2020-01-02 03:40:12.000 711 99612 50161.5 5016150 711 99612 50161.5 5016150 -32459 32679 4941.66 494166 -128 124 -1.7 -170 -712 100 10702 99613 2.13813 299.13813 150.63813 15063.81381 2.13813 299.13815 150.63814 15063.81401 2.13813 299.13813 150.63813 15063.81300 2020-01-01 2020-01-02 2020-01-01 00:11:52 2020-01-02 03:40:13 2020-01-01 00:11:52.000 2020-01-02 03:40:13.000 712 99613 50162.5 5016250 712 99613 50162.5 5016250 -32458 32680 4942.66 494266 -127 125 -0.7 -70 -713 100 10703 99614 2.14114 299.14114 150.64114 15064.11411 2.14114 299.14114 150.64114 15064.11431 2.14114 299.14114 150.64114 15064.11400 2020-01-01 2020-01-02 2020-01-01 00:11:53 2020-01-02 03:40:14 2020-01-01 00:11:53.000 2020-01-02 03:40:14.000 713 99614 50163.5 5016350 713 99614 50163.5 5016350 -32457 32681 4943.66 494366 -126 126 0.3 30 -714 100 10704 99615 2.14414 299.14414 150.64414 15064.41441 2.14414 299.14413 150.64414 15064.41448 2.14414 299.14414 150.64414 15064.41400 2020-01-01 2020-01-02 2020-01-01 00:11:54 2020-01-02 03:40:15 2020-01-01 00:11:54.000 2020-01-02 03:40:15.000 714 99615 50164.5 5016450 714 99615 50164.5 5016450 -32456 32682 4944.66 494466 -125 127 1.3 130 -715 100 10705 99616 2.14714 299.14714 150.64714 15064.71471 2.14714 299.14716 150.64714 15064.71458 2.14714 299.14714 150.64714 15064.71400 2020-01-01 2020-01-02 2020-01-01 00:11:55 2020-01-02 03:40:16 2020-01-01 00:11:55.000 2020-01-02 03:40:16.000 715 99616 50165.5 5016550 715 99616 50165.5 5016550 -32455 32683 4945.66 494566 -128 127 -0.26 -26 +711 100 10701 99612 2.13513 299.13513 150.63513 15063.51351 2.13513 299.13513 150.63513 15063.51325 2.13513 299.13513 150.63513000000006 15063.51300 2020-01-01 2020-01-02 2020-01-01 00:11:51 2020-01-02 03:40:12 2020-01-01 00:11:51.000 2020-01-02 03:40:12.000 711 99612 50161.5 5016150 711 99612 50161.5 5016150 -32459 32679 4941.66 494166 -128 124 -1.7 -170 +712 100 10702 99613 2.13813 299.13813 150.63813 15063.81381 2.13813 299.13815 150.63814 15063.81401 2.13813 299.13813 150.63812999999988 15063.81300 2020-01-01 2020-01-02 2020-01-01 00:11:52 2020-01-02 03:40:13 2020-01-01 00:11:52.000 2020-01-02 03:40:13.000 712 99613 50162.5 5016250 712 99613 50162.5 5016250 -32458 32680 4942.66 494266 -127 125 -0.7 -70 +713 100 10703 99614 2.14114 299.14114 150.64114 15064.11411 2.14114 299.14114 150.64114 15064.11431 2.14114 299.14114 150.64113999999984 15064.11400 2020-01-01 2020-01-02 2020-01-01 00:11:53 2020-01-02 03:40:14 2020-01-01 00:11:53.000 2020-01-02 03:40:14.000 713 99614 50163.5 5016350 713 99614 50163.5 5016350 -32457 32681 4943.66 494366 -126 126 0.3 30 +714 100 10704 99615 2.14414 299.14414 150.64414 15064.41441 2.14414 299.14413 150.64414 15064.41448 2.14414 299.14414 150.64414000000022 15064.41400 2020-01-01 2020-01-02 2020-01-01 00:11:54 2020-01-02 03:40:15 2020-01-01 00:11:54.000 2020-01-02 03:40:15.000 714 99615 50164.5 5016450 714 99615 50164.5 5016450 -32456 32682 4944.66 494466 -125 127 1.3 130 +715 100 10705 99616 2.14714 299.14714 150.64714 15064.71471 2.14714 299.14716 150.64714 15064.71458 2.14714 299.14714 150.64713999999972 15064.71400 2020-01-01 2020-01-02 2020-01-01 00:11:55 2020-01-02 03:40:16 2020-01-01 00:11:55.000 2020-01-02 03:40:16.000 715 99616 50165.5 5016550 715 99616 50165.5 5016550 -32455 32683 4945.66 494566 -128 127 -0.26 -26 716 100 10706 99617 2.15015 299.15015 150.65015 15065.01501 2.15015 299.15015 150.65014 15065.01472 2.15015 299.15015 150.65015 15065.01500 2020-01-01 2020-01-02 2020-01-01 00:11:56 2020-01-02 03:40:17 2020-01-01 00:11:56.000 2020-01-02 03:40:17.000 716 99617 50166.5 5016650 716 99617 50166.5 5016650 -32454 32684 4946.66 494666 -128 127 -1.82 -182 -717 100 10707 99618 2.15315 299.15315 150.65315 15065.31531 2.15315 299.15317 150.65315 15065.31547 2.15315 299.15315 150.65315 15065.31500 2020-01-01 2020-01-02 2020-01-01 00:11:57 2020-01-02 03:40:18 2020-01-01 00:11:57.000 2020-01-02 03:40:18.000 717 99618 50167.5 5016750 717 99618 50167.5 5016750 -32453 32685 4947.66 494766 -128 123 -3.38 -338 -718 100 10708 99619 2.15615 299.15615 150.65615 15065.61561 2.15615 299.15616 150.65615 15065.61578 2.15615 299.15615 150.65615 15065.61500 2020-01-01 2020-01-02 2020-01-01 00:11:58 2020-01-02 03:40:19 2020-01-01 00:11:58.000 2020-01-02 03:40:19.000 718 99619 50168.5 5016850 718 99619 50168.5 5016850 -32452 32686 4948.66 494866 -127 124 -2.38 -238 +717 100 10707 99618 2.15315 299.15315 150.65315 15065.31531 2.15315 299.15317 150.65315 15065.31547 2.15315 299.15315 150.65315000000007 15065.31500 2020-01-01 2020-01-02 2020-01-01 00:11:57 2020-01-02 03:40:18 2020-01-01 00:11:57.000 2020-01-02 03:40:18.000 717 99618 50167.5 5016750 717 99618 50167.5 5016750 -32453 32685 4947.66 494766 -128 123 -3.38 -338 +718 100 10708 99619 2.15615 299.15615 150.65615 15065.61561 2.15615 299.15616 150.65615 15065.61578 2.15615 299.15615 150.6561500000001 15065.61500 2020-01-01 2020-01-02 2020-01-01 00:11:58 2020-01-02 03:40:19 2020-01-01 00:11:58.000 2020-01-02 03:40:19.000 718 99619 50168.5 5016850 718 99619 50168.5 5016850 -32452 32686 4948.66 494866 -127 124 -2.38 -238 719 100 10709 99620 2.15915 299.15915 150.65915 15065.91591 2.15915 299.15915 150.65915 15065.91595 2.15915 299.15915 150.65915 15065.91500 2020-01-01 2020-01-02 2020-01-01 00:11:59 2020-01-02 03:40:20 2020-01-01 00:11:59.000 2020-01-02 03:40:20.000 719 99620 50169.5 5016950 719 99620 50169.5 5016950 -32451 32687 4949.66 494966 -126 125 -1.38 -138 72 102 10062 99972 0.21621 300.21621 150.21621 15171.83783 0.21621 300.21622 150.21621 15171.83791 0.21621 300.21621 150.21621 15171.83721 2020-01-01 2020-01-02 2020-01-01 00:01:12 2020-01-02 03:46:12 2020-01-01 00:01:12.000 2020-01-02 03:46:12.000 72 99972 50022 5052222 72 99972 50022 5052222 -32497 32438 4601.009900990099 464702 -128 127 -1.9207920792079207 -194 -720 100 10710 99621 2.16216 299.16216 150.66216 15066.21621 2.16216 299.16217 150.66216 15066.21606 2.16216 299.16216 150.66216 15066.21600 2020-01-01 2020-01-02 2020-01-01 00:12:00 2020-01-02 03:40:21 2020-01-01 00:12:00.000 2020-01-02 03:40:21.000 720 99621 50170.5 5017050 720 99621 50170.5 5017050 -32450 32688 4950.66 495066 -125 126 -0.38 -38 -721 100 10711 99622 2.16516 299.16516 150.66516 15066.51651 2.16516 299.16516 150.66516 15066.51635 2.16516 299.16516 150.66516 15066.51600 2020-01-01 2020-01-02 2020-01-01 00:12:01 2020-01-02 03:40:22 2020-01-01 00:12:01.000 2020-01-02 03:40:22.000 721 99622 50171.5 5017150 721 99622 50171.5 5017150 -32449 32689 4951.66 495166 -124 127 0.62 62 -722 100 10712 99623 2.16816 299.16816 150.66816 15066.81681 2.16816 299.16818 150.66816 15066.81695 2.16816 299.16816 150.66816 15066.81600 2020-01-01 2020-01-02 2020-01-01 00:12:02 2020-01-02 03:40:23 2020-01-01 00:12:02.000 2020-01-02 03:40:23.000 722 99623 50172.5 5017250 722 99623 50172.5 5017250 -32448 32690 4952.66 495266 -128 127 -0.94 -94 -723 100 10713 99624 2.17117 299.17117 150.67117 15067.11711 2.17117 299.17117 150.67117 15067.11724 2.17117 299.17117 150.67117 15067.11700 2020-01-01 2020-01-02 2020-01-01 00:12:03 2020-01-02 03:40:24 2020-01-01 00:12:03.000 2020-01-02 03:40:24.000 723 99624 50173.5 5017350 723 99624 50173.5 5017350 -32447 32691 4953.66 495366 -128 123 -2.5 -250 -724 100 10714 99625 2.17417 299.17417 150.67417 15067.41741 2.17417 299.17416 150.67417 15067.41742 2.17417 299.17417 150.67417 15067.41700 2020-01-01 2020-01-02 2020-01-01 00:12:04 2020-01-02 03:40:25 2020-01-01 00:12:04.000 2020-01-02 03:40:25.000 724 99625 50174.5 5017450 724 99625 50174.5 5017450 -32446 32692 4954.66 495466 -127 124 -1.5 -150 -725 100 10715 99626 2.17717 299.17717 150.67717 15067.71771 2.17717 299.1772 150.67717 15067.71752 2.17717 299.17717 150.67717 15067.71700 2020-01-01 2020-01-02 2020-01-01 00:12:05 2020-01-02 03:40:26 2020-01-01 00:12:05.000 2020-01-02 03:40:26.000 725 99626 50175.5 5017550 725 99626 50175.5 5017550 -32445 32693 4955.66 495566 -126 125 -0.5 -50 -726 100 10716 99627 2.18018 299.18018 150.68018 15068.01801 2.18018 299.18018 150.68017 15068.01782 2.18018 299.18018 150.68018 15068.01800 2020-01-01 2020-01-02 2020-01-01 00:12:06 2020-01-02 03:40:27 2020-01-01 00:12:06.000 2020-01-02 03:40:27.000 726 99627 50176.5 5017650 726 99627 50176.5 5017650 -32444 32694 4956.66 495666 -125 126 0.5 50 +720 100 10710 99621 2.16216 299.16216 150.66216 15066.21621 2.16216 299.16217 150.66216 15066.21606 2.16216 299.16216 150.6621599999999 15066.21600 2020-01-01 2020-01-02 2020-01-01 00:12:00 2020-01-02 03:40:21 2020-01-01 00:12:00.000 2020-01-02 03:40:21.000 720 99621 50170.5 5017050 720 99621 50170.5 5017050 -32450 32688 4950.66 495066 -125 126 -0.38 -38 +721 100 10711 99622 2.16516 299.16516 150.66516 15066.51651 2.16516 299.16516 150.66516 15066.51635 2.16516 299.16516 150.66515999999996 15066.51600 2020-01-01 2020-01-02 2020-01-01 00:12:01 2020-01-02 03:40:22 2020-01-01 00:12:01.000 2020-01-02 03:40:22.000 721 99622 50171.5 5017150 721 99622 50171.5 5017150 -32449 32689 4951.66 495166 -124 127 0.62 62 +722 100 10712 99623 2.16816 299.16816 150.66816 15066.81681 2.16816 299.16818 150.66816 15066.81695 2.16816 299.16816 150.66815999999986 15066.81600 2020-01-01 2020-01-02 2020-01-01 00:12:02 2020-01-02 03:40:23 2020-01-01 00:12:02.000 2020-01-02 03:40:23.000 722 99623 50172.5 5017250 722 99623 50172.5 5017250 -32448 32690 4952.66 495266 -128 127 -0.94 -94 +723 100 10713 99624 2.17117 299.17117 150.67117 15067.11711 2.17117 299.17117 150.67117 15067.11724 2.17117 299.17117 150.67116999999973 15067.11700 2020-01-01 2020-01-02 2020-01-01 00:12:03 2020-01-02 03:40:24 2020-01-01 00:12:03.000 2020-01-02 03:40:24.000 723 99624 50173.5 5017350 723 99624 50173.5 5017350 -32447 32691 4953.66 495366 -128 123 -2.5 -250 +724 100 10714 99625 2.17417 299.17417 150.67417 15067.41741 2.17417 299.17416 150.67417 15067.41742 2.17417 299.17417 150.67417000000015 15067.41700 2020-01-01 2020-01-02 2020-01-01 00:12:04 2020-01-02 03:40:25 2020-01-01 00:12:04.000 2020-01-02 03:40:25.000 724 99625 50174.5 5017450 724 99625 50174.5 5017450 -32446 32692 4954.66 495466 -127 124 -1.5 -150 +725 100 10715 99626 2.17717 299.17717 150.67717 15067.71771 2.17717 299.1772 150.67717 15067.71752 2.17717 299.17717 150.67717000000025 15067.71700 2020-01-01 2020-01-02 2020-01-01 00:12:05 2020-01-02 03:40:26 2020-01-01 00:12:05.000 2020-01-02 03:40:26.000 725 99626 50175.5 5017550 725 99626 50175.5 5017550 -32445 32693 4955.66 495566 -126 125 -0.5 -50 +726 100 10716 99627 2.18018 299.18018 150.68018 15068.01801 2.18018 299.18018 150.68017 15068.01782 2.18018 299.18018 150.6801799999999 15068.01800 2020-01-01 2020-01-02 2020-01-01 00:12:06 2020-01-02 03:40:27 2020-01-01 00:12:06.000 2020-01-02 03:40:27.000 726 99627 50176.5 5017650 726 99627 50176.5 5017650 -32444 32694 4956.66 495666 -125 126 0.5 50 727 100 10717 99628 2.18318 299.18318 150.68318 15068.31831 2.18318 299.1832 150.68318 15068.31842 2.18318 299.18318 150.68318 15068.31800 2020-01-01 2020-01-02 2020-01-01 00:12:07 2020-01-02 03:40:28 2020-01-01 00:12:07.000 2020-01-02 03:40:28.000 727 99628 50177.5 5017750 727 99628 50177.5 5017750 -32443 32695 4957.66 495766 -124 127 1.5 150 -728 100 10718 99629 2.18618 299.18618 150.68618 15068.61861 2.18618 299.1862 150.68618 15068.61875 2.18618 299.18618 150.68618 15068.61800 2020-01-01 2020-01-02 2020-01-01 00:12:08 2020-01-02 03:40:29 2020-01-01 00:12:08.000 2020-01-02 03:40:29.000 728 99629 50178.5 5017850 728 99629 50178.5 5017850 -32442 32696 4958.66 495866 -128 127 -0.06 -6 -729 100 10719 99630 2.18918 299.18918 150.68918 15068.91891 2.18918 299.18918 150.68918 15068.91889 2.18918 299.18918 150.68918 15068.91800 2020-01-01 2020-01-02 2020-01-01 00:12:09 2020-01-02 03:40:30 2020-01-01 00:12:09.000 2020-01-02 03:40:30.000 729 99630 50179.5 5017950 729 99630 50179.5 5017950 -32441 32697 4959.66 495966 -128 123 -1.62 -162 -73 102 10063 99973 0.21921 300.21921 150.21921 15172.14114 0.21921 300.2192 150.21921 15172.14121 0.21921 300.21921 150.21921 15172.14021 2020-01-01 2020-01-02 2020-01-01 00:01:13 2020-01-02 03:46:13 2020-01-01 00:01:13.000 2020-01-02 03:46:13.000 73 99973 50023 5052323 73 99973 50023 5052323 -32496 32439 4602.009900990099 464803 -128 127 -3.4554455445544554 -349 -730 100 10720 99631 2.19219 299.19219 150.69219 15069.21921 2.19219 299.1922 150.69219 15069.21965 2.19219 299.19219 150.69219 15069.21900 2020-01-01 2020-01-02 2020-01-01 00:12:10 2020-01-02 03:40:31 2020-01-01 00:12:10.000 2020-01-02 03:40:31.000 730 99631 50180.5 5018050 730 99631 50180.5 5018050 -32440 32698 4960.66 496066 -127 124 -0.62 -62 -731 100 10721 99632 2.19519 299.19519 150.69519 15069.51951 2.19519 299.1952 150.69519 15069.51928 2.19519 299.19519 150.69519 15069.51900 2020-01-01 2020-01-02 2020-01-01 00:12:11 2020-01-02 03:40:32 2020-01-01 00:12:11.000 2020-01-02 03:40:32.000 731 99632 50181.5 5018150 731 99632 50181.5 5018150 -32439 32699 4961.66 496166 -126 125 0.38 38 -732 100 10722 99633 2.19819 299.19819 150.69819 15069.81981 2.19819 299.1982 150.69819 15069.81988 2.19819 299.19819 150.69819 15069.81900 2020-01-01 2020-01-02 2020-01-01 00:12:12 2020-01-02 03:40:33 2020-01-01 00:12:12.000 2020-01-02 03:40:33.000 732 99633 50182.5 5018250 732 99633 50182.5 5018250 -32438 32700 4962.66 496266 -125 126 1.38 138 -733 100 10723 99634 2.2012 299.2012 150.7012 15070.12012 2.2012 299.2012 150.7012 15070.12022 2.20120 299.20120 150.70120 15070.12000 2020-01-01 2020-01-02 2020-01-01 00:12:13 2020-01-02 03:40:34 2020-01-01 00:12:13.000 2020-01-02 03:40:34.000 733 99634 50183.5 5018350 733 99634 50183.5 5018350 -32437 32701 4963.66 496366 -124 127 2.38 238 -734 100 10724 99635 2.2042 299.2042 150.7042 15070.42042 2.2042 299.2042 150.7042 15070.42036 2.20420 299.20420 150.70420 15070.42000 2020-01-01 2020-01-02 2020-01-01 00:12:14 2020-01-02 03:40:35 2020-01-01 00:12:14.000 2020-01-02 03:40:35.000 734 99635 50184.5 5018450 734 99635 50184.5 5018450 -32436 32702 4964.66 496466 -128 127 0.82 82 -735 100 10725 99636 2.2072 299.2072 150.7072 15070.72072 2.2072 299.2072 150.70721 15070.72111 2.20720 299.20720 150.70720 15070.72000 2020-01-01 2020-01-02 2020-01-01 00:12:15 2020-01-02 03:40:36 2020-01-01 00:12:15.000 2020-01-02 03:40:36.000 735 99636 50185.5 5018550 735 99636 50185.5 5018550 -32435 32703 4965.66 496566 -128 127 -0.74 -74 -736 100 10726 99637 2.21021 299.21021 150.71021 15071.02102 2.21021 299.2102 150.7102 15071.02076 2.21021 299.21021 150.71021 15071.02100 2020-01-01 2020-01-02 2020-01-01 00:12:16 2020-01-02 03:40:37 2020-01-01 00:12:16.000 2020-01-02 03:40:37.000 736 99637 50186.5 5018650 736 99637 50186.5 5018650 -32434 32704 4966.66 496666 -128 124 -2.3 -230 -737 100 10727 99638 2.21321 299.21321 150.71321 15071.32132 2.21321 299.21323 150.71321 15071.32139 2.21321 299.21321 150.71321 15071.32100 2020-01-01 2020-01-02 2020-01-01 00:12:17 2020-01-02 03:40:38 2020-01-01 00:12:17.000 2020-01-02 03:40:38.000 737 99638 50187.5 5018750 737 99638 50187.5 5018750 -32433 32705 4967.66 496766 -127 125 -1.3 -130 +728 100 10718 99629 2.18618 299.18618 150.68618 15068.61861 2.18618 299.1862 150.68618 15068.61875 2.18618 299.18618 150.6861800000001 15068.61800 2020-01-01 2020-01-02 2020-01-01 00:12:08 2020-01-02 03:40:29 2020-01-01 00:12:08.000 2020-01-02 03:40:29.000 728 99629 50178.5 5017850 728 99629 50178.5 5017850 -32442 32696 4958.66 495866 -128 127 -0.06 -6 +729 100 10719 99630 2.18918 299.18918 150.68918 15068.91891 2.18918 299.18918 150.68918 15068.91889 2.18918 299.18918 150.6891799999999 15068.91800 2020-01-01 2020-01-02 2020-01-01 00:12:09 2020-01-02 03:40:30 2020-01-01 00:12:09.000 2020-01-02 03:40:30.000 729 99630 50179.5 5017950 729 99630 50179.5 5017950 -32441 32697 4959.66 495966 -128 123 -1.62 -162 +73 102 10063 99973 0.21921 300.21921 150.21921 15172.14114 0.21921 300.2192 150.21921 15172.14121 0.21921 300.21921 150.2192099999999 15172.14021 2020-01-01 2020-01-02 2020-01-01 00:01:13 2020-01-02 03:46:13 2020-01-01 00:01:13.000 2020-01-02 03:46:13.000 73 99973 50023 5052323 73 99973 50023 5052323 -32496 32439 4602.009900990099 464803 -128 127 -3.4554455445544554 -349 +730 100 10720 99631 2.19219 299.19219 150.69219 15069.21921 2.19219 299.1922 150.69219 15069.21965 2.19219 299.19219 150.69218999999984 15069.21900 2020-01-01 2020-01-02 2020-01-01 00:12:10 2020-01-02 03:40:31 2020-01-01 00:12:10.000 2020-01-02 03:40:31.000 730 99631 50180.5 5018050 730 99631 50180.5 5018050 -32440 32698 4960.66 496066 -127 124 -0.62 -62 +731 100 10721 99632 2.19519 299.19519 150.69519 15069.51951 2.19519 299.1952 150.69519 15069.51928 2.19519 299.19519 150.69519000000025 15069.51900 2020-01-01 2020-01-02 2020-01-01 00:12:11 2020-01-02 03:40:32 2020-01-01 00:12:11.000 2020-01-02 03:40:32.000 731 99632 50181.5 5018150 731 99632 50181.5 5018150 -32439 32699 4961.66 496166 -126 125 0.38 38 +732 100 10722 99633 2.19819 299.19819 150.69819 15069.81981 2.19819 299.1982 150.69819 15069.81988 2.19819 299.19819 150.69818999999976 15069.81900 2020-01-01 2020-01-02 2020-01-01 00:12:12 2020-01-02 03:40:33 2020-01-01 00:12:12.000 2020-01-02 03:40:33.000 732 99633 50182.5 5018250 732 99633 50182.5 5018250 -32438 32700 4962.66 496266 -125 126 1.38 138 +733 100 10723 99634 2.2012 299.2012 150.7012 15070.12012 2.2012 299.2012 150.7012 15070.12022 2.20120 299.20120 150.70120000000003 15070.12000 2020-01-01 2020-01-02 2020-01-01 00:12:13 2020-01-02 03:40:34 2020-01-01 00:12:13.000 2020-01-02 03:40:34.000 733 99634 50183.5 5018350 733 99634 50183.5 5018350 -32437 32701 4963.66 496366 -124 127 2.38 238 +734 100 10724 99635 2.2042 299.2042 150.7042 15070.42042 2.2042 299.2042 150.7042 15070.42036 2.20420 299.20420 150.7042000000001 15070.42000 2020-01-01 2020-01-02 2020-01-01 00:12:14 2020-01-02 03:40:35 2020-01-01 00:12:14.000 2020-01-02 03:40:35.000 734 99635 50184.5 5018450 734 99635 50184.5 5018450 -32436 32702 4964.66 496466 -128 127 0.82 82 +735 100 10725 99636 2.2072 299.2072 150.7072 15070.72072 2.2072 299.2072 150.70721 15070.72111 2.20720 299.20720 150.70720000000014 15070.72000 2020-01-01 2020-01-02 2020-01-01 00:12:15 2020-01-02 03:40:36 2020-01-01 00:12:15.000 2020-01-02 03:40:36.000 735 99636 50185.5 5018550 735 99636 50185.5 5018550 -32435 32703 4965.66 496566 -128 127 -0.74 -74 +736 100 10726 99637 2.21021 299.21021 150.71021 15071.02102 2.21021 299.2102 150.7102 15071.02076 2.21021 299.21021 150.71020999999988 15071.02100 2020-01-01 2020-01-02 2020-01-01 00:12:16 2020-01-02 03:40:37 2020-01-01 00:12:16.000 2020-01-02 03:40:37.000 736 99637 50186.5 5018650 736 99637 50186.5 5018650 -32434 32704 4966.66 496666 -128 124 -2.3 -230 +737 100 10727 99638 2.21321 299.21321 150.71321 15071.32132 2.21321 299.21323 150.71321 15071.32139 2.21321 299.21321 150.71320999999992 15071.32100 2020-01-01 2020-01-02 2020-01-01 00:12:17 2020-01-02 03:40:38 2020-01-01 00:12:17.000 2020-01-02 03:40:38.000 737 99638 50187.5 5018750 737 99638 50187.5 5018750 -32433 32705 4967.66 496766 -127 125 -1.3 -130 738 100 10728 99639 2.21621 299.21621 150.71621 15071.62162 2.21621 299.21622 150.71621 15071.62169 2.21621 299.21621 150.71621 15071.62100 2020-01-01 2020-01-02 2020-01-01 00:12:18 2020-01-02 03:40:39 2020-01-01 00:12:18.000 2020-01-02 03:40:39.000 738 99639 50188.5 5018850 738 99639 50188.5 5018850 -32432 32706 4968.66 496866 -126 126 -0.3 -30 -739 100 10729 99640 2.21921 299.21921 150.71921 15071.92192 2.21921 299.2192 150.71921 15071.92199 2.21921 299.21921 150.71921 15071.92100 2020-01-01 2020-01-02 2020-01-01 00:12:19 2020-01-02 03:40:40 2020-01-01 00:12:19.000 2020-01-02 03:40:40.000 739 99640 50189.5 5018950 739 99640 50189.5 5018950 -32431 32707 4969.66 496966 -125 127 0.7 70 -74 102 10064 99974 0.22222 300.22222 150.22222 15172.44444 0.22222 300.22223 150.22222 15172.4448 0.22222 300.22222 150.22222 15172.44422 2020-01-01 2020-01-02 2020-01-01 00:01:14 2020-01-02 03:46:14 2020-01-01 00:01:14.000 2020-01-02 03:46:14.000 74 99974 50024 5052424 74 99974 50024 5052424 -32495 32440 4603.009900990099 464904 -128 123 -4.99009900990099 -504 -740 100 10730 99641 2.22222 299.22222 150.72222 15072.22222 2.22222 299.22223 150.72222 15072.22258 2.22222 299.22222 150.72222 15072.22200 2020-01-01 2020-01-02 2020-01-01 00:12:20 2020-01-02 03:40:41 2020-01-01 00:12:20.000 2020-01-02 03:40:41.000 740 99641 50190.5 5019050 740 99641 50190.5 5019050 -32430 32708 4970.66 497066 -128 127 -0.86 -86 -741 100 10731 99642 2.22522 299.22522 150.72522 15072.52252 2.22522 299.22522 150.72522 15072.52223 2.22522 299.22522 150.72522 15072.52200 2020-01-01 2020-01-02 2020-01-01 00:12:21 2020-01-02 03:40:42 2020-01-01 00:12:21.000 2020-01-02 03:40:42.000 741 99642 50191.5 5019150 741 99642 50191.5 5019150 -32429 32709 4971.66 497166 -128 127 -2.42 -242 -742 100 10732 99643 2.22822 299.22822 150.72822 15072.82282 2.22822 299.22824 150.72822 15072.82286 2.22822 299.22822 150.72822 15072.82200 2020-01-01 2020-01-02 2020-01-01 00:12:22 2020-01-02 03:40:43 2020-01-01 00:12:22.000 2020-01-02 03:40:43.000 742 99643 50192.5 5019250 742 99643 50192.5 5019250 -32428 32710 4972.66 497266 -128 123 -3.98 -398 -743 100 10733 99644 2.23123 299.23123 150.73123 15073.12312 2.23123 299.23123 150.73123 15073.12316 2.23123 299.23123 150.73123 15073.12300 2020-01-01 2020-01-02 2020-01-01 00:12:23 2020-01-02 03:40:44 2020-01-01 00:12:23.000 2020-01-02 03:40:44.000 743 99644 50193.5 5019350 743 99644 50193.5 5019350 -32427 32711 4973.66 497366 -127 124 -2.98 -298 -744 100 10734 99645 2.23423 299.23423 150.73423 15073.42342 2.23423 299.23422 150.73423 15073.42345 2.23423 299.23423 150.73423 15073.42300 2020-01-01 2020-01-02 2020-01-01 00:12:24 2020-01-02 03:40:45 2020-01-01 00:12:24.000 2020-01-02 03:40:45.000 744 99645 50194.5 5019450 744 99645 50194.5 5019450 -32426 32712 4974.66 497466 -126 125 -1.98 -198 -745 100 10735 99646 2.23723 299.23723 150.73723 15073.72372 2.23723 299.23724 150.73724 15073.72405 2.23723 299.23723 150.73723 15073.72300 2020-01-01 2020-01-02 2020-01-01 00:12:25 2020-01-02 03:40:46 2020-01-01 00:12:25.000 2020-01-02 03:40:46.000 745 99646 50195.5 5019550 745 99646 50195.5 5019550 -32425 32713 4975.66 497566 -125 126 -0.98 -98 -746 100 10736 99647 2.24024 299.24024 150.74024 15074.02402 2.24024 299.24023 150.74023 15074.02373 2.24024 299.24024 150.74024 15074.02400 2020-01-01 2020-01-02 2020-01-01 00:12:26 2020-01-02 03:40:47 2020-01-01 00:12:26.000 2020-01-02 03:40:47.000 746 99647 50196.5 5019650 746 99647 50196.5 5019650 -32424 32714 4976.66 497666 -124 127 0.02 2 -747 100 10737 99648 2.24324 299.24324 150.74324 15074.32432 2.24324 299.24326 150.74324 15074.32433 2.24324 299.24324 150.74324 15074.32400 2020-01-01 2020-01-02 2020-01-01 00:12:27 2020-01-02 03:40:48 2020-01-01 00:12:27.000 2020-01-02 03:40:48.000 747 99648 50197.5 5019750 747 99648 50197.5 5019750 -32423 32715 4977.66 497766 -128 127 -1.54 -154 -748 100 10738 99649 2.24624 299.24624 150.74624 15074.62462 2.24624 299.24625 150.74624 15074.62463 2.24624 299.24624 150.74624 15074.62400 2020-01-01 2020-01-02 2020-01-01 00:12:28 2020-01-02 03:40:49 2020-01-01 00:12:28.000 2020-01-02 03:40:49.000 748 99649 50198.5 5019850 748 99649 50198.5 5019850 -32422 32716 4978.66 497866 -128 123 -3.1 -310 -749 100 10739 99650 2.24924 299.24924 150.74924 15074.92492 2.24924 299.24924 150.74924 15074.92492 2.24924 299.24924 150.74924 15074.92400 2020-01-01 2020-01-02 2020-01-01 00:12:29 2020-01-02 03:40:50 2020-01-01 00:12:29.000 2020-01-02 03:40:50.000 749 99650 50199.5 5019950 749 99650 50199.5 5019950 -32421 32717 4979.66 497966 -127 124 -2.1 -210 -75 102 10065 99975 0.22522 300.22522 150.22522 15172.74774 0.22522 300.22522 150.22522 15172.74745 0.22522 300.22522 150.22522 15172.74722 2020-01-01 2020-01-02 2020-01-01 00:01:15 2020-01-02 03:46:15 2020-01-01 00:01:15.000 2020-01-02 03:46:15.000 75 99975 50025 5052525 75 99975 50025 5052525 -32494 32441 4604.009900990099 465005 -127 124 -3.99009900990099 -403 -750 100 10740 99651 2.25225 299.25225 150.75225 15075.22522 2.25225 299.25226 150.75225 15075.22552 2.25225 299.25225 150.75225 15075.22500 2020-01-01 2020-01-02 2020-01-01 00:12:30 2020-01-02 03:40:51 2020-01-01 00:12:30.000 2020-01-02 03:40:51.000 750 99651 50200.5 5020050 750 99651 50200.5 5020050 -32420 32718 4980.66 498066 -126 125 -1.1 -110 -751 100 10741 99652 2.25525 299.25525 150.75525 15075.52552 2.25525 299.25525 150.75525 15075.5252 2.25525 299.25525 150.75525 15075.52500 2020-01-01 2020-01-02 2020-01-01 00:12:31 2020-01-02 03:40:52 2020-01-01 00:12:31.000 2020-01-02 03:40:52.000 751 99652 50201.5 5020150 751 99652 50201.5 5020150 -32419 32719 4981.66 498166 -125 126 -0.1 -10 -752 100 10742 99653 2.25825 299.25825 150.75825 15075.82582 2.25825 299.25827 150.75825 15075.8258 2.25825 299.25825 150.75825 15075.82500 2020-01-01 2020-01-02 2020-01-01 00:12:32 2020-01-02 03:40:53 2020-01-01 00:12:32.000 2020-01-02 03:40:53.000 752 99653 50202.5 5020250 752 99653 50202.5 5020250 -32418 32720 4982.66 498266 -124 127 0.9 90 -753 100 10743 99654 2.26126 299.26126 150.76126 15076.12612 2.26126 299.26126 150.76126 15076.12609 2.26126 299.26126 150.76126 15076.12600 2020-01-01 2020-01-02 2020-01-01 00:12:33 2020-01-02 03:40:54 2020-01-01 00:12:33.000 2020-01-02 03:40:54.000 753 99654 50203.5 5020350 753 99654 50203.5 5020350 -32417 32721 4983.66 498366 -128 127 -0.66 -66 -754 100 10744 99655 2.26426 299.26426 150.76426 15076.42642 2.26426 299.26425 150.76426 15076.4264 2.26426 299.26426 150.76426 15076.42600 2020-01-01 2020-01-02 2020-01-01 00:12:34 2020-01-02 03:40:55 2020-01-01 00:12:34.000 2020-01-02 03:40:55.000 754 99655 50204.5 5020450 754 99655 50204.5 5020450 -32416 32722 4984.66 498466 -128 123 -2.22 -222 -755 100 10745 99656 2.26726 299.26726 150.76726 15076.72672 2.26726 299.26727 150.76727 15076.72703 2.26726 299.26726 150.76726 15076.72600 2020-01-01 2020-01-02 2020-01-01 00:12:35 2020-01-02 03:40:56 2020-01-01 00:12:35.000 2020-01-02 03:40:56.000 755 99656 50205.5 5020550 755 99656 50205.5 5020550 -32415 32723 4985.66 498566 -127 124 -1.22 -122 -756 100 10746 99657 2.27027 299.27027 150.77027 15077.02702 2.27027 299.27026 150.77026 15077.02667 2.27027 299.27027 150.77027 15077.02700 2020-01-01 2020-01-02 2020-01-01 00:12:36 2020-01-02 03:40:57 2020-01-01 00:12:36.000 2020-01-02 03:40:57.000 756 99657 50206.5 5020650 756 99657 50206.5 5020650 -32414 32724 4986.66 498666 -126 125 -0.22 -22 -757 100 10747 99658 2.27327 299.27327 150.77327 15077.32732 2.27327 299.2733 150.77327 15077.32727 2.27327 299.27327 150.77327 15077.32700 2020-01-01 2020-01-02 2020-01-01 00:12:37 2020-01-02 03:40:58 2020-01-01 00:12:37.000 2020-01-02 03:40:58.000 757 99658 50207.5 5020750 757 99658 50207.5 5020750 -32413 32725 4987.66 498766 -125 126 0.78 78 -758 100 10748 99659 2.27627 299.27627 150.77627 15077.62762 2.27627 299.27628 150.77627 15077.62756 2.27627 299.27627 150.77627 15077.62700 2020-01-01 2020-01-02 2020-01-01 00:12:38 2020-01-02 03:40:59 2020-01-01 00:12:38.000 2020-01-02 03:40:59.000 758 99659 50208.5 5020850 758 99659 50208.5 5020850 -32412 32726 4988.66 498866 -124 127 1.78 178 -759 100 10749 99660 2.27927 299.27927 150.77927 15077.92792 2.27927 299.27927 150.77927 15077.92787 2.27927 299.27927 150.77927 15077.92700 2020-01-01 2020-01-02 2020-01-01 00:12:39 2020-01-02 03:41:00 2020-01-01 00:12:39.000 2020-01-02 03:41:00.000 759 99660 50209.5 5020950 759 99660 50209.5 5020950 -32411 32727 4989.66 498966 -128 127 0.22 22 -76 102 10066 99976 0.22822 300.22822 150.22822 15173.05105 0.22822 300.22824 150.22822 15173.05109 0.22822 300.22822 150.22822 15173.05022 2020-01-01 2020-01-02 2020-01-01 00:01:16 2020-01-02 03:46:16 2020-01-01 00:01:16.000 2020-01-02 03:46:16.000 76 99976 50026 5052626 76 99976 50026 5052626 -32493 32442 4605.009900990099 465106 -126 125 -2.99009900990099 -302 -760 100 10750 99661 2.28228 299.28228 150.78228 15078.22822 2.28228 299.2823 150.78228 15078.2285 2.28228 299.28228 150.78228 15078.22800 2020-01-01 2020-01-02 2020-01-01 00:12:40 2020-01-02 03:41:01 2020-01-01 00:12:40.000 2020-01-02 03:41:01.000 760 99661 50210.5 5021050 760 99661 50210.5 5021050 -32410 32728 4990.66 499066 -128 127 -1.34 -134 -761 100 10751 99662 2.28528 299.28528 150.78528 15078.52852 2.28528 299.28528 150.78528 15078.52814 2.28528 299.28528 150.78528 15078.52800 2020-01-01 2020-01-02 2020-01-01 00:12:41 2020-01-02 03:41:02 2020-01-01 00:12:41.000 2020-01-02 03:41:02.000 761 99662 50211.5 5021150 761 99662 50211.5 5021150 -32409 32729 4991.66 499166 -128 124 -2.9 -290 -762 100 10752 99663 2.28828 299.28828 150.78828 15078.82882 2.28828 299.2883 150.78828 15078.82889 2.28828 299.28828 150.78828 15078.82800 2020-01-01 2020-01-02 2020-01-01 00:12:42 2020-01-02 03:41:03 2020-01-01 00:12:42.000 2020-01-02 03:41:03.000 762 99663 50212.5 5021250 762 99663 50212.5 5021250 -32408 32730 4992.66 499266 -127 125 -1.9 -190 -763 100 10753 99664 2.29129 299.29129 150.79129 15079.12912 2.29129 299.2913 150.79129 15079.12904 2.29129 299.29129 150.79129 15079.12900 2020-01-01 2020-01-02 2020-01-01 00:12:43 2020-01-02 03:41:04 2020-01-01 00:12:43.000 2020-01-02 03:41:04.000 763 99664 50213.5 5021350 763 99664 50213.5 5021350 -32407 32731 4993.66 499366 -126 126 -0.9 -90 -764 100 10754 99665 2.29429 299.29429 150.79429 15079.42942 2.29429 299.29428 150.79429 15079.42933 2.29429 299.29429 150.79429 15079.42900 2020-01-01 2020-01-02 2020-01-01 00:12:44 2020-01-02 03:41:05 2020-01-01 00:12:44.000 2020-01-02 03:41:05.000 764 99665 50214.5 5021450 764 99665 50214.5 5021450 -32406 32732 4994.66 499466 -125 127 0.1 10 -765 100 10755 99666 2.29729 299.29729 150.79729 15079.72972 2.29729 299.2973 150.79729 15079.72996 2.29729 299.29729 150.79729 15079.72900 2020-01-01 2020-01-02 2020-01-01 00:12:45 2020-01-02 03:41:06 2020-01-01 00:12:45.000 2020-01-02 03:41:06.000 765 99666 50215.5 5021550 765 99666 50215.5 5021550 -32405 32733 4995.66 499566 -128 127 -1.46 -146 -766 100 10756 99667 2.3003 299.3003 150.8003 15080.03003 2.3003 299.3003 150.80029 15080.02961 2.30030 299.30030 150.80030 15080.03000 2020-01-01 2020-01-02 2020-01-01 00:12:46 2020-01-02 03:41:07 2020-01-01 00:12:46.000 2020-01-02 03:41:07.000 766 99667 50216.5 5021650 766 99667 50216.5 5021650 -32404 32734 4996.66 499666 -128 127 -3.02 -302 -767 100 10757 99668 2.3033 299.3033 150.8033 15080.33033 2.3033 299.3033 150.8033 15080.33036 2.30330 299.30330 150.80330 15080.33000 2020-01-01 2020-01-02 2020-01-01 00:12:47 2020-01-02 03:41:08 2020-01-01 00:12:47.000 2020-01-02 03:41:08.000 767 99668 50217.5 5021750 767 99668 50217.5 5021750 -32403 32735 4997.66 499766 -128 123 -4.58 -458 -768 100 10758 99669 2.3063 299.3063 150.8063 15080.63063 2.3063 299.3063 150.8063 15080.6305 2.30630 299.30630 150.80630 15080.63000 2020-01-01 2020-01-02 2020-01-01 00:12:48 2020-01-02 03:41:09 2020-01-01 00:12:48.000 2020-01-02 03:41:09.000 768 99669 50218.5 5021850 768 99669 50218.5 5021850 -32402 32736 4998.66 499866 -127 124 -3.58 -358 -769 100 10759 99670 2.3093 299.3093 150.8093 15080.93093 2.3093 299.3093 150.8093 15080.93084 2.30930 299.30930 150.80930 15080.93000 2020-01-01 2020-01-02 2020-01-01 00:12:49 2020-01-02 03:41:10 2020-01-01 00:12:49.000 2020-01-02 03:41:10.000 769 99670 50219.5 5021950 769 99670 50219.5 5021950 -32401 32737 4999.66 499966 -126 125 -2.58 -258 -77 102 10067 99977 0.23123 300.23123 150.23123 15173.35435 0.23123 300.23123 150.23123 15173.35439 0.23123 300.23123 150.23123 15173.35423 2020-01-01 2020-01-02 2020-01-01 00:01:17 2020-01-02 03:46:17 2020-01-01 00:01:17.000 2020-01-02 03:46:17.000 77 99977 50027 5052727 77 99977 50027 5052727 -32492 32443 4606.009900990099 465207 -125 126 -1.99009900990099 -201 -770 100 10760 99671 2.31231 299.31231 150.81231 15081.23123 2.31231 299.31232 150.81231 15081.23144 2.31231 299.31231 150.81231 15081.23100 2020-01-01 2020-01-02 2020-01-01 00:12:50 2020-01-02 03:41:11 2020-01-01 00:12:50.000 2020-01-02 03:41:11.000 770 99671 50220.5 5022050 770 99671 50220.5 5022050 -32400 32738 5000.66 500066 -125 126 -1.58 -158 -771 100 10761 99672 2.31531 299.31531 150.81531 15081.53153 2.31531 299.3153 150.81531 15081.53173 2.31531 299.31531 150.81531 15081.53100 2020-01-01 2020-01-02 2020-01-01 00:12:51 2020-01-02 03:41:12 2020-01-01 00:12:51.000 2020-01-02 03:41:12.000 771 99672 50221.5 5022150 771 99672 50221.5 5022150 -32399 32739 5001.66 500166 -124 127 -0.58 -58 -772 100 10762 99673 2.31831 299.31831 150.81831 15081.83183 2.31831 299.31833 150.81831 15081.83183 2.31831 299.31831 150.81831 15081.83100 2020-01-01 2020-01-02 2020-01-01 00:12:52 2020-01-02 03:41:13 2020-01-01 00:12:52.000 2020-01-02 03:41:13.000 772 99673 50222.5 5022250 772 99673 50222.5 5022250 -32398 32740 5002.66 500266 -128 127 -2.14 -214 -773 100 10763 99674 2.32132 299.32132 150.82132 15082.13213 2.32132 299.32132 150.82131 15082.13197 2.32132 299.32132 150.82132 15082.13200 2020-01-01 2020-01-02 2020-01-01 00:12:53 2020-01-02 03:41:14 2020-01-01 00:12:53.000 2020-01-02 03:41:14.000 773 99674 50223.5 5022350 773 99674 50223.5 5022350 -32397 32741 5003.66 500366 -128 123 -3.7 -370 -774 100 10764 99675 2.32432 299.32432 150.82432 15082.43243 2.32432 299.3243 150.82432 15082.43231 2.32432 299.32432 150.82432 15082.43200 2020-01-01 2020-01-02 2020-01-01 00:12:54 2020-01-02 03:41:15 2020-01-01 00:12:54.000 2020-01-02 03:41:15.000 774 99675 50224.5 5022450 774 99675 50224.5 5022450 -32396 32742 5004.66 500466 -127 124 -2.7 -270 -775 100 10765 99676 2.32732 299.32732 150.82732 15082.73273 2.32732 299.32733 150.82732 15082.73291 2.32732 299.32732 150.82732 15082.73200 2020-01-01 2020-01-02 2020-01-01 00:12:55 2020-01-02 03:41:16 2020-01-01 00:12:55.000 2020-01-02 03:41:16.000 775 99676 50225.5 5022550 775 99676 50225.5 5022550 -32395 32743 5005.66 500566 -126 125 -1.7 -170 -776 100 10766 99677 2.33033 299.33033 150.83033 15083.03303 2.33033 299.33032 150.83033 15083.0332 2.33033 299.33033 150.83033 15083.03300 2020-01-01 2020-01-02 2020-01-01 00:12:56 2020-01-02 03:41:17 2020-01-01 00:12:56.000 2020-01-02 03:41:17.000 776 99677 50226.5 5022650 776 99677 50226.5 5022650 -32394 32744 5006.66 500666 -125 126 -0.7 -70 +739 100 10729 99640 2.21921 299.21921 150.71921 15071.92192 2.21921 299.2192 150.71921 15071.92199 2.21921 299.21921 150.7192099999999 15071.92100 2020-01-01 2020-01-02 2020-01-01 00:12:19 2020-01-02 03:40:40 2020-01-01 00:12:19.000 2020-01-02 03:40:40.000 739 99640 50189.5 5018950 739 99640 50189.5 5018950 -32431 32707 4969.66 496966 -125 127 0.7 70 +74 102 10064 99974 0.22222 300.22222 150.22222 15172.44444 0.22222 300.22223 150.22222 15172.4448 0.22222 300.22222 150.22221999999977 15172.44422 2020-01-01 2020-01-02 2020-01-01 00:01:14 2020-01-02 03:46:14 2020-01-01 00:01:14.000 2020-01-02 03:46:14.000 74 99974 50024 5052424 74 99974 50024 5052424 -32495 32440 4603.009900990099 464904 -128 123 -4.99009900990099 -504 +740 100 10730 99641 2.22222 299.22222 150.72222 15072.22222 2.22222 299.22223 150.72222 15072.22258 2.22222 299.22222 150.72221999999977 15072.22200 2020-01-01 2020-01-02 2020-01-01 00:12:20 2020-01-02 03:40:41 2020-01-01 00:12:20.000 2020-01-02 03:40:41.000 740 99641 50190.5 5019050 740 99641 50190.5 5019050 -32430 32708 4970.66 497066 -128 127 -0.86 -86 +741 100 10731 99642 2.22522 299.22522 150.72522 15072.52252 2.22522 299.22522 150.72522 15072.52223 2.22522 299.22522 150.72522000000015 15072.52200 2020-01-01 2020-01-02 2020-01-01 00:12:21 2020-01-02 03:40:42 2020-01-01 00:12:21.000 2020-01-02 03:40:42.000 741 99642 50191.5 5019150 741 99642 50191.5 5019150 -32429 32709 4971.66 497166 -128 127 -2.42 -242 +742 100 10732 99643 2.22822 299.22822 150.72822 15072.82282 2.22822 299.22824 150.72822 15072.82286 2.22822 299.22822 150.72822000000028 15072.82200 2020-01-01 2020-01-02 2020-01-01 00:12:22 2020-01-02 03:40:43 2020-01-01 00:12:22.000 2020-01-02 03:40:43.000 742 99643 50192.5 5019250 742 99643 50192.5 5019250 -32428 32710 4972.66 497266 -128 123 -3.98 -398 +743 100 10733 99644 2.23123 299.23123 150.73123 15073.12312 2.23123 299.23123 150.73123 15073.12316 2.23123 299.23123 150.73122999999993 15073.12300 2020-01-01 2020-01-02 2020-01-01 00:12:23 2020-01-02 03:40:44 2020-01-01 00:12:23.000 2020-01-02 03:40:44.000 743 99644 50193.5 5019350 743 99644 50193.5 5019350 -32427 32711 4973.66 497366 -127 124 -2.98 -298 +744 100 10734 99645 2.23423 299.23423 150.73423 15073.42342 2.23423 299.23422 150.73423 15073.42345 2.23423 299.23423 150.73423000000003 15073.42300 2020-01-01 2020-01-02 2020-01-01 00:12:24 2020-01-02 03:40:45 2020-01-01 00:12:24.000 2020-01-02 03:40:45.000 744 99645 50194.5 5019450 744 99645 50194.5 5019450 -32426 32712 4974.66 497466 -126 125 -1.98 -198 +745 100 10735 99646 2.23723 299.23723 150.73723 15073.72372 2.23723 299.23724 150.73724 15073.72405 2.23723 299.23723 150.73723000000012 15073.72300 2020-01-01 2020-01-02 2020-01-01 00:12:25 2020-01-02 03:40:46 2020-01-01 00:12:25.000 2020-01-02 03:40:46.000 745 99646 50195.5 5019550 745 99646 50195.5 5019550 -32425 32713 4975.66 497566 -125 126 -0.98 -98 +746 100 10736 99647 2.24024 299.24024 150.74024 15074.02402 2.24024 299.24023 150.74023 15074.02373 2.24024 299.24024 150.74023999999977 15074.02400 2020-01-01 2020-01-02 2020-01-01 00:12:26 2020-01-02 03:40:47 2020-01-01 00:12:26.000 2020-01-02 03:40:47.000 746 99647 50196.5 5019650 746 99647 50196.5 5019650 -32424 32714 4976.66 497666 -124 127 0.02 2 +747 100 10737 99648 2.24324 299.24324 150.74324 15074.32432 2.24324 299.24326 150.74324 15074.32433 2.24324 299.24324 150.74323999999982 15074.32400 2020-01-01 2020-01-02 2020-01-01 00:12:27 2020-01-02 03:40:48 2020-01-01 00:12:27.000 2020-01-02 03:40:48.000 747 99648 50197.5 5019750 747 99648 50197.5 5019750 -32423 32715 4977.66 497766 -128 127 -1.54 -154 +748 100 10738 99649 2.24624 299.24624 150.74624 15074.62462 2.24624 299.24625 150.74624 15074.62463 2.24624 299.24624 150.74624000000028 15074.62400 2020-01-01 2020-01-02 2020-01-01 00:12:28 2020-01-02 03:40:49 2020-01-01 00:12:28.000 2020-01-02 03:40:49.000 748 99649 50198.5 5019850 748 99649 50198.5 5019850 -32422 32716 4978.66 497866 -128 123 -3.1 -310 +749 100 10739 99650 2.24924 299.24924 150.74924 15074.92492 2.24924 299.24924 150.74924 15074.92492 2.24924 299.24924 150.7492399999998 15074.92400 2020-01-01 2020-01-02 2020-01-01 00:12:29 2020-01-02 03:40:50 2020-01-01 00:12:29.000 2020-01-02 03:40:50.000 749 99650 50199.5 5019950 749 99650 50199.5 5019950 -32421 32717 4979.66 497966 -127 124 -2.1 -210 +75 102 10065 99975 0.22522 300.22522 150.22522 15172.74774 0.22522 300.22522 150.22522 15172.74745 0.22522 300.22522 150.22522000000015 15172.74722 2020-01-01 2020-01-02 2020-01-01 00:01:15 2020-01-02 03:46:15 2020-01-01 00:01:15.000 2020-01-02 03:46:15.000 75 99975 50025 5052525 75 99975 50025 5052525 -32494 32441 4604.009900990099 465005 -127 124 -3.99009900990099 -403 +750 100 10740 99651 2.25225 299.25225 150.75225 15075.22522 2.25225 299.25226 150.75225 15075.22552 2.25225 299.25225 150.75224999999966 15075.22500 2020-01-01 2020-01-02 2020-01-01 00:12:30 2020-01-02 03:40:51 2020-01-01 00:12:30.000 2020-01-02 03:40:51.000 750 99651 50200.5 5020050 750 99651 50200.5 5020050 -32420 32718 4980.66 498066 -126 125 -1.1 -110 +751 100 10741 99652 2.25525 299.25525 150.75525 15075.52552 2.25525 299.25525 150.75525 15075.5252 2.25525 299.25525 150.75525000000013 15075.52500 2020-01-01 2020-01-02 2020-01-01 00:12:31 2020-01-02 03:40:52 2020-01-01 00:12:31.000 2020-01-02 03:40:52.000 751 99652 50201.5 5020150 751 99652 50201.5 5020150 -32419 32719 4981.66 498166 -125 126 -0.1 -10 +752 100 10742 99653 2.25825 299.25825 150.75825 15075.82582 2.25825 299.25827 150.75825 15075.8258 2.25825 299.25825 150.75825000000017 15075.82500 2020-01-01 2020-01-02 2020-01-01 00:12:32 2020-01-02 03:40:53 2020-01-01 00:12:32.000 2020-01-02 03:40:53.000 752 99653 50202.5 5020250 752 99653 50202.5 5020250 -32418 32720 4982.66 498266 -124 127 0.9 90 +753 100 10743 99654 2.26126 299.26126 150.76126 15076.12612 2.26126 299.26126 150.76126 15076.12609 2.26126 299.26126 150.7612599999999 15076.12600 2020-01-01 2020-01-02 2020-01-01 00:12:33 2020-01-02 03:40:54 2020-01-01 00:12:33.000 2020-01-02 03:40:54.000 753 99654 50203.5 5020350 753 99654 50203.5 5020350 -32417 32721 4983.66 498366 -128 127 -0.66 -66 +754 100 10744 99655 2.26426 299.26426 150.76426 15076.42642 2.26426 299.26425 150.76426 15076.4264 2.26426 299.26426 150.76425999999995 15076.42600 2020-01-01 2020-01-02 2020-01-01 00:12:34 2020-01-02 03:40:55 2020-01-01 00:12:34.000 2020-01-02 03:40:55.000 754 99655 50204.5 5020450 754 99655 50204.5 5020450 -32416 32722 4984.66 498466 -128 123 -2.22 -222 +755 100 10745 99656 2.26726 299.26726 150.76726 15076.72672 2.26726 299.26727 150.76727 15076.72703 2.26726 299.26726 150.76726000000002 15076.72600 2020-01-01 2020-01-02 2020-01-01 00:12:35 2020-01-02 03:40:56 2020-01-01 00:12:35.000 2020-01-02 03:40:56.000 755 99656 50205.5 5020550 755 99656 50205.5 5020550 -32415 32723 4985.66 498566 -127 124 -1.22 -122 +756 100 10746 99657 2.27027 299.27027 150.77027 15077.02702 2.27027 299.27026 150.77026 15077.02667 2.27027 299.27027 150.77027000000027 15077.02700 2020-01-01 2020-01-02 2020-01-01 00:12:36 2020-01-02 03:40:57 2020-01-01 00:12:36.000 2020-01-02 03:40:57.000 756 99657 50206.5 5020650 756 99657 50206.5 5020650 -32414 32724 4986.66 498666 -126 125 -0.22 -22 +757 100 10747 99658 2.27327 299.27327 150.77327 15077.32732 2.27327 299.2733 150.77327 15077.32727 2.27327 299.27327 150.7732699999998 15077.32700 2020-01-01 2020-01-02 2020-01-01 00:12:37 2020-01-02 03:40:58 2020-01-01 00:12:37.000 2020-01-02 03:40:58.000 757 99658 50207.5 5020750 757 99658 50207.5 5020750 -32413 32725 4987.66 498766 -125 126 0.78 78 +758 100 10748 99659 2.27627 299.27627 150.77627 15077.62762 2.27627 299.27628 150.77627 15077.62756 2.27627 299.27627 150.77627000000018 15077.62700 2020-01-01 2020-01-02 2020-01-01 00:12:38 2020-01-02 03:40:59 2020-01-01 00:12:38.000 2020-01-02 03:40:59.000 758 99659 50208.5 5020850 758 99659 50208.5 5020850 -32412 32726 4988.66 498866 -124 127 1.78 178 +759 100 10749 99660 2.27927 299.27927 150.77927 15077.92792 2.27927 299.27927 150.77927 15077.92787 2.27927 299.27927 150.7792699999997 15077.92700 2020-01-01 2020-01-02 2020-01-01 00:12:39 2020-01-02 03:41:00 2020-01-01 00:12:39.000 2020-01-02 03:41:00.000 759 99660 50209.5 5020950 759 99660 50209.5 5020950 -32411 32727 4989.66 498966 -128 127 0.22 22 +76 102 10066 99976 0.22822 300.22822 150.22822 15173.05105 0.22822 300.22824 150.22822 15173.05109 0.22822 300.22822 150.22822000000028 15173.05022 2020-01-01 2020-01-02 2020-01-01 00:01:16 2020-01-02 03:46:16 2020-01-01 00:01:16.000 2020-01-02 03:46:16.000 76 99976 50026 5052626 76 99976 50026 5052626 -32493 32442 4605.009900990099 465106 -126 125 -2.99009900990099 -302 +760 100 10750 99661 2.28228 299.28228 150.78228 15078.22822 2.28228 299.2823 150.78228 15078.2285 2.28228 299.28228 150.78227999999996 15078.22800 2020-01-01 2020-01-02 2020-01-01 00:12:40 2020-01-02 03:41:01 2020-01-01 00:12:40.000 2020-01-02 03:41:01.000 760 99661 50210.5 5021050 760 99661 50210.5 5021050 -32410 32728 4990.66 499066 -128 127 -1.34 -134 +761 100 10751 99662 2.28528 299.28528 150.78528 15078.52852 2.28528 299.28528 150.78528 15078.52814 2.28528 299.28528 150.78528000000003 15078.52800 2020-01-01 2020-01-02 2020-01-01 00:12:41 2020-01-02 03:41:02 2020-01-01 00:12:41.000 2020-01-02 03:41:02.000 761 99662 50211.5 5021150 761 99662 50211.5 5021150 -32409 32729 4991.66 499166 -128 124 -2.9 -290 +762 100 10752 99663 2.28828 299.28828 150.78828 15078.82882 2.28828 299.2883 150.78828 15078.82889 2.28828 299.28828 150.78828000000013 15078.82800 2020-01-01 2020-01-02 2020-01-01 00:12:42 2020-01-02 03:41:03 2020-01-01 00:12:42.000 2020-01-02 03:41:03.000 762 99663 50212.5 5021250 762 99663 50212.5 5021250 -32408 32730 4992.66 499266 -127 125 -1.9 -190 +763 100 10753 99664 2.29129 299.29129 150.79129 15079.12912 2.29129 299.2913 150.79129 15079.12904 2.29129 299.29129 150.7912899999998 15079.12900 2020-01-01 2020-01-02 2020-01-01 00:12:43 2020-01-02 03:41:04 2020-01-01 00:12:43.000 2020-01-02 03:41:04.000 763 99664 50213.5 5021350 763 99664 50213.5 5021350 -32407 32731 4993.66 499366 -126 126 -0.9 -90 +764 100 10754 99665 2.29429 299.29429 150.79429 15079.42942 2.29429 299.29428 150.79429 15079.42933 2.29429 299.29429 150.79428999999985 15079.42900 2020-01-01 2020-01-02 2020-01-01 00:12:44 2020-01-02 03:41:05 2020-01-01 00:12:44.000 2020-01-02 03:41:05.000 764 99665 50214.5 5021450 764 99665 50214.5 5021450 -32406 32732 4994.66 499466 -125 127 0.1 10 +765 100 10755 99666 2.29729 299.29729 150.79729 15079.72972 2.29729 299.2973 150.79729 15079.72996 2.29729 299.29729 150.79729000000032 15079.72900 2020-01-01 2020-01-02 2020-01-01 00:12:45 2020-01-02 03:41:06 2020-01-01 00:12:45.000 2020-01-02 03:41:06.000 765 99666 50215.5 5021550 765 99666 50215.5 5021550 -32405 32733 4995.66 499566 -128 127 -1.46 -146 +766 100 10756 99667 2.3003 299.3003 150.8003 15080.03003 2.3003 299.3003 150.80029 15080.02961 2.30030 299.30030 150.8003000000002 15080.03000 2020-01-01 2020-01-02 2020-01-01 00:12:46 2020-01-02 03:41:07 2020-01-01 00:12:46.000 2020-01-02 03:41:07.000 766 99667 50216.5 5021650 766 99667 50216.5 5021650 -32404 32734 4996.66 499666 -128 127 -3.02 -302 +767 100 10757 99668 2.3033 299.3033 150.8033 15080.33033 2.3033 299.3033 150.8033 15080.33036 2.30330 299.30330 150.8032999999997 15080.33000 2020-01-01 2020-01-02 2020-01-01 00:12:47 2020-01-02 03:41:08 2020-01-01 00:12:47.000 2020-01-02 03:41:08.000 767 99668 50217.5 5021750 767 99668 50217.5 5021750 -32403 32735 4997.66 499766 -128 123 -4.58 -458 +768 100 10758 99669 2.3063 299.3063 150.8063 15080.63063 2.3063 299.3063 150.8063 15080.6305 2.30630 299.30630 150.80630000000016 15080.63000 2020-01-01 2020-01-02 2020-01-01 00:12:48 2020-01-02 03:41:09 2020-01-01 00:12:48.000 2020-01-02 03:41:09.000 768 99669 50218.5 5021850 768 99669 50218.5 5021850 -32402 32736 4998.66 499866 -127 124 -3.58 -358 +769 100 10759 99670 2.3093 299.3093 150.8093 15080.93093 2.3093 299.3093 150.8093 15080.93084 2.30930 299.30930 150.8093000000002 15080.93000 2020-01-01 2020-01-02 2020-01-01 00:12:49 2020-01-02 03:41:10 2020-01-01 00:12:49.000 2020-01-02 03:41:10.000 769 99670 50219.5 5021950 769 99670 50219.5 5021950 -32401 32737 4999.66 499966 -126 125 -2.58 -258 +77 102 10067 99977 0.23123 300.23123 150.23123 15173.35435 0.23123 300.23123 150.23123 15173.35439 0.23123 300.23123 150.23122999999993 15173.35423 2020-01-01 2020-01-02 2020-01-01 00:01:17 2020-01-02 03:46:17 2020-01-01 00:01:17.000 2020-01-02 03:46:17.000 77 99977 50027 5052727 77 99977 50027 5052727 -32492 32443 4606.009900990099 465207 -125 126 -1.99009900990099 -201 +770 100 10760 99671 2.31231 299.31231 150.81231 15081.23123 2.31231 299.31232 150.81231 15081.23144 2.31231 299.31231 150.81230999999988 15081.23100 2020-01-01 2020-01-02 2020-01-01 00:12:50 2020-01-02 03:41:11 2020-01-01 00:12:50.000 2020-01-02 03:41:11.000 770 99671 50220.5 5022050 770 99671 50220.5 5022050 -32400 32738 5000.66 500066 -125 126 -1.58 -158 +771 100 10761 99672 2.31531 299.31531 150.81531 15081.53153 2.31531 299.3153 150.81531 15081.53173 2.31531 299.31531 150.81530999999998 15081.53100 2020-01-01 2020-01-02 2020-01-01 00:12:51 2020-01-02 03:41:12 2020-01-01 00:12:51.000 2020-01-02 03:41:12.000 771 99672 50221.5 5022150 771 99672 50221.5 5022150 -32399 32739 5001.66 500166 -124 127 -0.58 -58 +772 100 10762 99673 2.31831 299.31831 150.81831 15081.83183 2.31831 299.31833 150.81831 15081.83183 2.31831 299.31831 150.81831000000005 15081.83100 2020-01-01 2020-01-02 2020-01-01 00:12:52 2020-01-02 03:41:13 2020-01-01 00:12:52.000 2020-01-02 03:41:13.000 772 99673 50222.5 5022250 772 99673 50222.5 5022250 -32398 32740 5002.66 500266 -128 127 -2.14 -214 +773 100 10763 99674 2.32132 299.32132 150.82132 15082.13213 2.32132 299.32132 150.82131 15082.13197 2.32132 299.32132 150.82131999999973 15082.13200 2020-01-01 2020-01-02 2020-01-01 00:12:53 2020-01-02 03:41:14 2020-01-01 00:12:53.000 2020-01-02 03:41:14.000 773 99674 50223.5 5022350 773 99674 50223.5 5022350 -32397 32741 5003.66 500366 -128 123 -3.7 -370 +774 100 10764 99675 2.32432 299.32432 150.82432 15082.43243 2.32432 299.3243 150.82432 15082.43231 2.32432 299.32432 150.82431999999983 15082.43200 2020-01-01 2020-01-02 2020-01-01 00:12:54 2020-01-02 03:41:15 2020-01-01 00:12:54.000 2020-01-02 03:41:15.000 774 99675 50224.5 5022450 774 99675 50224.5 5022450 -32396 32742 5004.66 500466 -127 124 -2.7 -270 +775 100 10765 99676 2.32732 299.32732 150.82732 15082.73273 2.32732 299.32733 150.82732 15082.73291 2.32732 299.32732 150.8273200000002 15082.73200 2020-01-01 2020-01-02 2020-01-01 00:12:55 2020-01-02 03:41:16 2020-01-01 00:12:55.000 2020-01-02 03:41:16.000 775 99676 50225.5 5022550 775 99676 50225.5 5022550 -32395 32743 5005.66 500566 -126 125 -1.7 -170 +776 100 10766 99677 2.33033 299.33033 150.83033 15083.03303 2.33033 299.33032 150.83033 15083.0332 2.33033 299.33033 150.8303300000001 15083.03300 2020-01-01 2020-01-02 2020-01-01 00:12:56 2020-01-02 03:41:17 2020-01-01 00:12:56.000 2020-01-02 03:41:17.000 776 99677 50226.5 5022650 776 99677 50226.5 5022650 -32394 32744 5006.66 500666 -125 126 -0.7 -70 777 100 10767 99678 2.33333 299.33333 150.83333 15083.33333 2.33333 299.33334 150.83333 15083.3333 2.33333 299.33333 150.83333 15083.33300 2020-01-01 2020-01-02 2020-01-01 00:12:57 2020-01-02 03:41:18 2020-01-01 00:12:57.000 2020-01-02 03:41:18.000 777 99678 50227.5 5022750 777 99678 50227.5 5022750 -32393 32745 5007.66 500766 -124 127 0.3 30 -778 100 10768 99679 2.33633 299.33633 150.83633 15083.63363 2.33633 299.33633 150.83633 15083.63348 2.33633 299.33633 150.83633 15083.63300 2020-01-01 2020-01-02 2020-01-01 00:12:58 2020-01-02 03:41:19 2020-01-01 00:12:58.000 2020-01-02 03:41:19.000 778 99679 50228.5 5022850 778 99679 50228.5 5022850 -32392 32746 5008.66 500866 -128 127 -1.26 -126 -779 100 10769 99680 2.33933 299.33933 150.83933 15083.93393 2.33933 299.33932 150.83933 15083.93378 2.33933 299.33933 150.83933 15083.93300 2020-01-01 2020-01-02 2020-01-01 00:12:59 2020-01-02 03:41:20 2020-01-01 00:12:59.000 2020-01-02 03:41:20.000 779 99680 50229.5 5022950 779 99680 50229.5 5022950 -32391 32747 5009.66 500966 -128 123 -2.82 -282 +778 100 10768 99679 2.33633 299.33633 150.83633 15083.63363 2.33633 299.33633 150.83633 15083.63348 2.33633 299.33633 150.83633000000006 15083.63300 2020-01-01 2020-01-02 2020-01-01 00:12:58 2020-01-02 03:41:19 2020-01-01 00:12:58.000 2020-01-02 03:41:19.000 778 99679 50228.5 5022850 778 99679 50228.5 5022850 -32392 32746 5008.66 500866 -128 127 -1.26 -126 +779 100 10769 99680 2.33933 299.33933 150.83933 15083.93393 2.33933 299.33932 150.83933 15083.93378 2.33933 299.33933 150.8393300000001 15083.93300 2020-01-01 2020-01-02 2020-01-01 00:12:59 2020-01-02 03:41:20 2020-01-01 00:12:59.000 2020-01-02 03:41:20.000 779 99680 50229.5 5022950 779 99680 50229.5 5022950 -32391 32747 5009.66 500966 -128 123 -2.82 -282 78 102 10068 99978 0.23423 300.23423 150.23423 15173.65765 0.23423 300.23422 150.23423 15173.65769 0.23423 300.23423 150.23423 15173.65723 2020-01-01 2020-01-02 2020-01-01 00:01:18 2020-01-02 03:46:18 2020-01-01 00:01:18.000 2020-01-02 03:46:18.000 78 99978 50028 5052828 78 99978 50028 5052828 -32491 32444 4607.009900990099 465308 -124 127 -0.9900990099009901 -100 -780 100 10770 99681 2.34234 299.34234 150.84234 15084.23423 2.34234 299.34235 150.84234 15084.23437 2.34234 299.34234 150.84234 15084.23400 2020-01-01 2020-01-02 2020-01-01 00:13:00 2020-01-02 03:41:21 2020-01-01 00:13:00.000 2020-01-02 03:41:21.000 780 99681 50230.5 5023050 780 99681 50230.5 5023050 -32390 32748 5010.66 501066 -127 124 -1.82 -182 -781 100 10771 99682 2.34534 299.34534 150.84534 15084.53453 2.34534 299.34534 150.84534 15084.53467 2.34534 299.34534 150.84534 15084.53400 2020-01-01 2020-01-02 2020-01-01 00:13:01 2020-01-02 03:41:22 2020-01-01 00:13:01.000 2020-01-02 03:41:22.000 781 99682 50231.5 5023150 781 99682 50231.5 5023150 -32389 32749 5011.66 501166 -126 125 -0.82 -82 -782 100 10772 99683 2.34834 299.34834 150.84834 15084.83483 2.34834 299.34836 150.84834 15084.83477 2.34834 299.34834 150.84834 15084.83400 2020-01-01 2020-01-02 2020-01-01 00:13:02 2020-01-02 03:41:23 2020-01-01 00:13:02.000 2020-01-02 03:41:23.000 782 99683 50232.5 5023250 782 99683 50232.5 5023250 -32388 32750 5012.66 501266 -125 126 0.18 18 -783 100 10773 99684 2.35135 299.35135 150.85135 15085.13513 2.35135 299.35135 150.85134 15085.13495 2.35135 299.35135 150.85135 15085.13500 2020-01-01 2020-01-02 2020-01-01 00:13:03 2020-01-02 03:41:24 2020-01-01 00:13:03.000 2020-01-02 03:41:24.000 783 99684 50233.5 5023350 783 99684 50233.5 5023350 -32387 32751 5013.66 501366 -124 127 1.18 118 -784 100 10774 99685 2.35435 299.35435 150.85435 15085.43543 2.35435 299.35434 150.85435 15085.43525 2.35435 299.35435 150.85435 15085.43500 2020-01-01 2020-01-02 2020-01-01 00:13:04 2020-01-02 03:41:25 2020-01-01 00:13:04.000 2020-01-02 03:41:25.000 784 99685 50234.5 5023450 784 99685 50234.5 5023450 -32386 32752 5014.66 501466 -128 127 -0.38 -38 -785 100 10775 99686 2.35735 299.35735 150.85735 15085.73573 2.35735 299.35736 150.85736 15085.736 2.35735 299.35735 150.85735 15085.73500 2020-01-01 2020-01-02 2020-01-01 00:13:05 2020-01-02 03:41:26 2020-01-01 00:13:05.000 2020-01-02 03:41:26.000 785 99686 50235.5 5023550 785 99686 50235.5 5023550 -32385 32753 5015.66 501566 -128 127 -1.94 -194 -786 100 10776 99687 2.36036 299.36036 150.86036 15086.03603 2.36036 299.36035 150.86036 15086.03614 2.36036 299.36036 150.86036 15086.03600 2020-01-01 2020-01-02 2020-01-01 00:13:06 2020-01-02 03:41:27 2020-01-01 00:13:06.000 2020-01-02 03:41:27.000 786 99687 50236.5 5023650 786 99687 50236.5 5023650 -32384 32754 5016.66 501666 -128 124 -3.5 -350 -787 100 10777 99688 2.36336 299.36336 150.86336 15086.33633 2.36336 299.36337 150.86336 15086.33628 2.36336 299.36336 150.86336 15086.33600 2020-01-01 2020-01-02 2020-01-01 00:13:07 2020-01-02 03:41:28 2020-01-01 00:13:07.000 2020-01-02 03:41:28.000 787 99688 50237.5 5023750 787 99688 50237.5 5023750 -32383 32755 5017.66 501766 -127 125 -2.5 -250 +780 100 10770 99681 2.34234 299.34234 150.84234 15084.23423 2.34234 299.34235 150.84234 15084.23437 2.34234 299.34234 150.84233999999995 15084.23400 2020-01-01 2020-01-02 2020-01-01 00:13:00 2020-01-02 03:41:21 2020-01-01 00:13:00.000 2020-01-02 03:41:21.000 780 99681 50230.5 5023050 780 99681 50230.5 5023050 -32390 32748 5010.66 501066 -127 124 -1.82 -182 +781 100 10771 99682 2.34534 299.34534 150.84534 15084.53453 2.34534 299.34534 150.84534 15084.53467 2.34534 299.34534 150.84533999999994 15084.53400 2020-01-01 2020-01-02 2020-01-01 00:13:01 2020-01-02 03:41:22 2020-01-01 00:13:01.000 2020-01-02 03:41:22.000 781 99682 50231.5 5023150 781 99682 50231.5 5023150 -32389 32749 5011.66 501166 -126 125 -0.82 -82 +782 100 10772 99683 2.34834 299.34834 150.84834 15084.83483 2.34834 299.34836 150.84834 15084.83477 2.34834 299.34834 150.84834000000018 15084.83400 2020-01-01 2020-01-02 2020-01-01 00:13:02 2020-01-02 03:41:23 2020-01-01 00:13:02.000 2020-01-02 03:41:23.000 782 99683 50232.5 5023250 782 99683 50232.5 5023250 -32388 32750 5012.66 501266 -125 126 0.18 18 +783 100 10773 99684 2.35135 299.35135 150.85135 15085.13513 2.35135 299.35135 150.85134 15085.13495 2.35135 299.35135 150.85135000000005 15085.13500 2020-01-01 2020-01-02 2020-01-01 00:13:03 2020-01-02 03:41:24 2020-01-01 00:13:03.000 2020-01-02 03:41:24.000 783 99684 50233.5 5023350 783 99684 50233.5 5023350 -32387 32751 5013.66 501366 -124 127 1.18 118 +784 100 10774 99685 2.35435 299.35435 150.85435 15085.43543 2.35435 299.35434 150.85435 15085.43525 2.35435 299.35435 150.8543499999999 15085.43500 2020-01-01 2020-01-02 2020-01-01 00:13:04 2020-01-02 03:41:25 2020-01-01 00:13:04.000 2020-01-02 03:41:25.000 784 99685 50234.5 5023450 784 99685 50234.5 5023450 -32386 32752 5014.66 501466 -128 127 -0.38 -38 +785 100 10775 99686 2.35735 299.35735 150.85735 15085.73573 2.35735 299.35736 150.85736 15085.736 2.35735 299.35735 150.8573500000001 15085.73500 2020-01-01 2020-01-02 2020-01-01 00:13:05 2020-01-02 03:41:26 2020-01-01 00:13:05.000 2020-01-02 03:41:26.000 785 99686 50235.5 5023550 785 99686 50235.5 5023550 -32385 32753 5015.66 501566 -128 127 -1.94 -194 +786 100 10776 99687 2.36036 299.36036 150.86036 15086.03603 2.36036 299.36035 150.86036 15086.03614 2.36036 299.36036 150.86036000000001 15086.03600 2020-01-01 2020-01-02 2020-01-01 00:13:06 2020-01-02 03:41:27 2020-01-01 00:13:06.000 2020-01-02 03:41:27.000 786 99687 50236.5 5023650 786 99687 50236.5 5023650 -32384 32754 5016.66 501666 -128 124 -3.5 -350 +787 100 10777 99688 2.36336 299.36336 150.86336 15086.33633 2.36336 299.36337 150.86336 15086.33628 2.36336 299.36336 150.86335999999994 15086.33600 2020-01-01 2020-01-02 2020-01-01 00:13:07 2020-01-02 03:41:28 2020-01-01 00:13:07.000 2020-01-02 03:41:28.000 787 99688 50237.5 5023750 787 99688 50237.5 5023750 -32383 32755 5017.66 501766 -127 125 -2.5 -250 788 100 10778 99689 2.36636 299.36636 150.86636 15086.63663 2.36636 299.36636 150.86636 15086.63641 2.36636 299.36636 150.86636 15086.63600 2020-01-01 2020-01-02 2020-01-01 00:13:08 2020-01-02 03:41:29 2020-01-01 00:13:08.000 2020-01-02 03:41:29.000 788 99689 50238.5 5023850 788 99689 50238.5 5023850 -32382 32756 5018.66 501866 -126 126 -1.5 -150 -789 100 10779 99690 2.36936 299.36936 150.86936 15086.93693 2.36936 299.36935 150.86936 15086.93672 2.36936 299.36936 150.86936 15086.93600 2020-01-01 2020-01-02 2020-01-01 00:13:09 2020-01-02 03:41:30 2020-01-01 00:13:09.000 2020-01-02 03:41:30.000 789 99690 50239.5 5023950 789 99690 50239.5 5023950 -32381 32757 5019.66 501966 -125 127 -0.5 -50 -79 102 10069 99979 0.23723 300.23723 150.23723 15173.96096 0.23723 300.23724 150.23724 15173.96129 0.23723 300.23723 150.23723 15173.96023 2020-01-01 2020-01-02 2020-01-01 00:01:19 2020-01-02 03:46:19 2020-01-01 00:01:19.000 2020-01-02 03:46:19.000 79 99979 50029 5052929 79 99979 50029 5052929 -32490 32445 4608.009900990099 465409 -128 127 -2.5247524752475248 -255 -790 100 10780 99691 2.37237 299.37237 150.87237 15087.23723 2.37237 299.37238 150.87237 15087.23747 2.37237 299.37237 150.87237 15087.23700 2020-01-01 2020-01-02 2020-01-01 00:13:10 2020-01-02 03:41:31 2020-01-01 00:13:10.000 2020-01-02 03:41:31.000 790 99691 50240.5 5024050 790 99691 50240.5 5024050 -32380 32758 5020.66 502066 -128 127 -2.06 -206 -791 100 10781 99692 2.37537 299.37537 150.87537 15087.53753 2.37537 299.37537 150.87537 15087.53761 2.37537 299.37537 150.87537 15087.53700 2020-01-01 2020-01-02 2020-01-01 00:13:11 2020-01-02 03:41:32 2020-01-01 00:13:11.000 2020-01-02 03:41:32.000 791 99692 50241.5 5024150 791 99692 50241.5 5024150 -32379 32759 5021.66 502166 -128 127 -3.62 -362 -792 100 10782 99693 2.37837 299.37837 150.87837 15087.83783 2.37837 299.3784 150.87837 15087.83775 2.37837 299.37837 150.87837 15087.83700 2020-01-01 2020-01-02 2020-01-01 00:13:12 2020-01-02 03:41:33 2020-01-01 00:13:12.000 2020-01-02 03:41:33.000 792 99693 50242.5 5024250 792 99693 50242.5 5024250 -32378 32760 5022.66 502266 -128 123 -5.18 -518 +789 100 10779 99690 2.36936 299.36936 150.86936 15086.93693 2.36936 299.36935 150.86936 15086.93672 2.36936 299.36936 150.86936000000003 15086.93600 2020-01-01 2020-01-02 2020-01-01 00:13:09 2020-01-02 03:41:30 2020-01-01 00:13:09.000 2020-01-02 03:41:30.000 789 99690 50239.5 5023950 789 99690 50239.5 5023950 -32381 32757 5019.66 501966 -125 127 -0.5 -50 +79 102 10069 99979 0.23723 300.23723 150.23723 15173.96096 0.23723 300.23724 150.23724 15173.96129 0.23723 300.23723 150.23723000000007 15173.96023 2020-01-01 2020-01-02 2020-01-01 00:01:19 2020-01-02 03:46:19 2020-01-01 00:01:19.000 2020-01-02 03:46:19.000 79 99979 50029 5052929 79 99979 50029 5052929 -32490 32445 4608.009900990099 465409 -128 127 -2.5247524752475248 -255 +790 100 10780 99691 2.37237 299.37237 150.87237 15087.23723 2.37237 299.37238 150.87237 15087.23747 2.37237 299.37237 150.87236999999993 15087.23700 2020-01-01 2020-01-02 2020-01-01 00:13:10 2020-01-02 03:41:31 2020-01-01 00:13:10.000 2020-01-02 03:41:31.000 790 99691 50240.5 5024050 790 99691 50240.5 5024050 -32380 32758 5020.66 502066 -128 127 -2.06 -206 +791 100 10781 99692 2.37537 299.37537 150.87537 15087.53753 2.37537 299.37537 150.87537 15087.53761 2.37537 299.37537 150.87536999999992 15087.53700 2020-01-01 2020-01-02 2020-01-01 00:13:11 2020-01-02 03:41:32 2020-01-01 00:13:11.000 2020-01-02 03:41:32.000 791 99692 50241.5 5024150 791 99692 50241.5 5024150 -32379 32759 5021.66 502166 -128 127 -3.62 -362 +792 100 10782 99693 2.37837 299.37837 150.87837 15087.83783 2.37837 299.3784 150.87837 15087.83775 2.37837 299.37837 150.87837000000007 15087.83700 2020-01-01 2020-01-02 2020-01-01 00:13:12 2020-01-02 03:41:33 2020-01-01 00:13:12.000 2020-01-02 03:41:33.000 792 99693 50242.5 5024250 792 99693 50242.5 5024250 -32378 32760 5022.66 502266 -128 123 -5.18 -518 793 100 10783 99694 2.38138 299.38138 150.88138 15088.13813 2.38138 299.38138 150.88137 15088.13789 2.38138 299.38138 150.88138 15088.13800 2020-01-01 2020-01-02 2020-01-01 00:13:13 2020-01-02 03:41:34 2020-01-01 00:13:13.000 2020-01-02 03:41:34.000 793 99694 50243.5 5024350 793 99694 50243.5 5024350 -32377 32761 5023.66 502366 -127 124 -4.18 -418 -794 100 10784 99695 2.38438 299.38438 150.88438 15088.43843 2.38438 299.3844 150.88438 15088.43864 2.38438 299.38438 150.88438 15088.43800 2020-01-01 2020-01-02 2020-01-01 00:13:14 2020-01-02 03:41:35 2020-01-01 00:13:14.000 2020-01-02 03:41:35.000 794 99695 50244.5 5024450 794 99695 50244.5 5024450 -32376 32762 5024.66 502466 -126 125 -3.18 -318 -795 100 10785 99696 2.38738 299.38738 150.88738 15088.73873 2.38738 299.3874 150.88738 15088.73894 2.38738 299.38738 150.88738 15088.73800 2020-01-01 2020-01-02 2020-01-01 00:13:15 2020-01-02 03:41:36 2020-01-01 00:13:15.000 2020-01-02 03:41:36.000 795 99696 50245.5 5024550 795 99696 50245.5 5024550 -32375 32763 5025.66 502566 -125 126 -2.18 -218 -796 100 10786 99697 2.39039 299.39039 150.89039 15089.03903 2.39039 299.39038 150.89039 15089.03908 2.39039 299.39039 150.89039 15089.03900 2020-01-01 2020-01-02 2020-01-01 00:13:16 2020-01-02 03:41:37 2020-01-01 00:13:16.000 2020-01-02 03:41:37.000 796 99697 50246.5 5024650 796 99697 50246.5 5024650 -32374 32764 5026.66 502666 -124 127 -1.18 -118 -797 100 10787 99698 2.39339 299.39339 150.89339 15089.33933 2.39339 299.3934 150.89339 15089.33921 2.39339 299.39339 150.89339 15089.33900 2020-01-01 2020-01-02 2020-01-01 00:13:17 2020-01-02 03:41:38 2020-01-01 00:13:17.000 2020-01-02 03:41:38.000 797 99698 50247.5 5024750 797 99698 50247.5 5024750 -32373 32765 5027.66 502766 -128 127 -2.74 -274 -798 100 10788 99699 2.39639 299.39639 150.89639 15089.63963 2.39639 299.3964 150.89639 15089.63936 2.39639 299.39639 150.89639 15089.63900 2020-01-01 2020-01-02 2020-01-01 00:13:18 2020-01-02 03:41:39 2020-01-01 00:13:18.000 2020-01-02 03:41:39.000 798 99699 50248.5 5024850 798 99699 50248.5 5024850 -32372 32766 5028.66 502866 -128 123 -4.3 -430 -799 100 10789 99700 2.39939 299.39939 150.89939 15089.93993 2.39939 299.3994 150.8994 15089.94011 2.39939 299.39939 150.89939 15089.93900 2020-01-01 2020-01-02 2020-01-01 00:13:19 2020-01-02 03:41:40 2020-01-01 00:13:19.000 2020-01-02 03:41:40.000 799 99700 50249.5 5024950 799 99700 50249.5 5024950 -32371 32767 5029.66 502966 -127 124 -3.3 -330 -8 102 1007 9998 0.02402 300.02402 150.02402 15152.42642 0.02402 300.02402 150.02402 15152.42607 0.02402 300.02402 150.02402 15152.42602 2020-01-01 2020-01-02 2020-01-01 00:00:08 2020-01-02 03:45:08 2020-01-01 00:00:08.000 2020-01-02 03:45:08.000 8 99908 49958 5045758 8 99908 49958 5045758 -32561 32374 4537.009900990099 458238 -125 126 -0.019801980198019802 -2 -80 102 10070 99980 0.24024 300.24024 150.24024 15174.26426 0.24024 300.24023 150.24023 15174.26397 0.24024 300.24024 150.24024 15174.26424 2020-01-01 2020-01-02 2020-01-01 00:01:20 2020-01-02 03:46:20 2020-01-01 00:01:20.000 2020-01-02 03:46:20.000 80 99980 50030 5053030 80 99980 50030 5053030 -32489 32446 4609.009900990099 465510 -128 123 -4.0594059405940595 -410 -800 100 10790 99701 2.4024 299.4024 150.9024 15090.24024 2.4024 299.4024 150.9024 15090.24041 2.40240 299.40240 150.90240 15090.24000 2020-01-01 2020-01-02 2020-01-01 00:13:20 2020-01-02 03:41:41 2020-01-01 00:13:20.000 2020-01-02 03:41:41.000 800 99701 50250.5 5025050 800 99701 50250.5 5025050 -32768 32167 4375.3 437530 -126 125 -2.3 -230 -801 100 10791 99702 2.4054 299.4054 150.9054 15090.54054 2.4054 299.4054 150.9054 15090.54058 2.40540 299.40540 150.90540 15090.54000 2020-01-01 2020-01-02 2020-01-01 00:13:21 2020-01-02 03:41:42 2020-01-01 00:13:21.000 2020-01-02 03:41:42.000 801 99702 50251.5 5025150 801 99702 50251.5 5025150 -32767 32168 4376.3 437630 -125 126 -1.3 -130 -802 100 10792 99703 2.4084 299.4084 150.9084 15090.84084 2.4084 299.40842 150.9084 15090.84069 2.40840 299.40840 150.90840 15090.84000 2020-01-01 2020-01-02 2020-01-01 00:13:22 2020-01-02 03:41:43 2020-01-01 00:13:22.000 2020-01-02 03:41:43.000 802 99703 50252.5 5025250 802 99703 50252.5 5025250 -32766 32169 4377.3 437730 -124 127 -0.3 -30 -803 100 10793 99704 2.41141 299.41141 150.91141 15091.14114 2.41141 299.4114 150.9114 15091.14098 2.41141 299.41141 150.91141 15091.14100 2020-01-01 2020-01-02 2020-01-01 00:13:23 2020-01-02 03:41:44 2020-01-01 00:13:23.000 2020-01-02 03:41:44.000 803 99704 50253.5 5025350 803 99704 50253.5 5025350 -32765 32170 4378.3 437830 -128 127 -1.86 -186 -804 100 10794 99705 2.41441 299.41441 150.91441 15091.44144 2.41441 299.41443 150.91441 15091.44158 2.41441 299.41441 150.91441 15091.44100 2020-01-01 2020-01-02 2020-01-01 00:13:24 2020-01-02 03:41:45 2020-01-01 00:13:24.000 2020-01-02 03:41:45.000 804 99705 50254.5 5025450 804 99705 50254.5 5025450 -32764 32171 4379.3 437930 -128 123 -3.42 -342 +794 100 10784 99695 2.38438 299.38438 150.88438 15088.43843 2.38438 299.3844 150.88438 15088.43864 2.38438 299.38438 150.88438000000002 15088.43800 2020-01-01 2020-01-02 2020-01-01 00:13:14 2020-01-02 03:41:35 2020-01-01 00:13:14.000 2020-01-02 03:41:35.000 794 99695 50244.5 5024450 794 99695 50244.5 5024450 -32376 32762 5024.66 502466 -126 125 -3.18 -318 +795 100 10785 99696 2.38738 299.38738 150.88738 15088.73873 2.38738 299.3874 150.88738 15088.73894 2.38738 299.38738 150.88738000000006 15088.73800 2020-01-01 2020-01-02 2020-01-01 00:13:15 2020-01-02 03:41:36 2020-01-01 00:13:15.000 2020-01-02 03:41:36.000 795 99696 50245.5 5024550 795 99696 50245.5 5024550 -32375 32763 5025.66 502566 -125 126 -2.18 -218 +796 100 10786 99697 2.39039 299.39039 150.89039 15089.03903 2.39039 299.39038 150.89039 15089.03908 2.39039 299.39039 150.89038999999997 15089.03900 2020-01-01 2020-01-02 2020-01-01 00:13:16 2020-01-02 03:41:37 2020-01-01 00:13:16.000 2020-01-02 03:41:37.000 796 99697 50246.5 5024650 796 99697 50246.5 5024650 -32374 32764 5026.66 502666 -124 127 -1.18 -118 +797 100 10787 99698 2.39339 299.39339 150.89339 15089.33933 2.39339 299.3934 150.89339 15089.33921 2.39339 299.39339 150.89338999999998 15089.33900 2020-01-01 2020-01-02 2020-01-01 00:13:17 2020-01-02 03:41:38 2020-01-01 00:13:17.000 2020-01-02 03:41:38.000 797 99698 50247.5 5024750 797 99698 50247.5 5024750 -32373 32765 5027.66 502766 -128 127 -2.74 -274 +798 100 10788 99699 2.39639 299.39639 150.89639 15089.63963 2.39639 299.3964 150.89639 15089.63936 2.39639 299.39639 150.8963899999999 15089.63900 2020-01-01 2020-01-02 2020-01-01 00:13:18 2020-01-02 03:41:39 2020-01-01 00:13:18.000 2020-01-02 03:41:39.000 798 99699 50248.5 5024850 798 99699 50248.5 5024850 -32372 32766 5028.66 502866 -128 123 -4.3 -430 +799 100 10789 99700 2.39939 299.39939 150.89939 15089.93993 2.39939 299.3994 150.8994 15089.94011 2.39939 299.39939 150.89938999999998 15089.93900 2020-01-01 2020-01-02 2020-01-01 00:13:19 2020-01-02 03:41:40 2020-01-01 00:13:19.000 2020-01-02 03:41:40.000 799 99700 50249.5 5024950 799 99700 50249.5 5024950 -32371 32767 5029.66 502966 -127 124 -3.3 -330 +8 102 1007 9998 0.02402 300.02402 150.02402 15152.42642 0.02402 300.02402 150.02402 15152.42607 0.02402 300.02402 150.02402000000004 15152.42602 2020-01-01 2020-01-02 2020-01-01 00:00:08 2020-01-02 03:45:08 2020-01-01 00:00:08.000 2020-01-02 03:45:08.000 8 99908 49958 5045758 8 99908 49958 5045758 -32561 32374 4537.009900990099 458238 -125 126 -0.019801980198019802 -2 +80 102 10070 99980 0.24024 300.24024 150.24024 15174.26426 0.24024 300.24023 150.24023 15174.26397 0.24024 300.24024 150.24023999999994 15174.26424 2020-01-01 2020-01-02 2020-01-01 00:01:20 2020-01-02 03:46:20 2020-01-01 00:01:20.000 2020-01-02 03:46:20.000 80 99980 50030 5053030 80 99980 50030 5053030 -32489 32446 4609.009900990099 465510 -128 123 -4.0594059405940595 -410 +800 100 10790 99701 2.4024 299.4024 150.9024 15090.24024 2.4024 299.4024 150.9024 15090.24041 2.40240 299.40240 150.90240000000006 15090.24000 2020-01-01 2020-01-02 2020-01-01 00:13:20 2020-01-02 03:41:41 2020-01-01 00:13:20.000 2020-01-02 03:41:41.000 800 99701 50250.5 5025050 800 99701 50250.5 5025050 -32768 32167 4375.3 437530 -126 125 -2.3 -230 +801 100 10791 99702 2.4054 299.4054 150.9054 15090.54054 2.4054 299.4054 150.9054 15090.54058 2.40540 299.40540 150.90539999999993 15090.54000 2020-01-01 2020-01-02 2020-01-01 00:13:21 2020-01-02 03:41:42 2020-01-01 00:13:21.000 2020-01-02 03:41:42.000 801 99702 50251.5 5025150 801 99702 50251.5 5025150 -32767 32168 4376.3 437630 -125 126 -1.3 -130 +802 100 10792 99703 2.4084 299.4084 150.9084 15090.84084 2.4084 299.40842 150.9084 15090.84069 2.40840 299.40840 150.90840000000003 15090.84000 2020-01-01 2020-01-02 2020-01-01 00:13:22 2020-01-02 03:41:43 2020-01-01 00:13:22.000 2020-01-02 03:41:43.000 802 99703 50252.5 5025250 802 99703 50252.5 5025250 -32766 32169 4377.3 437730 -124 127 -0.3 -30 +803 100 10793 99704 2.41141 299.41141 150.91141 15091.14114 2.41141 299.4114 150.9114 15091.14098 2.41141 299.41141 150.91141000000005 15091.14100 2020-01-01 2020-01-02 2020-01-01 00:13:23 2020-01-02 03:41:44 2020-01-01 00:13:23.000 2020-01-02 03:41:44.000 803 99704 50253.5 5025350 803 99704 50253.5 5025350 -32765 32170 4378.3 437830 -128 127 -1.86 -186 +804 100 10794 99705 2.41441 299.41441 150.91441 15091.44144 2.41441 299.41443 150.91441 15091.44158 2.41441 299.41441 150.91440999999998 15091.44100 2020-01-01 2020-01-02 2020-01-01 00:13:24 2020-01-02 03:41:45 2020-01-01 00:13:24.000 2020-01-02 03:41:45.000 804 99705 50254.5 5025450 804 99705 50254.5 5025450 -32764 32171 4379.3 437930 -128 123 -3.42 -342 805 100 10795 99706 2.41741 299.41741 150.91741 15091.74174 2.41741 299.41742 150.91741 15091.74188 2.41741 299.41741 150.91741 15091.74100 2020-01-01 2020-01-02 2020-01-01 00:13:25 2020-01-02 03:41:46 2020-01-01 00:13:25.000 2020-01-02 03:41:46.000 805 99706 50255.5 5025550 805 99706 50255.5 5025550 -32763 32172 4380.3 438030 -127 124 -2.42 -242 -806 100 10796 99707 2.42042 299.42042 150.92042 15092.04204 2.42042 299.4204 150.92042 15092.04205 2.42042 299.42042 150.92042 15092.04200 2020-01-01 2020-01-02 2020-01-01 00:13:26 2020-01-02 03:41:47 2020-01-01 00:13:26.000 2020-01-02 03:41:47.000 806 99707 50256.5 5025650 806 99707 50256.5 5025650 -32762 32173 4381.3 438130 -126 125 -1.42 -142 -807 100 10797 99708 2.42342 299.42342 150.92342 15092.34234 2.42342 299.42343 150.92342 15092.34216 2.42342 299.42342 150.92342 15092.34200 2020-01-01 2020-01-02 2020-01-01 00:13:27 2020-01-02 03:41:48 2020-01-01 00:13:27.000 2020-01-02 03:41:48.000 807 99708 50257.5 5025750 807 99708 50257.5 5025750 -32761 32174 4382.3 438230 -125 126 -0.42 -42 -808 100 10798 99709 2.42642 299.42642 150.92642 15092.64264 2.42642 299.42642 150.92642 15092.64245 2.42642 299.42642 150.92642 15092.64200 2020-01-01 2020-01-02 2020-01-01 00:13:28 2020-01-02 03:41:49 2020-01-01 00:13:28.000 2020-01-02 03:41:49.000 808 99709 50258.5 5025850 808 99709 50258.5 5025850 -32760 32175 4383.3 438330 -124 127 0.58 58 -809 100 10799 99710 2.42942 299.42942 150.92942 15092.94294 2.42942 299.42944 150.92943 15092.94305 2.42942 299.42942 150.92942 15092.94200 2020-01-01 2020-01-02 2020-01-01 00:13:29 2020-01-02 03:41:50 2020-01-01 00:13:29.000 2020-01-02 03:41:50.000 809 99710 50259.5 5025950 809 99710 50259.5 5025950 -32759 32176 4384.3 438430 -128 127 -0.98 -98 -81 102 10071 99981 0.24324 300.24324 150.24324 15174.56756 0.24324 300.24326 150.24324 15174.56758 0.24324 300.24324 150.24324 15174.56724 2020-01-01 2020-01-02 2020-01-01 00:01:21 2020-01-02 03:46:21 2020-01-01 00:01:21.000 2020-01-02 03:46:21.000 81 99981 50031 5053131 81 99981 50031 5053131 -32488 32447 4610.009900990099 465611 -127 124 -3.0594059405940595 -309 -810 100 10800 99711 2.43243 299.43243 150.93243 15093.24324 2.43243 299.43243 150.93243 15093.24338 2.43243 299.43243 150.93243 15093.24300 2020-01-01 2020-01-02 2020-01-01 00:13:30 2020-01-02 03:41:51 2020-01-01 00:13:30.000 2020-01-02 03:41:51.000 810 99711 50260.5 5026050 810 99711 50260.5 5026050 -32758 32177 4385.3 438530 -128 127 -2.54 -254 -811 100 10801 99712 2.43543 299.43543 150.93543 15093.54354 2.43543 299.43542 150.93543 15093.54353 2.43543 299.43543 150.93543 15093.54300 2020-01-01 2020-01-02 2020-01-01 00:13:31 2020-01-02 03:41:52 2020-01-01 00:13:31.000 2020-01-02 03:41:52.000 811 99712 50261.5 5026150 811 99712 50261.5 5026150 -32757 32178 4386.3 438630 -128 124 -4.1 -410 -812 100 10802 99713 2.43843 299.43843 150.93843 15093.84384 2.43843 299.43845 150.93844 15093.84428 2.43843 299.43843 150.93843 15093.84300 2020-01-01 2020-01-02 2020-01-01 00:13:32 2020-01-02 03:41:53 2020-01-01 00:13:32.000 2020-01-02 03:41:53.000 812 99713 50262.5 5026250 812 99713 50262.5 5026250 -32756 32179 4387.3 438730 -127 125 -3.1 -310 -813 100 10803 99714 2.44144 299.44144 150.94144 15094.14414 2.44144 299.44144 150.94143 15094.14392 2.44144 299.44144 150.94144 15094.14400 2020-01-01 2020-01-02 2020-01-01 00:13:33 2020-01-02 03:41:54 2020-01-01 00:13:33.000 2020-01-02 03:41:54.000 813 99714 50263.5 5026350 813 99714 50263.5 5026350 -32755 32180 4388.3 438830 -126 126 -2.1 -210 +806 100 10796 99707 2.42042 299.42042 150.92042 15092.04204 2.42042 299.4204 150.92042 15092.04205 2.42042 299.42042 150.9204200000001 15092.04200 2020-01-01 2020-01-02 2020-01-01 00:13:26 2020-01-02 03:41:47 2020-01-01 00:13:26.000 2020-01-02 03:41:47.000 806 99707 50256.5 5025650 806 99707 50256.5 5025650 -32762 32173 4381.3 438130 -126 125 -1.42 -142 +807 100 10797 99708 2.42342 299.42342 150.92342 15092.34234 2.42342 299.42343 150.92342 15092.34216 2.42342 299.42342 150.92341999999994 15092.34200 2020-01-01 2020-01-02 2020-01-01 00:13:27 2020-01-02 03:41:48 2020-01-01 00:13:27.000 2020-01-02 03:41:48.000 807 99708 50257.5 5025750 807 99708 50257.5 5025750 -32761 32174 4382.3 438230 -125 126 -0.42 -42 +808 100 10798 99709 2.42642 299.42642 150.92642 15092.64264 2.42642 299.42642 150.92642 15092.64245 2.42642 299.42642 150.9264199999999 15092.64200 2020-01-01 2020-01-02 2020-01-01 00:13:28 2020-01-02 03:41:49 2020-01-01 00:13:28.000 2020-01-02 03:41:49.000 808 99709 50258.5 5025850 808 99709 50258.5 5025850 -32760 32175 4383.3 438330 -124 127 0.58 58 +809 100 10799 99710 2.42942 299.42942 150.92942 15092.94294 2.42942 299.42944 150.92943 15092.94305 2.42942 299.42942 150.9294200000001 15092.94200 2020-01-01 2020-01-02 2020-01-01 00:13:29 2020-01-02 03:41:50 2020-01-01 00:13:29.000 2020-01-02 03:41:50.000 809 99710 50259.5 5025950 809 99710 50259.5 5025950 -32759 32176 4384.3 438430 -128 127 -0.98 -98 +81 102 10071 99981 0.24324 300.24324 150.24324 15174.56756 0.24324 300.24326 150.24324 15174.56758 0.24324 300.24324 150.2432399999999 15174.56724 2020-01-01 2020-01-02 2020-01-01 00:01:21 2020-01-02 03:46:21 2020-01-01 00:01:21.000 2020-01-02 03:46:21.000 81 99981 50031 5053131 81 99981 50031 5053131 -32488 32447 4610.009900990099 465611 -127 124 -3.0594059405940595 -309 +810 100 10800 99711 2.43243 299.43243 150.93243 15093.24324 2.43243 299.43243 150.93243 15093.24338 2.43243 299.43243 150.93243000000004 15093.24300 2020-01-01 2020-01-02 2020-01-01 00:13:30 2020-01-02 03:41:51 2020-01-01 00:13:30.000 2020-01-02 03:41:51.000 810 99711 50260.5 5026050 810 99711 50260.5 5026050 -32758 32177 4385.3 438530 -128 127 -2.54 -254 +811 100 10801 99712 2.43543 299.43543 150.93543 15093.54354 2.43543 299.43542 150.93543 15093.54353 2.43543 299.43543 150.93542999999983 15093.54300 2020-01-01 2020-01-02 2020-01-01 00:13:31 2020-01-02 03:41:52 2020-01-01 00:13:31.000 2020-01-02 03:41:52.000 811 99712 50261.5 5026150 811 99712 50261.5 5026150 -32757 32178 4386.3 438630 -128 124 -4.1 -410 +812 100 10802 99713 2.43843 299.43843 150.93843 15093.84384 2.43843 299.43845 150.93844 15093.84428 2.43843 299.43843 150.93843000000007 15093.84300 2020-01-01 2020-01-02 2020-01-01 00:13:32 2020-01-02 03:41:53 2020-01-01 00:13:32.000 2020-01-02 03:41:53.000 812 99713 50262.5 5026250 812 99713 50262.5 5026250 -32756 32179 4387.3 438730 -127 125 -3.1 -310 +813 100 10803 99714 2.44144 299.44144 150.94144 15094.14414 2.44144 299.44144 150.94143 15094.14392 2.44144 299.44144 150.94143999999997 15094.14400 2020-01-01 2020-01-02 2020-01-01 00:13:33 2020-01-02 03:41:54 2020-01-01 00:13:33.000 2020-01-02 03:41:54.000 813 99714 50263.5 5026350 813 99714 50263.5 5026350 -32755 32180 4388.3 438830 -126 126 -2.1 -210 814 100 10804 99715 2.44444 299.44444 150.94444 15094.44444 2.44444 299.44446 150.94444 15094.44452 2.44444 299.44444 150.94444 15094.44400 2020-01-01 2020-01-02 2020-01-01 00:13:34 2020-01-02 03:41:55 2020-01-01 00:13:34.000 2020-01-02 03:41:55.000 814 99715 50264.5 5026450 814 99715 50264.5 5026450 -32754 32181 4389.3 438930 -125 127 -1.1 -110 -815 100 10805 99716 2.44744 299.44744 150.94744 15094.74474 2.44744 299.44745 150.94744 15094.74485 2.44744 299.44744 150.94744 15094.74400 2020-01-01 2020-01-02 2020-01-01 00:13:35 2020-01-02 03:41:56 2020-01-01 00:13:35.000 2020-01-02 03:41:56.000 815 99716 50265.5 5026550 815 99716 50265.5 5026550 -32753 32182 4390.3 439030 -128 127 -2.66 -266 -816 100 10806 99717 2.45045 299.45045 150.95045 15095.04504 2.45045 299.45044 150.95045 15095.045 2.45045 299.45045 150.95045 15095.04500 2020-01-01 2020-01-02 2020-01-01 00:13:36 2020-01-02 03:41:57 2020-01-01 00:13:36.000 2020-01-02 03:41:57.000 816 99717 50266.5 5026650 816 99717 50266.5 5026650 -32752 32183 4391.3 439130 -128 127 -4.22 -422 -817 100 10807 99718 2.45345 299.45345 150.95345 15095.34534 2.45345 299.45346 150.95345 15095.34574 2.45345 299.45345 150.95345 15095.34500 2020-01-01 2020-01-02 2020-01-01 00:13:37 2020-01-02 03:41:58 2020-01-01 00:13:37.000 2020-01-02 03:41:58.000 817 99718 50267.5 5026750 817 99718 50267.5 5026750 -32751 32184 4392.3 439230 -128 123 -5.78 -578 -818 100 10808 99719 2.45645 299.45645 150.95645 15095.64564 2.45645 299.45645 150.95645 15095.64539 2.45645 299.45645 150.95645 15095.64500 2020-01-01 2020-01-02 2020-01-01 00:13:38 2020-01-02 03:41:59 2020-01-01 00:13:38.000 2020-01-02 03:41:59.000 818 99719 50268.5 5026850 818 99719 50268.5 5026850 -32750 32185 4393.3 439330 -127 124 -4.78 -478 -819 100 10809 99720 2.45945 299.45945 150.95945 15095.94594 2.45945 299.45947 150.95946 15095.94602 2.45945 299.45945 150.95945 15095.94500 2020-01-01 2020-01-02 2020-01-01 00:13:39 2020-01-02 03:42:00 2020-01-01 00:13:39.000 2020-01-02 03:42:00.000 819 99720 50269.5 5026950 819 99720 50269.5 5026950 -32749 32186 4394.3 439430 -126 125 -3.78 -378 -82 102 10072 99982 0.24624 300.24624 150.24624 15174.87087 0.24624 300.24625 150.24624 15174.87088 0.24624 300.24624 150.24624 15174.87024 2020-01-01 2020-01-02 2020-01-01 00:01:22 2020-01-02 03:46:22 2020-01-01 00:01:22.000 2020-01-02 03:46:22.000 82 99982 50032 5053232 82 99982 50032 5053232 -32487 32448 4611.009900990099 465712 -126 125 -2.0594059405940595 -208 -820 100 10810 99721 2.46246 299.46246 150.96246 15096.24624 2.46246 299.46246 150.96246 15096.24633 2.46246 299.46246 150.96246 15096.24600 2020-01-01 2020-01-02 2020-01-01 00:13:40 2020-01-02 03:42:01 2020-01-01 00:13:40.000 2020-01-02 03:42:01.000 820 99721 50270.5 5027050 820 99721 50270.5 5027050 -32748 32187 4395.3 439530 -125 126 -2.78 -278 -821 100 10811 99722 2.46546 299.46546 150.96546 15096.54654 2.46546 299.46545 150.96546 15096.54646 2.46546 299.46546 150.96546 15096.54600 2020-01-01 2020-01-02 2020-01-01 00:13:41 2020-01-02 03:42:02 2020-01-01 00:13:41.000 2020-01-02 03:42:02.000 821 99722 50271.5 5027150 821 99722 50271.5 5027150 -32747 32188 4396.3 439630 -124 127 -1.78 -178 -822 100 10812 99723 2.46846 299.46846 150.96846 15096.84684 2.46846 299.46848 150.96847 15096.84721 2.46846 299.46846 150.96846 15096.84600 2020-01-01 2020-01-02 2020-01-01 00:13:42 2020-01-02 03:42:03 2020-01-01 00:13:42.000 2020-01-02 03:42:03.000 822 99723 50272.5 5027250 822 99723 50272.5 5027250 -32746 32189 4397.3 439730 -128 127 -3.34 -334 -823 100 10813 99724 2.47147 299.47147 150.97147 15097.14714 2.47147 299.47147 150.97146 15097.14686 2.47147 299.47147 150.97147 15097.14700 2020-01-01 2020-01-02 2020-01-01 00:13:43 2020-01-02 03:42:04 2020-01-01 00:13:43.000 2020-01-02 03:42:04.000 823 99724 50273.5 5027350 823 99724 50273.5 5027350 -32745 32190 4398.3 439830 -128 123 -4.9 -490 -824 100 10814 99725 2.47447 299.47447 150.97447 15097.44744 2.47447 299.4745 150.97447 15097.44749 2.47447 299.47447 150.97447 15097.44700 2020-01-01 2020-01-02 2020-01-01 00:13:44 2020-01-02 03:42:05 2020-01-01 00:13:44.000 2020-01-02 03:42:05.000 824 99725 50274.5 5027450 824 99725 50274.5 5027450 -32744 32191 4399.3 439930 -127 124 -3.9 -390 -825 100 10815 99726 2.47747 299.47747 150.97747 15097.74774 2.47747 299.47748 150.97747 15097.74779 2.47747 299.47747 150.97747 15097.74700 2020-01-01 2020-01-02 2020-01-01 00:13:45 2020-01-02 03:42:06 2020-01-01 00:13:45.000 2020-01-02 03:42:06.000 825 99726 50275.5 5027550 825 99726 50275.5 5027550 -32743 32192 4400.3 440030 -126 125 -2.9 -290 -826 100 10816 99727 2.48048 299.48048 150.98048 15098.04804 2.48048 299.48047 150.98048 15098.04809 2.48048 299.48048 150.98048 15098.04800 2020-01-01 2020-01-02 2020-01-01 00:13:46 2020-01-02 03:42:07 2020-01-01 00:13:46.000 2020-01-02 03:42:07.000 826 99727 50276.5 5027650 826 99727 50276.5 5027650 -32742 32193 4401.3 440130 -125 126 -1.9 -190 -827 100 10817 99728 2.48348 299.48348 150.98348 15098.34834 2.48348 299.4835 150.98348 15098.34869 2.48348 299.48348 150.98348 15098.34800 2020-01-01 2020-01-02 2020-01-01 00:13:47 2020-01-02 03:42:08 2020-01-01 00:13:47.000 2020-01-02 03:42:08.000 827 99728 50277.5 5027750 827 99728 50277.5 5027750 -32741 32194 4402.3 440230 -124 127 -0.9 -90 -828 100 10818 99729 2.48648 299.48648 150.98648 15098.64864 2.48648 299.48648 150.98648 15098.64837 2.48648 299.48648 150.98648 15098.64800 2020-01-01 2020-01-02 2020-01-01 00:13:48 2020-01-02 03:42:09 2020-01-01 00:13:48.000 2020-01-02 03:42:09.000 828 99729 50278.5 5027850 828 99729 50278.5 5027850 -32740 32195 4403.3 440330 -128 127 -2.46 -246 -829 100 10819 99730 2.48948 299.48948 150.98948 15098.94894 2.48948 299.4895 150.98948 15098.94896 2.48948 299.48948 150.98948 15098.94800 2020-01-01 2020-01-02 2020-01-01 00:13:49 2020-01-02 03:42:10 2020-01-01 00:13:49.000 2020-01-02 03:42:10.000 829 99730 50279.5 5027950 829 99730 50279.5 5027950 -32739 32196 4404.3 440430 -128 123 -4.02 -402 -83 102 10073 99983 0.24924 300.24924 150.24924 15175.17417 0.24924 300.24924 150.24924 15175.17417 0.24924 300.24924 150.24924 15175.17324 2020-01-01 2020-01-02 2020-01-01 00:01:23 2020-01-02 03:46:23 2020-01-01 00:01:23.000 2020-01-02 03:46:23.000 83 99983 50033 5053333 83 99983 50033 5053333 -32486 32449 4612.009900990099 465813 -125 126 -1.0594059405940595 -107 +815 100 10805 99716 2.44744 299.44744 150.94744 15094.74474 2.44744 299.44745 150.94744 15094.74485 2.44744 299.44744 150.94743999999994 15094.74400 2020-01-01 2020-01-02 2020-01-01 00:13:35 2020-01-02 03:41:56 2020-01-01 00:13:35.000 2020-01-02 03:41:56.000 815 99716 50265.5 5026550 815 99716 50265.5 5026550 -32753 32182 4390.3 439030 -128 127 -2.66 -266 +816 100 10806 99717 2.45045 299.45045 150.95045 15095.04504 2.45045 299.45044 150.95045 15095.045 2.45045 299.45045 150.95045000000005 15095.04500 2020-01-01 2020-01-02 2020-01-01 00:13:36 2020-01-02 03:41:57 2020-01-01 00:13:36.000 2020-01-02 03:41:57.000 816 99717 50266.5 5026650 816 99717 50266.5 5026650 -32752 32183 4391.3 439130 -128 127 -4.22 -422 +817 100 10807 99718 2.45345 299.45345 150.95345 15095.34534 2.45345 299.45346 150.95345 15095.34574 2.45345 299.45345 150.9534500000001 15095.34500 2020-01-01 2020-01-02 2020-01-01 00:13:37 2020-01-02 03:41:58 2020-01-01 00:13:37.000 2020-01-02 03:41:58.000 817 99718 50267.5 5026750 817 99718 50267.5 5026750 -32751 32184 4392.3 439230 -128 123 -5.78 -578 +818 100 10808 99719 2.45645 299.45645 150.95645 15095.64564 2.45645 299.45645 150.95645 15095.64539 2.45645 299.45645 150.9564499999999 15095.64500 2020-01-01 2020-01-02 2020-01-01 00:13:38 2020-01-02 03:41:59 2020-01-01 00:13:38.000 2020-01-02 03:41:59.000 818 99719 50268.5 5026850 818 99719 50268.5 5026850 -32750 32185 4393.3 439330 -127 124 -4.78 -478 +819 100 10809 99720 2.45945 299.45945 150.95945 15095.94594 2.45945 299.45947 150.95946 15095.94602 2.45945 299.45945 150.95945000000006 15095.94500 2020-01-01 2020-01-02 2020-01-01 00:13:39 2020-01-02 03:42:00 2020-01-01 00:13:39.000 2020-01-02 03:42:00.000 819 99720 50269.5 5026950 819 99720 50269.5 5026950 -32749 32186 4394.3 439430 -126 125 -3.78 -378 +82 102 10072 99982 0.24624 300.24624 150.24624 15174.87087 0.24624 300.24625 150.24624 15174.87088 0.24624 300.24624 150.2462400000001 15174.87024 2020-01-01 2020-01-02 2020-01-01 00:01:22 2020-01-02 03:46:22 2020-01-01 00:01:22.000 2020-01-02 03:46:22.000 82 99982 50032 5053232 82 99982 50032 5053232 -32487 32448 4611.009900990099 465712 -126 125 -2.0594059405940595 -208 +820 100 10810 99721 2.46246 299.46246 150.96246 15096.24624 2.46246 299.46246 150.96246 15096.24633 2.46246 299.46246 150.96246000000008 15096.24600 2020-01-01 2020-01-02 2020-01-01 00:13:40 2020-01-02 03:42:01 2020-01-01 00:13:40.000 2020-01-02 03:42:01.000 820 99721 50270.5 5027050 820 99721 50270.5 5027050 -32748 32187 4395.3 439530 -125 126 -2.78 -278 +821 100 10811 99722 2.46546 299.46546 150.96546 15096.54654 2.46546 299.46545 150.96546 15096.54646 2.46546 299.46546 150.96545999999998 15096.54600 2020-01-01 2020-01-02 2020-01-01 00:13:41 2020-01-02 03:42:02 2020-01-01 00:13:41.000 2020-01-02 03:42:02.000 821 99722 50271.5 5027150 821 99722 50271.5 5027150 -32747 32188 4396.3 439630 -124 127 -1.78 -178 +822 100 10812 99723 2.46846 299.46846 150.96846 15096.84684 2.46846 299.46848 150.96847 15096.84721 2.46846 299.46846 150.96846000000002 15096.84600 2020-01-01 2020-01-02 2020-01-01 00:13:42 2020-01-02 03:42:03 2020-01-01 00:13:42.000 2020-01-02 03:42:03.000 822 99723 50272.5 5027250 822 99723 50272.5 5027250 -32746 32189 4397.3 439730 -128 127 -3.34 -334 +823 100 10813 99724 2.47147 299.47147 150.97147 15097.14714 2.47147 299.47147 150.97146 15097.14686 2.47147 299.47147 150.97147000000012 15097.14700 2020-01-01 2020-01-02 2020-01-01 00:13:43 2020-01-02 03:42:04 2020-01-01 00:13:43.000 2020-01-02 03:42:04.000 823 99724 50273.5 5027350 823 99724 50273.5 5027350 -32745 32190 4398.3 439830 -128 123 -4.9 -490 +824 100 10814 99725 2.47447 299.47447 150.97447 15097.44744 2.47447 299.4745 150.97447 15097.44749 2.47447 299.47447 150.97446999999997 15097.44700 2020-01-01 2020-01-02 2020-01-01 00:13:44 2020-01-02 03:42:05 2020-01-01 00:13:44.000 2020-01-02 03:42:05.000 824 99725 50274.5 5027450 824 99725 50274.5 5027450 -32744 32191 4399.3 439930 -127 124 -3.9 -390 +825 100 10815 99726 2.47747 299.47747 150.97747 15097.74774 2.47747 299.47748 150.97747 15097.74779 2.47747 299.47747 150.9774699999999 15097.74700 2020-01-01 2020-01-02 2020-01-01 00:13:45 2020-01-02 03:42:06 2020-01-01 00:13:45.000 2020-01-02 03:42:06.000 825 99726 50275.5 5027550 825 99726 50275.5 5027550 -32743 32192 4400.3 440030 -126 125 -2.9 -290 +826 100 10816 99727 2.48048 299.48048 150.98048 15098.04804 2.48048 299.48047 150.98048 15098.04809 2.48048 299.48048 150.98048000000009 15098.04800 2020-01-01 2020-01-02 2020-01-01 00:13:46 2020-01-02 03:42:07 2020-01-01 00:13:46.000 2020-01-02 03:42:07.000 826 99727 50276.5 5027650 826 99727 50276.5 5027650 -32742 32193 4401.3 440130 -125 126 -1.9 -190 +827 100 10817 99728 2.48348 299.48348 150.98348 15098.34834 2.48348 299.4835 150.98348 15098.34869 2.48348 299.48348 150.98348000000004 15098.34800 2020-01-01 2020-01-02 2020-01-01 00:13:47 2020-01-02 03:42:08 2020-01-01 00:13:47.000 2020-01-02 03:42:08.000 827 99728 50277.5 5027750 827 99728 50277.5 5027750 -32741 32194 4402.3 440230 -124 127 -0.9 -90 +828 100 10818 99729 2.48648 299.48648 150.98648 15098.64864 2.48648 299.48648 150.98648 15098.64837 2.48648 299.48648 150.98647999999986 15098.64800 2020-01-01 2020-01-02 2020-01-01 00:13:48 2020-01-02 03:42:09 2020-01-01 00:13:48.000 2020-01-02 03:42:09.000 828 99729 50278.5 5027850 828 99729 50278.5 5027850 -32740 32195 4403.3 440330 -128 127 -2.46 -246 +829 100 10819 99730 2.48948 299.48948 150.98948 15098.94894 2.48948 299.4895 150.98948 15098.94896 2.48948 299.48948 150.9894800000001 15098.94800 2020-01-01 2020-01-02 2020-01-01 00:13:49 2020-01-02 03:42:10 2020-01-01 00:13:49.000 2020-01-02 03:42:10.000 829 99730 50279.5 5027950 829 99730 50279.5 5027950 -32739 32196 4404.3 440430 -128 123 -4.02 -402 +83 102 10073 99983 0.24924 300.24924 150.24924 15175.17417 0.24924 300.24924 150.24924 15175.17417 0.24924 300.24924 150.24923999999996 15175.17324 2020-01-01 2020-01-02 2020-01-01 00:01:23 2020-01-02 03:46:23 2020-01-01 00:01:23.000 2020-01-02 03:46:23.000 83 99983 50033 5053333 83 99983 50033 5053333 -32486 32449 4612.009900990099 465813 -125 126 -1.0594059405940595 -107 830 100 10820 99731 2.49249 299.49249 150.99249 15099.24924 2.49249 299.4925 150.99249 15099.24926 2.49249 299.49249 150.99249 15099.24900 2020-01-01 2020-01-02 2020-01-01 00:13:50 2020-01-02 03:42:11 2020-01-01 00:13:50.000 2020-01-02 03:42:11.000 830 99731 50280.5 5028050 830 99731 50280.5 5028050 -32738 32197 4405.3 440530 -127 124 -3.02 -302 -831 100 10821 99732 2.49549 299.49549 150.99549 15099.54954 2.49549 299.49548 150.99549 15099.54956 2.49549 299.49549 150.99549 15099.54900 2020-01-01 2020-01-02 2020-01-01 00:13:51 2020-01-02 03:42:12 2020-01-01 00:13:51.000 2020-01-02 03:42:12.000 831 99732 50281.5 5028150 831 99732 50281.5 5028150 -32737 32198 4406.3 440630 -126 125 -2.02 -202 -832 100 10822 99733 2.49849 299.49849 150.99849 15099.84984 2.49849 299.4985 150.9985 15099.85016 2.49849 299.49849 150.99849 15099.84900 2020-01-01 2020-01-02 2020-01-01 00:13:52 2020-01-02 03:42:13 2020-01-01 00:13:52.000 2020-01-02 03:42:13.000 832 99733 50282.5 5028250 832 99733 50282.5 5028250 -32736 32199 4407.3 440730 -125 126 -1.02 -102 -833 100 10823 99734 2.5015 299.5015 151.0015 15100.15015 2.5015 299.5015 151.00149 15100.14983 2.50150 299.50150 151.00150 15100.15000 2020-01-01 2020-01-02 2020-01-01 00:13:53 2020-01-02 03:42:14 2020-01-01 00:13:53.000 2020-01-02 03:42:14.000 833 99734 50283.5 5028350 833 99734 50283.5 5028350 -32735 32200 4408.3 440830 -124 127 -0.02 -2 -834 100 10824 99735 2.5045 299.5045 151.0045 15100.45045 2.5045 299.50452 151.0045 15100.45043 2.50450 299.50450 151.00450 15100.45000 2020-01-01 2020-01-02 2020-01-01 00:13:54 2020-01-02 03:42:15 2020-01-01 00:13:54.000 2020-01-02 03:42:15.000 834 99735 50284.5 5028450 834 99735 50284.5 5028450 -32734 32201 4409.3 440930 -128 127 -1.58 -158 -835 100 10825 99736 2.5075 299.5075 151.0075 15100.75075 2.5075 299.5075 151.0075 15100.75073 2.50750 299.50750 151.00750 15100.75000 2020-01-01 2020-01-02 2020-01-01 00:13:55 2020-01-02 03:42:16 2020-01-01 00:13:55.000 2020-01-02 03:42:16.000 835 99736 50285.5 5028550 835 99736 50285.5 5028550 -32733 32202 4410.3 441030 -128 123 -3.14 -314 -836 100 10826 99737 2.51051 299.51051 151.01051 15101.05105 2.51051 299.5105 151.01051 15101.05103 2.51051 299.51051 151.01051 15101.05100 2020-01-01 2020-01-02 2020-01-01 00:13:56 2020-01-02 03:42:17 2020-01-01 00:13:56.000 2020-01-02 03:42:17.000 836 99737 50286.5 5028650 836 99737 50286.5 5028650 -32732 32203 4411.3 441130 -127 124 -2.14 -214 +831 100 10821 99732 2.49549 299.49549 150.99549 15099.54954 2.49549 299.49548 150.99549 15099.54956 2.49549 299.49549 150.99548999999996 15099.54900 2020-01-01 2020-01-02 2020-01-01 00:13:51 2020-01-02 03:42:12 2020-01-01 00:13:51.000 2020-01-02 03:42:12.000 831 99732 50281.5 5028150 831 99732 50281.5 5028150 -32737 32198 4406.3 440630 -126 125 -2.02 -202 +832 100 10822 99733 2.49849 299.49849 150.99849 15099.84984 2.49849 299.4985 150.9985 15099.85016 2.49849 299.49849 150.99848999999998 15099.84900 2020-01-01 2020-01-02 2020-01-01 00:13:52 2020-01-02 03:42:13 2020-01-01 00:13:52.000 2020-01-02 03:42:13.000 832 99733 50282.5 5028250 832 99733 50282.5 5028250 -32736 32199 4407.3 440730 -125 126 -1.02 -102 +833 100 10823 99734 2.5015 299.5015 151.0015 15100.15015 2.5015 299.5015 151.00149 15100.14983 2.50150 299.50150 151.00150000000008 15100.15000 2020-01-01 2020-01-02 2020-01-01 00:13:53 2020-01-02 03:42:14 2020-01-01 00:13:53.000 2020-01-02 03:42:14.000 833 99734 50283.5 5028350 833 99734 50283.5 5028350 -32735 32200 4408.3 440830 -124 127 -0.02 -2 +834 100 10824 99735 2.5045 299.5045 151.0045 15100.45045 2.5045 299.50452 151.0045 15100.45043 2.50450 299.50450 151.00449999999992 15100.45000 2020-01-01 2020-01-02 2020-01-01 00:13:54 2020-01-02 03:42:15 2020-01-01 00:13:54.000 2020-01-02 03:42:15.000 834 99735 50284.5 5028450 834 99735 50284.5 5028450 -32734 32201 4409.3 440930 -128 127 -1.58 -158 +835 100 10825 99736 2.5075 299.5075 151.0075 15100.75075 2.5075 299.5075 151.0075 15100.75073 2.50750 299.50750 151.00749999999994 15100.75000 2020-01-01 2020-01-02 2020-01-01 00:13:55 2020-01-02 03:42:16 2020-01-01 00:13:55.000 2020-01-02 03:42:16.000 835 99736 50285.5 5028550 835 99736 50285.5 5028550 -32733 32202 4410.3 441030 -128 123 -3.14 -314 +836 100 10826 99737 2.51051 299.51051 151.01051 15101.05105 2.51051 299.5105 151.01051 15101.05103 2.51051 299.51051 151.01051000000004 15101.05100 2020-01-01 2020-01-02 2020-01-01 00:13:56 2020-01-02 03:42:17 2020-01-01 00:13:56.000 2020-01-02 03:42:17.000 836 99737 50286.5 5028650 836 99737 50286.5 5028650 -32732 32203 4411.3 441130 -127 124 -2.14 -214 837 100 10827 99738 2.51351 299.51351 151.01351 15101.35135 2.51351 299.51352 151.01351 15101.35162 2.51351 299.51351 151.01351 15101.35100 2020-01-01 2020-01-02 2020-01-01 00:13:57 2020-01-02 03:42:18 2020-01-01 00:13:57.000 2020-01-02 03:42:18.000 837 99738 50287.5 5028750 837 99738 50287.5 5028750 -32731 32204 4412.3 441230 -126 125 -1.14 -114 838 100 10828 99739 2.51651 299.51651 151.01651 15101.65165 2.51651 299.5165 151.01651 15101.6513 2.51651 299.51651 151.01651 15101.65100 2020-01-01 2020-01-02 2020-01-01 00:13:58 2020-01-02 03:42:19 2020-01-01 00:13:58.000 2020-01-02 03:42:19.000 838 99739 50288.5 5028850 838 99739 50288.5 5028850 -32730 32205 4413.3 441330 -125 126 -0.14 -14 -839 100 10829 99740 2.51951 299.51951 151.01951 15101.95195 2.51951 299.51953 151.01951 15101.9519 2.51951 299.51951 151.01951 15101.95100 2020-01-01 2020-01-02 2020-01-01 00:13:59 2020-01-02 03:42:20 2020-01-01 00:13:59.000 2020-01-02 03:42:20.000 839 99740 50289.5 5028950 839 99740 50289.5 5028950 -32729 32206 4414.3 441430 -124 127 0.86 86 -84 102 10074 99984 0.25225 300.25225 150.25225 15175.47747 0.25225 300.25226 150.25225 15175.47778 0.25225 300.25225 150.25225 15175.47725 2020-01-01 2020-01-02 2020-01-01 00:01:24 2020-01-02 03:46:24 2020-01-01 00:01:24.000 2020-01-02 03:46:24.000 84 99984 50034 5053434 84 99984 50034 5053434 -32485 32450 4613.009900990099 465914 -124 127 -0.0594059405940594 -6 -840 100 10830 99741 2.52252 299.52252 151.02252 15102.25225 2.52252 299.52252 151.02252 15102.2522 2.52252 299.52252 151.02252 15102.25200 2020-01-01 2020-01-02 2020-01-01 00:14:00 2020-01-02 03:42:21 2020-01-01 00:14:00.000 2020-01-02 03:42:21.000 840 99741 50290.5 5029050 840 99741 50290.5 5029050 -32728 32207 4415.3 441530 -128 127 -0.7 -70 -841 100 10831 99742 2.52552 299.52552 151.02552 15102.55255 2.52552 299.5255 151.02552 15102.5525 2.52552 299.52552 151.02552 15102.55200 2020-01-01 2020-01-02 2020-01-01 00:14:01 2020-01-02 03:42:22 2020-01-01 00:14:01.000 2020-01-02 03:42:22.000 841 99742 50291.5 5029150 841 99742 50291.5 5029150 -32727 32208 4416.3 441630 -128 127 -2.26 -226 -842 100 10832 99743 2.52852 299.52852 151.02852 15102.85285 2.52852 299.52853 151.02853 15102.85313 2.52852 299.52852 151.02852 15102.85200 2020-01-01 2020-01-02 2020-01-01 00:14:02 2020-01-02 03:42:23 2020-01-01 00:14:02.000 2020-01-02 03:42:23.000 842 99743 50292.5 5029250 842 99743 50292.5 5029250 -32726 32209 4417.3 441730 -128 123 -3.82 -382 -843 100 10833 99744 2.53153 299.53153 151.03153 15103.15315 2.53153 299.53152 151.03152 15103.15278 2.53153 299.53153 151.03153 15103.15300 2020-01-01 2020-01-02 2020-01-01 00:14:03 2020-01-02 03:42:24 2020-01-01 00:14:03.000 2020-01-02 03:42:24.000 843 99744 50293.5 5029350 843 99744 50293.5 5029350 -32725 32210 4418.3 441830 -127 124 -2.82 -282 -844 100 10834 99745 2.53453 299.53453 151.03453 15103.45345 2.53453 299.53455 151.03453 15103.45353 2.53453 299.53453 151.03453 15103.45300 2020-01-01 2020-01-02 2020-01-01 00:14:04 2020-01-02 03:42:25 2020-01-01 00:14:04.000 2020-01-02 03:42:25.000 844 99745 50294.5 5029450 844 99745 50294.5 5029450 -32724 32211 4419.3 441930 -126 125 -1.82 -182 -845 100 10835 99746 2.53753 299.53753 151.03753 15103.75375 2.53753 299.53754 151.03753 15103.75366 2.53753 299.53753 151.03753 15103.75300 2020-01-01 2020-01-02 2020-01-01 00:14:05 2020-01-02 03:42:26 2020-01-01 00:14:05.000 2020-01-02 03:42:26.000 845 99746 50295.5 5029550 845 99746 50295.5 5029550 -32723 32212 4420.3 442030 -125 126 -0.82 -82 +839 100 10829 99740 2.51951 299.51951 151.01951 15101.95195 2.51951 299.51953 151.01951 15101.9519 2.51951 299.51951 151.01951000000005 15101.95100 2020-01-01 2020-01-02 2020-01-01 00:13:59 2020-01-02 03:42:20 2020-01-01 00:13:59.000 2020-01-02 03:42:20.000 839 99740 50289.5 5028950 839 99740 50289.5 5028950 -32729 32206 4414.3 441430 -124 127 0.86 86 +84 102 10074 99984 0.25225 300.25225 150.25225 15175.47747 0.25225 300.25226 150.25225 15175.47778 0.25225 300.25225 150.25224999999986 15175.47725 2020-01-01 2020-01-02 2020-01-01 00:01:24 2020-01-02 03:46:24 2020-01-01 00:01:24.000 2020-01-02 03:46:24.000 84 99984 50034 5053434 84 99984 50034 5053434 -32485 32450 4613.009900990099 465914 -124 127 -0.0594059405940594 -6 +840 100 10830 99741 2.52252 299.52252 151.02252 15102.25225 2.52252 299.52252 151.02252 15102.2522 2.52252 299.52252 151.02252000000016 15102.25200 2020-01-01 2020-01-02 2020-01-01 00:14:00 2020-01-02 03:42:21 2020-01-01 00:14:00.000 2020-01-02 03:42:21.000 840 99741 50290.5 5029050 840 99741 50290.5 5029050 -32728 32207 4415.3 441530 -128 127 -0.7 -70 +841 100 10831 99742 2.52552 299.52552 151.02552 15102.55255 2.52552 299.5255 151.02552 15102.5525 2.52552 299.52552 151.02551999999994 15102.55200 2020-01-01 2020-01-02 2020-01-01 00:14:01 2020-01-02 03:42:22 2020-01-01 00:14:01.000 2020-01-02 03:42:22.000 841 99742 50291.5 5029150 841 99742 50291.5 5029150 -32727 32208 4416.3 441630 -128 127 -2.26 -226 +842 100 10832 99743 2.52852 299.52852 151.02852 15102.85285 2.52852 299.52853 151.02853 15102.85313 2.52852 299.52852 151.02851999999993 15102.85200 2020-01-01 2020-01-02 2020-01-01 00:14:02 2020-01-02 03:42:23 2020-01-01 00:14:02.000 2020-01-02 03:42:23.000 842 99743 50292.5 5029250 842 99743 50292.5 5029250 -32726 32209 4417.3 441730 -128 123 -3.82 -382 +843 100 10833 99744 2.53153 299.53153 151.03153 15103.15315 2.53153 299.53152 151.03152 15103.15278 2.53153 299.53153 151.0315300000001 15103.15300 2020-01-01 2020-01-02 2020-01-01 00:14:03 2020-01-02 03:42:24 2020-01-01 00:14:03.000 2020-01-02 03:42:24.000 843 99744 50293.5 5029350 843 99744 50293.5 5029350 -32725 32210 4418.3 441830 -127 124 -2.82 -282 +844 100 10834 99745 2.53453 299.53453 151.03453 15103.45345 2.53453 299.53455 151.03453 15103.45353 2.53453 299.53453 151.03453000000005 15103.45300 2020-01-01 2020-01-02 2020-01-01 00:14:04 2020-01-02 03:42:25 2020-01-01 00:14:04.000 2020-01-02 03:42:25.000 844 99745 50294.5 5029450 844 99745 50294.5 5029450 -32724 32211 4419.3 441930 -126 125 -1.82 -182 +845 100 10835 99746 2.53753 299.53753 151.03753 15103.75375 2.53753 299.53754 151.03753 15103.75366 2.53753 299.53753 151.0375299999999 15103.75300 2020-01-01 2020-01-02 2020-01-01 00:14:05 2020-01-02 03:42:26 2020-01-01 00:14:05.000 2020-01-02 03:42:26.000 845 99746 50295.5 5029550 845 99746 50295.5 5029550 -32723 32212 4420.3 442030 -125 126 -0.82 -82 846 100 10836 99747 2.54054 299.54054 151.04054 15104.05405 2.54054 299.54053 151.04053 15104.05397 2.54054 299.54054 151.04054 15104.05400 2020-01-01 2020-01-02 2020-01-01 00:14:06 2020-01-02 03:42:27 2020-01-01 00:14:06.000 2020-01-02 03:42:27.000 846 99747 50296.5 5029650 846 99747 50296.5 5029650 -32722 32213 4421.3 442130 -124 127 0.18 18 847 100 10837 99748 2.54354 299.54354 151.04354 15104.35435 2.54354 299.54355 151.04354 15104.3546 2.54354 299.54354 151.04354 15104.35400 2020-01-01 2020-01-02 2020-01-01 00:14:07 2020-01-02 03:42:28 2020-01-01 00:14:07.000 2020-01-02 03:42:28.000 847 99748 50297.5 5029750 847 99748 50297.5 5029750 -32721 32214 4422.3 442230 -128 127 -1.38 -138 -848 100 10838 99749 2.54654 299.54654 151.04654 15104.65465 2.54654 299.54654 151.04654 15104.65425 2.54654 299.54654 151.04654 15104.65400 2020-01-01 2020-01-02 2020-01-01 00:14:08 2020-01-02 03:42:29 2020-01-01 00:14:08.000 2020-01-02 03:42:29.000 848 99749 50298.5 5029850 848 99749 50298.5 5029850 -32720 32215 4423.3 442330 -128 123 -2.94 -294 +848 100 10838 99749 2.54654 299.54654 151.04654 15104.65465 2.54654 299.54654 151.04654 15104.65425 2.54654 299.54654 151.04653999999994 15104.65400 2020-01-01 2020-01-02 2020-01-01 00:14:08 2020-01-02 03:42:29 2020-01-01 00:14:08.000 2020-01-02 03:42:29.000 848 99749 50298.5 5029850 848 99749 50298.5 5029850 -32720 32215 4423.3 442330 -128 123 -2.94 -294 849 100 10839 99750 2.54954 299.54954 151.04954 15104.95495 2.54954 299.54956 151.04954 15104.95499 2.54954 299.54954 151.04954 15104.95400 2020-01-01 2020-01-02 2020-01-01 00:14:09 2020-01-02 03:42:30 2020-01-01 00:14:09.000 2020-01-02 03:42:30.000 849 99750 50299.5 5029950 849 99750 50299.5 5029950 -32719 32216 4424.3 442430 -127 124 -1.94 -194 -85 102 10075 99985 0.25525 300.25525 150.25525 15175.78078 0.25525 300.25525 150.25525 15175.78046 0.25525 300.25525 150.25525 15175.78025 2020-01-01 2020-01-02 2020-01-01 00:01:25 2020-01-02 03:46:25 2020-01-01 00:01:25.000 2020-01-02 03:46:25.000 85 99985 50035 5053535 85 99985 50035 5053535 -32484 32451 4614.009900990099 466015 -128 127 -1.5940594059405941 -161 -850 100 10840 99751 2.55255 299.55255 151.05255 15105.25525 2.55255 299.55255 151.05255 15105.25514 2.55255 299.55255 151.05255 15105.25500 2020-01-01 2020-01-02 2020-01-01 00:14:10 2020-01-02 03:42:31 2020-01-01 00:14:10.000 2020-01-02 03:42:31.000 850 99751 50300.5 5030050 850 99751 50300.5 5030050 -32718 32217 4425.3 442530 -126 125 -0.94 -94 -851 100 10841 99752 2.55555 299.55555 151.05555 15105.55555 2.55555 299.55554 151.05555 15105.55547 2.55555 299.55555 151.05555 15105.55500 2020-01-01 2020-01-02 2020-01-01 00:14:11 2020-01-02 03:42:32 2020-01-01 00:14:11.000 2020-01-02 03:42:32.000 851 99752 50301.5 5030150 851 99752 50301.5 5030150 -32717 32218 4426.3 442630 -125 126 0.06 6 -852 100 10842 99753 2.55855 299.55855 151.05855 15105.85585 2.55855 299.55856 151.05856 15105.85607 2.55855 299.55855 151.05855 15105.85500 2020-01-01 2020-01-02 2020-01-01 00:14:12 2020-01-02 03:42:33 2020-01-01 00:14:12.000 2020-01-02 03:42:33.000 852 99753 50302.5 5030250 852 99753 50302.5 5030250 -32716 32219 4427.3 442730 -124 127 1.06 106 -853 100 10843 99754 2.56156 299.56156 151.06156 15106.15615 2.56156 299.56155 151.06155 15106.15571 2.56156 299.56156 151.06156 15106.15600 2020-01-01 2020-01-02 2020-01-01 00:14:13 2020-01-02 03:42:34 2020-01-01 00:14:13.000 2020-01-02 03:42:34.000 853 99754 50303.5 5030350 853 99754 50303.5 5030350 -32715 32220 4428.3 442830 -128 127 -0.5 -50 -854 100 10844 99755 2.56456 299.56456 151.06456 15106.45645 2.56456 299.56458 151.06456 15106.45646 2.56456 299.56456 151.06456 15106.45600 2020-01-01 2020-01-02 2020-01-01 00:14:14 2020-01-02 03:42:35 2020-01-01 00:14:14.000 2020-01-02 03:42:35.000 854 99755 50304.5 5030450 854 99755 50304.5 5030450 -32714 32221 4429.3 442930 -128 123 -2.06 -206 -855 100 10845 99756 2.56756 299.56756 151.06756 15106.75675 2.56756 299.56757 151.06756 15106.75661 2.56756 299.56756 151.06756 15106.75600 2020-01-01 2020-01-02 2020-01-01 00:14:15 2020-01-02 03:42:36 2020-01-01 00:14:15.000 2020-01-02 03:42:36.000 855 99756 50305.5 5030550 855 99756 50305.5 5030550 -32713 32222 4430.3 443030 -127 124 -1.06 -106 -856 100 10846 99757 2.57057 299.57057 151.07057 15107.05705 2.57057 299.57056 151.07056 15107.05694 2.57057 299.57057 151.07057 15107.05700 2020-01-01 2020-01-02 2020-01-01 00:14:16 2020-01-02 03:42:37 2020-01-01 00:14:16.000 2020-01-02 03:42:37.000 856 99757 50306.5 5030650 856 99757 50306.5 5030650 -32712 32223 4431.3 443130 -126 125 -0.06 -6 -857 100 10847 99758 2.57357 299.57357 151.07357 15107.35735 2.57357 299.57358 151.07357 15107.35754 2.57357 299.57357 151.07357 15107.35700 2020-01-01 2020-01-02 2020-01-01 00:14:17 2020-01-02 03:42:38 2020-01-01 00:14:17.000 2020-01-02 03:42:38.000 857 99758 50307.5 5030750 857 99758 50307.5 5030750 -32711 32224 4432.3 443230 -125 126 0.94 94 -858 100 10848 99759 2.57657 299.57657 151.07657 15107.65765 2.57657 299.57657 151.07657 15107.65783 2.57657 299.57657 151.07657 15107.65700 2020-01-01 2020-01-02 2020-01-01 00:14:18 2020-01-02 03:42:39 2020-01-01 00:14:18.000 2020-01-02 03:42:39.000 858 99759 50308.5 5030850 858 99759 50308.5 5030850 -32710 32225 4433.3 443330 -124 127 1.94 194 -859 100 10849 99760 2.57957 299.57957 151.07957 15107.95795 2.57957 299.5796 151.07957 15107.95794 2.57957 299.57957 151.07957 15107.95700 2020-01-01 2020-01-02 2020-01-01 00:14:19 2020-01-02 03:42:40 2020-01-01 00:14:19.000 2020-01-02 03:42:40.000 859 99760 50309.5 5030950 859 99760 50309.5 5030950 -32709 32226 4434.3 443430 -128 127 0.38 38 -86 102 10076 99986 0.25825 300.25825 150.25825 15176.08408 0.25825 300.25827 150.25825 15176.08406 0.25825 300.25825 150.25825 15176.08325 2020-01-01 2020-01-02 2020-01-01 00:01:26 2020-01-02 03:46:26 2020-01-01 00:01:26.000 2020-01-02 03:46:26.000 86 99986 50036 5053636 86 99986 50036 5053636 -32483 32452 4615.009900990099 466116 -128 123 -3.128712871287129 -316 -860 100 10850 99761 2.58258 299.58258 151.08258 15108.25825 2.58258 299.58258 151.08258 15108.25811 2.58258 299.58258 151.08258 15108.25800 2020-01-01 2020-01-02 2020-01-01 00:14:20 2020-01-02 03:42:41 2020-01-01 00:14:20.000 2020-01-02 03:42:41.000 860 99761 50310.5 5031050 860 99761 50310.5 5031050 -32708 32227 4435.3 443530 -128 123 -1.18 -118 -861 100 10851 99762 2.58558 299.58558 151.08558 15108.55855 2.58558 299.58557 151.08558 15108.55841 2.58558 299.58558 151.08558 15108.55800 2020-01-01 2020-01-02 2020-01-01 00:14:21 2020-01-02 03:42:42 2020-01-01 00:14:21.000 2020-01-02 03:42:42.000 861 99762 50311.5 5031150 861 99762 50311.5 5031150 -32707 32228 4436.3 443630 -127 124 -0.18 -18 -862 100 10852 99763 2.58858 299.58858 151.08858 15108.85885 2.58858 299.5886 151.08859 15108.85901 2.58858 299.58858 151.08858 15108.85800 2020-01-01 2020-01-02 2020-01-01 00:14:22 2020-01-02 03:42:43 2020-01-01 00:14:22.000 2020-01-02 03:42:43.000 862 99763 50312.5 5031250 862 99763 50312.5 5031250 -32706 32229 4437.3 443730 -126 125 0.82 82 +85 102 10075 99985 0.25525 300.25525 150.25525 15175.78078 0.25525 300.25525 150.25525 15175.78046 0.25525 300.25525 150.25525000000007 15175.78025 2020-01-01 2020-01-02 2020-01-01 00:01:25 2020-01-02 03:46:25 2020-01-01 00:01:25.000 2020-01-02 03:46:25.000 85 99985 50035 5053535 85 99985 50035 5053535 -32484 32451 4614.009900990099 466015 -128 127 -1.5940594059405941 -161 +850 100 10840 99751 2.55255 299.55255 151.05255 15105.25525 2.55255 299.55255 151.05255 15105.25514 2.55255 299.55255 151.05255000000008 15105.25500 2020-01-01 2020-01-02 2020-01-01 00:14:10 2020-01-02 03:42:31 2020-01-01 00:14:10.000 2020-01-02 03:42:31.000 850 99751 50300.5 5030050 850 99751 50300.5 5030050 -32718 32217 4425.3 442530 -126 125 -0.94 -94 +851 100 10841 99752 2.55555 299.55555 151.05555 15105.55555 2.55555 299.55554 151.05555 15105.55547 2.55555 299.55555 151.05554999999993 15105.55500 2020-01-01 2020-01-02 2020-01-01 00:14:11 2020-01-02 03:42:32 2020-01-01 00:14:11.000 2020-01-02 03:42:32.000 851 99752 50301.5 5030150 851 99752 50301.5 5030150 -32717 32218 4426.3 442630 -125 126 0.06 6 +852 100 10842 99753 2.55855 299.55855 151.05855 15105.85585 2.55855 299.55856 151.05856 15105.85607 2.55855 299.55855 151.05854999999997 15105.85500 2020-01-01 2020-01-02 2020-01-01 00:14:12 2020-01-02 03:42:33 2020-01-01 00:14:12.000 2020-01-02 03:42:33.000 852 99753 50302.5 5030250 852 99753 50302.5 5030250 -32716 32219 4427.3 442730 -124 127 1.06 106 +853 100 10843 99754 2.56156 299.56156 151.06156 15106.15615 2.56156 299.56155 151.06155 15106.15571 2.56156 299.56156 151.06156000000007 15106.15600 2020-01-01 2020-01-02 2020-01-01 00:14:13 2020-01-02 03:42:34 2020-01-01 00:14:13.000 2020-01-02 03:42:34.000 853 99754 50303.5 5030350 853 99754 50303.5 5030350 -32715 32220 4428.3 442830 -128 127 -0.5 -50 +854 100 10844 99755 2.56456 299.56456 151.06456 15106.45645 2.56456 299.56458 151.06456 15106.45646 2.56456 299.56456 151.06456000000003 15106.45600 2020-01-01 2020-01-02 2020-01-01 00:14:14 2020-01-02 03:42:35 2020-01-01 00:14:14.000 2020-01-02 03:42:35.000 854 99755 50304.5 5030450 854 99755 50304.5 5030450 -32714 32221 4429.3 442930 -128 123 -2.06 -206 +855 100 10845 99756 2.56756 299.56756 151.06756 15106.75675 2.56756 299.56757 151.06756 15106.75661 2.56756 299.56756 151.06756000000001 15106.75600 2020-01-01 2020-01-02 2020-01-01 00:14:15 2020-01-02 03:42:36 2020-01-01 00:14:15.000 2020-01-02 03:42:36.000 855 99756 50305.5 5030550 855 99756 50305.5 5030550 -32713 32222 4430.3 443030 -127 124 -1.06 -106 +856 100 10846 99757 2.57057 299.57057 151.07057 15107.05705 2.57057 299.57056 151.07056 15107.05694 2.57057 299.57057 151.07056999999995 15107.05700 2020-01-01 2020-01-02 2020-01-01 00:14:16 2020-01-02 03:42:37 2020-01-01 00:14:16.000 2020-01-02 03:42:37.000 856 99757 50306.5 5030650 856 99757 50306.5 5030650 -32712 32223 4431.3 443130 -126 125 -0.06 -6 +857 100 10847 99758 2.57357 299.57357 151.07357 15107.35735 2.57357 299.57358 151.07357 15107.35754 2.57357 299.57357 151.07356999999996 15107.35700 2020-01-01 2020-01-02 2020-01-01 00:14:17 2020-01-02 03:42:38 2020-01-01 00:14:17.000 2020-01-02 03:42:38.000 857 99758 50307.5 5030750 857 99758 50307.5 5030750 -32711 32224 4432.3 443230 -125 126 0.94 94 +858 100 10848 99759 2.57657 299.57657 151.07657 15107.65765 2.57657 299.57657 151.07657 15107.65783 2.57657 299.57657 151.07656999999998 15107.65700 2020-01-01 2020-01-02 2020-01-01 00:14:18 2020-01-02 03:42:39 2020-01-01 00:14:18.000 2020-01-02 03:42:39.000 858 99759 50308.5 5030850 858 99759 50308.5 5030850 -32710 32225 4433.3 443330 -124 127 1.94 194 +859 100 10849 99760 2.57957 299.57957 151.07957 15107.95795 2.57957 299.5796 151.07957 15107.95794 2.57957 299.57957 151.07956999999993 15107.95700 2020-01-01 2020-01-02 2020-01-01 00:14:19 2020-01-02 03:42:40 2020-01-01 00:14:19.000 2020-01-02 03:42:40.000 859 99760 50309.5 5030950 859 99760 50309.5 5030950 -32709 32226 4434.3 443430 -128 127 0.38 38 +86 102 10076 99986 0.25825 300.25825 150.25825 15176.08408 0.25825 300.25827 150.25825 15176.08406 0.25825 300.25825 150.25825000000003 15176.08325 2020-01-01 2020-01-02 2020-01-01 00:01:26 2020-01-02 03:46:26 2020-01-01 00:01:26.000 2020-01-02 03:46:26.000 86 99986 50036 5053636 86 99986 50036 5053636 -32483 32452 4615.009900990099 466116 -128 123 -3.128712871287129 -316 +860 100 10850 99761 2.58258 299.58258 151.08258 15108.25825 2.58258 299.58258 151.08258 15108.25811 2.58258 299.58258 151.08258000000012 15108.25800 2020-01-01 2020-01-02 2020-01-01 00:14:20 2020-01-02 03:42:41 2020-01-01 00:14:20.000 2020-01-02 03:42:41.000 860 99761 50310.5 5031050 860 99761 50310.5 5031050 -32708 32227 4435.3 443530 -128 123 -1.18 -118 +861 100 10851 99762 2.58558 299.58558 151.08558 15108.55855 2.58558 299.58557 151.08558 15108.55841 2.58558 299.58558 151.08558000000005 15108.55800 2020-01-01 2020-01-02 2020-01-01 00:14:21 2020-01-02 03:42:42 2020-01-01 00:14:21.000 2020-01-02 03:42:42.000 861 99762 50311.5 5031150 861 99762 50311.5 5031150 -32707 32228 4436.3 443630 -127 124 -0.18 -18 +862 100 10852 99763 2.58858 299.58858 151.08858 15108.85885 2.58858 299.5886 151.08859 15108.85901 2.58858 299.58858 151.08857999999992 15108.85800 2020-01-01 2020-01-02 2020-01-01 00:14:22 2020-01-02 03:42:43 2020-01-01 00:14:22.000 2020-01-02 03:42:43.000 862 99763 50312.5 5031250 862 99763 50312.5 5031250 -32706 32229 4437.3 443730 -126 125 0.82 82 863 100 10853 99764 2.59159 299.59159 151.09159 15109.15915 2.59159 299.59158 151.09159 15109.1593 2.59159 299.59159 151.09159 15109.15900 2020-01-01 2020-01-02 2020-01-01 00:14:23 2020-01-02 03:42:44 2020-01-01 00:14:23.000 2020-01-02 03:42:44.000 863 99764 50313.5 5031350 863 99764 50313.5 5031350 -32705 32230 4438.3 443830 -125 126 1.82 182 -864 100 10854 99765 2.59459 299.59459 151.09459 15109.45945 2.59459 299.5946 151.09459 15109.45941 2.59459 299.59459 151.09459 15109.45900 2020-01-01 2020-01-02 2020-01-01 00:14:24 2020-01-02 03:42:45 2020-01-01 00:14:24.000 2020-01-02 03:42:45.000 864 99765 50314.5 5031450 864 99765 50314.5 5031450 -32704 32231 4439.3 443930 -124 127 2.82 282 -865 100 10855 99766 2.59759 299.59759 151.09759 15109.75975 2.59759 299.5976 151.09759 15109.75958 2.59759 299.59759 151.09759 15109.75900 2020-01-01 2020-01-02 2020-01-01 00:14:25 2020-01-02 03:42:46 2020-01-01 00:14:25.000 2020-01-02 03:42:46.000 865 99766 50315.5 5031550 865 99766 50315.5 5031550 -32703 32232 4440.3 444030 -128 127 1.26 126 -866 100 10856 99767 2.6006 299.6006 151.1006 15110.06006 2.6006 299.6006 151.10059 15110.05988 2.60060 299.60060 151.10060 15110.06000 2020-01-01 2020-01-02 2020-01-01 00:14:26 2020-01-02 03:42:47 2020-01-01 00:14:26.000 2020-01-02 03:42:47.000 866 99767 50316.5 5031650 866 99767 50316.5 5031650 -32702 32233 4441.3 444130 -128 127 -0.3 -30 -867 100 10857 99768 2.6036 299.6036 151.1036 15110.36036 2.6036 299.6036 151.1036 15110.36063 2.60360 299.60360 151.10360 15110.36000 2020-01-01 2020-01-02 2020-01-01 00:14:27 2020-01-02 03:42:48 2020-01-01 00:14:27.000 2020-01-02 03:42:48.000 867 99768 50317.5 5031750 867 99768 50317.5 5031750 -32701 32234 4442.3 444230 -128 123 -1.86 -186 -868 100 10858 99769 2.6066 299.6066 151.1066 15110.66066 2.6066 299.6066 151.1066 15110.66078 2.60660 299.60660 151.10660 15110.66000 2020-01-01 2020-01-02 2020-01-01 00:14:28 2020-01-02 03:42:49 2020-01-01 00:14:28.000 2020-01-02 03:42:49.000 868 99769 50318.5 5031850 868 99769 50318.5 5031850 -32700 32235 4443.3 444330 -127 124 -0.86 -86 -869 100 10859 99770 2.6096 299.6096 151.1096 15110.96096 2.6096 299.60962 151.1096 15110.96091 2.60960 299.60960 151.10960 15110.96000 2020-01-01 2020-01-02 2020-01-01 00:14:29 2020-01-02 03:42:50 2020-01-01 00:14:29.000 2020-01-02 03:42:50.000 869 99770 50319.5 5031950 869 99770 50319.5 5031950 -32699 32236 4444.3 444430 -126 125 0.14 14 -87 102 10077 99987 0.26126 300.26126 150.26126 15176.38738 0.26126 300.26126 150.26126 15176.38736 0.26126 300.26126 150.26126 15176.38726 2020-01-01 2020-01-02 2020-01-01 00:01:27 2020-01-02 03:46:27 2020-01-01 00:01:27.000 2020-01-02 03:46:27.000 87 99987 50037 5053737 87 99987 50037 5053737 -32482 32453 4616.009900990099 466217 -127 124 -2.128712871287129 -215 -870 100 10860 99771 2.61261 299.61261 151.11261 15111.26126 2.61261 299.6126 151.11261 15111.26105 2.61261 299.61261 151.11261 15111.26100 2020-01-01 2020-01-02 2020-01-01 00:14:30 2020-01-02 03:42:51 2020-01-01 00:14:30.000 2020-01-02 03:42:51.000 870 99771 50320.5 5032050 870 99771 50320.5 5032050 -32698 32237 4445.3 444530 -125 126 1.14 114 -871 100 10861 99772 2.61561 299.61561 151.11561 15111.56156 2.61561 299.6156 151.11561 15111.56135 2.61561 299.61561 151.11561 15111.56100 2020-01-01 2020-01-02 2020-01-01 00:14:31 2020-01-02 03:42:52 2020-01-01 00:14:31.000 2020-01-02 03:42:52.000 871 99772 50321.5 5032150 871 99772 50321.5 5032150 -32697 32238 4446.3 444630 -124 127 2.14 214 -872 100 10862 99773 2.61861 299.61861 151.11861 15111.86186 2.61861 299.61862 151.11862 15111.8621 2.61861 299.61861 151.11861 15111.86100 2020-01-01 2020-01-02 2020-01-01 00:14:32 2020-01-02 03:42:53 2020-01-01 00:14:32.000 2020-01-02 03:42:53.000 872 99773 50322.5 5032250 872 99773 50322.5 5032250 -32696 32239 4447.3 444730 -128 127 0.58 58 -873 100 10863 99774 2.62162 299.62162 151.12162 15112.16216 2.62162 299.6216 151.12162 15112.16224 2.62162 299.62162 151.12162 15112.16200 2020-01-01 2020-01-02 2020-01-01 00:14:33 2020-01-02 03:42:54 2020-01-01 00:14:33.000 2020-01-02 03:42:54.000 873 99774 50323.5 5032350 873 99774 50323.5 5032350 -32695 32240 4448.3 444830 -128 123 -0.98 -98 -874 100 10864 99775 2.62462 299.62462 151.12462 15112.46246 2.62462 299.62463 151.12462 15112.46238 2.62462 299.62462 151.12462 15112.46200 2020-01-01 2020-01-02 2020-01-01 00:14:34 2020-01-02 03:42:55 2020-01-01 00:14:34.000 2020-01-02 03:42:55.000 874 99775 50324.5 5032450 874 99775 50324.5 5032450 -32694 32241 4449.3 444930 -127 124 0.02 2 -875 100 10865 99776 2.62762 299.62762 151.12762 15112.76276 2.62762 299.62762 151.12762 15112.76252 2.62762 299.62762 151.12762 15112.76200 2020-01-01 2020-01-02 2020-01-01 00:14:35 2020-01-02 03:42:56 2020-01-01 00:14:35.000 2020-01-02 03:42:56.000 875 99776 50325.5 5032550 875 99776 50325.5 5032550 -32693 32242 4450.3 445030 -126 125 1.02 102 -876 100 10866 99777 2.63063 299.63063 151.13063 15113.06306 2.63063 299.63065 151.13063 15113.06327 2.63063 299.63063 151.13063 15113.06300 2020-01-01 2020-01-02 2020-01-01 00:14:36 2020-01-02 03:42:57 2020-01-01 00:14:36.000 2020-01-02 03:42:57.000 876 99777 50326.5 5032650 876 99777 50326.5 5032650 -32692 32243 4451.3 445130 -125 126 2.02 202 -877 100 10867 99778 2.63363 299.63363 151.13363 15113.36336 2.63363 299.63364 151.13363 15113.36358 2.63363 299.63363 151.13363 15113.36300 2020-01-01 2020-01-02 2020-01-01 00:14:37 2020-01-02 03:42:58 2020-01-01 00:14:37.000 2020-01-02 03:42:58.000 877 99778 50327.5 5032750 877 99778 50327.5 5032750 -32691 32244 4452.3 445230 -124 127 3.02 302 -878 100 10868 99779 2.63663 299.63663 151.13663 15113.66366 2.63663 299.63663 151.13663 15113.66371 2.63663 299.63663 151.13663 15113.66300 2020-01-01 2020-01-02 2020-01-01 00:14:38 2020-01-02 03:42:59 2020-01-01 00:14:38.000 2020-01-02 03:42:59.000 878 99779 50328.5 5032850 878 99779 50328.5 5032850 -32690 32245 4453.3 445330 -128 127 1.46 146 -879 100 10869 99780 2.63963 299.63963 151.13963 15113.96396 2.63963 299.63965 151.13963 15113.96385 2.63963 299.63963 151.13963 15113.96300 2020-01-01 2020-01-02 2020-01-01 00:14:39 2020-01-02 03:43:00 2020-01-01 00:14:39.000 2020-01-02 03:43:00.000 879 99780 50329.5 5032950 879 99780 50329.5 5032950 -32689 32246 4454.3 445430 -128 123 -0.1 -10 -88 102 10078 99988 0.26426 300.26426 150.26426 15176.69069 0.26426 300.26425 150.26426 15176.69066 0.26426 300.26426 150.26426 15176.69026 2020-01-01 2020-01-02 2020-01-01 00:01:28 2020-01-02 03:46:28 2020-01-01 00:01:28.000 2020-01-02 03:46:28.000 88 99988 50038 5053838 88 99988 50038 5053838 -32481 32454 4617.009900990099 466318 -126 125 -1.1287128712871286 -114 +864 100 10854 99765 2.59459 299.59459 151.09459 15109.45945 2.59459 299.5946 151.09459 15109.45941 2.59459 299.59459 151.09459000000004 15109.45900 2020-01-01 2020-01-02 2020-01-01 00:14:24 2020-01-02 03:42:45 2020-01-01 00:14:24.000 2020-01-02 03:42:45.000 864 99765 50314.5 5031450 864 99765 50314.5 5031450 -32704 32231 4439.3 443930 -124 127 2.82 282 +865 100 10855 99766 2.59759 299.59759 151.09759 15109.75975 2.59759 299.5976 151.09759 15109.75958 2.59759 299.59759 151.09759000000008 15109.75900 2020-01-01 2020-01-02 2020-01-01 00:14:25 2020-01-02 03:42:46 2020-01-01 00:14:25.000 2020-01-02 03:42:46.000 865 99766 50315.5 5031550 865 99766 50315.5 5031550 -32703 32232 4440.3 444030 -128 127 1.26 126 +866 100 10856 99767 2.6006 299.6006 151.1006 15110.06006 2.6006 299.6006 151.10059 15110.05988 2.60060 299.60060 151.10059999999984 15110.06000 2020-01-01 2020-01-02 2020-01-01 00:14:26 2020-01-02 03:42:47 2020-01-01 00:14:26.000 2020-01-02 03:42:47.000 866 99767 50316.5 5031650 866 99767 50316.5 5031650 -32702 32233 4441.3 444130 -128 127 -0.3 -30 +867 100 10857 99768 2.6036 299.6036 151.1036 15110.36036 2.6036 299.6036 151.1036 15110.36063 2.60360 299.60360 151.10360000000026 15110.36000 2020-01-01 2020-01-02 2020-01-01 00:14:27 2020-01-02 03:42:48 2020-01-01 00:14:27.000 2020-01-02 03:42:48.000 867 99768 50317.5 5031750 867 99768 50317.5 5031750 -32701 32234 4442.3 444230 -128 123 -1.86 -186 +868 100 10858 99769 2.6066 299.6066 151.1066 15110.66066 2.6066 299.6066 151.1066 15110.66078 2.60660 299.60660 151.10659999999976 15110.66000 2020-01-01 2020-01-02 2020-01-01 00:14:28 2020-01-02 03:42:49 2020-01-01 00:14:28.000 2020-01-02 03:42:49.000 868 99769 50318.5 5031850 868 99769 50318.5 5031850 -32700 32235 4443.3 444330 -127 124 -0.86 -86 +869 100 10859 99770 2.6096 299.6096 151.1096 15110.96096 2.6096 299.60962 151.1096 15110.96091 2.60960 299.60960 151.1095999999998 15110.96000 2020-01-01 2020-01-02 2020-01-01 00:14:29 2020-01-02 03:42:50 2020-01-01 00:14:29.000 2020-01-02 03:42:50.000 869 99770 50319.5 5031950 869 99770 50319.5 5031950 -32699 32236 4444.3 444430 -126 125 0.14 14 +87 102 10077 99987 0.26126 300.26126 150.26126 15176.38738 0.26126 300.26126 150.26126 15176.38736 0.26126 300.26126 150.2612599999999 15176.38726 2020-01-01 2020-01-02 2020-01-01 00:01:27 2020-01-02 03:46:27 2020-01-01 00:01:27.000 2020-01-02 03:46:27.000 87 99987 50037 5053737 87 99987 50037 5053737 -32482 32453 4616.009900990099 466217 -127 124 -2.128712871287129 -215 +870 100 10860 99771 2.61261 299.61261 151.11261 15111.26126 2.61261 299.6126 151.11261 15111.26105 2.61261 299.61261 151.1126100000001 15111.26100 2020-01-01 2020-01-02 2020-01-01 00:14:30 2020-01-02 03:42:51 2020-01-01 00:14:30.000 2020-01-02 03:42:51.000 870 99771 50320.5 5032050 870 99771 50320.5 5032050 -32698 32237 4445.3 444530 -125 126 1.14 114 +871 100 10861 99772 2.61561 299.61561 151.11561 15111.56156 2.61561 299.6156 151.11561 15111.56135 2.61561 299.61561 151.11561000000017 15111.56100 2020-01-01 2020-01-02 2020-01-01 00:14:31 2020-01-02 03:42:52 2020-01-01 00:14:31.000 2020-01-02 03:42:52.000 871 99772 50321.5 5032150 871 99772 50321.5 5032150 -32697 32238 4446.3 444630 -124 127 2.14 214 +872 100 10862 99773 2.61861 299.61861 151.11861 15111.86186 2.61861 299.61862 151.11862 15111.8621 2.61861 299.61861 151.11860999999993 15111.86100 2020-01-01 2020-01-02 2020-01-01 00:14:32 2020-01-02 03:42:53 2020-01-01 00:14:32.000 2020-01-02 03:42:53.000 872 99773 50322.5 5032250 872 99773 50322.5 5032250 -32696 32239 4447.3 444730 -128 127 0.58 58 +873 100 10863 99774 2.62162 299.62162 151.12162 15112.16216 2.62162 299.6216 151.12162 15112.16224 2.62162 299.62162 151.12161999999992 15112.16200 2020-01-01 2020-01-02 2020-01-01 00:14:33 2020-01-02 03:42:54 2020-01-01 00:14:33.000 2020-01-02 03:42:54.000 873 99774 50323.5 5032350 873 99774 50323.5 5032350 -32695 32240 4448.3 444830 -128 123 -0.98 -98 +874 100 10864 99775 2.62462 299.62462 151.12462 15112.46246 2.62462 299.62463 151.12462 15112.46238 2.62462 299.62462 151.12462000000002 15112.46200 2020-01-01 2020-01-02 2020-01-01 00:14:34 2020-01-02 03:42:55 2020-01-01 00:14:34.000 2020-01-02 03:42:55.000 874 99775 50324.5 5032450 874 99775 50324.5 5032450 -32694 32241 4449.3 444930 -127 124 0.02 2 +875 100 10865 99776 2.62762 299.62762 151.12762 15112.76276 2.62762 299.62762 151.12762 15112.76252 2.62762 299.62762 151.12761999999987 15112.76200 2020-01-01 2020-01-02 2020-01-01 00:14:35 2020-01-02 03:42:56 2020-01-01 00:14:35.000 2020-01-02 03:42:56.000 875 99776 50325.5 5032550 875 99776 50325.5 5032550 -32693 32242 4450.3 445030 -126 125 1.02 102 +876 100 10866 99777 2.63063 299.63063 151.13063 15113.06306 2.63063 299.63065 151.13063 15113.06327 2.63063 299.63063 151.13062999999977 15113.06300 2020-01-01 2020-01-02 2020-01-01 00:14:36 2020-01-02 03:42:57 2020-01-01 00:14:36.000 2020-01-02 03:42:57.000 876 99777 50326.5 5032650 876 99777 50326.5 5032650 -32692 32243 4451.3 445130 -125 126 2.02 202 +877 100 10867 99778 2.63363 299.63363 151.13363 15113.36336 2.63363 299.63364 151.13363 15113.36358 2.63363 299.63363 151.13363000000015 15113.36300 2020-01-01 2020-01-02 2020-01-01 00:14:37 2020-01-02 03:42:58 2020-01-01 00:14:37.000 2020-01-02 03:42:58.000 877 99778 50327.5 5032750 877 99778 50327.5 5032750 -32691 32244 4452.3 445230 -124 127 3.02 302 +878 100 10868 99779 2.63663 299.63663 151.13663 15113.66366 2.63663 299.63663 151.13663 15113.66371 2.63663 299.63663 151.13663000000028 15113.66300 2020-01-01 2020-01-02 2020-01-01 00:14:38 2020-01-02 03:42:59 2020-01-01 00:14:38.000 2020-01-02 03:42:59.000 878 99779 50328.5 5032850 878 99779 50328.5 5032850 -32690 32245 4453.3 445330 -128 127 1.46 146 +879 100 10869 99780 2.63963 299.63963 151.13963 15113.96396 2.63963 299.63965 151.13963 15113.96385 2.63963 299.63963 151.13962999999978 15113.96300 2020-01-01 2020-01-02 2020-01-01 00:14:39 2020-01-02 03:43:00 2020-01-01 00:14:39.000 2020-01-02 03:43:00.000 879 99780 50329.5 5032950 879 99780 50329.5 5032950 -32689 32246 4454.3 445430 -128 123 -0.1 -10 +88 102 10078 99988 0.26426 300.26426 150.26426 15176.69069 0.26426 300.26425 150.26426 15176.69066 0.26426 300.26426 150.26425999999995 15176.69026 2020-01-01 2020-01-02 2020-01-01 00:01:28 2020-01-02 03:46:28 2020-01-01 00:01:28.000 2020-01-02 03:46:28.000 88 99988 50038 5053838 88 99988 50038 5053838 -32481 32454 4617.009900990099 466318 -126 125 -1.1287128712871286 -114 880 100 10870 99781 2.64264 299.64264 151.14264 15114.26426 2.64264 299.64264 151.14263 15114.26399 2.64264 299.64264 151.14264 15114.26400 2020-01-01 2020-01-02 2020-01-01 00:14:40 2020-01-02 03:43:01 2020-01-01 00:14:40.000 2020-01-02 03:43:01.000 880 99781 50330.5 5033050 880 99781 50330.5 5033050 -32688 32247 4455.3 445530 -127 124 0.9 90 -881 100 10871 99782 2.64564 299.64564 151.14564 15114.56456 2.64564 299.64566 151.14564 15114.56474 2.64564 299.64564 151.14564 15114.56400 2020-01-01 2020-01-02 2020-01-01 00:14:41 2020-01-02 03:43:02 2020-01-01 00:14:41.000 2020-01-02 03:43:02.000 881 99782 50331.5 5033150 881 99782 50331.5 5033150 -32687 32248 4456.3 445630 -126 125 1.9 190 -882 100 10872 99783 2.64864 299.64864 151.14864 15114.86486 2.64864 299.64865 151.14865 15114.86504 2.64864 299.64864 151.14864 15114.86400 2020-01-01 2020-01-02 2020-01-01 00:14:42 2020-01-02 03:43:03 2020-01-01 00:14:42.000 2020-01-02 03:43:03.000 882 99783 50332.5 5033250 882 99783 50332.5 5033250 -32686 32249 4457.3 445730 -125 126 2.9 290 -883 100 10873 99784 2.65165 299.65165 151.15165 15115.16516 2.65165 299.65164 151.15165 15115.16522 2.65165 299.65165 151.15165 15115.16500 2020-01-01 2020-01-02 2020-01-01 00:14:43 2020-01-02 03:43:04 2020-01-01 00:14:43.000 2020-01-02 03:43:04.000 883 99784 50333.5 5033350 883 99784 50333.5 5033350 -32685 32250 4458.3 445830 -124 127 3.9 390 -884 100 10874 99785 2.65465 299.65465 151.15465 15115.46546 2.65465 299.65466 151.15465 15115.46532 2.65465 299.65465 151.15465 15115.46500 2020-01-01 2020-01-02 2020-01-01 00:14:44 2020-01-02 03:43:05 2020-01-01 00:14:44.000 2020-01-02 03:43:05.000 884 99785 50334.5 5033450 884 99785 50334.5 5033450 -32684 32251 4459.3 445930 -128 127 2.34 234 -885 100 10875 99786 2.65765 299.65765 151.15765 15115.76576 2.65765 299.65765 151.15765 15115.76562 2.65765 299.65765 151.15765 15115.76500 2020-01-01 2020-01-02 2020-01-01 00:14:45 2020-01-02 03:43:06 2020-01-01 00:14:45.000 2020-01-02 03:43:06.000 885 99786 50335.5 5033550 885 99786 50335.5 5033550 -32683 32252 4460.3 446030 -128 123 0.78 78 -886 100 10876 99787 2.66066 299.66066 151.16066 15116.06606 2.66066 299.66068 151.16066 15116.06621 2.66066 299.66066 151.16066 15116.06600 2020-01-01 2020-01-02 2020-01-01 00:14:46 2020-01-02 03:43:07 2020-01-01 00:14:46.000 2020-01-02 03:43:07.000 886 99787 50336.5 5033650 886 99787 50336.5 5033650 -32682 32253 4461.3 446130 -127 124 1.78 178 -887 100 10877 99788 2.66366 299.66366 151.16366 15116.36636 2.66366 299.66367 151.16366 15116.36651 2.66366 299.66366 151.16366 15116.36600 2020-01-01 2020-01-02 2020-01-01 00:14:47 2020-01-02 03:43:08 2020-01-01 00:14:47.000 2020-01-02 03:43:08.000 887 99788 50337.5 5033750 887 99788 50337.5 5033750 -32681 32254 4462.3 446230 -126 125 2.78 278 -888 100 10878 99789 2.66666 299.66666 151.16666 15116.66666 2.66666 299.66666 151.16666 15116.66669 2.66666 299.66666 151.16666 15116.66600 2020-01-01 2020-01-02 2020-01-01 00:14:48 2020-01-02 03:43:09 2020-01-01 00:14:48.000 2020-01-02 03:43:09.000 888 99789 50338.5 5033850 888 99789 50338.5 5033850 -32680 32255 4463.3 446330 -125 126 3.78 378 -889 100 10879 99790 2.66966 299.66966 151.16966 15116.96696 2.66966 299.66968 151.16966 15116.96679 2.66966 299.66966 151.16966 15116.96600 2020-01-01 2020-01-02 2020-01-01 00:14:49 2020-01-02 03:43:10 2020-01-01 00:14:49.000 2020-01-02 03:43:10.000 889 99790 50339.5 5033950 889 99790 50339.5 5033950 -32679 32256 4464.3 446430 -124 127 4.78 478 -89 102 10079 99989 0.26726 300.26726 150.26726 15176.99399 0.26726 300.26727 150.26727 15176.9943 0.26726 300.26726 150.26726 15176.99326 2020-01-01 2020-01-02 2020-01-01 00:01:29 2020-01-02 03:46:29 2020-01-01 00:01:29.000 2020-01-02 03:46:29.000 89 99989 50039 5053939 89 99989 50039 5053939 -32480 32455 4618.009900990099 466419 -125 126 -0.12871287128712872 -13 -890 100 10880 99791 2.67267 299.67267 151.17267 15117.26726 2.67267 299.67267 151.17267 15117.26708 2.67267 299.67267 151.17267 15117.26700 2020-01-01 2020-01-02 2020-01-01 00:14:50 2020-01-02 03:43:11 2020-01-01 00:14:50.000 2020-01-02 03:43:11.000 890 99791 50340.5 5034050 890 99791 50340.5 5034050 -32678 32257 4465.3 446530 -128 127 3.22 322 -891 100 10881 99792 2.67567 299.67567 151.17567 15117.56756 2.67567 299.6757 151.17567 15117.56768 2.67567 299.67567 151.17567 15117.56700 2020-01-01 2020-01-02 2020-01-01 00:14:51 2020-01-02 03:43:12 2020-01-01 00:14:51.000 2020-01-02 03:43:12.000 891 99792 50341.5 5034150 891 99792 50341.5 5034150 -32677 32258 4466.3 446630 -128 127 1.66 166 -892 100 10882 99793 2.67867 299.67867 151.17867 15117.86786 2.67867 299.67868 151.17868 15117.86802 2.67867 299.67867 151.17867 15117.86700 2020-01-01 2020-01-02 2020-01-01 00:14:52 2020-01-02 03:43:13 2020-01-01 00:14:52.000 2020-01-02 03:43:13.000 892 99793 50342.5 5034250 892 99793 50342.5 5034250 -32676 32259 4467.3 446730 -128 124 0.1 10 -893 100 10883 99794 2.68168 299.68168 151.18168 15118.16816 2.68168 299.68167 151.18168 15118.16816 2.68168 299.68168 151.18168 15118.16800 2020-01-01 2020-01-02 2020-01-01 00:14:53 2020-01-02 03:43:14 2020-01-01 00:14:53.000 2020-01-02 03:43:14.000 893 99794 50343.5 5034350 893 99794 50343.5 5034350 -32675 32260 4468.3 446830 -127 125 1.1 110 -894 100 10884 99795 2.68468 299.68468 151.18468 15118.46846 2.68468 299.6847 151.18468 15118.46826 2.68468 299.68468 151.18468 15118.46800 2020-01-01 2020-01-02 2020-01-01 00:14:54 2020-01-02 03:43:15 2020-01-01 00:14:54.000 2020-01-02 03:43:15.000 894 99795 50344.5 5034450 894 99795 50344.5 5034450 -32674 32261 4469.3 446930 -126 126 2.1 210 -895 100 10885 99796 2.68768 299.68768 151.18768 15118.76876 2.68768 299.68768 151.18768 15118.76855 2.68768 299.68768 151.18768 15118.76800 2020-01-01 2020-01-02 2020-01-01 00:14:55 2020-01-02 03:43:16 2020-01-01 00:14:55.000 2020-01-02 03:43:16.000 895 99796 50345.5 5034550 895 99796 50345.5 5034550 -32673 32262 4470.3 447030 -125 127 3.1 310 -896 100 10886 99797 2.69069 299.69069 151.19069 15119.06906 2.69069 299.6907 151.19069 15119.06915 2.69069 299.69069 151.19069 15119.06900 2020-01-01 2020-01-02 2020-01-01 00:14:56 2020-01-02 03:43:17 2020-01-01 00:14:56.000 2020-01-02 03:43:17.000 896 99797 50346.5 5034650 896 99797 50346.5 5034650 -32672 32263 4471.3 447130 -128 127 1.54 154 -897 100 10887 99798 2.69369 299.69369 151.19369 15119.36936 2.69369 299.6937 151.19369 15119.36949 2.69369 299.69369 151.19369 15119.36900 2020-01-01 2020-01-02 2020-01-01 00:14:57 2020-01-02 03:43:18 2020-01-01 00:14:57.000 2020-01-02 03:43:18.000 897 99798 50347.5 5034750 897 99798 50347.5 5034750 -32671 32264 4472.3 447230 -128 127 -0.02 -2 -898 100 10888 99799 2.69669 299.69669 151.19669 15119.66966 2.69669 299.6967 151.19669 15119.66963 2.69669 299.69669 151.19669 15119.66900 2020-01-01 2020-01-02 2020-01-01 00:14:58 2020-01-02 03:43:19 2020-01-01 00:14:58.000 2020-01-02 03:43:19.000 898 99799 50348.5 5034850 898 99799 50348.5 5034850 -32670 32265 4473.3 447330 -128 123 -1.58 -158 -899 100 10889 99800 2.69969 299.69969 151.19969 15119.96996 2.69969 299.6997 151.1997 15119.97038 2.69969 299.69969 151.19969 15119.96900 2020-01-01 2020-01-02 2020-01-01 00:14:59 2020-01-02 03:43:20 2020-01-01 00:14:59.000 2020-01-02 03:43:20.000 899 99800 50349.5 5034950 899 99800 50349.5 5034950 -32669 32266 4474.3 447430 -127 124 -0.58 -58 -9 102 1008 9999 0.02702 300.02702 150.02702 15152.72972 0.02702 300.02704 150.02702 15152.72966 0.02702 300.02702 150.02702 15152.72902 2020-01-01 2020-01-02 2020-01-01 00:00:09 2020-01-02 03:45:09 2020-01-01 00:00:09.000 2020-01-02 03:45:09.000 9 99909 49959 5045859 9 99909 49959 5045859 -32560 32375 4538.009900990099 458339 -124 127 0.9801980198019802 99 -90 102 10080 99990 0.27027 300.27027 150.27027 15177.29729 0.27027 300.27026 150.27026 15177.29694 0.27027 300.27027 150.27027 15177.29727 2020-01-01 2020-01-02 2020-01-01 00:01:30 2020-01-02 03:46:30 2020-01-01 00:01:30.000 2020-01-02 03:46:30.000 90 99990 50040 5054040 90 99990 50040 5054040 -32479 32456 4619.009900990099 466520 -124 127 0.8712871287128713 88 -900 100 10890 99801 2.7027 299.7027 151.2027 15120.27027 2.7027 299.7027 151.2027 15120.27003 2.70270 299.70270 151.20270 15120.27000 2020-01-01 2020-01-02 2020-01-01 00:15:00 2020-01-02 03:43:21 2020-01-01 00:15:00.000 2020-01-02 03:43:21.000 900 99801 50350.5 5035050 900 99801 50350.5 5035050 -32668 32267 4475.3 447530 -126 125 0.42 42 -901 100 10891 99802 2.7057 299.7057 151.2057 15120.57057 2.7057 299.70572 151.2057 15120.57066 2.70570 299.70570 151.20570 15120.57000 2020-01-01 2020-01-02 2020-01-01 00:15:01 2020-01-02 03:43:22 2020-01-01 00:15:01.000 2020-01-02 03:43:22.000 901 99802 50351.5 5035150 901 99802 50351.5 5035150 -32667 32268 4476.3 447630 -125 126 1.42 142 -902 100 10892 99803 2.7087 299.7087 151.2087 15120.87087 2.7087 299.7087 151.2087 15120.87095 2.70870 299.70870 151.20870 15120.87000 2020-01-01 2020-01-02 2020-01-01 00:15:02 2020-01-02 03:43:23 2020-01-01 00:15:02.000 2020-01-02 03:43:23.000 902 99803 50352.5 5035250 902 99803 50352.5 5035250 -32666 32269 4477.3 447730 -124 127 2.42 242 -903 100 10893 99804 2.71171 299.71171 151.21171 15121.17117 2.71171 299.7117 151.21171 15121.1711 2.71171 299.71171 151.21171 15121.17100 2020-01-01 2020-01-02 2020-01-01 00:15:03 2020-01-02 03:43:24 2020-01-01 00:15:03.000 2020-01-02 03:43:24.000 903 99804 50353.5 5035350 903 99804 50353.5 5035350 -32665 32270 4478.3 447830 -128 127 0.86 86 -904 100 10894 99805 2.71471 299.71471 151.21471 15121.47147 2.71471 299.71472 151.21471 15121.47185 2.71471 299.71471 151.21471 15121.47100 2020-01-01 2020-01-02 2020-01-01 00:15:04 2020-01-02 03:43:25 2020-01-01 00:15:04.000 2020-01-02 03:43:25.000 904 99805 50354.5 5035450 904 99805 50354.5 5035450 -32664 32271 4479.3 447930 -128 123 -0.7 -70 -905 100 10895 99806 2.71771 299.71771 151.21771 15121.77177 2.71771 299.7177 151.21771 15121.77149 2.71771 299.71771 151.21771 15121.77100 2020-01-01 2020-01-02 2020-01-01 00:15:05 2020-01-02 03:43:26 2020-01-01 00:15:05.000 2020-01-02 03:43:26.000 905 99806 50355.5 5035550 905 99806 50355.5 5035550 -32663 32272 4480.3 448030 -127 124 0.3 30 -906 100 10896 99807 2.72072 299.72072 151.22072 15122.07207 2.72072 299.72073 151.22072 15122.07212 2.72072 299.72072 151.22072 15122.07200 2020-01-01 2020-01-02 2020-01-01 00:15:06 2020-01-02 03:43:27 2020-01-01 00:15:06.000 2020-01-02 03:43:27.000 906 99807 50356.5 5035650 906 99807 50356.5 5035650 -32662 32273 4481.3 448130 -126 125 1.3 130 +881 100 10871 99782 2.64564 299.64564 151.14564 15114.56456 2.64564 299.64566 151.14564 15114.56474 2.64564 299.64564 151.14564000000013 15114.56400 2020-01-01 2020-01-02 2020-01-01 00:14:41 2020-01-02 03:43:02 2020-01-01 00:14:41.000 2020-01-02 03:43:02.000 881 99782 50331.5 5033150 881 99782 50331.5 5033150 -32687 32248 4456.3 445630 -126 125 1.9 190 +882 100 10872 99783 2.64864 299.64864 151.14864 15114.86486 2.64864 299.64865 151.14865 15114.86504 2.64864 299.64864 151.14863999999992 15114.86400 2020-01-01 2020-01-02 2020-01-01 00:14:42 2020-01-02 03:43:03 2020-01-01 00:14:42.000 2020-01-02 03:43:03.000 882 99783 50332.5 5033250 882 99783 50332.5 5033250 -32686 32249 4457.3 445730 -125 126 2.9 290 +883 100 10873 99784 2.65165 299.65165 151.15165 15115.16516 2.65165 299.65164 151.15165 15115.16522 2.65165 299.65165 151.15164999999982 15115.16500 2020-01-01 2020-01-02 2020-01-01 00:14:43 2020-01-02 03:43:04 2020-01-01 00:14:43.000 2020-01-02 03:43:04.000 883 99784 50333.5 5033350 883 99784 50333.5 5033350 -32685 32250 4458.3 445830 -124 127 3.9 390 +884 100 10874 99785 2.65465 299.65465 151.15465 15115.46546 2.65465 299.65466 151.15465 15115.46532 2.65465 299.65465 151.1546500000003 15115.46500 2020-01-01 2020-01-02 2020-01-01 00:14:44 2020-01-02 03:43:05 2020-01-01 00:14:44.000 2020-01-02 03:43:05.000 884 99785 50334.5 5033450 884 99785 50334.5 5033450 -32684 32251 4459.3 445930 -128 127 2.34 234 +885 100 10875 99786 2.65765 299.65765 151.15765 15115.76576 2.65765 299.65765 151.15765 15115.76562 2.65765 299.65765 151.1576499999998 15115.76500 2020-01-01 2020-01-02 2020-01-01 00:14:45 2020-01-02 03:43:06 2020-01-01 00:14:45.000 2020-01-02 03:43:06.000 885 99786 50335.5 5033550 885 99786 50335.5 5033550 -32683 32252 4460.3 446030 -128 123 0.78 78 +886 100 10876 99787 2.66066 299.66066 151.16066 15116.06606 2.66066 299.66068 151.16066 15116.06621 2.66066 299.66066 151.16065999999967 15116.06600 2020-01-01 2020-01-02 2020-01-01 00:14:46 2020-01-02 03:43:07 2020-01-01 00:14:46.000 2020-01-02 03:43:07.000 886 99787 50336.5 5033650 886 99787 50336.5 5033650 -32682 32253 4461.3 446130 -127 124 1.78 178 +887 100 10877 99788 2.66366 299.66366 151.16366 15116.36636 2.66366 299.66367 151.16366 15116.36651 2.66366 299.66366 151.16366000000014 15116.36600 2020-01-01 2020-01-02 2020-01-01 00:14:47 2020-01-02 03:43:08 2020-01-01 00:14:47.000 2020-01-02 03:43:08.000 887 99788 50337.5 5033750 887 99788 50337.5 5033750 -32681 32254 4462.3 446230 -126 125 2.78 278 +888 100 10878 99789 2.66666 299.66666 151.16666 15116.66666 2.66666 299.66666 151.16666 15116.66669 2.66666 299.66666 151.16666000000018 15116.66600 2020-01-01 2020-01-02 2020-01-01 00:14:48 2020-01-02 03:43:09 2020-01-01 00:14:48.000 2020-01-02 03:43:09.000 888 99789 50338.5 5033850 888 99789 50338.5 5033850 -32680 32255 4463.3 446330 -125 126 3.78 378 +889 100 10879 99790 2.66966 299.66966 151.16966 15116.96696 2.66966 299.66968 151.16966 15116.96679 2.66966 299.66966 151.16965999999968 15116.96600 2020-01-01 2020-01-02 2020-01-01 00:14:49 2020-01-02 03:43:10 2020-01-01 00:14:49.000 2020-01-02 03:43:10.000 889 99790 50339.5 5033950 889 99790 50339.5 5033950 -32679 32256 4464.3 446430 -124 127 4.78 478 +89 102 10079 99989 0.26726 300.26726 150.26726 15176.99399 0.26726 300.26727 150.26727 15176.9943 0.26726 300.26726 150.26726000000002 15176.99326 2020-01-01 2020-01-02 2020-01-01 00:01:29 2020-01-02 03:46:29 2020-01-01 00:01:29.000 2020-01-02 03:46:29.000 89 99989 50039 5053939 89 99989 50039 5053939 -32480 32455 4618.009900990099 466419 -125 126 -0.12871287128712872 -13 +890 100 10880 99791 2.67267 299.67267 151.17267 15117.26726 2.67267 299.67267 151.17267 15117.26708 2.67267 299.67267 151.17266999999995 15117.26700 2020-01-01 2020-01-02 2020-01-01 00:14:50 2020-01-02 03:43:11 2020-01-01 00:14:50.000 2020-01-02 03:43:11.000 890 99791 50340.5 5034050 890 99791 50340.5 5034050 -32678 32257 4465.3 446530 -128 127 3.22 322 +891 100 10881 99792 2.67567 299.67567 151.17567 15117.56756 2.67567 299.6757 151.17567 15117.56768 2.67567 299.67567 151.17567000000005 15117.56700 2020-01-01 2020-01-02 2020-01-01 00:14:51 2020-01-02 03:43:12 2020-01-01 00:14:51.000 2020-01-02 03:43:12.000 891 99792 50341.5 5034150 891 99792 50341.5 5034150 -32677 32258 4466.3 446630 -128 127 1.66 166 +892 100 10882 99793 2.67867 299.67867 151.17867 15117.86786 2.67867 299.67868 151.17868 15117.86802 2.67867 299.67867 151.17866999999987 15117.86700 2020-01-01 2020-01-02 2020-01-01 00:14:52 2020-01-02 03:43:13 2020-01-01 00:14:52.000 2020-01-02 03:43:13.000 892 99793 50342.5 5034250 892 99793 50342.5 5034250 -32676 32259 4467.3 446730 -128 124 0.1 10 +893 100 10883 99794 2.68168 299.68168 151.18168 15118.16816 2.68168 299.68167 151.18168 15118.16816 2.68168 299.68168 151.1816799999998 15118.16800 2020-01-01 2020-01-02 2020-01-01 00:14:53 2020-01-02 03:43:14 2020-01-01 00:14:53.000 2020-01-02 03:43:14.000 893 99794 50343.5 5034350 893 99794 50343.5 5034350 -32675 32260 4468.3 446830 -127 125 1.1 110 +894 100 10884 99795 2.68468 299.68468 151.18468 15118.46846 2.68468 299.6847 151.18468 15118.46826 2.68468 299.68468 151.18468000000018 15118.46800 2020-01-01 2020-01-02 2020-01-01 00:14:54 2020-01-02 03:43:15 2020-01-01 00:14:54.000 2020-01-02 03:43:15.000 894 99795 50344.5 5034450 894 99795 50344.5 5034450 -32674 32261 4469.3 446930 -126 126 2.1 210 +895 100 10885 99796 2.68768 299.68768 151.18768 15118.76876 2.68768 299.68768 151.18768 15118.76855 2.68768 299.68768 151.18767999999972 15118.76800 2020-01-01 2020-01-02 2020-01-01 00:14:55 2020-01-02 03:43:16 2020-01-01 00:14:55.000 2020-01-02 03:43:16.000 895 99796 50345.5 5034550 895 99796 50345.5 5034550 -32673 32262 4470.3 447030 -125 127 3.1 310 +896 100 10886 99797 2.69069 299.69069 151.19069 15119.06906 2.69069 299.6907 151.19069 15119.06915 2.69069 299.69069 151.19068999999993 15119.06900 2020-01-01 2020-01-02 2020-01-01 00:14:56 2020-01-02 03:43:17 2020-01-01 00:14:56.000 2020-01-02 03:43:17.000 896 99797 50346.5 5034650 896 99797 50346.5 5034650 -32672 32263 4471.3 447130 -128 127 1.54 154 +897 100 10887 99798 2.69369 299.69369 151.19369 15119.36936 2.69369 299.6937 151.19369 15119.36949 2.69369 299.69369 151.19369000000003 15119.36900 2020-01-01 2020-01-02 2020-01-01 00:14:57 2020-01-02 03:43:18 2020-01-01 00:14:57.000 2020-01-02 03:43:18.000 897 99798 50347.5 5034750 897 99798 50347.5 5034750 -32671 32264 4472.3 447230 -128 127 -0.02 -2 +898 100 10888 99799 2.69669 299.69669 151.19669 15119.66966 2.69669 299.6967 151.19669 15119.66963 2.69669 299.69669 151.19669000000013 15119.66900 2020-01-01 2020-01-02 2020-01-01 00:14:58 2020-01-02 03:43:19 2020-01-01 00:14:58.000 2020-01-02 03:43:19.000 898 99799 50348.5 5034850 898 99799 50348.5 5034850 -32670 32265 4473.3 447330 -128 123 -1.58 -158 +899 100 10889 99800 2.69969 299.69969 151.19969 15119.96996 2.69969 299.6997 151.1997 15119.97038 2.69969 299.69969 151.19968999999995 15119.96900 2020-01-01 2020-01-02 2020-01-01 00:14:59 2020-01-02 03:43:20 2020-01-01 00:14:59.000 2020-01-02 03:43:20.000 899 99800 50349.5 5034950 899 99800 50349.5 5034950 -32669 32266 4474.3 447430 -127 124 -0.58 -58 +9 102 1008 9999 0.02702 300.02702 150.02702 15152.72972 0.02702 300.02704 150.02702 15152.72966 0.02702 300.02702 150.02701999999977 15152.72902 2020-01-01 2020-01-02 2020-01-01 00:00:09 2020-01-02 03:45:09 2020-01-01 00:00:09.000 2020-01-02 03:45:09.000 9 99909 49959 5045859 9 99909 49959 5045859 -32560 32375 4538.009900990099 458339 -124 127 0.9801980198019802 99 +90 102 10080 99990 0.27027 300.27027 150.27027 15177.29729 0.27027 300.27026 150.27026 15177.29694 0.27027 300.27027 150.27027000000027 15177.29727 2020-01-01 2020-01-02 2020-01-01 00:01:30 2020-01-02 03:46:30 2020-01-01 00:01:30.000 2020-01-02 03:46:30.000 90 99990 50040 5054040 90 99990 50040 5054040 -32479 32456 4619.009900990099 466520 -124 127 0.8712871287128713 88 +900 100 10890 99801 2.7027 299.7027 151.2027 15120.27027 2.7027 299.7027 151.2027 15120.27003 2.70270 299.70270 151.20269999999985 15120.27000 2020-01-01 2020-01-02 2020-01-01 00:15:00 2020-01-02 03:43:21 2020-01-01 00:15:00.000 2020-01-02 03:43:21.000 900 99801 50350.5 5035050 900 99801 50350.5 5035050 -32668 32267 4475.3 447530 -126 125 0.42 42 +901 100 10891 99802 2.7057 299.7057 151.2057 15120.57057 2.7057 299.70572 151.2057 15120.57066 2.70570 299.70570 151.20570000000032 15120.57000 2020-01-01 2020-01-02 2020-01-01 00:15:01 2020-01-02 03:43:22 2020-01-01 00:15:01.000 2020-01-02 03:43:22.000 901 99802 50351.5 5035150 901 99802 50351.5 5035150 -32667 32268 4476.3 447630 -125 126 1.42 142 +902 100 10892 99803 2.7087 299.7087 151.2087 15120.87087 2.7087 299.7087 151.2087 15120.87095 2.70870 299.70870 151.20869999999982 15120.87000 2020-01-01 2020-01-02 2020-01-01 00:15:02 2020-01-02 03:43:23 2020-01-01 00:15:02.000 2020-01-02 03:43:23.000 902 99803 50352.5 5035250 902 99803 50352.5 5035250 -32666 32269 4477.3 447730 -124 127 2.42 242 +903 100 10893 99804 2.71171 299.71171 151.21171 15121.17117 2.71171 299.7117 151.21171 15121.1711 2.71171 299.71171 151.2117099999997 15121.17100 2020-01-01 2020-01-02 2020-01-01 00:15:03 2020-01-02 03:43:24 2020-01-01 00:15:03.000 2020-01-02 03:43:24.000 903 99804 50353.5 5035350 903 99804 50353.5 5035350 -32665 32270 4478.3 447830 -128 127 0.86 86 +904 100 10894 99805 2.71471 299.71471 151.21471 15121.47147 2.71471 299.71472 151.21471 15121.47185 2.71471 299.71471 151.21471000000017 15121.47100 2020-01-01 2020-01-02 2020-01-01 00:15:04 2020-01-02 03:43:25 2020-01-01 00:15:04.000 2020-01-02 03:43:25.000 904 99805 50354.5 5035450 904 99805 50354.5 5035450 -32664 32271 4479.3 447930 -128 123 -0.7 -70 +905 100 10895 99806 2.71771 299.71771 151.21771 15121.77177 2.71771 299.7177 151.21771 15121.77149 2.71771 299.71771 151.2177100000002 15121.77100 2020-01-01 2020-01-02 2020-01-01 00:15:05 2020-01-02 03:43:26 2020-01-01 00:15:05.000 2020-01-02 03:43:26.000 905 99806 50355.5 5035550 905 99806 50355.5 5035550 -32663 32272 4480.3 448030 -127 124 0.3 30 +906 100 10896 99807 2.72072 299.72072 151.22072 15122.07207 2.72072 299.72073 151.22072 15122.07212 2.72072 299.72072 151.22071999999986 15122.07200 2020-01-01 2020-01-02 2020-01-01 00:15:06 2020-01-02 03:43:27 2020-01-01 00:15:06.000 2020-01-02 03:43:27.000 906 99807 50356.5 5035650 906 99807 50356.5 5035650 -32662 32273 4481.3 448130 -126 125 1.3 130 907 100 10897 99808 2.72372 299.72372 151.22372 15122.37237 2.72372 299.72372 151.22372 15122.37243 2.72372 299.72372 151.22372 15122.37200 2020-01-01 2020-01-02 2020-01-01 00:15:07 2020-01-02 03:43:28 2020-01-01 00:15:07.000 2020-01-02 03:43:28.000 907 99808 50357.5 5035750 907 99808 50357.5 5035750 -32661 32274 4482.3 448230 -125 126 2.3 230 -908 100 10898 99809 2.72672 299.72672 151.22672 15122.67267 2.72672 299.7267 151.22672 15122.67272 2.72672 299.72672 151.22672 15122.67200 2020-01-01 2020-01-02 2020-01-01 00:15:08 2020-01-02 03:43:29 2020-01-01 00:15:08.000 2020-01-02 03:43:29.000 908 99809 50358.5 5035850 908 99809 50358.5 5035850 -32660 32275 4483.3 448330 -124 127 3.3 330 -909 100 10899 99810 2.72972 299.72972 151.22972 15122.97297 2.72972 299.72974 151.22973 15122.97332 2.72972 299.72972 151.22972 15122.97200 2020-01-01 2020-01-02 2020-01-01 00:15:09 2020-01-02 03:43:30 2020-01-01 00:15:09.000 2020-01-02 03:43:30.000 909 99810 50359.5 5035950 909 99810 50359.5 5035950 -32659 32276 4484.3 448430 -128 127 1.74 174 -91 102 10081 99991 0.27327 300.27327 150.27327 15177.6006 0.27327 300.2733 150.27327 15177.60054 0.27327 300.27327 150.27327 15177.60027 2020-01-01 2020-01-02 2020-01-01 00:01:31 2020-01-02 03:46:31 2020-01-01 00:01:31.000 2020-01-02 03:46:31.000 91 99991 50041 5054141 91 99991 50041 5054141 -32478 32457 4620.009900990099 466621 -128 127 -0.6633663366336634 -67 -910 100 10900 99811 2.73273 299.73273 151.23273 15123.27327 2.73273 299.73273 151.23272 15123.27296 2.73273 299.73273 151.23273 15123.27300 2020-01-01 2020-01-02 2020-01-01 00:15:10 2020-01-02 03:43:31 2020-01-01 00:15:10.000 2020-01-02 03:43:31.000 910 99811 50360.5 5036050 910 99811 50360.5 5036050 -32658 32277 4485.3 448530 -128 123 0.18 18 -911 100 10901 99812 2.73573 299.73573 151.23573 15123.57357 2.73573 299.73575 151.23573 15123.57359 2.73573 299.73573 151.23573 15123.57300 2020-01-01 2020-01-02 2020-01-01 00:15:11 2020-01-02 03:43:32 2020-01-01 00:15:11.000 2020-01-02 03:43:32.000 911 99812 50361.5 5036150 911 99812 50361.5 5036150 -32657 32278 4486.3 448630 -127 124 1.18 118 -912 100 10902 99813 2.73873 299.73873 151.23873 15123.87387 2.73873 299.73874 151.23873 15123.8739 2.73873 299.73873 151.23873 15123.87300 2020-01-01 2020-01-02 2020-01-01 00:15:12 2020-01-02 03:43:33 2020-01-01 00:15:12.000 2020-01-02 03:43:33.000 912 99813 50362.5 5036250 912 99813 50362.5 5036250 -32656 32279 4487.3 448730 -126 125 2.18 218 -913 100 10903 99814 2.74174 299.74174 151.24174 15124.17417 2.74174 299.74173 151.24174 15124.17419 2.74174 299.74174 151.24174 15124.17400 2020-01-01 2020-01-02 2020-01-01 00:15:13 2020-01-02 03:43:34 2020-01-01 00:15:13.000 2020-01-02 03:43:34.000 913 99814 50363.5 5036350 913 99814 50363.5 5036350 -32655 32280 4488.3 448830 -125 126 3.18 318 -914 100 10904 99815 2.74474 299.74474 151.24474 15124.47447 2.74474 299.74475 151.24474 15124.47479 2.74474 299.74474 151.24474 15124.47400 2020-01-01 2020-01-02 2020-01-01 00:15:14 2020-01-02 03:43:35 2020-01-01 00:15:14.000 2020-01-02 03:43:35.000 914 99815 50364.5 5036450 914 99815 50364.5 5036450 -32654 32281 4489.3 448930 -124 127 4.18 418 -915 100 10905 99816 2.74774 299.74774 151.24774 15124.77477 2.74774 299.74774 151.24774 15124.77447 2.74774 299.74774 151.24774 15124.77400 2020-01-01 2020-01-02 2020-01-01 00:15:15 2020-01-02 03:43:36 2020-01-01 00:15:15.000 2020-01-02 03:43:36.000 915 99816 50365.5 5036550 915 99816 50365.5 5036550 -32653 32282 4490.3 449030 -128 127 2.62 262 -916 100 10906 99817 2.75075 299.75075 151.25075 15125.07507 2.75075 299.75076 151.25075 15125.07507 2.75075 299.75075 151.25075 15125.07500 2020-01-01 2020-01-02 2020-01-01 00:15:16 2020-01-02 03:43:37 2020-01-01 00:15:16.000 2020-01-02 03:43:37.000 916 99817 50366.5 5036650 916 99817 50366.5 5036650 -32652 32283 4491.3 449130 -128 127 1.06 106 -917 100 10907 99818 2.75375 299.75375 151.25375 15125.37537 2.75375 299.75375 151.25375 15125.37536 2.75375 299.75375 151.25375 15125.37500 2020-01-01 2020-01-02 2020-01-01 00:15:17 2020-01-02 03:43:38 2020-01-01 00:15:17.000 2020-01-02 03:43:38.000 917 99818 50367.5 5036750 917 99818 50367.5 5036750 -32651 32284 4492.3 449230 -128 124 -0.5 -50 -918 100 10908 99819 2.75675 299.75675 151.25675 15125.67567 2.75675 299.75674 151.25675 15125.67566 2.75675 299.75675 151.25675 15125.67500 2020-01-01 2020-01-02 2020-01-01 00:15:18 2020-01-02 03:43:39 2020-01-01 00:15:18.000 2020-01-02 03:43:39.000 918 99819 50368.5 5036850 918 99819 50368.5 5036850 -32650 32285 4493.3 449330 -127 125 0.5 50 -919 100 10909 99820 2.75975 299.75975 151.25975 15125.97597 2.75975 299.75977 151.25976 15125.97626 2.75975 299.75975 151.25975 15125.97500 2020-01-01 2020-01-02 2020-01-01 00:15:19 2020-01-02 03:43:40 2020-01-01 00:15:19.000 2020-01-02 03:43:40.000 919 99820 50369.5 5036950 919 99820 50369.5 5036950 -32649 32286 4494.3 449430 -126 126 1.5 150 -92 102 10082 99992 0.27627 300.27627 150.27627 15177.9039 0.27627 300.27628 150.27627 15177.90384 0.27627 300.27627 150.27627 15177.90327 2020-01-01 2020-01-02 2020-01-01 00:01:32 2020-01-02 03:46:32 2020-01-01 00:01:32.000 2020-01-02 03:46:32.000 92 99992 50042 5054242 92 99992 50042 5054242 -32477 32458 4621.009900990099 466722 -128 123 -2.198019801980198 -222 -920 100 10910 99821 2.76276 299.76276 151.26276 15126.27627 2.76276 299.76276 151.26275 15126.27594 2.76276 299.76276 151.26276 15126.27600 2020-01-01 2020-01-02 2020-01-01 00:15:20 2020-01-02 03:43:41 2020-01-01 00:15:20.000 2020-01-02 03:43:41.000 920 99821 50370.5 5037050 920 99821 50370.5 5037050 -32648 32287 4495.3 449530 -125 127 2.5 250 -921 100 10911 99822 2.76576 299.76576 151.26576 15126.57657 2.76576 299.76578 151.26576 15126.57654 2.76576 299.76576 151.26576 15126.57600 2020-01-01 2020-01-02 2020-01-01 00:15:21 2020-01-02 03:43:42 2020-01-01 00:15:21.000 2020-01-02 03:43:42.000 921 99822 50371.5 5037150 921 99822 50371.5 5037150 -32647 32288 4496.3 449630 -128 127 0.94 94 -922 100 10912 99823 2.76876 299.76876 151.26876 15126.87687 2.76876 299.76877 151.26876 15126.87683 2.76876 299.76876 151.26876 15126.87600 2020-01-01 2020-01-02 2020-01-01 00:15:22 2020-01-02 03:43:43 2020-01-01 00:15:22.000 2020-01-02 03:43:43.000 922 99823 50372.5 5037250 922 99823 50372.5 5037250 -32646 32289 4497.3 449730 -128 127 -0.62 -62 -923 100 10913 99824 2.77177 299.77177 151.27177 15127.17717 2.77177 299.77176 151.27177 15127.17713 2.77177 299.77177 151.27177 15127.17700 2020-01-01 2020-01-02 2020-01-01 00:15:23 2020-01-02 03:43:44 2020-01-01 00:15:23.000 2020-01-02 03:43:44.000 923 99824 50373.5 5037350 923 99824 50373.5 5037350 -32645 32290 4498.3 449830 -128 123 -2.18 -218 +908 100 10898 99809 2.72672 299.72672 151.22672 15122.67267 2.72672 299.7267 151.22672 15122.67272 2.72672 299.72672 151.22672000000009 15122.67200 2020-01-01 2020-01-02 2020-01-01 00:15:08 2020-01-02 03:43:29 2020-01-01 00:15:08.000 2020-01-02 03:43:29.000 908 99809 50358.5 5035850 908 99809 50358.5 5035850 -32660 32275 4483.3 448330 -124 127 3.3 330 +909 100 10899 99810 2.72972 299.72972 151.22972 15122.97297 2.72972 299.72974 151.22973 15122.97332 2.72972 299.72972 151.22971999999987 15122.97200 2020-01-01 2020-01-02 2020-01-01 00:15:09 2020-01-02 03:43:30 2020-01-01 00:15:09.000 2020-01-02 03:43:30.000 909 99810 50359.5 5035950 909 99810 50359.5 5035950 -32659 32276 4484.3 448430 -128 127 1.74 174 +91 102 10081 99991 0.27327 300.27327 150.27327 15177.6006 0.27327 300.2733 150.27327 15177.60054 0.27327 300.27327 150.2732699999998 15177.60027 2020-01-01 2020-01-02 2020-01-01 00:01:31 2020-01-02 03:46:31 2020-01-01 00:01:31.000 2020-01-02 03:46:31.000 91 99991 50041 5054141 91 99991 50041 5054141 -32478 32457 4620.009900990099 466621 -128 127 -0.6633663366336634 -67 +910 100 10900 99811 2.73273 299.73273 151.23273 15123.27327 2.73273 299.73273 151.23272 15123.27296 2.73273 299.73273 151.23272999999983 15123.27300 2020-01-01 2020-01-02 2020-01-01 00:15:10 2020-01-02 03:43:31 2020-01-01 00:15:10.000 2020-01-02 03:43:31.000 910 99811 50360.5 5036050 910 99811 50360.5 5036050 -32658 32277 4485.3 448530 -128 123 0.18 18 +911 100 10901 99812 2.73573 299.73573 151.23573 15123.57357 2.73573 299.73575 151.23573 15123.57359 2.73573 299.73573 151.23573000000022 15123.57300 2020-01-01 2020-01-02 2020-01-01 00:15:11 2020-01-02 03:43:32 2020-01-01 00:15:11.000 2020-01-02 03:43:32.000 911 99812 50361.5 5036150 911 99812 50361.5 5036150 -32657 32278 4486.3 448630 -127 124 1.18 118 +912 100 10902 99813 2.73873 299.73873 151.23873 15123.87387 2.73873 299.73874 151.23873 15123.8739 2.73873 299.73873 151.23872999999972 15123.87300 2020-01-01 2020-01-02 2020-01-01 00:15:12 2020-01-02 03:43:33 2020-01-01 00:15:12.000 2020-01-02 03:43:33.000 912 99813 50362.5 5036250 912 99813 50362.5 5036250 -32656 32279 4487.3 448730 -126 125 2.18 218 +913 100 10903 99814 2.74174 299.74174 151.24174 15124.17417 2.74174 299.74173 151.24174 15124.17419 2.74174 299.74174 151.24173999999996 15124.17400 2020-01-01 2020-01-02 2020-01-01 00:15:13 2020-01-02 03:43:34 2020-01-01 00:15:13.000 2020-01-02 03:43:34.000 913 99814 50363.5 5036350 913 99814 50363.5 5036350 -32655 32280 4488.3 448830 -125 126 3.18 318 +914 100 10904 99815 2.74474 299.74474 151.24474 15124.47447 2.74474 299.74475 151.24474 15124.47479 2.74474 299.74474 151.24474000000006 15124.47400 2020-01-01 2020-01-02 2020-01-01 00:15:14 2020-01-02 03:43:35 2020-01-01 00:15:14.000 2020-01-02 03:43:35.000 914 99815 50364.5 5036450 914 99815 50364.5 5036450 -32654 32281 4489.3 448930 -124 127 4.18 418 +915 100 10905 99816 2.74774 299.74774 151.24774 15124.77477 2.74774 299.74774 151.24774 15124.77447 2.74774 299.74774 151.24774000000014 15124.77400 2020-01-01 2020-01-02 2020-01-01 00:15:15 2020-01-02 03:43:36 2020-01-01 00:15:15.000 2020-01-02 03:43:36.000 915 99816 50365.5 5036550 915 99816 50365.5 5036550 -32653 32282 4490.3 449030 -128 127 2.62 262 +916 100 10906 99817 2.75075 299.75075 151.25075 15125.07507 2.75075 299.75076 151.25075 15125.07507 2.75075 299.75075 151.2507499999998 15125.07500 2020-01-01 2020-01-02 2020-01-01 00:15:16 2020-01-02 03:43:37 2020-01-01 00:15:16.000 2020-01-02 03:43:37.000 916 99817 50366.5 5036650 916 99817 50366.5 5036650 -32652 32283 4491.3 449130 -128 127 1.06 106 +917 100 10907 99818 2.75375 299.75375 151.25375 15125.37537 2.75375 299.75375 151.25375 15125.37536 2.75375 299.75375 151.25374999999988 15125.37500 2020-01-01 2020-01-02 2020-01-01 00:15:17 2020-01-02 03:43:38 2020-01-01 00:15:17.000 2020-01-02 03:43:38.000 917 99818 50367.5 5036750 917 99818 50367.5 5036750 -32651 32284 4492.3 449230 -128 124 -0.5 -50 +918 100 10908 99819 2.75675 299.75675 151.25675 15125.67567 2.75675 299.75674 151.25675 15125.67566 2.75675 299.75675 151.25675000000007 15125.67500 2020-01-01 2020-01-02 2020-01-01 00:15:18 2020-01-02 03:43:39 2020-01-01 00:15:18.000 2020-01-02 03:43:39.000 918 99819 50368.5 5036850 918 99819 50368.5 5036850 -32650 32285 4493.3 449330 -127 125 0.5 50 +919 100 10909 99820 2.75975 299.75975 151.25975 15125.97597 2.75975 299.75977 151.25976 15125.97626 2.75975 299.75975 151.25974999999983 15125.97500 2020-01-01 2020-01-02 2020-01-01 00:15:19 2020-01-02 03:43:40 2020-01-01 00:15:19.000 2020-01-02 03:43:40.000 919 99820 50369.5 5036950 919 99820 50369.5 5036950 -32649 32286 4494.3 449430 -126 126 1.5 150 +92 102 10082 99992 0.27627 300.27627 150.27627 15177.9039 0.27627 300.27628 150.27627 15177.90384 0.27627 300.27627 150.27627000000018 15177.90327 2020-01-01 2020-01-02 2020-01-01 00:01:32 2020-01-02 03:46:32 2020-01-01 00:01:32.000 2020-01-02 03:46:32.000 92 99992 50042 5054242 92 99992 50042 5054242 -32477 32458 4621.009900990099 466722 -128 123 -2.198019801980198 -222 +920 100 10910 99821 2.76276 299.76276 151.26276 15126.27627 2.76276 299.76276 151.26275 15126.27594 2.76276 299.76276 151.26275999999973 15126.27600 2020-01-01 2020-01-02 2020-01-01 00:15:20 2020-01-02 03:43:41 2020-01-01 00:15:20.000 2020-01-02 03:43:41.000 920 99821 50370.5 5037050 920 99821 50370.5 5037050 -32648 32287 4495.3 449530 -125 127 2.5 250 +921 100 10911 99822 2.76576 299.76576 151.26576 15126.57657 2.76576 299.76578 151.26576 15126.57654 2.76576 299.76576 151.2657600000002 15126.57600 2020-01-01 2020-01-02 2020-01-01 00:15:21 2020-01-02 03:43:42 2020-01-01 00:15:21.000 2020-01-02 03:43:42.000 921 99822 50371.5 5037150 921 99822 50371.5 5037150 -32647 32288 4496.3 449630 -128 127 0.94 94 +922 100 10912 99823 2.76876 299.76876 151.26876 15126.87687 2.76876 299.76877 151.26876 15126.87683 2.76876 299.76876 151.26876000000024 15126.87600 2020-01-01 2020-01-02 2020-01-01 00:15:22 2020-01-02 03:43:43 2020-01-01 00:15:22.000 2020-01-02 03:43:43.000 922 99823 50372.5 5037250 922 99823 50372.5 5037250 -32646 32289 4497.3 449730 -128 127 -0.62 -62 +923 100 10913 99824 2.77177 299.77177 151.27177 15127.17717 2.77177 299.77176 151.27177 15127.17713 2.77177 299.77177 151.2717699999999 15127.17700 2020-01-01 2020-01-02 2020-01-01 00:15:23 2020-01-02 03:43:44 2020-01-01 00:15:23.000 2020-01-02 03:43:44.000 923 99824 50373.5 5037350 923 99824 50373.5 5037350 -32645 32290 4498.3 449830 -128 123 -2.18 -218 924 100 10914 99825 2.77477 299.77477 151.27477 15127.47747 2.77477 299.77478 151.27477 15127.47776 2.77477 299.77477 151.27477 15127.47700 2020-01-01 2020-01-02 2020-01-01 00:15:24 2020-01-02 03:43:45 2020-01-01 00:15:24.000 2020-01-02 03:43:45.000 924 99825 50374.5 5037450 924 99825 50374.5 5037450 -32644 32291 4499.3 449930 -127 124 -1.18 -118 -925 100 10915 99826 2.77777 299.77777 151.27777 15127.77777 2.77777 299.77777 151.27777 15127.77741 2.77777 299.77777 151.27777 15127.77700 2020-01-01 2020-01-02 2020-01-01 00:15:25 2020-01-02 03:43:46 2020-01-01 00:15:25.000 2020-01-02 03:43:46.000 925 99826 50375.5 5037550 925 99826 50375.5 5037550 -32643 32292 4500.3 450030 -126 125 -0.18 -18 -926 100 10916 99827 2.78078 299.78078 151.28078 15128.07807 2.78078 299.7808 151.28078 15128.078 2.78078 299.78078 151.28078 15128.07800 2020-01-01 2020-01-02 2020-01-01 00:15:26 2020-01-02 03:43:47 2020-01-01 00:15:26.000 2020-01-02 03:43:47.000 926 99827 50376.5 5037650 926 99827 50376.5 5037650 -32642 32293 4501.3 450130 -125 126 0.82 82 -927 100 10917 99828 2.78378 299.78378 151.28378 15128.37837 2.78378 299.78378 151.28378 15128.3783 2.78378 299.78378 151.28378 15128.37800 2020-01-01 2020-01-02 2020-01-01 00:15:27 2020-01-02 03:43:48 2020-01-01 00:15:27.000 2020-01-02 03:43:48.000 927 99828 50377.5 5037750 927 99828 50377.5 5037750 -32641 32294 4502.3 450230 -124 127 1.82 182 -928 100 10918 99829 2.78678 299.78678 151.28678 15128.67867 2.78678 299.78677 151.28678 15128.6786 2.78678 299.78678 151.28678 15128.67800 2020-01-01 2020-01-02 2020-01-01 00:15:28 2020-01-02 03:43:49 2020-01-01 00:15:28.000 2020-01-02 03:43:49.000 928 99829 50378.5 5037850 928 99829 50378.5 5037850 -32640 32295 4503.3 450330 -128 127 0.26 26 -929 100 10919 99830 2.78978 299.78978 151.28978 15128.97897 2.78978 299.7898 151.28979 15128.97923 2.78978 299.78978 151.28978 15128.97800 2020-01-01 2020-01-02 2020-01-01 00:15:29 2020-01-02 03:43:50 2020-01-01 00:15:29.000 2020-01-02 03:43:50.000 929 99830 50379.5 5037950 929 99830 50379.5 5037950 -32639 32296 4504.3 450430 -128 123 -1.3 -130 -93 102 10083 99993 0.27927 300.27927 150.27927 15178.2072 0.27927 300.27927 150.27927 15178.20715 0.27927 300.27927 150.27927 15178.20627 2020-01-01 2020-01-02 2020-01-01 00:01:33 2020-01-02 03:46:33 2020-01-01 00:01:33.000 2020-01-02 03:46:33.000 93 99993 50043 5054343 93 99993 50043 5054343 -32476 32459 4622.009900990099 466823 -127 124 -1.198019801980198 -121 +925 100 10915 99826 2.77777 299.77777 151.27777 15127.77777 2.77777 299.77777 151.27777 15127.77741 2.77777 299.77777 151.2777700000001 15127.77700 2020-01-01 2020-01-02 2020-01-01 00:15:25 2020-01-02 03:43:46 2020-01-01 00:15:25.000 2020-01-02 03:43:46.000 925 99826 50375.5 5037550 925 99826 50375.5 5037550 -32643 32292 4500.3 450030 -126 125 -0.18 -18 +926 100 10916 99827 2.78078 299.78078 151.28078 15128.07807 2.78078 299.7808 151.28078 15128.078 2.78078 299.78078 151.28077999999974 15128.07800 2020-01-01 2020-01-02 2020-01-01 00:15:26 2020-01-02 03:43:47 2020-01-01 00:15:26.000 2020-01-02 03:43:47.000 926 99827 50376.5 5037650 926 99827 50376.5 5037650 -32642 32293 4501.3 450130 -125 126 0.82 82 +927 100 10917 99828 2.78378 299.78378 151.28378 15128.37837 2.78378 299.78378 151.28378 15128.3783 2.78378 299.78378 151.28377999999984 15128.37800 2020-01-01 2020-01-02 2020-01-01 00:15:27 2020-01-02 03:43:48 2020-01-01 00:15:27.000 2020-01-02 03:43:48.000 927 99828 50377.5 5037750 927 99828 50377.5 5037750 -32641 32294 4502.3 450230 -124 127 1.82 182 +928 100 10918 99829 2.78678 299.78678 151.28678 15128.67867 2.78678 299.78677 151.28678 15128.6786 2.78678 299.78678 151.28678000000025 15128.67800 2020-01-01 2020-01-02 2020-01-01 00:15:28 2020-01-02 03:43:49 2020-01-01 00:15:28.000 2020-01-02 03:43:49.000 928 99829 50378.5 5037850 928 99829 50378.5 5037850 -32640 32295 4503.3 450330 -128 127 0.26 26 +929 100 10919 99830 2.78978 299.78978 151.28978 15128.97897 2.78978 299.7898 151.28979 15128.97923 2.78978 299.78978 151.28977999999975 15128.97800 2020-01-01 2020-01-02 2020-01-01 00:15:29 2020-01-02 03:43:50 2020-01-01 00:15:29.000 2020-01-02 03:43:50.000 929 99830 50379.5 5037950 929 99830 50379.5 5037950 -32639 32296 4504.3 450430 -128 123 -1.3 -130 +93 102 10083 99993 0.27927 300.27927 150.27927 15178.2072 0.27927 300.27927 150.27927 15178.20715 0.27927 300.27927 150.2792699999997 15178.20627 2020-01-01 2020-01-02 2020-01-01 00:01:33 2020-01-02 03:46:33 2020-01-01 00:01:33.000 2020-01-02 03:46:33.000 93 99993 50043 5054343 93 99993 50043 5054343 -32476 32459 4622.009900990099 466823 -127 124 -1.198019801980198 -121 930 100 10920 99831 2.79279 299.79279 151.29279 15129.27927 2.79279 299.7928 151.29278 15129.27888 2.79279 299.79279 151.29279 15129.27900 2020-01-01 2020-01-02 2020-01-01 00:15:30 2020-01-02 03:43:51 2020-01-01 00:15:30.000 2020-01-02 03:43:51.000 930 99831 50380.5 5038050 930 99831 50380.5 5038050 -32638 32297 4505.3 450530 -127 124 -0.3 -30 -931 100 10921 99832 2.79579 299.79579 151.29579 15129.57957 2.79579 299.7958 151.29579 15129.57963 2.79579 299.79579 151.29579 15129.57900 2020-01-01 2020-01-02 2020-01-01 00:15:31 2020-01-02 03:43:52 2020-01-01 00:15:31.000 2020-01-02 03:43:52.000 931 99832 50381.5 5038150 931 99832 50381.5 5038150 -32637 32298 4506.3 450630 -126 125 0.7 70 -932 100 10922 99833 2.79879 299.79879 151.29879 15129.87987 2.79879 299.7988 151.29879 15129.87977 2.79879 299.79879 151.29879 15129.87900 2020-01-01 2020-01-02 2020-01-01 00:15:32 2020-01-02 03:43:53 2020-01-01 00:15:32.000 2020-01-02 03:43:53.000 932 99833 50382.5 5038250 932 99833 50382.5 5038250 -32636 32299 4507.3 450730 -125 126 1.7 170 -933 100 10923 99834 2.8018 299.8018 151.3018 15130.18018 2.8018 299.8018 151.3018 15130.18011 2.80180 299.80180 151.30180 15130.18000 2020-01-01 2020-01-02 2020-01-01 00:15:33 2020-01-02 03:43:54 2020-01-01 00:15:33.000 2020-01-02 03:43:54.000 933 99834 50383.5 5038350 933 99834 50383.5 5038350 -32635 32300 4508.3 450830 -124 127 2.7 270 -934 100 10924 99835 2.8048 299.8048 151.3048 15130.48048 2.8048 299.8048 151.3048 15130.48071 2.80480 299.80480 151.30480 15130.48000 2020-01-01 2020-01-02 2020-01-01 00:15:34 2020-01-02 03:43:55 2020-01-01 00:15:34.000 2020-01-02 03:43:55.000 934 99835 50384.5 5038450 934 99835 50384.5 5038450 -32634 32301 4509.3 450930 -128 127 1.14 114 -935 100 10925 99836 2.8078 299.8078 151.3078 15130.78078 2.8078 299.8078 151.3078 15130.78034 2.80780 299.80780 151.30780 15130.78000 2020-01-01 2020-01-02 2020-01-01 00:15:35 2020-01-02 03:43:56 2020-01-01 00:15:35.000 2020-01-02 03:43:56.000 935 99836 50385.5 5038550 935 99836 50385.5 5038550 -32633 32302 4510.3 451030 -128 123 -0.42 -42 -936 100 10926 99837 2.81081 299.81081 151.31081 15131.08108 2.81081 299.81082 151.31081 15131.0811 2.81081 299.81081 151.31081 15131.08100 2020-01-01 2020-01-02 2020-01-01 00:15:36 2020-01-02 03:43:57 2020-01-01 00:15:36.000 2020-01-02 03:43:57.000 936 99837 50386.5 5038650 936 99837 50386.5 5038650 -32632 32303 4511.3 451130 -127 124 0.58 58 -937 100 10927 99838 2.81381 299.81381 151.31381 15131.38138 2.81381 299.8138 151.31381 15131.38124 2.81381 299.81381 151.31381 15131.38100 2020-01-01 2020-01-02 2020-01-01 00:15:37 2020-01-02 03:43:58 2020-01-01 00:15:37.000 2020-01-02 03:43:58.000 937 99838 50387.5 5038750 937 99838 50387.5 5038750 -32631 32304 4512.3 451230 -126 125 1.58 158 -938 100 10928 99839 2.81681 299.81681 151.31681 15131.68168 2.81681 299.8168 151.31681 15131.68157 2.81681 299.81681 151.31681 15131.68100 2020-01-01 2020-01-02 2020-01-01 00:15:38 2020-01-02 03:43:59 2020-01-01 00:15:38.000 2020-01-02 03:43:59.000 938 99839 50388.5 5038850 938 99839 50388.5 5038850 -32630 32305 4513.3 451330 -125 126 2.58 258 -939 100 10929 99840 2.81981 299.81981 151.31981 15131.98198 2.81982 299.81982 151.31982 15131.98217 2.81981 299.81981 151.31981 15131.98100 2020-01-01 2020-01-02 2020-01-01 00:15:39 2020-01-02 03:44:00 2020-01-01 00:15:39.000 2020-01-02 03:44:00.000 939 99840 50389.5 5038950 939 99840 50389.5 5038950 -32629 32306 4514.3 451430 -124 127 3.58 358 -94 102 10084 99994 0.28228 300.28228 150.28228 15178.51051 0.28228 300.2823 150.28228 15178.51078 0.28228 300.28228 150.28228 15178.51028 2020-01-01 2020-01-02 2020-01-01 00:01:34 2020-01-02 03:46:34 2020-01-01 00:01:34.000 2020-01-02 03:46:34.000 94 99994 50044 5054444 94 99994 50044 5054444 -32475 32460 4623.009900990099 466924 -126 125 -0.19801980198019803 -20 -940 100 10930 99841 2.82282 299.82282 151.32282 15132.28228 2.82282 299.8228 151.32282 15132.28247 2.82282 299.82282 151.32282 15132.28200 2020-01-01 2020-01-02 2020-01-01 00:15:40 2020-01-02 03:44:01 2020-01-01 00:15:40.000 2020-01-02 03:44:01.000 940 99841 50390.5 5039050 940 99841 50390.5 5039050 -32628 32307 4515.3 451530 -128 127 2.02 202 -941 100 10931 99842 2.82582 299.82582 151.32582 15132.58258 2.82582 299.82584 151.32582 15132.58257 2.82582 299.82582 151.32582 15132.58200 2020-01-01 2020-01-02 2020-01-01 00:15:41 2020-01-02 03:44:02 2020-01-01 00:15:41.000 2020-01-02 03:44:02.000 941 99842 50391.5 5039150 941 99842 50391.5 5039150 -32627 32308 4516.3 451630 -128 127 0.46 46 -942 100 10932 99843 2.82882 299.82882 151.32882 15132.88288 2.82882 299.82883 151.32882 15132.88275 2.82882 299.82882 151.32882 15132.88200 2020-01-01 2020-01-02 2020-01-01 00:15:42 2020-01-02 03:44:03 2020-01-01 00:15:42.000 2020-01-02 03:44:03.000 942 99843 50392.5 5039250 942 99843 50392.5 5039250 -32626 32309 4517.3 451730 -128 124 -1.1 -110 -943 100 10933 99844 2.83183 299.83183 151.33183 15133.18318 2.83183 299.83182 151.33183 15133.18304 2.83183 299.83183 151.33183 15133.18300 2020-01-01 2020-01-02 2020-01-01 00:15:43 2020-01-02 03:44:04 2020-01-01 00:15:43.000 2020-01-02 03:44:04.000 943 99844 50393.5 5039350 943 99844 50393.5 5039350 -32625 32310 4518.3 451830 -127 125 -0.1 -10 -944 100 10934 99845 2.83483 299.83483 151.33483 15133.48348 2.83483 299.83484 151.33483 15133.48364 2.83483 299.83483 151.33483 15133.48300 2020-01-01 2020-01-02 2020-01-01 00:15:44 2020-01-02 03:44:05 2020-01-01 00:15:44.000 2020-01-02 03:44:05.000 944 99845 50394.5 5039450 944 99845 50394.5 5039450 -32624 32311 4519.3 451930 -126 126 0.9 90 -945 100 10935 99846 2.83783 299.83783 151.33783 15133.78378 2.83783 299.83783 151.33783 15133.78393 2.83783 299.83783 151.33783 15133.78300 2020-01-01 2020-01-02 2020-01-01 00:15:45 2020-01-02 03:44:06 2020-01-01 00:15:45.000 2020-01-02 03:44:06.000 945 99846 50395.5 5039550 945 99846 50395.5 5039550 -32623 32312 4520.3 452030 -125 127 1.9 190 -946 100 10936 99847 2.84084 299.84084 151.34084 15134.08408 2.84084 299.84085 151.34084 15134.08404 2.84084 299.84084 151.34084 15134.08400 2020-01-01 2020-01-02 2020-01-01 00:15:46 2020-01-02 03:44:07 2020-01-01 00:15:46.000 2020-01-02 03:44:07.000 946 99847 50396.5 5039650 946 99847 50396.5 5039650 -32622 32313 4521.3 452130 -128 127 0.34 34 -947 100 10937 99848 2.84384 299.84384 151.34384 15134.38438 2.84384 299.84384 151.34384 15134.38421 2.84384 299.84384 151.34384 15134.38400 2020-01-01 2020-01-02 2020-01-01 00:15:47 2020-01-02 03:44:08 2020-01-01 00:15:47.000 2020-01-02 03:44:08.000 947 99848 50397.5 5039750 947 99848 50397.5 5039750 -32621 32314 4522.3 452230 -128 127 -1.22 -122 -948 100 10938 99849 2.84684 299.84684 151.34684 15134.68468 2.84684 299.84683 151.34684 15134.68452 2.84684 299.84684 151.34684 15134.68400 2020-01-01 2020-01-02 2020-01-01 00:15:48 2020-01-02 03:44:09 2020-01-01 00:15:48.000 2020-01-02 03:44:09.000 948 99849 50398.5 5039850 948 99849 50398.5 5039850 -32620 32315 4523.3 452330 -128 123 -2.78 -278 -949 100 10939 99850 2.84984 299.84984 151.34984 15134.98498 2.84985 299.84985 151.34985 15134.98527 2.84984 299.84984 151.34984 15134.98400 2020-01-01 2020-01-02 2020-01-01 00:15:49 2020-01-02 03:44:10 2020-01-01 00:15:49.000 2020-01-02 03:44:10.000 949 99850 50399.5 5039950 949 99850 50399.5 5039950 -32619 32316 4524.3 452430 -127 124 -1.78 -178 -95 102 10085 99995 0.28528 300.28528 150.28528 15178.81381 0.28528 300.28528 150.28528 15178.81343 0.28528 300.28528 150.28528 15178.81328 2020-01-01 2020-01-02 2020-01-01 00:01:35 2020-01-02 03:46:35 2020-01-01 00:01:35.000 2020-01-02 03:46:35.000 95 99995 50045 5054545 95 99995 50045 5054545 -32474 32461 4624.009900990099 467025 -125 126 0.801980198019802 81 -950 100 10940 99851 2.85285 299.85285 151.35285 15135.28528 2.85285 299.85284 151.35285 15135.28541 2.85285 299.85285 151.35285 15135.28500 2020-01-01 2020-01-02 2020-01-01 00:15:50 2020-01-02 03:44:11 2020-01-01 00:15:50.000 2020-01-02 03:44:11.000 950 99851 50400.5 5040050 950 99851 50400.5 5040050 -32618 32317 4525.3 452530 -126 125 -0.78 -78 -951 100 10941 99852 2.85585 299.85585 151.35585 15135.58558 2.85585 299.85587 151.35585 15135.58551 2.85585 299.85585 151.35585 15135.58500 2020-01-01 2020-01-02 2020-01-01 00:15:51 2020-01-02 03:44:12 2020-01-01 00:15:51.000 2020-01-02 03:44:12.000 951 99852 50401.5 5040150 951 99852 50401.5 5040150 -32617 32318 4526.3 452630 -125 126 0.22 22 +931 100 10921 99832 2.79579 299.79579 151.29579 15129.57957 2.79579 299.7958 151.29579 15129.57963 2.79579 299.79579 151.2957900000001 15129.57900 2020-01-01 2020-01-02 2020-01-01 00:15:31 2020-01-02 03:43:52 2020-01-01 00:15:31.000 2020-01-02 03:43:52.000 931 99832 50381.5 5038150 931 99832 50381.5 5038150 -32637 32298 4506.3 450630 -126 125 0.7 70 +932 100 10922 99833 2.79879 299.79879 151.29879 15129.87987 2.79879 299.7988 151.29879 15129.87977 2.79879 299.79879 151.29879000000017 15129.87900 2020-01-01 2020-01-02 2020-01-01 00:15:32 2020-01-02 03:43:53 2020-01-01 00:15:32.000 2020-01-02 03:43:53.000 932 99833 50382.5 5038250 932 99833 50382.5 5038250 -32636 32299 4507.3 450730 -125 126 1.7 170 +933 100 10923 99834 2.8018 299.8018 151.3018 15130.18018 2.8018 299.8018 151.3018 15130.18011 2.80180 299.80180 151.30179999999984 15130.18000 2020-01-01 2020-01-02 2020-01-01 00:15:33 2020-01-02 03:43:54 2020-01-01 00:15:33.000 2020-01-02 03:43:54.000 933 99834 50383.5 5038350 933 99834 50383.5 5038350 -32635 32300 4508.3 450830 -124 127 2.7 270 +934 100 10924 99835 2.8048 299.8048 151.3048 15130.48048 2.8048 299.8048 151.3048 15130.48071 2.80480 299.80480 151.30479999999991 15130.48000 2020-01-01 2020-01-02 2020-01-01 00:15:34 2020-01-02 03:43:55 2020-01-01 00:15:34.000 2020-01-02 03:43:55.000 934 99835 50384.5 5038450 934 99835 50384.5 5038450 -32634 32301 4509.3 450930 -128 127 1.14 114 +935 100 10925 99836 2.8078 299.8078 151.3078 15130.78078 2.8078 299.8078 151.3078 15130.78034 2.80780 299.80780 151.30780000000001 15130.78000 2020-01-01 2020-01-02 2020-01-01 00:15:35 2020-01-02 03:43:56 2020-01-01 00:15:35.000 2020-01-02 03:43:56.000 935 99836 50385.5 5038550 935 99836 50385.5 5038550 -32633 32302 4510.3 451030 -128 123 -0.42 -42 +936 100 10926 99837 2.81081 299.81081 151.31081 15131.08108 2.81081 299.81082 151.31081 15131.0811 2.81081 299.81081 151.31081000000026 15131.08100 2020-01-01 2020-01-02 2020-01-01 00:15:36 2020-01-02 03:43:57 2020-01-01 00:15:36.000 2020-01-02 03:43:57.000 936 99837 50386.5 5038650 936 99837 50386.5 5038650 -32632 32303 4511.3 451130 -127 124 0.58 58 +937 100 10927 99838 2.81381 299.81381 151.31381 15131.38138 2.81381 299.8138 151.31381 15131.38124 2.81381 299.81381 151.31380999999976 15131.38100 2020-01-01 2020-01-02 2020-01-01 00:15:37 2020-01-02 03:43:58 2020-01-01 00:15:37.000 2020-01-02 03:43:58.000 937 99838 50387.5 5038750 937 99838 50387.5 5038750 -32631 32304 4512.3 451230 -126 125 1.58 158 +938 100 10928 99839 2.81681 299.81681 151.31681 15131.68168 2.81681 299.8168 151.31681 15131.68157 2.81681 299.81681 151.31681000000015 15131.68100 2020-01-01 2020-01-02 2020-01-01 00:15:38 2020-01-02 03:43:59 2020-01-01 00:15:38.000 2020-01-02 03:43:59.000 938 99839 50388.5 5038850 938 99839 50388.5 5038850 -32630 32305 4513.3 451330 -125 126 2.58 258 +939 100 10929 99840 2.81981 299.81981 151.31981 15131.98198 2.81982 299.81982 151.31982 15131.98217 2.81981 299.81981 151.31981000000027 15131.98100 2020-01-01 2020-01-02 2020-01-01 00:15:39 2020-01-02 03:44:00 2020-01-01 00:15:39.000 2020-01-02 03:44:00.000 939 99840 50389.5 5038950 939 99840 50389.5 5038950 -32629 32306 4514.3 451430 -124 127 3.58 358 +94 102 10084 99994 0.28228 300.28228 150.28228 15178.51051 0.28228 300.2823 150.28228 15178.51078 0.28228 300.28228 150.28227999999996 15178.51028 2020-01-01 2020-01-02 2020-01-01 00:01:34 2020-01-02 03:46:34 2020-01-01 00:01:34.000 2020-01-02 03:46:34.000 94 99994 50044 5054444 94 99994 50044 5054444 -32475 32460 4623.009900990099 466924 -126 125 -0.19801980198019803 -20 +940 100 10930 99841 2.82282 299.82282 151.32282 15132.28228 2.82282 299.8228 151.32282 15132.28247 2.82282 299.82282 151.3228199999999 15132.28200 2020-01-01 2020-01-02 2020-01-01 00:15:40 2020-01-02 03:44:01 2020-01-01 00:15:40.000 2020-01-02 03:44:01.000 940 99841 50390.5 5039050 940 99841 50390.5 5039050 -32628 32307 4515.3 451530 -128 127 2.02 202 +941 100 10931 99842 2.82582 299.82582 151.32582 15132.58258 2.82582 299.82584 151.32582 15132.58257 2.82582 299.82582 151.32582000000002 15132.58200 2020-01-01 2020-01-02 2020-01-01 00:15:41 2020-01-02 03:44:02 2020-01-01 00:15:41.000 2020-01-02 03:44:02.000 941 99842 50391.5 5039150 941 99842 50391.5 5039150 -32627 32308 4516.3 451630 -128 127 0.46 46 +942 100 10932 99843 2.82882 299.82882 151.32882 15132.88288 2.82882 299.82883 151.32882 15132.88275 2.82882 299.82882 151.32882000000012 15132.88200 2020-01-01 2020-01-02 2020-01-01 00:15:42 2020-01-02 03:44:03 2020-01-01 00:15:42.000 2020-01-02 03:44:03.000 942 99843 50392.5 5039250 942 99843 50392.5 5039250 -32626 32309 4517.3 451730 -128 124 -1.1 -110 +943 100 10933 99844 2.83183 299.83183 151.33183 15133.18318 2.83183 299.83182 151.33183 15133.18304 2.83183 299.83183 151.33182999999977 15133.18300 2020-01-01 2020-01-02 2020-01-01 00:15:43 2020-01-02 03:44:04 2020-01-01 00:15:43.000 2020-01-02 03:44:04.000 943 99844 50393.5 5039350 943 99844 50393.5 5039350 -32625 32310 4518.3 451830 -127 125 -0.1 -10 +944 100 10934 99845 2.83483 299.83483 151.33483 15133.48348 2.83483 299.83484 151.33483 15133.48364 2.83483 299.83483 151.3348299999998 15133.48300 2020-01-01 2020-01-02 2020-01-01 00:15:44 2020-01-02 03:44:05 2020-01-01 00:15:44.000 2020-01-02 03:44:05.000 944 99845 50394.5 5039450 944 99845 50394.5 5039450 -32624 32311 4519.3 451930 -126 126 0.9 90 +945 100 10935 99846 2.83783 299.83783 151.33783 15133.78378 2.83783 299.83783 151.33783 15133.78393 2.83783 299.83783 151.33783000000028 15133.78300 2020-01-01 2020-01-02 2020-01-01 00:15:45 2020-01-02 03:44:06 2020-01-01 00:15:45.000 2020-01-02 03:44:06.000 945 99846 50395.5 5039550 945 99846 50395.5 5039550 -32623 32312 4520.3 452030 -125 127 1.9 190 +946 100 10936 99847 2.84084 299.84084 151.34084 15134.08408 2.84084 299.84085 151.34084 15134.08404 2.84084 299.84084 151.34084000000018 15134.08400 2020-01-01 2020-01-02 2020-01-01 00:15:46 2020-01-02 03:44:07 2020-01-01 00:15:46.000 2020-01-02 03:44:07.000 946 99847 50396.5 5039650 946 99847 50396.5 5039650 -32622 32313 4521.3 452130 -128 127 0.34 34 +947 100 10937 99848 2.84384 299.84384 151.34384 15134.38438 2.84384 299.84384 151.34384 15134.38421 2.84384 299.84384 151.34383999999966 15134.38400 2020-01-01 2020-01-02 2020-01-01 00:15:47 2020-01-02 03:44:08 2020-01-01 00:15:47.000 2020-01-02 03:44:08.000 947 99848 50397.5 5039750 947 99848 50397.5 5039750 -32621 32314 4522.3 452230 -128 127 -1.22 -122 +948 100 10938 99849 2.84684 299.84684 151.34684 15134.68468 2.84684 299.84683 151.34684 15134.68452 2.84684 299.84684 151.34684000000013 15134.68400 2020-01-01 2020-01-02 2020-01-01 00:15:48 2020-01-02 03:44:09 2020-01-01 00:15:48.000 2020-01-02 03:44:09.000 948 99849 50398.5 5039850 948 99849 50398.5 5039850 -32620 32315 4523.3 452330 -128 123 -2.78 -278 +949 100 10939 99850 2.84984 299.84984 151.34984 15134.98498 2.84985 299.84985 151.34985 15134.98527 2.84984 299.84984 151.34984000000017 15134.98400 2020-01-01 2020-01-02 2020-01-01 00:15:49 2020-01-02 03:44:10 2020-01-01 00:15:49.000 2020-01-02 03:44:10.000 949 99850 50399.5 5039950 949 99850 50399.5 5039950 -32619 32316 4524.3 452430 -127 124 -1.78 -178 +95 102 10085 99995 0.28528 300.28528 150.28528 15178.81381 0.28528 300.28528 150.28528 15178.81343 0.28528 300.28528 150.28528000000003 15178.81328 2020-01-01 2020-01-02 2020-01-01 00:01:35 2020-01-02 03:46:35 2020-01-01 00:01:35.000 2020-01-02 03:46:35.000 95 99995 50045 5054545 95 99995 50045 5054545 -32474 32461 4624.009900990099 467025 -125 126 0.801980198019802 81 +950 100 10940 99851 2.85285 299.85285 151.35285 15135.28528 2.85285 299.85284 151.35285 15135.28541 2.85285 299.85285 151.35284999999993 15135.28500 2020-01-01 2020-01-02 2020-01-01 00:15:50 2020-01-02 03:44:11 2020-01-01 00:15:50.000 2020-01-02 03:44:11.000 950 99851 50400.5 5040050 950 99851 50400.5 5040050 -32618 32317 4525.3 452530 -126 125 -0.78 -78 +951 100 10941 99852 2.85585 299.85585 151.35585 15135.58558 2.85585 299.85587 151.35585 15135.58551 2.85585 299.85585 151.35584999999995 15135.58500 2020-01-01 2020-01-02 2020-01-01 00:15:51 2020-01-02 03:44:12 2020-01-01 00:15:51.000 2020-01-02 03:44:12.000 951 99852 50401.5 5040150 951 99852 50401.5 5040150 -32617 32318 4526.3 452630 -125 126 0.22 22 952 100 10942 99853 2.85885 299.85885 151.35885 15135.88588 2.85885 299.85886 151.35885 15135.88568 2.85885 299.85885 151.35885 15135.88500 2020-01-01 2020-01-02 2020-01-01 00:15:52 2020-01-02 03:44:13 2020-01-01 00:15:52.000 2020-01-02 03:44:13.000 952 99853 50402.5 5040250 952 99853 50402.5 5040250 -32616 32319 4527.3 452730 -124 127 1.22 122 -953 100 10943 99854 2.86186 299.86186 151.36186 15136.18618 2.86186 299.86185 151.36185 15136.18598 2.86186 299.86186 151.36186 15136.18600 2020-01-01 2020-01-02 2020-01-01 00:15:53 2020-01-02 03:44:14 2020-01-01 00:15:53.000 2020-01-02 03:44:14.000 953 99854 50403.5 5040350 953 99854 50403.5 5040350 -32615 32320 4528.3 452830 -128 127 -0.34 -34 -954 100 10944 99855 2.86486 299.86486 151.36486 15136.48648 2.86486 299.86487 151.36486 15136.48674 2.86486 299.86486 151.36486 15136.48600 2020-01-01 2020-01-02 2020-01-01 00:15:54 2020-01-02 03:44:15 2020-01-01 00:15:54.000 2020-01-02 03:44:15.000 954 99855 50404.5 5040450 954 99855 50404.5 5040450 -32614 32321 4529.3 452930 -128 123 -1.9 -190 -955 100 10945 99856 2.86786 299.86786 151.36786 15136.78678 2.86786 299.86786 151.36786 15136.78688 2.86786 299.86786 151.36786 15136.78600 2020-01-01 2020-01-02 2020-01-01 00:15:55 2020-01-02 03:44:16 2020-01-01 00:15:55.000 2020-01-02 03:44:16.000 955 99856 50405.5 5040550 955 99856 50405.5 5040550 -32613 32322 4530.3 453030 -127 124 -0.9 -90 -956 100 10946 99857 2.87087 299.87087 151.37087 15137.08708 2.87087 299.87088 151.37087 15137.08701 2.87087 299.87087 151.37087 15137.08700 2020-01-01 2020-01-02 2020-01-01 00:15:56 2020-01-02 03:44:17 2020-01-01 00:15:56.000 2020-01-02 03:44:17.000 956 99857 50406.5 5040650 956 99857 50406.5 5040650 -32612 32323 4531.3 453130 -126 125 0.1 10 -957 100 10947 99858 2.87387 299.87387 151.37387 15137.38738 2.87387 299.87387 151.37387 15137.38716 2.87387 299.87387 151.37387 15137.38700 2020-01-01 2020-01-02 2020-01-01 00:15:57 2020-01-02 03:44:18 2020-01-01 00:15:57.000 2020-01-02 03:44:18.000 957 99858 50407.5 5040750 957 99858 50407.5 5040750 -32611 32324 4532.3 453230 -125 126 1.1 110 -958 100 10948 99859 2.87687 299.87687 151.37687 15137.68768 2.87687 299.8769 151.37687 15137.68791 2.87687 299.87687 151.37687 15137.68700 2020-01-01 2020-01-02 2020-01-01 00:15:58 2020-01-02 03:44:19 2020-01-01 00:15:58.000 2020-01-02 03:44:19.000 958 99859 50408.5 5040850 958 99859 50408.5 5040850 -32610 32325 4533.3 453330 -124 127 2.1 210 -959 100 10949 99860 2.87987 299.87987 151.37987 15137.98798 2.87988 299.87988 151.37988 15137.9882 2.87987 299.87987 151.37987 15137.98700 2020-01-01 2020-01-02 2020-01-01 00:15:59 2020-01-02 03:44:20 2020-01-01 00:15:59.000 2020-01-02 03:44:20.000 959 99860 50409.5 5040950 959 99860 50409.5 5040950 -32609 32326 4534.3 453430 -128 127 0.54 54 -96 102 10086 99996 0.28828 300.28828 150.28828 15179.11711 0.28828 300.2883 150.28828 15179.11718 0.28828 300.28828 150.28828 15179.11628 2020-01-01 2020-01-02 2020-01-01 00:01:36 2020-01-02 03:46:36 2020-01-01 00:01:36.000 2020-01-02 03:46:36.000 96 99996 50046 5054646 96 99996 50046 5054646 -32473 32462 4625.009900990099 467126 -124 127 1.801980198019802 182 -960 100 10950 99861 2.88288 299.88288 151.38288 15138.28828 2.88288 299.88287 151.38288 15138.28834 2.88288 299.88288 151.38288 15138.28800 2020-01-01 2020-01-02 2020-01-01 00:16:00 2020-01-02 03:44:21 2020-01-01 00:16:00.000 2020-01-02 03:44:21.000 960 99861 50410.5 5041050 960 99861 50410.5 5041050 -32608 32327 4535.3 453530 -128 123 -1.02 -102 -961 100 10951 99862 2.88588 299.88588 151.38588 15138.58858 2.88588 299.8859 151.38588 15138.58848 2.88588 299.88588 151.38588 15138.58800 2020-01-01 2020-01-02 2020-01-01 00:16:01 2020-01-02 03:44:22 2020-01-01 00:16:01.000 2020-01-02 03:44:22.000 961 99862 50411.5 5041150 961 99862 50411.5 5041150 -32607 32328 4536.3 453630 -127 124 -0.02 -2 -962 100 10952 99863 2.88888 299.88888 151.38888 15138.88888 2.88888 299.8889 151.38888 15138.88862 2.88888 299.88888 151.38888 15138.88800 2020-01-01 2020-01-02 2020-01-01 00:16:02 2020-01-02 03:44:23 2020-01-01 00:16:02.000 2020-01-02 03:44:23.000 962 99863 50412.5 5041250 962 99863 50412.5 5041250 -32606 32329 4537.3 453730 -126 125 0.98 98 -963 100 10953 99864 2.89189 299.89189 151.39189 15139.18918 2.89189 299.8919 151.39189 15139.18937 2.89189 299.89189 151.39189 15139.18900 2020-01-01 2020-01-02 2020-01-01 00:16:03 2020-01-02 03:44:24 2020-01-01 00:16:03.000 2020-01-02 03:44:24.000 963 99864 50413.5 5041350 963 99864 50413.5 5041350 -32605 32330 4538.3 453830 -125 126 1.98 198 -964 100 10954 99865 2.89489 299.89489 151.39489 15139.48948 2.89489 299.8949 151.39489 15139.48968 2.89489 299.89489 151.39489 15139.48900 2020-01-01 2020-01-02 2020-01-01 00:16:04 2020-01-02 03:44:25 2020-01-01 00:16:04.000 2020-01-02 03:44:25.000 964 99865 50414.5 5041450 964 99865 50414.5 5041450 -32604 32331 4539.3 453930 -124 127 2.98 298 -965 100 10955 99866 2.89789 299.89789 151.39789 15139.78978 2.89789 299.8979 151.39789 15139.78985 2.89789 299.89789 151.39789 15139.78900 2020-01-01 2020-01-02 2020-01-01 00:16:05 2020-01-02 03:44:26 2020-01-01 00:16:05.000 2020-01-02 03:44:26.000 965 99866 50415.5 5041550 965 99866 50415.5 5041550 -32603 32332 4540.3 454030 -128 127 1.42 142 -966 100 10956 99867 2.9009 299.9009 151.4009 15140.09009 2.9009 299.9009 151.40089 15140.08996 2.90090 299.90090 151.40090 15140.09000 2020-01-01 2020-01-02 2020-01-01 00:16:06 2020-01-02 03:44:27 2020-01-01 00:16:06.000 2020-01-02 03:44:27.000 966 99867 50416.5 5041650 966 99867 50416.5 5041650 -32602 32333 4541.3 454130 -128 127 -0.14 -14 -967 100 10957 99868 2.9039 299.9039 151.4039 15140.39039 2.9039 299.9039 151.4039 15140.39009 2.90390 299.90390 151.40390 15140.39000 2020-01-01 2020-01-02 2020-01-01 00:16:07 2020-01-02 03:44:28 2020-01-01 00:16:07.000 2020-01-02 03:44:28.000 967 99868 50417.5 5041750 967 99868 50417.5 5041750 -32601 32334 4542.3 454230 -128 124 -1.7 -170 -968 100 10958 99869 2.9069 299.9069 151.4069 15140.69069 2.9069 299.90692 151.4069 15140.69084 2.90690 299.90690 151.40690 15140.69000 2020-01-01 2020-01-02 2020-01-01 00:16:08 2020-01-02 03:44:29 2020-01-01 00:16:08.000 2020-01-02 03:44:29.000 968 99869 50418.5 5041850 968 99869 50418.5 5041850 -32600 32335 4543.3 454330 -127 125 -0.7 -70 -969 100 10959 99870 2.9099 299.9099 151.4099 15140.99099 2.90991 299.9099 151.40991 15140.99114 2.90990 299.90990 151.40990 15140.99000 2020-01-01 2020-01-02 2020-01-01 00:16:09 2020-01-02 03:44:30 2020-01-01 00:16:09.000 2020-01-02 03:44:30.000 969 99870 50419.5 5041950 969 99870 50419.5 5041950 -32599 32336 4544.3 454430 -126 126 0.3 30 -97 102 10087 99997 0.29129 300.29129 150.29129 15179.42042 0.29129 300.2913 150.29129 15179.42033 0.29129 300.29129 150.29129 15179.42029 2020-01-01 2020-01-02 2020-01-01 00:01:37 2020-01-02 03:46:37 2020-01-01 00:01:37.000 2020-01-02 03:46:37.000 97 99997 50047 5054747 97 99997 50047 5054747 -32472 32463 4626.009900990099 467227 -128 127 0.26732673267326734 27 -970 100 10960 99871 2.91291 299.91291 151.41291 15141.29129 2.91291 299.9129 151.41291 15141.29132 2.91291 299.91291 151.41291 15141.29100 2020-01-01 2020-01-02 2020-01-01 00:16:10 2020-01-02 03:44:31 2020-01-01 00:16:10.000 2020-01-02 03:44:31.000 970 99871 50420.5 5042050 970 99871 50420.5 5042050 -32598 32337 4545.3 454530 -125 127 1.3 130 -971 100 10961 99872 2.91591 299.91591 151.41591 15141.59159 2.91591 299.91592 151.41591 15141.59142 2.91591 299.91591 151.41591 15141.59100 2020-01-01 2020-01-02 2020-01-01 00:16:11 2020-01-02 03:44:32 2020-01-01 00:16:11.000 2020-01-02 03:44:32.000 971 99872 50421.5 5042150 971 99872 50421.5 5042150 -32597 32338 4546.3 454630 -128 127 -0.26 -26 -972 100 10962 99873 2.91891 299.91891 151.41891 15141.89189 2.91891 299.9189 151.41891 15141.89172 2.91891 299.91891 151.41891 15141.89100 2020-01-01 2020-01-02 2020-01-01 00:16:12 2020-01-02 03:44:33 2020-01-01 00:16:12.000 2020-01-02 03:44:33.000 972 99873 50422.5 5042250 972 99873 50422.5 5042250 -32596 32339 4547.3 454730 -128 127 -1.82 -182 +953 100 10943 99854 2.86186 299.86186 151.36186 15136.18618 2.86186 299.86185 151.36185 15136.18598 2.86186 299.86186 151.3618600000001 15136.18600 2020-01-01 2020-01-02 2020-01-01 00:15:53 2020-01-02 03:44:14 2020-01-01 00:15:53.000 2020-01-02 03:44:14.000 953 99854 50403.5 5040350 953 99854 50403.5 5040350 -32615 32320 4528.3 452830 -128 127 -0.34 -34 +954 100 10944 99855 2.86486 299.86486 151.36486 15136.48648 2.86486 299.86487 151.36486 15136.48674 2.86486 299.86486 151.3648599999999 15136.48600 2020-01-01 2020-01-02 2020-01-01 00:15:54 2020-01-02 03:44:15 2020-01-01 00:15:54.000 2020-01-02 03:44:15.000 954 99855 50404.5 5040450 954 99855 50404.5 5040450 -32614 32321 4529.3 452930 -128 123 -1.9 -190 +955 100 10945 99856 2.86786 299.86786 151.36786 15136.78678 2.86786 299.86786 151.36786 15136.78688 2.86786 299.86786 151.36786000000006 15136.78600 2020-01-01 2020-01-02 2020-01-01 00:15:55 2020-01-02 03:44:16 2020-01-01 00:15:55.000 2020-01-02 03:44:16.000 955 99856 50405.5 5040550 955 99856 50405.5 5040550 -32613 32322 4530.3 453030 -127 124 -0.9 -90 +956 100 10946 99857 2.87087 299.87087 151.37087 15137.08708 2.87087 299.87088 151.37087 15137.08701 2.87087 299.87087 151.37087000000008 15137.08700 2020-01-01 2020-01-02 2020-01-01 00:15:56 2020-01-02 03:44:17 2020-01-01 00:15:56.000 2020-01-02 03:44:17.000 956 99857 50406.5 5040650 956 99857 50406.5 5040650 -32612 32323 4531.3 453130 -126 125 0.1 10 +957 100 10947 99858 2.87387 299.87387 151.37387 15137.38738 2.87387 299.87387 151.37387 15137.38716 2.87387 299.87387 151.37386999999998 15137.38700 2020-01-01 2020-01-02 2020-01-01 00:15:57 2020-01-02 03:44:18 2020-01-01 00:15:57.000 2020-01-02 03:44:18.000 957 99858 50407.5 5040750 957 99858 50407.5 5040750 -32611 32324 4532.3 453230 -125 126 1.1 110 +958 100 10948 99859 2.87687 299.87687 151.37687 15137.68768 2.87687 299.8769 151.37687 15137.68791 2.87687 299.87687 151.37687000000003 15137.68700 2020-01-01 2020-01-02 2020-01-01 00:15:58 2020-01-02 03:44:19 2020-01-01 00:15:58.000 2020-01-02 03:44:19.000 958 99859 50408.5 5040850 958 99859 50408.5 5040850 -32610 32325 4533.3 453330 -124 127 2.1 210 +959 100 10949 99860 2.87987 299.87987 151.37987 15137.98798 2.87988 299.87988 151.37988 15137.9882 2.87987 299.87987 151.37987000000004 15137.98700 2020-01-01 2020-01-02 2020-01-01 00:15:59 2020-01-02 03:44:20 2020-01-01 00:15:59.000 2020-01-02 03:44:20.000 959 99860 50409.5 5040950 959 99860 50409.5 5040950 -32609 32326 4534.3 453430 -128 127 0.54 54 +96 102 10086 99996 0.28828 300.28828 150.28828 15179.11711 0.28828 300.2883 150.28828 15179.11718 0.28828 300.28828 150.28828000000001 15179.11628 2020-01-01 2020-01-02 2020-01-01 00:01:36 2020-01-02 03:46:36 2020-01-01 00:01:36.000 2020-01-02 03:46:36.000 96 99996 50046 5054646 96 99996 50046 5054646 -32473 32462 4625.009900990099 467126 -124 127 1.801980198019802 182 +960 100 10950 99861 2.88288 299.88288 151.38288 15138.28828 2.88288 299.88287 151.38288 15138.28834 2.88288 299.88288 151.38287999999997 15138.28800 2020-01-01 2020-01-02 2020-01-01 00:16:00 2020-01-02 03:44:21 2020-01-01 00:16:00.000 2020-01-02 03:44:21.000 960 99861 50410.5 5041050 960 99861 50410.5 5041050 -32608 32327 4535.3 453530 -128 123 -1.02 -102 +961 100 10951 99862 2.88588 299.88588 151.38588 15138.58858 2.88588 299.8859 151.38588 15138.58848 2.88588 299.88588 151.3858799999999 15138.58800 2020-01-01 2020-01-02 2020-01-01 00:16:01 2020-01-02 03:44:22 2020-01-01 00:16:01.000 2020-01-02 03:44:22.000 961 99862 50411.5 5041150 961 99862 50411.5 5041150 -32607 32328 4536.3 453630 -127 124 -0.02 -2 +962 100 10952 99863 2.88888 299.88888 151.38888 15138.88888 2.88888 299.8889 151.38888 15138.88862 2.88888 299.88888 151.38888000000014 15138.88800 2020-01-01 2020-01-02 2020-01-01 00:16:02 2020-01-02 03:44:23 2020-01-01 00:16:02.000 2020-01-02 03:44:23.000 962 99863 50412.5 5041250 962 99863 50412.5 5041250 -32606 32329 4537.3 453730 -126 125 0.98 98 +963 100 10953 99864 2.89189 299.89189 151.39189 15139.18918 2.89189 299.8919 151.39189 15139.18937 2.89189 299.89189 151.39189000000005 15139.18900 2020-01-01 2020-01-02 2020-01-01 00:16:03 2020-01-02 03:44:24 2020-01-01 00:16:03.000 2020-01-02 03:44:24.000 963 99864 50413.5 5041350 963 99864 50413.5 5041350 -32605 32330 4538.3 453830 -125 126 1.98 198 +964 100 10954 99865 2.89489 299.89489 151.39489 15139.48948 2.89489 299.8949 151.39489 15139.48968 2.89489 299.89489 151.39488999999986 15139.48900 2020-01-01 2020-01-02 2020-01-01 00:16:04 2020-01-02 03:44:25 2020-01-01 00:16:04.000 2020-01-02 03:44:25.000 964 99865 50414.5 5041450 964 99865 50414.5 5041450 -32604 32331 4539.3 453930 -124 127 2.98 298 +965 100 10955 99866 2.89789 299.89789 151.39789 15139.78978 2.89789 299.8979 151.39789 15139.78985 2.89789 299.89789 151.3978900000001 15139.78900 2020-01-01 2020-01-02 2020-01-01 00:16:05 2020-01-02 03:44:26 2020-01-01 00:16:05.000 2020-01-02 03:44:26.000 965 99866 50415.5 5041550 965 99866 50415.5 5041550 -32603 32332 4540.3 454030 -128 127 1.42 142 +966 100 10956 99867 2.9009 299.9009 151.4009 15140.09009 2.9009 299.9009 151.40089 15140.08996 2.90090 299.90090 151.4009 15140.09000 2020-01-01 2020-01-02 2020-01-01 00:16:06 2020-01-02 03:44:27 2020-01-01 00:16:06.000 2020-01-02 03:44:27.000 966 99867 50416.5 5041650 966 99867 50416.5 5041650 -32602 32333 4541.3 454130 -128 127 -0.14 -14 +967 100 10957 99868 2.9039 299.9039 151.4039 15140.39039 2.9039 299.9039 151.4039 15140.39009 2.90390 299.90390 151.40389999999996 15140.39000 2020-01-01 2020-01-02 2020-01-01 00:16:07 2020-01-02 03:44:28 2020-01-01 00:16:07.000 2020-01-02 03:44:28.000 967 99868 50417.5 5041750 967 99868 50417.5 5041750 -32601 32334 4542.3 454230 -128 124 -1.7 -170 +968 100 10958 99869 2.9069 299.9069 151.4069 15140.69069 2.9069 299.90692 151.4069 15140.69084 2.90690 299.90690 151.40689999999998 15140.69000 2020-01-01 2020-01-02 2020-01-01 00:16:08 2020-01-02 03:44:29 2020-01-01 00:16:08.000 2020-01-02 03:44:29.000 968 99869 50418.5 5041850 968 99869 50418.5 5041850 -32600 32335 4543.3 454330 -127 125 -0.7 -70 +969 100 10959 99870 2.9099 299.9099 151.4099 15140.99099 2.90991 299.9099 151.40991 15140.99114 2.90990 299.90990 151.40990000000002 15140.99000 2020-01-01 2020-01-02 2020-01-01 00:16:09 2020-01-02 03:44:30 2020-01-01 00:16:09.000 2020-01-02 03:44:30.000 969 99870 50419.5 5041950 969 99870 50419.5 5041950 -32599 32336 4544.3 454430 -126 126 0.3 30 +97 102 10087 99997 0.29129 300.29129 150.29129 15179.42042 0.29129 300.2913 150.29129 15179.42033 0.29129 300.29129 150.29128999999998 15179.42029 2020-01-01 2020-01-02 2020-01-01 00:01:37 2020-01-02 03:46:37 2020-01-01 00:01:37.000 2020-01-02 03:46:37.000 97 99997 50047 5054747 97 99997 50047 5054747 -32472 32463 4626.009900990099 467227 -128 127 0.26732673267326734 27 +970 100 10960 99871 2.91291 299.91291 151.41291 15141.29129 2.91291 299.9129 151.41291 15141.29132 2.91291 299.91291 151.41290999999993 15141.29100 2020-01-01 2020-01-02 2020-01-01 00:16:10 2020-01-02 03:44:31 2020-01-01 00:16:10.000 2020-01-02 03:44:31.000 970 99871 50420.5 5042050 970 99871 50420.5 5042050 -32598 32337 4545.3 454530 -125 127 1.3 130 +971 100 10961 99872 2.91591 299.91591 151.41591 15141.59159 2.91591 299.91592 151.41591 15141.59142 2.91591 299.91591 151.41590999999994 15141.59100 2020-01-01 2020-01-02 2020-01-01 00:16:11 2020-01-02 03:44:32 2020-01-01 00:16:11.000 2020-01-02 03:44:32.000 971 99872 50421.5 5042150 971 99872 50421.5 5042150 -32597 32338 4546.3 454630 -128 127 -0.26 -26 +972 100 10962 99873 2.91891 299.91891 151.41891 15141.89189 2.91891 299.9189 151.41891 15141.89172 2.91891 299.91891 151.4189100000001 15141.89100 2020-01-01 2020-01-02 2020-01-01 00:16:12 2020-01-02 03:44:33 2020-01-01 00:16:12.000 2020-01-02 03:44:33.000 972 99873 50422.5 5042250 972 99873 50422.5 5042250 -32596 32339 4547.3 454730 -128 127 -1.82 -182 973 100 10963 99874 2.92192 299.92192 151.42192 15142.19219 2.92192 299.92194 151.42192 15142.19232 2.92192 299.92192 151.42192 15142.19200 2020-01-01 2020-01-02 2020-01-01 00:16:13 2020-01-02 03:44:34 2020-01-01 00:16:13.000 2020-01-02 03:44:34.000 973 99874 50423.5 5042350 973 99874 50423.5 5042350 -32595 32340 4548.3 454830 -128 123 -3.38 -338 -974 100 10964 99875 2.92492 299.92492 151.42492 15142.49249 2.92492 299.92493 151.42492 15142.49265 2.92492 299.92492 151.42492 15142.49200 2020-01-01 2020-01-02 2020-01-01 00:16:14 2020-01-02 03:44:35 2020-01-01 00:16:14.000 2020-01-02 03:44:35.000 974 99875 50424.5 5042450 974 99875 50424.5 5042450 -32594 32341 4549.3 454930 -127 124 -2.38 -238 -975 100 10965 99876 2.92792 299.92792 151.42792 15142.79279 2.92792 299.92792 151.42792 15142.79279 2.92792 299.92792 151.42792 15142.79200 2020-01-01 2020-01-02 2020-01-01 00:16:15 2020-01-02 03:44:36 2020-01-01 00:16:15.000 2020-01-02 03:44:36.000 975 99876 50425.5 5042550 975 99876 50425.5 5042550 -32593 32342 4550.3 455030 -126 125 -1.38 -138 -976 100 10966 99877 2.93093 299.93093 151.43093 15143.09309 2.93093 299.93094 151.43092 15143.09289 2.93093 299.93093 151.43093 15143.09300 2020-01-01 2020-01-02 2020-01-01 00:16:16 2020-01-02 03:44:37 2020-01-01 00:16:16.000 2020-01-02 03:44:37.000 976 99877 50426.5 5042650 976 99877 50426.5 5042650 -32592 32343 4551.3 455130 -125 126 -0.38 -38 -977 100 10967 99878 2.93393 299.93393 151.43393 15143.39339 2.93393 299.93393 151.43393 15143.39318 2.93393 299.93393 151.43393 15143.39300 2020-01-01 2020-01-02 2020-01-01 00:16:17 2020-01-02 03:44:38 2020-01-01 00:16:17.000 2020-01-02 03:44:38.000 977 99878 50427.5 5042750 977 99878 50427.5 5042750 -32591 32344 4552.3 455230 -124 127 0.62 62 -978 100 10968 99879 2.93693 299.93693 151.43693 15143.69369 2.93693 299.93695 151.43693 15143.69378 2.93693 299.93693 151.43693 15143.69300 2020-01-01 2020-01-02 2020-01-01 00:16:18 2020-01-02 03:44:39 2020-01-01 00:16:18.000 2020-01-02 03:44:39.000 978 99879 50428.5 5042850 978 99879 50428.5 5042850 -32590 32345 4553.3 455330 -128 127 -0.94 -94 -979 100 10969 99880 2.93993 299.93993 151.43993 15143.99399 2.93994 299.93994 151.43994 15143.99412 2.93993 299.93993 151.43993 15143.99300 2020-01-01 2020-01-02 2020-01-01 00:16:19 2020-01-02 03:44:40 2020-01-01 00:16:19.000 2020-01-02 03:44:40.000 979 99880 50429.5 5042950 979 99880 50429.5 5042950 -32589 32346 4554.3 455430 -128 123 -2.5 -250 -98 102 10088 99998 0.29429 300.29429 150.29429 15179.72372 0.29429 300.29428 150.29429 15179.72363 0.29429 300.29429 150.29429 15179.72329 2020-01-01 2020-01-02 2020-01-01 00:01:38 2020-01-02 03:46:38 2020-01-01 00:01:38.000 2020-01-02 03:46:38.000 98 99998 50048 5054848 98 99998 50048 5054848 -32471 32464 4627.009900990099 467328 -128 127 -1.2673267326732673 -128 -980 100 10970 99881 2.94294 299.94294 151.44294 15144.29429 2.94294 299.94293 151.44294 15144.29426 2.94294 299.94294 151.44294 15144.29400 2020-01-01 2020-01-02 2020-01-01 00:16:20 2020-01-02 03:44:41 2020-01-01 00:16:20.000 2020-01-02 03:44:41.000 980 99881 50430.5 5043050 980 99881 50430.5 5043050 -32588 32347 4555.3 455530 -127 124 -1.5 -150 -981 100 10971 99882 2.94594 299.94594 151.44594 15144.59459 2.94594 299.94595 151.44595 15144.59501 2.94594 299.94594 151.44594 15144.59400 2020-01-01 2020-01-02 2020-01-01 00:16:21 2020-01-02 03:44:42 2020-01-01 00:16:21.000 2020-01-02 03:44:42.000 981 99882 50431.5 5043150 981 99882 50431.5 5043150 -32587 32348 4556.3 455630 -126 125 -0.5 -50 -982 100 10972 99883 2.94894 299.94894 151.44894 15144.89489 2.94894 299.94894 151.44894 15144.89466 2.94894 299.94894 151.44894 15144.89400 2020-01-01 2020-01-02 2020-01-01 00:16:22 2020-01-02 03:44:43 2020-01-01 00:16:22.000 2020-01-02 03:44:43.000 982 99883 50432.5 5043250 982 99883 50432.5 5043250 -32586 32349 4557.3 455730 -125 126 0.5 50 +974 100 10964 99875 2.92492 299.92492 151.42492 15142.49249 2.92492 299.92493 151.42492 15142.49265 2.92492 299.92492 151.42492000000001 15142.49200 2020-01-01 2020-01-02 2020-01-01 00:16:14 2020-01-02 03:44:35 2020-01-01 00:16:14.000 2020-01-02 03:44:35.000 974 99875 50424.5 5042450 974 99875 50424.5 5042450 -32594 32341 4549.3 454930 -127 124 -2.38 -238 +975 100 10965 99876 2.92792 299.92792 151.42792 15142.79279 2.92792 299.92792 151.42792 15142.79279 2.92792 299.92792 151.42792000000006 15142.79200 2020-01-01 2020-01-02 2020-01-01 00:16:15 2020-01-02 03:44:36 2020-01-01 00:16:15.000 2020-01-02 03:44:36.000 975 99876 50425.5 5042550 975 99876 50425.5 5042550 -32593 32342 4550.3 455030 -126 125 -1.38 -138 +976 100 10966 99877 2.93093 299.93093 151.43093 15143.09309 2.93093 299.93094 151.43092 15143.09289 2.93093 299.93093 151.43093000000016 15143.09300 2020-01-01 2020-01-02 2020-01-01 00:16:16 2020-01-02 03:44:37 2020-01-01 00:16:16.000 2020-01-02 03:44:37.000 976 99877 50426.5 5042650 976 99877 50426.5 5042650 -32592 32343 4551.3 455130 -125 126 -0.38 -38 +977 100 10967 99878 2.93393 299.93393 151.43393 15143.39339 2.93393 299.93393 151.43393 15143.39318 2.93393 299.93393 151.43392999999995 15143.39300 2020-01-01 2020-01-02 2020-01-01 00:16:17 2020-01-02 03:44:38 2020-01-01 00:16:17.000 2020-01-02 03:44:38.000 977 99878 50427.5 5042750 977 99878 50427.5 5042750 -32591 32344 4552.3 455230 -124 127 0.62 62 +978 100 10968 99879 2.93693 299.93693 151.43693 15143.69369 2.93693 299.93695 151.43693 15143.69378 2.93693 299.93693 151.43692999999993 15143.69300 2020-01-01 2020-01-02 2020-01-01 00:16:18 2020-01-02 03:44:39 2020-01-01 00:16:18.000 2020-01-02 03:44:39.000 978 99879 50428.5 5042850 978 99879 50428.5 5042850 -32590 32345 4553.3 455330 -128 127 -0.94 -94 +979 100 10969 99880 2.93993 299.93993 151.43993 15143.99399 2.93994 299.93994 151.43994 15143.99412 2.93993 299.93993 151.43993000000017 15143.99300 2020-01-01 2020-01-02 2020-01-01 00:16:19 2020-01-02 03:44:40 2020-01-01 00:16:19.000 2020-01-02 03:44:40.000 979 99880 50429.5 5042950 979 99880 50429.5 5042950 -32589 32346 4554.3 455430 -128 123 -2.5 -250 +98 102 10088 99998 0.29429 300.29429 150.29429 15179.72372 0.29429 300.29428 150.29429 15179.72363 0.29429 300.29429 150.29428999999993 15179.72329 2020-01-01 2020-01-02 2020-01-01 00:01:38 2020-01-02 03:46:38 2020-01-01 00:01:38.000 2020-01-02 03:46:38.000 98 99998 50048 5054848 98 99998 50048 5054848 -32471 32464 4627.009900990099 467328 -128 127 -1.2673267326732673 -128 +980 100 10970 99881 2.94294 299.94294 151.44294 15144.29429 2.94294 299.94293 151.44294 15144.29426 2.94294 299.94294 151.44294000000005 15144.29400 2020-01-01 2020-01-02 2020-01-01 00:16:20 2020-01-02 03:44:41 2020-01-01 00:16:20.000 2020-01-02 03:44:41.000 980 99881 50430.5 5043050 980 99881 50430.5 5043050 -32588 32347 4555.3 455530 -127 124 -1.5 -150 +981 100 10971 99882 2.94594 299.94594 151.44594 15144.59459 2.94594 299.94595 151.44595 15144.59501 2.94594 299.94594 151.4459399999999 15144.59400 2020-01-01 2020-01-02 2020-01-01 00:16:21 2020-01-02 03:44:42 2020-01-01 00:16:21.000 2020-01-02 03:44:42.000 981 99882 50431.5 5043150 981 99882 50431.5 5043150 -32587 32348 4556.3 455630 -126 125 -0.5 -50 +982 100 10972 99883 2.94894 299.94894 151.44894 15144.89489 2.94894 299.94894 151.44894 15144.89466 2.94894 299.94894 151.4489400000001 15144.89400 2020-01-01 2020-01-02 2020-01-01 00:16:22 2020-01-02 03:44:43 2020-01-01 00:16:22.000 2020-01-02 03:44:43.000 982 99883 50432.5 5043250 982 99883 50432.5 5043250 -32586 32349 4557.3 455730 -125 126 0.5 50 983 100 10973 99884 2.95195 299.95195 151.45195 15145.19519 2.95195 299.95197 151.45195 15145.19525 2.95195 299.95195 151.45195 15145.19500 2020-01-01 2020-01-02 2020-01-01 00:16:23 2020-01-02 03:44:44 2020-01-01 00:16:23.000 2020-01-02 03:44:44.000 983 99884 50433.5 5043350 983 99884 50433.5 5043350 -32585 32350 4558.3 455830 -124 127 1.5 150 -984 100 10974 99885 2.95495 299.95495 151.45495 15145.49549 2.95495 299.95496 151.45495 15145.49559 2.95495 299.95495 151.45495 15145.49500 2020-01-01 2020-01-02 2020-01-01 00:16:24 2020-01-02 03:44:45 2020-01-01 00:16:24.000 2020-01-02 03:44:45.000 984 99885 50434.5 5043450 984 99885 50434.5 5043450 -32584 32351 4559.3 455930 -128 127 -0.06 -6 +984 100 10974 99885 2.95495 299.95495 151.45495 15145.49549 2.95495 299.95496 151.45495 15145.49559 2.95495 299.95495 151.45494999999994 15145.49500 2020-01-01 2020-01-02 2020-01-01 00:16:24 2020-01-02 03:44:45 2020-01-01 00:16:24.000 2020-01-02 03:44:45.000 984 99885 50434.5 5043450 984 99885 50434.5 5043450 -32584 32351 4559.3 455930 -128 127 -0.06 -6 985 100 10975 99886 2.95795 299.95795 151.45795 15145.79579 2.95795 299.95795 151.45795 15145.79573 2.95795 299.95795 151.45795 15145.79500 2020-01-01 2020-01-02 2020-01-01 00:16:25 2020-01-02 03:44:46 2020-01-01 00:16:25.000 2020-01-02 03:44:46.000 985 99886 50435.5 5043550 985 99886 50435.5 5043550 -32583 32352 4560.3 456030 -128 123 -1.62 -162 -986 100 10976 99887 2.96096 299.96096 151.46096 15146.09609 2.96096 299.96097 151.46096 15146.09648 2.96096 299.96096 151.46096 15146.09600 2020-01-01 2020-01-02 2020-01-01 00:16:26 2020-01-02 03:44:47 2020-01-01 00:16:26.000 2020-01-02 03:44:47.000 986 99887 50436.5 5043650 986 99887 50436.5 5043650 -32582 32353 4561.3 456130 -127 124 -0.62 -62 -987 100 10977 99888 2.96396 299.96396 151.46396 15146.39639 2.96396 299.96396 151.46396 15146.39612 2.96396 299.96396 151.46396 15146.39600 2020-01-01 2020-01-02 2020-01-01 00:16:27 2020-01-02 03:44:48 2020-01-01 00:16:27.000 2020-01-02 03:44:48.000 987 99888 50437.5 5043750 987 99888 50437.5 5043750 -32581 32354 4562.3 456230 -126 125 0.38 38 -988 100 10978 99889 2.96696 299.96696 151.46696 15146.69669 2.96696 299.96698 151.46696 15146.69676 2.96696 299.96696 151.46696 15146.69600 2020-01-01 2020-01-02 2020-01-01 00:16:28 2020-01-02 03:44:49 2020-01-01 00:16:28.000 2020-01-02 03:44:49.000 988 99889 50438.5 5043850 988 99889 50438.5 5043850 -32580 32355 4563.3 456330 -125 126 1.38 138 -989 100 10979 99890 2.96996 299.96996 151.46996 15146.99699 2.96997 299.96997 151.46997 15146.99706 2.96996 299.96996 151.46996 15146.99600 2020-01-01 2020-01-02 2020-01-01 00:16:29 2020-01-02 03:44:50 2020-01-01 00:16:29.000 2020-01-02 03:44:50.000 989 99890 50439.5 5043950 989 99890 50439.5 5043950 -32579 32356 4564.3 456430 -124 127 2.38 238 -99 102 10089 99999 0.29729 300.29729 150.29729 15180.02702 0.29729 300.2973 150.29729 15180.02726 0.29729 300.29729 150.29729 15180.02629 2020-01-01 2020-01-02 2020-01-01 00:01:39 2020-01-02 03:46:39 2020-01-01 00:01:39.000 2020-01-02 03:46:39.000 99 99999 50049 5054949 99 99999 50049 5054949 -32470 32465 4628.009900990099 467429 -128 123 -2.801980198019802 -283 -990 100 10980 99891 2.97297 299.97297 151.47297 15147.29729 2.97297 299.97296 151.47297 15147.29735 2.97297 299.97297 151.47297 15147.29700 2020-01-01 2020-01-02 2020-01-01 00:16:30 2020-01-02 03:44:51 2020-01-01 00:16:30.000 2020-01-02 03:44:51.000 990 99891 50440.5 5044050 990 99891 50440.5 5044050 -32578 32357 4565.3 456530 -128 127 0.82 82 -991 100 10981 99892 2.97597 299.97597 151.47597 15147.59759 2.97597 299.97598 151.47597 15147.59795 2.97597 299.97597 151.47597 15147.59700 2020-01-01 2020-01-02 2020-01-01 00:16:31 2020-01-02 03:44:52 2020-01-01 00:16:31.000 2020-01-02 03:44:52.000 991 99892 50441.5 5044150 991 99892 50441.5 5044150 -32577 32358 4566.3 456630 -128 127 -0.74 -74 -992 100 10982 99893 2.97897 299.97897 151.47897 15147.89789 2.97897 299.97897 151.47897 15147.89759 2.97897 299.97897 151.47897 15147.89700 2020-01-01 2020-01-02 2020-01-01 00:16:32 2020-01-02 03:44:53 2020-01-01 00:16:32.000 2020-01-02 03:44:53.000 992 99893 50442.5 5044250 992 99893 50442.5 5044250 -32576 32359 4567.3 456730 -128 124 -2.3 -230 -993 100 10983 99894 2.98198 299.98198 151.48198 15148.19819 2.98198 299.982 151.48198 15148.19823 2.98198 299.98198 151.48198 15148.19800 2020-01-01 2020-01-02 2020-01-01 00:16:33 2020-01-02 03:44:54 2020-01-01 00:16:33.000 2020-01-02 03:44:54.000 993 99894 50443.5 5044350 993 99894 50443.5 5044350 -32575 32360 4568.3 456830 -127 125 -1.3 -130 -994 100 10984 99895 2.98498 299.98498 151.48498 15148.49849 2.98498 299.985 151.48498 15148.49853 2.98498 299.98498 151.48498 15148.49800 2020-01-01 2020-01-02 2020-01-01 00:16:34 2020-01-02 03:44:55 2020-01-01 00:16:34.000 2020-01-02 03:44:55.000 994 99895 50444.5 5044450 994 99895 50444.5 5044450 -32574 32361 4569.3 456930 -126 126 -0.3 -30 -995 100 10985 99896 2.98798 299.98798 151.48798 15148.79879 2.98798 299.98798 151.48798 15148.79882 2.98798 299.98798 151.48798 15148.79800 2020-01-01 2020-01-02 2020-01-01 00:16:35 2020-01-02 03:44:56 2020-01-01 00:16:35.000 2020-01-02 03:44:56.000 995 99896 50445.5 5044550 995 99896 50445.5 5044550 -32573 32362 4570.3 457030 -125 127 0.7 70 -996 100 10986 99897 2.99099 299.99099 151.49099 15149.09909 2.99099 299.991 151.49099 15149.09942 2.99099 299.99099 151.49099 15149.09900 2020-01-01 2020-01-02 2020-01-01 00:16:36 2020-01-02 03:44:57 2020-01-01 00:16:36.000 2020-01-02 03:44:57.000 996 99897 50446.5 5044650 996 99897 50446.5 5044650 -32572 32363 4571.3 457130 -128 127 -0.86 -86 -997 100 10987 99898 2.99399 299.99399 151.49399 15149.39939 2.99399 299.994 151.49399 15149.3991 2.99399 299.99399 151.49399 15149.39900 2020-01-01 2020-01-02 2020-01-01 00:16:37 2020-01-02 03:44:58 2020-01-01 00:16:37.000 2020-01-02 03:44:58.000 997 99898 50447.5 5044750 997 99898 50447.5 5044750 -32571 32364 4572.3 457230 -128 127 -2.42 -242 -998 100 10988 99899 2.99699 299.99699 151.49699 15149.69969 2.99699 299.997 151.49699 15149.6997 2.99699 299.99699 151.49699 15149.69900 2020-01-01 2020-01-02 2020-01-01 00:16:38 2020-01-02 03:44:59 2020-01-01 00:16:38.000 2020-01-02 03:44:59.000 998 99899 50448.5 5044850 998 99899 50448.5 5044850 -32570 32365 4573.3 457330 -128 123 -3.98 -398 +986 100 10976 99887 2.96096 299.96096 151.46096 15146.09609 2.96096 299.96097 151.46096 15146.09648 2.96096 299.96096 151.46096000000009 15146.09600 2020-01-01 2020-01-02 2020-01-01 00:16:26 2020-01-02 03:44:47 2020-01-01 00:16:26.000 2020-01-02 03:44:47.000 986 99887 50436.5 5043650 986 99887 50436.5 5043650 -32582 32353 4561.3 456130 -127 124 -0.62 -62 +987 100 10977 99888 2.96396 299.96396 151.46396 15146.39639 2.96396 299.96396 151.46396 15146.39612 2.96396 299.96396 151.46395999999993 15146.39600 2020-01-01 2020-01-02 2020-01-01 00:16:27 2020-01-02 03:44:48 2020-01-01 00:16:27.000 2020-01-02 03:44:48.000 987 99888 50437.5 5043750 987 99888 50437.5 5043750 -32581 32354 4562.3 456230 -126 125 0.38 38 +988 100 10978 99889 2.96696 299.96696 151.46696 15146.69669 2.96696 299.96698 151.46696 15146.69676 2.96696 299.96696 151.46695999999991 15146.69600 2020-01-01 2020-01-02 2020-01-01 00:16:28 2020-01-02 03:44:49 2020-01-01 00:16:28.000 2020-01-02 03:44:49.000 988 99889 50438.5 5043850 988 99889 50438.5 5043850 -32580 32355 4563.3 456330 -125 126 1.38 138 +989 100 10979 99890 2.96996 299.96996 151.46996 15146.99699 2.96997 299.96997 151.46997 15146.99706 2.96996 299.96996 151.46996000000007 15146.99600 2020-01-01 2020-01-02 2020-01-01 00:16:29 2020-01-02 03:44:50 2020-01-01 00:16:29.000 2020-01-02 03:44:50.000 989 99890 50439.5 5043950 989 99890 50439.5 5043950 -32579 32356 4564.3 456430 -124 127 2.38 238 +99 102 10089 99999 0.29729 300.29729 150.29729 15180.02702 0.29729 300.2973 150.29729 15180.02726 0.29729 300.29729 150.29729000000012 15180.02629 2020-01-01 2020-01-02 2020-01-01 00:01:39 2020-01-02 03:46:39 2020-01-01 00:01:39.000 2020-01-02 03:46:39.000 99 99999 50049 5054949 99 99999 50049 5054949 -32470 32465 4628.009900990099 467429 -128 123 -2.801980198019802 -283 +990 100 10980 99891 2.97297 299.97297 151.47297 15147.29729 2.97297 299.97296 151.47297 15147.29735 2.97297 299.97297 151.47297000000003 15147.29700 2020-01-01 2020-01-02 2020-01-01 00:16:30 2020-01-02 03:44:51 2020-01-01 00:16:30.000 2020-01-02 03:44:51.000 990 99891 50440.5 5044050 990 99891 50440.5 5044050 -32578 32357 4565.3 456530 -128 127 0.82 82 +991 100 10981 99892 2.97597 299.97597 151.47597 15147.59759 2.97597 299.97598 151.47597 15147.59795 2.97597 299.97597 151.47597000000002 15147.59700 2020-01-01 2020-01-02 2020-01-01 00:16:31 2020-01-02 03:44:52 2020-01-01 00:16:31.000 2020-01-02 03:44:52.000 991 99892 50441.5 5044150 991 99892 50441.5 5044150 -32577 32358 4566.3 456630 -128 127 -0.74 -74 +992 100 10982 99893 2.97897 299.97897 151.47897 15147.89789 2.97897 299.97897 151.47897 15147.89759 2.97897 299.97897 151.4789700000001 15147.89700 2020-01-01 2020-01-02 2020-01-01 00:16:32 2020-01-02 03:44:53 2020-01-01 00:16:32.000 2020-01-02 03:44:53.000 992 99893 50442.5 5044250 992 99893 50442.5 5044250 -32576 32359 4567.3 456730 -128 124 -2.3 -230 +993 100 10983 99894 2.98198 299.98198 151.48198 15148.19819 2.98198 299.982 151.48198 15148.19823 2.98198 299.98198 151.48197999999996 15148.19800 2020-01-01 2020-01-02 2020-01-01 00:16:33 2020-01-02 03:44:54 2020-01-01 00:16:33.000 2020-01-02 03:44:54.000 993 99894 50443.5 5044350 993 99894 50443.5 5044350 -32575 32360 4568.3 456830 -127 125 -1.3 -130 +994 100 10984 99895 2.98498 299.98498 151.48498 15148.49849 2.98498 299.985 151.48498 15148.49853 2.98498 299.98498 151.48497999999998 15148.49800 2020-01-01 2020-01-02 2020-01-01 00:16:34 2020-01-02 03:44:55 2020-01-01 00:16:34.000 2020-01-02 03:44:55.000 994 99895 50444.5 5044450 994 99895 50444.5 5044450 -32574 32361 4569.3 456930 -126 126 -0.3 -30 +995 100 10985 99896 2.98798 299.98798 151.48798 15148.79879 2.98798 299.98798 151.48798 15148.79882 2.98798 299.98798 151.4879799999999 15148.79800 2020-01-01 2020-01-02 2020-01-01 00:16:35 2020-01-02 03:44:56 2020-01-01 00:16:35.000 2020-01-02 03:44:56.000 995 99896 50445.5 5044550 995 99896 50445.5 5044550 -32573 32362 4570.3 457030 -125 127 0.7 70 +996 100 10986 99897 2.99099 299.99099 151.49099 15149.09909 2.99099 299.991 151.49099 15149.09942 2.99099 299.99099 151.49099000000012 15149.09900 2020-01-01 2020-01-02 2020-01-01 00:16:36 2020-01-02 03:44:57 2020-01-01 00:16:36.000 2020-01-02 03:44:57.000 996 99897 50446.5 5044650 996 99897 50446.5 5044650 -32572 32363 4571.3 457130 -128 127 -0.86 -86 +997 100 10987 99898 2.99399 299.99399 151.49399 15149.39939 2.99399 299.994 151.49399 15149.3991 2.99399 299.99399 151.49399000000005 15149.39900 2020-01-01 2020-01-02 2020-01-01 00:16:37 2020-01-02 03:44:58 2020-01-01 00:16:37.000 2020-01-02 03:44:58.000 997 99898 50447.5 5044750 997 99898 50447.5 5044750 -32571 32364 4572.3 457230 -128 127 -2.42 -242 +998 100 10988 99899 2.99699 299.99699 151.49699 15149.69969 2.99699 299.997 151.49699 15149.6997 2.99699 299.99699 151.49698999999993 15149.69900 2020-01-01 2020-01-02 2020-01-01 00:16:38 2020-01-02 03:44:59 2020-01-01 00:16:38.000 2020-01-02 03:44:59.000 998 99899 50448.5 5044850 998 99899 50448.5 5044850 -32570 32365 4573.3 457330 -128 123 -3.98 -398 ---- select with states ---- -1 1 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N -2 1 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N -3 1 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N -4 1 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N -5 1 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N -0 2 0 99900 0 300 150 15150 0 300 150 15150 0.00000 300.00000 150.00000 15150.00000 2020-01-01 2020-01-02 2020-01-01 00:00:00 2020-01-02 03:45:00 2020-01-01 00:00:00.000 2020-01-02 03:45:00.000 0 99900 49950 5044950 0 99900 49950 5044950 -32569 32366 4529.009900990099 457430 -127 124 -2.9504950495049505 -298 -1 2 1 9991 0.003 300.003 150.003 15150.3033 0.003 300.003 150.003 15150.30329 0.00300 300.00300 150.00300 15150.30300 2020-01-01 2020-01-02 2020-01-01 00:00:01 2020-01-02 03:45:01 2020-01-01 00:00:01.000 2020-01-02 03:45:01.000 1 99901 49951 5045051 1 99901 49951 5045051 -32568 32367 4530.009900990099 457531 -126 125 -1.9504950495049505 -197 -10 2 10 99910 0.03003 300.03003 150.03003 15153.03303 0.03003 300.03003 150.03002 15153.03296 0.03003 300.03003 150.03003 15153.03303 2020-01-01 2020-01-02 2020-01-01 00:00:10 2020-01-02 03:45:10 2020-01-01 00:00:10.000 2020-01-02 03:45:10.000 10 99910 49960 5045960 10 99910 49960 5045960 -32559 32376 4539.009900990099 458440 -128 127 -0.5544554455445545 -56 -100 2 100 99001 0.3003 297.3003 148.8003 14880.03003 0.3003 297.3003 148.80029 14880.02962 0.30030 297.30030 148.80030 14880.03000 2020-01-01 2020-01-02 2020-01-01 00:01:40 2020-01-02 03:30:01 2020-01-01 00:01:40.000 2020-01-02 03:30:01.000 100 99001 49550.5 4955050 100 99001 49550.5 4955050 -32469 32466 4986.02 498602 -127 124 -0.86 -86 -101 2 10091 99002 0.3033 297.3033 148.8033 14880.33033 0.3033 297.3033 148.8033 14880.33035 0.30330 297.30330 148.80330 14880.33000 2020-01-01 2020-01-02 2020-01-01 00:01:41 2020-01-02 03:30:02 2020-01-01 00:01:41.000 2020-01-02 03:30:02.000 101 99002 49551.5 4955150 101 99002 49551.5 4955150 -32468 32467 4987.02 498702 -126 125 0.14 14 -102 2 10092 99003 0.3063 297.3063 148.8063 14880.63063 0.3063 297.3063 148.8063 14880.6305 0.30630 297.30630 148.80630 14880.63000 2020-01-01 2020-01-02 2020-01-01 00:01:42 2020-01-02 03:30:03 2020-01-01 00:01:42.000 2020-01-02 03:30:03.000 102 99003 49552.5 4955250 102 99003 49552.5 4955250 -32467 32468 4988.02 498802 -125 126 1.14 114 -103 2 10093 99004 0.3093 297.3093 148.8093 14880.93093 0.3093 297.3093 148.8093 14880.93085 0.30930 297.30930 148.80930 14880.93000 2020-01-01 2020-01-02 2020-01-01 00:01:43 2020-01-02 03:30:04 2020-01-01 00:01:43.000 2020-01-02 03:30:04.000 103 99004 49553.5 4955350 103 99004 49553.5 4955350 -32466 32469 4989.02 498902 -124 127 2.14 214 -104 2 10094 99005 0.31231 297.31231 148.81231 14881.23123 0.31231 297.31232 148.81231 14881.23144 0.31231 297.31231 148.81231 14881.23100 2020-01-01 2020-01-02 2020-01-01 00:01:44 2020-01-02 03:30:05 2020-01-01 00:01:44.000 2020-01-02 03:30:05.000 104 99005 49554.5 4955450 104 99005 49554.5 4955450 -32465 32470 4990.02 499002 -128 127 0.58 58 -105 2 10095 99006 0.31531 297.31531 148.81531 14881.53153 0.31531 297.3153 148.81531 14881.53174 0.31531 297.31531 148.81531 14881.53100 2020-01-01 2020-01-02 2020-01-01 00:01:45 2020-01-02 03:30:06 2020-01-01 00:01:45.000 2020-01-02 03:30:06.000 105 99006 49555.5 4955550 105 99006 49555.5 4955550 -32464 32471 4991.02 499102 -128 123 -0.98 -98 -106 2 10096 99007 0.31831 297.31831 148.81831 14881.83183 0.31831 297.31833 148.81831 14881.83182 0.31831 297.31831 148.81831 14881.83100 2020-01-01 2020-01-02 2020-01-01 00:01:46 2020-01-02 03:30:07 2020-01-01 00:01:46.000 2020-01-02 03:30:07.000 106 99007 49556.5 4955650 106 99007 49556.5 4955650 -32463 32472 4992.02 499202 -127 124 0.02 2 -107 2 10097 99008 0.32132 297.32132 148.82132 14882.13213 0.32132 297.32132 148.82131 14882.13197 0.32132 297.32132 148.82132 14882.13200 2020-01-01 2020-01-02 2020-01-01 00:01:47 2020-01-02 03:30:08 2020-01-01 00:01:47.000 2020-01-02 03:30:08.000 107 99008 49557.5 4955750 107 99008 49557.5 4955750 -32462 32473 4993.02 499302 -126 125 1.02 102 -108 2 10098 99009 0.32432 297.32432 148.82432 14882.43243 0.32432 297.3243 148.82432 14882.43232 0.32432 297.32432 148.82432 14882.43200 2020-01-01 2020-01-02 2020-01-01 00:01:48 2020-01-02 03:30:09 2020-01-01 00:01:48.000 2020-01-02 03:30:09.000 108 99009 49558.5 4955850 108 99009 49558.5 4955850 -32461 32474 4994.02 499402 -125 126 2.02 202 -109 2 10099 99010 0.32732 297.32732 148.82732 14882.73273 0.32732 297.32733 148.82732 14882.7329 0.32732 297.32732 148.82732 14882.73200 2020-01-01 2020-01-02 2020-01-01 00:01:49 2020-01-02 03:30:10 2020-01-01 00:01:49.000 2020-01-02 03:30:10.000 109 99010 49559.5 4955950 109 99010 49559.5 4955950 -32460 32475 4995.02 499502 -124 127 3.02 302 +0 2 0 99900 0 300 150 15150 0 300 150 15150 0.00000 300.00000 150 15150.00000 2020-01-01 2020-01-02 2020-01-01 00:00:00 2020-01-02 03:45:00 2020-01-01 00:00:00.000 2020-01-02 03:45:00.000 0 99900 49950 5044950 0 99900 49950 5044950 -32569 32366 4529.009900990099 457430 -127 124 -2.9504950495049505 -298 +1 2 1 9991 0.003 300.003 150.003 15150.3033 0.003 300.003 150.003 15150.30329 0.00300 300.00300 150.00300000000007 15150.30300 2020-01-01 2020-01-02 2020-01-01 00:00:01 2020-01-02 03:45:01 2020-01-01 00:00:01.000 2020-01-02 03:45:01.000 1 99901 49951 5045051 1 99901 49951 5045051 -32568 32367 4530.009900990099 457531 -126 125 -1.9504950495049505 -197 +10 2 10 99910 0.03003 300.03003 150.03003 15153.03303 0.03003 300.03003 150.03002 15153.03296 0.03003 300.03003 150.03002999999993 15153.03303 2020-01-01 2020-01-02 2020-01-01 00:00:10 2020-01-02 03:45:10 2020-01-01 00:00:10.000 2020-01-02 03:45:10.000 10 99910 49960 5045960 10 99910 49960 5045960 -32559 32376 4539.009900990099 458440 -128 127 -0.5544554455445545 -56 +100 2 100 99001 0.3003 297.3003 148.8003 14880.03003 0.3003 297.3003 148.80029 14880.02962 0.30030 297.30030 148.8003000000001 14880.03000 2020-01-01 2020-01-02 2020-01-01 00:01:40 2020-01-02 03:30:01 2020-01-01 00:01:40.000 2020-01-02 03:30:01.000 100 99001 49550.5 4955050 100 99001 49550.5 4955050 -32469 32466 4986.02 498602 -127 124 -0.86 -86 +101 2 10091 99002 0.3033 297.3033 148.8033 14880.33033 0.3033 297.3033 148.8033 14880.33035 0.30330 297.30330 148.80329999999978 14880.33000 2020-01-01 2020-01-02 2020-01-01 00:01:41 2020-01-02 03:30:02 2020-01-01 00:01:41.000 2020-01-02 03:30:02.000 101 99002 49551.5 4955150 101 99002 49551.5 4955150 -32468 32467 4987.02 498702 -126 125 0.14 14 +102 2 10092 99003 0.3063 297.3063 148.8063 14880.63063 0.3063 297.3063 148.8063 14880.6305 0.30630 297.30630 148.80630000000014 14880.63000 2020-01-01 2020-01-02 2020-01-01 00:01:42 2020-01-02 03:30:03 2020-01-01 00:01:42.000 2020-01-02 03:30:03.000 102 99003 49552.5 4955250 102 99003 49552.5 4955250 -32467 32468 4988.02 498802 -125 126 1.14 114 +103 2 10093 99004 0.3093 297.3093 148.8093 14880.93093 0.3093 297.3093 148.8093 14880.93085 0.30930 297.30930 148.80930000000012 14880.93000 2020-01-01 2020-01-02 2020-01-01 00:01:43 2020-01-02 03:30:04 2020-01-01 00:01:43.000 2020-01-02 03:30:04.000 103 99004 49553.5 4955350 103 99004 49553.5 4955350 -32466 32469 4989.02 498902 -124 127 2.14 214 +104 2 10094 99005 0.31231 297.31231 148.81231 14881.23123 0.31231 297.31232 148.81231 14881.23144 0.31231 297.31231 148.81230999999988 14881.23100 2020-01-01 2020-01-02 2020-01-01 00:01:44 2020-01-02 03:30:05 2020-01-01 00:01:44.000 2020-01-02 03:30:05.000 104 99005 49554.5 4955450 104 99005 49554.5 4955450 -32465 32470 4990.02 499002 -128 127 0.58 58 +105 2 10095 99006 0.31531 297.31531 148.81531 14881.53153 0.31531 297.3153 148.81531 14881.53174 0.31531 297.31531 148.81530999999998 14881.53100 2020-01-01 2020-01-02 2020-01-01 00:01:45 2020-01-02 03:30:06 2020-01-01 00:01:45.000 2020-01-02 03:30:06.000 105 99006 49555.5 4955550 105 99006 49555.5 4955550 -32464 32471 4991.02 499102 -128 123 -0.98 -98 +106 2 10096 99007 0.31831 297.31831 148.81831 14881.83183 0.31831 297.31833 148.81831 14881.83182 0.31831 297.31831 148.81831000000003 14881.83100 2020-01-01 2020-01-02 2020-01-01 00:01:46 2020-01-02 03:30:07 2020-01-01 00:01:46.000 2020-01-02 03:30:07.000 106 99007 49556.5 4955650 106 99007 49556.5 4955650 -32463 32472 4992.02 499202 -127 124 0.02 2 +107 2 10097 99008 0.32132 297.32132 148.82132 14882.13213 0.32132 297.32132 148.82131 14882.13197 0.32132 297.32132 148.8213199999998 14882.13200 2020-01-01 2020-01-02 2020-01-01 00:01:47 2020-01-02 03:30:08 2020-01-01 00:01:47.000 2020-01-02 03:30:08.000 107 99008 49557.5 4955750 107 99008 49557.5 4955750 -32462 32473 4993.02 499302 -126 125 1.02 102 +108 2 10098 99009 0.32432 297.32432 148.82432 14882.43243 0.32432 297.3243 148.82432 14882.43232 0.32432 297.32432 148.82431999999986 14882.43200 2020-01-01 2020-01-02 2020-01-01 00:01:48 2020-01-02 03:30:09 2020-01-01 00:01:48.000 2020-01-02 03:30:09.000 108 99009 49558.5 4955850 108 99009 49558.5 4955850 -32461 32474 4994.02 499402 -125 126 2.02 202 +109 2 10099 99010 0.32732 297.32732 148.82732 14882.73273 0.32732 297.32733 148.82732 14882.7329 0.32732 297.32732 148.82732000000016 14882.73200 2020-01-01 2020-01-02 2020-01-01 00:01:49 2020-01-02 03:30:10 2020-01-01 00:01:49.000 2020-01-02 03:30:10.000 109 99010 49559.5 4955950 109 99010 49559.5 4955950 -32460 32475 4995.02 499502 -124 127 3.02 302 11 2 10001 99911 0.03303 300.03303 150.03303 15153.33633 0.03303 300.03302 150.03303 15153.33627 0.03303 300.03303 150.03303 15153.33603 2020-01-01 2020-01-02 2020-01-01 00:00:11 2020-01-02 03:45:11 2020-01-01 00:00:11.000 2020-01-02 03:45:11.000 11 99911 49961 5046061 11 99911 49961 5046061 -32558 32377 4540.009900990099 458541 -128 123 -2.089108910891089 -211 -110 2 10100 99011 0.33033 297.33033 148.83033 14883.03303 0.33033 297.33032 148.83033 14883.03321 0.33033 297.33033 148.83033 14883.03300 2020-01-01 2020-01-02 2020-01-01 00:01:50 2020-01-02 03:30:11 2020-01-01 00:01:50.000 2020-01-02 03:30:11.000 110 99011 49560.5 4956050 110 99011 49560.5 4956050 -32459 32476 4996.02 499602 -128 127 1.46 146 -111 2 10101 99012 0.33333 297.33333 148.83333 14883.33333 0.33333 297.33334 148.83333 14883.33329 0.33333 297.33333 148.83333 14883.33300 2020-01-01 2020-01-02 2020-01-01 00:01:51 2020-01-02 03:30:12 2020-01-01 00:01:51.000 2020-01-02 03:30:12.000 111 99012 49561.5 4956150 111 99012 49561.5 4956150 -32458 32477 4997.02 499702 -128 123 -0.1 -10 -112 2 10102 99013 0.33633 297.33633 148.83633 14883.63363 0.33633 297.33633 148.83633 14883.63348 0.33633 297.33633 148.83633 14883.63300 2020-01-01 2020-01-02 2020-01-01 00:01:52 2020-01-02 03:30:13 2020-01-01 00:01:52.000 2020-01-02 03:30:13.000 112 99013 49562.5 4956250 112 99013 49562.5 4956250 -32457 32478 4998.02 499802 -127 124 0.9 90 -113 2 10103 99014 0.33933 297.33933 148.83933 14883.93393 0.33933 297.33932 148.83933 14883.9338 0.33933 297.33933 148.83933 14883.93300 2020-01-01 2020-01-02 2020-01-01 00:01:53 2020-01-02 03:30:14 2020-01-01 00:01:53.000 2020-01-02 03:30:14.000 113 99014 49563.5 4956350 113 99014 49563.5 4956350 -32456 32479 4999.02 499902 -126 125 1.9 190 -114 2 10104 99015 0.34234 297.34234 148.84234 14884.23423 0.34234 297.34235 148.84234 14884.23437 0.34234 297.34234 148.84234 14884.23400 2020-01-01 2020-01-02 2020-01-01 00:01:54 2020-01-02 03:30:15 2020-01-01 00:01:54.000 2020-01-02 03:30:15.000 114 99015 49564.5 4956450 114 99015 49564.5 4956450 -32455 32480 5000.02 500002 -125 126 2.9 290 -115 2 10105 99016 0.34534 297.34534 148.84534 14884.53453 0.34534 297.34534 148.84534 14884.53468 0.34534 297.34534 148.84534 14884.53400 2020-01-01 2020-01-02 2020-01-01 00:01:55 2020-01-02 03:30:16 2020-01-01 00:01:55.000 2020-01-02 03:30:16.000 115 99016 49565.5 4956550 115 99016 49565.5 4956550 -32454 32481 5001.02 500102 -124 127 3.9 390 -116 2 10106 99017 0.34834 297.34834 148.84834 14884.83483 0.34834 297.34836 148.84834 14884.83476 0.34834 297.34834 148.84834 14884.83400 2020-01-01 2020-01-02 2020-01-01 00:01:56 2020-01-02 03:30:17 2020-01-01 00:01:56.000 2020-01-02 03:30:17.000 116 99017 49566.5 4956650 116 99017 49566.5 4956650 -32453 32482 5002.02 500202 -128 127 2.34 234 -117 2 10107 99018 0.35135 297.35135 148.85135 14885.13513 0.35135 297.35135 148.85134 14885.13495 0.35135 297.35135 148.85135 14885.13500 2020-01-01 2020-01-02 2020-01-01 00:01:57 2020-01-02 03:30:18 2020-01-01 00:01:57.000 2020-01-02 03:30:18.000 117 99018 49567.5 4956750 117 99018 49567.5 4956750 -32452 32483 5003.02 500302 -128 123 0.78 78 -118 2 10108 99019 0.35435 297.35435 148.85435 14885.43543 0.35435 297.35434 148.85435 14885.43526 0.35435 297.35435 148.85435 14885.43500 2020-01-01 2020-01-02 2020-01-01 00:01:58 2020-01-02 03:30:19 2020-01-01 00:01:58.000 2020-01-02 03:30:19.000 118 99019 49568.5 4956850 118 99019 49568.5 4956850 -32451 32484 5004.02 500402 -127 124 1.78 178 -119 2 10109 99020 0.35735 297.35735 148.85735 14885.73573 0.35735 297.35736 148.85736 14885.736 0.35735 297.35735 148.85735 14885.73500 2020-01-01 2020-01-02 2020-01-01 00:01:59 2020-01-02 03:30:20 2020-01-01 00:01:59.000 2020-01-02 03:30:20.000 119 99020 49569.5 4956950 119 99020 49569.5 4956950 -32450 32485 5005.02 500502 -126 125 2.78 278 -12 2 10002 99912 0.03603 300.03603 150.03603 15153.63963 0.03603 300.03604 150.03603 15153.6399 0.03603 300.03603 150.03603 15153.63903 2020-01-01 2020-01-02 2020-01-01 00:00:12 2020-01-02 03:45:12 2020-01-01 00:00:12.000 2020-01-02 03:45:12.000 12 99912 49962 5046162 12 99912 49962 5046162 -32557 32378 4541.009900990099 458642 -127 124 -1.0891089108910892 -110 -120 2 10110 99021 0.36036 297.36036 148.86036 14886.03603 0.36036 297.36035 148.86036 14886.03615 0.36036 297.36036 148.86036 14886.03600 2020-01-01 2020-01-02 2020-01-01 00:02:00 2020-01-02 03:30:21 2020-01-01 00:02:00.000 2020-01-02 03:30:21.000 120 99021 49570.5 4957050 120 99021 49570.5 4957050 -32449 32486 5006.02 500602 -125 126 3.78 378 -121 2 10111 99022 0.36336 297.36336 148.86336 14886.33633 0.36336 297.36337 148.86336 14886.33627 0.36336 297.36336 148.86336 14886.33600 2020-01-01 2020-01-02 2020-01-01 00:02:01 2020-01-02 03:30:22 2020-01-01 00:02:01.000 2020-01-02 03:30:22.000 121 99022 49571.5 4957150 121 99022 49571.5 4957150 -32448 32487 5007.02 500702 -124 127 4.78 478 +110 2 10100 99011 0.33033 297.33033 148.83033 14883.03303 0.33033 297.33032 148.83033 14883.03321 0.33033 297.33033 148.83033000000006 14883.03300 2020-01-01 2020-01-02 2020-01-01 00:01:50 2020-01-02 03:30:11 2020-01-01 00:01:50.000 2020-01-02 03:30:11.000 110 99011 49560.5 4956050 110 99011 49560.5 4956050 -32459 32476 4996.02 499602 -128 127 1.46 146 +111 2 10101 99012 0.33333 297.33333 148.83333 14883.33333 0.33333 297.33334 148.83333 14883.33329 0.33333 297.33333 148.83332999999996 14883.33300 2020-01-01 2020-01-02 2020-01-01 00:01:51 2020-01-02 03:30:12 2020-01-01 00:01:51.000 2020-01-02 03:30:12.000 111 99012 49561.5 4956150 111 99012 49561.5 4956150 -32458 32477 4997.02 499702 -128 123 -0.1 -10 +112 2 10102 99013 0.33633 297.33633 148.83633 14883.63363 0.33633 297.33633 148.83633 14883.63348 0.33633 297.33633 148.83633000000006 14883.63300 2020-01-01 2020-01-02 2020-01-01 00:01:52 2020-01-02 03:30:13 2020-01-01 00:01:52.000 2020-01-02 03:30:13.000 112 99013 49562.5 4956250 112 99013 49562.5 4956250 -32457 32478 4998.02 499802 -127 124 0.9 90 +113 2 10103 99014 0.33933 297.33933 148.83933 14883.93393 0.33933 297.33932 148.83933 14883.9338 0.33933 297.33933 148.83933000000007 14883.93300 2020-01-01 2020-01-02 2020-01-01 00:01:53 2020-01-02 03:30:14 2020-01-01 00:01:53.000 2020-01-02 03:30:14.000 113 99014 49563.5 4956350 113 99014 49563.5 4956350 -32456 32479 4999.02 499902 -126 125 1.9 190 +114 2 10104 99015 0.34234 297.34234 148.84234 14884.23423 0.34234 297.34235 148.84234 14884.23437 0.34234 297.34234 148.84233999999992 14884.23400 2020-01-01 2020-01-02 2020-01-01 00:01:54 2020-01-02 03:30:15 2020-01-01 00:01:54.000 2020-01-02 03:30:15.000 114 99015 49564.5 4956450 114 99015 49564.5 4956450 -32455 32480 5000.02 500002 -125 126 2.9 290 +115 2 10105 99016 0.34534 297.34534 148.84534 14884.53453 0.34534 297.34534 148.84534 14884.53468 0.34534 297.34534 148.8453399999999 14884.53400 2020-01-01 2020-01-02 2020-01-01 00:01:55 2020-01-02 03:30:16 2020-01-01 00:01:55.000 2020-01-02 03:30:16.000 115 99016 49565.5 4956550 115 99016 49565.5 4956550 -32454 32481 5001.02 500102 -124 127 3.9 390 +116 2 10106 99017 0.34834 297.34834 148.84834 14884.83483 0.34834 297.34836 148.84834 14884.83476 0.34834 297.34834 148.84834000000004 14884.83400 2020-01-01 2020-01-02 2020-01-01 00:01:56 2020-01-02 03:30:17 2020-01-01 00:01:56.000 2020-01-02 03:30:17.000 116 99017 49566.5 4956650 116 99017 49566.5 4956650 -32453 32482 5002.02 500202 -128 127 2.34 234 +117 2 10107 99018 0.35135 297.35135 148.85135 14885.13513 0.35135 297.35135 148.85134 14885.13495 0.35135 297.35135 148.85135000000014 14885.13500 2020-01-01 2020-01-02 2020-01-01 00:01:57 2020-01-02 03:30:18 2020-01-01 00:01:57.000 2020-01-02 03:30:18.000 117 99018 49567.5 4956750 117 99018 49567.5 4956750 -32452 32483 5003.02 500302 -128 123 0.78 78 +118 2 10108 99019 0.35435 297.35435 148.85435 14885.43543 0.35435 297.35434 148.85435 14885.43526 0.35435 297.35435 148.8543499999998 14885.43500 2020-01-01 2020-01-02 2020-01-01 00:01:58 2020-01-02 03:30:19 2020-01-01 00:01:58.000 2020-01-02 03:30:19.000 118 99019 49568.5 4956850 118 99019 49568.5 4956850 -32451 32484 5004.02 500402 -127 124 1.78 178 +119 2 10109 99020 0.35735 297.35735 148.85735 14885.73573 0.35735 297.35736 148.85736 14885.736 0.35735 297.35735 148.85735000000017 14885.73500 2020-01-01 2020-01-02 2020-01-01 00:01:59 2020-01-02 03:30:20 2020-01-01 00:01:59.000 2020-01-02 03:30:20.000 119 99020 49569.5 4956950 119 99020 49569.5 4956950 -32450 32485 5005.02 500502 -126 125 2.78 278 +12 2 10002 99912 0.03603 300.03603 150.03603 15153.63963 0.03603 300.03604 150.03603 15153.6399 0.03603 300.03603 150.03602999999995 15153.63903 2020-01-01 2020-01-02 2020-01-01 00:00:12 2020-01-02 03:45:12 2020-01-01 00:00:12.000 2020-01-02 03:45:12.000 12 99912 49962 5046162 12 99912 49962 5046162 -32557 32378 4541.009900990099 458642 -127 124 -1.0891089108910892 -110 +120 2 10110 99021 0.36036 297.36036 148.86036 14886.03603 0.36036 297.36035 148.86036 14886.03615 0.36036 297.36036 148.86036000000007 14886.03600 2020-01-01 2020-01-02 2020-01-01 00:02:00 2020-01-02 03:30:21 2020-01-01 00:02:00.000 2020-01-02 03:30:21.000 120 99021 49570.5 4957050 120 99021 49570.5 4957050 -32449 32486 5006.02 500602 -125 126 3.78 378 +121 2 10111 99022 0.36336 297.36336 148.86336 14886.33633 0.36336 297.36337 148.86336 14886.33627 0.36336 297.36336 148.86335999999991 14886.33600 2020-01-01 2020-01-02 2020-01-01 00:02:01 2020-01-02 03:30:22 2020-01-01 00:02:01.000 2020-01-02 03:30:22.000 121 99022 49571.5 4957150 121 99022 49571.5 4957150 -32448 32487 5007.02 500702 -124 127 4.78 478 122 2 10112 99023 0.36636 297.36636 148.86636 14886.63663 0.36636 297.36636 148.86636 14886.63642 0.36636 297.36636 148.86636 14886.63600 2020-01-01 2020-01-02 2020-01-01 00:02:02 2020-01-02 03:30:23 2020-01-01 00:02:02.000 2020-01-02 03:30:23.000 122 99023 49572.5 4957250 122 99023 49572.5 4957250 -32447 32488 5008.02 500802 -128 127 3.22 322 -123 2 10113 99024 0.36936 297.36936 148.86936 14886.93693 0.36936 297.36935 148.86936 14886.93673 0.36936 297.36936 148.86936 14886.93600 2020-01-01 2020-01-02 2020-01-01 00:02:03 2020-01-02 03:30:24 2020-01-01 00:02:03.000 2020-01-02 03:30:24.000 123 99024 49573.5 4957350 123 99024 49573.5 4957350 -32446 32489 5009.02 500902 -128 127 1.66 166 -124 2 10114 99025 0.37237 297.37237 148.87237 14887.23723 0.37237 297.37238 148.87237 14887.23746 0.37237 297.37237 148.87237 14887.23700 2020-01-01 2020-01-02 2020-01-01 00:02:04 2020-01-02 03:30:25 2020-01-01 00:02:04.000 2020-01-02 03:30:25.000 124 99025 49574.5 4957450 124 99025 49574.5 4957450 -32445 32490 5010.02 501002 -128 124 0.1 10 -125 2 10115 99026 0.37537 297.37537 148.87537 14887.53753 0.37537 297.37537 148.87537 14887.53762 0.37537 297.37537 148.87537 14887.53700 2020-01-01 2020-01-02 2020-01-01 00:02:05 2020-01-02 03:30:26 2020-01-01 00:02:05.000 2020-01-02 03:30:26.000 125 99026 49575.5 4957550 125 99026 49575.5 4957550 -32444 32491 5011.02 501102 -127 125 1.1 110 -126 2 10116 99027 0.37837 297.37837 148.87837 14887.83783 0.37837 297.3784 148.87837 14887.83774 0.37837 297.37837 148.87837 14887.83700 2020-01-01 2020-01-02 2020-01-01 00:02:06 2020-01-02 03:30:27 2020-01-01 00:02:06.000 2020-01-02 03:30:27.000 126 99027 49576.5 4957650 126 99027 49576.5 4957650 -32443 32492 5012.02 501202 -126 126 2.1 210 -127 2 10117 99028 0.38138 297.38138 148.88138 14888.13813 0.38138 297.38138 148.88137 14888.13789 0.38138 297.38138 148.88138 14888.13800 2020-01-01 2020-01-02 2020-01-01 00:02:07 2020-01-02 03:30:28 2020-01-01 00:02:07.000 2020-01-02 03:30:28.000 127 99028 49577.5 4957750 127 99028 49577.5 4957750 -32442 32493 5013.02 501302 -125 127 3.1 310 +123 2 10113 99024 0.36936 297.36936 148.86936 14886.93693 0.36936 297.36935 148.86936 14886.93673 0.36936 297.36936 148.86936000000003 14886.93600 2020-01-01 2020-01-02 2020-01-01 00:02:03 2020-01-02 03:30:24 2020-01-01 00:02:03.000 2020-01-02 03:30:24.000 123 99024 49573.5 4957350 123 99024 49573.5 4957350 -32446 32489 5009.02 500902 -128 127 1.66 166 +124 2 10114 99025 0.37237 297.37237 148.87237 14887.23723 0.37237 297.37238 148.87237 14887.23746 0.37237 297.37237 148.8723699999998 14887.23700 2020-01-01 2020-01-02 2020-01-01 00:02:04 2020-01-02 03:30:25 2020-01-01 00:02:04.000 2020-01-02 03:30:25.000 124 99025 49574.5 4957450 124 99025 49574.5 4957450 -32445 32490 5010.02 501002 -128 124 0.1 10 +125 2 10115 99026 0.37537 297.37537 148.87537 14887.53753 0.37537 297.37537 148.87537 14887.53762 0.37537 297.37537 148.87536999999986 14887.53700 2020-01-01 2020-01-02 2020-01-01 00:02:05 2020-01-02 03:30:26 2020-01-01 00:02:05.000 2020-01-02 03:30:26.000 125 99026 49575.5 4957550 125 99026 49575.5 4957550 -32444 32491 5011.02 501102 -127 125 1.1 110 +126 2 10116 99027 0.37837 297.37837 148.87837 14887.83783 0.37837 297.3784 148.87837 14887.83774 0.37837 297.37837 148.87837000000016 14887.83700 2020-01-01 2020-01-02 2020-01-01 00:02:06 2020-01-02 03:30:27 2020-01-01 00:02:06.000 2020-01-02 03:30:27.000 126 99027 49576.5 4957650 126 99027 49576.5 4957650 -32443 32492 5012.02 501202 -126 126 2.1 210 +127 2 10117 99028 0.38138 297.38138 148.88138 14888.13813 0.38138 297.38138 148.88137 14888.13789 0.38138 297.38138 148.8813800000001 14888.13800 2020-01-01 2020-01-02 2020-01-01 00:02:07 2020-01-02 03:30:28 2020-01-01 00:02:07.000 2020-01-02 03:30:28.000 127 99028 49577.5 4957750 127 99028 49577.5 4957750 -32442 32493 5013.02 501302 -125 127 3.1 310 128 2 10118 99029 0.38438 297.38438 148.88438 14888.43843 0.38438 297.3844 148.88438 14888.43862 0.38438 297.38438 148.88438 14888.43800 2020-01-01 2020-01-02 2020-01-01 00:02:08 2020-01-02 03:30:29 2020-01-01 00:02:08.000 2020-01-02 03:30:29.000 128 99029 49578.5 4957850 128 99029 49578.5 4957850 -32441 32494 5014.02 501402 -128 127 1.54 154 -129 2 10119 99030 0.38738 297.38738 148.88738 14888.73873 0.38738 297.3874 148.88738 14888.73894 0.38738 297.38738 148.88738 14888.73800 2020-01-01 2020-01-02 2020-01-01 00:02:09 2020-01-02 03:30:30 2020-01-01 00:02:09.000 2020-01-02 03:30:30.000 129 99030 49579.5 4957950 129 99030 49579.5 4957950 -32440 32495 5015.02 501502 -128 127 -0.02 -2 -13 2 10003 99913 0.03903 300.03903 150.03903 15153.94294 0.03903 300.03903 150.03903 15153.94255 0.03903 300.03903 150.03903 15153.94203 2020-01-01 2020-01-02 2020-01-01 00:00:13 2020-01-02 03:45:13 2020-01-01 00:00:13.000 2020-01-02 03:45:13.000 13 99913 49963 5046263 13 99913 49963 5046263 -32556 32379 4542.009900990099 458743 -126 125 -0.0891089108910891 -9 -130 2 10120 99031 0.39039 297.39039 148.89039 14889.03903 0.39039 297.39038 148.89039 14889.03909 0.39039 297.39039 148.89039 14889.03900 2020-01-01 2020-01-02 2020-01-01 00:02:10 2020-01-02 03:30:31 2020-01-01 00:02:10.000 2020-01-02 03:30:31.000 130 99031 49580.5 4958050 130 99031 49580.5 4958050 -32439 32496 5016.02 501602 -128 123 -1.58 -158 -131 2 10121 99032 0.39339 297.39339 148.89339 14889.33933 0.39339 297.3934 148.89339 14889.33921 0.39339 297.39339 148.89339 14889.33900 2020-01-01 2020-01-02 2020-01-01 00:02:11 2020-01-02 03:30:32 2020-01-01 00:02:11.000 2020-01-02 03:30:32.000 131 99032 49581.5 4958150 131 99032 49581.5 4958150 -32438 32497 5017.02 501702 -127 124 -0.58 -58 -132 2 10122 99033 0.39639 297.39639 148.89639 14889.63963 0.39639 297.3964 148.89639 14889.63936 0.39639 297.39639 148.89639 14889.63900 2020-01-01 2020-01-02 2020-01-01 00:02:12 2020-01-02 03:30:33 2020-01-01 00:02:12.000 2020-01-02 03:30:33.000 132 99033 49582.5 4958250 132 99033 49582.5 4958250 -32437 32498 5018.02 501802 -126 125 0.42 42 -133 2 10123 99034 0.39939 297.39939 148.89939 14889.93993 0.39939 297.3994 148.8994 14889.94009 0.39939 297.39939 148.89939 14889.93900 2020-01-01 2020-01-02 2020-01-01 00:02:13 2020-01-02 03:30:34 2020-01-01 00:02:13.000 2020-01-02 03:30:34.000 133 99034 49583.5 4958350 133 99034 49583.5 4958350 -32436 32499 5019.02 501902 -125 126 1.42 142 -134 2 10124 99035 0.4024 297.4024 148.9024 14890.24024 0.4024 297.4024 148.9024 14890.24041 0.40240 297.40240 148.90240 14890.24000 2020-01-01 2020-01-02 2020-01-01 00:02:14 2020-01-02 03:30:35 2020-01-01 00:02:14.000 2020-01-02 03:30:35.000 134 99035 49584.5 4958450 134 99035 49584.5 4958450 -32435 32500 5020.02 502002 -124 127 2.42 242 -135 2 10125 99036 0.4054 297.4054 148.9054 14890.54054 0.4054 297.4054 148.9054 14890.54059 0.40540 297.40540 148.90540 14890.54000 2020-01-01 2020-01-02 2020-01-01 00:02:15 2020-01-02 03:30:36 2020-01-01 00:02:15.000 2020-01-02 03:30:36.000 135 99036 49585.5 4958550 135 99036 49585.5 4958550 -32434 32501 5021.02 502102 -128 127 0.86 86 -136 2 10126 99037 0.4084 297.4084 148.9084 14890.84084 0.4084 297.40842 148.9084 14890.84068 0.40840 297.40840 148.90840 14890.84000 2020-01-01 2020-01-02 2020-01-01 00:02:16 2020-01-02 03:30:37 2020-01-01 00:02:16.000 2020-01-02 03:30:37.000 136 99037 49586.5 4958650 136 99037 49586.5 4958650 -32433 32502 5022.02 502202 -128 123 -0.7 -70 -137 2 10127 99038 0.41141 297.41141 148.91141 14891.14114 0.41141 297.4114 148.9114 14891.14099 0.41141 297.41141 148.91141 14891.14100 2020-01-01 2020-01-02 2020-01-01 00:02:17 2020-01-02 03:30:38 2020-01-01 00:02:17.000 2020-01-02 03:30:38.000 137 99038 49587.5 4958750 137 99038 49587.5 4958750 -32432 32503 5023.02 502302 -127 124 0.3 30 -138 2 10128 99039 0.41441 297.41441 148.91441 14891.44144 0.41441 297.41443 148.91441 14891.44157 0.41441 297.41441 148.91441 14891.44100 2020-01-01 2020-01-02 2020-01-01 00:02:18 2020-01-02 03:30:39 2020-01-01 00:02:18.000 2020-01-02 03:30:39.000 138 99039 49588.5 4958850 138 99039 49588.5 4958850 -32431 32504 5024.02 502402 -126 125 1.3 130 +129 2 10119 99030 0.38738 297.38738 148.88738 14888.73873 0.38738 297.3874 148.88738 14888.73894 0.38738 297.38738 148.8873800000001 14888.73800 2020-01-01 2020-01-02 2020-01-01 00:02:09 2020-01-02 03:30:30 2020-01-01 00:02:09.000 2020-01-02 03:30:30.000 129 99030 49579.5 4957950 129 99030 49579.5 4957950 -32440 32495 5015.02 501502 -128 127 -0.02 -2 +13 2 10003 99913 0.03903 300.03903 150.03903 15153.94294 0.03903 300.03903 150.03903 15153.94255 0.03903 300.03903 150.03902999999994 15153.94203 2020-01-01 2020-01-02 2020-01-01 00:00:13 2020-01-02 03:45:13 2020-01-01 00:00:13.000 2020-01-02 03:45:13.000 13 99913 49963 5046263 13 99913 49963 5046263 -32556 32379 4542.009900990099 458743 -126 125 -0.0891089108910891 -9 +130 2 10120 99031 0.39039 297.39039 148.89039 14889.03903 0.39039 297.39038 148.89039 14889.03909 0.39039 297.39039 148.89038999999994 14889.03900 2020-01-01 2020-01-02 2020-01-01 00:02:10 2020-01-02 03:30:31 2020-01-01 00:02:10.000 2020-01-02 03:30:31.000 130 99031 49580.5 4958050 130 99031 49580.5 4958050 -32439 32496 5016.02 501602 -128 123 -1.58 -158 +131 2 10121 99032 0.39339 297.39339 148.89339 14889.33933 0.39339 297.3934 148.89339 14889.33921 0.39339 297.39339 148.89338999999995 14889.33900 2020-01-01 2020-01-02 2020-01-01 00:02:11 2020-01-02 03:30:32 2020-01-01 00:02:11.000 2020-01-02 03:30:32.000 131 99032 49581.5 4958150 131 99032 49581.5 4958150 -32438 32497 5017.02 501702 -127 124 -0.58 -58 +132 2 10122 99033 0.39639 297.39639 148.89639 14889.63963 0.39639 297.3964 148.89639 14889.63936 0.39639 297.39639 148.8963899999999 14889.63900 2020-01-01 2020-01-02 2020-01-01 00:02:12 2020-01-02 03:30:33 2020-01-01 00:02:12.000 2020-01-02 03:30:33.000 132 99033 49582.5 4958250 132 99033 49582.5 4958250 -32437 32498 5018.02 501802 -126 125 0.42 42 +133 2 10123 99034 0.39939 297.39939 148.89939 14889.93993 0.39939 297.3994 148.8994 14889.94009 0.39939 297.39939 148.89938999999998 14889.93900 2020-01-01 2020-01-02 2020-01-01 00:02:13 2020-01-02 03:30:34 2020-01-01 00:02:13.000 2020-01-02 03:30:34.000 133 99034 49583.5 4958350 133 99034 49583.5 4958350 -32436 32499 5019.02 501902 -125 126 1.42 142 +134 2 10124 99035 0.4024 297.4024 148.9024 14890.24024 0.4024 297.4024 148.9024 14890.24041 0.40240 297.40240 148.90240000000017 14890.24000 2020-01-01 2020-01-02 2020-01-01 00:02:14 2020-01-02 03:30:35 2020-01-01 00:02:14.000 2020-01-02 03:30:35.000 134 99035 49584.5 4958450 134 99035 49584.5 4958450 -32435 32500 5020.02 502002 -124 127 2.42 242 +135 2 10125 99036 0.4054 297.4054 148.9054 14890.54054 0.4054 297.4054 148.9054 14890.54059 0.40540 297.40540 148.90539999999984 14890.54000 2020-01-01 2020-01-02 2020-01-01 00:02:15 2020-01-02 03:30:36 2020-01-01 00:02:15.000 2020-01-02 03:30:36.000 135 99036 49585.5 4958550 135 99036 49585.5 4958550 -32434 32501 5021.02 502102 -128 127 0.86 86 +136 2 10126 99037 0.4084 297.4084 148.9084 14890.84084 0.4084 297.40842 148.9084 14890.84068 0.40840 297.40840 148.9084000000001 14890.84000 2020-01-01 2020-01-02 2020-01-01 00:02:16 2020-01-02 03:30:37 2020-01-01 00:02:16.000 2020-01-02 03:30:37.000 136 99037 49586.5 4958650 136 99037 49586.5 4958650 -32433 32502 5022.02 502202 -128 123 -0.7 -70 +137 2 10127 99038 0.41141 297.41141 148.91141 14891.14114 0.41141 297.4114 148.9114 14891.14099 0.41141 297.41141 148.91141000000007 14891.14100 2020-01-01 2020-01-02 2020-01-01 00:02:17 2020-01-02 03:30:38 2020-01-01 00:02:17.000 2020-01-02 03:30:38.000 137 99038 49587.5 4958750 137 99038 49587.5 4958750 -32432 32503 5023.02 502302 -127 124 0.3 30 +138 2 10128 99039 0.41441 297.41441 148.91441 14891.44144 0.41441 297.41443 148.91441 14891.44157 0.41441 297.41441 148.91440999999995 14891.44100 2020-01-01 2020-01-02 2020-01-01 00:02:18 2020-01-02 03:30:39 2020-01-01 00:02:18.000 2020-01-02 03:30:39.000 138 99039 49588.5 4958850 138 99039 49588.5 4958850 -32431 32504 5024.02 502402 -126 125 1.3 130 139 2 10129 99040 0.41741 297.41741 148.91741 14891.74174 0.41741 297.41742 148.91741 14891.74188 0.41741 297.41741 148.91741 14891.74100 2020-01-01 2020-01-02 2020-01-01 00:02:19 2020-01-02 03:30:40 2020-01-01 00:02:19.000 2020-01-02 03:30:40.000 139 99040 49589.5 4958950 139 99040 49589.5 4958950 -32430 32505 5025.02 502502 -125 126 2.3 230 -14 2 10004 99914 0.04204 300.04204 150.04204 15154.24624 0.04204 300.04205 150.04204 15154.2463 0.04204 300.04204 150.04204 15154.24604 2020-01-01 2020-01-02 2020-01-01 00:00:14 2020-01-02 03:45:14 2020-01-01 00:00:14.000 2020-01-02 03:45:14.000 14 99914 49964 5046364 14 99914 49964 5046364 -32555 32380 4543.009900990099 458844 -125 126 0.9108910891089109 92 -140 2 10130 99041 0.42042 297.42042 148.92042 14892.04204 0.42042 297.4204 148.92042 14892.04206 0.42042 297.42042 148.92042 14892.04200 2020-01-01 2020-01-02 2020-01-01 00:02:20 2020-01-02 03:30:41 2020-01-01 00:02:20.000 2020-01-02 03:30:41.000 140 99041 49590.5 4959050 140 99041 49590.5 4959050 -32429 32506 5026.02 502602 -124 127 3.3 330 -141 2 10131 99042 0.42342 297.42342 148.92342 14892.34234 0.42342 297.42343 148.92342 14892.34215 0.42342 297.42342 148.92342 14892.34200 2020-01-01 2020-01-02 2020-01-01 00:02:21 2020-01-02 03:30:42 2020-01-01 00:02:21.000 2020-01-02 03:30:42.000 141 99042 49591.5 4959150 141 99042 49591.5 4959150 -32428 32507 5027.02 502702 -128 127 1.74 174 -142 2 10132 99043 0.42642 297.42642 148.92642 14892.64264 0.42642 297.42642 148.92642 14892.64246 0.42642 297.42642 148.92642 14892.64200 2020-01-01 2020-01-02 2020-01-01 00:02:22 2020-01-02 03:30:43 2020-01-01 00:02:22.000 2020-01-02 03:30:43.000 142 99043 49592.5 4959250 142 99043 49592.5 4959250 -32427 32508 5028.02 502802 -128 123 0.18 18 -143 2 10133 99044 0.42942 297.42942 148.92942 14892.94294 0.42942 297.42944 148.92943 14892.94304 0.42942 297.42942 148.92942 14892.94200 2020-01-01 2020-01-02 2020-01-01 00:02:23 2020-01-02 03:30:44 2020-01-01 00:02:23.000 2020-01-02 03:30:44.000 143 99044 49593.5 4959350 143 99044 49593.5 4959350 -32426 32509 5029.02 502902 -127 124 1.18 118 -144 2 10134 99045 0.43243 297.43243 148.93243 14893.24324 0.43243 297.43243 148.93243 14893.24338 0.43243 297.43243 148.93243 14893.24300 2020-01-01 2020-01-02 2020-01-01 00:02:24 2020-01-02 03:30:45 2020-01-01 00:02:24.000 2020-01-02 03:30:45.000 144 99045 49594.5 4959450 144 99045 49594.5 4959450 -32425 32510 5030.02 503002 -126 125 2.18 218 -145 2 10135 99046 0.43543 297.43543 148.93543 14893.54354 0.43543 297.43542 148.93543 14893.54354 0.43543 297.43543 148.93543 14893.54300 2020-01-01 2020-01-02 2020-01-01 00:02:25 2020-01-02 03:30:46 2020-01-01 00:02:25.000 2020-01-02 03:30:46.000 145 99046 49595.5 4959550 145 99046 49595.5 4959550 -32424 32511 5031.02 503102 -125 126 3.18 318 -146 2 10136 99047 0.43843 297.43843 148.93843 14893.84384 0.43843 297.43845 148.93844 14893.84427 0.43843 297.43843 148.93843 14893.84300 2020-01-01 2020-01-02 2020-01-01 00:02:26 2020-01-02 03:30:47 2020-01-01 00:02:26.000 2020-01-02 03:30:47.000 146 99047 49596.5 4959650 146 99047 49596.5 4959650 -32423 32512 5032.02 503202 -124 127 4.18 418 +14 2 10004 99914 0.04204 300.04204 150.04204 15154.24624 0.04204 300.04205 150.04204 15154.2463 0.04204 300.04204 150.0420400000001 15154.24604 2020-01-01 2020-01-02 2020-01-01 00:00:14 2020-01-02 03:45:14 2020-01-01 00:00:14.000 2020-01-02 03:45:14.000 14 99914 49964 5046364 14 99914 49964 5046364 -32555 32380 4543.009900990099 458844 -125 126 0.9108910891089109 92 +140 2 10130 99041 0.42042 297.42042 148.92042 14892.04204 0.42042 297.4204 148.92042 14892.04206 0.42042 297.42042 148.9204200000002 14892.04200 2020-01-01 2020-01-02 2020-01-01 00:02:20 2020-01-02 03:30:41 2020-01-01 00:02:20.000 2020-01-02 03:30:41.000 140 99041 49590.5 4959050 140 99041 49590.5 4959050 -32429 32506 5026.02 502602 -124 127 3.3 330 +141 2 10131 99042 0.42342 297.42342 148.92342 14892.34234 0.42342 297.42343 148.92342 14892.34215 0.42342 297.42342 148.92341999999988 14892.34200 2020-01-01 2020-01-02 2020-01-01 00:02:21 2020-01-02 03:30:42 2020-01-01 00:02:21.000 2020-01-02 03:30:42.000 141 99042 49591.5 4959150 141 99042 49591.5 4959150 -32428 32507 5027.02 502702 -128 127 1.74 174 +142 2 10132 99043 0.42642 297.42642 148.92642 14892.64264 0.42642 297.42642 148.92642 14892.64246 0.42642 297.42642 148.92641999999984 14892.64200 2020-01-01 2020-01-02 2020-01-01 00:02:22 2020-01-02 03:30:43 2020-01-01 00:02:22.000 2020-01-02 03:30:43.000 142 99043 49592.5 4959250 142 99043 49592.5 4959250 -32427 32508 5028.02 502802 -128 123 0.18 18 +143 2 10133 99044 0.42942 297.42942 148.92942 14892.94294 0.42942 297.42944 148.92943 14892.94304 0.42942 297.42942 148.92942000000016 14892.94200 2020-01-01 2020-01-02 2020-01-01 00:02:23 2020-01-02 03:30:44 2020-01-01 00:02:23.000 2020-01-02 03:30:44.000 143 99044 49593.5 4959350 143 99044 49593.5 4959350 -32426 32509 5029.02 502902 -127 124 1.18 118 +144 2 10134 99045 0.43243 297.43243 148.93243 14893.24324 0.43243 297.43243 148.93243 14893.24338 0.43243 297.43243 148.93243000000012 14893.24300 2020-01-01 2020-01-02 2020-01-01 00:02:24 2020-01-02 03:30:45 2020-01-01 00:02:24.000 2020-01-02 03:30:45.000 144 99045 49594.5 4959450 144 99045 49594.5 4959450 -32425 32510 5030.02 503002 -126 125 2.18 218 +145 2 10135 99046 0.43543 297.43543 148.93543 14893.54354 0.43543 297.43542 148.93543 14893.54354 0.43543 297.43543 148.93542999999983 14893.54300 2020-01-01 2020-01-02 2020-01-01 00:02:25 2020-01-02 03:30:46 2020-01-01 00:02:25.000 2020-01-02 03:30:46.000 145 99046 49595.5 4959550 145 99046 49595.5 4959550 -32424 32511 5031.02 503102 -125 126 3.18 318 +146 2 10136 99047 0.43843 297.43843 148.93843 14893.84384 0.43843 297.43845 148.93844 14893.84427 0.43843 297.43843 148.9384300000001 14893.84300 2020-01-01 2020-01-02 2020-01-01 00:02:26 2020-01-02 03:30:47 2020-01-01 00:02:26.000 2020-01-02 03:30:47.000 146 99047 49596.5 4959650 146 99047 49596.5 4959650 -32423 32512 5032.02 503202 -124 127 4.18 418 147 2 10137 99048 0.44144 297.44144 148.94144 14894.14414 0.44144 297.44144 148.94143 14894.14392 0.44144 297.44144 148.94144 14894.14400 2020-01-01 2020-01-02 2020-01-01 00:02:27 2020-01-02 03:30:48 2020-01-01 00:02:27.000 2020-01-02 03:30:48.000 147 99048 49597.5 4959750 147 99048 49597.5 4959750 -32422 32513 5033.02 503302 -128 127 2.62 262 -148 2 10138 99049 0.44444 297.44444 148.94444 14894.44444 0.44444 297.44446 148.94444 14894.4445 0.44444 297.44444 148.94444 14894.44400 2020-01-01 2020-01-02 2020-01-01 00:02:28 2020-01-02 03:30:49 2020-01-01 00:02:28.000 2020-01-02 03:30:49.000 148 99049 49598.5 4959850 148 99049 49598.5 4959850 -32421 32514 5034.02 503402 -128 127 1.06 106 -149 2 10139 99050 0.44744 297.44744 148.94744 14894.74474 0.44744 297.44745 148.94744 14894.74485 0.44744 297.44744 148.94744 14894.74400 2020-01-01 2020-01-02 2020-01-01 00:02:29 2020-01-02 03:30:50 2020-01-01 00:02:29.000 2020-01-02 03:30:50.000 149 99050 49599.5 4959950 149 99050 49599.5 4959950 -32420 32515 5035.02 503502 -128 124 -0.5 -50 -15 2 10005 99915 0.04504 300.04504 150.04504 15154.54954 0.04504 300.04504 150.04504 15154.54945 0.04504 300.04504 150.04504 15154.54904 2020-01-01 2020-01-02 2020-01-01 00:00:15 2020-01-02 03:45:15 2020-01-01 00:00:15.000 2020-01-02 03:45:15.000 15 99915 49965 5046465 15 99915 49965 5046465 -32554 32381 4544.009900990099 458945 -124 127 1.9108910891089108 193 -150 2 10140 99051 0.45045 297.45045 148.95045 14895.04504 0.45045 297.45044 148.95045 14895.04501 0.45045 297.45045 148.95045 14895.04500 2020-01-01 2020-01-02 2020-01-01 00:02:30 2020-01-02 03:30:51 2020-01-01 00:02:30.000 2020-01-02 03:30:51.000 150 99051 49600.5 4960050 150 99051 49600.5 4960050 -32419 32516 5036.02 503602 -127 125 0.5 50 -151 2 10141 99052 0.45345 297.45345 148.95345 14895.34534 0.45345 297.45346 148.95345 14895.34574 0.45345 297.45345 148.95345 14895.34500 2020-01-01 2020-01-02 2020-01-01 00:02:31 2020-01-02 03:30:52 2020-01-01 00:02:31.000 2020-01-02 03:30:52.000 151 99052 49601.5 4960150 151 99052 49601.5 4960150 -32418 32517 5037.02 503702 -126 126 1.5 150 -152 2 10142 99053 0.45645 297.45645 148.95645 14895.64564 0.45645 297.45645 148.95645 14895.6454 0.45645 297.45645 148.95645 14895.64500 2020-01-01 2020-01-02 2020-01-01 00:02:32 2020-01-02 03:30:53 2020-01-01 00:02:32.000 2020-01-02 03:30:53.000 152 99053 49602.5 4960250 152 99053 49602.5 4960250 -32417 32518 5038.02 503802 -125 127 2.5 250 -153 2 10143 99054 0.45945 297.45945 148.95945 14895.94594 0.45945 297.45947 148.95946 14895.94601 0.45945 297.45945 148.95945 14895.94500 2020-01-01 2020-01-02 2020-01-01 00:02:33 2020-01-02 03:30:54 2020-01-01 00:02:33.000 2020-01-02 03:30:54.000 153 99054 49603.5 4960350 153 99054 49603.5 4960350 -32416 32519 5039.02 503902 -128 127 0.94 94 -154 2 10144 99055 0.46246 297.46246 148.96246 14896.24624 0.46246 297.46246 148.96246 14896.24633 0.46246 297.46246 148.96246 14896.24600 2020-01-01 2020-01-02 2020-01-01 00:02:34 2020-01-02 03:30:55 2020-01-01 00:02:34.000 2020-01-02 03:30:55.000 154 99055 49604.5 4960450 154 99055 49604.5 4960450 -32415 32520 5040.02 504002 -128 127 -0.62 -62 -155 2 10145 99056 0.46546 297.46546 148.96546 14896.54654 0.46546 297.46545 148.96546 14896.54647 0.46546 297.46546 148.96546 14896.54600 2020-01-01 2020-01-02 2020-01-01 00:02:35 2020-01-02 03:30:56 2020-01-01 00:02:35.000 2020-01-02 03:30:56.000 155 99056 49605.5 4960550 155 99056 49605.5 4960550 -32414 32521 5041.02 504102 -128 123 -2.18 -218 -156 2 10146 99057 0.46846 297.46846 148.96846 14896.84684 0.46846 297.46848 148.96847 14896.84721 0.46846 297.46846 148.96846 14896.84600 2020-01-01 2020-01-02 2020-01-01 00:02:36 2020-01-02 03:30:57 2020-01-01 00:02:36.000 2020-01-02 03:30:57.000 156 99057 49606.5 4960650 156 99057 49606.5 4960650 -32413 32522 5042.02 504202 -127 124 -1.18 -118 -157 2 10147 99058 0.47147 297.47147 148.97147 14897.14714 0.47147 297.47147 148.97146 14897.14687 0.47147 297.47147 148.97147 14897.14700 2020-01-01 2020-01-02 2020-01-01 00:02:37 2020-01-02 03:30:58 2020-01-01 00:02:37.000 2020-01-02 03:30:58.000 157 99058 49607.5 4960750 157 99058 49607.5 4960750 -32412 32523 5043.02 504302 -126 125 -0.18 -18 -158 2 10148 99059 0.47447 297.47447 148.97447 14897.44744 0.47447 297.4745 148.97447 14897.44748 0.47447 297.47447 148.97447 14897.44700 2020-01-01 2020-01-02 2020-01-01 00:02:38 2020-01-02 03:30:59 2020-01-01 00:02:38.000 2020-01-02 03:30:59.000 158 99059 49608.5 4960850 158 99059 49608.5 4960850 -32411 32524 5044.02 504402 -125 126 0.82 82 -159 2 10149 99060 0.47747 297.47747 148.97747 14897.74774 0.47747 297.47748 148.97747 14897.74779 0.47747 297.47747 148.97747 14897.74700 2020-01-01 2020-01-02 2020-01-01 00:02:39 2020-01-02 03:31:00 2020-01-01 00:02:39.000 2020-01-02 03:31:00.000 159 99060 49609.5 4960950 159 99060 49609.5 4960950 -32410 32525 5045.02 504502 -124 127 1.82 182 -16 2 10006 99916 0.04804 300.04804 150.04804 15154.85285 0.04804 300.04803 150.04804 15154.85279 0.04804 300.04804 150.04804 15154.85204 2020-01-01 2020-01-02 2020-01-01 00:00:16 2020-01-02 03:45:16 2020-01-01 00:00:16.000 2020-01-02 03:45:16.000 16 99916 49966 5046566 16 99916 49966 5046566 -32553 32382 4545.009900990099 459046 -128 127 0.37623762376237624 38 -160 2 10150 99061 0.48048 297.48048 148.98048 14898.04804 0.48048 297.48047 148.98048 14898.0481 0.48048 297.48048 148.98048 14898.04800 2020-01-01 2020-01-02 2020-01-01 00:02:40 2020-01-02 03:31:01 2020-01-01 00:02:40.000 2020-01-02 03:31:01.000 160 99061 49610.5 4961050 160 99061 49610.5 4961050 -32409 32526 5046.02 504602 -128 127 0.26 26 -161 2 10151 99062 0.48348 297.48348 148.98348 14898.34834 0.48348 297.4835 148.98348 14898.34868 0.48348 297.48348 148.98348 14898.34800 2020-01-01 2020-01-02 2020-01-01 00:02:41 2020-01-02 03:31:02 2020-01-01 00:02:41.000 2020-01-02 03:31:02.000 161 99062 49611.5 4961150 161 99062 49611.5 4961150 -32408 32527 5047.02 504702 -128 123 -1.3 -130 -162 2 10152 99063 0.48648 297.48648 148.98648 14898.64864 0.48648 297.48648 148.98648 14898.64837 0.48648 297.48648 148.98648 14898.64800 2020-01-01 2020-01-02 2020-01-01 00:02:42 2020-01-02 03:31:03 2020-01-01 00:02:42.000 2020-01-02 03:31:03.000 162 99063 49612.5 4961250 162 99063 49612.5 4961250 -32407 32528 5048.02 504802 -127 124 -0.3 -30 -163 2 10153 99064 0.48948 297.48948 148.98948 14898.94894 0.48948 297.4895 148.98948 14898.94895 0.48948 297.48948 148.98948 14898.94800 2020-01-01 2020-01-02 2020-01-01 00:02:43 2020-01-02 03:31:04 2020-01-01 00:02:43.000 2020-01-02 03:31:04.000 163 99064 49613.5 4961350 163 99064 49613.5 4961350 -32406 32529 5049.02 504902 -126 125 0.7 70 -164 2 10154 99065 0.49249 297.49249 148.99249 14899.24924 0.49249 297.4925 148.99249 14899.24926 0.49249 297.49249 148.99249 14899.24900 2020-01-01 2020-01-02 2020-01-01 00:02:44 2020-01-02 03:31:05 2020-01-01 00:02:44.000 2020-01-02 03:31:05.000 164 99065 49614.5 4961450 164 99065 49614.5 4961450 -32405 32530 5050.02 505002 -125 126 1.7 170 -165 2 10155 99066 0.49549 297.49549 148.99549 14899.54954 0.49549 297.49548 148.99549 14899.54957 0.49549 297.49549 148.99549 14899.54900 2020-01-01 2020-01-02 2020-01-01 00:02:45 2020-01-02 03:31:06 2020-01-01 00:02:45.000 2020-01-02 03:31:06.000 165 99066 49615.5 4961550 165 99066 49615.5 4961550 -32404 32531 5051.02 505102 -124 127 2.7 270 -166 2 10156 99067 0.49849 297.49849 148.99849 14899.84984 0.49849 297.4985 148.9985 14899.85015 0.49849 297.49849 148.99849 14899.84900 2020-01-01 2020-01-02 2020-01-01 00:02:46 2020-01-02 03:31:07 2020-01-01 00:02:46.000 2020-01-02 03:31:07.000 166 99067 49616.5 4961650 166 99067 49616.5 4961650 -32403 32532 5052.02 505202 -128 127 1.14 114 -167 2 10157 99068 0.5015 297.5015 149.0015 14900.15015 0.5015 297.5015 149.00149 14900.14984 0.50150 297.50150 149.00150 14900.15000 2020-01-01 2020-01-02 2020-01-01 00:02:47 2020-01-02 03:31:08 2020-01-01 00:02:47.000 2020-01-02 03:31:08.000 167 99068 49617.5 4961750 167 99068 49617.5 4961750 -32402 32533 5053.02 505302 -128 123 -0.42 -42 -168 2 10158 99069 0.5045 297.5045 149.0045 14900.45045 0.5045 297.50452 149.0045 14900.45042 0.50450 297.50450 149.00450 14900.45000 2020-01-01 2020-01-02 2020-01-01 00:02:48 2020-01-02 03:31:09 2020-01-01 00:02:48.000 2020-01-02 03:31:09.000 168 99069 49618.5 4961850 168 99069 49618.5 4961850 -32401 32534 5054.02 505402 -127 124 0.58 58 -169 2 10159 99070 0.5075 297.5075 149.0075 14900.75075 0.5075 297.5075 149.0075 14900.75073 0.50750 297.50750 149.00750 14900.75000 2020-01-01 2020-01-02 2020-01-01 00:02:49 2020-01-02 03:31:10 2020-01-01 00:02:49.000 2020-01-02 03:31:10.000 169 99070 49619.5 4961950 169 99070 49619.5 4961950 -32400 32535 5055.02 505502 -126 125 1.58 158 +148 2 10138 99049 0.44444 297.44444 148.94444 14894.44444 0.44444 297.44446 148.94444 14894.4445 0.44444 297.44444 148.94443999999996 14894.44400 2020-01-01 2020-01-02 2020-01-01 00:02:28 2020-01-02 03:30:49 2020-01-01 00:02:28.000 2020-01-02 03:30:49.000 148 99049 49598.5 4959850 148 99049 49598.5 4959850 -32421 32514 5034.02 503402 -128 127 1.06 106 +149 2 10139 99050 0.44744 297.44744 148.94744 14894.74474 0.44744 297.44745 148.94744 14894.74485 0.44744 297.44744 148.94743999999994 14894.74400 2020-01-01 2020-01-02 2020-01-01 00:02:29 2020-01-02 03:30:50 2020-01-01 00:02:29.000 2020-01-02 03:30:50.000 149 99050 49599.5 4959950 149 99050 49599.5 4959950 -32420 32515 5035.02 503502 -128 124 -0.5 -50 +15 2 10005 99915 0.04504 300.04504 150.04504 15154.54954 0.04504 300.04504 150.04504 15154.54945 0.04504 300.04504 150.04504000000017 15154.54904 2020-01-01 2020-01-02 2020-01-01 00:00:15 2020-01-02 03:45:15 2020-01-01 00:00:15.000 2020-01-02 03:45:15.000 15 99915 49965 5046465 15 99915 49965 5046465 -32554 32381 4544.009900990099 458945 -124 127 1.9108910891089108 193 +150 2 10140 99051 0.45045 297.45045 148.95045 14895.04504 0.45045 297.45044 148.95045 14895.04501 0.45045 297.45045 148.95045000000013 14895.04500 2020-01-01 2020-01-02 2020-01-01 00:02:30 2020-01-02 03:30:51 2020-01-01 00:02:30.000 2020-01-02 03:30:51.000 150 99051 49600.5 4960050 150 99051 49600.5 4960050 -32419 32516 5036.02 503602 -127 125 0.5 50 +151 2 10141 99052 0.45345 297.45345 148.95345 14895.34534 0.45345 297.45346 148.95345 14895.34574 0.45345 297.45345 148.9534500000002 14895.34500 2020-01-01 2020-01-02 2020-01-01 00:02:31 2020-01-02 03:30:52 2020-01-01 00:02:31.000 2020-01-02 03:30:52.000 151 99052 49601.5 4960150 151 99052 49601.5 4960150 -32418 32517 5037.02 503702 -126 126 1.5 150 +152 2 10142 99053 0.45645 297.45645 148.95645 14895.64564 0.45645 297.45645 148.95645 14895.6454 0.45645 297.45645 148.95644999999985 14895.64500 2020-01-01 2020-01-02 2020-01-01 00:02:32 2020-01-02 03:30:53 2020-01-01 00:02:32.000 2020-01-02 03:30:53.000 152 99053 49602.5 4960250 152 99053 49602.5 4960250 -32417 32518 5038.02 503802 -125 127 2.5 250 +153 2 10143 99054 0.45945 297.45945 148.95945 14895.94594 0.45945 297.45947 148.95946 14895.94601 0.45945 297.45945 148.95945000000015 14895.94500 2020-01-01 2020-01-02 2020-01-01 00:02:33 2020-01-02 03:30:54 2020-01-01 00:02:33.000 2020-01-02 03:30:54.000 153 99054 49603.5 4960350 153 99054 49603.5 4960350 -32416 32519 5039.02 503902 -128 127 0.94 94 +154 2 10144 99055 0.46246 297.46246 148.96246 14896.24624 0.46246 297.46246 148.96246 14896.24633 0.46246 297.46246 148.9624600000001 14896.24600 2020-01-01 2020-01-02 2020-01-01 00:02:34 2020-01-02 03:30:55 2020-01-01 00:02:34.000 2020-01-02 03:30:55.000 154 99055 49604.5 4960450 154 99055 49604.5 4960450 -32415 32520 5040.02 504002 -128 127 -0.62 -62 +155 2 10145 99056 0.46546 297.46546 148.96546 14896.54654 0.46546 297.46545 148.96546 14896.54647 0.46546 297.46546 148.96545999999995 14896.54600 2020-01-01 2020-01-02 2020-01-01 00:02:35 2020-01-02 03:30:56 2020-01-01 00:02:35.000 2020-01-02 03:30:56.000 155 99056 49605.5 4960550 155 99056 49605.5 4960550 -32414 32521 5041.02 504102 -128 123 -2.18 -218 +156 2 10146 99057 0.46846 297.46846 148.96846 14896.84684 0.46846 297.46848 148.96847 14896.84721 0.46846 297.46846 148.96846000000002 14896.84600 2020-01-01 2020-01-02 2020-01-01 00:02:36 2020-01-02 03:30:57 2020-01-01 00:02:36.000 2020-01-02 03:30:57.000 156 99057 49606.5 4960650 156 99057 49606.5 4960650 -32413 32522 5042.02 504202 -127 124 -1.18 -118 +157 2 10147 99058 0.47147 297.47147 148.97147 14897.14714 0.47147 297.47147 148.97146 14897.14687 0.47147 297.47147 148.97147000000024 14897.14700 2020-01-01 2020-01-02 2020-01-01 00:02:37 2020-01-02 03:30:58 2020-01-01 00:02:37.000 2020-01-02 03:30:58.000 157 99058 49607.5 4960750 157 99058 49607.5 4960750 -32412 32523 5043.02 504302 -126 125 -0.18 -18 +158 2 10148 99059 0.47447 297.47447 148.97447 14897.44744 0.47447 297.4745 148.97447 14897.44748 0.47447 297.47447 148.97446999999985 14897.44700 2020-01-01 2020-01-02 2020-01-01 00:02:38 2020-01-02 03:30:59 2020-01-01 00:02:38.000 2020-01-02 03:30:59.000 158 99059 49608.5 4960850 158 99059 49608.5 4960850 -32411 32524 5044.02 504402 -125 126 0.82 82 +159 2 10149 99060 0.47747 297.47747 148.97747 14897.74774 0.47747 297.47748 148.97747 14897.74779 0.47747 297.47747 148.97746999999987 14897.74700 2020-01-01 2020-01-02 2020-01-01 00:02:39 2020-01-02 03:31:00 2020-01-01 00:02:39.000 2020-01-02 03:31:00.000 159 99060 49609.5 4960950 159 99060 49609.5 4960950 -32410 32525 5045.02 504502 -124 127 1.82 182 +16 2 10006 99916 0.04804 300.04804 150.04804 15154.85285 0.04804 300.04803 150.04804 15154.85279 0.04804 300.04804 150.04803999999982 15154.85204 2020-01-01 2020-01-02 2020-01-01 00:00:16 2020-01-02 03:45:16 2020-01-01 00:00:16.000 2020-01-02 03:45:16.000 16 99916 49966 5046566 16 99916 49966 5046566 -32553 32382 4545.009900990099 459046 -128 127 0.37623762376237624 38 +160 2 10150 99061 0.48048 297.48048 148.98048 14898.04804 0.48048 297.48047 148.98048 14898.0481 0.48048 297.48048 148.9804800000001 14898.04800 2020-01-01 2020-01-02 2020-01-01 00:02:40 2020-01-02 03:31:01 2020-01-01 00:02:40.000 2020-01-02 03:31:01.000 160 99061 49610.5 4961050 160 99061 49610.5 4961050 -32409 32526 5046.02 504602 -128 127 0.26 26 +161 2 10151 99062 0.48348 297.48348 148.98348 14898.34834 0.48348 297.4835 148.98348 14898.34868 0.48348 297.48348 148.98348000000016 14898.34800 2020-01-01 2020-01-02 2020-01-01 00:02:41 2020-01-02 03:31:02 2020-01-01 00:02:41.000 2020-01-02 03:31:02.000 161 99062 49611.5 4961150 161 99062 49611.5 4961150 -32408 32527 5047.02 504702 -128 123 -1.3 -130 +162 2 10152 99063 0.48648 297.48648 148.98648 14898.64864 0.48648 297.48648 148.98648 14898.64837 0.48648 297.48648 148.98647999999974 14898.64800 2020-01-01 2020-01-02 2020-01-01 00:02:42 2020-01-02 03:31:03 2020-01-01 00:02:42.000 2020-01-02 03:31:03.000 162 99063 49612.5 4961250 162 99063 49612.5 4961250 -32407 32528 5048.02 504802 -127 124 -0.3 -30 +163 2 10153 99064 0.48948 297.48948 148.98948 14898.94894 0.48948 297.4895 148.98948 14898.94895 0.48948 297.48948 148.98948000000013 14898.94800 2020-01-01 2020-01-02 2020-01-01 00:02:43 2020-01-02 03:31:04 2020-01-01 00:02:43.000 2020-01-02 03:31:04.000 163 99064 49613.5 4961350 163 99064 49613.5 4961350 -32406 32529 5049.02 504902 -126 125 0.7 70 +164 2 10154 99065 0.49249 297.49249 148.99249 14899.24924 0.49249 297.4925 148.99249 14899.24926 0.49249 297.49249 148.99249000000006 14899.24900 2020-01-01 2020-01-02 2020-01-01 00:02:44 2020-01-02 03:31:05 2020-01-01 00:02:44.000 2020-01-02 03:31:05.000 164 99065 49614.5 4961450 164 99065 49614.5 4961450 -32405 32530 5050.02 505002 -125 126 1.7 170 +165 2 10155 99066 0.49549 297.49549 148.99549 14899.54954 0.49549 297.49548 148.99549 14899.54957 0.49549 297.49549 148.99548999999988 14899.54900 2020-01-01 2020-01-02 2020-01-01 00:02:45 2020-01-02 03:31:06 2020-01-01 00:02:45.000 2020-01-02 03:31:06.000 165 99066 49615.5 4961550 165 99066 49615.5 4961550 -32404 32531 5051.02 505102 -124 127 2.7 270 +166 2 10156 99067 0.49849 297.49849 148.99849 14899.84984 0.49849 297.4985 148.9985 14899.85015 0.49849 297.49849 148.99848999999998 14899.84900 2020-01-01 2020-01-02 2020-01-01 00:02:46 2020-01-02 03:31:07 2020-01-01 00:02:46.000 2020-01-02 03:31:07.000 166 99067 49616.5 4961650 166 99067 49616.5 4961650 -32403 32532 5052.02 505202 -128 127 1.14 114 +167 2 10157 99068 0.5015 297.5015 149.0015 14900.15015 0.5015 297.5015 149.00149 14900.14984 0.50150 297.50150 149.00150000000016 14900.15000 2020-01-01 2020-01-02 2020-01-01 00:02:47 2020-01-02 03:31:08 2020-01-01 00:02:47.000 2020-01-02 03:31:08.000 167 99068 49617.5 4961750 167 99068 49617.5 4961750 -32402 32533 5053.02 505302 -128 123 -0.42 -42 +168 2 10158 99069 0.5045 297.5045 149.0045 14900.45045 0.5045 297.50452 149.0045 14900.45042 0.50450 297.50450 149.00449999999978 14900.45000 2020-01-01 2020-01-02 2020-01-01 00:02:48 2020-01-02 03:31:09 2020-01-01 00:02:48.000 2020-01-02 03:31:09.000 168 99069 49618.5 4961850 168 99069 49618.5 4961850 -32401 32534 5054.02 505402 -127 124 0.58 58 +169 2 10159 99070 0.5075 297.5075 149.0075 14900.75075 0.5075 297.5075 149.0075 14900.75073 0.50750 297.50750 149.00749999999985 14900.75000 2020-01-01 2020-01-02 2020-01-01 00:02:49 2020-01-02 03:31:10 2020-01-01 00:02:49.000 2020-01-02 03:31:10.000 169 99070 49619.5 4961950 169 99070 49619.5 4961950 -32400 32535 5055.02 505502 -126 125 1.58 158 17 2 10007 99917 0.05105 300.05105 150.05105 15155.15615 0.05105 300.05106 150.05105 15155.15638 0.05105 300.05105 150.05105 15155.15605 2020-01-01 2020-01-02 2020-01-01 00:00:17 2020-01-02 03:45:17 2020-01-01 00:00:17.000 2020-01-02 03:45:17.000 17 99917 49967 5046667 17 99917 49967 5046667 -32552 32383 4546.009900990099 459147 -128 127 -1.1584158415841583 -117 -170 2 10160 99071 0.51051 297.51051 149.01051 14901.05105 0.51051 297.5105 149.01051 14901.05104 0.51051 297.51051 149.01051 14901.05100 2020-01-01 2020-01-02 2020-01-01 00:02:50 2020-01-02 03:31:11 2020-01-01 00:02:50.000 2020-01-02 03:31:11.000 170 99071 49620.5 4962050 170 99071 49620.5 4962050 -32399 32536 5056.02 505602 -125 126 2.58 258 -171 2 10161 99072 0.51351 297.51351 149.01351 14901.35135 0.51351 297.51352 149.01351 14901.35162 0.51351 297.51351 149.01351 14901.35100 2020-01-01 2020-01-02 2020-01-01 00:02:51 2020-01-02 03:31:12 2020-01-01 00:02:51.000 2020-01-02 03:31:12.000 171 99072 49621.5 4962150 171 99072 49621.5 4962150 -32398 32537 5057.02 505702 -124 127 3.58 358 -172 2 10162 99073 0.51651 297.51651 149.01651 14901.65165 0.51651 297.5165 149.01651 14901.65131 0.51651 297.51651 149.01651 14901.65100 2020-01-01 2020-01-02 2020-01-01 00:02:52 2020-01-02 03:31:13 2020-01-01 00:02:52.000 2020-01-02 03:31:13.000 172 99073 49622.5 4962250 172 99073 49622.5 4962250 -32397 32538 5058.02 505802 -128 127 2.02 202 -173 2 10163 99074 0.51951 297.51951 149.01951 14901.95195 0.51951 297.51953 149.01951 14901.95189 0.51951 297.51951 149.01951 14901.95100 2020-01-01 2020-01-02 2020-01-01 00:02:53 2020-01-02 03:31:14 2020-01-01 00:02:53.000 2020-01-02 03:31:14.000 173 99074 49623.5 4962350 173 99074 49623.5 4962350 -32396 32539 5059.02 505902 -128 127 0.46 46 -174 2 10164 99075 0.52252 297.52252 149.02252 14902.25225 0.52252 297.52252 149.02252 14902.2522 0.52252 297.52252 149.02252 14902.25200 2020-01-01 2020-01-02 2020-01-01 00:02:54 2020-01-02 03:31:15 2020-01-01 00:02:54.000 2020-01-02 03:31:15.000 174 99075 49624.5 4962450 174 99075 49624.5 4962450 -32395 32540 5060.02 506002 -128 124 -1.1 -110 -175 2 10165 99076 0.52552 297.52552 149.02552 14902.55255 0.52552 297.5255 149.02552 14902.55251 0.52552 297.52552 149.02552 14902.55200 2020-01-01 2020-01-02 2020-01-01 00:02:55 2020-01-02 03:31:16 2020-01-01 00:02:55.000 2020-01-02 03:31:16.000 175 99076 49625.5 4962550 175 99076 49625.5 4962550 -32394 32541 5061.02 506102 -127 125 -0.1 -10 -176 2 10166 99077 0.52852 297.52852 149.02852 14902.85285 0.52852 297.52853 149.02853 14902.85312 0.52852 297.52852 149.02852 14902.85200 2020-01-01 2020-01-02 2020-01-01 00:02:56 2020-01-02 03:31:17 2020-01-01 00:02:56.000 2020-01-02 03:31:17.000 176 99077 49626.5 4962650 176 99077 49626.5 4962650 -32393 32542 5062.02 506202 -126 126 0.9 90 -177 2 10167 99078 0.53153 297.53153 149.03153 14903.15315 0.53153 297.53152 149.03152 14903.15278 0.53153 297.53153 149.03153 14903.15300 2020-01-01 2020-01-02 2020-01-01 00:02:57 2020-01-02 03:31:18 2020-01-01 00:02:57.000 2020-01-02 03:31:18.000 177 99078 49627.5 4962750 177 99078 49627.5 4962750 -32392 32543 5063.02 506302 -125 127 1.9 190 -178 2 10168 99079 0.53453 297.53453 149.03453 14903.45345 0.53453 297.53455 149.03453 14903.45352 0.53453 297.53453 149.03453 14903.45300 2020-01-01 2020-01-02 2020-01-01 00:02:58 2020-01-02 03:31:19 2020-01-01 00:02:58.000 2020-01-02 03:31:19.000 178 99079 49628.5 4962850 178 99079 49628.5 4962850 -32391 32544 5064.02 506402 -128 127 0.34 34 -179 2 10169 99080 0.53753 297.53753 149.03753 14903.75375 0.53753 297.53754 149.03753 14903.75366 0.53753 297.53753 149.03753 14903.75300 2020-01-01 2020-01-02 2020-01-01 00:02:59 2020-01-02 03:31:20 2020-01-01 00:02:59.000 2020-01-02 03:31:20.000 179 99080 49629.5 4962950 179 99080 49629.5 4962950 -32390 32545 5065.02 506502 -128 127 -1.22 -122 -18 2 10008 99918 0.05405 300.05405 150.05405 15155.45945 0.05405 300.05405 150.05404 15155.45903 0.05405 300.05405 150.05405 15155.45905 2020-01-01 2020-01-02 2020-01-01 00:00:18 2020-01-02 03:45:18 2020-01-01 00:00:18.000 2020-01-02 03:45:18.000 18 99918 49968 5046768 18 99918 49968 5046768 -32551 32384 4547.009900990099 459248 -128 124 -2.6930693069306932 -272 +170 2 10160 99071 0.51051 297.51051 149.01051 14901.05105 0.51051 297.5105 149.01051 14901.05104 0.51051 297.51051 149.01051000000004 14901.05100 2020-01-01 2020-01-02 2020-01-01 00:02:50 2020-01-02 03:31:11 2020-01-01 00:02:50.000 2020-01-02 03:31:11.000 170 99071 49620.5 4962050 170 99071 49620.5 4962050 -32399 32536 5056.02 505602 -125 126 2.58 258 +171 2 10161 99072 0.51351 297.51351 149.01351 14901.35135 0.51351 297.51352 149.01351 14901.35162 0.51351 297.51351 149.01351000000005 14901.35100 2020-01-01 2020-01-02 2020-01-01 00:02:51 2020-01-02 03:31:12 2020-01-01 00:02:51.000 2020-01-02 03:31:12.000 171 99072 49621.5 4962150 171 99072 49621.5 4962150 -32398 32537 5057.02 505702 -124 127 3.58 358 +172 2 10162 99073 0.51651 297.51651 149.01651 14901.65165 0.51651 297.5165 149.01651 14901.65131 0.51651 297.51651 149.01650999999998 14901.65100 2020-01-01 2020-01-02 2020-01-01 00:02:52 2020-01-02 03:31:13 2020-01-01 00:02:52.000 2020-01-02 03:31:13.000 172 99073 49622.5 4962250 172 99073 49622.5 4962250 -32397 32538 5058.02 505802 -128 127 2.02 202 +173 2 10163 99074 0.51951 297.51951 149.01951 14901.95195 0.51951 297.51953 149.01951 14901.95189 0.51951 297.51951 149.01951000000005 14901.95100 2020-01-01 2020-01-02 2020-01-01 00:02:53 2020-01-02 03:31:14 2020-01-01 00:02:53.000 2020-01-02 03:31:14.000 173 99074 49623.5 4962350 173 99074 49623.5 4962350 -32396 32539 5059.02 505902 -128 127 0.46 46 +174 2 10164 99075 0.52252 297.52252 149.02252 14902.25225 0.52252 297.52252 149.02252 14902.2522 0.52252 297.52252 149.02252000000024 14902.25200 2020-01-01 2020-01-02 2020-01-01 00:02:54 2020-01-02 03:31:15 2020-01-01 00:02:54.000 2020-01-02 03:31:15.000 174 99075 49624.5 4962450 174 99075 49624.5 4962450 -32395 32540 5060.02 506002 -128 124 -1.1 -110 +175 2 10165 99076 0.52552 297.52552 149.02552 14902.55255 0.52552 297.5255 149.02552 14902.55251 0.52552 297.52552 149.02551999999986 14902.55200 2020-01-01 2020-01-02 2020-01-01 00:02:55 2020-01-02 03:31:16 2020-01-01 00:02:55.000 2020-01-02 03:31:16.000 175 99076 49625.5 4962550 175 99076 49625.5 4962550 -32394 32541 5061.02 506102 -127 125 -0.1 -10 +176 2 10166 99077 0.52852 297.52852 149.02852 14902.85285 0.52852 297.52853 149.02853 14902.85312 0.52852 297.52852 149.0285199999999 14902.85200 2020-01-01 2020-01-02 2020-01-01 00:02:56 2020-01-02 03:31:17 2020-01-01 00:02:56.000 2020-01-02 03:31:17.000 176 99077 49626.5 4962650 176 99077 49626.5 4962650 -32393 32542 5062.02 506202 -126 126 0.9 90 +177 2 10167 99078 0.53153 297.53153 149.03153 14903.15315 0.53153 297.53152 149.03152 14903.15278 0.53153 297.53153 149.03153000000015 14903.15300 2020-01-01 2020-01-02 2020-01-01 00:02:57 2020-01-02 03:31:18 2020-01-01 00:02:57.000 2020-01-02 03:31:18.000 177 99078 49627.5 4962750 177 99078 49627.5 4962750 -32392 32543 5063.02 506302 -125 127 1.9 190 +178 2 10168 99079 0.53453 297.53453 149.03453 14903.45345 0.53453 297.53455 149.03453 14903.45352 0.53453 297.53453 149.03453000000016 14903.45300 2020-01-01 2020-01-02 2020-01-01 00:02:58 2020-01-02 03:31:19 2020-01-01 00:02:58.000 2020-01-02 03:31:19.000 178 99079 49628.5 4962850 178 99079 49628.5 4962850 -32391 32544 5064.02 506402 -128 127 0.34 34 +179 2 10169 99080 0.53753 297.53753 149.03753 14903.75375 0.53753 297.53754 149.03753 14903.75366 0.53753 297.53753 149.0375299999998 14903.75300 2020-01-01 2020-01-02 2020-01-01 00:02:59 2020-01-02 03:31:20 2020-01-01 00:02:59.000 2020-01-02 03:31:20.000 179 99080 49629.5 4962950 179 99080 49629.5 4962950 -32390 32545 5065.02 506502 -128 127 -1.22 -122 +18 2 10008 99918 0.05405 300.05405 150.05405 15155.45945 0.05405 300.05405 150.05404 15155.45903 0.05405 300.05405 150.05405000000007 15155.45905 2020-01-01 2020-01-02 2020-01-01 00:00:18 2020-01-02 03:45:18 2020-01-01 00:00:18.000 2020-01-02 03:45:18.000 18 99918 49968 5046768 18 99918 49968 5046768 -32551 32384 4547.009900990099 459248 -128 124 -2.6930693069306932 -272 180 2 10170 99081 0.54054 297.54054 149.04054 14904.05405 0.54054 297.54053 149.04053 14904.05398 0.54054 297.54054 149.04054 14904.05400 2020-01-01 2020-01-02 2020-01-01 00:03:00 2020-01-02 03:31:21 2020-01-01 00:03:00.000 2020-01-02 03:31:21.000 180 99081 49630.5 4963050 180 99081 49630.5 4963050 -32389 32546 5066.02 506602 -128 123 -2.78 -278 -181 2 10171 99082 0.54354 297.54354 149.04354 14904.35435 0.54354 297.54355 149.04354 14904.35459 0.54354 297.54354 149.04354 14904.35400 2020-01-01 2020-01-02 2020-01-01 00:03:01 2020-01-02 03:31:22 2020-01-01 00:03:01.000 2020-01-02 03:31:22.000 181 99082 49631.5 4963150 181 99082 49631.5 4963150 -32388 32547 5067.02 506702 -127 124 -1.78 -178 -182 2 10172 99083 0.54654 297.54654 149.04654 14904.65465 0.54654 297.54654 149.04654 14904.65425 0.54654 297.54654 149.04654 14904.65400 2020-01-01 2020-01-02 2020-01-01 00:03:02 2020-01-02 03:31:23 2020-01-01 00:03:02.000 2020-01-02 03:31:23.000 182 99083 49632.5 4963250 182 99083 49632.5 4963250 -32387 32548 5068.02 506802 -126 125 -0.78 -78 -183 2 10173 99084 0.54954 297.54954 149.04954 14904.95495 0.54954 297.54956 149.04954 14904.95498 0.54954 297.54954 149.04954 14904.95400 2020-01-01 2020-01-02 2020-01-01 00:03:03 2020-01-02 03:31:24 2020-01-01 00:03:03.000 2020-01-02 03:31:24.000 183 99084 49633.5 4963350 183 99084 49633.5 4963350 -32386 32549 5069.02 506902 -125 126 0.22 22 -184 2 10174 99085 0.55255 297.55255 149.05255 14905.25525 0.55255 297.55255 149.05255 14905.25514 0.55255 297.55255 149.05255 14905.25500 2020-01-01 2020-01-02 2020-01-01 00:03:04 2020-01-02 03:31:25 2020-01-01 00:03:04.000 2020-01-02 03:31:25.000 184 99085 49634.5 4963450 184 99085 49634.5 4963450 -32385 32550 5070.02 507002 -124 127 1.22 122 -185 2 10175 99086 0.55555 297.55555 149.05555 14905.55555 0.55555 297.55554 149.05555 14905.55549 0.55555 297.55555 149.05555 14905.55500 2020-01-01 2020-01-02 2020-01-01 00:03:05 2020-01-02 03:31:26 2020-01-01 00:03:05.000 2020-01-02 03:31:26.000 185 99086 49635.5 4963550 185 99086 49635.5 4963550 -32384 32551 5071.02 507102 -128 127 -0.34 -34 -186 2 10176 99087 0.55855 297.55855 149.05855 14905.85585 0.55855 297.55856 149.05856 14905.85607 0.55855 297.55855 149.05855 14905.85500 2020-01-01 2020-01-02 2020-01-01 00:03:06 2020-01-02 03:31:27 2020-01-01 00:03:06.000 2020-01-02 03:31:27.000 186 99087 49636.5 4963650 186 99087 49636.5 4963650 -32383 32552 5072.02 507202 -128 123 -1.9 -190 -187 2 10177 99088 0.56156 297.56156 149.06156 14906.15615 0.56156 297.56155 149.06155 14906.15572 0.56156 297.56156 149.06156 14906.15600 2020-01-01 2020-01-02 2020-01-01 00:03:07 2020-01-02 03:31:28 2020-01-01 00:03:07.000 2020-01-02 03:31:28.000 187 99088 49637.5 4963750 187 99088 49637.5 4963750 -32382 32553 5073.02 507302 -127 124 -0.9 -90 -188 2 10178 99089 0.56456 297.56456 149.06456 14906.45645 0.56456 297.56458 149.06456 14906.45645 0.56456 297.56456 149.06456 14906.45600 2020-01-01 2020-01-02 2020-01-01 00:03:08 2020-01-02 03:31:29 2020-01-01 00:03:08.000 2020-01-02 03:31:29.000 188 99089 49638.5 4963850 188 99089 49638.5 4963850 -32381 32554 5074.02 507402 -126 125 0.1 10 +181 2 10171 99082 0.54354 297.54354 149.04354 14904.35435 0.54354 297.54355 149.04354 14904.35459 0.54354 297.54354 149.04354000000006 14904.35400 2020-01-01 2020-01-02 2020-01-01 00:03:01 2020-01-02 03:31:22 2020-01-01 00:03:01.000 2020-01-02 03:31:22.000 181 99082 49631.5 4963150 181 99082 49631.5 4963150 -32388 32547 5067.02 506702 -127 124 -1.78 -178 +182 2 10172 99083 0.54654 297.54654 149.04654 14904.65465 0.54654 297.54654 149.04654 14904.65425 0.54654 297.54654 149.0465399999999 14904.65400 2020-01-01 2020-01-02 2020-01-01 00:03:02 2020-01-02 03:31:23 2020-01-01 00:03:02.000 2020-01-02 03:31:23.000 182 99083 49632.5 4963250 182 99083 49632.5 4963250 -32387 32548 5068.02 506802 -126 125 -0.78 -78 +183 2 10173 99084 0.54954 297.54954 149.04954 14904.95495 0.54954 297.54956 149.04954 14904.95498 0.54954 297.54954 149.04953999999998 14904.95400 2020-01-01 2020-01-02 2020-01-01 00:03:03 2020-01-02 03:31:24 2020-01-01 00:03:03.000 2020-01-02 03:31:24.000 183 99084 49633.5 4963350 183 99084 49633.5 4963350 -32386 32549 5069.02 506902 -125 126 0.22 22 +184 2 10174 99085 0.55255 297.55255 149.05255 14905.25525 0.55255 297.55255 149.05255 14905.25514 0.55255 297.55255 149.05255000000017 14905.25500 2020-01-01 2020-01-02 2020-01-01 00:03:04 2020-01-02 03:31:25 2020-01-01 00:03:04.000 2020-01-02 03:31:25.000 184 99085 49634.5 4963450 184 99085 49634.5 4963450 -32385 32550 5070.02 507002 -124 127 1.22 122 +185 2 10175 99086 0.55555 297.55555 149.05555 14905.55555 0.55555 297.55554 149.05555 14905.55549 0.55555 297.55555 149.05554999999978 14905.55500 2020-01-01 2020-01-02 2020-01-01 00:03:05 2020-01-02 03:31:26 2020-01-01 00:03:05.000 2020-01-02 03:31:26.000 185 99086 49635.5 4963550 185 99086 49635.5 4963550 -32384 32551 5071.02 507102 -128 127 -0.34 -34 +186 2 10176 99087 0.55855 297.55855 149.05855 14905.85585 0.55855 297.55856 149.05856 14905.85607 0.55855 297.55855 149.05854999999988 14905.85500 2020-01-01 2020-01-02 2020-01-01 00:03:06 2020-01-02 03:31:27 2020-01-01 00:03:06.000 2020-01-02 03:31:27.000 186 99087 49636.5 4963650 186 99087 49636.5 4963650 -32383 32552 5072.02 507202 -128 123 -1.9 -190 +187 2 10177 99088 0.56156 297.56156 149.06156 14906.15615 0.56156 297.56155 149.06155 14906.15572 0.56156 297.56156 149.06156000000007 14906.15600 2020-01-01 2020-01-02 2020-01-01 00:03:07 2020-01-02 03:31:28 2020-01-01 00:03:07.000 2020-01-02 03:31:28.000 187 99088 49637.5 4963750 187 99088 49637.5 4963750 -32382 32553 5073.02 507302 -127 124 -0.9 -90 +188 2 10178 99089 0.56456 297.56456 149.06456 14906.45645 0.56456 297.56458 149.06456 14906.45645 0.56456 297.56456 149.06456000000009 14906.45600 2020-01-01 2020-01-02 2020-01-01 00:03:08 2020-01-02 03:31:29 2020-01-01 00:03:08.000 2020-01-02 03:31:29.000 188 99089 49638.5 4963850 188 99089 49638.5 4963850 -32381 32554 5074.02 507402 -126 125 0.1 10 189 2 10179 99090 0.56756 297.56756 149.06756 14906.75675 0.56756 297.56757 149.06756 14906.75661 0.56756 297.56756 149.06756 14906.75600 2020-01-01 2020-01-02 2020-01-01 00:03:09 2020-01-02 03:31:30 2020-01-01 00:03:09.000 2020-01-02 03:31:30.000 189 99090 49639.5 4963950 189 99090 49639.5 4963950 -32380 32555 5075.02 507502 -125 126 1.1 110 19 2 10009 99919 0.05705 300.05705 150.05705 15155.76276 0.05705 300.05707 150.05705 15155.76279 0.05705 300.05705 150.05705 15155.76205 2020-01-01 2020-01-02 2020-01-01 00:00:19 2020-01-02 03:45:19 2020-01-01 00:00:19.000 2020-01-02 03:45:19.000 19 99919 49969 5046869 19 99919 49969 5046869 -32550 32385 4548.009900990099 459349 -127 125 -1.693069306930693 -171 -190 2 10180 99091 0.57057 297.57057 149.07057 14907.05705 0.57057 297.57056 149.07056 14907.05695 0.57057 297.57057 149.07057 14907.05700 2020-01-01 2020-01-02 2020-01-01 00:03:10 2020-01-02 03:31:31 2020-01-01 00:03:10.000 2020-01-02 03:31:31.000 190 99091 49640.5 4964050 190 99091 49640.5 4964050 -32379 32556 5076.02 507602 -124 127 2.1 210 +190 2 10180 99091 0.57057 297.57057 149.07057 14907.05705 0.57057 297.57056 149.07056 14907.05695 0.57057 297.57057 149.0705699999999 14907.05700 2020-01-01 2020-01-02 2020-01-01 00:03:10 2020-01-02 03:31:31 2020-01-01 00:03:10.000 2020-01-02 03:31:31.000 190 99091 49640.5 4964050 190 99091 49640.5 4964050 -32379 32556 5076.02 507602 -124 127 2.1 210 191 2 10181 99092 0.57357 297.57357 149.07357 14907.35735 0.57357 297.57358 149.07357 14907.35753 0.57357 297.57357 149.07357 14907.35700 2020-01-01 2020-01-02 2020-01-01 00:03:11 2020-01-02 03:31:32 2020-01-01 00:03:11.000 2020-01-02 03:31:32.000 191 99092 49641.5 4964150 191 99092 49641.5 4964150 -32378 32557 5077.02 507702 -128 127 0.54 54 -192 2 10182 99093 0.57657 297.57657 149.07657 14907.65765 0.57657 297.57657 149.07657 14907.65784 0.57657 297.57657 149.07657 14907.65700 2020-01-01 2020-01-02 2020-01-01 00:03:12 2020-01-02 03:31:33 2020-01-01 00:03:12.000 2020-01-02 03:31:33.000 192 99093 49642.5 4964250 192 99093 49642.5 4964250 -32377 32558 5078.02 507802 -128 123 -1.02 -102 -193 2 10183 99094 0.57957 297.57957 149.07957 14907.95795 0.57957 297.5796 149.07957 14907.95793 0.57957 297.57957 149.07957 14907.95700 2020-01-01 2020-01-02 2020-01-01 00:03:13 2020-01-02 03:31:34 2020-01-01 00:03:13.000 2020-01-02 03:31:34.000 193 99094 49643.5 4964350 193 99094 49643.5 4964350 -32376 32559 5079.02 507902 -127 124 -0.02 -2 -194 2 10184 99095 0.58258 297.58258 149.08258 14908.25825 0.58258 297.58258 149.08258 14908.25811 0.58258 297.58258 149.08258 14908.25800 2020-01-01 2020-01-02 2020-01-01 00:03:14 2020-01-02 03:31:35 2020-01-01 00:03:14.000 2020-01-02 03:31:35.000 194 99095 49644.5 4964450 194 99095 49644.5 4964450 -32375 32560 5080.02 508002 -126 125 0.98 98 -195 2 10185 99096 0.58558 297.58558 149.08558 14908.55855 0.58558 297.58557 149.08558 14908.55842 0.58558 297.58558 149.08558 14908.55800 2020-01-01 2020-01-02 2020-01-01 00:03:15 2020-01-02 03:31:36 2020-01-01 00:03:15.000 2020-01-02 03:31:36.000 195 99096 49645.5 4964550 195 99096 49645.5 4964550 -32374 32561 5081.02 508102 -125 126 1.98 198 -196 2 10186 99097 0.58858 297.58858 149.08858 14908.85885 0.58858 297.5886 149.08859 14908.859 0.58858 297.58858 149.08858 14908.85800 2020-01-01 2020-01-02 2020-01-01 00:03:16 2020-01-02 03:31:37 2020-01-01 00:03:16.000 2020-01-02 03:31:37.000 196 99097 49646.5 4964650 196 99097 49646.5 4964650 -32373 32562 5082.02 508202 -124 127 2.98 298 +192 2 10182 99093 0.57657 297.57657 149.07657 14907.65765 0.57657 297.57657 149.07657 14907.65784 0.57657 297.57657 149.07656999999992 14907.65700 2020-01-01 2020-01-02 2020-01-01 00:03:12 2020-01-02 03:31:33 2020-01-01 00:03:12.000 2020-01-02 03:31:33.000 192 99093 49642.5 4964250 192 99093 49642.5 4964250 -32377 32558 5078.02 507802 -128 123 -1.02 -102 +193 2 10183 99094 0.57957 297.57957 149.07957 14907.95795 0.57957 297.5796 149.07957 14907.95793 0.57957 297.57957 149.0795699999999 14907.95700 2020-01-01 2020-01-02 2020-01-01 00:03:13 2020-01-02 03:31:34 2020-01-01 00:03:13.000 2020-01-02 03:31:34.000 193 99094 49643.5 4964350 193 99094 49643.5 4964350 -32376 32559 5079.02 507902 -127 124 -0.02 -2 +194 2 10184 99095 0.58258 297.58258 149.08258 14908.25825 0.58258 297.58258 149.08258 14908.25811 0.58258 297.58258 149.08258000000015 14908.25800 2020-01-01 2020-01-02 2020-01-01 00:03:14 2020-01-02 03:31:35 2020-01-01 00:03:14.000 2020-01-02 03:31:35.000 194 99095 49644.5 4964450 194 99095 49644.5 4964450 -32375 32560 5080.02 508002 -126 125 0.98 98 +195 2 10185 99096 0.58558 297.58558 149.08558 14908.55855 0.58558 297.58557 149.08558 14908.55842 0.58558 297.58558 149.0855800000002 14908.55800 2020-01-01 2020-01-02 2020-01-01 00:03:15 2020-01-02 03:31:36 2020-01-01 00:03:15.000 2020-01-02 03:31:36.000 195 99096 49645.5 4964550 195 99096 49645.5 4964550 -32374 32561 5081.02 508102 -125 126 1.98 198 +196 2 10186 99097 0.58858 297.58858 149.08858 14908.85885 0.58858 297.5886 149.08859 14908.859 0.58858 297.58858 149.08857999999984 14908.85800 2020-01-01 2020-01-02 2020-01-01 00:03:16 2020-01-02 03:31:37 2020-01-01 00:03:16.000 2020-01-02 03:31:37.000 196 99097 49646.5 4964650 196 99097 49646.5 4964650 -32373 32562 5082.02 508202 -124 127 2.98 298 197 2 10187 99098 0.59159 297.59159 149.09159 14909.15915 0.59159 297.59158 149.09159 14909.15931 0.59159 297.59159 149.09159 14909.15900 2020-01-01 2020-01-02 2020-01-01 00:03:17 2020-01-02 03:31:38 2020-01-01 00:03:17.000 2020-01-02 03:31:38.000 197 99098 49647.5 4964750 197 99098 49647.5 4964750 -32372 32563 5083.02 508302 -128 127 1.42 142 -198 2 10188 99099 0.59459 297.59459 149.09459 14909.45945 0.59459 297.5946 149.09459 14909.4594 0.59459 297.59459 149.09459 14909.45900 2020-01-01 2020-01-02 2020-01-01 00:03:18 2020-01-02 03:31:39 2020-01-01 00:03:18.000 2020-01-02 03:31:39.000 198 99099 49648.5 4964850 198 99099 49648.5 4964850 -32371 32564 5084.02 508402 -128 127 -0.14 -14 -199 2 10189 99100 0.59759 297.59759 149.09759 14909.75975 0.59759 297.5976 149.09759 14909.75958 0.59759 297.59759 149.09759 14909.75900 2020-01-01 2020-01-02 2020-01-01 00:03:19 2020-01-02 03:31:40 2020-01-01 00:03:19.000 2020-01-02 03:31:40.000 199 99100 49649.5 4964950 199 99100 49649.5 4964950 -32370 32565 5085.02 508502 -128 124 -1.7 -170 -2 2 1001 9992 0.006 300.006 150.006 15150.6066 0.006 300.006 150.006 15150.6069 0.00600 300.00600 150.00600 15150.60600 2020-01-01 2020-01-02 2020-01-01 00:00:02 2020-01-02 03:45:02 2020-01-01 00:00:02.000 2020-01-02 03:45:02.000 2 99902 49952 5045152 2 99902 49952 5045152 -32567 32368 4531.009900990099 457632 -125 126 -0.9504950495049505 -96 -20 2 10010 99920 0.06006 300.06006 150.06006 15156.06606 0.06006 300.06006 150.06005 15156.06593 0.06006 300.06006 150.06006 15156.06606 2020-01-01 2020-01-02 2020-01-01 00:00:20 2020-01-02 03:45:20 2020-01-01 00:00:20.000 2020-01-02 03:45:20.000 20 99920 49970 5046970 20 99920 49970 5046970 -32549 32386 4549.009900990099 459450 -126 126 -0.693069306930693 -70 -200 2 10190 99101 0.6006 297.6006 149.1006 14910.06006 0.6006 297.6006 149.10059 14910.0599 0.60060 297.60060 149.10060 14910.06000 2020-01-01 2020-01-02 2020-01-01 00:03:20 2020-01-02 03:31:41 2020-01-01 00:03:20.000 2020-01-02 03:31:41.000 200 99101 49650.5 4965050 200 99101 49650.5 4965050 -32369 32566 5086.02 508602 -127 125 -0.7 -70 -201 2 10191 99102 0.6036 297.6036 149.1036 14910.36036 0.6036 297.6036 149.1036 14910.36063 0.60360 297.60360 149.10360 14910.36000 2020-01-01 2020-01-02 2020-01-01 00:03:21 2020-01-02 03:31:42 2020-01-01 00:03:21.000 2020-01-02 03:31:42.000 201 99102 49651.5 4965150 201 99102 49651.5 4965150 -32368 32567 5087.02 508702 -126 126 0.3 30 -202 2 10192 99103 0.6066 297.6066 149.1066 14910.66066 0.6066 297.6066 149.1066 14910.66078 0.60660 297.60660 149.10660 14910.66000 2020-01-01 2020-01-02 2020-01-01 00:03:22 2020-01-02 03:31:43 2020-01-01 00:03:22.000 2020-01-02 03:31:43.000 202 99103 49652.5 4965250 202 99103 49652.5 4965250 -32367 32568 5088.02 508802 -125 127 1.3 130 -203 2 10193 99104 0.6096 297.6096 149.1096 14910.96096 0.6096 297.60962 149.1096 14910.9609 0.60960 297.60960 149.10960 14910.96000 2020-01-01 2020-01-02 2020-01-01 00:03:23 2020-01-02 03:31:44 2020-01-01 00:03:23.000 2020-01-02 03:31:44.000 203 99104 49653.5 4965350 203 99104 49653.5 4965350 -32366 32569 5089.02 508902 -128 127 -0.26 -26 -204 2 10194 99105 0.61261 297.61261 149.11261 14911.26126 0.61261 297.6126 149.11261 14911.26105 0.61261 297.61261 149.11261 14911.26100 2020-01-01 2020-01-02 2020-01-01 00:03:24 2020-01-02 03:31:45 2020-01-01 00:03:24.000 2020-01-02 03:31:45.000 204 99105 49654.5 4965450 204 99105 49654.5 4965450 -32365 32570 5090.02 509002 -128 127 -1.82 -182 -205 2 10195 99106 0.61561 297.61561 149.11561 14911.56156 0.61561 297.6156 149.11561 14911.56137 0.61561 297.61561 149.11561 14911.56100 2020-01-01 2020-01-02 2020-01-01 00:03:25 2020-01-02 03:31:46 2020-01-01 00:03:25.000 2020-01-02 03:31:46.000 205 99106 49655.5 4965550 205 99106 49655.5 4965550 -32364 32571 5091.02 509102 -128 123 -3.38 -338 -206 2 10196 99107 0.61861 297.61861 149.11861 14911.86186 0.61861 297.61862 149.11862 14911.8621 0.61861 297.61861 149.11861 14911.86100 2020-01-01 2020-01-02 2020-01-01 00:03:26 2020-01-02 03:31:47 2020-01-01 00:03:26.000 2020-01-02 03:31:47.000 206 99107 49656.5 4965650 206 99107 49656.5 4965650 -32363 32572 5092.02 509202 -127 124 -2.38 -238 -207 2 10197 99108 0.62162 297.62162 149.12162 14912.16216 0.62162 297.6216 149.12162 14912.16225 0.62162 297.62162 149.12162 14912.16200 2020-01-01 2020-01-02 2020-01-01 00:03:27 2020-01-02 03:31:48 2020-01-01 00:03:27.000 2020-01-02 03:31:48.000 207 99108 49657.5 4965750 207 99108 49657.5 4965750 -32362 32573 5093.02 509302 -126 125 -1.38 -138 +198 2 10188 99099 0.59459 297.59459 149.09459 14909.45945 0.59459 297.5946 149.09459 14909.4594 0.59459 297.59459 149.09459000000007 14909.45900 2020-01-01 2020-01-02 2020-01-01 00:03:18 2020-01-02 03:31:39 2020-01-01 00:03:18.000 2020-01-02 03:31:39.000 198 99099 49648.5 4964850 198 99099 49648.5 4964850 -32371 32564 5084.02 508402 -128 127 -0.14 -14 +199 2 10189 99100 0.59759 297.59759 149.09759 14909.75975 0.59759 297.5976 149.09759 14909.75958 0.59759 297.59759 149.09758999999994 14909.75900 2020-01-01 2020-01-02 2020-01-01 00:03:19 2020-01-02 03:31:40 2020-01-01 00:03:19.000 2020-01-02 03:31:40.000 199 99100 49649.5 4964950 199 99100 49649.5 4964950 -32370 32565 5085.02 508502 -128 124 -1.7 -170 +2 2 1001 9992 0.006 300.006 150.006 15150.6066 0.006 300.006 150.006 15150.6069 0.00600 300.00600 150.00599999999991 15150.60600 2020-01-01 2020-01-02 2020-01-01 00:00:02 2020-01-02 03:45:02 2020-01-01 00:00:02.000 2020-01-02 03:45:02.000 2 99902 49952 5045152 2 99902 49952 5045152 -32567 32368 4531.009900990099 457632 -125 126 -0.9504950495049505 -96 +20 2 10010 99920 0.06006 300.06006 150.06006 15156.06606 0.06006 300.06006 150.06005 15156.06593 0.06006 300.06006 150.06005999999988 15156.06606 2020-01-01 2020-01-02 2020-01-01 00:00:20 2020-01-02 03:45:20 2020-01-01 00:00:20.000 2020-01-02 03:45:20.000 20 99920 49970 5046970 20 99920 49970 5046970 -32549 32386 4549.009900990099 459450 -126 126 -0.693069306930693 -70 +200 2 10190 99101 0.6006 297.6006 149.1006 14910.06006 0.6006 297.6006 149.10059 14910.0599 0.60060 297.60060 149.10059999999987 14910.06000 2020-01-01 2020-01-02 2020-01-01 00:03:20 2020-01-02 03:31:41 2020-01-01 00:03:20.000 2020-01-02 03:31:41.000 200 99101 49650.5 4965050 200 99101 49650.5 4965050 -32369 32566 5086.02 508602 -127 125 -0.7 -70 +201 2 10191 99102 0.6036 297.6036 149.1036 14910.36036 0.6036 297.6036 149.1036 14910.36063 0.60360 297.60360 149.10360000000017 14910.36000 2020-01-01 2020-01-02 2020-01-01 00:03:21 2020-01-02 03:31:42 2020-01-01 00:03:21.000 2020-01-02 03:31:42.000 201 99102 49651.5 4965150 201 99102 49651.5 4965150 -32368 32567 5087.02 508702 -126 126 0.3 30 +202 2 10192 99103 0.6066 297.6066 149.1066 14910.66066 0.6066 297.6066 149.1066 14910.66078 0.60660 297.60660 149.10659999999982 14910.66000 2020-01-01 2020-01-02 2020-01-01 00:03:22 2020-01-02 03:31:43 2020-01-01 00:03:22.000 2020-01-02 03:31:43.000 202 99103 49652.5 4965250 202 99103 49652.5 4965250 -32367 32568 5088.02 508802 -125 127 1.3 130 +203 2 10193 99104 0.6096 297.6096 149.1096 14910.96096 0.6096 297.60962 149.1096 14910.9609 0.60960 297.60960 149.10959999999983 14910.96000 2020-01-01 2020-01-02 2020-01-01 00:03:23 2020-01-02 03:31:44 2020-01-01 00:03:23.000 2020-01-02 03:31:44.000 203 99104 49653.5 4965350 203 99104 49653.5 4965350 -32366 32569 5089.02 508902 -128 127 -0.26 -26 +204 2 10194 99105 0.61261 297.61261 149.11261 14911.26126 0.61261 297.6126 149.11261 14911.26105 0.61261 297.61261 149.1126100000001 14911.26100 2020-01-01 2020-01-02 2020-01-01 00:03:24 2020-01-02 03:31:45 2020-01-01 00:03:24.000 2020-01-02 03:31:45.000 204 99105 49654.5 4965450 204 99105 49654.5 4965450 -32365 32570 5090.02 509002 -128 127 -1.82 -182 +205 2 10195 99106 0.61561 297.61561 149.11561 14911.56156 0.61561 297.6156 149.11561 14911.56137 0.61561 297.61561 149.11561000000012 14911.56100 2020-01-01 2020-01-02 2020-01-01 00:03:25 2020-01-02 03:31:46 2020-01-01 00:03:25.000 2020-01-02 03:31:46.000 205 99106 49655.5 4965550 205 99106 49655.5 4965550 -32364 32571 5091.02 509102 -128 123 -3.38 -338 +206 2 10196 99107 0.61861 297.61861 149.11861 14911.86186 0.61861 297.61862 149.11862 14911.8621 0.61861 297.61861 149.1186099999999 14911.86100 2020-01-01 2020-01-02 2020-01-01 00:03:26 2020-01-02 03:31:47 2020-01-01 00:03:26.000 2020-01-02 03:31:47.000 206 99107 49656.5 4965650 206 99107 49656.5 4965650 -32363 32572 5092.02 509202 -127 124 -2.38 -238 +207 2 10197 99108 0.62162 297.62162 149.12162 14912.16216 0.62162 297.6216 149.12162 14912.16225 0.62162 297.62162 149.12161999999992 14912.16200 2020-01-01 2020-01-02 2020-01-01 00:03:27 2020-01-02 03:31:48 2020-01-01 00:03:27.000 2020-01-02 03:31:48.000 207 99108 49657.5 4965750 207 99108 49657.5 4965750 -32362 32573 5093.02 509302 -126 125 -1.38 -138 208 2 10198 99109 0.62462 297.62462 149.12462 14912.46246 0.62462 297.62463 149.12462 14912.46237 0.62462 297.62462 149.12462 14912.46200 2020-01-01 2020-01-02 2020-01-01 00:03:28 2020-01-02 03:31:49 2020-01-01 00:03:28.000 2020-01-02 03:31:49.000 208 99109 49658.5 4965850 208 99109 49658.5 4965850 -32361 32574 5094.02 509402 -125 126 -0.38 -38 -209 2 10199 99110 0.62762 297.62762 149.12762 14912.76276 0.62762 297.62762 149.12762 14912.76253 0.62762 297.62762 149.12762 14912.76200 2020-01-01 2020-01-02 2020-01-01 00:03:29 2020-01-02 03:31:50 2020-01-01 00:03:29.000 2020-01-02 03:31:50.000 209 99110 49659.5 4965950 209 99110 49659.5 4965950 -32360 32575 5095.02 509502 -124 127 0.62 62 -21 2 10011 99921 0.06306 300.06306 150.06306 15156.36936 0.06306 300.06305 150.06306 15156.36927 0.06306 300.06306 150.06306 15156.36906 2020-01-01 2020-01-02 2020-01-01 00:00:21 2020-01-02 03:45:21 2020-01-01 00:00:21.000 2020-01-02 03:45:21.000 21 99921 49971 5047071 21 99921 49971 5047071 -32548 32387 4550.009900990099 459551 -125 127 0.3069306930693069 31 -210 2 10200 99111 0.63063 297.63063 149.13063 14913.06306 0.63063 297.63065 149.13063 14913.06326 0.63063 297.63063 149.13063 14913.06300 2020-01-01 2020-01-02 2020-01-01 00:03:30 2020-01-02 03:31:51 2020-01-01 00:03:30.000 2020-01-02 03:31:51.000 210 99111 49660.5 4966050 210 99111 49660.5 4966050 -32359 32576 5096.02 509602 -128 127 -0.94 -94 -211 2 10201 99112 0.63363 297.63363 149.13363 14913.36336 0.63363 297.63364 149.13363 14913.36357 0.63363 297.63363 149.13363 14913.36300 2020-01-01 2020-01-02 2020-01-01 00:03:31 2020-01-02 03:31:52 2020-01-01 00:03:31.000 2020-01-02 03:31:52.000 211 99112 49661.5 4966150 211 99112 49661.5 4966150 -32358 32577 5097.02 509702 -128 123 -2.5 -250 -212 2 10202 99113 0.63663 297.63663 149.13663 14913.66366 0.63663 297.63663 149.13663 14913.66372 0.63663 297.63663 149.13663 14913.66300 2020-01-01 2020-01-02 2020-01-01 00:03:32 2020-01-02 03:31:53 2020-01-01 00:03:32.000 2020-01-02 03:31:53.000 212 99113 49662.5 4966250 212 99113 49662.5 4966250 -32357 32578 5098.02 509802 -127 124 -1.5 -150 -213 2 10203 99114 0.63963 297.63963 149.13963 14913.96396 0.63963 297.63965 149.13963 14913.96384 0.63963 297.63963 149.13963 14913.96300 2020-01-01 2020-01-02 2020-01-01 00:03:33 2020-01-02 03:31:54 2020-01-01 00:03:33.000 2020-01-02 03:31:54.000 213 99114 49663.5 4966350 213 99114 49663.5 4966350 -32356 32579 5099.02 509902 -126 125 -0.5 -50 +209 2 10199 99110 0.62762 297.62762 149.12762 14912.76276 0.62762 297.62762 149.12762 14912.76253 0.62762 297.62762 149.12761999999992 14912.76200 2020-01-01 2020-01-02 2020-01-01 00:03:29 2020-01-02 03:31:50 2020-01-01 00:03:29.000 2020-01-02 03:31:50.000 209 99110 49659.5 4965950 209 99110 49659.5 4965950 -32360 32575 5095.02 509502 -124 127 0.62 62 +21 2 10011 99921 0.06306 300.06306 150.06306 15156.36936 0.06306 300.06305 150.06306 15156.36927 0.06306 300.06306 150.0630600000002 15156.36906 2020-01-01 2020-01-02 2020-01-01 00:00:21 2020-01-02 03:45:21 2020-01-01 00:00:21.000 2020-01-02 03:45:21.000 21 99921 49971 5047071 21 99921 49971 5047071 -32548 32387 4550.009900990099 459551 -125 127 0.3069306930693069 31 +210 2 10200 99111 0.63063 297.63063 149.13063 14913.06306 0.63063 297.63065 149.13063 14913.06326 0.63063 297.63063 149.13062999999983 14913.06300 2020-01-01 2020-01-02 2020-01-01 00:03:30 2020-01-02 03:31:51 2020-01-01 00:03:30.000 2020-01-02 03:31:51.000 210 99111 49660.5 4966050 210 99111 49660.5 4966050 -32359 32576 5096.02 509602 -128 127 -0.94 -94 +211 2 10201 99112 0.63363 297.63363 149.13363 14913.36336 0.63363 297.63364 149.13363 14913.36357 0.63363 297.63363 149.13363000000012 14913.36300 2020-01-01 2020-01-02 2020-01-01 00:03:31 2020-01-02 03:31:52 2020-01-01 00:03:31.000 2020-01-02 03:31:52.000 211 99112 49661.5 4966150 211 99112 49661.5 4966150 -32358 32577 5097.02 509702 -128 123 -2.5 -250 +212 2 10202 99113 0.63663 297.63663 149.13663 14913.66366 0.63663 297.63663 149.13663 14913.66372 0.63663 297.63663 149.1366300000002 14913.66300 2020-01-01 2020-01-02 2020-01-01 00:03:32 2020-01-02 03:31:53 2020-01-01 00:03:32.000 2020-01-02 03:31:53.000 212 99113 49662.5 4966250 212 99113 49662.5 4966250 -32357 32578 5098.02 509802 -127 124 -1.5 -150 +213 2 10203 99114 0.63963 297.63963 149.13963 14913.96396 0.63963 297.63965 149.13963 14913.96384 0.63963 297.63963 149.13962999999984 14913.96300 2020-01-01 2020-01-02 2020-01-01 00:03:33 2020-01-02 03:31:54 2020-01-01 00:03:33.000 2020-01-02 03:31:54.000 213 99114 49663.5 4966350 213 99114 49663.5 4966350 -32356 32579 5099.02 509902 -126 125 -0.5 -50 214 2 10204 99115 0.64264 297.64264 149.14264 14914.26426 0.64264 297.64264 149.14263 14914.26399 0.64264 297.64264 149.14264 14914.26400 2020-01-01 2020-01-02 2020-01-01 00:03:34 2020-01-02 03:31:55 2020-01-01 00:03:34.000 2020-01-02 03:31:55.000 214 99115 49664.5 4966450 214 99115 49664.5 4966450 -32355 32580 5100.02 510002 -125 126 0.5 50 -215 2 10205 99116 0.64564 297.64564 149.14564 14914.56456 0.64564 297.64566 149.14564 14914.56473 0.64564 297.64564 149.14564 14914.56400 2020-01-01 2020-01-02 2020-01-01 00:03:35 2020-01-02 03:31:56 2020-01-01 00:03:35.000 2020-01-02 03:31:56.000 215 99116 49665.5 4966550 215 99116 49665.5 4966550 -32354 32581 5101.02 510102 -124 127 1.5 150 -216 2 10206 99117 0.64864 297.64864 149.14864 14914.86486 0.64864 297.64865 149.14865 14914.86504 0.64864 297.64864 149.14864 14914.86400 2020-01-01 2020-01-02 2020-01-01 00:03:36 2020-01-02 03:31:57 2020-01-01 00:03:36.000 2020-01-02 03:31:57.000 216 99117 49666.5 4966650 216 99117 49666.5 4966650 -32353 32582 5102.02 510202 -128 127 -0.06 -6 -217 2 10207 99118 0.65165 297.65165 149.15165 14915.16516 0.65165 297.65164 149.15165 14915.16523 0.65165 297.65165 149.15165 14915.16500 2020-01-01 2020-01-02 2020-01-01 00:03:37 2020-01-02 03:31:58 2020-01-01 00:03:37.000 2020-01-02 03:31:58.000 217 99118 49667.5 4966750 217 99118 49667.5 4966750 -32352 32583 5103.02 510302 -128 123 -1.62 -162 -218 2 10208 99119 0.65465 297.65465 149.15465 14915.46546 0.65465 297.65466 149.15465 14915.46531 0.65465 297.65465 149.15465 14915.46500 2020-01-01 2020-01-02 2020-01-01 00:03:38 2020-01-02 03:31:59 2020-01-01 00:03:38.000 2020-01-02 03:31:59.000 218 99119 49668.5 4966850 218 99119 49668.5 4966850 -32351 32584 5104.02 510402 -127 124 -0.62 -62 -219 2 10209 99120 0.65765 297.65765 149.15765 14915.76576 0.65765 297.65765 149.15765 14915.76562 0.65765 297.65765 149.15765 14915.76500 2020-01-01 2020-01-02 2020-01-01 00:03:39 2020-01-02 03:32:00 2020-01-01 00:03:39.000 2020-01-02 03:32:00.000 219 99120 49669.5 4966950 219 99120 49669.5 4966950 -32350 32585 5105.02 510502 -126 125 0.38 38 -22 2 10012 99922 0.06606 300.06606 150.06606 15156.67267 0.06606 300.06607 150.06606 15156.67287 0.06606 300.06606 150.06606 15156.67206 2020-01-01 2020-01-02 2020-01-01 00:00:22 2020-01-02 03:45:22 2020-01-01 00:00:22.000 2020-01-02 03:45:22.000 22 99922 49972 5047172 22 99922 49972 5047172 -32547 32388 4551.009900990099 459652 -128 127 -1.2277227722772277 -124 -220 2 10210 99121 0.66066 297.66066 149.16066 14916.06606 0.66066 297.66068 149.16066 14916.06619 0.66066 297.66066 149.16066 14916.06600 2020-01-01 2020-01-02 2020-01-01 00:03:40 2020-01-02 03:32:01 2020-01-01 00:03:40.000 2020-01-02 03:32:01.000 220 99121 49670.5 4967050 220 99121 49670.5 4967050 -32349 32586 5106.02 510602 -125 126 1.38 138 -221 2 10211 99122 0.66366 297.66366 149.16366 14916.36636 0.66366 297.66367 149.16366 14916.36651 0.66366 297.66366 149.16366 14916.36600 2020-01-01 2020-01-02 2020-01-01 00:03:41 2020-01-02 03:32:02 2020-01-01 00:03:41.000 2020-01-02 03:32:02.000 221 99122 49671.5 4967150 221 99122 49671.5 4967150 -32348 32587 5107.02 510702 -124 127 2.38 238 -222 2 10212 99123 0.66666 297.66666 149.16666 14916.66666 0.66666 297.66666 149.16666 14916.6667 0.66666 297.66666 149.16666 14916.66600 2020-01-01 2020-01-02 2020-01-01 00:03:42 2020-01-02 03:32:03 2020-01-01 00:03:42.000 2020-01-02 03:32:03.000 222 99123 49672.5 4967250 222 99123 49672.5 4967250 -32347 32588 5108.02 510802 -128 127 0.82 82 -223 2 10213 99124 0.66966 297.66966 149.16966 14916.96696 0.66966 297.66968 149.16966 14916.96678 0.66966 297.66966 149.16966 14916.96600 2020-01-01 2020-01-02 2020-01-01 00:03:43 2020-01-02 03:32:04 2020-01-01 00:03:43.000 2020-01-02 03:32:04.000 223 99124 49673.5 4967350 223 99124 49673.5 4967350 -32346 32589 5109.02 510902 -128 127 -0.74 -74 -224 2 10214 99125 0.67267 297.67267 149.17267 14917.26726 0.67267 297.67267 149.17267 14917.26709 0.67267 297.67267 149.17267 14917.26700 2020-01-01 2020-01-02 2020-01-01 00:03:44 2020-01-02 03:32:05 2020-01-01 00:03:44.000 2020-01-02 03:32:05.000 224 99125 49674.5 4967450 224 99125 49674.5 4967450 -32345 32590 5110.02 511002 -128 124 -2.3 -230 -225 2 10215 99126 0.67567 297.67567 149.17567 14917.56756 0.67567 297.6757 149.17567 14917.56767 0.67567 297.67567 149.17567 14917.56700 2020-01-01 2020-01-02 2020-01-01 00:03:45 2020-01-02 03:32:06 2020-01-01 00:03:45.000 2020-01-02 03:32:06.000 225 99126 49675.5 4967550 225 99126 49675.5 4967550 -32344 32591 5111.02 511102 -127 125 -1.3 -130 -226 2 10216 99127 0.67867 297.67867 149.17867 14917.86786 0.67867 297.67868 149.17868 14917.86802 0.67867 297.67867 149.17867 14917.86700 2020-01-01 2020-01-02 2020-01-01 00:03:46 2020-01-02 03:32:07 2020-01-01 00:03:46.000 2020-01-02 03:32:07.000 226 99127 49676.5 4967650 226 99127 49676.5 4967650 -32343 32592 5112.02 511202 -126 126 -0.3 -30 -227 2 10217 99128 0.68168 297.68168 149.18168 14918.16816 0.68168 297.68167 149.18168 14918.16817 0.68168 297.68168 149.18168 14918.16800 2020-01-01 2020-01-02 2020-01-01 00:03:47 2020-01-02 03:32:08 2020-01-01 00:03:47.000 2020-01-02 03:32:08.000 227 99128 49677.5 4967750 227 99128 49677.5 4967750 -32342 32593 5113.02 511302 -125 127 0.7 70 -228 2 10218 99129 0.68468 297.68468 149.18468 14918.46846 0.68468 297.6847 149.18468 14918.46825 0.68468 297.68468 149.18468 14918.46800 2020-01-01 2020-01-02 2020-01-01 00:03:48 2020-01-02 03:32:09 2020-01-01 00:03:48.000 2020-01-02 03:32:09.000 228 99129 49678.5 4967850 228 99129 49678.5 4967850 -32341 32594 5114.02 511402 -128 127 -0.86 -86 -229 2 10219 99130 0.68768 297.68768 149.18768 14918.76876 0.68768 297.68768 149.18768 14918.76855 0.68768 297.68768 149.18768 14918.76800 2020-01-01 2020-01-02 2020-01-01 00:03:49 2020-01-02 03:32:10 2020-01-01 00:03:49.000 2020-01-02 03:32:10.000 229 99130 49679.5 4967950 229 99130 49679.5 4967950 -32340 32595 5115.02 511502 -128 127 -2.42 -242 -23 2 10013 99923 0.06906 300.06906 150.06906 15156.97597 0.06906 300.06906 150.06907 15156.97617 0.06906 300.06906 150.06906 15156.97506 2020-01-01 2020-01-02 2020-01-01 00:00:23 2020-01-02 03:45:23 2020-01-01 00:00:23.000 2020-01-02 03:45:23.000 23 99923 49973 5047273 23 99923 49973 5047273 -32546 32389 4552.009900990099 459753 -128 127 -2.762376237623762 -279 -230 2 10220 99131 0.69069 297.69069 149.19069 14919.06906 0.69069 297.6907 149.19069 14919.06914 0.69069 297.69069 149.19069 14919.06900 2020-01-01 2020-01-02 2020-01-01 00:03:50 2020-01-02 03:32:11 2020-01-01 00:03:50.000 2020-01-02 03:32:11.000 230 99131 49680.5 4968050 230 99131 49680.5 4968050 -32339 32596 5116.02 511602 -128 123 -3.98 -398 -231 2 10221 99132 0.69369 297.69369 149.19369 14919.36936 0.69369 297.6937 149.19369 14919.36949 0.69369 297.69369 149.19369 14919.36900 2020-01-01 2020-01-02 2020-01-01 00:03:51 2020-01-02 03:32:12 2020-01-01 00:03:51.000 2020-01-02 03:32:12.000 231 99132 49681.5 4968150 231 99132 49681.5 4968150 -32338 32597 5117.02 511702 -127 124 -2.98 -298 -232 2 10222 99133 0.69669 297.69669 149.19669 14919.66966 0.69669 297.6967 149.19669 14919.66964 0.69669 297.69669 149.19669 14919.66900 2020-01-01 2020-01-02 2020-01-01 00:03:52 2020-01-02 03:32:13 2020-01-01 00:03:52.000 2020-01-02 03:32:13.000 232 99133 49682.5 4968250 232 99133 49682.5 4968250 -32337 32598 5118.02 511802 -126 125 -1.98 -198 -233 2 10223 99134 0.69969 297.69969 149.19969 14919.96996 0.69969 297.6997 149.1997 14919.97037 0.69969 297.69969 149.19969 14919.96900 2020-01-01 2020-01-02 2020-01-01 00:03:53 2020-01-02 03:32:14 2020-01-01 00:03:53.000 2020-01-02 03:32:14.000 233 99134 49683.5 4968350 233 99134 49683.5 4968350 -32336 32599 5119.02 511902 -125 126 -0.98 -98 -234 2 10224 99135 0.7027 297.7027 149.2027 14920.27027 0.7027 297.7027 149.2027 14920.27003 0.70270 297.70270 149.20270 14920.27000 2020-01-01 2020-01-02 2020-01-01 00:03:54 2020-01-02 03:32:15 2020-01-01 00:03:54.000 2020-01-02 03:32:15.000 234 99135 49684.5 4968450 234 99135 49684.5 4968450 -32335 32600 5120.02 512002 -124 127 0.02 2 -235 2 10225 99136 0.7057 297.7057 149.2057 14920.57057 0.7057 297.70572 149.2057 14920.57065 0.70570 297.70570 149.20570 14920.57000 2020-01-01 2020-01-02 2020-01-01 00:03:55 2020-01-02 03:32:16 2020-01-01 00:03:55.000 2020-01-02 03:32:16.000 235 99136 49685.5 4968550 235 99136 49685.5 4968550 -32334 32601 5121.02 512102 -128 127 -1.54 -154 -236 2 10226 99137 0.7087 297.7087 149.2087 14920.87087 0.7087 297.7087 149.2087 14920.87095 0.70870 297.70870 149.20870 14920.87000 2020-01-01 2020-01-02 2020-01-01 00:03:56 2020-01-02 03:32:17 2020-01-01 00:03:56.000 2020-01-02 03:32:17.000 236 99137 49686.5 4968650 236 99137 49686.5 4968650 -32333 32602 5122.02 512202 -128 123 -3.1 -310 -237 2 10227 99138 0.71171 297.71171 149.21171 14921.17117 0.71171 297.7117 149.21171 14921.17111 0.71171 297.71171 149.21171 14921.17100 2020-01-01 2020-01-02 2020-01-01 00:03:57 2020-01-02 03:32:18 2020-01-01 00:03:57.000 2020-01-02 03:32:18.000 237 99138 49687.5 4968750 237 99138 49687.5 4968750 -32332 32603 5123.02 512302 -127 124 -2.1 -210 -238 2 10228 99139 0.71471 297.71471 149.21471 14921.47147 0.71471 297.71472 149.21471 14921.47184 0.71471 297.71471 149.21471 14921.47100 2020-01-01 2020-01-02 2020-01-01 00:03:58 2020-01-02 03:32:19 2020-01-01 00:03:58.000 2020-01-02 03:32:19.000 238 99139 49688.5 4968850 238 99139 49688.5 4968850 -32331 32604 5124.02 512402 -126 125 -1.1 -110 -239 2 10229 99140 0.71771 297.71771 149.21771 14921.77177 0.71771 297.7177 149.21771 14921.7715 0.71771 297.71771 149.21771 14921.77100 2020-01-01 2020-01-02 2020-01-01 00:03:59 2020-01-02 03:32:20 2020-01-01 00:03:59.000 2020-01-02 03:32:20.000 239 99140 49689.5 4968950 239 99140 49689.5 4968950 -32330 32605 5125.02 512502 -125 126 -0.1 -10 -24 2 10014 99924 0.07207 300.07207 150.07207 15157.27927 0.07207 300.07208 150.07207 15157.27928 0.07207 300.07207 150.07207 15157.27907 2020-01-01 2020-01-02 2020-01-01 00:00:24 2020-01-02 03:45:24 2020-01-01 00:00:24.000 2020-01-02 03:45:24.000 24 99924 49974 5047374 24 99924 49974 5047374 -32545 32390 4553.009900990099 459854 -128 123 -4.297029702970297 -434 -240 2 10230 99141 0.72072 297.72072 149.22072 14922.07207 0.72072 297.72073 149.22072 14922.07211 0.72072 297.72072 149.22072 14922.07200 2020-01-01 2020-01-02 2020-01-01 00:04:00 2020-01-02 03:32:21 2020-01-01 00:04:00.000 2020-01-02 03:32:21.000 240 99141 49690.5 4969050 240 99141 49690.5 4969050 -32329 32606 5126.02 512602 -124 127 0.9 90 +215 2 10205 99116 0.64564 297.64564 149.14564 14914.56456 0.64564 297.64566 149.14564 14914.56473 0.64564 297.64564 149.1456400000001 14914.56400 2020-01-01 2020-01-02 2020-01-01 00:03:35 2020-01-02 03:31:56 2020-01-01 00:03:35.000 2020-01-02 03:31:56.000 215 99116 49665.5 4966550 215 99116 49665.5 4966550 -32354 32581 5101.02 510102 -124 127 1.5 150 +216 2 10206 99117 0.64864 297.64864 149.14864 14914.86486 0.64864 297.64865 149.14865 14914.86504 0.64864 297.64864 149.14863999999994 14914.86400 2020-01-01 2020-01-02 2020-01-01 00:03:36 2020-01-02 03:31:57 2020-01-01 00:03:36.000 2020-01-02 03:31:57.000 216 99117 49666.5 4966650 216 99117 49666.5 4966650 -32353 32582 5102.02 510202 -128 127 -0.06 -6 +217 2 10207 99118 0.65165 297.65165 149.15165 14915.16516 0.65165 297.65164 149.15165 14915.16523 0.65165 297.65165 149.15164999999988 14915.16500 2020-01-01 2020-01-02 2020-01-01 00:03:37 2020-01-02 03:31:58 2020-01-01 00:03:37.000 2020-01-02 03:31:58.000 217 99118 49667.5 4966750 217 99118 49667.5 4966750 -32352 32583 5103.02 510302 -128 123 -1.62 -162 +218 2 10208 99119 0.65465 297.65465 149.15465 14915.46546 0.65465 297.65466 149.15465 14915.46531 0.65465 297.65465 149.1546500000002 14915.46500 2020-01-01 2020-01-02 2020-01-01 00:03:38 2020-01-02 03:31:59 2020-01-01 00:03:38.000 2020-01-02 03:31:59.000 218 99119 49668.5 4966850 218 99119 49668.5 4966850 -32351 32584 5104.02 510402 -127 124 -0.62 -62 +219 2 10209 99120 0.65765 297.65765 149.15765 14915.76576 0.65765 297.65765 149.15765 14915.76562 0.65765 297.65765 149.15764999999985 14915.76500 2020-01-01 2020-01-02 2020-01-01 00:03:39 2020-01-02 03:32:00 2020-01-01 00:03:39.000 2020-01-02 03:32:00.000 219 99120 49669.5 4966950 219 99120 49669.5 4966950 -32350 32585 5105.02 510502 -126 125 0.38 38 +22 2 10012 99922 0.06606 300.06606 150.06606 15156.67267 0.06606 300.06607 150.06606 15156.67287 0.06606 300.06606 150.0660599999999 15156.67206 2020-01-01 2020-01-02 2020-01-01 00:00:22 2020-01-02 03:45:22 2020-01-01 00:00:22.000 2020-01-02 03:45:22.000 22 99922 49972 5047172 22 99922 49972 5047172 -32547 32388 4551.009900990099 459652 -128 127 -1.2277227722772277 -124 +220 2 10210 99121 0.66066 297.66066 149.16066 14916.06606 0.66066 297.66068 149.16066 14916.06619 0.66066 297.66066 149.16065999999975 14916.06600 2020-01-01 2020-01-02 2020-01-01 00:03:40 2020-01-02 03:32:01 2020-01-01 00:03:40.000 2020-01-02 03:32:01.000 220 99121 49670.5 4967050 220 99121 49670.5 4967050 -32349 32586 5106.02 510602 -125 126 1.38 138 +221 2 10211 99122 0.66366 297.66366 149.16366 14916.36636 0.66366 297.66367 149.16366 14916.36651 0.66366 297.66366 149.1636600000001 14916.36600 2020-01-01 2020-01-02 2020-01-01 00:03:41 2020-01-02 03:32:02 2020-01-01 00:03:41.000 2020-01-02 03:32:02.000 221 99122 49671.5 4967150 221 99122 49671.5 4967150 -32348 32587 5107.02 510702 -124 127 2.38 238 +222 2 10212 99123 0.66666 297.66666 149.16666 14916.66666 0.66666 297.66666 149.16666 14916.6667 0.66666 297.66666 149.1666600000001 14916.66600 2020-01-01 2020-01-02 2020-01-01 00:03:42 2020-01-02 03:32:03 2020-01-01 00:03:42.000 2020-01-02 03:32:03.000 222 99123 49672.5 4967250 222 99123 49672.5 4967250 -32347 32588 5108.02 510802 -128 127 0.82 82 +223 2 10213 99124 0.66966 297.66966 149.16966 14916.96696 0.66966 297.66968 149.16966 14916.96678 0.66966 297.66966 149.16965999999974 14916.96600 2020-01-01 2020-01-02 2020-01-01 00:03:43 2020-01-02 03:32:04 2020-01-01 00:03:43.000 2020-01-02 03:32:04.000 223 99124 49673.5 4967350 223 99124 49673.5 4967350 -32346 32589 5109.02 510902 -128 127 -0.74 -74 +224 2 10214 99125 0.67267 297.67267 149.17267 14917.26726 0.67267 297.67267 149.17267 14917.26709 0.67267 297.67267 149.17266999999995 14917.26700 2020-01-01 2020-01-02 2020-01-01 00:03:44 2020-01-02 03:32:05 2020-01-01 00:03:44.000 2020-01-02 03:32:05.000 224 99125 49674.5 4967450 224 99125 49674.5 4967450 -32345 32590 5110.02 511002 -128 124 -2.3 -230 +225 2 10215 99126 0.67567 297.67567 149.17567 14917.56756 0.67567 297.6757 149.17567 14917.56767 0.67567 297.67567 149.17567000000003 14917.56700 2020-01-01 2020-01-02 2020-01-01 00:03:45 2020-01-02 03:32:06 2020-01-01 00:03:45.000 2020-01-02 03:32:06.000 225 99126 49675.5 4967550 225 99126 49675.5 4967550 -32344 32591 5111.02 511102 -127 125 -1.3 -130 +226 2 10216 99127 0.67867 297.67867 149.17867 14917.86786 0.67867 297.67868 149.17868 14917.86802 0.67867 297.67867 149.17866999999995 14917.86700 2020-01-01 2020-01-02 2020-01-01 00:03:46 2020-01-02 03:32:07 2020-01-01 00:03:46.000 2020-01-02 03:32:07.000 226 99127 49676.5 4967650 226 99127 49676.5 4967650 -32343 32592 5112.02 511202 -126 126 -0.3 -30 +227 2 10217 99128 0.68168 297.68168 149.18168 14918.16816 0.68168 297.68167 149.18168 14918.16817 0.68168 297.68168 149.18167999999986 14918.16800 2020-01-01 2020-01-02 2020-01-01 00:03:47 2020-01-02 03:32:08 2020-01-01 00:03:47.000 2020-01-02 03:32:08.000 227 99128 49677.5 4967750 227 99128 49677.5 4967750 -32342 32593 5113.02 511302 -125 127 0.7 70 +228 2 10218 99129 0.68468 297.68468 149.18468 14918.46846 0.68468 297.6847 149.18468 14918.46825 0.68468 297.68468 149.18468000000013 14918.46800 2020-01-01 2020-01-02 2020-01-01 00:03:48 2020-01-02 03:32:09 2020-01-01 00:03:48.000 2020-01-02 03:32:09.000 228 99129 49678.5 4967850 228 99129 49678.5 4967850 -32341 32594 5114.02 511402 -128 127 -0.86 -86 +229 2 10219 99130 0.68768 297.68768 149.18768 14918.76876 0.68768 297.68768 149.18768 14918.76855 0.68768 297.68768 149.18767999999983 14918.76800 2020-01-01 2020-01-02 2020-01-01 00:03:49 2020-01-02 03:32:10 2020-01-01 00:03:49.000 2020-01-02 03:32:10.000 229 99130 49679.5 4967950 229 99130 49679.5 4967950 -32340 32595 5115.02 511502 -128 127 -2.42 -242 +23 2 10013 99923 0.06906 300.06906 150.06906 15156.97597 0.06906 300.06906 150.06907 15156.97617 0.06906 300.06906 150.06905999999987 15156.97506 2020-01-01 2020-01-02 2020-01-01 00:00:23 2020-01-02 03:45:23 2020-01-01 00:00:23.000 2020-01-02 03:45:23.000 23 99923 49973 5047273 23 99923 49973 5047273 -32546 32389 4552.009900990099 459753 -128 127 -2.762376237623762 -279 +230 2 10220 99131 0.69069 297.69069 149.19069 14919.06906 0.69069 297.6907 149.19069 14919.06914 0.69069 297.69069 149.19068999999996 14919.06900 2020-01-01 2020-01-02 2020-01-01 00:03:50 2020-01-02 03:32:11 2020-01-01 00:03:50.000 2020-01-02 03:32:11.000 230 99131 49680.5 4968050 230 99131 49680.5 4968050 -32339 32596 5116.02 511602 -128 123 -3.98 -398 +231 2 10221 99132 0.69369 297.69369 149.19369 14919.36936 0.69369 297.6937 149.19369 14919.36949 0.69369 297.69369 149.19369000000003 14919.36900 2020-01-01 2020-01-02 2020-01-01 00:03:51 2020-01-02 03:32:12 2020-01-01 00:03:51.000 2020-01-02 03:32:12.000 231 99132 49681.5 4968150 231 99132 49681.5 4968150 -32338 32597 5117.02 511702 -127 124 -2.98 -298 +232 2 10222 99133 0.69669 297.69669 149.19669 14919.66966 0.69669 297.6967 149.19669 14919.66964 0.69669 297.69669 149.1966900000001 14919.66900 2020-01-01 2020-01-02 2020-01-01 00:03:52 2020-01-02 03:32:13 2020-01-01 00:03:52.000 2020-01-02 03:32:13.000 232 99133 49682.5 4968250 232 99133 49682.5 4968250 -32337 32598 5118.02 511802 -126 125 -1.98 -198 +233 2 10223 99134 0.69969 297.69969 149.19969 14919.96996 0.69969 297.6997 149.1997 14919.97037 0.69969 297.69969 149.19968999999998 14919.96900 2020-01-01 2020-01-02 2020-01-01 00:03:53 2020-01-02 03:32:14 2020-01-01 00:03:53.000 2020-01-02 03:32:14.000 233 99134 49683.5 4968350 233 99134 49683.5 4968350 -32336 32599 5119.02 511902 -125 126 -0.98 -98 +234 2 10224 99135 0.7027 297.7027 149.2027 14920.27027 0.7027 297.7027 149.2027 14920.27003 0.70270 297.70270 149.20269999999988 14920.27000 2020-01-01 2020-01-02 2020-01-01 00:03:54 2020-01-02 03:32:15 2020-01-01 00:03:54.000 2020-01-02 03:32:15.000 234 99135 49684.5 4968450 234 99135 49684.5 4968450 -32335 32600 5120.02 512002 -124 127 0.02 2 +235 2 10225 99136 0.7057 297.7057 149.2057 14920.57057 0.7057 297.70572 149.2057 14920.57065 0.70570 297.70570 149.20570000000023 14920.57000 2020-01-01 2020-01-02 2020-01-01 00:03:55 2020-01-02 03:32:16 2020-01-01 00:03:55.000 2020-01-02 03:32:16.000 235 99136 49685.5 4968550 235 99136 49685.5 4968550 -32334 32601 5121.02 512102 -128 127 -1.54 -154 +236 2 10226 99137 0.7087 297.7087 149.2087 14920.87087 0.7087 297.7087 149.2087 14920.87095 0.70870 297.70870 149.2086999999999 14920.87000 2020-01-01 2020-01-02 2020-01-01 00:03:56 2020-01-02 03:32:17 2020-01-01 00:03:56.000 2020-01-02 03:32:17.000 236 99137 49686.5 4968650 236 99137 49686.5 4968650 -32333 32602 5122.02 512202 -128 123 -3.1 -310 +237 2 10227 99138 0.71171 297.71171 149.21171 14921.17117 0.71171 297.7117 149.21171 14921.17111 0.71171 297.71171 149.21170999999978 14921.17100 2020-01-01 2020-01-02 2020-01-01 00:03:57 2020-01-02 03:32:18 2020-01-01 00:03:57.000 2020-01-02 03:32:18.000 237 99138 49687.5 4968750 237 99138 49687.5 4968750 -32332 32603 5123.02 512302 -127 124 -2.1 -210 +238 2 10228 99139 0.71471 297.71471 149.21471 14921.47147 0.71471 297.71472 149.21471 14921.47184 0.71471 297.71471 149.21471000000014 14921.47100 2020-01-01 2020-01-02 2020-01-01 00:03:58 2020-01-02 03:32:19 2020-01-01 00:03:58.000 2020-01-02 03:32:19.000 238 99139 49688.5 4968850 238 99139 49688.5 4968850 -32331 32604 5124.02 512402 -126 125 -1.1 -110 +239 2 10229 99140 0.71771 297.71771 149.21771 14921.77177 0.71771 297.7177 149.21771 14921.7715 0.71771 297.71771 149.2177100000001 14921.77100 2020-01-01 2020-01-02 2020-01-01 00:03:59 2020-01-02 03:32:20 2020-01-01 00:03:59.000 2020-01-02 03:32:20.000 239 99140 49689.5 4968950 239 99140 49689.5 4968950 -32330 32605 5125.02 512502 -125 126 -0.1 -10 +24 2 10014 99924 0.07207 300.07207 150.07207 15157.27927 0.07207 300.07208 150.07207 15157.27928 0.07207 300.07207 150.0720700000001 15157.27907 2020-01-01 2020-01-02 2020-01-01 00:00:24 2020-01-02 03:45:24 2020-01-01 00:00:24.000 2020-01-02 03:45:24.000 24 99924 49974 5047374 24 99924 49974 5047374 -32545 32390 4553.009900990099 459854 -128 123 -4.297029702970297 -434 +240 2 10230 99141 0.72072 297.72072 149.22072 14922.07207 0.72072 297.72073 149.22072 14922.07211 0.72072 297.72072 149.22071999999991 14922.07200 2020-01-01 2020-01-02 2020-01-01 00:04:00 2020-01-02 03:32:21 2020-01-01 00:04:00.000 2020-01-02 03:32:21.000 240 99141 49690.5 4969050 240 99141 49690.5 4969050 -32329 32606 5126.02 512602 -124 127 0.9 90 241 2 10231 99142 0.72372 297.72372 149.22372 14922.37237 0.72372 297.72372 149.22372 14922.37243 0.72372 297.72372 149.22372 14922.37200 2020-01-01 2020-01-02 2020-01-01 00:04:01 2020-01-02 03:32:22 2020-01-01 00:04:01.000 2020-01-02 03:32:22.000 241 99142 49691.5 4969150 241 99142 49691.5 4969150 -32328 32607 5127.02 512702 -128 127 -0.66 -66 -242 2 10232 99143 0.72672 297.72672 149.22672 14922.67267 0.72672 297.7267 149.22672 14922.67273 0.72672 297.72672 149.22672 14922.67200 2020-01-01 2020-01-02 2020-01-01 00:04:02 2020-01-02 03:32:23 2020-01-01 00:04:02.000 2020-01-02 03:32:23.000 242 99143 49692.5 4969250 242 99143 49692.5 4969250 -32327 32608 5128.02 512802 -128 123 -2.22 -222 -243 2 10233 99144 0.72972 297.72972 149.22972 14922.97297 0.72972 297.72974 149.22973 14922.97332 0.72972 297.72972 149.22972 14922.97200 2020-01-01 2020-01-02 2020-01-01 00:04:03 2020-01-02 03:32:24 2020-01-01 00:04:03.000 2020-01-02 03:32:24.000 243 99144 49693.5 4969350 243 99144 49693.5 4969350 -32326 32609 5129.02 512902 -127 124 -1.22 -122 -244 2 10234 99145 0.73273 297.73273 149.23273 14923.27327 0.73273 297.73273 149.23272 14923.27297 0.73273 297.73273 149.23273 14923.27300 2020-01-01 2020-01-02 2020-01-01 00:04:04 2020-01-02 03:32:25 2020-01-01 00:04:04.000 2020-01-02 03:32:25.000 244 99145 49694.5 4969450 244 99145 49694.5 4969450 -32325 32610 5130.02 513002 -126 125 -0.22 -22 -245 2 10235 99146 0.73573 297.73573 149.23573 14923.57357 0.73573 297.73575 149.23573 14923.57358 0.73573 297.73573 149.23573 14923.57300 2020-01-01 2020-01-02 2020-01-01 00:04:05 2020-01-02 03:32:26 2020-01-01 00:04:05.000 2020-01-02 03:32:26.000 245 99146 49695.5 4969550 245 99146 49695.5 4969550 -32324 32611 5131.02 513102 -125 126 0.78 78 -246 2 10236 99147 0.73873 297.73873 149.23873 14923.87387 0.73873 297.73874 149.23873 14923.8739 0.73873 297.73873 149.23873 14923.87300 2020-01-01 2020-01-02 2020-01-01 00:04:06 2020-01-02 03:32:27 2020-01-01 00:04:06.000 2020-01-02 03:32:27.000 246 99147 49696.5 4969650 246 99147 49696.5 4969650 -32323 32612 5132.02 513202 -124 127 1.78 178 +242 2 10232 99143 0.72672 297.72672 149.22672 14922.67267 0.72672 297.7267 149.22672 14922.67273 0.72672 297.72672 149.22672000000006 14922.67200 2020-01-01 2020-01-02 2020-01-01 00:04:02 2020-01-02 03:32:23 2020-01-01 00:04:02.000 2020-01-02 03:32:23.000 242 99143 49692.5 4969250 242 99143 49692.5 4969250 -32327 32608 5128.02 512802 -128 123 -2.22 -222 +243 2 10233 99144 0.72972 297.72972 149.22972 14922.97297 0.72972 297.72974 149.22973 14922.97332 0.72972 297.72972 149.2297199999999 14922.97200 2020-01-01 2020-01-02 2020-01-01 00:04:03 2020-01-02 03:32:24 2020-01-01 00:04:03.000 2020-01-02 03:32:24.000 243 99144 49693.5 4969350 243 99144 49693.5 4969350 -32326 32609 5129.02 512902 -127 124 -1.22 -122 +244 2 10234 99145 0.73273 297.73273 149.23273 14923.27327 0.73273 297.73273 149.23272 14923.27297 0.73273 297.73273 149.23272999999986 14923.27300 2020-01-01 2020-01-02 2020-01-01 00:04:04 2020-01-02 03:32:25 2020-01-01 00:04:04.000 2020-01-02 03:32:25.000 244 99145 49694.5 4969450 244 99145 49694.5 4969450 -32325 32610 5130.02 513002 -126 125 -0.22 -22 +245 2 10235 99146 0.73573 297.73573 149.23573 14923.57357 0.73573 297.73575 149.23573 14923.57358 0.73573 297.73573 149.23573000000016 14923.57300 2020-01-01 2020-01-02 2020-01-01 00:04:05 2020-01-02 03:32:26 2020-01-01 00:04:05.000 2020-01-02 03:32:26.000 245 99146 49695.5 4969550 245 99146 49695.5 4969550 -32324 32611 5131.02 513102 -125 126 0.78 78 +246 2 10236 99147 0.73873 297.73873 149.23873 14923.87387 0.73873 297.73874 149.23873 14923.8739 0.73873 297.73873 149.2387299999998 14923.87300 2020-01-01 2020-01-02 2020-01-01 00:04:06 2020-01-02 03:32:27 2020-01-01 00:04:06.000 2020-01-02 03:32:27.000 246 99147 49696.5 4969650 246 99147 49696.5 4969650 -32323 32612 5132.02 513202 -124 127 1.78 178 247 2 10237 99148 0.74174 297.74174 149.24174 14924.17417 0.74174 297.74173 149.24174 14924.1742 0.74174 297.74174 149.24174 14924.17400 2020-01-01 2020-01-02 2020-01-01 00:04:07 2020-01-02 03:32:28 2020-01-01 00:04:07.000 2020-01-02 03:32:28.000 247 99148 49697.5 4969750 247 99148 49697.5 4969750 -32322 32613 5133.02 513302 -128 127 0.22 22 -248 2 10238 99149 0.74474 297.74474 149.24474 14924.47447 0.74474 297.74475 149.24474 14924.47478 0.74474 297.74474 149.24474 14924.47400 2020-01-01 2020-01-02 2020-01-01 00:04:08 2020-01-02 03:32:29 2020-01-01 00:04:08.000 2020-01-02 03:32:29.000 248 99149 49698.5 4969850 248 99149 49698.5 4969850 -32321 32614 5134.02 513402 -128 127 -1.34 -134 -249 2 10239 99150 0.74774 297.74774 149.24774 14924.77477 0.74774 297.74774 149.24774 14924.77447 0.74774 297.74774 149.24774 14924.77400 2020-01-01 2020-01-02 2020-01-01 00:04:09 2020-01-02 03:32:30 2020-01-01 00:04:09.000 2020-01-02 03:32:30.000 249 99150 49699.5 4969950 249 99150 49699.5 4969950 -32320 32615 5135.02 513502 -128 124 -2.9 -290 -25 2 10015 99925 0.07507 300.07507 150.07507 15157.58258 0.07507 300.07507 150.07507 15157.58241 0.07507 300.07507 150.07507 15157.58207 2020-01-01 2020-01-02 2020-01-01 00:00:25 2020-01-02 03:45:25 2020-01-01 00:00:25.000 2020-01-02 03:45:25.000 25 99925 49975 5047475 25 99925 49975 5047475 -32544 32391 4554.009900990099 459955 -127 124 -3.297029702970297 -333 -250 2 10240 99151 0.75075 297.75075 149.25075 14925.07507 0.75075 297.75076 149.25075 14925.07506 0.75075 297.75075 149.25075 14925.07500 2020-01-01 2020-01-02 2020-01-01 00:04:10 2020-01-02 03:32:31 2020-01-01 00:04:10.000 2020-01-02 03:32:31.000 250 99151 49700.5 4970050 250 99151 49700.5 4970050 -32319 32616 5136.02 513602 -127 125 -1.9 -190 -251 2 10241 99152 0.75375 297.75375 149.25375 14925.37537 0.75375 297.75375 149.25375 14925.37536 0.75375 297.75375 149.25375 14925.37500 2020-01-01 2020-01-02 2020-01-01 00:04:11 2020-01-02 03:32:32 2020-01-01 00:04:11.000 2020-01-02 03:32:32.000 251 99152 49701.5 4970150 251 99152 49701.5 4970150 -32318 32617 5137.02 513702 -126 126 -0.9 -90 -252 2 10242 99153 0.75675 297.75675 149.25675 14925.67567 0.75675 297.75674 149.25675 14925.67567 0.75675 297.75675 149.25675 14925.67500 2020-01-01 2020-01-02 2020-01-01 00:04:12 2020-01-02 03:32:33 2020-01-01 00:04:12.000 2020-01-02 03:32:33.000 252 99153 49702.5 4970250 252 99153 49702.5 4970250 -32317 32618 5138.02 513802 -125 127 0.1 10 -253 2 10243 99154 0.75975 297.75975 149.25975 14925.97597 0.75975 297.75977 149.25976 14925.97625 0.75975 297.75975 149.25975 14925.97500 2020-01-01 2020-01-02 2020-01-01 00:04:13 2020-01-02 03:32:34 2020-01-01 00:04:13.000 2020-01-02 03:32:34.000 253 99154 49703.5 4970350 253 99154 49703.5 4970350 -32316 32619 5139.02 513902 -128 127 -1.46 -146 -254 2 10244 99155 0.76276 297.76276 149.26276 14926.27627 0.76276 297.76276 149.26275 14926.27594 0.76276 297.76276 149.26276 14926.27600 2020-01-01 2020-01-02 2020-01-01 00:04:14 2020-01-02 03:32:35 2020-01-01 00:04:14.000 2020-01-02 03:32:35.000 254 99155 49704.5 4970450 254 99155 49704.5 4970450 -32315 32620 5140.02 514002 -128 127 -3.02 -302 -255 2 10245 99156 0.76576 297.76576 149.26576 14926.57657 0.76576 297.76578 149.26576 14926.57652 0.76576 297.76576 149.26576 14926.57600 2020-01-01 2020-01-02 2020-01-01 00:04:15 2020-01-02 03:32:36 2020-01-01 00:04:15.000 2020-01-02 03:32:36.000 255 99156 49705.5 4970550 255 99156 49705.5 4970550 -32314 32621 5141.02 514102 -128 123 -4.58 -458 -256 2 10246 99157 0.76876 297.76876 149.26876 14926.87687 0.76876 297.76877 149.26876 14926.87683 0.76876 297.76876 149.26876 14926.87600 2020-01-01 2020-01-02 2020-01-01 00:04:16 2020-01-02 03:32:37 2020-01-01 00:04:16.000 2020-01-02 03:32:37.000 256 99157 49706.5 4970650 256 99157 49706.5 4970650 -32313 32622 5142.02 514202 -127 124 -3.58 -358 -257 2 10247 99158 0.77177 297.77177 149.27177 14927.17717 0.77177 297.77176 149.27177 14927.17714 0.77177 297.77177 149.27177 14927.17700 2020-01-01 2020-01-02 2020-01-01 00:04:17 2020-01-02 03:32:38 2020-01-01 00:04:17.000 2020-01-02 03:32:38.000 257 99158 49707.5 4970750 257 99158 49707.5 4970750 -32312 32623 5143.02 514302 -126 125 -2.58 -258 +248 2 10238 99149 0.74474 297.74474 149.24474 14924.47447 0.74474 297.74475 149.24474 14924.47478 0.74474 297.74474 149.24474000000006 14924.47400 2020-01-01 2020-01-02 2020-01-01 00:04:08 2020-01-02 03:32:29 2020-01-01 00:04:08.000 2020-01-02 03:32:29.000 248 99149 49698.5 4969850 248 99149 49698.5 4969850 -32321 32614 5134.02 513402 -128 127 -1.34 -134 +249 2 10239 99150 0.74774 297.74774 149.24774 14924.77477 0.74774 297.74774 149.24774 14924.77447 0.74774 297.74774 149.24774000000005 14924.77400 2020-01-01 2020-01-02 2020-01-01 00:04:09 2020-01-02 03:32:30 2020-01-01 00:04:09.000 2020-01-02 03:32:30.000 249 99150 49699.5 4969950 249 99150 49699.5 4969950 -32320 32615 5135.02 513502 -128 124 -2.9 -290 +25 2 10015 99925 0.07507 300.07507 150.07507 15157.58258 0.07507 300.07507 150.07507 15157.58241 0.07507 300.07507 150.07507000000012 15157.58207 2020-01-01 2020-01-02 2020-01-01 00:00:25 2020-01-02 03:45:25 2020-01-01 00:00:25.000 2020-01-02 03:45:25.000 25 99925 49975 5047475 25 99925 49975 5047475 -32544 32391 4554.009900990099 459955 -127 124 -3.297029702970297 -333 +250 2 10240 99151 0.75075 297.75075 149.25075 14925.07507 0.75075 297.75076 149.25075 14925.07506 0.75075 297.75075 149.25074999999987 14925.07500 2020-01-01 2020-01-02 2020-01-01 00:04:10 2020-01-02 03:32:31 2020-01-01 00:04:10.000 2020-01-02 03:32:31.000 250 99151 49700.5 4970050 250 99151 49700.5 4970050 -32319 32616 5136.02 513602 -127 125 -1.9 -190 +251 2 10241 99152 0.75375 297.75375 149.25375 14925.37537 0.75375 297.75375 149.25375 14925.37536 0.75375 297.75375 149.2537499999999 14925.37500 2020-01-01 2020-01-02 2020-01-01 00:04:11 2020-01-02 03:32:32 2020-01-01 00:04:11.000 2020-01-02 03:32:32.000 251 99152 49701.5 4970150 251 99152 49701.5 4970150 -32318 32617 5137.02 513702 -126 126 -0.9 -90 +252 2 10242 99153 0.75675 297.75675 149.25675 14925.67567 0.75675 297.75674 149.25675 14925.67567 0.75675 297.75675 149.2567500000001 14925.67500 2020-01-01 2020-01-02 2020-01-01 00:04:12 2020-01-02 03:32:33 2020-01-01 00:04:12.000 2020-01-02 03:32:33.000 252 99153 49702.5 4970250 252 99153 49702.5 4970250 -32317 32618 5138.02 513802 -125 127 0.1 10 +253 2 10243 99154 0.75975 297.75975 149.25975 14925.97597 0.75975 297.75977 149.25976 14925.97625 0.75975 297.75975 149.25974999999988 14925.97500 2020-01-01 2020-01-02 2020-01-01 00:04:13 2020-01-02 03:32:34 2020-01-01 00:04:13.000 2020-01-02 03:32:34.000 253 99154 49703.5 4970350 253 99154 49703.5 4970350 -32316 32619 5139.02 513902 -128 127 -1.46 -146 +254 2 10244 99155 0.76276 297.76276 149.26276 14926.27627 0.76276 297.76276 149.26275 14926.27594 0.76276 297.76276 149.2627599999998 14926.27600 2020-01-01 2020-01-02 2020-01-01 00:04:14 2020-01-02 03:32:35 2020-01-01 00:04:14.000 2020-01-02 03:32:35.000 254 99155 49704.5 4970450 254 99155 49704.5 4970450 -32315 32620 5140.02 514002 -128 127 -3.02 -302 +255 2 10245 99156 0.76576 297.76576 149.26576 14926.57657 0.76576 297.76578 149.26576 14926.57652 0.76576 297.76576 149.26576000000017 14926.57600 2020-01-01 2020-01-02 2020-01-01 00:04:15 2020-01-02 03:32:36 2020-01-01 00:04:15.000 2020-01-02 03:32:36.000 255 99156 49705.5 4970550 255 99156 49705.5 4970550 -32314 32621 5141.02 514102 -128 123 -4.58 -458 +256 2 10246 99157 0.76876 297.76876 149.26876 14926.87687 0.76876 297.76877 149.26876 14926.87683 0.76876 297.76876 149.26876000000016 14926.87600 2020-01-01 2020-01-02 2020-01-01 00:04:16 2020-01-02 03:32:37 2020-01-01 00:04:16.000 2020-01-02 03:32:37.000 256 99157 49706.5 4970650 256 99157 49706.5 4970650 -32313 32622 5142.02 514202 -127 124 -3.58 -358 +257 2 10247 99158 0.77177 297.77177 149.27177 14927.17717 0.77177 297.77176 149.27177 14927.17714 0.77177 297.77177 149.27176999999992 14927.17700 2020-01-01 2020-01-02 2020-01-01 00:04:17 2020-01-02 03:32:38 2020-01-01 00:04:17.000 2020-01-02 03:32:38.000 257 99158 49707.5 4970750 257 99158 49707.5 4970750 -32312 32623 5143.02 514302 -126 125 -2.58 -258 258 2 10248 99159 0.77477 297.77477 149.27477 14927.47747 0.77477 297.77478 149.27477 14927.47776 0.77477 297.77477 149.27477 14927.47700 2020-01-01 2020-01-02 2020-01-01 00:04:18 2020-01-02 03:32:39 2020-01-01 00:04:18.000 2020-01-02 03:32:39.000 258 99159 49708.5 4970850 258 99159 49708.5 4970850 -32311 32624 5144.02 514402 -125 126 -1.58 -158 -259 2 10249 99160 0.77777 297.77777 149.27777 14927.77777 0.77777 297.77777 149.27777 14927.77742 0.77777 297.77777 149.27777 14927.77700 2020-01-01 2020-01-02 2020-01-01 00:04:19 2020-01-02 03:32:40 2020-01-01 00:04:19.000 2020-01-02 03:32:40.000 259 99160 49709.5 4970950 259 99160 49709.5 4970950 -32310 32625 5145.02 514502 -124 127 -0.58 -58 -26 2 10016 99926 0.07807 300.07807 150.07807 15157.88588 0.07807 300.07806 150.07807 15157.88575 0.07807 300.07807 150.07807 15157.88507 2020-01-01 2020-01-02 2020-01-01 00:00:26 2020-01-02 03:45:26 2020-01-01 00:00:26.000 2020-01-02 03:45:26.000 26 99926 49976 5047576 26 99926 49976 5047576 -32543 32392 4555.009900990099 460056 -126 125 -2.297029702970297 -232 -260 2 10250 99161 0.78078 297.78078 149.28078 14928.07807 0.78078 297.7808 149.28077 14928.07799 0.78078 297.78078 149.28078 14928.07800 2020-01-01 2020-01-02 2020-01-01 00:04:20 2020-01-02 03:32:41 2020-01-01 00:04:20.000 2020-01-02 03:32:41.000 260 99161 49710.5 4971050 260 99161 49710.5 4971050 -32309 32626 5146.02 514602 -128 127 -2.14 -214 -261 2 10251 99162 0.78378 297.78378 149.28378 14928.37837 0.78378 297.78378 149.28378 14928.3783 0.78378 297.78378 149.28378 14928.37800 2020-01-01 2020-01-02 2020-01-01 00:04:21 2020-01-02 03:32:42 2020-01-01 00:04:21.000 2020-01-02 03:32:42.000 261 99162 49711.5 4971150 261 99162 49711.5 4971150 -32308 32627 5147.02 514702 -128 123 -3.7 -370 -262 2 10252 99163 0.78678 297.78678 149.28678 14928.67867 0.78678 297.78677 149.28678 14928.67861 0.78678 297.78678 149.28678 14928.67800 2020-01-01 2020-01-02 2020-01-01 00:04:22 2020-01-02 03:32:43 2020-01-01 00:04:22.000 2020-01-02 03:32:43.000 262 99163 49712.5 4971250 262 99163 49712.5 4971250 -32307 32628 5148.02 514802 -127 124 -2.7 -270 -263 2 10253 99164 0.78978 297.78978 149.28978 14928.97897 0.78978 297.7898 149.28979 14928.97923 0.78978 297.78978 149.28978 14928.97800 2020-01-01 2020-01-02 2020-01-01 00:04:23 2020-01-02 03:32:44 2020-01-01 00:04:23.000 2020-01-02 03:32:44.000 263 99164 49713.5 4971350 263 99164 49713.5 4971350 -32306 32629 5149.02 514902 -126 125 -1.7 -170 +259 2 10249 99160 0.77777 297.77777 149.27777 14927.77777 0.77777 297.77777 149.27777 14927.77742 0.77777 297.77777 149.27777000000006 14927.77700 2020-01-01 2020-01-02 2020-01-01 00:04:19 2020-01-02 03:32:40 2020-01-01 00:04:19.000 2020-01-02 03:32:40.000 259 99160 49709.5 4970950 259 99160 49709.5 4970950 -32310 32625 5145.02 514502 -124 127 -0.58 -58 +26 2 10016 99926 0.07807 300.07807 150.07807 15157.88588 0.07807 300.07806 150.07807 15157.88575 0.07807 300.07807 150.0780699999998 15157.88507 2020-01-01 2020-01-02 2020-01-01 00:00:26 2020-01-02 03:45:26 2020-01-01 00:00:26.000 2020-01-02 03:45:26.000 26 99926 49976 5047576 26 99926 49976 5047576 -32543 32392 4555.009900990099 460056 -126 125 -2.297029702970297 -232 +260 2 10250 99161 0.78078 297.78078 149.28078 14928.07807 0.78078 297.7808 149.28077 14928.07799 0.78078 297.78078 149.28077999999982 14928.07800 2020-01-01 2020-01-02 2020-01-01 00:04:20 2020-01-02 03:32:41 2020-01-01 00:04:20.000 2020-01-02 03:32:41.000 260 99161 49710.5 4971050 260 99161 49710.5 4971050 -32309 32626 5146.02 514602 -128 127 -2.14 -214 +261 2 10251 99162 0.78378 297.78378 149.28378 14928.37837 0.78378 297.78378 149.28378 14928.3783 0.78378 297.78378 149.28377999999987 14928.37800 2020-01-01 2020-01-02 2020-01-01 00:04:21 2020-01-02 03:32:42 2020-01-01 00:04:21.000 2020-01-02 03:32:42.000 261 99162 49711.5 4971150 261 99162 49711.5 4971150 -32308 32627 5147.02 514702 -128 123 -3.7 -370 +262 2 10252 99163 0.78678 297.78678 149.28678 14928.67867 0.78678 297.78677 149.28678 14928.67861 0.78678 297.78678 149.2867800000002 14928.67800 2020-01-01 2020-01-02 2020-01-01 00:04:22 2020-01-02 03:32:43 2020-01-01 00:04:22.000 2020-01-02 03:32:43.000 262 99163 49712.5 4971250 262 99163 49712.5 4971250 -32307 32628 5148.02 514802 -127 124 -2.7 -270 +263 2 10253 99164 0.78978 297.78978 149.28978 14928.97897 0.78978 297.7898 149.28979 14928.97923 0.78978 297.78978 149.2897799999999 14928.97800 2020-01-01 2020-01-02 2020-01-01 00:04:23 2020-01-02 03:32:44 2020-01-01 00:04:23.000 2020-01-02 03:32:44.000 263 99164 49713.5 4971350 263 99164 49713.5 4971350 -32306 32629 5149.02 514902 -126 125 -1.7 -170 264 2 10254 99165 0.79279 297.79279 149.29279 14929.27927 0.79279 297.7928 149.29278 14929.27888 0.79279 297.79279 149.29279 14929.27900 2020-01-01 2020-01-02 2020-01-01 00:04:24 2020-01-02 03:32:45 2020-01-01 00:04:24.000 2020-01-02 03:32:45.000 264 99165 49714.5 4971450 264 99165 49714.5 4971450 -32305 32630 5150.02 515002 -125 126 -0.7 -70 -265 2 10255 99166 0.79579 297.79579 149.29579 14929.57957 0.79579 297.7958 149.29579 14929.57962 0.79579 297.79579 149.29579 14929.57900 2020-01-01 2020-01-02 2020-01-01 00:04:25 2020-01-02 03:32:46 2020-01-01 00:04:25.000 2020-01-02 03:32:46.000 265 99166 49715.5 4971550 265 99166 49715.5 4971550 -32304 32631 5151.02 515102 -124 127 0.3 30 -266 2 10256 99167 0.79879 297.79879 149.29879 14929.87987 0.79879 297.7988 149.29879 14929.87977 0.79879 297.79879 149.29879 14929.87900 2020-01-01 2020-01-02 2020-01-01 00:04:26 2020-01-02 03:32:47 2020-01-01 00:04:26.000 2020-01-02 03:32:47.000 266 99167 49716.5 4971650 266 99167 49716.5 4971650 -32303 32632 5152.02 515202 -128 127 -1.26 -126 -267 2 10257 99168 0.8018 297.8018 149.3018 14930.18018 0.8018 297.8018 149.3018 14930.18012 0.80180 297.80180 149.30180 14930.18000 2020-01-01 2020-01-02 2020-01-01 00:04:27 2020-01-02 03:32:48 2020-01-01 00:04:27.000 2020-01-02 03:32:48.000 267 99168 49717.5 4971750 267 99168 49717.5 4971750 -32302 32633 5153.02 515302 -128 123 -2.82 -282 -268 2 10258 99169 0.8048 297.8048 149.3048 14930.48048 0.8048 297.8048 149.3048 14930.4807 0.80480 297.80480 149.30480 14930.48000 2020-01-01 2020-01-02 2020-01-01 00:04:28 2020-01-02 03:32:49 2020-01-01 00:04:28.000 2020-01-02 03:32:49.000 268 99169 49718.5 4971850 268 99169 49718.5 4971850 -32301 32634 5154.02 515402 -127 124 -1.82 -182 -269 2 10259 99170 0.8078 297.8078 149.3078 14930.78078 0.8078 297.8078 149.3078 14930.78035 0.80780 297.80780 149.30780 14930.78000 2020-01-01 2020-01-02 2020-01-01 00:04:29 2020-01-02 03:32:50 2020-01-01 00:04:29.000 2020-01-02 03:32:50.000 269 99170 49719.5 4971950 269 99170 49719.5 4971950 -32300 32635 5155.02 515502 -126 125 -0.82 -82 -27 2 10017 99927 0.08108 300.08108 150.08108 15158.18918 0.08108 300.0811 150.08108 15158.18936 0.08108 300.08108 150.08108 15158.18908 2020-01-01 2020-01-02 2020-01-01 00:00:27 2020-01-02 03:45:27 2020-01-01 00:00:27.000 2020-01-02 03:45:27.000 27 99927 49977 5047677 27 99927 49977 5047677 -32542 32393 4556.009900990099 460157 -125 126 -1.297029702970297 -131 -270 2 10260 99171 0.81081 297.81081 149.31081 14931.08108 0.81081 297.81082 149.31081 14931.08109 0.81081 297.81081 149.31081 14931.08100 2020-01-01 2020-01-02 2020-01-01 00:04:30 2020-01-02 03:32:51 2020-01-01 00:04:30.000 2020-01-02 03:32:51.000 270 99171 49720.5 4972050 270 99171 49720.5 4972050 -32299 32636 5156.02 515602 -125 126 0.18 18 -271 2 10261 99172 0.81381 297.81381 149.31381 14931.38138 0.81381 297.8138 149.31381 14931.38124 0.81381 297.81381 149.31381 14931.38100 2020-01-01 2020-01-02 2020-01-01 00:04:31 2020-01-02 03:32:52 2020-01-01 00:04:31.000 2020-01-02 03:32:52.000 271 99172 49721.5 4972150 271 99172 49721.5 4972150 -32298 32637 5157.02 515702 -124 127 1.18 118 -272 2 10262 99173 0.81681 297.81681 149.31681 14931.68168 0.81681 297.8168 149.31681 14931.68159 0.81681 297.81681 149.31681 14931.68100 2020-01-01 2020-01-02 2020-01-01 00:04:32 2020-01-02 03:32:53 2020-01-01 00:04:32.000 2020-01-02 03:32:53.000 272 99173 49722.5 4972250 272 99173 49722.5 4972250 -32297 32638 5158.02 515802 -128 127 -0.38 -38 -273 2 10263 99174 0.81981 297.81981 149.31981 14931.98198 0.81981 297.81982 149.31982 14931.98217 0.81981 297.81981 149.31981 14931.98100 2020-01-01 2020-01-02 2020-01-01 00:04:33 2020-01-02 03:32:54 2020-01-01 00:04:33.000 2020-01-02 03:32:54.000 273 99174 49723.5 4972350 273 99174 49723.5 4972350 -32296 32639 5159.02 515902 -128 127 -1.94 -194 -274 2 10264 99175 0.82282 297.82282 149.32282 14932.28228 0.82282 297.8228 149.32282 14932.28247 0.82282 297.82282 149.32282 14932.28200 2020-01-01 2020-01-02 2020-01-01 00:04:34 2020-01-02 03:32:55 2020-01-01 00:04:34.000 2020-01-02 03:32:55.000 274 99175 49724.5 4972450 274 99175 49724.5 4972450 -32295 32640 5160.02 516002 -128 124 -3.5 -350 +265 2 10255 99166 0.79579 297.79579 149.29579 14929.57957 0.79579 297.7958 149.29579 14929.57962 0.79579 297.79579 149.2957900000001 14929.57900 2020-01-01 2020-01-02 2020-01-01 00:04:25 2020-01-02 03:32:46 2020-01-01 00:04:25.000 2020-01-02 03:32:46.000 265 99166 49715.5 4971550 265 99166 49715.5 4971550 -32304 32631 5151.02 515102 -124 127 0.3 30 +266 2 10256 99167 0.79879 297.79879 149.29879 14929.87987 0.79879 297.7988 149.29879 14929.87977 0.79879 297.79879 149.2987900000001 14929.87900 2020-01-01 2020-01-02 2020-01-01 00:04:26 2020-01-02 03:32:47 2020-01-01 00:04:26.000 2020-01-02 03:32:47.000 266 99167 49716.5 4971650 266 99167 49716.5 4971650 -32303 32632 5152.02 515202 -128 127 -1.26 -126 +267 2 10257 99168 0.8018 297.8018 149.3018 14930.18018 0.8018 297.8018 149.3018 14930.18012 0.80180 297.80180 149.3017999999999 14930.18000 2020-01-01 2020-01-02 2020-01-01 00:04:27 2020-01-02 03:32:48 2020-01-01 00:04:27.000 2020-01-02 03:32:48.000 267 99168 49717.5 4971750 267 99168 49717.5 4971750 -32302 32633 5153.02 515302 -128 123 -2.82 -282 +268 2 10258 99169 0.8048 297.8048 149.3048 14930.48048 0.8048 297.8048 149.3048 14930.4807 0.80480 297.80480 149.30479999999991 14930.48000 2020-01-01 2020-01-02 2020-01-01 00:04:28 2020-01-02 03:32:49 2020-01-01 00:04:28.000 2020-01-02 03:32:49.000 268 99169 49718.5 4971850 268 99169 49718.5 4971850 -32301 32634 5154.02 515402 -127 124 -1.82 -182 +269 2 10259 99170 0.8078 297.8078 149.3078 14930.78078 0.8078 297.8078 149.3078 14930.78035 0.80780 297.80780 149.3078 14930.78000 2020-01-01 2020-01-02 2020-01-01 00:04:29 2020-01-02 03:32:50 2020-01-01 00:04:29.000 2020-01-02 03:32:50.000 269 99170 49719.5 4971950 269 99170 49719.5 4971950 -32300 32635 5155.02 515502 -126 125 -0.82 -82 +27 2 10017 99927 0.08108 300.08108 150.08108 15158.18918 0.08108 300.0811 150.08108 15158.18936 0.08108 300.08108 150.08107999999996 15158.18908 2020-01-01 2020-01-02 2020-01-01 00:00:27 2020-01-02 03:45:27 2020-01-01 00:00:27.000 2020-01-02 03:45:27.000 27 99927 49977 5047677 27 99927 49977 5047677 -32542 32393 4556.009900990099 460157 -125 126 -1.297029702970297 -131 +270 2 10260 99171 0.81081 297.81081 149.31081 14931.08108 0.81081 297.81082 149.31081 14931.08109 0.81081 297.81081 149.31081000000017 14931.08100 2020-01-01 2020-01-02 2020-01-01 00:04:30 2020-01-02 03:32:51 2020-01-01 00:04:30.000 2020-01-02 03:32:51.000 270 99171 49720.5 4972050 270 99171 49720.5 4972050 -32299 32636 5156.02 515602 -125 126 0.18 18 +271 2 10261 99172 0.81381 297.81381 149.31381 14931.38138 0.81381 297.8138 149.31381 14931.38124 0.81381 297.81381 149.31380999999985 14931.38100 2020-01-01 2020-01-02 2020-01-01 00:04:31 2020-01-02 03:32:52 2020-01-01 00:04:31.000 2020-01-02 03:32:52.000 271 99172 49721.5 4972150 271 99172 49721.5 4972150 -32298 32637 5157.02 515702 -124 127 1.18 118 +272 2 10262 99173 0.81681 297.81681 149.31681 14931.68168 0.81681 297.8168 149.31681 14931.68159 0.81681 297.81681 149.31681000000012 14931.68100 2020-01-01 2020-01-02 2020-01-01 00:04:32 2020-01-02 03:32:53 2020-01-01 00:04:32.000 2020-01-02 03:32:53.000 272 99173 49722.5 4972250 272 99173 49722.5 4972250 -32297 32638 5158.02 515802 -128 127 -0.38 -38 +273 2 10263 99174 0.81981 297.81981 149.31981 14931.98198 0.81981 297.81982 149.31982 14931.98217 0.81981 297.81981 149.3198100000002 14931.98100 2020-01-01 2020-01-02 2020-01-01 00:04:33 2020-01-02 03:32:54 2020-01-01 00:04:33.000 2020-01-02 03:32:54.000 273 99174 49723.5 4972350 273 99174 49723.5 4972350 -32296 32639 5159.02 515902 -128 127 -1.94 -194 +274 2 10264 99175 0.82282 297.82282 149.32282 14932.28228 0.82282 297.8228 149.32282 14932.28247 0.82282 297.82282 149.3228199999999 14932.28200 2020-01-01 2020-01-02 2020-01-01 00:04:34 2020-01-02 03:32:55 2020-01-01 00:04:34.000 2020-01-02 03:32:55.000 274 99175 49724.5 4972450 274 99175 49724.5 4972450 -32295 32640 5160.02 516002 -128 124 -3.5 -350 275 2 10265 99176 0.82582 297.82582 149.32582 14932.58258 0.82582 297.82584 149.32582 14932.58256 0.82582 297.82582 149.32582 14932.58200 2020-01-01 2020-01-02 2020-01-01 00:04:35 2020-01-02 03:32:56 2020-01-01 00:04:35.000 2020-01-02 03:32:56.000 275 99176 49725.5 4972550 275 99176 49725.5 4972550 -32294 32641 5161.02 516102 -127 125 -2.5 -250 -276 2 10266 99177 0.82882 297.82882 149.32882 14932.88288 0.82882 297.82883 149.32882 14932.88275 0.82882 297.82882 149.32882 14932.88200 2020-01-01 2020-01-02 2020-01-01 00:04:36 2020-01-02 03:32:57 2020-01-01 00:04:36.000 2020-01-02 03:32:57.000 276 99177 49726.5 4972650 276 99177 49726.5 4972650 -32293 32642 5162.02 516202 -126 126 -1.5 -150 -277 2 10267 99178 0.83183 297.83183 149.33183 14933.18318 0.83183 297.83182 149.33183 14933.18305 0.83183 297.83183 149.33183 14933.18300 2020-01-01 2020-01-02 2020-01-01 00:04:37 2020-01-02 03:32:58 2020-01-01 00:04:37.000 2020-01-02 03:32:58.000 277 99178 49727.5 4972750 277 99178 49727.5 4972750 -32292 32643 5163.02 516302 -125 127 -0.5 -50 -278 2 10268 99179 0.83483 297.83483 149.33483 14933.48348 0.83483 297.83484 149.33483 14933.48364 0.83483 297.83483 149.33483 14933.48300 2020-01-01 2020-01-02 2020-01-01 00:04:38 2020-01-02 03:32:59 2020-01-01 00:04:38.000 2020-01-02 03:32:59.000 278 99179 49728.5 4972850 278 99179 49728.5 4972850 -32291 32644 5164.02 516402 -128 127 -2.06 -206 -279 2 10269 99180 0.83783 297.83783 149.33783 14933.78378 0.83783 297.83783 149.33783 14933.78394 0.83783 297.83783 149.33783 14933.78300 2020-01-01 2020-01-02 2020-01-01 00:04:39 2020-01-02 03:33:00 2020-01-01 00:04:39.000 2020-01-02 03:33:00.000 279 99180 49729.5 4972950 279 99180 49729.5 4972950 -32290 32645 5165.02 516502 -128 127 -3.62 -362 -28 2 10018 99928 0.08408 300.08408 150.08408 15158.49249 0.08408 300.08408 150.08408 15158.49265 0.08408 300.08408 150.08408 15158.49208 2020-01-01 2020-01-02 2020-01-01 00:00:28 2020-01-02 03:45:28 2020-01-01 00:00:28.000 2020-01-02 03:45:28.000 28 99928 49978 5047778 28 99928 49978 5047778 -32541 32394 4557.009900990099 460258 -124 127 -0.297029702970297 -30 -280 2 10270 99181 0.84084 297.84084 149.34084 14934.08408 0.84084 297.84085 149.34084 14934.08403 0.84084 297.84084 149.34084 14934.08400 2020-01-01 2020-01-02 2020-01-01 00:04:40 2020-01-02 03:33:01 2020-01-01 00:04:40.000 2020-01-02 03:33:01.000 280 99181 49730.5 4973050 280 99181 49730.5 4973050 -32289 32646 5166.02 516602 -128 123 -5.18 -518 -281 2 10271 99182 0.84384 297.84384 149.34384 14934.38438 0.84384 297.84384 149.34384 14934.38421 0.84384 297.84384 149.34384 14934.38400 2020-01-01 2020-01-02 2020-01-01 00:04:41 2020-01-02 03:33:02 2020-01-01 00:04:41.000 2020-01-02 03:33:02.000 281 99182 49731.5 4973150 281 99182 49731.5 4973150 -32288 32647 5167.02 516702 -127 124 -4.18 -418 -282 2 10272 99183 0.84684 297.84684 149.34684 14934.68468 0.84684 297.84683 149.34684 14934.68453 0.84684 297.84684 149.34684 14934.68400 2020-01-01 2020-01-02 2020-01-01 00:04:42 2020-01-02 03:33:03 2020-01-01 00:04:42.000 2020-01-02 03:33:03.000 282 99183 49732.5 4973250 282 99183 49732.5 4973250 -32287 32648 5168.02 516802 -126 125 -3.18 -318 -283 2 10273 99184 0.84984 297.84984 149.34984 14934.98498 0.84984 297.84985 149.34985 14934.98526 0.84984 297.84984 149.34984 14934.98400 2020-01-01 2020-01-02 2020-01-01 00:04:43 2020-01-02 03:33:04 2020-01-01 00:04:43.000 2020-01-02 03:33:04.000 283 99184 49733.5 4973350 283 99184 49733.5 4973350 -32286 32649 5169.02 516902 -125 126 -2.18 -218 -284 2 10274 99185 0.85285 297.85285 149.35285 14935.28528 0.85285 297.85284 149.35285 14935.28542 0.85285 297.85285 149.35285 14935.28500 2020-01-01 2020-01-02 2020-01-01 00:04:44 2020-01-02 03:33:05 2020-01-01 00:04:44.000 2020-01-02 03:33:05.000 284 99185 49734.5 4973450 284 99185 49734.5 4973450 -32285 32650 5170.02 517002 -124 127 -1.18 -118 -285 2 10275 99186 0.85585 297.85585 149.35585 14935.58558 0.85585 297.85587 149.35585 14935.5855 0.85585 297.85585 149.35585 14935.58500 2020-01-01 2020-01-02 2020-01-01 00:04:45 2020-01-02 03:33:06 2020-01-01 00:04:45.000 2020-01-02 03:33:06.000 285 99186 49735.5 4973550 285 99186 49735.5 4973550 -32284 32651 5171.02 517102 -128 127 -2.74 -274 -286 2 10276 99187 0.85885 297.85885 149.35885 14935.88588 0.85885 297.85886 149.35885 14935.88568 0.85885 297.85885 149.35885 14935.88500 2020-01-01 2020-01-02 2020-01-01 00:04:46 2020-01-02 03:33:07 2020-01-01 00:04:46.000 2020-01-02 03:33:07.000 286 99187 49736.5 4973650 286 99187 49736.5 4973650 -32283 32652 5172.02 517202 -128 123 -4.3 -430 -287 2 10277 99188 0.86186 297.86186 149.36186 14936.18618 0.86186 297.86185 149.36186 14936.186 0.86186 297.86186 149.36186 14936.18600 2020-01-01 2020-01-02 2020-01-01 00:04:47 2020-01-02 03:33:08 2020-01-01 00:04:47.000 2020-01-02 03:33:08.000 287 99188 49737.5 4973750 287 99188 49737.5 4973750 -32282 32653 5173.02 517302 -127 124 -3.3 -330 -288 2 10278 99189 0.86486 297.86486 149.36486 14936.48648 0.86486 297.86487 149.36486 14936.48673 0.86486 297.86486 149.36486 14936.48600 2020-01-01 2020-01-02 2020-01-01 00:04:48 2020-01-02 03:33:09 2020-01-01 00:04:48.000 2020-01-02 03:33:09.000 288 99189 49738.5 4973850 288 99189 49738.5 4973850 -32281 32654 5174.02 517402 -126 125 -2.3 -230 -289 2 10279 99190 0.86786 297.86786 149.36786 14936.78678 0.86786 297.86786 149.36786 14936.78688 0.86786 297.86786 149.36786 14936.78600 2020-01-01 2020-01-02 2020-01-01 00:04:49 2020-01-02 03:33:10 2020-01-01 00:04:49.000 2020-01-02 03:33:10.000 289 99190 49739.5 4973950 289 99190 49739.5 4973950 -32280 32655 5175.02 517502 -125 126 -1.3 -130 -29 2 10019 99929 0.08708 300.08708 150.08708 15158.79579 0.08708 300.0871 150.08708 15158.79576 0.08708 300.08708 150.08708 15158.79508 2020-01-01 2020-01-02 2020-01-01 00:00:29 2020-01-02 03:45:29 2020-01-01 00:00:29.000 2020-01-02 03:45:29.000 29 99929 49979 5047879 29 99929 49979 5047879 -32540 32395 4558.009900990099 460359 -128 127 -1.8316831683168318 -185 -290 2 10280 99191 0.87087 297.87087 149.37087 14937.08708 0.87087 297.87088 149.37087 14937.087 0.87087 297.87087 149.37087 14937.08700 2020-01-01 2020-01-02 2020-01-01 00:04:50 2020-01-02 03:33:11 2020-01-01 00:04:50.000 2020-01-02 03:33:11.000 290 99191 49740.5 4974050 290 99191 49740.5 4974050 -32279 32656 5176.02 517602 -124 127 -0.3 -30 -291 2 10281 99192 0.87387 297.87387 149.37387 14937.38738 0.87387 297.87387 149.37387 14937.38716 0.87387 297.87387 149.37387 14937.38700 2020-01-01 2020-01-02 2020-01-01 00:04:51 2020-01-02 03:33:12 2020-01-01 00:04:51.000 2020-01-02 03:33:12.000 291 99192 49741.5 4974150 291 99192 49741.5 4974150 -32278 32657 5177.02 517702 -128 127 -1.86 -186 -292 2 10282 99193 0.87687 297.87687 149.37687 14937.68768 0.87687 297.8769 149.37687 14937.68789 0.87687 297.87687 149.37687 14937.68700 2020-01-01 2020-01-02 2020-01-01 00:04:52 2020-01-02 03:33:13 2020-01-01 00:04:52.000 2020-01-02 03:33:13.000 292 99193 49742.5 4974250 292 99193 49742.5 4974250 -32277 32658 5178.02 517802 -128 123 -3.42 -342 -293 2 10283 99194 0.87987 297.87987 149.37987 14937.98798 0.87987 297.87988 149.37988 14937.9882 0.87987 297.87987 149.37987 14937.98700 2020-01-01 2020-01-02 2020-01-01 00:04:53 2020-01-02 03:33:14 2020-01-01 00:04:53.000 2020-01-02 03:33:14.000 293 99194 49743.5 4974350 293 99194 49743.5 4974350 -32276 32659 5179.02 517902 -127 124 -2.42 -242 -294 2 10284 99195 0.88288 297.88288 149.38288 14938.28828 0.88288 297.88287 149.38288 14938.28835 0.88288 297.88288 149.38288 14938.28800 2020-01-01 2020-01-02 2020-01-01 00:04:54 2020-01-02 03:33:15 2020-01-01 00:04:54.000 2020-01-02 03:33:15.000 294 99195 49744.5 4974450 294 99195 49744.5 4974450 -32275 32660 5180.02 518002 -126 125 -1.42 -142 -295 2 10285 99196 0.88588 297.88588 149.38588 14938.58858 0.88588 297.8859 149.38588 14938.58847 0.88588 297.88588 149.38588 14938.58800 2020-01-01 2020-01-02 2020-01-01 00:04:55 2020-01-02 03:33:16 2020-01-01 00:04:55.000 2020-01-02 03:33:16.000 295 99196 49745.5 4974550 295 99196 49745.5 4974550 -32274 32661 5181.02 518102 -125 126 -0.42 -42 -296 2 10286 99197 0.88888 297.88888 149.38888 14938.88888 0.88888 297.8889 149.38888 14938.88863 0.88888 297.88888 149.38888 14938.88800 2020-01-01 2020-01-02 2020-01-01 00:04:56 2020-01-02 03:33:17 2020-01-01 00:04:56.000 2020-01-02 03:33:17.000 296 99197 49746.5 4974650 296 99197 49746.5 4974650 -32273 32662 5182.02 518202 -124 127 0.58 58 -297 2 10287 99198 0.89189 297.89189 149.39189 14939.18918 0.89189 297.8919 149.39189 14939.18936 0.89189 297.89189 149.39189 14939.18900 2020-01-01 2020-01-02 2020-01-01 00:04:57 2020-01-02 03:33:18 2020-01-01 00:04:57.000 2020-01-02 03:33:18.000 297 99198 49747.5 4974750 297 99198 49747.5 4974750 -32272 32663 5183.02 518302 -128 127 -0.98 -98 -298 2 10288 99199 0.89489 297.89489 149.39489 14939.48948 0.89489 297.8949 149.39489 14939.48967 0.89489 297.89489 149.39489 14939.48900 2020-01-01 2020-01-02 2020-01-01 00:04:58 2020-01-02 03:33:19 2020-01-01 00:04:58.000 2020-01-02 03:33:19.000 298 99199 49748.5 4974850 298 99199 49748.5 4974850 -32271 32664 5184.02 518402 -128 127 -2.54 -254 -299 2 10289 99200 0.89789 297.89789 149.39789 14939.78978 0.89789 297.8979 149.39789 14939.78986 0.89789 297.89789 149.39789 14939.78900 2020-01-01 2020-01-02 2020-01-01 00:04:59 2020-01-02 03:33:20 2020-01-01 00:04:59.000 2020-01-02 03:33:20.000 299 99200 49749.5 4974950 299 99200 49749.5 4974950 -32270 32665 5185.02 518502 -128 124 -4.1 -410 -3 2 1002 9993 0.009 300.009 150.009 15150.9099 0.009 300.009 150.009 15150.90958 0.00900 300.00900 150.00900 15150.90900 2020-01-01 2020-01-02 2020-01-01 00:00:03 2020-01-02 03:45:03 2020-01-01 00:00:03.000 2020-01-02 03:45:03.000 3 99903 49953 5045253 3 99903 49953 5045253 -32566 32369 4532.009900990099 457733 -124 127 0.04950495049504951 5 -30 2 10020 99930 0.09009 300.09009 150.09009 15159.09909 0.09009 300.0901 150.09008 15159.09894 0.09009 300.09009 150.09009 15159.09909 2020-01-01 2020-01-02 2020-01-01 00:00:30 2020-01-02 03:45:30 2020-01-01 00:00:30.000 2020-01-02 03:45:30.000 30 99930 49980 5047980 30 99930 49980 5047980 -32539 32396 4559.009900990099 460460 -128 123 -3.366336633663366 -340 -300 2 10290 99201 0.9009 297.9009 149.4009 14940.09009 0.9009 297.9009 149.40089 14940.08995 0.90090 297.90090 149.40090 14940.09000 2020-01-01 2020-01-02 2020-01-01 00:05:00 2020-01-02 03:33:21 2020-01-01 00:05:00.000 2020-01-02 03:33:21.000 300 99201 49750.5 4975050 300 99201 49750.5 4975050 -32269 32666 5186.02 518602 -127 125 -3.1 -310 -301 2 10291 99202 0.9039 297.9039 149.4039 14940.39039 0.9039 297.9039 149.4039 14940.39009 0.90390 297.90390 149.40390 14940.39000 2020-01-01 2020-01-02 2020-01-01 00:05:01 2020-01-02 03:33:22 2020-01-01 00:05:01.000 2020-01-02 03:33:22.000 301 99202 49751.5 4975150 301 99202 49751.5 4975150 -32268 32667 5187.02 518702 -126 126 -2.1 -210 -302 2 10292 99203 0.9069 297.9069 149.4069 14940.69069 0.9069 297.90692 149.4069 14940.69083 0.90690 297.90690 149.40690 14940.69000 2020-01-01 2020-01-02 2020-01-01 00:05:02 2020-01-02 03:33:23 2020-01-01 00:05:02.000 2020-01-02 03:33:23.000 302 99203 49752.5 4975250 302 99203 49752.5 4975250 -32267 32668 5188.02 518802 -125 127 -1.1 -110 -303 2 10293 99204 0.9099 297.9099 149.4099 14940.99099 0.9099 297.9099 149.40991 14940.99114 0.90990 297.90990 149.40990 14940.99000 2020-01-01 2020-01-02 2020-01-01 00:05:03 2020-01-02 03:33:24 2020-01-01 00:05:03.000 2020-01-02 03:33:24.000 303 99204 49753.5 4975350 303 99204 49753.5 4975350 -32266 32669 5189.02 518902 -128 127 -2.66 -266 -304 2 10294 99205 0.91291 297.91291 149.41291 14941.29129 0.91291 297.9129 149.41291 14941.29133 0.91291 297.91291 149.41291 14941.29100 2020-01-01 2020-01-02 2020-01-01 00:05:04 2020-01-02 03:33:25 2020-01-01 00:05:04.000 2020-01-02 03:33:25.000 304 99205 49754.5 4975450 304 99205 49754.5 4975450 -32265 32670 5190.02 519002 -128 127 -4.22 -422 -305 2 10295 99206 0.91591 297.91591 149.41591 14941.59159 0.91591 297.91592 149.41591 14941.59141 0.91591 297.91591 149.41591 14941.59100 2020-01-01 2020-01-02 2020-01-01 00:05:05 2020-01-02 03:33:26 2020-01-01 00:05:05.000 2020-01-02 03:33:26.000 305 99206 49755.5 4975550 305 99206 49755.5 4975550 -32264 32671 5191.02 519102 -128 123 -5.78 -578 -306 2 10296 99207 0.91891 297.91891 149.41891 14941.89189 0.91891 297.9189 149.41891 14941.89172 0.91891 297.91891 149.41891 14941.89100 2020-01-01 2020-01-02 2020-01-01 00:05:06 2020-01-02 03:33:27 2020-01-01 00:05:06.000 2020-01-02 03:33:27.000 306 99207 49756.5 4975650 306 99207 49756.5 4975650 -32263 32672 5192.02 519202 -127 124 -4.78 -478 -307 2 10297 99208 0.92192 297.92192 149.42192 14942.19219 0.92192 297.92194 149.42192 14942.1923 0.92192 297.92192 149.42192 14942.19200 2020-01-01 2020-01-02 2020-01-01 00:05:07 2020-01-02 03:33:28 2020-01-01 00:05:07.000 2020-01-02 03:33:28.000 307 99208 49757.5 4975750 307 99208 49757.5 4975750 -32262 32673 5193.02 519302 -126 125 -3.78 -378 +276 2 10266 99177 0.82882 297.82882 149.32882 14932.88288 0.82882 297.82883 149.32882 14932.88275 0.82882 297.82882 149.3288200000001 14932.88200 2020-01-01 2020-01-02 2020-01-01 00:04:36 2020-01-02 03:32:57 2020-01-01 00:04:36.000 2020-01-02 03:32:57.000 276 99177 49726.5 4972650 276 99177 49726.5 4972650 -32293 32642 5162.02 516202 -126 126 -1.5 -150 +277 2 10267 99178 0.83183 297.83183 149.33183 14933.18318 0.83183 297.83182 149.33183 14933.18305 0.83183 297.83183 149.33182999999985 14933.18300 2020-01-01 2020-01-02 2020-01-01 00:04:37 2020-01-02 03:32:58 2020-01-01 00:04:37.000 2020-01-02 03:32:58.000 277 99178 49727.5 4972750 277 99178 49727.5 4972750 -32292 32643 5163.02 516302 -125 127 -0.5 -50 +278 2 10268 99179 0.83483 297.83483 149.33483 14933.48348 0.83483 297.83484 149.33483 14933.48364 0.83483 297.83483 149.33482999999984 14933.48300 2020-01-01 2020-01-02 2020-01-01 00:04:38 2020-01-02 03:32:59 2020-01-01 00:04:38.000 2020-01-02 03:32:59.000 278 99179 49728.5 4972850 278 99179 49728.5 4972850 -32291 32644 5164.02 516402 -128 127 -2.06 -206 +279 2 10269 99180 0.83783 297.83783 149.33783 14933.78378 0.83783 297.83783 149.33783 14933.78394 0.83783 297.83783 149.33783000000022 14933.78300 2020-01-01 2020-01-02 2020-01-01 00:04:39 2020-01-02 03:33:00 2020-01-01 00:04:39.000 2020-01-02 03:33:00.000 279 99180 49729.5 4972950 279 99180 49729.5 4972950 -32290 32645 5165.02 516502 -128 127 -3.62 -362 +28 2 10018 99928 0.08408 300.08408 150.08408 15158.49249 0.08408 300.08408 150.08408 15158.49265 0.08408 300.08408 150.08408000000006 15158.49208 2020-01-01 2020-01-02 2020-01-01 00:00:28 2020-01-02 03:45:28 2020-01-01 00:00:28.000 2020-01-02 03:45:28.000 28 99928 49978 5047778 28 99928 49978 5047778 -32541 32394 4557.009900990099 460258 -124 127 -0.297029702970297 -30 +280 2 10270 99181 0.84084 297.84084 149.34084 14934.08408 0.84084 297.84085 149.34084 14934.08403 0.84084 297.84084 149.34084000000007 14934.08400 2020-01-01 2020-01-02 2020-01-01 00:04:40 2020-01-02 03:33:01 2020-01-01 00:04:40.000 2020-01-02 03:33:01.000 280 99181 49730.5 4973050 280 99181 49730.5 4973050 -32289 32646 5166.02 516602 -128 123 -5.18 -518 +281 2 10271 99182 0.84384 297.84384 149.34384 14934.38438 0.84384 297.84384 149.34384 14934.38421 0.84384 297.84384 149.34383999999974 14934.38400 2020-01-01 2020-01-02 2020-01-01 00:04:41 2020-01-02 03:33:02 2020-01-01 00:04:41.000 2020-01-02 03:33:02.000 281 99182 49731.5 4973150 281 99182 49731.5 4973150 -32288 32647 5167.02 516702 -127 124 -4.18 -418 +282 2 10272 99183 0.84684 297.84684 149.34684 14934.68468 0.84684 297.84683 149.34684 14934.68453 0.84684 297.84684 149.3468400000001 14934.68400 2020-01-01 2020-01-02 2020-01-01 00:04:42 2020-01-02 03:33:03 2020-01-01 00:04:42.000 2020-01-02 03:33:03.000 282 99183 49732.5 4973250 282 99183 49732.5 4973250 -32287 32648 5168.02 516802 -126 125 -3.18 -318 +283 2 10273 99184 0.84984 297.84984 149.34984 14934.98498 0.84984 297.84985 149.34985 14934.98526 0.84984 297.84984 149.34984000000014 14934.98400 2020-01-01 2020-01-02 2020-01-01 00:04:43 2020-01-02 03:33:04 2020-01-01 00:04:43.000 2020-01-02 03:33:04.000 283 99184 49733.5 4973350 283 99184 49733.5 4973350 -32286 32649 5169.02 516902 -125 126 -2.18 -218 +284 2 10274 99185 0.85285 297.85285 149.35285 14935.28528 0.85285 297.85284 149.35285 14935.28542 0.85285 297.85285 149.35284999999993 14935.28500 2020-01-01 2020-01-02 2020-01-01 00:04:44 2020-01-02 03:33:05 2020-01-01 00:04:44.000 2020-01-02 03:33:05.000 284 99185 49734.5 4973450 284 99185 49734.5 4973450 -32285 32650 5170.02 517002 -124 127 -1.18 -118 +285 2 10275 99186 0.85585 297.85585 149.35585 14935.58558 0.85585 297.85587 149.35585 14935.5855 0.85585 297.85585 149.35584999999995 14935.58500 2020-01-01 2020-01-02 2020-01-01 00:04:45 2020-01-02 03:33:06 2020-01-01 00:04:45.000 2020-01-02 03:33:06.000 285 99186 49735.5 4973550 285 99186 49735.5 4973550 -32284 32651 5171.02 517102 -128 127 -2.74 -274 +286 2 10276 99187 0.85885 297.85885 149.35885 14935.88588 0.85885 297.85886 149.35885 14935.88568 0.85885 297.85885 149.35885000000005 14935.88500 2020-01-01 2020-01-02 2020-01-01 00:04:46 2020-01-02 03:33:07 2020-01-01 00:04:46.000 2020-01-02 03:33:07.000 286 99187 49736.5 4973650 286 99187 49736.5 4973650 -32283 32652 5172.02 517202 -128 123 -4.3 -430 +287 2 10277 99188 0.86186 297.86186 149.36186 14936.18618 0.86186 297.86185 149.36186 14936.186 0.86186 297.86186 149.3618600000002 14936.18600 2020-01-01 2020-01-02 2020-01-01 00:04:47 2020-01-02 03:33:08 2020-01-01 00:04:47.000 2020-01-02 03:33:08.000 287 99188 49737.5 4973750 287 99188 49737.5 4973750 -32282 32653 5173.02 517302 -127 124 -3.3 -330 +288 2 10278 99189 0.86486 297.86486 149.36486 14936.48648 0.86486 297.86487 149.36486 14936.48673 0.86486 297.86486 149.36485999999985 14936.48600 2020-01-01 2020-01-02 2020-01-01 00:04:48 2020-01-02 03:33:09 2020-01-01 00:04:48.000 2020-01-02 03:33:09.000 288 99189 49738.5 4973850 288 99189 49738.5 4973850 -32281 32654 5174.02 517402 -126 125 -2.3 -230 +289 2 10279 99190 0.86786 297.86786 149.36786 14936.78678 0.86786 297.86786 149.36786 14936.78688 0.86786 297.86786 149.36786000000015 14936.78600 2020-01-01 2020-01-02 2020-01-01 00:04:49 2020-01-02 03:33:10 2020-01-01 00:04:49.000 2020-01-02 03:33:10.000 289 99190 49739.5 4973950 289 99190 49739.5 4973950 -32280 32655 5175.02 517502 -125 126 -1.3 -130 +29 2 10019 99929 0.08708 300.08708 150.08708 15158.79579 0.08708 300.0871 150.08708 15158.79576 0.08708 300.08708 150.0870799999999 15158.79508 2020-01-01 2020-01-02 2020-01-01 00:00:29 2020-01-02 03:45:29 2020-01-01 00:00:29.000 2020-01-02 03:45:29.000 29 99929 49979 5047879 29 99929 49979 5047879 -32540 32395 4558.009900990099 460359 -128 127 -1.8316831683168318 -185 +290 2 10280 99191 0.87087 297.87087 149.37087 14937.08708 0.87087 297.87088 149.37087 14937.087 0.87087 297.87087 149.37087000000008 14937.08700 2020-01-01 2020-01-02 2020-01-01 00:04:50 2020-01-02 03:33:11 2020-01-01 00:04:50.000 2020-01-02 03:33:11.000 290 99191 49740.5 4974050 290 99191 49740.5 4974050 -32279 32656 5176.02 517602 -124 127 -0.3 -30 +291 2 10281 99192 0.87387 297.87387 149.37387 14937.38738 0.87387 297.87387 149.37387 14937.38716 0.87387 297.87387 149.37386999999993 14937.38700 2020-01-01 2020-01-02 2020-01-01 00:04:51 2020-01-02 03:33:12 2020-01-01 00:04:51.000 2020-01-02 03:33:12.000 291 99192 49741.5 4974150 291 99192 49741.5 4974150 -32278 32657 5177.02 517702 -128 127 -1.86 -186 +292 2 10282 99193 0.87687 297.87687 149.37687 14937.68768 0.87687 297.8769 149.37687 14937.68789 0.87687 297.87687 149.37687000000003 14937.68700 2020-01-01 2020-01-02 2020-01-01 00:04:52 2020-01-02 03:33:13 2020-01-01 00:04:52.000 2020-01-02 03:33:13.000 292 99193 49742.5 4974250 292 99193 49742.5 4974250 -32277 32658 5178.02 517802 -128 123 -3.42 -342 +293 2 10283 99194 0.87987 297.87987 149.37987 14937.98798 0.87987 297.87988 149.37988 14937.9882 0.87987 297.87987 149.3798700000001 14937.98700 2020-01-01 2020-01-02 2020-01-01 00:04:53 2020-01-02 03:33:14 2020-01-01 00:04:53.000 2020-01-02 03:33:14.000 293 99194 49743.5 4974350 293 99194 49743.5 4974350 -32276 32659 5179.02 517902 -127 124 -2.42 -242 +294 2 10284 99195 0.88288 297.88288 149.38288 14938.28828 0.88288 297.88287 149.38288 14938.28835 0.88288 297.88288 149.38287999999986 14938.28800 2020-01-01 2020-01-02 2020-01-01 00:04:54 2020-01-02 03:33:15 2020-01-01 00:04:54.000 2020-01-02 03:33:15.000 294 99195 49744.5 4974450 294 99195 49744.5 4974450 -32275 32660 5180.02 518002 -126 125 -1.42 -142 +295 2 10285 99196 0.88588 297.88588 149.38588 14938.58858 0.88588 297.8859 149.38588 14938.58847 0.88588 297.88588 149.38587999999987 14938.58800 2020-01-01 2020-01-02 2020-01-01 00:04:55 2020-01-02 03:33:16 2020-01-01 00:04:55.000 2020-01-02 03:33:16.000 295 99196 49745.5 4974550 295 99196 49745.5 4974550 -32274 32661 5181.02 518102 -125 126 -0.42 -42 +296 2 10286 99197 0.88888 297.88888 149.38888 14938.88888 0.88888 297.8889 149.38888 14938.88863 0.88888 297.88888 149.38888000000023 14938.88800 2020-01-01 2020-01-02 2020-01-01 00:04:56 2020-01-02 03:33:17 2020-01-01 00:04:56.000 2020-01-02 03:33:17.000 296 99197 49746.5 4974650 296 99197 49746.5 4974650 -32273 32662 5182.02 518202 -124 127 0.58 58 +297 2 10287 99198 0.89189 297.89189 149.39189 14939.18918 0.89189 297.8919 149.39189 14939.18936 0.89189 297.89189 149.3918900000001 14939.18900 2020-01-01 2020-01-02 2020-01-01 00:04:57 2020-01-02 03:33:18 2020-01-01 00:04:57.000 2020-01-02 03:33:18.000 297 99198 49747.5 4974750 297 99198 49747.5 4974750 -32272 32663 5183.02 518302 -128 127 -0.98 -98 +298 2 10288 99199 0.89489 297.89489 149.39489 14939.48948 0.89489 297.8949 149.39489 14939.48967 0.89489 297.89489 149.39488999999975 14939.48900 2020-01-01 2020-01-02 2020-01-01 00:04:58 2020-01-02 03:33:19 2020-01-01 00:04:58.000 2020-01-02 03:33:19.000 298 99199 49748.5 4974850 298 99199 49748.5 4974850 -32271 32664 5184.02 518402 -128 127 -2.54 -254 +299 2 10289 99200 0.89789 297.89789 149.39789 14939.78978 0.89789 297.8979 149.39789 14939.78986 0.89789 297.89789 149.39789000000013 14939.78900 2020-01-01 2020-01-02 2020-01-01 00:04:59 2020-01-02 03:33:20 2020-01-01 00:04:59.000 2020-01-02 03:33:20.000 299 99200 49749.5 4974950 299 99200 49749.5 4974950 -32270 32665 5185.02 518502 -128 124 -4.1 -410 +3 2 1002 9993 0.009 300.009 150.009 15150.9099 0.009 300.009 150.009 15150.90958 0.00900 300.00900 150.009 15150.90900 2020-01-01 2020-01-02 2020-01-01 00:00:03 2020-01-02 03:45:03 2020-01-01 00:00:03.000 2020-01-02 03:45:03.000 3 99903 49953 5045253 3 99903 49953 5045253 -32566 32369 4532.009900990099 457733 -124 127 0.04950495049504951 5 +30 2 10020 99930 0.09009 300.09009 150.09009 15159.09909 0.09009 300.0901 150.09008 15159.09894 0.09009 300.09009 150.09008999999986 15159.09909 2020-01-01 2020-01-02 2020-01-01 00:00:30 2020-01-02 03:45:30 2020-01-01 00:00:30.000 2020-01-02 03:45:30.000 30 99930 49980 5047980 30 99930 49980 5047980 -32539 32396 4559.009900990099 460460 -128 123 -3.366336633663366 -340 +300 2 10290 99201 0.9009 297.9009 149.4009 14940.09009 0.9009 297.9009 149.40089 14940.08995 0.90090 297.90090 149.40090000000004 14940.09000 2020-01-01 2020-01-02 2020-01-01 00:05:00 2020-01-02 03:33:21 2020-01-01 00:05:00.000 2020-01-02 03:33:21.000 300 99201 49750.5 4975050 300 99201 49750.5 4975050 -32269 32666 5186.02 518602 -127 125 -3.1 -310 +301 2 10291 99202 0.9039 297.9039 149.4039 14940.39039 0.9039 297.9039 149.4039 14940.39009 0.90390 297.90390 149.4038999999999 14940.39000 2020-01-01 2020-01-02 2020-01-01 00:05:01 2020-01-02 03:33:22 2020-01-01 00:05:01.000 2020-01-02 03:33:22.000 301 99202 49751.5 4975150 301 99202 49751.5 4975150 -32268 32667 5187.02 518702 -126 126 -2.1 -210 +302 2 10292 99203 0.9069 297.9069 149.4069 14940.69069 0.9069 297.90692 149.4069 14940.69083 0.90690 297.90690 149.40689999999998 14940.69000 2020-01-01 2020-01-02 2020-01-01 00:05:02 2020-01-02 03:33:23 2020-01-01 00:05:02.000 2020-01-02 03:33:23.000 302 99203 49752.5 4975250 302 99203 49752.5 4975250 -32267 32668 5188.02 518802 -125 127 -1.1 -110 +303 2 10293 99204 0.9099 297.9099 149.4099 14940.99099 0.9099 297.9099 149.40991 14940.99114 0.90990 297.90990 149.40990000000005 14940.99000 2020-01-01 2020-01-02 2020-01-01 00:05:03 2020-01-02 03:33:24 2020-01-01 00:05:03.000 2020-01-02 03:33:24.000 303 99204 49753.5 4975350 303 99204 49753.5 4975350 -32266 32669 5189.02 518902 -128 127 -2.66 -266 +304 2 10294 99205 0.91291 297.91291 149.41291 14941.29129 0.91291 297.9129 149.41291 14941.29133 0.91291 297.91291 149.41290999999978 14941.29100 2020-01-01 2020-01-02 2020-01-01 00:05:04 2020-01-02 03:33:25 2020-01-01 00:05:04.000 2020-01-02 03:33:25.000 304 99205 49754.5 4975450 304 99205 49754.5 4975450 -32265 32670 5190.02 519002 -128 127 -4.22 -422 +305 2 10295 99206 0.91591 297.91591 149.41591 14941.59159 0.91591 297.91592 149.41591 14941.59141 0.91591 297.91591 149.41590999999985 14941.59100 2020-01-01 2020-01-02 2020-01-01 00:05:05 2020-01-02 03:33:26 2020-01-01 00:05:05.000 2020-01-02 03:33:26.000 305 99206 49755.5 4975550 305 99206 49755.5 4975550 -32264 32671 5191.02 519102 -128 123 -5.78 -578 +306 2 10296 99207 0.91891 297.91891 149.41891 14941.89189 0.91891 297.9189 149.41891 14941.89172 0.91891 297.91891 149.41891000000015 14941.89100 2020-01-01 2020-01-02 2020-01-01 00:05:06 2020-01-02 03:33:27 2020-01-01 00:05:06.000 2020-01-02 03:33:27.000 306 99207 49756.5 4975650 306 99207 49756.5 4975650 -32263 32672 5192.02 519202 -127 124 -4.78 -478 +307 2 10297 99208 0.92192 297.92192 149.42192 14942.19219 0.92192 297.92194 149.42192 14942.1923 0.92192 297.92192 149.42192000000003 14942.19200 2020-01-01 2020-01-02 2020-01-01 00:05:07 2020-01-02 03:33:28 2020-01-01 00:05:07.000 2020-01-02 03:33:28.000 307 99208 49757.5 4975750 307 99208 49757.5 4975750 -32262 32673 5193.02 519302 -126 125 -3.78 -378 308 2 10298 99209 0.92492 297.92492 149.42492 14942.49249 0.92492 297.92493 149.42492 14942.49265 0.92492 297.92492 149.42492 14942.49200 2020-01-01 2020-01-02 2020-01-01 00:05:08 2020-01-02 03:33:29 2020-01-01 00:05:08.000 2020-01-02 03:33:29.000 308 99209 49758.5 4975850 308 99209 49758.5 4975850 -32261 32674 5194.02 519402 -125 126 -2.78 -278 -309 2 10299 99210 0.92792 297.92792 149.42792 14942.79279 0.92792 297.92792 149.42792 14942.7928 0.92792 297.92792 149.42792 14942.79200 2020-01-01 2020-01-02 2020-01-01 00:05:09 2020-01-02 03:33:30 2020-01-01 00:05:09.000 2020-01-02 03:33:30.000 309 99210 49759.5 4975950 309 99210 49759.5 4975950 -32260 32675 5195.02 519502 -124 127 -1.78 -178 -31 2 10021 99931 0.09309 300.09309 150.09309 15159.4024 0.09309 300.09308 150.09309 15159.40224 0.09309 300.09309 150.09309 15159.40209 2020-01-01 2020-01-02 2020-01-01 00:00:31 2020-01-02 03:45:31 2020-01-01 00:00:31.000 2020-01-02 03:45:31.000 31 99931 49981 5048081 31 99931 49981 5048081 -32538 32397 4560.009900990099 460561 -127 124 -2.366336633663366 -239 -310 2 10300 99211 0.93093 297.93093 149.43093 14943.09309 0.93093 297.93094 149.43092 14943.09288 0.93093 297.93093 149.43093 14943.09300 2020-01-01 2020-01-02 2020-01-01 00:05:10 2020-01-02 03:33:31 2020-01-01 00:05:10.000 2020-01-02 03:33:31.000 310 99211 49760.5 4976050 310 99211 49760.5 4976050 -32259 32676 5196.02 519602 -128 127 -3.34 -334 -311 2 10301 99212 0.93393 297.93393 149.43393 14943.39339 0.93393 297.93393 149.43393 14943.39319 0.93393 297.93393 149.43393 14943.39300 2020-01-01 2020-01-02 2020-01-01 00:05:11 2020-01-02 03:33:32 2020-01-01 00:05:11.000 2020-01-02 03:33:32.000 311 99212 49761.5 4976150 311 99212 49761.5 4976150 -32258 32677 5197.02 519702 -128 123 -4.9 -490 -312 2 10302 99213 0.93693 297.93693 149.43693 14943.69369 0.93693 297.93695 149.43693 14943.69377 0.93693 297.93693 149.43693 14943.69300 2020-01-01 2020-01-02 2020-01-01 00:05:12 2020-01-02 03:33:33 2020-01-01 00:05:12.000 2020-01-02 03:33:33.000 312 99213 49762.5 4976250 312 99213 49762.5 4976250 -32257 32678 5198.02 519802 -127 124 -3.9 -390 -313 2 10303 99214 0.93993 297.93993 149.43993 14943.99399 0.93993 297.93994 149.43994 14943.99412 0.93993 297.93993 149.43993 14943.99300 2020-01-01 2020-01-02 2020-01-01 00:05:13 2020-01-02 03:33:34 2020-01-01 00:05:13.000 2020-01-02 03:33:34.000 313 99214 49763.5 4976350 313 99214 49763.5 4976350 -32256 32679 5199.02 519902 -126 125 -2.9 -290 -314 2 10304 99215 0.94294 297.94294 149.44294 14944.29429 0.94294 297.94293 149.44294 14944.29427 0.94294 297.94294 149.44294 14944.29400 2020-01-01 2020-01-02 2020-01-01 00:05:14 2020-01-02 03:33:35 2020-01-01 00:05:14.000 2020-01-02 03:33:35.000 314 99215 49764.5 4976450 314 99215 49764.5 4976450 -32255 32680 5200.02 520002 -125 126 -1.9 -190 -315 2 10305 99216 0.94594 297.94594 149.44594 14944.59459 0.94594 297.94595 149.44595 14944.595 0.94594 297.94594 149.44594 14944.59400 2020-01-01 2020-01-02 2020-01-01 00:05:15 2020-01-02 03:33:36 2020-01-01 00:05:15.000 2020-01-02 03:33:36.000 315 99216 49765.5 4976550 315 99216 49765.5 4976550 -32254 32681 5201.02 520102 -124 127 -0.9 -90 -316 2 10306 99217 0.94894 297.94894 149.44894 14944.89489 0.94894 297.94894 149.44894 14944.89466 0.94894 297.94894 149.44894 14944.89400 2020-01-01 2020-01-02 2020-01-01 00:05:16 2020-01-02 03:33:37 2020-01-01 00:05:16.000 2020-01-02 03:33:37.000 316 99217 49766.5 4976650 316 99217 49766.5 4976650 -32253 32682 5202.02 520202 -128 127 -2.46 -246 -317 2 10307 99218 0.95195 297.95195 149.45195 14945.19519 0.95195 297.95197 149.45195 14945.19524 0.95195 297.95195 149.45195 14945.19500 2020-01-01 2020-01-02 2020-01-01 00:05:17 2020-01-02 03:33:38 2020-01-01 00:05:17.000 2020-01-02 03:33:38.000 317 99218 49767.5 4976750 317 99218 49767.5 4976750 -32252 32683 5203.02 520302 -128 123 -4.02 -402 -318 2 10308 99219 0.95495 297.95495 149.45495 14945.49549 0.95495 297.95496 149.45495 14945.49558 0.95495 297.95495 149.45495 14945.49500 2020-01-01 2020-01-02 2020-01-01 00:05:18 2020-01-02 03:33:39 2020-01-01 00:05:18.000 2020-01-02 03:33:39.000 318 99219 49768.5 4976850 318 99219 49768.5 4976850 -32251 32684 5204.02 520402 -127 124 -3.02 -302 +309 2 10299 99210 0.92792 297.92792 149.42792 14942.79279 0.92792 297.92792 149.42792 14942.7928 0.92792 297.92792 149.42792000000006 14942.79200 2020-01-01 2020-01-02 2020-01-01 00:05:09 2020-01-02 03:33:30 2020-01-01 00:05:09.000 2020-01-02 03:33:30.000 309 99210 49759.5 4975950 309 99210 49759.5 4975950 -32260 32675 5195.02 519502 -124 127 -1.78 -178 +31 2 10021 99931 0.09309 300.09309 150.09309 15159.4024 0.09309 300.09308 150.09309 15159.40224 0.09309 300.09309 150.09309000000013 15159.40209 2020-01-01 2020-01-02 2020-01-01 00:00:31 2020-01-02 03:45:31 2020-01-01 00:00:31.000 2020-01-02 03:45:31.000 31 99931 49981 5048081 31 99931 49981 5048081 -32538 32397 4560.009900990099 460561 -127 124 -2.366336633663366 -239 +310 2 10300 99211 0.93093 297.93093 149.43093 14943.09309 0.93093 297.93094 149.43092 14943.09288 0.93093 297.93093 149.43093000000025 14943.09300 2020-01-01 2020-01-02 2020-01-01 00:05:10 2020-01-02 03:33:31 2020-01-01 00:05:10.000 2020-01-02 03:33:31.000 310 99211 49760.5 4976050 310 99211 49760.5 4976050 -32259 32676 5196.02 519602 -128 127 -3.34 -334 +311 2 10301 99212 0.93393 297.93393 149.43393 14943.39339 0.93393 297.93393 149.43393 14943.39319 0.93393 297.93393 149.43392999999992 14943.39300 2020-01-01 2020-01-02 2020-01-01 00:05:11 2020-01-02 03:33:32 2020-01-01 00:05:11.000 2020-01-02 03:33:32.000 311 99212 49761.5 4976150 311 99212 49761.5 4976150 -32258 32677 5197.02 519702 -128 123 -4.9 -490 +312 2 10302 99213 0.93693 297.93693 149.43693 14943.69369 0.93693 297.93695 149.43693 14943.69377 0.93693 297.93693 149.4369299999999 14943.69300 2020-01-01 2020-01-02 2020-01-01 00:05:12 2020-01-02 03:33:33 2020-01-01 00:05:12.000 2020-01-02 03:33:33.000 312 99213 49762.5 4976250 312 99213 49762.5 4976250 -32257 32678 5198.02 519802 -127 124 -3.9 -390 +313 2 10303 99214 0.93993 297.93993 149.43993 14943.99399 0.93993 297.93994 149.43994 14943.99412 0.93993 297.93993 149.43993000000012 14943.99300 2020-01-01 2020-01-02 2020-01-01 00:05:13 2020-01-02 03:33:34 2020-01-01 00:05:13.000 2020-01-02 03:33:34.000 313 99214 49763.5 4976350 313 99214 49763.5 4976350 -32256 32679 5199.02 519902 -126 125 -2.9 -290 +314 2 10304 99215 0.94294 297.94294 149.44294 14944.29429 0.94294 297.94293 149.44294 14944.29427 0.94294 297.94294 149.44294000000014 14944.29400 2020-01-01 2020-01-02 2020-01-01 00:05:14 2020-01-02 03:33:35 2020-01-01 00:05:14.000 2020-01-02 03:33:35.000 314 99215 49764.5 4976450 314 99215 49764.5 4976450 -32255 32680 5200.02 520002 -125 126 -1.9 -190 +315 2 10305 99216 0.94594 297.94594 149.44594 14944.59459 0.94594 297.94595 149.44595 14944.595 0.94594 297.94594 149.4459399999998 14944.59400 2020-01-01 2020-01-02 2020-01-01 00:05:15 2020-01-02 03:33:36 2020-01-01 00:05:15.000 2020-01-02 03:33:36.000 315 99216 49765.5 4976550 315 99216 49765.5 4976550 -32254 32681 5201.02 520102 -124 127 -0.9 -90 +316 2 10306 99217 0.94894 297.94894 149.44894 14944.89489 0.94894 297.94894 149.44894 14944.89466 0.94894 297.94894 149.44894000000016 14944.89400 2020-01-01 2020-01-02 2020-01-01 00:05:16 2020-01-02 03:33:37 2020-01-01 00:05:16.000 2020-01-02 03:33:37.000 316 99217 49766.5 4976650 316 99217 49766.5 4976650 -32253 32682 5202.02 520202 -128 127 -2.46 -246 +317 2 10307 99218 0.95195 297.95195 149.45195 14945.19519 0.95195 297.95197 149.45195 14945.19524 0.95195 297.95195 149.45195000000004 14945.19500 2020-01-01 2020-01-02 2020-01-01 00:05:17 2020-01-02 03:33:38 2020-01-01 00:05:17.000 2020-01-02 03:33:38.000 317 99218 49767.5 4976750 317 99218 49767.5 4976750 -32252 32683 5203.02 520302 -128 123 -4.02 -402 +318 2 10308 99219 0.95495 297.95495 149.45495 14945.49549 0.95495 297.95496 149.45495 14945.49558 0.95495 297.95495 149.4549499999999 14945.49500 2020-01-01 2020-01-02 2020-01-01 00:05:18 2020-01-02 03:33:39 2020-01-01 00:05:18.000 2020-01-02 03:33:39.000 318 99219 49768.5 4976850 318 99219 49768.5 4976850 -32251 32684 5204.02 520402 -127 124 -3.02 -302 319 2 10309 99220 0.95795 297.95795 149.45795 14945.79579 0.95795 297.95795 149.45795 14945.79574 0.95795 297.95795 149.45795 14945.79500 2020-01-01 2020-01-02 2020-01-01 00:05:19 2020-01-02 03:33:40 2020-01-01 00:05:19.000 2020-01-02 03:33:40.000 319 99220 49769.5 4976950 319 99220 49769.5 4976950 -32250 32685 5205.02 520502 -126 125 -2.02 -202 -32 2 10022 99932 0.09609 300.09609 150.09609 15159.7057 0.09609 300.0961 150.09609 15159.706 0.09609 300.09609 150.09609 15159.70509 2020-01-01 2020-01-02 2020-01-01 00:00:32 2020-01-02 03:45:32 2020-01-01 00:00:32.000 2020-01-02 03:45:32.000 32 99932 49982 5048182 32 99932 49982 5048182 -32537 32398 4561.009900990099 460662 -126 125 -1.3663366336633664 -138 -320 2 10310 99221 0.96096 297.96096 149.46096 14946.09609 0.96096 297.96097 149.46096 14946.09647 0.96096 297.96096 149.46096 14946.09600 2020-01-01 2020-01-02 2020-01-01 00:05:20 2020-01-02 03:33:41 2020-01-01 00:05:20.000 2020-01-02 03:33:41.000 320 99221 49770.5 4977050 320 99221 49770.5 4977050 -32249 32686 5206.02 520602 -125 126 -1.02 -102 -321 2 10311 99222 0.96396 297.96396 149.46396 14946.39639 0.96396 297.96396 149.46396 14946.39613 0.96396 297.96396 149.46396 14946.39600 2020-01-01 2020-01-02 2020-01-01 00:05:21 2020-01-02 03:33:42 2020-01-01 00:05:21.000 2020-01-02 03:33:42.000 321 99222 49771.5 4977150 321 99222 49771.5 4977150 -32248 32687 5207.02 520702 -124 127 -0.02 -2 -322 2 10312 99223 0.96696 297.96696 149.46696 14946.69669 0.96696 297.96698 149.46696 14946.69674 0.96696 297.96696 149.46696 14946.69600 2020-01-01 2020-01-02 2020-01-01 00:05:22 2020-01-02 03:33:43 2020-01-01 00:05:22.000 2020-01-02 03:33:43.000 322 99223 49772.5 4977250 322 99223 49772.5 4977250 -32247 32688 5208.02 520802 -128 127 -1.58 -158 -323 2 10313 99224 0.96996 297.96996 149.46996 14946.99699 0.96997 297.96997 149.46997 14946.99706 0.96996 297.96996 149.46996 14946.99600 2020-01-01 2020-01-02 2020-01-01 00:05:23 2020-01-02 03:33:44 2020-01-01 00:05:23.000 2020-01-02 03:33:44.000 323 99224 49773.5 4977350 323 99224 49773.5 4977350 -32246 32689 5209.02 520902 -128 123 -3.14 -314 -324 2 10314 99225 0.97297 297.97297 149.47297 14947.29729 0.97297 297.97296 149.47297 14947.29737 0.97297 297.97297 149.47297 14947.29700 2020-01-01 2020-01-02 2020-01-01 00:05:24 2020-01-02 03:33:45 2020-01-01 00:05:24.000 2020-01-02 03:33:45.000 324 99225 49774.5 4977450 324 99225 49774.5 4977450 -32245 32690 5210.02 521002 -127 124 -2.14 -214 +32 2 10022 99932 0.09609 300.09609 150.09609 15159.7057 0.09609 300.0961 150.09609 15159.706 0.09609 300.09609 150.0960899999998 15159.70509 2020-01-01 2020-01-02 2020-01-01 00:00:32 2020-01-02 03:45:32 2020-01-01 00:00:32.000 2020-01-02 03:45:32.000 32 99932 49982 5048182 32 99932 49982 5048182 -32537 32398 4561.009900990099 460662 -126 125 -1.3663366336633664 -138 +320 2 10310 99221 0.96096 297.96096 149.46096 14946.09609 0.96096 297.96097 149.46096 14946.09647 0.96096 297.96096 149.46096000000014 14946.09600 2020-01-01 2020-01-02 2020-01-01 00:05:20 2020-01-02 03:33:41 2020-01-01 00:05:20.000 2020-01-02 03:33:41.000 320 99221 49770.5 4977050 320 99221 49770.5 4977050 -32249 32686 5206.02 520602 -125 126 -1.02 -102 +321 2 10311 99222 0.96396 297.96396 149.46396 14946.39639 0.96396 297.96396 149.46396 14946.39613 0.96396 297.96396 149.4639599999998 14946.39600 2020-01-01 2020-01-02 2020-01-01 00:05:21 2020-01-02 03:33:42 2020-01-01 00:05:21.000 2020-01-02 03:33:42.000 321 99222 49771.5 4977150 321 99222 49771.5 4977150 -32248 32687 5207.02 520702 -124 127 -0.02 -2 +322 2 10312 99223 0.96696 297.96696 149.46696 14946.69669 0.96696 297.96698 149.46696 14946.69674 0.96696 297.96696 149.4669599999999 14946.69600 2020-01-01 2020-01-02 2020-01-01 00:05:22 2020-01-02 03:33:43 2020-01-01 00:05:22.000 2020-01-02 03:33:43.000 322 99223 49772.5 4977250 322 99223 49772.5 4977250 -32247 32688 5208.02 520802 -128 127 -1.58 -158 +323 2 10313 99224 0.96996 297.96996 149.46996 14946.99699 0.96997 297.96997 149.46997 14946.99706 0.96996 297.96996 149.46996000000013 14946.99600 2020-01-01 2020-01-02 2020-01-01 00:05:23 2020-01-02 03:33:44 2020-01-01 00:05:23.000 2020-01-02 03:33:44.000 323 99224 49773.5 4977350 323 99224 49773.5 4977350 -32246 32689 5209.02 520902 -128 123 -3.14 -314 +324 2 10314 99225 0.97297 297.97297 149.47297 14947.29729 0.97297 297.97296 149.47297 14947.29737 0.97297 297.97297 149.4729700000001 14947.29700 2020-01-01 2020-01-02 2020-01-01 00:05:24 2020-01-02 03:33:45 2020-01-01 00:05:24.000 2020-01-02 03:33:45.000 324 99225 49774.5 4977450 324 99225 49774.5 4977450 -32245 32690 5210.02 521002 -127 124 -2.14 -214 325 2 10315 99226 0.97597 297.97597 149.47597 14947.59759 0.97597 297.97598 149.47597 14947.59794 0.97597 297.97597 149.47597 14947.59700 2020-01-01 2020-01-02 2020-01-01 00:05:25 2020-01-02 03:33:46 2020-01-01 00:05:25.000 2020-01-02 03:33:46.000 325 99226 49775.5 4977550 325 99226 49775.5 4977550 -32244 32691 5211.02 521102 -126 125 -1.14 -114 -326 2 10316 99227 0.97897 297.97897 149.47897 14947.89789 0.97897 297.97897 149.47897 14947.8976 0.97897 297.97897 149.47897 14947.89700 2020-01-01 2020-01-02 2020-01-01 00:05:26 2020-01-02 03:33:47 2020-01-01 00:05:26.000 2020-01-02 03:33:47.000 326 99227 49776.5 4977650 326 99227 49776.5 4977650 -32243 32692 5212.02 521202 -125 126 -0.14 -14 +326 2 10316 99227 0.97897 297.97897 149.47897 14947.89789 0.97897 297.97897 149.47897 14947.8976 0.97897 297.97897 149.4789700000001 14947.89700 2020-01-01 2020-01-02 2020-01-01 00:05:26 2020-01-02 03:33:47 2020-01-01 00:05:26.000 2020-01-02 03:33:47.000 326 99227 49776.5 4977650 326 99227 49776.5 4977650 -32243 32692 5212.02 521202 -125 126 -0.14 -14 327 2 10317 99228 0.98198 297.98198 149.48198 14948.19819 0.98198 297.982 149.48198 14948.19821 0.98198 297.98198 149.48198 14948.19800 2020-01-01 2020-01-02 2020-01-01 00:05:27 2020-01-02 03:33:48 2020-01-01 00:05:27.000 2020-01-02 03:33:48.000 327 99228 49777.5 4977750 327 99228 49777.5 4977750 -32242 32693 5213.02 521302 -124 127 0.86 86 -328 2 10318 99229 0.98498 297.98498 149.48498 14948.49849 0.98498 297.985 149.48498 14948.49853 0.98498 297.98498 149.48498 14948.49800 2020-01-01 2020-01-02 2020-01-01 00:05:28 2020-01-02 03:33:49 2020-01-01 00:05:28.000 2020-01-02 03:33:49.000 328 99229 49778.5 4977850 328 99229 49778.5 4977850 -32241 32694 5214.02 521402 -128 127 -0.7 -70 -329 2 10319 99230 0.98798 297.98798 149.48798 14948.79879 0.98798 297.98798 149.48798 14948.79883 0.98798 297.98798 149.48798 14948.79800 2020-01-01 2020-01-02 2020-01-01 00:05:29 2020-01-02 03:33:50 2020-01-01 00:05:29.000 2020-01-02 03:33:50.000 329 99230 49779.5 4977950 329 99230 49779.5 4977950 -32240 32695 5215.02 521502 -128 127 -2.26 -226 -33 2 10023 99933 0.09909 300.09909 150.09909 15160.009 0.09909 300.0991 150.0991 15160.00913 0.09909 300.09909 150.09909 15160.00809 2020-01-01 2020-01-02 2020-01-01 00:00:33 2020-01-02 03:45:33 2020-01-01 00:00:33.000 2020-01-02 03:45:33.000 33 99933 49983 5048283 33 99933 49983 5048283 -32536 32399 4562.009900990099 460763 -125 126 -0.36633663366336633 -37 -330 2 10320 99231 0.99099 297.99099 149.49099 14949.09909 0.99099 297.991 149.49099 14949.09941 0.99099 297.99099 149.49099 14949.09900 2020-01-01 2020-01-02 2020-01-01 00:05:30 2020-01-02 03:33:51 2020-01-01 00:05:30.000 2020-01-02 03:33:51.000 330 99231 49780.5 4978050 330 99231 49780.5 4978050 -32239 32696 5216.02 521602 -128 123 -3.82 -382 -331 2 10321 99232 0.99399 297.99399 149.49399 14949.39939 0.99399 297.994 149.49399 14949.39911 0.99399 297.99399 149.49399 14949.39900 2020-01-01 2020-01-02 2020-01-01 00:05:31 2020-01-02 03:33:52 2020-01-01 00:05:31.000 2020-01-02 03:33:52.000 331 99232 49781.5 4978150 331 99232 49781.5 4978150 -32238 32697 5217.02 521702 -127 124 -2.82 -282 -332 2 10322 99233 0.99699 297.99699 149.49699 14949.69969 0.99699 297.997 149.49699 14949.69969 0.99699 297.99699 149.49699 14949.69900 2020-01-01 2020-01-02 2020-01-01 00:05:32 2020-01-02 03:33:53 2020-01-01 00:05:32.000 2020-01-02 03:33:53.000 332 99233 49782.5 4978250 332 99233 49782.5 4978250 -32237 32698 5218.02 521802 -126 125 -1.82 -182 -333 2 10323 99234 1 298 149.5 14950 1 298 149.5 14950 1.00000 298.00000 149.50000 14950.00000 2020-01-01 2020-01-02 2020-01-01 00:05:33 2020-01-02 03:33:54 2020-01-01 00:05:33.000 2020-01-02 03:33:54.000 333 99234 49783.5 4978350 333 99234 49783.5 4978350 -32236 32699 5219.02 521902 -125 126 -0.82 -82 -334 2 10324 99235 1.003 298.003 149.503 14950.3003 1.003 298.003 149.503 14950.30029 1.00300 298.00300 149.50300 14950.30000 2020-01-01 2020-01-02 2020-01-01 00:05:34 2020-01-02 03:33:55 2020-01-01 00:05:34.000 2020-01-02 03:33:55.000 334 99235 49784.5 4978450 334 99235 49784.5 4978450 -32235 32700 5220.02 522002 -124 127 0.18 18 -335 2 10325 99236 1.006 298.006 149.506 14950.6006 1.006 298.006 149.506 14950.60088 1.00600 298.00600 149.50600 14950.60000 2020-01-01 2020-01-02 2020-01-01 00:05:35 2020-01-02 03:33:56 2020-01-01 00:05:35.000 2020-01-02 03:33:56.000 335 99236 49785.5 4978550 335 99236 49785.5 4978550 -32234 32701 5221.02 522102 -128 127 -1.38 -138 -336 2 10326 99237 1.009 298.009 149.509 14950.9009 1.009 298.009 149.509 14950.90057 1.00900 298.00900 149.50900 14950.90000 2020-01-01 2020-01-02 2020-01-01 00:05:36 2020-01-02 03:33:57 2020-01-01 00:05:36.000 2020-01-02 03:33:57.000 336 99237 49786.5 4978650 336 99237 49786.5 4978650 -32233 32702 5222.02 522202 -128 123 -2.94 -294 -337 2 10327 99238 1.01201 298.01201 149.51201 14951.2012 1.01201 298.01202 149.51201 14951.20117 1.01201 298.01201 149.51201 14951.20100 2020-01-01 2020-01-02 2020-01-01 00:05:37 2020-01-02 03:33:58 2020-01-01 00:05:37.000 2020-01-02 03:33:58.000 337 99238 49787.5 4978750 337 99238 49787.5 4978750 -32232 32703 5223.02 522302 -127 124 -1.94 -194 -338 2 10328 99239 1.01501 298.01501 149.51501 14951.5015 1.01501 298.015 149.51501 14951.50146 1.01501 298.01501 149.51501 14951.50100 2020-01-01 2020-01-02 2020-01-01 00:05:38 2020-01-02 03:33:59 2020-01-01 00:05:38.000 2020-01-02 03:33:59.000 338 99239 49788.5 4978850 338 99239 49788.5 4978850 -32231 32704 5224.02 522402 -126 125 -0.94 -94 -339 2 10329 99240 1.01801 298.01801 149.51801 14951.8018 1.01801 298.018 149.51801 14951.80177 1.01801 298.01801 149.51801 14951.80100 2020-01-01 2020-01-02 2020-01-01 00:05:39 2020-01-02 03:34:00 2020-01-01 00:05:39.000 2020-01-02 03:34:00.000 339 99240 49789.5 4978950 339 99240 49789.5 4978950 -32230 32705 5225.02 522502 -125 126 0.06 6 -34 2 10024 99934 0.1021 300.1021 150.1021 15160.31231 0.1021 300.1021 150.1021 15160.31224 0.10210 300.10210 150.10210 15160.31210 2020-01-01 2020-01-02 2020-01-01 00:00:34 2020-01-02 03:45:34 2020-01-01 00:00:34.000 2020-01-02 03:45:34.000 34 99934 49984 5048384 34 99934 49984 5048384 -32535 32400 4563.009900990099 460864 -124 127 0.6336633663366337 64 -340 2 10330 99241 1.02102 298.02102 149.52102 14952.1021 1.02102 298.02103 149.52102 14952.10239 1.02102 298.02102 149.52102 14952.10200 2020-01-01 2020-01-02 2020-01-01 00:05:40 2020-01-02 03:34:01 2020-01-01 00:05:40.000 2020-01-02 03:34:01.000 340 99241 49790.5 4979050 340 99241 49790.5 4979050 -32229 32706 5226.02 522602 -124 127 1.06 106 -341 2 10331 99242 1.02402 298.02402 149.52402 14952.4024 1.02402 298.02402 149.52402 14952.40205 1.02402 298.02402 149.52402 14952.40200 2020-01-01 2020-01-02 2020-01-01 00:05:41 2020-01-02 03:34:02 2020-01-01 00:05:41.000 2020-01-02 03:34:02.000 341 99242 49791.5 4979150 341 99242 49791.5 4979150 -32228 32707 5227.02 522702 -128 127 -0.5 -50 -342 2 10332 99243 1.02702 298.02702 149.52702 14952.7027 1.02702 298.02704 149.52702 14952.70264 1.02702 298.02702 149.52702 14952.70200 2020-01-01 2020-01-02 2020-01-01 00:05:42 2020-01-02 03:34:03 2020-01-01 00:05:42.000 2020-01-02 03:34:03.000 342 99243 49792.5 4979250 342 99243 49792.5 4979250 -32227 32708 5228.02 522802 -128 123 -2.06 -206 -343 2 10333 99244 1.03003 298.03003 149.53003 14953.003 1.03003 298.03003 149.53002 14953.00293 1.03003 298.03003 149.53003 14953.00300 2020-01-01 2020-01-02 2020-01-01 00:05:43 2020-01-02 03:34:04 2020-01-01 00:05:43.000 2020-01-02 03:34:04.000 343 99244 49793.5 4979350 343 99244 49793.5 4979350 -32226 32709 5229.02 522902 -127 124 -1.06 -106 -344 2 10334 99245 1.03303 298.03303 149.53303 14953.3033 1.03303 298.03302 149.53303 14953.30323 1.03303 298.03303 149.53303 14953.30300 2020-01-01 2020-01-02 2020-01-01 00:05:44 2020-01-02 03:34:05 2020-01-01 00:05:44.000 2020-01-02 03:34:05.000 344 99245 49794.5 4979450 344 99245 49794.5 4979450 -32225 32710 5230.02 523002 -126 125 -0.06 -6 -345 2 10335 99246 1.03603 298.03603 149.53603 14953.6036 1.03603 298.03604 149.53603 14953.60386 1.03603 298.03603 149.53603 14953.60300 2020-01-01 2020-01-02 2020-01-01 00:05:45 2020-01-02 03:34:06 2020-01-01 00:05:45.000 2020-01-02 03:34:06.000 345 99246 49795.5 4979550 345 99246 49795.5 4979550 -32224 32711 5231.02 523102 -125 126 0.94 94 -346 2 10336 99247 1.03903 298.03903 149.53903 14953.9039 1.03903 298.03903 149.53903 14953.90352 1.03903 298.03903 149.53903 14953.90300 2020-01-01 2020-01-02 2020-01-01 00:05:46 2020-01-02 03:34:07 2020-01-01 00:05:46.000 2020-01-02 03:34:07.000 346 99247 49796.5 4979650 346 99247 49796.5 4979650 -32223 32712 5232.02 523202 -124 127 1.94 194 -347 2 10337 99248 1.04204 298.04204 149.54204 14954.2042 1.04204 298.04205 149.54204 14954.20427 1.04204 298.04204 149.54204 14954.20400 2020-01-01 2020-01-02 2020-01-01 00:05:47 2020-01-02 03:34:08 2020-01-01 00:05:47.000 2020-01-02 03:34:08.000 347 99248 49797.5 4979750 347 99248 49797.5 4979750 -32222 32713 5233.02 523302 -128 127 0.38 38 -348 2 10338 99249 1.04504 298.04504 149.54504 14954.5045 1.04504 298.04504 149.54504 14954.50441 1.04504 298.04504 149.54504 14954.50400 2020-01-01 2020-01-02 2020-01-01 00:05:48 2020-01-02 03:34:09 2020-01-01 00:05:48.000 2020-01-02 03:34:09.000 348 99249 49798.5 4979850 348 99249 49798.5 4979850 -32221 32714 5234.02 523402 -128 123 -1.18 -118 -349 2 10339 99250 1.04804 298.04804 149.54804 14954.8048 1.04804 298.04803 149.54804 14954.80474 1.04804 298.04804 149.54804 14954.80400 2020-01-01 2020-01-02 2020-01-01 00:05:49 2020-01-02 03:34:10 2020-01-01 00:05:49.000 2020-01-02 03:34:10.000 349 99250 49799.5 4979950 349 99250 49799.5 4979950 -32220 32715 5235.02 523502 -127 124 -0.18 -18 -35 2 10025 99935 0.1051 300.1051 150.1051 15160.61561 0.1051 300.1051 150.1051 15160.61542 0.10510 300.10510 150.10510 15160.61510 2020-01-01 2020-01-02 2020-01-01 00:00:35 2020-01-02 03:45:35 2020-01-01 00:00:35.000 2020-01-02 03:45:35.000 35 99935 49985 5048485 35 99935 49985 5048485 -32534 32401 4564.009900990099 460965 -128 127 -0.900990099009901 -91 +328 2 10318 99229 0.98498 297.98498 149.48498 14948.49849 0.98498 297.985 149.48498 14948.49853 0.98498 297.98498 149.4849799999999 14948.49800 2020-01-01 2020-01-02 2020-01-01 00:05:28 2020-01-02 03:33:49 2020-01-01 00:05:28.000 2020-01-02 03:33:49.000 328 99229 49778.5 4977850 328 99229 49778.5 4977850 -32241 32694 5214.02 521402 -128 127 -0.7 -70 +329 2 10319 99230 0.98798 297.98798 149.48798 14948.79879 0.98798 297.98798 149.48798 14948.79883 0.98798 297.98798 149.4879799999999 14948.79800 2020-01-01 2020-01-02 2020-01-01 00:05:29 2020-01-02 03:33:50 2020-01-01 00:05:29.000 2020-01-02 03:33:50.000 329 99230 49779.5 4977950 329 99230 49779.5 4977950 -32240 32695 5215.02 521502 -128 127 -2.26 -226 +33 2 10023 99933 0.09909 300.09909 150.09909 15160.009 0.09909 300.0991 150.0991 15160.00913 0.09909 300.09909 150.09908999999988 15160.00809 2020-01-01 2020-01-02 2020-01-01 00:00:33 2020-01-02 03:45:33 2020-01-01 00:00:33.000 2020-01-02 03:45:33.000 33 99933 49983 5048283 33 99933 49983 5048283 -32536 32399 4562.009900990099 460763 -125 126 -0.36633663366336633 -37 +330 2 10320 99231 0.99099 297.99099 149.49099 14949.09909 0.99099 297.991 149.49099 14949.09941 0.99099 297.99099 149.49099000000012 14949.09900 2020-01-01 2020-01-02 2020-01-01 00:05:30 2020-01-02 03:33:51 2020-01-01 00:05:30.000 2020-01-02 03:33:51.000 330 99231 49780.5 4978050 330 99231 49780.5 4978050 -32239 32696 5216.02 521602 -128 123 -3.82 -382 +331 2 10321 99232 0.99399 297.99399 149.49399 14949.39939 0.99399 297.994 149.49399 14949.39911 0.99399 297.99399 149.49399000000017 14949.39900 2020-01-01 2020-01-02 2020-01-01 00:05:31 2020-01-02 03:33:52 2020-01-01 00:05:31.000 2020-01-02 03:33:52.000 331 99232 49781.5 4978150 331 99232 49781.5 4978150 -32238 32697 5217.02 521702 -127 124 -2.82 -282 +332 2 10322 99233 0.99699 297.99699 149.49699 14949.69969 0.99699 297.997 149.49699 14949.69969 0.99699 297.99699 149.4969899999998 14949.69900 2020-01-01 2020-01-02 2020-01-01 00:05:32 2020-01-02 03:33:53 2020-01-01 00:05:32.000 2020-01-02 03:33:53.000 332 99233 49782.5 4978250 332 99233 49782.5 4978250 -32237 32698 5218.02 521802 -126 125 -1.82 -182 +333 2 10323 99234 1 298 149.5 14950 1 298 149.5 14950 1.00000 298.00000 149.5 14950.00000 2020-01-01 2020-01-02 2020-01-01 00:05:33 2020-01-02 03:33:54 2020-01-01 00:05:33.000 2020-01-02 03:33:54.000 333 99234 49783.5 4978350 333 99234 49783.5 4978350 -32236 32699 5219.02 521902 -125 126 -0.82 -82 +334 2 10324 99235 1.003 298.003 149.503 14950.3003 1.003 298.003 149.503 14950.30029 1.00300 298.00300 149.50300000000007 14950.30000 2020-01-01 2020-01-02 2020-01-01 00:05:34 2020-01-02 03:33:55 2020-01-01 00:05:34.000 2020-01-02 03:33:55.000 334 99235 49784.5 4978450 334 99235 49784.5 4978450 -32235 32700 5220.02 522002 -124 127 0.18 18 +335 2 10325 99236 1.006 298.006 149.506 14950.6006 1.006 298.006 149.506 14950.60088 1.00600 298.00600 149.50599999999991 14950.60000 2020-01-01 2020-01-02 2020-01-01 00:05:35 2020-01-02 03:33:56 2020-01-01 00:05:35.000 2020-01-02 03:33:56.000 335 99236 49785.5 4978550 335 99236 49785.5 4978550 -32234 32701 5221.02 522102 -128 127 -1.38 -138 +336 2 10326 99237 1.009 298.009 149.509 14950.9009 1.009 298.009 149.509 14950.90057 1.00900 298.00900 149.50900000000001 14950.90000 2020-01-01 2020-01-02 2020-01-01 00:05:36 2020-01-02 03:33:57 2020-01-01 00:05:36.000 2020-01-02 03:33:57.000 336 99237 49786.5 4978650 336 99237 49786.5 4978650 -32233 32702 5222.02 522202 -128 123 -2.94 -294 +337 2 10327 99238 1.01201 298.01201 149.51201 14951.2012 1.01201 298.01202 149.51201 14951.20117 1.01201 298.01201 149.51201000000017 14951.20100 2020-01-01 2020-01-02 2020-01-01 00:05:37 2020-01-02 03:33:58 2020-01-01 00:05:37.000 2020-01-02 03:33:58.000 337 99238 49787.5 4978750 337 99238 49787.5 4978750 -32232 32703 5223.02 522302 -127 124 -1.94 -194 +338 2 10328 99239 1.01501 298.01501 149.51501 14951.5015 1.01501 298.015 149.51501 14951.50146 1.01501 298.01501 149.51500999999982 14951.50100 2020-01-01 2020-01-02 2020-01-01 00:05:38 2020-01-02 03:33:59 2020-01-01 00:05:38.000 2020-01-02 03:33:59.000 338 99239 49788.5 4978850 338 99239 49788.5 4978850 -32231 32704 5224.02 522402 -126 125 -0.94 -94 +339 2 10329 99240 1.01801 298.01801 149.51801 14951.8018 1.01801 298.018 149.51801 14951.80177 1.01801 298.01801 149.51800999999983 14951.80100 2020-01-01 2020-01-02 2020-01-01 00:05:39 2020-01-02 03:34:00 2020-01-01 00:05:39.000 2020-01-02 03:34:00.000 339 99240 49789.5 4978950 339 99240 49789.5 4978950 -32230 32705 5225.02 522502 -125 126 0.06 6 +34 2 10024 99934 0.1021 300.1021 150.1021 15160.31231 0.1021 300.1021 150.1021 15160.31224 0.10210 300.10210 150.10210000000004 15160.31210 2020-01-01 2020-01-02 2020-01-01 00:00:34 2020-01-02 03:45:34 2020-01-01 00:00:34.000 2020-01-02 03:45:34.000 34 99934 49984 5048384 34 99934 49984 5048384 -32535 32400 4563.009900990099 460864 -124 127 0.6336633663366337 64 +340 2 10330 99241 1.02102 298.02102 149.52102 14952.1021 1.02102 298.02103 149.52102 14952.10239 1.02102 298.02102 149.5210200000001 14952.10200 2020-01-01 2020-01-02 2020-01-01 00:05:40 2020-01-02 03:34:01 2020-01-01 00:05:40.000 2020-01-02 03:34:01.000 340 99241 49790.5 4979050 340 99241 49790.5 4979050 -32229 32706 5226.02 522602 -124 127 1.06 106 +341 2 10331 99242 1.02402 298.02402 149.52402 14952.4024 1.02402 298.02402 149.52402 14952.40205 1.02402 298.02402 149.52402000000006 14952.40200 2020-01-01 2020-01-02 2020-01-01 00:05:41 2020-01-02 03:34:02 2020-01-01 00:05:41.000 2020-01-02 03:34:02.000 341 99242 49791.5 4979150 341 99242 49791.5 4979150 -32228 32707 5227.02 522702 -128 127 -0.5 -50 +342 2 10332 99243 1.02702 298.02702 149.52702 14952.7027 1.02702 298.02704 149.52702 14952.70264 1.02702 298.02702 149.52701999999982 14952.70200 2020-01-01 2020-01-02 2020-01-01 00:05:42 2020-01-02 03:34:03 2020-01-01 00:05:42.000 2020-01-02 03:34:03.000 342 99243 49792.5 4979250 342 99243 49792.5 4979250 -32227 32708 5228.02 522802 -128 123 -2.06 -206 +343 2 10333 99244 1.03003 298.03003 149.53003 14953.003 1.03003 298.03003 149.53002 14953.00293 1.03003 298.03003 149.53002999999993 14953.00300 2020-01-01 2020-01-02 2020-01-01 00:05:43 2020-01-02 03:34:04 2020-01-01 00:05:43.000 2020-01-02 03:34:04.000 343 99244 49793.5 4979350 343 99244 49793.5 4979350 -32226 32709 5229.02 522902 -127 124 -1.06 -106 +344 2 10334 99245 1.03303 298.03303 149.53303 14953.3033 1.03303 298.03302 149.53303 14953.30323 1.03303 298.03303 149.53303000000002 14953.30300 2020-01-01 2020-01-02 2020-01-01 00:05:44 2020-01-02 03:34:05 2020-01-01 00:05:44.000 2020-01-02 03:34:05.000 344 99245 49794.5 4979450 344 99245 49794.5 4979450 -32225 32710 5230.02 523002 -126 125 -0.06 -6 +345 2 10335 99246 1.03603 298.03603 149.53603 14953.6036 1.03603 298.03604 149.53603 14953.60386 1.03603 298.03603 149.53602999999993 14953.60300 2020-01-01 2020-01-02 2020-01-01 00:05:45 2020-01-02 03:34:06 2020-01-01 00:05:45.000 2020-01-02 03:34:06.000 345 99246 49795.5 4979550 345 99246 49795.5 4979550 -32224 32711 5231.02 523102 -125 126 0.94 94 +346 2 10336 99247 1.03903 298.03903 149.53903 14953.9039 1.03903 298.03903 149.53903 14953.90352 1.03903 298.03903 149.53902999999994 14953.90300 2020-01-01 2020-01-02 2020-01-01 00:05:46 2020-01-02 03:34:07 2020-01-01 00:05:46.000 2020-01-02 03:34:07.000 346 99247 49796.5 4979650 346 99247 49796.5 4979650 -32223 32712 5232.02 523202 -124 127 1.94 194 +347 2 10337 99248 1.04204 298.04204 149.54204 14954.2042 1.04204 298.04205 149.54204 14954.20427 1.04204 298.04204 149.5420400000001 14954.20400 2020-01-01 2020-01-02 2020-01-01 00:05:47 2020-01-02 03:34:08 2020-01-01 00:05:47.000 2020-01-02 03:34:08.000 347 99248 49797.5 4979750 347 99248 49797.5 4979750 -32222 32713 5233.02 523302 -128 127 0.38 38 +348 2 10338 99249 1.04504 298.04504 149.54504 14954.5045 1.04504 298.04504 149.54504 14954.50441 1.04504 298.04504 149.5450400000002 14954.50400 2020-01-01 2020-01-02 2020-01-01 00:05:48 2020-01-02 03:34:09 2020-01-01 00:05:48.000 2020-01-02 03:34:09.000 348 99249 49798.5 4979850 348 99249 49798.5 4979850 -32221 32714 5234.02 523402 -128 123 -1.18 -118 +349 2 10339 99250 1.04804 298.04804 149.54804 14954.8048 1.04804 298.04803 149.54804 14954.80474 1.04804 298.04804 149.54803999999987 14954.80400 2020-01-01 2020-01-02 2020-01-01 00:05:49 2020-01-02 03:34:10 2020-01-01 00:05:49.000 2020-01-02 03:34:10.000 349 99250 49799.5 4979950 349 99250 49799.5 4979950 -32220 32715 5235.02 523502 -127 124 -0.18 -18 +35 2 10025 99935 0.1051 300.1051 150.1051 15160.61561 0.1051 300.1051 150.1051 15160.61542 0.10510 300.10510 150.10510000000008 15160.61510 2020-01-01 2020-01-02 2020-01-01 00:00:35 2020-01-02 03:45:35 2020-01-01 00:00:35.000 2020-01-02 03:45:35.000 35 99935 49985 5048485 35 99935 49985 5048485 -32534 32401 4564.009900990099 460965 -128 127 -0.900990099009901 -91 350 2 10340 99251 1.05105 298.05105 149.55105 14955.1051 1.05105 298.05106 149.55105 14955.10532 1.05105 298.05105 149.55105 14955.10500 2020-01-01 2020-01-02 2020-01-01 00:05:50 2020-01-02 03:34:11 2020-01-01 00:05:50.000 2020-01-02 03:34:11.000 350 99251 49800.5 4980050 350 99251 49800.5 4980050 -32219 32716 5236.02 523602 -126 125 0.82 82 -351 2 10341 99252 1.05405 298.05405 149.55405 14955.4054 1.05405 298.05405 149.55404 14955.40499 1.05405 298.05405 149.55405 14955.40500 2020-01-01 2020-01-02 2020-01-01 00:05:51 2020-01-02 03:34:12 2020-01-01 00:05:51.000 2020-01-02 03:34:12.000 351 99252 49801.5 4980150 351 99252 49801.5 4980150 -32218 32717 5237.02 523702 -125 126 1.82 182 -352 2 10342 99253 1.05705 298.05705 149.55705 14955.7057 1.05705 298.05707 149.55705 14955.70574 1.05705 298.05705 149.55705 14955.70500 2020-01-01 2020-01-02 2020-01-01 00:05:52 2020-01-02 03:34:13 2020-01-01 00:05:52.000 2020-01-02 03:34:13.000 352 99253 49802.5 4980250 352 99253 49802.5 4980250 -32217 32718 5238.02 523802 -124 127 2.82 282 -353 2 10343 99254 1.06006 298.06006 149.56006 14956.006 1.06006 298.06006 149.56005 14956.00587 1.06006 298.06006 149.56006 14956.00600 2020-01-01 2020-01-02 2020-01-01 00:05:53 2020-01-02 03:34:14 2020-01-01 00:05:53.000 2020-01-02 03:34:14.000 353 99254 49803.5 4980350 353 99254 49803.5 4980350 -32216 32719 5239.02 523902 -128 127 1.26 126 -354 2 10344 99255 1.06306 298.06306 149.56306 14956.3063 1.06306 298.06305 149.56306 14956.3062 1.06306 298.06306 149.56306 14956.30600 2020-01-01 2020-01-02 2020-01-01 00:05:54 2020-01-02 03:34:15 2020-01-01 00:05:54.000 2020-01-02 03:34:15.000 354 99255 49804.5 4980450 354 99255 49804.5 4980450 -32215 32720 5240.02 524002 -128 127 -0.3 -30 -355 2 10345 99256 1.06606 298.06606 149.56606 14956.6066 1.06606 298.06607 149.56606 14956.6068 1.06606 298.06606 149.56606 14956.60600 2020-01-01 2020-01-02 2020-01-01 00:05:55 2020-01-02 03:34:16 2020-01-01 00:05:55.000 2020-01-02 03:34:16.000 355 99256 49805.5 4980550 355 99256 49805.5 4980550 -32214 32721 5241.02 524102 -128 123 -1.86 -186 -356 2 10346 99257 1.06906 298.06906 149.56906 14956.9069 1.06906 298.06906 149.56907 14956.90709 1.06906 298.06906 149.56906 14956.90600 2020-01-01 2020-01-02 2020-01-01 00:05:56 2020-01-02 03:34:17 2020-01-01 00:05:56.000 2020-01-02 03:34:17.000 356 99257 49806.5 4980650 356 99257 49806.5 4980650 -32213 32722 5242.02 524202 -127 124 -0.86 -86 -357 2 10347 99258 1.07207 298.07207 149.57207 14957.2072 1.07207 298.07208 149.57207 14957.20721 1.07207 298.07207 149.57207 14957.20700 2020-01-01 2020-01-02 2020-01-01 00:05:57 2020-01-02 03:34:18 2020-01-01 00:05:57.000 2020-01-02 03:34:18.000 357 99258 49807.5 4980750 357 99258 49807.5 4980750 -32212 32723 5243.02 524302 -126 125 0.14 14 -358 2 10348 99259 1.07507 298.07507 149.57507 14957.5075 1.07507 298.07507 149.57507 14957.50734 1.07507 298.07507 149.57507 14957.50700 2020-01-01 2020-01-02 2020-01-01 00:05:58 2020-01-02 03:34:19 2020-01-01 00:05:58.000 2020-01-02 03:34:19.000 358 99259 49808.5 4980850 358 99259 49808.5 4980850 -32211 32724 5244.02 524402 -125 126 1.14 114 -359 2 10349 99260 1.07807 298.07807 149.57807 14957.8078 1.07807 298.07806 149.57807 14957.80767 1.07807 298.07807 149.57807 14957.80700 2020-01-01 2020-01-02 2020-01-01 00:05:59 2020-01-02 03:34:20 2020-01-01 00:05:59.000 2020-01-02 03:34:20.000 359 99260 49809.5 4980950 359 99260 49809.5 4980950 -32210 32725 5245.02 524502 -124 127 2.14 214 -36 2 10026 99936 0.1081 300.1081 150.1081 15160.91891 0.1081 300.1081 150.1081 15160.91873 0.10810 300.10810 150.10810 15160.91810 2020-01-01 2020-01-02 2020-01-01 00:00:36 2020-01-02 03:45:36 2020-01-01 00:00:36.000 2020-01-02 03:45:36.000 36 99936 49986 5048586 36 99936 49986 5048586 -32533 32402 4565.009900990099 461066 -128 123 -2.4356435643564356 -246 -360 2 10350 99261 1.08108 298.08108 149.58108 14958.1081 1.08108 298.0811 149.58108 14958.10827 1.08108 298.08108 149.58108 14958.10800 2020-01-01 2020-01-02 2020-01-01 00:06:00 2020-01-02 03:34:21 2020-01-01 00:06:00.000 2020-01-02 03:34:21.000 360 99261 49810.5 4981050 360 99261 49810.5 4981050 -32209 32726 5246.02 524602 -128 127 0.58 58 -361 2 10351 99262 1.08408 298.08408 149.58408 14958.4084 1.08408 298.08408 149.58408 14958.40856 1.08408 298.08408 149.58408 14958.40800 2020-01-01 2020-01-02 2020-01-01 00:06:01 2020-01-02 03:34:22 2020-01-01 00:06:01.000 2020-01-02 03:34:22.000 361 99262 49811.5 4981150 361 99262 49811.5 4981150 -32208 32727 5247.02 524702 -128 123 -0.98 -98 -362 2 10352 99263 1.08708 298.08708 149.58708 14958.7087 1.08708 298.0871 149.58708 14958.70868 1.08708 298.08708 149.58708 14958.70800 2020-01-01 2020-01-02 2020-01-01 00:06:02 2020-01-02 03:34:23 2020-01-01 00:06:02.000 2020-01-02 03:34:23.000 362 99263 49812.5 4981250 362 99263 49812.5 4981250 -32207 32728 5248.02 524802 -127 124 0.02 2 -363 2 10353 99264 1.09009 298.09009 149.59009 14959.009 1.09009 298.0901 149.59008 14959.00884 1.09009 298.09009 149.59009 14959.00900 2020-01-01 2020-01-02 2020-01-01 00:06:03 2020-01-02 03:34:24 2020-01-01 00:06:03.000 2020-01-02 03:34:24.000 363 99264 49813.5 4981350 363 99264 49813.5 4981350 -32206 32729 5249.02 524902 -126 125 1.02 102 -364 2 10354 99265 1.09309 298.09309 149.59309 14959.3093 1.09309 298.09308 149.59309 14959.30915 1.09309 298.09309 149.59309 14959.30900 2020-01-01 2020-01-02 2020-01-01 00:06:04 2020-01-02 03:34:25 2020-01-01 00:06:04.000 2020-01-02 03:34:25.000 364 99265 49814.5 4981450 364 99265 49814.5 4981450 -32205 32730 5250.02 525002 -125 126 2.02 202 -365 2 10355 99266 1.09609 298.09609 149.59609 14959.6096 1.09609 298.0961 149.59609 14959.6099 1.09609 298.09609 149.59609 14959.60900 2020-01-01 2020-01-02 2020-01-01 00:06:05 2020-01-02 03:34:26 2020-01-01 00:06:05.000 2020-01-02 03:34:26.000 365 99266 49815.5 4981550 365 99266 49815.5 4981550 -32204 32731 5251.02 525102 -124 127 3.02 302 -366 2 10356 99267 1.09909 298.09909 149.59909 14959.9099 1.09909 298.0991 149.5991 14959.91003 1.09909 298.09909 149.59909 14959.90900 2020-01-01 2020-01-02 2020-01-01 00:06:06 2020-01-02 03:34:27 2020-01-01 00:06:06.000 2020-01-02 03:34:27.000 366 99267 49816.5 4981650 366 99267 49816.5 4981650 -32203 32732 5252.02 525202 -128 127 1.46 146 -367 2 10357 99268 1.1021 298.1021 149.6021 14960.21021 1.1021 298.1021 149.6021 14960.21015 1.10210 298.10210 149.60210 14960.21000 2020-01-01 2020-01-02 2020-01-01 00:06:07 2020-01-02 03:34:28 2020-01-01 00:06:07.000 2020-01-02 03:34:28.000 367 99268 49817.5 4981750 367 99268 49817.5 4981750 -32202 32733 5253.02 525302 -128 123 -0.1 -10 -368 2 10358 99269 1.1051 298.1051 149.6051 14960.51051 1.1051 298.1051 149.6051 14960.51031 1.10510 298.10510 149.60510 14960.51000 2020-01-01 2020-01-02 2020-01-01 00:06:08 2020-01-02 03:34:29 2020-01-01 00:06:08.000 2020-01-02 03:34:29.000 368 99269 49818.5 4981850 368 99269 49818.5 4981850 -32201 32734 5254.02 525402 -127 124 0.9 90 -369 2 10359 99270 1.1081 298.1081 149.6081 14960.81081 1.1081 298.1081 149.6081 14960.81062 1.10810 298.10810 149.60810 14960.81000 2020-01-01 2020-01-02 2020-01-01 00:06:09 2020-01-02 03:34:30 2020-01-01 00:06:09.000 2020-01-02 03:34:30.000 369 99270 49819.5 4981950 369 99270 49819.5 4981950 -32200 32735 5255.02 525502 -126 125 1.9 190 -37 2 10027 99937 0.11111 300.11111 150.11111 15161.22222 0.11111 300.1111 150.11111 15161.22248 0.11111 300.11111 150.11111 15161.22211 2020-01-01 2020-01-02 2020-01-01 00:00:37 2020-01-02 03:45:37 2020-01-01 00:00:37.000 2020-01-02 03:45:37.000 37 99937 49987 5048687 37 99937 49987 5048687 -32532 32403 4566.009900990099 461167 -127 124 -1.4356435643564356 -145 -370 2 10360 99271 1.11111 298.11111 149.61111 14961.11111 1.11111 298.1111 149.61111 14961.11137 1.11111 298.11111 149.61111 14961.11100 2020-01-01 2020-01-02 2020-01-01 00:06:10 2020-01-02 03:34:31 2020-01-01 00:06:10.000 2020-01-02 03:34:31.000 370 99271 49820.5 4982050 370 99271 49820.5 4982050 -32199 32736 5256.02 525602 -125 126 2.9 290 -371 2 10361 99272 1.11411 298.11411 149.61411 14961.41141 1.11411 298.1141 149.61411 14961.4115 1.11411 298.11411 149.61411 14961.41100 2020-01-01 2020-01-02 2020-01-01 00:06:11 2020-01-02 03:34:32 2020-01-01 00:06:11.000 2020-01-02 03:34:32.000 371 99272 49821.5 4982150 371 99272 49821.5 4982150 -32198 32737 5257.02 525702 -124 127 3.9 390 -372 2 10362 99273 1.11711 298.11711 149.61711 14961.71171 1.11711 298.11713 149.61711 14961.71165 1.11711 298.11711 149.61711 14961.71100 2020-01-01 2020-01-02 2020-01-01 00:06:12 2020-01-02 03:34:33 2020-01-01 00:06:12.000 2020-01-02 03:34:33.000 372 99273 49822.5 4982250 372 99273 49822.5 4982250 -32197 32738 5258.02 525802 -128 127 2.34 234 -373 2 10363 99274 1.12012 298.12012 149.62012 14962.01201 1.12012 298.12012 149.62011 14962.01179 1.12012 298.12012 149.62012 14962.01200 2020-01-01 2020-01-02 2020-01-01 00:06:13 2020-01-02 03:34:34 2020-01-01 00:06:13.000 2020-01-02 03:34:34.000 373 99274 49823.5 4982350 373 99274 49823.5 4982350 -32196 32739 5259.02 525902 -128 123 0.78 78 -374 2 10364 99275 1.12312 298.12312 149.62312 14962.31231 1.12312 298.1231 149.62312 14962.31208 1.12312 298.12312 149.62312 14962.31200 2020-01-01 2020-01-02 2020-01-01 00:06:14 2020-01-02 03:34:35 2020-01-01 00:06:14.000 2020-01-02 03:34:35.000 374 99275 49824.5 4982450 374 99275 49824.5 4982450 -32195 32740 5260.02 526002 -127 124 1.78 178 -375 2 10365 99276 1.12612 298.12612 149.62612 14962.61261 1.12612 298.12613 149.62612 14962.61283 1.12612 298.12612 149.62612 14962.61200 2020-01-01 2020-01-02 2020-01-01 00:06:15 2020-01-02 03:34:36 2020-01-01 00:06:15.000 2020-01-02 03:34:36.000 375 99276 49825.5 4982550 375 99276 49825.5 4982550 -32194 32741 5261.02 526102 -126 125 2.78 278 -376 2 10366 99277 1.12912 298.12912 149.62912 14962.91291 1.12912 298.12912 149.62912 14962.91297 1.12912 298.12912 149.62912 14962.91200 2020-01-01 2020-01-02 2020-01-01 00:06:16 2020-01-02 03:34:37 2020-01-01 00:06:16.000 2020-01-02 03:34:37.000 376 99277 49826.5 4982650 376 99277 49826.5 4982650 -32193 32742 5262.02 526202 -125 126 3.78 378 +351 2 10341 99252 1.05405 298.05405 149.55405 14955.4054 1.05405 298.05405 149.55404 14955.40499 1.05405 298.05405 149.55405000000007 14955.40500 2020-01-01 2020-01-02 2020-01-01 00:05:51 2020-01-02 03:34:12 2020-01-01 00:05:51.000 2020-01-02 03:34:12.000 351 99252 49801.5 4980150 351 99252 49801.5 4980150 -32218 32717 5237.02 523702 -125 126 1.82 182 +352 2 10342 99253 1.05705 298.05705 149.55705 14955.7057 1.05705 298.05707 149.55705 14955.70574 1.05705 298.05705 149.55704999999998 14955.70500 2020-01-01 2020-01-02 2020-01-01 00:05:52 2020-01-02 03:34:13 2020-01-01 00:05:52.000 2020-01-02 03:34:13.000 352 99253 49802.5 4980250 352 99253 49802.5 4980250 -32217 32718 5238.02 523802 -124 127 2.82 282 +353 2 10343 99254 1.06006 298.06006 149.56006 14956.006 1.06006 298.06006 149.56005 14956.00587 1.06006 298.06006 149.56005999999985 14956.00600 2020-01-01 2020-01-02 2020-01-01 00:05:53 2020-01-02 03:34:14 2020-01-01 00:05:53.000 2020-01-02 03:34:14.000 353 99254 49803.5 4980350 353 99254 49803.5 4980350 -32216 32719 5239.02 523902 -128 127 1.26 126 +354 2 10344 99255 1.06306 298.06306 149.56306 14956.3063 1.06306 298.06305 149.56306 14956.3062 1.06306 298.06306 149.5630600000002 14956.30600 2020-01-01 2020-01-02 2020-01-01 00:05:54 2020-01-02 03:34:15 2020-01-01 00:05:54.000 2020-01-02 03:34:15.000 354 99255 49804.5 4980450 354 99255 49804.5 4980450 -32215 32720 5240.02 524002 -128 127 -0.3 -30 +355 2 10345 99256 1.06606 298.06606 149.56606 14956.6066 1.06606 298.06607 149.56606 14956.6068 1.06606 298.06606 149.56605999999988 14956.60600 2020-01-01 2020-01-02 2020-01-01 00:05:55 2020-01-02 03:34:16 2020-01-01 00:05:55.000 2020-01-02 03:34:16.000 355 99256 49805.5 4980550 355 99256 49805.5 4980550 -32214 32721 5241.02 524102 -128 123 -1.86 -186 +356 2 10346 99257 1.06906 298.06906 149.56906 14956.9069 1.06906 298.06906 149.56907 14956.90709 1.06906 298.06906 149.56905999999987 14956.90600 2020-01-01 2020-01-02 2020-01-01 00:05:56 2020-01-02 03:34:17 2020-01-01 00:05:56.000 2020-01-02 03:34:17.000 356 99257 49806.5 4980650 356 99257 49806.5 4980650 -32213 32722 5242.02 524202 -127 124 -0.86 -86 +357 2 10347 99258 1.07207 298.07207 149.57207 14957.2072 1.07207 298.07208 149.57207 14957.20721 1.07207 298.07207 149.5720700000001 14957.20700 2020-01-01 2020-01-02 2020-01-01 00:05:57 2020-01-02 03:34:18 2020-01-01 00:05:57.000 2020-01-02 03:34:18.000 357 99258 49807.5 4980750 357 99258 49807.5 4980750 -32212 32723 5243.02 524302 -126 125 0.14 14 +358 2 10348 99259 1.07507 298.07507 149.57507 14957.5075 1.07507 298.07507 149.57507 14957.50734 1.07507 298.07507 149.57507000000012 14957.50700 2020-01-01 2020-01-02 2020-01-01 00:05:58 2020-01-02 03:34:19 2020-01-01 00:05:58.000 2020-01-02 03:34:19.000 358 99259 49808.5 4980850 358 99259 49808.5 4980850 -32211 32724 5244.02 524402 -125 126 1.14 114 +359 2 10349 99260 1.07807 298.07807 149.57807 14957.8078 1.07807 298.07806 149.57807 14957.80767 1.07807 298.07807 149.57806999999977 14957.80700 2020-01-01 2020-01-02 2020-01-01 00:05:59 2020-01-02 03:34:20 2020-01-01 00:05:59.000 2020-01-02 03:34:20.000 359 99260 49809.5 4980950 359 99260 49809.5 4980950 -32210 32725 5245.02 524502 -124 127 2.14 214 +36 2 10026 99936 0.1081 300.1081 150.1081 15160.91891 0.1081 300.1081 150.1081 15160.91873 0.10810 300.10810 150.10809999999995 15160.91810 2020-01-01 2020-01-02 2020-01-01 00:00:36 2020-01-02 03:45:36 2020-01-01 00:00:36.000 2020-01-02 03:45:36.000 36 99936 49986 5048586 36 99936 49986 5048586 -32533 32402 4565.009900990099 461066 -128 123 -2.4356435643564356 -246 +360 2 10350 99261 1.08108 298.08108 149.58108 14958.1081 1.08108 298.0811 149.58108 14958.10827 1.08108 298.08108 149.58107999999996 14958.10800 2020-01-01 2020-01-02 2020-01-01 00:06:00 2020-01-02 03:34:21 2020-01-01 00:06:00.000 2020-01-02 03:34:21.000 360 99261 49810.5 4981050 360 99261 49810.5 4981050 -32209 32726 5246.02 524602 -128 127 0.58 58 +361 2 10351 99262 1.08408 298.08408 149.58408 14958.4084 1.08408 298.08408 149.58408 14958.40856 1.08408 298.08408 149.58408000000006 14958.40800 2020-01-01 2020-01-02 2020-01-01 00:06:01 2020-01-02 03:34:22 2020-01-01 00:06:01.000 2020-01-02 03:34:22.000 361 99262 49811.5 4981150 361 99262 49811.5 4981150 -32208 32727 5247.02 524702 -128 123 -0.98 -98 +362 2 10352 99263 1.08708 298.08708 149.58708 14958.7087 1.08708 298.0871 149.58708 14958.70868 1.08708 298.08708 149.5870799999999 14958.70800 2020-01-01 2020-01-02 2020-01-01 00:06:02 2020-01-02 03:34:23 2020-01-01 00:06:02.000 2020-01-02 03:34:23.000 362 99263 49812.5 4981250 362 99263 49812.5 4981250 -32207 32728 5248.02 524802 -127 124 0.02 2 +363 2 10353 99264 1.09009 298.09009 149.59009 14959.009 1.09009 298.0901 149.59008 14959.00884 1.09009 298.09009 149.59008999999983 14959.00900 2020-01-01 2020-01-02 2020-01-01 00:06:03 2020-01-02 03:34:24 2020-01-01 00:06:03.000 2020-01-02 03:34:24.000 363 99264 49813.5 4981350 363 99264 49813.5 4981350 -32206 32729 5249.02 524902 -126 125 1.02 102 +364 2 10354 99265 1.09309 298.09309 149.59309 14959.3093 1.09309 298.09308 149.59309 14959.30915 1.09309 298.09309 149.59309000000013 14959.30900 2020-01-01 2020-01-02 2020-01-01 00:06:04 2020-01-02 03:34:25 2020-01-01 00:06:04.000 2020-01-02 03:34:25.000 364 99265 49814.5 4981450 364 99265 49814.5 4981450 -32205 32730 5250.02 525002 -125 126 2.02 202 +365 2 10355 99266 1.09609 298.09609 149.59609 14959.6096 1.09609 298.0961 149.59609 14959.6099 1.09609 298.09609 149.59608999999978 14959.60900 2020-01-01 2020-01-02 2020-01-01 00:06:05 2020-01-02 03:34:26 2020-01-01 00:06:05.000 2020-01-02 03:34:26.000 365 99266 49815.5 4981550 365 99266 49815.5 4981550 -32204 32731 5251.02 525102 -124 127 3.02 302 +366 2 10356 99267 1.09909 298.09909 149.59909 14959.9099 1.09909 298.0991 149.5991 14959.91003 1.09909 298.09909 149.59908999999985 14959.90900 2020-01-01 2020-01-02 2020-01-01 00:06:06 2020-01-02 03:34:27 2020-01-01 00:06:06.000 2020-01-02 03:34:27.000 366 99267 49816.5 4981650 366 99267 49816.5 4981650 -32203 32732 5252.02 525202 -128 127 1.46 146 +367 2 10357 99268 1.1021 298.1021 149.6021 14960.21021 1.1021 298.1021 149.6021 14960.21015 1.10210 298.10210 149.60210000000004 14960.21000 2020-01-01 2020-01-02 2020-01-01 00:06:07 2020-01-02 03:34:28 2020-01-01 00:06:07.000 2020-01-02 03:34:28.000 367 99268 49817.5 4981750 367 99268 49817.5 4981750 -32202 32733 5253.02 525302 -128 123 -0.1 -10 +368 2 10358 99269 1.1051 298.1051 149.6051 14960.51051 1.1051 298.1051 149.6051 14960.51031 1.10510 298.10510 149.6051000000001 14960.51000 2020-01-01 2020-01-02 2020-01-01 00:06:08 2020-01-02 03:34:29 2020-01-01 00:06:08.000 2020-01-02 03:34:29.000 368 99269 49818.5 4981850 368 99269 49818.5 4981850 -32201 32734 5254.02 525402 -127 124 0.9 90 +369 2 10359 99270 1.1081 298.1081 149.6081 14960.81081 1.1081 298.1081 149.6081 14960.81062 1.10810 298.10810 149.60809999999995 14960.81000 2020-01-01 2020-01-02 2020-01-01 00:06:09 2020-01-02 03:34:30 2020-01-01 00:06:09.000 2020-01-02 03:34:30.000 369 99270 49819.5 4981950 369 99270 49819.5 4981950 -32200 32735 5255.02 525502 -126 125 1.9 190 +37 2 10027 99937 0.11111 300.11111 150.11111 15161.22222 0.11111 300.1111 150.11111 15161.22248 0.11111 300.11111 150.11110999999988 15161.22211 2020-01-01 2020-01-02 2020-01-01 00:00:37 2020-01-02 03:45:37 2020-01-01 00:00:37.000 2020-01-02 03:45:37.000 37 99937 49987 5048687 37 99937 49987 5048687 -32532 32403 4566.009900990099 461167 -127 124 -1.4356435643564356 -145 +370 2 10360 99271 1.11111 298.11111 149.61111 14961.11111 1.11111 298.1111 149.61111 14961.11137 1.11111 298.11111 149.6111099999999 14961.11100 2020-01-01 2020-01-02 2020-01-01 00:06:10 2020-01-02 03:34:31 2020-01-01 00:06:10.000 2020-01-02 03:34:31.000 370 99271 49820.5 4982050 370 99271 49820.5 4982050 -32199 32736 5256.02 525602 -125 126 2.9 290 +371 2 10361 99272 1.11411 298.11411 149.61411 14961.41141 1.11411 298.1141 149.61411 14961.4115 1.11411 298.11411 149.61411000000024 14961.41100 2020-01-01 2020-01-02 2020-01-01 00:06:11 2020-01-02 03:34:32 2020-01-01 00:06:11.000 2020-01-02 03:34:32.000 371 99272 49821.5 4982150 371 99272 49821.5 4982150 -32198 32737 5257.02 525702 -124 127 3.9 390 +372 2 10362 99273 1.11711 298.11711 149.61711 14961.71171 1.11711 298.11713 149.61711 14961.71165 1.11711 298.11711 149.61710999999985 14961.71100 2020-01-01 2020-01-02 2020-01-01 00:06:12 2020-01-02 03:34:33 2020-01-01 00:06:12.000 2020-01-02 03:34:33.000 372 99273 49822.5 4982250 372 99273 49822.5 4982250 -32197 32738 5258.02 525802 -128 127 2.34 234 +373 2 10363 99274 1.12012 298.12012 149.62012 14962.01201 1.12012 298.12012 149.62011 14962.01179 1.12012 298.12012 149.6201199999998 14962.01200 2020-01-01 2020-01-02 2020-01-01 00:06:13 2020-01-02 03:34:34 2020-01-01 00:06:13.000 2020-01-02 03:34:34.000 373 99274 49823.5 4982350 373 99274 49823.5 4982350 -32196 32739 5259.02 525902 -128 123 0.78 78 +374 2 10364 99275 1.12312 298.12312 149.62312 14962.31231 1.12312 298.1231 149.62312 14962.31208 1.12312 298.12312 149.62312000000014 14962.31200 2020-01-01 2020-01-02 2020-01-01 00:06:14 2020-01-02 03:34:35 2020-01-01 00:06:14.000 2020-01-02 03:34:35.000 374 99275 49824.5 4982450 374 99275 49824.5 4982450 -32195 32740 5260.02 526002 -127 124 1.78 178 +375 2 10365 99276 1.12612 298.12612 149.62612 14962.61261 1.12612 298.12613 149.62612 14962.61283 1.12612 298.12612 149.62612000000016 14962.61200 2020-01-01 2020-01-02 2020-01-01 00:06:15 2020-01-02 03:34:36 2020-01-01 00:06:15.000 2020-01-02 03:34:36.000 375 99276 49825.5 4982550 375 99276 49825.5 4982550 -32194 32741 5261.02 526102 -126 125 2.78 278 +376 2 10366 99277 1.12912 298.12912 149.62912 14962.91291 1.12912 298.12912 149.62912 14962.91297 1.12912 298.12912 149.6291199999998 14962.91200 2020-01-01 2020-01-02 2020-01-01 00:06:16 2020-01-02 03:34:37 2020-01-01 00:06:16.000 2020-01-02 03:34:37.000 376 99277 49826.5 4982650 376 99277 49826.5 4982650 -32193 32742 5262.02 526202 -125 126 3.78 378 377 2 10367 99278 1.13213 298.13213 149.63213 14963.21321 1.13213 298.13214 149.63213 14963.21312 1.13213 298.13213 149.63213 14963.21300 2020-01-01 2020-01-02 2020-01-01 00:06:17 2020-01-02 03:34:38 2020-01-01 00:06:17.000 2020-01-02 03:34:38.000 377 99278 49827.5 4982750 377 99278 49827.5 4982750 -32192 32743 5263.02 526302 -124 127 4.78 478 -378 2 10368 99279 1.13513 298.13513 149.63513 14963.51351 1.13513 298.13513 149.63513 14963.51326 1.13513 298.13513 149.63513 14963.51300 2020-01-01 2020-01-02 2020-01-01 00:06:18 2020-01-02 03:34:39 2020-01-01 00:06:18.000 2020-01-02 03:34:39.000 378 99279 49828.5 4982850 378 99279 49828.5 4982850 -32191 32744 5264.02 526402 -128 127 3.22 322 -379 2 10369 99280 1.13813 298.13813 149.63813 14963.81381 1.13813 298.13815 149.63814 14963.81401 1.13813 298.13813 149.63813 14963.81300 2020-01-01 2020-01-02 2020-01-01 00:06:19 2020-01-02 03:34:40 2020-01-01 00:06:19.000 2020-01-02 03:34:40.000 379 99280 49829.5 4982950 379 99280 49829.5 4982950 -32190 32745 5265.02 526502 -128 127 1.66 166 -38 2 10028 99938 0.11411 300.11411 150.11411 15161.52552 0.11411 300.1141 150.11411 15161.52562 0.11411 300.11411 150.11411 15161.52511 2020-01-01 2020-01-02 2020-01-01 00:00:38 2020-01-02 03:45:38 2020-01-01 00:00:38.000 2020-01-02 03:45:38.000 38 99938 49988 5048788 38 99938 49988 5048788 -32531 32404 4567.009900990099 461268 -126 125 -0.43564356435643564 -44 -380 2 10370 99281 1.14114 298.14114 149.64114 14964.11411 1.14114 298.14114 149.64114 14964.11431 1.14114 298.14114 149.64114 14964.11400 2020-01-01 2020-01-02 2020-01-01 00:06:20 2020-01-02 03:34:41 2020-01-01 00:06:20.000 2020-01-02 03:34:41.000 380 99281 49830.5 4983050 380 99281 49830.5 4983050 -32189 32746 5266.02 526602 -128 124 0.1 10 -381 2 10371 99282 1.14414 298.14414 149.64414 14964.41441 1.14414 298.14413 149.64414 14964.41448 1.14414 298.14414 149.64414 14964.41400 2020-01-01 2020-01-02 2020-01-01 00:06:21 2020-01-02 03:34:42 2020-01-01 00:06:21.000 2020-01-02 03:34:42.000 381 99282 49831.5 4983150 381 99282 49831.5 4983150 -32188 32747 5267.02 526702 -127 125 1.1 110 -382 2 10372 99283 1.14714 298.14714 149.64714 14964.71471 1.14714 298.14716 149.64714 14964.71459 1.14714 298.14714 149.64714 14964.71400 2020-01-01 2020-01-02 2020-01-01 00:06:22 2020-01-02 03:34:43 2020-01-01 00:06:22.000 2020-01-02 03:34:43.000 382 99283 49832.5 4983250 382 99283 49832.5 4983250 -32187 32748 5268.02 526802 -126 126 2.1 210 +378 2 10368 99279 1.13513 298.13513 149.63513 14963.51351 1.13513 298.13513 149.63513 14963.51326 1.13513 298.13513 149.6351300000001 14963.51300 2020-01-01 2020-01-02 2020-01-01 00:06:18 2020-01-02 03:34:39 2020-01-01 00:06:18.000 2020-01-02 03:34:39.000 378 99279 49828.5 4982850 378 99279 49828.5 4982850 -32191 32744 5264.02 526402 -128 127 3.22 322 +379 2 10369 99280 1.13813 298.13813 149.63813 14963.81381 1.13813 298.13815 149.63814 14963.81401 1.13813 298.13813 149.63812999999993 14963.81300 2020-01-01 2020-01-02 2020-01-01 00:06:19 2020-01-02 03:34:40 2020-01-01 00:06:19.000 2020-01-02 03:34:40.000 379 99280 49829.5 4982950 379 99280 49829.5 4982950 -32190 32745 5265.02 526502 -128 127 1.66 166 +38 2 10028 99938 0.11411 300.11411 150.11411 15161.52552 0.11411 300.1141 150.11411 15161.52562 0.11411 300.11411 150.11411000000024 15161.52511 2020-01-01 2020-01-02 2020-01-01 00:00:38 2020-01-02 03:45:38 2020-01-01 00:00:38.000 2020-01-02 03:45:38.000 38 99938 49988 5048788 38 99938 49988 5048788 -32531 32404 4567.009900990099 461268 -126 125 -0.43564356435643564 -44 +380 2 10370 99281 1.14114 298.14114 149.64114 14964.11411 1.14114 298.14114 149.64114 14964.11431 1.14114 298.14114 149.64113999999987 14964.11400 2020-01-01 2020-01-02 2020-01-01 00:06:20 2020-01-02 03:34:41 2020-01-01 00:06:20.000 2020-01-02 03:34:41.000 380 99281 49830.5 4983050 380 99281 49830.5 4983050 -32189 32746 5266.02 526602 -128 124 0.1 10 +381 2 10371 99282 1.14414 298.14414 149.64414 14964.41441 1.14414 298.14413 149.64414 14964.41448 1.14414 298.14414 149.64414000000016 14964.41400 2020-01-01 2020-01-02 2020-01-01 00:06:21 2020-01-02 03:34:42 2020-01-01 00:06:21.000 2020-01-02 03:34:42.000 381 99282 49831.5 4983150 381 99282 49831.5 4983150 -32188 32747 5267.02 526702 -127 125 1.1 110 +382 2 10372 99283 1.14714 298.14714 149.64714 14964.71471 1.14714 298.14716 149.64714 14964.71459 1.14714 298.14714 149.64713999999978 14964.71400 2020-01-01 2020-01-02 2020-01-01 00:06:22 2020-01-02 03:34:43 2020-01-01 00:06:22.000 2020-01-02 03:34:43.000 382 99283 49832.5 4983250 382 99283 49832.5 4983250 -32187 32748 5268.02 526802 -126 126 2.1 210 383 2 10373 99284 1.15015 298.15015 149.65015 14965.01501 1.15015 298.15015 149.65014 14965.01472 1.15015 298.15015 149.65015 14965.01500 2020-01-01 2020-01-02 2020-01-01 00:06:23 2020-01-02 03:34:44 2020-01-01 00:06:23.000 2020-01-02 03:34:44.000 383 99284 49833.5 4983350 383 99284 49833.5 4983350 -32186 32749 5269.02 526902 -125 127 3.1 310 -384 2 10374 99285 1.15315 298.15315 149.65315 14965.31531 1.15315 298.15317 149.65315 14965.31547 1.15315 298.15315 149.65315 14965.31500 2020-01-01 2020-01-02 2020-01-01 00:06:24 2020-01-02 03:34:45 2020-01-01 00:06:24.000 2020-01-02 03:34:45.000 384 99285 49834.5 4983450 384 99285 49834.5 4983450 -32185 32750 5270.02 527002 -128 127 1.54 154 -385 2 10375 99286 1.15615 298.15615 149.65615 14965.61561 1.15615 298.15616 149.65615 14965.61578 1.15615 298.15615 149.65615 14965.61500 2020-01-01 2020-01-02 2020-01-01 00:06:25 2020-01-02 03:34:46 2020-01-01 00:06:25.000 2020-01-02 03:34:46.000 385 99286 49835.5 4983550 385 99286 49835.5 4983550 -32184 32751 5271.02 527102 -128 127 -0.02 -2 -386 2 10376 99287 1.15915 298.15915 149.65915 14965.91591 1.15915 298.15915 149.65915 14965.91594 1.15915 298.15915 149.65915 14965.91500 2020-01-01 2020-01-02 2020-01-01 00:06:26 2020-01-02 03:34:47 2020-01-01 00:06:26.000 2020-01-02 03:34:47.000 386 99287 49836.5 4983650 386 99287 49836.5 4983650 -32183 32752 5272.02 527202 -128 123 -1.58 -158 -387 2 10377 99288 1.16216 298.16216 149.66216 14966.21621 1.16216 298.16217 149.66216 14966.21606 1.16216 298.16216 149.66216 14966.21600 2020-01-01 2020-01-02 2020-01-01 00:06:27 2020-01-02 03:34:48 2020-01-01 00:06:27.000 2020-01-02 03:34:48.000 387 99288 49837.5 4983750 387 99288 49837.5 4983750 -32182 32753 5273.02 527302 -127 124 -0.58 -58 +384 2 10374 99285 1.15315 298.15315 149.65315 14965.31531 1.15315 298.15317 149.65315 14965.31547 1.15315 298.15315 149.65315000000007 14965.31500 2020-01-01 2020-01-02 2020-01-01 00:06:24 2020-01-02 03:34:45 2020-01-01 00:06:24.000 2020-01-02 03:34:45.000 384 99285 49834.5 4983450 384 99285 49834.5 4983450 -32185 32750 5270.02 527002 -128 127 1.54 154 +385 2 10375 99286 1.15615 298.15615 149.65615 14965.61561 1.15615 298.15616 149.65615 14965.61578 1.15615 298.15615 149.65615000000008 14965.61500 2020-01-01 2020-01-02 2020-01-01 00:06:25 2020-01-02 03:34:46 2020-01-01 00:06:25.000 2020-01-02 03:34:46.000 385 99286 49835.5 4983550 385 99286 49835.5 4983550 -32184 32751 5271.02 527102 -128 127 -0.02 -2 +386 2 10376 99287 1.15915 298.15915 149.65915 14965.91591 1.15915 298.15915 149.65915 14965.91594 1.15915 298.15915 149.65914999999998 14965.91500 2020-01-01 2020-01-02 2020-01-01 00:06:26 2020-01-02 03:34:47 2020-01-01 00:06:26.000 2020-01-02 03:34:47.000 386 99287 49836.5 4983650 386 99287 49836.5 4983650 -32183 32752 5272.02 527202 -128 123 -1.58 -158 +387 2 10377 99288 1.16216 298.16216 149.66216 14966.21621 1.16216 298.16217 149.66216 14966.21606 1.16216 298.16216 149.6621599999999 14966.21600 2020-01-01 2020-01-02 2020-01-01 00:06:27 2020-01-02 03:34:48 2020-01-01 00:06:27.000 2020-01-02 03:34:48.000 387 99288 49837.5 4983750 387 99288 49837.5 4983750 -32182 32753 5273.02 527302 -127 124 -0.58 -58 388 2 10378 99289 1.16516 298.16516 149.66516 14966.51651 1.16516 298.16516 149.66516 14966.51636 1.16516 298.16516 149.66516 14966.51600 2020-01-01 2020-01-02 2020-01-01 00:06:28 2020-01-02 03:34:49 2020-01-01 00:06:28.000 2020-01-02 03:34:49.000 388 99289 49838.5 4983850 388 99289 49838.5 4983850 -32181 32754 5274.02 527402 -126 125 0.42 42 -389 2 10379 99290 1.16816 298.16816 149.66816 14966.81681 1.16816 298.16818 149.66816 14966.81695 1.16816 298.16816 149.66816 14966.81600 2020-01-01 2020-01-02 2020-01-01 00:06:29 2020-01-02 03:34:50 2020-01-01 00:06:29.000 2020-01-02 03:34:50.000 389 99290 49839.5 4983950 389 99290 49839.5 4983950 -32180 32755 5275.02 527502 -125 126 1.42 142 -39 2 10029 99939 0.11711 300.11711 150.11711 15161.82882 0.11711 300.11713 150.11711 15161.82876 0.11711 300.11711 150.11711 15161.82811 2020-01-01 2020-01-02 2020-01-01 00:00:39 2020-01-02 03:45:39 2020-01-01 00:00:39.000 2020-01-02 03:45:39.000 39 99939 49989 5048889 39 99939 49989 5048889 -32530 32405 4568.009900990099 461369 -125 126 0.5643564356435643 57 -390 2 10380 99291 1.17117 298.17117 149.67117 14967.11711 1.17117 298.17117 149.67117 14967.11725 1.17117 298.17117 149.67117 14967.11700 2020-01-01 2020-01-02 2020-01-01 00:06:30 2020-01-02 03:34:51 2020-01-01 00:06:30.000 2020-01-02 03:34:51.000 390 99291 49840.5 4984050 390 99291 49840.5 4984050 -32179 32756 5276.02 527602 -124 127 2.42 242 -391 2 10381 99292 1.17417 298.17417 149.67417 14967.41741 1.17417 298.17416 149.67417 14967.41741 1.17417 298.17417 149.67417 14967.41700 2020-01-01 2020-01-02 2020-01-01 00:06:31 2020-01-02 03:34:52 2020-01-01 00:06:31.000 2020-01-02 03:34:52.000 391 99292 49841.5 4984150 391 99292 49841.5 4984150 -32178 32757 5277.02 527702 -128 127 0.86 86 -392 2 10382 99293 1.17717 298.17717 149.67717 14967.71771 1.17717 298.1772 149.67717 14967.71753 1.17717 298.17717 149.67717 14967.71700 2020-01-01 2020-01-02 2020-01-01 00:06:32 2020-01-02 03:34:53 2020-01-01 00:06:32.000 2020-01-02 03:34:53.000 392 99293 49842.5 4984250 392 99293 49842.5 4984250 -32177 32758 5278.02 527802 -128 123 -0.7 -70 -393 2 10383 99294 1.18018 298.18018 149.68018 14968.01801 1.18018 298.18018 149.68017 14968.01782 1.18018 298.18018 149.68018 14968.01800 2020-01-01 2020-01-02 2020-01-01 00:06:33 2020-01-02 03:34:54 2020-01-01 00:06:33.000 2020-01-02 03:34:54.000 393 99294 49843.5 4984350 393 99294 49843.5 4984350 -32176 32759 5279.02 527902 -127 124 0.3 30 +389 2 10379 99290 1.16816 298.16816 149.66816 14966.81681 1.16816 298.16818 149.66816 14966.81695 1.16816 298.16816 149.6681599999999 14966.81600 2020-01-01 2020-01-02 2020-01-01 00:06:29 2020-01-02 03:34:50 2020-01-01 00:06:29.000 2020-01-02 03:34:50.000 389 99290 49839.5 4983950 389 99290 49839.5 4983950 -32180 32755 5275.02 527502 -125 126 1.42 142 +39 2 10029 99939 0.11711 300.11711 150.11711 15161.82882 0.11711 300.11713 150.11711 15161.82876 0.11711 300.11711 150.1171099999999 15161.82811 2020-01-01 2020-01-02 2020-01-01 00:00:39 2020-01-02 03:45:39 2020-01-01 00:00:39.000 2020-01-02 03:45:39.000 39 99939 49989 5048889 39 99939 49989 5048889 -32530 32405 4568.009900990099 461369 -125 126 0.5643564356435643 57 +390 2 10380 99291 1.17117 298.17117 149.67117 14967.11711 1.17117 298.17117 149.67117 14967.11725 1.17117 298.17117 149.67116999999982 14967.11700 2020-01-01 2020-01-02 2020-01-01 00:06:30 2020-01-02 03:34:51 2020-01-01 00:06:30.000 2020-01-02 03:34:51.000 390 99291 49840.5 4984050 390 99291 49840.5 4984050 -32179 32756 5276.02 527602 -124 127 2.42 242 +391 2 10381 99292 1.17417 298.17417 149.67417 14967.41741 1.17417 298.17416 149.67417 14967.41741 1.17417 298.17417 149.67417000000015 14967.41700 2020-01-01 2020-01-02 2020-01-01 00:06:31 2020-01-02 03:34:52 2020-01-01 00:06:31.000 2020-01-02 03:34:52.000 391 99292 49841.5 4984150 391 99292 49841.5 4984150 -32178 32757 5277.02 527702 -128 127 0.86 86 +392 2 10382 99293 1.17717 298.17717 149.67717 14967.71771 1.17717 298.1772 149.67717 14967.71753 1.17717 298.17717 149.67717000000016 14967.71700 2020-01-01 2020-01-02 2020-01-01 00:06:32 2020-01-02 03:34:53 2020-01-01 00:06:32.000 2020-01-02 03:34:53.000 392 99293 49842.5 4984250 392 99293 49842.5 4984250 -32177 32758 5278.02 527802 -128 123 -0.7 -70 +393 2 10383 99294 1.18018 298.18018 149.68018 14968.01801 1.18018 298.18018 149.68017 14968.01782 1.18018 298.18018 149.68017999999995 14968.01800 2020-01-01 2020-01-02 2020-01-01 00:06:33 2020-01-02 03:34:54 2020-01-01 00:06:33.000 2020-01-02 03:34:54.000 393 99294 49843.5 4984350 393 99294 49843.5 4984350 -32176 32759 5279.02 527902 -127 124 0.3 30 394 2 10384 99295 1.18318 298.18318 149.68318 14968.31831 1.18318 298.1832 149.68318 14968.31842 1.18318 298.18318 149.68318 14968.31800 2020-01-01 2020-01-02 2020-01-01 00:06:34 2020-01-02 03:34:55 2020-01-01 00:06:34.000 2020-01-02 03:34:55.000 394 99295 49844.5 4984450 394 99295 49844.5 4984450 -32175 32760 5280.02 528002 -126 125 1.3 130 -395 2 10385 99296 1.18618 298.18618 149.68618 14968.61861 1.18618 298.1862 149.68618 14968.61875 1.18618 298.18618 149.68618 14968.61800 2020-01-01 2020-01-02 2020-01-01 00:06:35 2020-01-02 03:34:56 2020-01-01 00:06:35.000 2020-01-02 03:34:56.000 395 99296 49845.5 4984550 395 99296 49845.5 4984550 -32174 32761 5281.02 528102 -125 126 2.3 230 -396 2 10386 99297 1.18918 298.18918 149.68918 14968.91891 1.18918 298.18918 149.68918 14968.91889 1.18918 298.18918 149.68918 14968.91800 2020-01-01 2020-01-02 2020-01-01 00:06:36 2020-01-02 03:34:57 2020-01-01 00:06:36.000 2020-01-02 03:34:57.000 396 99297 49846.5 4984650 396 99297 49846.5 4984650 -32173 32762 5282.02 528202 -124 127 3.3 330 -397 2 10387 99298 1.19219 298.19219 149.69219 14969.21921 1.19219 298.1922 149.69219 14969.21964 1.19219 298.19219 149.69219 14969.21900 2020-01-01 2020-01-02 2020-01-01 00:06:37 2020-01-02 03:34:58 2020-01-01 00:06:37.000 2020-01-02 03:34:58.000 397 99298 49847.5 4984750 397 99298 49847.5 4984750 -32172 32763 5283.02 528302 -128 127 1.74 174 -398 2 10388 99299 1.19519 298.19519 149.69519 14969.51951 1.19519 298.1952 149.69519 14969.51929 1.19519 298.19519 149.69519 14969.51900 2020-01-01 2020-01-02 2020-01-01 00:06:38 2020-01-02 03:34:59 2020-01-01 00:06:38.000 2020-01-02 03:34:59.000 398 99299 49848.5 4984850 398 99299 49848.5 4984850 -32171 32764 5284.02 528402 -128 123 0.18 18 -399 2 10389 99300 1.19819 298.19819 149.69819 14969.81981 1.19819 298.1982 149.69819 14969.81989 1.19819 298.19819 149.69819 14969.81900 2020-01-01 2020-01-02 2020-01-01 00:06:39 2020-01-02 03:35:00 2020-01-01 00:06:39.000 2020-01-02 03:35:00.000 399 99300 49849.5 4984950 399 99300 49849.5 4984950 -32170 32765 5285.02 528502 -127 124 1.18 118 -4 2 1003 9994 0.01201 300.01201 150.01201 15151.21321 0.01201 300.01202 150.01201 15151.21318 0.01201 300.01201 150.01201 15151.21301 2020-01-01 2020-01-02 2020-01-01 00:00:04 2020-01-02 03:45:04 2020-01-01 00:00:04.000 2020-01-02 03:45:04.000 4 99904 49954 5045354 4 99904 49954 5045354 -32565 32370 4533.009900990099 457834 -128 127 -1.4851485148514851 -150 -40 2 10030 99940 0.12012 300.12012 150.12012 15162.13213 0.12012 300.12012 150.12011 15162.13191 0.12012 300.12012 150.12012 15162.13212 2020-01-01 2020-01-02 2020-01-01 00:00:40 2020-01-02 03:45:40 2020-01-01 00:00:40.000 2020-01-02 03:45:40.000 40 99940 49990 5048990 40 99940 49990 5048990 -32529 32406 4569.009900990099 461470 -124 127 1.5643564356435644 158 -400 2 10390 99301 1.2012 298.2012 149.7012 14970.12012 1.2012 298.2012 149.7012 14970.12022 1.20120 298.20120 149.70120 14970.12000 2020-01-01 2020-01-02 2020-01-01 00:06:40 2020-01-02 03:35:01 2020-01-01 00:06:40.000 2020-01-02 03:35:01.000 400 99301 49850.5 4985050 400 99301 49850.5 4985050 -32169 32766 5286.02 528602 -126 125 2.18 218 -401 2 10391 99302 1.2042 298.2042 149.7042 14970.42042 1.2042 298.2042 149.7042 14970.42035 1.20420 298.20420 149.70420 14970.42000 2020-01-01 2020-01-02 2020-01-01 00:06:41 2020-01-02 03:35:02 2020-01-01 00:06:41.000 2020-01-02 03:35:02.000 401 99302 49851.5 4985150 401 99302 49851.5 4985150 -32168 32767 5287.02 528702 -125 126 3.18 318 -402 2 10392 99303 1.2072 298.2072 149.7072 14970.72072 1.2072 298.2072 149.70721 14970.72111 1.20720 298.20720 149.70720 14970.72000 2020-01-01 2020-01-02 2020-01-01 00:06:42 2020-01-02 03:35:03 2020-01-01 00:06:42.000 2020-01-02 03:35:03.000 402 99303 49852.5 4985250 402 99303 49852.5 4985250 -32768 32370 4632.66 463266 -124 127 4.18 418 -403 2 10393 99304 1.21021 298.21021 149.71021 14971.02102 1.21021 298.2102 149.7102 14971.02077 1.21021 298.21021 149.71021 14971.02100 2020-01-01 2020-01-02 2020-01-01 00:06:43 2020-01-02 03:35:04 2020-01-01 00:06:43.000 2020-01-02 03:35:04.000 403 99304 49853.5 4985350 403 99304 49853.5 4985350 -32767 32371 4633.66 463366 -128 127 2.62 262 -404 2 10394 99305 1.21321 298.21321 149.71321 14971.32132 1.21321 298.21323 149.71321 14971.32139 1.21321 298.21321 149.71321 14971.32100 2020-01-01 2020-01-02 2020-01-01 00:06:44 2020-01-02 03:35:05 2020-01-01 00:06:44.000 2020-01-02 03:35:05.000 404 99305 49854.5 4985450 404 99305 49854.5 4985450 -32766 32372 4634.66 463466 -128 127 1.06 106 +395 2 10385 99296 1.18618 298.18618 149.68618 14968.61861 1.18618 298.1862 149.68618 14968.61875 1.18618 298.18618 149.68618000000006 14968.61800 2020-01-01 2020-01-02 2020-01-01 00:06:35 2020-01-02 03:34:56 2020-01-01 00:06:35.000 2020-01-02 03:34:56.000 395 99296 49845.5 4984550 395 99296 49845.5 4984550 -32174 32761 5281.02 528102 -125 126 2.3 230 +396 2 10386 99297 1.18918 298.18918 149.68918 14968.91891 1.18918 298.18918 149.68918 14968.91889 1.18918 298.18918 149.68917999999994 14968.91800 2020-01-01 2020-01-02 2020-01-01 00:06:36 2020-01-02 03:34:57 2020-01-01 00:06:36.000 2020-01-02 03:34:57.000 396 99297 49846.5 4984650 396 99297 49846.5 4984650 -32173 32762 5282.02 528202 -124 127 3.3 330 +397 2 10387 99298 1.19219 298.19219 149.69219 14969.21921 1.19219 298.1922 149.69219 14969.21964 1.19219 298.19219 149.6921899999999 14969.21900 2020-01-01 2020-01-02 2020-01-01 00:06:37 2020-01-02 03:34:58 2020-01-01 00:06:37.000 2020-01-02 03:34:58.000 397 99298 49847.5 4984750 397 99298 49847.5 4984750 -32172 32763 5283.02 528302 -128 127 1.74 174 +398 2 10388 99299 1.19519 298.19519 149.69519 14969.51951 1.19519 298.1952 149.69519 14969.51929 1.19519 298.19519 149.6951900000002 14969.51900 2020-01-01 2020-01-02 2020-01-01 00:06:38 2020-01-02 03:34:59 2020-01-01 00:06:38.000 2020-01-02 03:34:59.000 398 99299 49848.5 4984850 398 99299 49848.5 4984850 -32171 32764 5284.02 528402 -128 123 0.18 18 +399 2 10389 99300 1.19819 298.19819 149.69819 14969.81981 1.19819 298.1982 149.69819 14969.81989 1.19819 298.19819 149.69818999999987 14969.81900 2020-01-01 2020-01-02 2020-01-01 00:06:39 2020-01-02 03:35:00 2020-01-01 00:06:39.000 2020-01-02 03:35:00.000 399 99300 49849.5 4984950 399 99300 49849.5 4984950 -32170 32765 5285.02 528502 -127 124 1.18 118 +4 2 1003 9994 0.01201 300.01201 150.01201 15151.21321 0.01201 300.01202 150.01201 15151.21318 0.01201 300.01201 150.01201000000017 15151.21301 2020-01-01 2020-01-02 2020-01-01 00:00:04 2020-01-02 03:45:04 2020-01-01 00:00:04.000 2020-01-02 03:45:04.000 4 99904 49954 5045354 4 99904 49954 5045354 -32565 32370 4533.009900990099 457834 -128 127 -1.4851485148514851 -150 +40 2 10030 99940 0.12012 300.12012 150.12012 15162.13213 0.12012 300.12012 150.12011 15162.13191 0.12012 300.12012 150.1201199999998 15162.13212 2020-01-01 2020-01-02 2020-01-01 00:00:40 2020-01-02 03:45:40 2020-01-01 00:00:40.000 2020-01-02 03:45:40.000 40 99940 49990 5048990 40 99940 49990 5048990 -32529 32406 4569.009900990099 461470 -124 127 1.5643564356435644 158 +400 2 10390 99301 1.2012 298.2012 149.7012 14970.12012 1.2012 298.2012 149.7012 14970.12022 1.20120 298.20120 149.70120000000003 14970.12000 2020-01-01 2020-01-02 2020-01-01 00:06:40 2020-01-02 03:35:01 2020-01-01 00:06:40.000 2020-01-02 03:35:01.000 400 99301 49850.5 4985050 400 99301 49850.5 4985050 -32169 32766 5286.02 528602 -126 125 2.18 218 +401 2 10391 99302 1.2042 298.2042 149.7042 14970.42042 1.2042 298.2042 149.7042 14970.42035 1.20420 298.20420 149.7042000000001 14970.42000 2020-01-01 2020-01-02 2020-01-01 00:06:41 2020-01-02 03:35:02 2020-01-01 00:06:41.000 2020-01-02 03:35:02.000 401 99302 49851.5 4985150 401 99302 49851.5 4985150 -32168 32767 5287.02 528702 -125 126 3.18 318 +402 2 10392 99303 1.2072 298.2072 149.7072 14970.72072 1.2072 298.2072 149.70721 14970.72111 1.20720 298.20720 149.70720000000006 14970.72000 2020-01-01 2020-01-02 2020-01-01 00:06:42 2020-01-02 03:35:03 2020-01-01 00:06:42.000 2020-01-02 03:35:03.000 402 99303 49852.5 4985250 402 99303 49852.5 4985250 -32768 32370 4632.66 463266 -124 127 4.18 418 +403 2 10393 99304 1.21021 298.21021 149.71021 14971.02102 1.21021 298.2102 149.7102 14971.02077 1.21021 298.21021 149.71020999999993 14971.02100 2020-01-01 2020-01-02 2020-01-01 00:06:43 2020-01-02 03:35:04 2020-01-01 00:06:43.000 2020-01-02 03:35:04.000 403 99304 49853.5 4985350 403 99304 49853.5 4985350 -32767 32371 4633.66 463366 -128 127 2.62 262 +404 2 10394 99305 1.21321 298.21321 149.71321 14971.32132 1.21321 298.21323 149.71321 14971.32139 1.21321 298.21321 149.71320999999992 14971.32100 2020-01-01 2020-01-02 2020-01-01 00:06:44 2020-01-02 03:35:05 2020-01-01 00:06:44.000 2020-01-02 03:35:05.000 404 99305 49854.5 4985450 404 99305 49854.5 4985450 -32766 32372 4634.66 463466 -128 127 1.06 106 405 2 10395 99306 1.21621 298.21621 149.71621 14971.62162 1.21621 298.21622 149.71621 14971.62169 1.21621 298.21621 149.71621 14971.62100 2020-01-01 2020-01-02 2020-01-01 00:06:45 2020-01-02 03:35:06 2020-01-01 00:06:45.000 2020-01-02 03:35:06.000 405 99306 49855.5 4985550 405 99306 49855.5 4985550 -32765 32373 4635.66 463566 -128 124 -0.5 -50 -406 2 10396 99307 1.21921 298.21921 149.71921 14971.92192 1.21921 298.2192 149.71921 14971.92199 1.21921 298.21921 149.71921 14971.92100 2020-01-01 2020-01-02 2020-01-01 00:06:46 2020-01-02 03:35:07 2020-01-01 00:06:46.000 2020-01-02 03:35:07.000 406 99307 49856.5 4985650 406 99307 49856.5 4985650 -32764 32374 4636.66 463666 -127 125 0.5 50 -407 2 10397 99308 1.22222 298.22222 149.72222 14972.22222 1.22222 298.22223 149.72222 14972.22257 1.22222 298.22222 149.72222 14972.22200 2020-01-01 2020-01-02 2020-01-01 00:06:47 2020-01-02 03:35:08 2020-01-01 00:06:47.000 2020-01-02 03:35:08.000 407 99308 49857.5 4985750 407 99308 49857.5 4985750 -32763 32375 4637.66 463766 -126 126 1.5 150 -408 2 10398 99309 1.22522 298.22522 149.72522 14972.52252 1.22522 298.22522 149.72522 14972.52224 1.22522 298.22522 149.72522 14972.52200 2020-01-01 2020-01-02 2020-01-01 00:06:48 2020-01-02 03:35:09 2020-01-01 00:06:48.000 2020-01-02 03:35:09.000 408 99309 49858.5 4985850 408 99309 49858.5 4985850 -32762 32376 4638.66 463866 -125 127 2.5 250 -409 2 10399 99310 1.22822 298.22822 149.72822 14972.82282 1.22822 298.22824 149.72822 14972.82286 1.22822 298.22822 149.72822 14972.82200 2020-01-01 2020-01-02 2020-01-01 00:06:49 2020-01-02 03:35:10 2020-01-01 00:06:49.000 2020-01-02 03:35:10.000 409 99310 49859.5 4985950 409 99310 49859.5 4985950 -32761 32377 4639.66 463966 -128 127 0.94 94 -41 2 10031 99941 0.12312 300.12312 150.12312 15162.43543 0.12312 300.1231 150.12312 15162.43521 0.12312 300.12312 150.12312 15162.43512 2020-01-01 2020-01-02 2020-01-01 00:00:41 2020-01-02 03:45:41 2020-01-01 00:00:41.000 2020-01-02 03:45:41.000 41 99941 49991 5049091 41 99941 49991 5049091 -32528 32407 4570.009900990099 461571 -128 127 0.0297029702970297 3 -410 2 10400 99311 1.23123 298.23123 149.73123 14973.12312 1.23123 298.23123 149.73123 14973.12316 1.23123 298.23123 149.73123 14973.12300 2020-01-01 2020-01-02 2020-01-01 00:06:50 2020-01-02 03:35:11 2020-01-01 00:06:50.000 2020-01-02 03:35:11.000 410 99311 49860.5 4986050 410 99311 49860.5 4986050 -32760 32378 4640.66 464066 -128 127 -0.62 -62 +406 2 10396 99307 1.21921 298.21921 149.71921 14971.92192 1.21921 298.2192 149.71921 14971.92199 1.21921 298.21921 149.71920999999992 14971.92100 2020-01-01 2020-01-02 2020-01-01 00:06:46 2020-01-02 03:35:07 2020-01-01 00:06:46.000 2020-01-02 03:35:07.000 406 99307 49856.5 4985650 406 99307 49856.5 4985650 -32764 32374 4636.66 463666 -127 125 0.5 50 +407 2 10397 99308 1.22222 298.22222 149.72222 14972.22222 1.22222 298.22223 149.72222 14972.22257 1.22222 298.22222 149.72221999999982 14972.22200 2020-01-01 2020-01-02 2020-01-01 00:06:47 2020-01-02 03:35:08 2020-01-01 00:06:47.000 2020-01-02 03:35:08.000 407 99308 49857.5 4985750 407 99308 49857.5 4985750 -32763 32375 4637.66 463766 -126 126 1.5 150 +408 2 10398 99309 1.22522 298.22522 149.72522 14972.52252 1.22522 298.22522 149.72522 14972.52224 1.22522 298.22522 149.7252200000001 14972.52200 2020-01-01 2020-01-02 2020-01-01 00:06:48 2020-01-02 03:35:09 2020-01-01 00:06:48.000 2020-01-02 03:35:09.000 408 99309 49858.5 4985850 408 99309 49858.5 4985850 -32762 32376 4638.66 463866 -125 127 2.5 250 +409 2 10399 99310 1.22822 298.22822 149.72822 14972.82282 1.22822 298.22824 149.72822 14972.82286 1.22822 298.22822 149.7282200000002 14972.82200 2020-01-01 2020-01-02 2020-01-01 00:06:49 2020-01-02 03:35:10 2020-01-01 00:06:49.000 2020-01-02 03:35:10.000 409 99310 49859.5 4985950 409 99310 49859.5 4985950 -32761 32377 4639.66 463966 -128 127 0.94 94 +41 2 10031 99941 0.12312 300.12312 150.12312 15162.43543 0.12312 300.1231 150.12312 15162.43521 0.12312 300.12312 150.12312000000014 15162.43512 2020-01-01 2020-01-02 2020-01-01 00:00:41 2020-01-02 03:45:41 2020-01-01 00:00:41.000 2020-01-02 03:45:41.000 41 99941 49991 5049091 41 99941 49991 5049091 -32528 32407 4570.009900990099 461571 -128 127 0.0297029702970297 3 +410 2 10400 99311 1.23123 298.23123 149.73123 14973.12312 1.23123 298.23123 149.73123 14973.12316 1.23123 298.23123 149.73122999999995 14973.12300 2020-01-01 2020-01-02 2020-01-01 00:06:50 2020-01-02 03:35:11 2020-01-01 00:06:50.000 2020-01-02 03:35:11.000 410 99311 49860.5 4986050 410 99311 49860.5 4986050 -32760 32378 4640.66 464066 -128 127 -0.62 -62 411 2 10401 99312 1.23423 298.23423 149.73423 14973.42342 1.23423 298.23422 149.73423 14973.42345 1.23423 298.23423 149.73423 14973.42300 2020-01-01 2020-01-02 2020-01-01 00:06:51 2020-01-02 03:35:12 2020-01-01 00:06:51.000 2020-01-02 03:35:12.000 411 99312 49861.5 4986150 411 99312 49861.5 4986150 -32759 32379 4641.66 464166 -128 123 -2.18 -218 -412 2 10402 99313 1.23723 298.23723 149.73723 14973.72372 1.23723 298.23724 149.73724 14973.72405 1.23723 298.23723 149.73723 14973.72300 2020-01-01 2020-01-02 2020-01-01 00:06:52 2020-01-02 03:35:13 2020-01-01 00:06:52.000 2020-01-02 03:35:13.000 412 99313 49862.5 4986250 412 99313 49862.5 4986250 -32758 32380 4642.66 464266 -127 124 -1.18 -118 -413 2 10403 99314 1.24024 298.24024 149.74024 14974.02402 1.24024 298.24023 149.74023 14974.02374 1.24024 298.24024 149.74024 14974.02400 2020-01-01 2020-01-02 2020-01-01 00:06:53 2020-01-02 03:35:14 2020-01-01 00:06:53.000 2020-01-02 03:35:14.000 413 99314 49863.5 4986350 413 99314 49863.5 4986350 -32757 32381 4643.66 464366 -126 125 -0.18 -18 -414 2 10404 99315 1.24324 298.24324 149.74324 14974.32432 1.24324 298.24326 149.74324 14974.32433 1.24324 298.24324 149.74324 14974.32400 2020-01-01 2020-01-02 2020-01-01 00:06:54 2020-01-02 03:35:15 2020-01-01 00:06:54.000 2020-01-02 03:35:15.000 414 99315 49864.5 4986450 414 99315 49864.5 4986450 -32756 32382 4644.66 464466 -125 126 0.82 82 -415 2 10405 99316 1.24624 298.24624 149.74624 14974.62462 1.24624 298.24625 149.74624 14974.62463 1.24624 298.24624 149.74624 14974.62400 2020-01-01 2020-01-02 2020-01-01 00:06:55 2020-01-02 03:35:16 2020-01-01 00:06:55.000 2020-01-02 03:35:16.000 415 99316 49865.5 4986550 415 99316 49865.5 4986550 -32755 32383 4645.66 464566 -124 127 1.82 182 -416 2 10406 99317 1.24924 298.24924 149.74924 14974.92492 1.24924 298.24924 149.74924 14974.92492 1.24924 298.24924 149.74924 14974.92400 2020-01-01 2020-01-02 2020-01-01 00:06:56 2020-01-02 03:35:17 2020-01-01 00:06:56.000 2020-01-02 03:35:17.000 416 99317 49866.5 4986650 416 99317 49866.5 4986650 -32754 32384 4646.66 464666 -128 127 0.26 26 -417 2 10407 99318 1.25225 298.25225 149.75225 14975.22522 1.25225 298.25226 149.75225 14975.22552 1.25225 298.25225 149.75225 14975.22500 2020-01-01 2020-01-02 2020-01-01 00:06:57 2020-01-02 03:35:18 2020-01-01 00:06:57.000 2020-01-02 03:35:18.000 417 99318 49867.5 4986750 417 99318 49867.5 4986750 -32753 32385 4647.66 464766 -128 123 -1.3 -130 -418 2 10408 99319 1.25525 298.25525 149.75525 14975.52552 1.25525 298.25525 149.75525 14975.52521 1.25525 298.25525 149.75525 14975.52500 2020-01-01 2020-01-02 2020-01-01 00:06:58 2020-01-02 03:35:19 2020-01-01 00:06:58.000 2020-01-02 03:35:19.000 418 99319 49868.5 4986850 418 99319 49868.5 4986850 -32752 32386 4648.66 464866 -127 124 -0.3 -30 -419 2 10409 99320 1.25825 298.25825 149.75825 14975.82582 1.25825 298.25827 149.75825 14975.8258 1.25825 298.25825 149.75825 14975.82500 2020-01-01 2020-01-02 2020-01-01 00:06:59 2020-01-02 03:35:20 2020-01-01 00:06:59.000 2020-01-02 03:35:20.000 419 99320 49869.5 4986950 419 99320 49869.5 4986950 -32751 32387 4649.66 464966 -126 125 0.7 70 -42 2 10032 99942 0.12612 300.12612 150.12612 15162.73873 0.12612 300.12613 150.12612 15162.73896 0.12612 300.12612 150.12612 15162.73812 2020-01-01 2020-01-02 2020-01-01 00:00:42 2020-01-02 03:45:42 2020-01-01 00:00:42.000 2020-01-02 03:45:42.000 42 99942 49992 5049192 42 99942 49992 5049192 -32527 32408 4571.009900990099 461672 -128 127 -1.504950495049505 -152 -420 2 10410 99321 1.26126 298.26126 149.76126 14976.12612 1.26126 298.26126 149.76126 14976.12609 1.26126 298.26126 149.76126 14976.12600 2020-01-01 2020-01-02 2020-01-01 00:07:00 2020-01-02 03:35:21 2020-01-01 00:07:00.000 2020-01-02 03:35:21.000 420 99321 49870.5 4987050 420 99321 49870.5 4987050 -32750 32388 4650.66 465066 -125 126 1.7 170 -421 2 10411 99322 1.26426 298.26426 149.76426 14976.42642 1.26426 298.26425 149.76426 14976.4264 1.26426 298.26426 149.76426 14976.42600 2020-01-01 2020-01-02 2020-01-01 00:07:01 2020-01-02 03:35:22 2020-01-01 00:07:01.000 2020-01-02 03:35:22.000 421 99322 49871.5 4987150 421 99322 49871.5 4987150 -32749 32389 4651.66 465166 -124 127 2.7 270 +412 2 10402 99313 1.23723 298.23723 149.73723 14973.72372 1.23723 298.23724 149.73724 14973.72405 1.23723 298.23723 149.73723000000007 14973.72300 2020-01-01 2020-01-02 2020-01-01 00:06:52 2020-01-02 03:35:13 2020-01-01 00:06:52.000 2020-01-02 03:35:13.000 412 99313 49862.5 4986250 412 99313 49862.5 4986250 -32758 32380 4642.66 464266 -127 124 -1.18 -118 +413 2 10403 99314 1.24024 298.24024 149.74024 14974.02402 1.24024 298.24023 149.74023 14974.02374 1.24024 298.24024 149.74023999999983 14974.02400 2020-01-01 2020-01-02 2020-01-01 00:06:53 2020-01-02 03:35:14 2020-01-01 00:06:53.000 2020-01-02 03:35:14.000 413 99314 49863.5 4986350 413 99314 49863.5 4986350 -32757 32381 4643.66 464366 -126 125 -0.18 -18 +414 2 10404 99315 1.24324 298.24324 149.74324 14974.32432 1.24324 298.24326 149.74324 14974.32433 1.24324 298.24324 149.74323999999984 14974.32400 2020-01-01 2020-01-02 2020-01-01 00:06:54 2020-01-02 03:35:15 2020-01-01 00:06:54.000 2020-01-02 03:35:15.000 414 99315 49864.5 4986450 414 99315 49864.5 4986450 -32756 32382 4644.66 464466 -125 126 0.82 82 +415 2 10405 99316 1.24624 298.24624 149.74624 14974.62462 1.24624 298.24625 149.74624 14974.62463 1.24624 298.24624 149.74624000000023 14974.62400 2020-01-01 2020-01-02 2020-01-01 00:06:55 2020-01-02 03:35:16 2020-01-01 00:06:55.000 2020-01-02 03:35:16.000 415 99316 49865.5 4986550 415 99316 49865.5 4986550 -32755 32383 4645.66 464566 -124 127 1.82 182 +416 2 10406 99317 1.24924 298.24924 149.74924 14974.92492 1.24924 298.24924 149.74924 14974.92492 1.24924 298.24924 149.74923999999987 14974.92400 2020-01-01 2020-01-02 2020-01-01 00:06:56 2020-01-02 03:35:17 2020-01-01 00:06:56.000 2020-01-02 03:35:17.000 416 99317 49866.5 4986650 416 99317 49866.5 4986650 -32754 32384 4646.66 464666 -128 127 0.26 26 +417 2 10407 99318 1.25225 298.25225 149.75225 14975.22522 1.25225 298.25226 149.75225 14975.22552 1.25225 298.25225 149.75224999999975 14975.22500 2020-01-01 2020-01-02 2020-01-01 00:06:57 2020-01-02 03:35:18 2020-01-01 00:06:57.000 2020-01-02 03:35:18.000 417 99318 49867.5 4986750 417 99318 49867.5 4986750 -32753 32385 4647.66 464766 -128 123 -1.3 -130 +418 2 10408 99319 1.25525 298.25525 149.75525 14975.52552 1.25525 298.25525 149.75525 14975.52521 1.25525 298.25525 149.7552500000001 14975.52500 2020-01-01 2020-01-02 2020-01-01 00:06:58 2020-01-02 03:35:19 2020-01-01 00:06:58.000 2020-01-02 03:35:19.000 418 99319 49868.5 4986850 418 99319 49868.5 4986850 -32752 32386 4648.66 464866 -127 124 -0.3 -30 +419 2 10409 99320 1.25825 298.25825 149.75825 14975.82582 1.25825 298.25827 149.75825 14975.8258 1.25825 298.25825 149.75825000000012 14975.82500 2020-01-01 2020-01-02 2020-01-01 00:06:59 2020-01-02 03:35:20 2020-01-01 00:06:59.000 2020-01-02 03:35:20.000 419 99320 49869.5 4986950 419 99320 49869.5 4986950 -32751 32387 4649.66 464966 -126 125 0.7 70 +42 2 10032 99942 0.12612 300.12612 150.12612 15162.73873 0.12612 300.12613 150.12612 15162.73896 0.12612 300.12612 150.12612000000007 15162.73812 2020-01-01 2020-01-02 2020-01-01 00:00:42 2020-01-02 03:45:42 2020-01-01 00:00:42.000 2020-01-02 03:45:42.000 42 99942 49992 5049192 42 99942 49992 5049192 -32527 32408 4571.009900990099 461672 -128 127 -1.504950495049505 -152 +420 2 10410 99321 1.26126 298.26126 149.76126 14976.12612 1.26126 298.26126 149.76126 14976.12609 1.26126 298.26126 149.76125999999994 14976.12600 2020-01-01 2020-01-02 2020-01-01 00:07:00 2020-01-02 03:35:21 2020-01-01 00:07:00.000 2020-01-02 03:35:21.000 420 99321 49870.5 4987050 420 99321 49870.5 4987050 -32750 32388 4650.66 465066 -125 126 1.7 170 +421 2 10411 99322 1.26426 298.26426 149.76426 14976.42642 1.26426 298.26425 149.76426 14976.4264 1.26426 298.26426 149.76425999999995 14976.42600 2020-01-01 2020-01-02 2020-01-01 00:07:01 2020-01-02 03:35:22 2020-01-01 00:07:01.000 2020-01-02 03:35:22.000 421 99322 49871.5 4987150 421 99322 49871.5 4987150 -32749 32389 4651.66 465166 -124 127 2.7 270 422 2 10412 99323 1.26726 298.26726 149.76726 14976.72672 1.26726 298.26727 149.76727 14976.72702 1.26726 298.26726 149.76726 14976.72600 2020-01-01 2020-01-02 2020-01-01 00:07:02 2020-01-02 03:35:23 2020-01-01 00:07:02.000 2020-01-02 03:35:23.000 422 99323 49872.5 4987250 422 99323 49872.5 4987250 -32748 32390 4652.66 465266 -128 127 1.14 114 -423 2 10413 99324 1.27027 298.27027 149.77027 14977.02702 1.27027 298.27026 149.77026 14977.02667 1.27027 298.27027 149.77027 14977.02700 2020-01-01 2020-01-02 2020-01-01 00:07:03 2020-01-02 03:35:24 2020-01-01 00:07:03.000 2020-01-02 03:35:24.000 423 99324 49873.5 4987350 423 99324 49873.5 4987350 -32747 32391 4653.66 465366 -128 123 -0.42 -42 -424 2 10414 99325 1.27327 298.27327 149.77327 14977.32732 1.27327 298.2733 149.77327 14977.32727 1.27327 298.27327 149.77327 14977.32700 2020-01-01 2020-01-02 2020-01-01 00:07:04 2020-01-02 03:35:25 2020-01-01 00:07:04.000 2020-01-02 03:35:25.000 424 99325 49874.5 4987450 424 99325 49874.5 4987450 -32746 32392 4654.66 465466 -127 124 0.58 58 -425 2 10415 99326 1.27627 298.27627 149.77627 14977.62762 1.27627 298.27628 149.77627 14977.62756 1.27627 298.27627 149.77627 14977.62700 2020-01-01 2020-01-02 2020-01-01 00:07:05 2020-01-02 03:35:26 2020-01-01 00:07:05.000 2020-01-02 03:35:26.000 425 99326 49875.5 4987550 425 99326 49875.5 4987550 -32745 32393 4655.66 465566 -126 125 1.58 158 -426 2 10416 99327 1.27927 298.27927 149.77927 14977.92792 1.27927 298.27927 149.77927 14977.92787 1.27927 298.27927 149.77927 14977.92700 2020-01-01 2020-01-02 2020-01-01 00:07:06 2020-01-02 03:35:27 2020-01-01 00:07:06.000 2020-01-02 03:35:27.000 426 99327 49876.5 4987650 426 99327 49876.5 4987650 -32744 32394 4656.66 465666 -125 126 2.58 258 -427 2 10417 99328 1.28228 298.28228 149.78228 14978.22822 1.28228 298.2823 149.78228 14978.22849 1.28228 298.28228 149.78228 14978.22800 2020-01-01 2020-01-02 2020-01-01 00:07:07 2020-01-02 03:35:28 2020-01-01 00:07:07.000 2020-01-02 03:35:28.000 427 99328 49877.5 4987750 427 99328 49877.5 4987750 -32743 32395 4657.66 465766 -124 127 3.58 358 -428 2 10418 99329 1.28528 298.28528 149.78528 14978.52852 1.28528 298.28528 149.78528 14978.52815 1.28528 298.28528 149.78528 14978.52800 2020-01-01 2020-01-02 2020-01-01 00:07:08 2020-01-02 03:35:29 2020-01-01 00:07:08.000 2020-01-02 03:35:29.000 428 99329 49878.5 4987850 428 99329 49878.5 4987850 -32742 32396 4658.66 465866 -128 127 2.02 202 -429 2 10419 99330 1.28828 298.28828 149.78828 14978.82882 1.28828 298.2883 149.78828 14978.8289 1.28828 298.28828 149.78828 14978.82800 2020-01-01 2020-01-02 2020-01-01 00:07:09 2020-01-02 03:35:30 2020-01-01 00:07:09.000 2020-01-02 03:35:30.000 429 99330 49879.5 4987950 429 99330 49879.5 4987950 -32741 32397 4659.66 465966 -128 127 0.46 46 -43 2 10033 99943 0.12912 300.12912 150.12912 15163.04204 0.12912 300.12912 150.12912 15163.04211 0.12912 300.12912 150.12912 15163.04112 2020-01-01 2020-01-02 2020-01-01 00:00:43 2020-01-02 03:45:43 2020-01-01 00:00:43.000 2020-01-02 03:45:43.000 43 99943 49993 5049293 43 99943 49993 5049293 -32526 32409 4572.009900990099 461773 -128 124 -3.0396039603960396 -307 -430 2 10420 99331 1.29129 298.29129 149.79129 14979.12912 1.29129 298.2913 149.79129 14979.12904 1.29129 298.29129 149.79129 14979.12900 2020-01-01 2020-01-02 2020-01-01 00:07:10 2020-01-02 03:35:31 2020-01-01 00:07:10.000 2020-01-02 03:35:31.000 430 99331 49880.5 4988050 430 99331 49880.5 4988050 -32740 32398 4660.66 466066 -128 124 -1.1 -110 -431 2 10421 99332 1.29429 298.29429 149.79429 14979.42942 1.29429 298.29428 149.79429 14979.42933 1.29429 298.29429 149.79429 14979.42900 2020-01-01 2020-01-02 2020-01-01 00:07:11 2020-01-02 03:35:32 2020-01-01 00:07:11.000 2020-01-02 03:35:32.000 431 99332 49881.5 4988150 431 99332 49881.5 4988150 -32739 32399 4661.66 466166 -127 125 -0.1 -10 -432 2 10422 99333 1.29729 298.29729 149.79729 14979.72972 1.29729 298.2973 149.79729 14979.72996 1.29729 298.29729 149.79729 14979.72900 2020-01-01 2020-01-02 2020-01-01 00:07:12 2020-01-02 03:35:33 2020-01-01 00:07:12.000 2020-01-02 03:35:33.000 432 99333 49882.5 4988250 432 99333 49882.5 4988250 -32738 32400 4662.66 466266 -126 126 0.9 90 -433 2 10423 99334 1.3003 298.3003 149.8003 14980.03003 1.3003 298.3003 149.80029 14980.02962 1.30030 298.30030 149.80030 14980.03000 2020-01-01 2020-01-02 2020-01-01 00:07:13 2020-01-02 03:35:34 2020-01-01 00:07:13.000 2020-01-02 03:35:34.000 433 99334 49883.5 4988350 433 99334 49883.5 4988350 -32737 32401 4663.66 466366 -125 127 1.9 190 -434 2 10424 99335 1.3033 298.3033 149.8033 14980.33033 1.3033 298.3033 149.8033 14980.33037 1.30330 298.30330 149.80330 14980.33000 2020-01-01 2020-01-02 2020-01-01 00:07:14 2020-01-02 03:35:35 2020-01-01 00:07:14.000 2020-01-02 03:35:35.000 434 99335 49884.5 4988450 434 99335 49884.5 4988450 -32736 32402 4664.66 466466 -128 127 0.34 34 -435 2 10425 99336 1.3063 298.3063 149.8063 14980.63063 1.3063 298.3063 149.8063 14980.63051 1.30630 298.30630 149.80630 14980.63000 2020-01-01 2020-01-02 2020-01-01 00:07:15 2020-01-02 03:35:36 2020-01-01 00:07:15.000 2020-01-02 03:35:36.000 435 99336 49885.5 4988550 435 99336 49885.5 4988550 -32735 32403 4665.66 466566 -128 127 -1.22 -122 -436 2 10426 99337 1.3093 298.3093 149.8093 14980.93093 1.3093 298.3093 149.8093 14980.93084 1.30930 298.30930 149.80930 14980.93000 2020-01-01 2020-01-02 2020-01-01 00:07:16 2020-01-02 03:35:37 2020-01-01 00:07:16.000 2020-01-02 03:35:37.000 436 99337 49886.5 4988650 436 99337 49886.5 4988650 -32734 32404 4666.66 466666 -128 123 -2.78 -278 -437 2 10427 99338 1.31231 298.31231 149.81231 14981.23123 1.31231 298.31232 149.81231 14981.23143 1.31231 298.31231 149.81231 14981.23100 2020-01-01 2020-01-02 2020-01-01 00:07:17 2020-01-02 03:35:38 2020-01-01 00:07:17.000 2020-01-02 03:35:38.000 437 99338 49887.5 4988750 437 99338 49887.5 4988750 -32733 32405 4667.66 466766 -127 124 -1.78 -178 -438 2 10428 99339 1.31531 298.31531 149.81531 14981.53153 1.31531 298.3153 149.81531 14981.53173 1.31531 298.31531 149.81531 14981.53100 2020-01-01 2020-01-02 2020-01-01 00:07:18 2020-01-02 03:35:39 2020-01-01 00:07:18.000 2020-01-02 03:35:39.000 438 99339 49888.5 4988850 438 99339 49888.5 4988850 -32732 32406 4668.66 466866 -126 125 -0.78 -78 -439 2 10429 99340 1.31831 298.31831 149.81831 14981.83183 1.31831 298.31833 149.81831 14981.83184 1.31831 298.31831 149.81831 14981.83100 2020-01-01 2020-01-02 2020-01-01 00:07:19 2020-01-02 03:35:40 2020-01-01 00:07:19.000 2020-01-02 03:35:40.000 439 99340 49889.5 4988950 439 99340 49889.5 4988950 -32731 32407 4669.66 466966 -125 126 0.22 22 +423 2 10413 99324 1.27027 298.27027 149.77027 14977.02702 1.27027 298.27026 149.77026 14977.02667 1.27027 298.27027 149.7702700000002 14977.02700 2020-01-01 2020-01-02 2020-01-01 00:07:03 2020-01-02 03:35:24 2020-01-01 00:07:03.000 2020-01-02 03:35:24.000 423 99324 49873.5 4987350 423 99324 49873.5 4987350 -32747 32391 4653.66 465366 -128 123 -0.42 -42 +424 2 10414 99325 1.27327 298.27327 149.77327 14977.32732 1.27327 298.2733 149.77327 14977.32727 1.27327 298.27327 149.77326999999985 14977.32700 2020-01-01 2020-01-02 2020-01-01 00:07:04 2020-01-02 03:35:25 2020-01-01 00:07:04.000 2020-01-02 03:35:25.000 424 99325 49874.5 4987450 424 99325 49874.5 4987450 -32746 32392 4654.66 465466 -127 124 0.58 58 +425 2 10415 99326 1.27627 298.27627 149.77627 14977.62762 1.27627 298.27628 149.77627 14977.62756 1.27627 298.27627 149.77627000000012 14977.62700 2020-01-01 2020-01-02 2020-01-01 00:07:05 2020-01-02 03:35:26 2020-01-01 00:07:05.000 2020-01-02 03:35:26.000 425 99326 49875.5 4987550 425 99326 49875.5 4987550 -32745 32393 4655.66 465566 -126 125 1.58 158 +426 2 10416 99327 1.27927 298.27927 149.77927 14977.92792 1.27927 298.27927 149.77927 14977.92787 1.27927 298.27927 149.7792699999999 14977.92700 2020-01-01 2020-01-02 2020-01-01 00:07:06 2020-01-02 03:35:27 2020-01-01 00:07:06.000 2020-01-02 03:35:27.000 426 99327 49876.5 4987650 426 99327 49876.5 4987650 -32744 32394 4656.66 465666 -125 126 2.58 258 +427 2 10417 99328 1.28228 298.28228 149.78228 14978.22822 1.28228 298.2823 149.78228 14978.22849 1.28228 298.28228 149.78227999999996 14978.22800 2020-01-01 2020-01-02 2020-01-01 00:07:07 2020-01-02 03:35:28 2020-01-01 00:07:07.000 2020-01-02 03:35:28.000 427 99328 49877.5 4987750 427 99328 49877.5 4987750 -32743 32395 4657.66 465766 -124 127 3.58 358 +428 2 10418 99329 1.28528 298.28528 149.78528 14978.52852 1.28528 298.28528 149.78528 14978.52815 1.28528 298.28528 149.78528000000003 14978.52800 2020-01-01 2020-01-02 2020-01-01 00:07:08 2020-01-02 03:35:29 2020-01-01 00:07:08.000 2020-01-02 03:35:29.000 428 99329 49878.5 4987850 428 99329 49878.5 4987850 -32742 32396 4658.66 465866 -128 127 2.02 202 +429 2 10419 99330 1.28828 298.28828 149.78828 14978.82882 1.28828 298.2883 149.78828 14978.8289 1.28828 298.28828 149.7882800000001 14978.82800 2020-01-01 2020-01-02 2020-01-01 00:07:09 2020-01-02 03:35:30 2020-01-01 00:07:09.000 2020-01-02 03:35:30.000 429 99330 49879.5 4987950 429 99330 49879.5 4987950 -32741 32397 4659.66 465966 -128 127 0.46 46 +43 2 10033 99943 0.12912 300.12912 150.12912 15163.04204 0.12912 300.12912 150.12912 15163.04211 0.12912 300.12912 150.1291199999998 15163.04112 2020-01-01 2020-01-02 2020-01-01 00:00:43 2020-01-02 03:45:43 2020-01-01 00:00:43.000 2020-01-02 03:45:43.000 43 99943 49993 5049293 43 99943 49993 5049293 -32526 32409 4572.009900990099 461773 -128 124 -3.0396039603960396 -307 +430 2 10420 99331 1.29129 298.29129 149.79129 14979.12912 1.29129 298.2913 149.79129 14979.12904 1.29129 298.29129 149.7912899999999 14979.12900 2020-01-01 2020-01-02 2020-01-01 00:07:10 2020-01-02 03:35:31 2020-01-01 00:07:10.000 2020-01-02 03:35:31.000 430 99331 49880.5 4988050 430 99331 49880.5 4988050 -32740 32398 4660.66 466066 -128 124 -1.1 -110 +431 2 10421 99332 1.29429 298.29429 149.79429 14979.42942 1.29429 298.29428 149.79429 14979.42933 1.29429 298.29429 149.79428999999988 14979.42900 2020-01-01 2020-01-02 2020-01-01 00:07:11 2020-01-02 03:35:32 2020-01-01 00:07:11.000 2020-01-02 03:35:32.000 431 99332 49881.5 4988150 431 99332 49881.5 4988150 -32739 32399 4661.66 466166 -127 125 -0.1 -10 +432 2 10422 99333 1.29729 298.29729 149.79729 14979.72972 1.29729 298.2973 149.79729 14979.72996 1.29729 298.29729 149.79729000000023 14979.72900 2020-01-01 2020-01-02 2020-01-01 00:07:12 2020-01-02 03:35:33 2020-01-01 00:07:12.000 2020-01-02 03:35:33.000 432 99333 49882.5 4988250 432 99333 49882.5 4988250 -32738 32400 4662.66 466266 -126 126 0.9 90 +433 2 10423 99334 1.3003 298.3003 149.8003 14980.03003 1.3003 298.3003 149.80029 14980.02962 1.30030 298.30030 149.8003000000001 14980.03000 2020-01-01 2020-01-02 2020-01-01 00:07:13 2020-01-02 03:35:34 2020-01-01 00:07:13.000 2020-01-02 03:35:34.000 433 99334 49883.5 4988350 433 99334 49883.5 4988350 -32737 32401 4663.66 466366 -125 127 1.9 190 +434 2 10424 99335 1.3033 298.3033 149.8033 14980.33033 1.3033 298.3033 149.8033 14980.33037 1.30330 298.30330 149.80329999999978 14980.33000 2020-01-01 2020-01-02 2020-01-01 00:07:14 2020-01-02 03:35:35 2020-01-01 00:07:14.000 2020-01-02 03:35:35.000 434 99335 49884.5 4988450 434 99335 49884.5 4988450 -32736 32402 4664.66 466466 -128 127 0.34 34 +435 2 10425 99336 1.3063 298.3063 149.8063 14980.63063 1.3063 298.3063 149.8063 14980.63051 1.30630 298.30630 149.80630000000014 14980.63000 2020-01-01 2020-01-02 2020-01-01 00:07:15 2020-01-02 03:35:36 2020-01-01 00:07:15.000 2020-01-02 03:35:36.000 435 99336 49885.5 4988550 435 99336 49885.5 4988550 -32735 32403 4665.66 466566 -128 127 -1.22 -122 +436 2 10426 99337 1.3093 298.3093 149.8093 14980.93093 1.3093 298.3093 149.8093 14980.93084 1.30930 298.30930 149.80930000000018 14980.93000 2020-01-01 2020-01-02 2020-01-01 00:07:16 2020-01-02 03:35:37 2020-01-01 00:07:16.000 2020-01-02 03:35:37.000 436 99337 49886.5 4988650 436 99337 49886.5 4988650 -32734 32404 4666.66 466666 -128 123 -2.78 -278 +437 2 10427 99338 1.31231 298.31231 149.81231 14981.23123 1.31231 298.31232 149.81231 14981.23143 1.31231 298.31231 149.8123099999999 14981.23100 2020-01-01 2020-01-02 2020-01-01 00:07:17 2020-01-02 03:35:38 2020-01-01 00:07:17.000 2020-01-02 03:35:38.000 437 99338 49887.5 4988750 437 99338 49887.5 4988750 -32733 32405 4667.66 466766 -127 124 -1.78 -178 +438 2 10428 99339 1.31531 298.31531 149.81531 14981.53153 1.31531 298.3153 149.81531 14981.53173 1.31531 298.31531 149.81530999999998 14981.53100 2020-01-01 2020-01-02 2020-01-01 00:07:18 2020-01-02 03:35:39 2020-01-01 00:07:18.000 2020-01-02 03:35:39.000 438 99339 49888.5 4988850 438 99339 49888.5 4988850 -32732 32406 4668.66 466866 -126 125 -0.78 -78 +439 2 10429 99340 1.31831 298.31831 149.81831 14981.83183 1.31831 298.31833 149.81831 14981.83184 1.31831 298.31831 149.81831000000005 14981.83100 2020-01-01 2020-01-02 2020-01-01 00:07:19 2020-01-02 03:35:40 2020-01-01 00:07:19.000 2020-01-02 03:35:40.000 439 99340 49889.5 4988950 439 99340 49889.5 4988950 -32731 32407 4669.66 466966 -125 126 0.22 22 44 2 10034 99944 0.13213 300.13213 150.13213 15163.34534 0.13213 300.13214 150.13213 15163.34525 0.13213 300.13213 150.13213 15163.34513 2020-01-01 2020-01-02 2020-01-01 00:00:44 2020-01-02 03:45:44 2020-01-01 00:00:44.000 2020-01-02 03:45:44.000 44 99944 49994 5049394 44 99944 49994 5049394 -32525 32410 4573.009900990099 461874 -127 125 -2.0396039603960396 -206 -440 2 10430 99341 1.32132 298.32132 149.82132 14982.13213 1.32132 298.32132 149.82131 14982.13197 1.32132 298.32132 149.82132 14982.13200 2020-01-01 2020-01-02 2020-01-01 00:07:20 2020-01-02 03:35:41 2020-01-01 00:07:20.000 2020-01-02 03:35:41.000 440 99341 49890.5 4989050 440 99341 49890.5 4989050 -32730 32408 4670.66 467066 -124 127 1.22 122 -441 2 10431 99342 1.32432 298.32432 149.82432 14982.43243 1.32432 298.3243 149.82432 14982.4323 1.32432 298.32432 149.82432 14982.43200 2020-01-01 2020-01-02 2020-01-01 00:07:21 2020-01-02 03:35:42 2020-01-01 00:07:21.000 2020-01-02 03:35:42.000 441 99342 49891.5 4989150 441 99342 49891.5 4989150 -32729 32409 4671.66 467166 -128 127 -0.34 -34 -442 2 10432 99343 1.32732 298.32732 149.82732 14982.73273 1.32732 298.32733 149.82732 14982.7329 1.32732 298.32732 149.82732 14982.73200 2020-01-01 2020-01-02 2020-01-01 00:07:22 2020-01-02 03:35:43 2020-01-01 00:07:22.000 2020-01-02 03:35:43.000 442 99343 49892.5 4989250 442 99343 49892.5 4989250 -32728 32410 4672.66 467266 -128 123 -1.9 -190 -443 2 10433 99344 1.33033 298.33033 149.83033 14983.03303 1.33033 298.33032 149.83033 14983.03319 1.33033 298.33033 149.83033 14983.03300 2020-01-01 2020-01-02 2020-01-01 00:07:23 2020-01-02 03:35:44 2020-01-01 00:07:23.000 2020-01-02 03:35:44.000 443 99344 49893.5 4989350 443 99344 49893.5 4989350 -32727 32411 4673.66 467366 -127 124 -0.9 -90 +440 2 10430 99341 1.32132 298.32132 149.82132 14982.13213 1.32132 298.32132 149.82131 14982.13197 1.32132 298.32132 149.82131999999984 14982.13200 2020-01-01 2020-01-02 2020-01-01 00:07:20 2020-01-02 03:35:41 2020-01-01 00:07:20.000 2020-01-02 03:35:41.000 440 99341 49890.5 4989050 440 99341 49890.5 4989050 -32730 32408 4670.66 467066 -124 127 1.22 122 +441 2 10431 99342 1.32432 298.32432 149.82432 14982.43243 1.32432 298.3243 149.82432 14982.4323 1.32432 298.32432 149.8243199999999 14982.43200 2020-01-01 2020-01-02 2020-01-01 00:07:21 2020-01-02 03:35:42 2020-01-01 00:07:21.000 2020-01-02 03:35:42.000 441 99342 49891.5 4989150 441 99342 49891.5 4989150 -32729 32409 4671.66 467166 -128 127 -0.34 -34 +442 2 10432 99343 1.32732 298.32732 149.82732 14982.73273 1.32732 298.32733 149.82732 14982.7329 1.32732 298.32732 149.82732000000016 14982.73200 2020-01-01 2020-01-02 2020-01-01 00:07:22 2020-01-02 03:35:43 2020-01-01 00:07:22.000 2020-01-02 03:35:43.000 442 99343 49892.5 4989250 442 99343 49892.5 4989250 -32728 32410 4672.66 467266 -128 123 -1.9 -190 +443 2 10433 99344 1.33033 298.33033 149.83033 14983.03303 1.33033 298.33032 149.83033 14983.03319 1.33033 298.33033 149.83033000000006 14983.03300 2020-01-01 2020-01-02 2020-01-01 00:07:23 2020-01-02 03:35:44 2020-01-01 00:07:23.000 2020-01-02 03:35:44.000 443 99344 49893.5 4989350 443 99344 49893.5 4989350 -32727 32411 4673.66 467366 -127 124 -0.9 -90 444 2 10434 99345 1.33333 298.33333 149.83333 14983.33333 1.33333 298.33334 149.83333 14983.33331 1.33333 298.33333 149.83333 14983.33300 2020-01-01 2020-01-02 2020-01-01 00:07:24 2020-01-02 03:35:45 2020-01-01 00:07:24.000 2020-01-02 03:35:45.000 444 99345 49894.5 4989450 444 99345 49894.5 4989450 -32726 32412 4674.66 467466 -126 125 0.1 10 -445 2 10435 99346 1.33633 298.33633 149.83633 14983.63363 1.33633 298.33633 149.83633 14983.63348 1.33633 298.33633 149.83633 14983.63300 2020-01-01 2020-01-02 2020-01-01 00:07:25 2020-01-02 03:35:46 2020-01-01 00:07:25.000 2020-01-02 03:35:46.000 445 99346 49895.5 4989550 445 99346 49895.5 4989550 -32725 32413 4675.66 467566 -125 126 1.1 110 -446 2 10436 99347 1.33933 298.33933 149.83933 14983.93393 1.33933 298.33932 149.83933 14983.93378 1.33933 298.33933 149.83933 14983.93300 2020-01-01 2020-01-02 2020-01-01 00:07:26 2020-01-02 03:35:47 2020-01-01 00:07:26.000 2020-01-02 03:35:47.000 446 99347 49896.5 4989650 446 99347 49896.5 4989650 -32724 32414 4676.66 467666 -124 127 2.1 210 -447 2 10437 99348 1.34234 298.34234 149.84234 14984.23423 1.34234 298.34235 149.84234 14984.23437 1.34234 298.34234 149.84234 14984.23400 2020-01-01 2020-01-02 2020-01-01 00:07:27 2020-01-02 03:35:48 2020-01-01 00:07:27.000 2020-01-02 03:35:48.000 447 99348 49897.5 4989750 447 99348 49897.5 4989750 -32723 32415 4677.66 467766 -128 127 0.54 54 -448 2 10438 99349 1.34534 298.34534 149.84534 14984.53453 1.34534 298.34534 149.84534 14984.53466 1.34534 298.34534 149.84534 14984.53400 2020-01-01 2020-01-02 2020-01-01 00:07:28 2020-01-02 03:35:49 2020-01-01 00:07:28.000 2020-01-02 03:35:49.000 448 99349 49898.5 4989850 448 99349 49898.5 4989850 -32722 32416 4678.66 467866 -128 123 -1.02 -102 -449 2 10439 99350 1.34834 298.34834 149.84834 14984.83483 1.34834 298.34836 149.84834 14984.83478 1.34834 298.34834 149.84834 14984.83400 2020-01-01 2020-01-02 2020-01-01 00:07:29 2020-01-02 03:35:50 2020-01-01 00:07:29.000 2020-01-02 03:35:50.000 449 99350 49899.5 4989950 449 99350 49899.5 4989950 -32721 32417 4679.66 467966 -127 124 -0.02 -2 -45 2 10035 99945 0.13513 300.13513 150.13513 15163.64864 0.13513 300.13513 150.13513 15163.64839 0.13513 300.13513 150.13513 15163.64813 2020-01-01 2020-01-02 2020-01-01 00:00:45 2020-01-02 03:45:45 2020-01-01 00:00:45.000 2020-01-02 03:45:45.000 45 99945 49995 5049495 45 99945 49995 5049495 -32524 32411 4574.009900990099 461975 -126 126 -1.0396039603960396 -105 -450 2 10440 99351 1.35135 298.35135 149.85135 14985.13513 1.35135 298.35135 149.85134 14985.13495 1.35135 298.35135 149.85135 14985.13500 2020-01-01 2020-01-02 2020-01-01 00:07:30 2020-01-02 03:35:51 2020-01-01 00:07:30.000 2020-01-02 03:35:51.000 450 99351 49900.5 4990050 450 99351 49900.5 4990050 -32720 32418 4680.66 468066 -126 125 0.98 98 -451 2 10441 99352 1.35435 298.35435 149.85435 14985.43543 1.35435 298.35434 149.85435 14985.43525 1.35435 298.35435 149.85435 14985.43500 2020-01-01 2020-01-02 2020-01-01 00:07:31 2020-01-02 03:35:52 2020-01-01 00:07:31.000 2020-01-02 03:35:52.000 451 99352 49901.5 4990150 451 99352 49901.5 4990150 -32719 32419 4681.66 468166 -125 126 1.98 198 -452 2 10442 99353 1.35735 298.35735 149.85735 14985.73573 1.35735 298.35736 149.85736 14985.736 1.35735 298.35735 149.85735 14985.73500 2020-01-01 2020-01-02 2020-01-01 00:07:32 2020-01-02 03:35:53 2020-01-01 00:07:32.000 2020-01-02 03:35:53.000 452 99353 49902.5 4990250 452 99353 49902.5 4990250 -32718 32420 4682.66 468266 -124 127 2.98 298 -453 2 10443 99354 1.36036 298.36036 149.86036 14986.03603 1.36036 298.36035 149.86036 14986.03614 1.36036 298.36036 149.86036 14986.03600 2020-01-01 2020-01-02 2020-01-01 00:07:33 2020-01-02 03:35:54 2020-01-01 00:07:33.000 2020-01-02 03:35:54.000 453 99354 49903.5 4990350 453 99354 49903.5 4990350 -32717 32421 4683.66 468366 -128 127 1.42 142 -454 2 10444 99355 1.36336 298.36336 149.86336 14986.33633 1.36336 298.36337 149.86336 14986.33629 1.36336 298.36336 149.86336 14986.33600 2020-01-01 2020-01-02 2020-01-01 00:07:34 2020-01-02 03:35:55 2020-01-01 00:07:34.000 2020-01-02 03:35:55.000 454 99355 49904.5 4990450 454 99355 49904.5 4990450 -32716 32422 4684.66 468466 -128 127 -0.14 -14 +445 2 10435 99346 1.33633 298.33633 149.83633 14983.63363 1.33633 298.33633 149.83633 14983.63348 1.33633 298.33633 149.83633000000006 14983.63300 2020-01-01 2020-01-02 2020-01-01 00:07:25 2020-01-02 03:35:46 2020-01-01 00:07:25.000 2020-01-02 03:35:46.000 445 99346 49895.5 4989550 445 99346 49895.5 4989550 -32725 32413 4675.66 467566 -125 126 1.1 110 +446 2 10436 99347 1.33933 298.33933 149.83933 14983.93393 1.33933 298.33932 149.83933 14983.93378 1.33933 298.33933 149.83933000000007 14983.93300 2020-01-01 2020-01-02 2020-01-01 00:07:26 2020-01-02 03:35:47 2020-01-01 00:07:26.000 2020-01-02 03:35:47.000 446 99347 49896.5 4989650 446 99347 49896.5 4989650 -32724 32414 4676.66 467666 -124 127 2.1 210 +447 2 10437 99348 1.34234 298.34234 149.84234 14984.23423 1.34234 298.34235 149.84234 14984.23437 1.34234 298.34234 149.84233999999992 14984.23400 2020-01-01 2020-01-02 2020-01-01 00:07:27 2020-01-02 03:35:48 2020-01-01 00:07:27.000 2020-01-02 03:35:48.000 447 99348 49897.5 4989750 447 99348 49897.5 4989750 -32723 32415 4677.66 467766 -128 127 0.54 54 +448 2 10438 99349 1.34534 298.34534 149.84534 14984.53453 1.34534 298.34534 149.84534 14984.53466 1.34534 298.34534 149.8453399999999 14984.53400 2020-01-01 2020-01-02 2020-01-01 00:07:28 2020-01-02 03:35:49 2020-01-01 00:07:28.000 2020-01-02 03:35:49.000 448 99349 49898.5 4989850 448 99349 49898.5 4989850 -32722 32416 4678.66 467866 -128 123 -1.02 -102 +449 2 10439 99350 1.34834 298.34834 149.84834 14984.83483 1.34834 298.34836 149.84834 14984.83478 1.34834 298.34834 149.8483400000001 14984.83400 2020-01-01 2020-01-02 2020-01-01 00:07:29 2020-01-02 03:35:50 2020-01-01 00:07:29.000 2020-01-02 03:35:50.000 449 99350 49899.5 4989950 449 99350 49899.5 4989950 -32721 32417 4679.66 467966 -127 124 -0.02 -2 +45 2 10035 99945 0.13513 300.13513 150.13513 15163.64864 0.13513 300.13513 150.13513 15163.64839 0.13513 300.13513 150.13513000000006 15163.64813 2020-01-01 2020-01-02 2020-01-01 00:00:45 2020-01-02 03:45:45 2020-01-01 00:00:45.000 2020-01-02 03:45:45.000 45 99945 49995 5049495 45 99945 49995 5049495 -32524 32411 4574.009900990099 461975 -126 126 -1.0396039603960396 -105 +450 2 10440 99351 1.35135 298.35135 149.85135 14985.13513 1.35135 298.35135 149.85134 14985.13495 1.35135 298.35135 149.85135000000014 14985.13500 2020-01-01 2020-01-02 2020-01-01 00:07:30 2020-01-02 03:35:51 2020-01-01 00:07:30.000 2020-01-02 03:35:51.000 450 99351 49900.5 4990050 450 99351 49900.5 4990050 -32720 32418 4680.66 468066 -126 125 0.98 98 +451 2 10441 99352 1.35435 298.35435 149.85435 14985.43543 1.35435 298.35434 149.85435 14985.43525 1.35435 298.35435 149.85434999999978 14985.43500 2020-01-01 2020-01-02 2020-01-01 00:07:31 2020-01-02 03:35:52 2020-01-01 00:07:31.000 2020-01-02 03:35:52.000 451 99352 49901.5 4990150 451 99352 49901.5 4990150 -32719 32419 4681.66 468166 -125 126 1.98 198 +452 2 10442 99353 1.35735 298.35735 149.85735 14985.73573 1.35735 298.35736 149.85736 14985.736 1.35735 298.35735 149.85735000000017 14985.73500 2020-01-01 2020-01-02 2020-01-01 00:07:32 2020-01-02 03:35:53 2020-01-01 00:07:32.000 2020-01-02 03:35:53.000 452 99353 49902.5 4990250 452 99353 49902.5 4990250 -32718 32420 4682.66 468266 -124 127 2.98 298 +453 2 10443 99354 1.36036 298.36036 149.86036 14986.03603 1.36036 298.36035 149.86036 14986.03614 1.36036 298.36036 149.86036000000007 14986.03600 2020-01-01 2020-01-02 2020-01-01 00:07:33 2020-01-02 03:35:54 2020-01-01 00:07:33.000 2020-01-02 03:35:54.000 453 99354 49903.5 4990350 453 99354 49903.5 4990350 -32717 32421 4683.66 468366 -128 127 1.42 142 +454 2 10444 99355 1.36336 298.36336 149.86336 14986.33633 1.36336 298.36337 149.86336 14986.33629 1.36336 298.36336 149.8633599999999 14986.33600 2020-01-01 2020-01-02 2020-01-01 00:07:34 2020-01-02 03:35:55 2020-01-01 00:07:34.000 2020-01-02 03:35:55.000 454 99355 49904.5 4990450 454 99355 49904.5 4990450 -32716 32422 4684.66 468466 -128 127 -0.14 -14 455 2 10445 99356 1.36636 298.36636 149.86636 14986.63663 1.36636 298.36636 149.86636 14986.63641 1.36636 298.36636 149.86636 14986.63600 2020-01-01 2020-01-02 2020-01-01 00:07:35 2020-01-02 03:35:56 2020-01-01 00:07:35.000 2020-01-02 03:35:56.000 455 99356 49905.5 4990550 455 99356 49905.5 4990550 -32715 32423 4685.66 468566 -128 124 -1.7 -170 -456 2 10446 99357 1.36936 298.36936 149.86936 14986.93693 1.36936 298.36935 149.86936 14986.93672 1.36936 298.36936 149.86936 14986.93600 2020-01-01 2020-01-02 2020-01-01 00:07:36 2020-01-02 03:35:57 2020-01-01 00:07:36.000 2020-01-02 03:35:57.000 456 99357 49906.5 4990650 456 99357 49906.5 4990650 -32714 32424 4686.66 468666 -127 125 -0.7 -70 -457 2 10447 99358 1.37237 298.37237 149.87237 14987.23723 1.37237 298.37238 149.87237 14987.23747 1.37237 298.37237 149.87237 14987.23700 2020-01-01 2020-01-02 2020-01-01 00:07:37 2020-01-02 03:35:58 2020-01-01 00:07:37.000 2020-01-02 03:35:58.000 457 99358 49907.5 4990750 457 99358 49907.5 4990750 -32713 32425 4687.66 468766 -126 126 0.3 30 -458 2 10448 99359 1.37537 298.37537 149.87537 14987.53753 1.37537 298.37537 149.87537 14987.5376 1.37537 298.37537 149.87537 14987.53700 2020-01-01 2020-01-02 2020-01-01 00:07:38 2020-01-02 03:35:59 2020-01-01 00:07:38.000 2020-01-02 03:35:59.000 458 99359 49908.5 4990850 458 99359 49908.5 4990850 -32712 32426 4688.66 468866 -125 127 1.3 130 -459 2 10449 99360 1.37837 298.37837 149.87837 14987.83783 1.37837 298.3784 149.87837 14987.83775 1.37837 298.37837 149.87837 14987.83700 2020-01-01 2020-01-02 2020-01-01 00:07:39 2020-01-02 03:36:00 2020-01-01 00:07:39.000 2020-01-02 03:36:00.000 459 99360 49909.5 4990950 459 99360 49909.5 4990950 -32711 32427 4689.66 468966 -128 127 -0.26 -26 -46 2 10036 99946 0.13813 300.13813 150.13813 15163.95195 0.13813 300.13815 150.13814 15163.95214 0.13813 300.13813 150.13813 15163.95113 2020-01-01 2020-01-02 2020-01-01 00:00:46 2020-01-02 03:45:46 2020-01-01 00:00:46.000 2020-01-02 03:45:46.000 46 99946 49996 5049596 46 99946 49996 5049596 -32523 32412 4575.009900990099 462076 -125 127 -0.039603960396039604 -4 -460 2 10450 99361 1.38138 298.38138 149.88138 14988.13813 1.38138 298.38138 149.88137 14988.13789 1.38138 298.38138 149.88138 14988.13800 2020-01-01 2020-01-02 2020-01-01 00:07:40 2020-01-02 03:36:01 2020-01-01 00:07:40.000 2020-01-02 03:36:01.000 460 99361 49910.5 4991050 460 99361 49910.5 4991050 -32710 32428 4690.66 469066 -128 127 -1.82 -182 -461 2 10451 99362 1.38438 298.38438 149.88438 14988.43843 1.38438 298.3844 149.88438 14988.43864 1.38438 298.38438 149.88438 14988.43800 2020-01-01 2020-01-02 2020-01-01 00:07:41 2020-01-02 03:36:02 2020-01-01 00:07:41.000 2020-01-02 03:36:02.000 461 99362 49911.5 4991150 461 99362 49911.5 4991150 -32709 32429 4691.66 469166 -128 123 -3.38 -338 -462 2 10452 99363 1.38738 298.38738 149.88738 14988.73873 1.38738 298.3874 149.88738 14988.73894 1.38738 298.38738 149.88738 14988.73800 2020-01-01 2020-01-02 2020-01-01 00:07:42 2020-01-02 03:36:03 2020-01-01 00:07:42.000 2020-01-02 03:36:03.000 462 99363 49912.5 4991250 462 99363 49912.5 4991250 -32708 32430 4692.66 469266 -127 124 -2.38 -238 +456 2 10446 99357 1.36936 298.36936 149.86936 14986.93693 1.36936 298.36935 149.86936 14986.93672 1.36936 298.36936 149.86936000000009 14986.93600 2020-01-01 2020-01-02 2020-01-01 00:07:36 2020-01-02 03:35:57 2020-01-01 00:07:36.000 2020-01-02 03:35:57.000 456 99357 49906.5 4990650 456 99357 49906.5 4990650 -32714 32424 4686.66 468666 -127 125 -0.7 -70 +457 2 10447 99358 1.37237 298.37237 149.87237 14987.23723 1.37237 298.37238 149.87237 14987.23747 1.37237 298.37237 149.87236999999976 14987.23700 2020-01-01 2020-01-02 2020-01-01 00:07:37 2020-01-02 03:35:58 2020-01-01 00:07:37.000 2020-01-02 03:35:58.000 457 99358 49907.5 4990750 457 99358 49907.5 4990750 -32713 32425 4687.66 468766 -126 126 0.3 30 +458 2 10448 99359 1.37537 298.37537 149.87537 14987.53753 1.37537 298.37537 149.87537 14987.5376 1.37537 298.37537 149.87536999999986 14987.53700 2020-01-01 2020-01-02 2020-01-01 00:07:38 2020-01-02 03:35:59 2020-01-01 00:07:38.000 2020-01-02 03:35:59.000 458 99359 49908.5 4990850 458 99359 49908.5 4990850 -32712 32426 4688.66 468866 -125 127 1.3 130 +459 2 10449 99360 1.37837 298.37837 149.87837 14987.83783 1.37837 298.3784 149.87837 14987.83775 1.37837 298.37837 149.87837000000016 14987.83700 2020-01-01 2020-01-02 2020-01-01 00:07:39 2020-01-02 03:36:00 2020-01-01 00:07:39.000 2020-01-02 03:36:00.000 459 99360 49909.5 4990950 459 99360 49909.5 4990950 -32711 32427 4689.66 468966 -128 127 -0.26 -26 +46 2 10036 99946 0.13813 300.13813 150.13813 15163.95195 0.13813 300.13815 150.13814 15163.95214 0.13813 300.13813 150.13812999999993 15163.95113 2020-01-01 2020-01-02 2020-01-01 00:00:46 2020-01-02 03:45:46 2020-01-01 00:00:46.000 2020-01-02 03:45:46.000 46 99946 49996 5049596 46 99946 49996 5049596 -32523 32412 4575.009900990099 462076 -125 127 -0.039603960396039604 -4 +460 2 10450 99361 1.38138 298.38138 149.88138 14988.13813 1.38138 298.38138 149.88137 14988.13789 1.38138 298.38138 149.8813800000001 14988.13800 2020-01-01 2020-01-02 2020-01-01 00:07:40 2020-01-02 03:36:01 2020-01-01 00:07:40.000 2020-01-02 03:36:01.000 460 99361 49910.5 4991050 460 99361 49910.5 4991050 -32710 32428 4690.66 469066 -128 127 -1.82 -182 +461 2 10451 99362 1.38438 298.38438 149.88438 14988.43843 1.38438 298.3844 149.88438 14988.43864 1.38438 298.38438 149.88438000000002 14988.43800 2020-01-01 2020-01-02 2020-01-01 00:07:41 2020-01-02 03:36:02 2020-01-01 00:07:41.000 2020-01-02 03:36:02.000 461 99362 49911.5 4991150 461 99362 49911.5 4991150 -32709 32429 4691.66 469166 -128 123 -3.38 -338 +462 2 10452 99363 1.38738 298.38738 149.88738 14988.73873 1.38738 298.3874 149.88738 14988.73894 1.38738 298.38738 149.8873800000001 14988.73800 2020-01-01 2020-01-02 2020-01-01 00:07:42 2020-01-02 03:36:03 2020-01-01 00:07:42.000 2020-01-02 03:36:03.000 462 99363 49912.5 4991250 462 99363 49912.5 4991250 -32708 32430 4692.66 469266 -127 124 -2.38 -238 463 2 10453 99364 1.39039 298.39039 149.89039 14989.03903 1.39039 298.39038 149.89039 14989.03907 1.39039 298.39039 149.89039 14989.03900 2020-01-01 2020-01-02 2020-01-01 00:07:43 2020-01-02 03:36:04 2020-01-01 00:07:43.000 2020-01-02 03:36:04.000 463 99364 49913.5 4991350 463 99364 49913.5 4991350 -32707 32431 4693.66 469366 -126 125 -1.38 -138 -464 2 10454 99365 1.39339 298.39339 149.89339 14989.33933 1.39339 298.3934 149.89339 14989.33922 1.39339 298.39339 149.89339 14989.33900 2020-01-01 2020-01-02 2020-01-01 00:07:44 2020-01-02 03:36:05 2020-01-01 00:07:44.000 2020-01-02 03:36:05.000 464 99365 49914.5 4991450 464 99365 49914.5 4991450 -32706 32432 4694.66 469466 -125 126 -0.38 -38 -465 2 10455 99366 1.39639 298.39639 149.89639 14989.63963 1.39639 298.3964 149.89639 14989.63936 1.39639 298.39639 149.89639 14989.63900 2020-01-01 2020-01-02 2020-01-01 00:07:45 2020-01-02 03:36:06 2020-01-01 00:07:45.000 2020-01-02 03:36:06.000 465 99366 49915.5 4991550 465 99366 49915.5 4991550 -32705 32433 4695.66 469566 -124 127 0.62 62 +464 2 10454 99365 1.39339 298.39339 149.89339 14989.33933 1.39339 298.3934 149.89339 14989.33922 1.39339 298.39339 149.8933899999999 14989.33900 2020-01-01 2020-01-02 2020-01-01 00:07:44 2020-01-02 03:36:05 2020-01-01 00:07:44.000 2020-01-02 03:36:05.000 464 99365 49914.5 4991450 464 99365 49914.5 4991450 -32706 32432 4694.66 469466 -125 126 -0.38 -38 +465 2 10455 99366 1.39639 298.39639 149.89639 14989.63963 1.39639 298.3964 149.89639 14989.63936 1.39639 298.39639 149.8963899999999 14989.63900 2020-01-01 2020-01-02 2020-01-01 00:07:45 2020-01-02 03:36:06 2020-01-01 00:07:45.000 2020-01-02 03:36:06.000 465 99366 49915.5 4991550 465 99366 49915.5 4991550 -32705 32433 4695.66 469566 -124 127 0.62 62 466 2 10456 99367 1.39939 298.39939 149.89939 14989.93993 1.39939 298.3994 149.8994 14989.94011 1.39939 298.39939 149.89939 14989.93900 2020-01-01 2020-01-02 2020-01-01 00:07:46 2020-01-02 03:36:07 2020-01-01 00:07:46.000 2020-01-02 03:36:07.000 466 99367 49916.5 4991650 466 99367 49916.5 4991650 -32704 32434 4696.66 469666 -128 127 -0.94 -94 -467 2 10457 99368 1.4024 298.4024 149.9024 14990.24024 1.4024 298.4024 149.9024 14990.24041 1.40240 298.40240 149.90240 14990.24000 2020-01-01 2020-01-02 2020-01-01 00:07:47 2020-01-02 03:36:08 2020-01-01 00:07:47.000 2020-01-02 03:36:08.000 467 99368 49917.5 4991750 467 99368 49917.5 4991750 -32703 32435 4697.66 469766 -128 123 -2.5 -250 -468 2 10458 99369 1.4054 298.4054 149.9054 14990.54054 1.4054 298.4054 149.9054 14990.54058 1.40540 298.40540 149.90540 14990.54000 2020-01-01 2020-01-02 2020-01-01 00:07:48 2020-01-02 03:36:09 2020-01-01 00:07:48.000 2020-01-02 03:36:09.000 468 99369 49918.5 4991850 468 99369 49918.5 4991850 -32702 32436 4698.66 469866 -127 124 -1.5 -150 -469 2 10459 99370 1.4084 298.4084 149.9084 14990.84084 1.4084 298.40842 149.9084 14990.8407 1.40840 298.40840 149.90840 14990.84000 2020-01-01 2020-01-02 2020-01-01 00:07:49 2020-01-02 03:36:10 2020-01-01 00:07:49.000 2020-01-02 03:36:10.000 469 99370 49919.5 4991950 469 99370 49919.5 4991950 -32701 32437 4699.66 469966 -126 125 -0.5 -50 -47 2 10037 99947 0.14114 300.14114 150.14114 15164.25525 0.14114 300.14114 150.14114 15164.25545 0.14114 300.14114 150.14114 15164.25514 2020-01-01 2020-01-02 2020-01-01 00:00:47 2020-01-02 03:45:47 2020-01-01 00:00:47.000 2020-01-02 03:45:47.000 47 99947 49997 5049697 47 99947 49997 5049697 -32522 32413 4576.009900990099 462177 -128 127 -1.5742574257425743 -159 -470 2 10460 99371 1.41141 298.41141 149.91141 14991.14114 1.41141 298.4114 149.9114 14991.14099 1.41141 298.41141 149.91141 14991.14100 2020-01-01 2020-01-02 2020-01-01 00:07:50 2020-01-02 03:36:11 2020-01-01 00:07:50.000 2020-01-02 03:36:11.000 470 99371 49920.5 4992050 470 99371 49920.5 4992050 -32700 32438 4700.66 470066 -125 126 0.5 50 -471 2 10461 99372 1.41441 298.41441 149.91441 14991.44144 1.41441 298.41443 149.91441 14991.44159 1.41441 298.41441 149.91441 14991.44100 2020-01-01 2020-01-02 2020-01-01 00:07:51 2020-01-02 03:36:12 2020-01-01 00:07:51.000 2020-01-02 03:36:12.000 471 99372 49921.5 4992150 471 99372 49921.5 4992150 -32699 32439 4701.66 470166 -124 127 1.5 150 +467 2 10457 99368 1.4024 298.4024 149.9024 14990.24024 1.4024 298.4024 149.9024 14990.24041 1.40240 298.40240 149.90240000000017 14990.24000 2020-01-01 2020-01-02 2020-01-01 00:07:47 2020-01-02 03:36:08 2020-01-01 00:07:47.000 2020-01-02 03:36:08.000 467 99368 49917.5 4991750 467 99368 49917.5 4991750 -32703 32435 4697.66 469766 -128 123 -2.5 -250 +468 2 10458 99369 1.4054 298.4054 149.9054 14990.54054 1.4054 298.4054 149.9054 14990.54058 1.40540 298.40540 149.90539999999984 14990.54000 2020-01-01 2020-01-02 2020-01-01 00:07:48 2020-01-02 03:36:09 2020-01-01 00:07:48.000 2020-01-02 03:36:09.000 468 99369 49918.5 4991850 468 99369 49918.5 4991850 -32702 32436 4698.66 469866 -127 124 -1.5 -150 +469 2 10459 99370 1.4084 298.4084 149.9084 14990.84084 1.4084 298.40842 149.9084 14990.8407 1.40840 298.40840 149.90840000000009 14990.84000 2020-01-01 2020-01-02 2020-01-01 00:07:49 2020-01-02 03:36:10 2020-01-01 00:07:49.000 2020-01-02 03:36:10.000 469 99370 49919.5 4991950 469 99370 49919.5 4991950 -32701 32437 4699.66 469966 -126 125 -0.5 -50 +47 2 10037 99947 0.14114 300.14114 150.14114 15164.25525 0.14114 300.14114 150.14114 15164.25545 0.14114 300.14114 150.1411399999999 15164.25514 2020-01-01 2020-01-02 2020-01-01 00:00:47 2020-01-02 03:45:47 2020-01-01 00:00:47.000 2020-01-02 03:45:47.000 47 99947 49997 5049697 47 99947 49997 5049697 -32522 32413 4576.009900990099 462177 -128 127 -1.5742574257425743 -159 +470 2 10460 99371 1.41141 298.41141 149.91141 14991.14114 1.41141 298.4114 149.9114 14991.14099 1.41141 298.41141 149.91141000000007 14991.14100 2020-01-01 2020-01-02 2020-01-01 00:07:50 2020-01-02 03:36:11 2020-01-01 00:07:50.000 2020-01-02 03:36:11.000 470 99371 49920.5 4992050 470 99371 49920.5 4992050 -32700 32438 4700.66 470066 -125 126 0.5 50 +471 2 10461 99372 1.41441 298.41441 149.91441 14991.44144 1.41441 298.41443 149.91441 14991.44159 1.41441 298.41441 149.91440999999992 14991.44100 2020-01-01 2020-01-02 2020-01-01 00:07:51 2020-01-02 03:36:12 2020-01-01 00:07:51.000 2020-01-02 03:36:12.000 471 99372 49921.5 4992150 471 99372 49921.5 4992150 -32699 32439 4701.66 470166 -124 127 1.5 150 472 2 10462 99373 1.41741 298.41741 149.91741 14991.74174 1.41741 298.41742 149.91741 14991.74188 1.41741 298.41741 149.91741 14991.74100 2020-01-01 2020-01-02 2020-01-01 00:07:52 2020-01-02 03:36:13 2020-01-01 00:07:52.000 2020-01-02 03:36:13.000 472 99373 49922.5 4992250 472 99373 49922.5 4992250 -32698 32440 4702.66 470266 -128 127 -0.06 -6 -473 2 10463 99374 1.42042 298.42042 149.92042 14992.04204 1.42042 298.4204 149.92042 14992.04204 1.42042 298.42042 149.92042 14992.04200 2020-01-01 2020-01-02 2020-01-01 00:07:53 2020-01-02 03:36:14 2020-01-01 00:07:53.000 2020-01-02 03:36:14.000 473 99374 49923.5 4992350 473 99374 49923.5 4992350 -32697 32441 4703.66 470366 -128 123 -1.62 -162 -474 2 10464 99375 1.42342 298.42342 149.92342 14992.34234 1.42342 298.42343 149.92342 14992.34216 1.42342 298.42342 149.92342 14992.34200 2020-01-01 2020-01-02 2020-01-01 00:07:54 2020-01-02 03:36:15 2020-01-01 00:07:54.000 2020-01-02 03:36:15.000 474 99375 49924.5 4992450 474 99375 49924.5 4992450 -32696 32442 4704.66 470466 -127 124 -0.62 -62 -475 2 10465 99376 1.42642 298.42642 149.92642 14992.64264 1.42642 298.42642 149.92642 14992.64246 1.42642 298.42642 149.92642 14992.64200 2020-01-01 2020-01-02 2020-01-01 00:07:55 2020-01-02 03:36:16 2020-01-01 00:07:55.000 2020-01-02 03:36:16.000 475 99376 49925.5 4992550 475 99376 49925.5 4992550 -32695 32443 4705.66 470566 -126 125 0.38 38 -476 2 10466 99377 1.42942 298.42942 149.92942 14992.94294 1.42942 298.42944 149.92943 14992.94305 1.42942 298.42942 149.92942 14992.94200 2020-01-01 2020-01-02 2020-01-01 00:07:56 2020-01-02 03:36:17 2020-01-01 00:07:56.000 2020-01-02 03:36:17.000 476 99377 49926.5 4992650 476 99377 49926.5 4992650 -32694 32444 4706.66 470666 -125 126 1.38 138 -477 2 10467 99378 1.43243 298.43243 149.93243 14993.24324 1.43243 298.43243 149.93243 14993.24338 1.43243 298.43243 149.93243 14993.24300 2020-01-01 2020-01-02 2020-01-01 00:07:57 2020-01-02 03:36:18 2020-01-01 00:07:57.000 2020-01-02 03:36:18.000 477 99378 49927.5 4992750 477 99378 49927.5 4992750 -32693 32445 4707.66 470766 -124 127 2.38 238 -478 2 10468 99379 1.43543 298.43543 149.93543 14993.54354 1.43543 298.43542 149.93543 14993.54352 1.43543 298.43543 149.93543 14993.54300 2020-01-01 2020-01-02 2020-01-01 00:07:58 2020-01-02 03:36:19 2020-01-01 00:07:58.000 2020-01-02 03:36:19.000 478 99379 49928.5 4992850 478 99379 49928.5 4992850 -32692 32446 4708.66 470866 -128 127 0.82 82 -479 2 10469 99380 1.43843 298.43843 149.93843 14993.84384 1.43843 298.43845 149.93844 14993.84427 1.43843 298.43843 149.93843 14993.84300 2020-01-01 2020-01-02 2020-01-01 00:07:59 2020-01-02 03:36:20 2020-01-01 00:07:59.000 2020-01-02 03:36:20.000 479 99380 49929.5 4992950 479 99380 49929.5 4992950 -32691 32447 4709.66 470966 -128 127 -0.74 -74 -48 2 10038 99948 0.14414 300.14414 150.14414 15164.55855 0.14414 300.14413 150.14414 15164.55863 0.14414 300.14414 150.14414 15164.55814 2020-01-01 2020-01-02 2020-01-01 00:00:48 2020-01-02 03:45:48 2020-01-01 00:00:48.000 2020-01-02 03:45:48.000 48 99948 49998 5049798 48 99948 49998 5049798 -32521 32414 4577.009900990099 462278 -128 127 -3.108910891089109 -314 +473 2 10463 99374 1.42042 298.42042 149.92042 14992.04204 1.42042 298.4204 149.92042 14992.04204 1.42042 298.42042 149.92042000000018 14992.04200 2020-01-01 2020-01-02 2020-01-01 00:07:53 2020-01-02 03:36:14 2020-01-01 00:07:53.000 2020-01-02 03:36:14.000 473 99374 49923.5 4992350 473 99374 49923.5 4992350 -32697 32441 4703.66 470366 -128 123 -1.62 -162 +474 2 10464 99375 1.42342 298.42342 149.92342 14992.34234 1.42342 298.42343 149.92342 14992.34216 1.42342 298.42342 149.92341999999982 14992.34200 2020-01-01 2020-01-02 2020-01-01 00:07:54 2020-01-02 03:36:15 2020-01-01 00:07:54.000 2020-01-02 03:36:15.000 474 99375 49924.5 4992450 474 99375 49924.5 4992450 -32696 32442 4704.66 470466 -127 124 -0.62 -62 +475 2 10465 99376 1.42642 298.42642 149.92642 14992.64264 1.42642 298.42642 149.92642 14992.64246 1.42642 298.42642 149.92641999999987 14992.64200 2020-01-01 2020-01-02 2020-01-01 00:07:55 2020-01-02 03:36:16 2020-01-01 00:07:55.000 2020-01-02 03:36:16.000 475 99376 49925.5 4992550 475 99376 49925.5 4992550 -32695 32443 4705.66 470566 -126 125 0.38 38 +476 2 10466 99377 1.42942 298.42942 149.92942 14992.94294 1.42942 298.42944 149.92943 14992.94305 1.42942 298.42942 149.9294200000002 14992.94200 2020-01-01 2020-01-02 2020-01-01 00:07:56 2020-01-02 03:36:17 2020-01-01 00:07:56.000 2020-01-02 03:36:17.000 476 99377 49926.5 4992650 476 99377 49926.5 4992650 -32694 32444 4706.66 470666 -125 126 1.38 138 +477 2 10467 99378 1.43243 298.43243 149.93243 14993.24324 1.43243 298.43243 149.93243 14993.24338 1.43243 298.43243 149.9324300000001 14993.24300 2020-01-01 2020-01-02 2020-01-01 00:07:57 2020-01-02 03:36:18 2020-01-01 00:07:57.000 2020-01-02 03:36:18.000 477 99378 49927.5 4992750 477 99378 49927.5 4992750 -32693 32445 4707.66 470766 -124 127 2.38 238 +478 2 10468 99379 1.43543 298.43543 149.93543 14993.54354 1.43543 298.43542 149.93543 14993.54352 1.43543 298.43543 149.9354299999998 14993.54300 2020-01-01 2020-01-02 2020-01-01 00:07:58 2020-01-02 03:36:19 2020-01-01 00:07:58.000 2020-01-02 03:36:19.000 478 99379 49928.5 4992850 478 99379 49928.5 4992850 -32692 32446 4708.66 470866 -128 127 0.82 82 +479 2 10469 99380 1.43843 298.43843 149.93843 14993.84384 1.43843 298.43845 149.93844 14993.84427 1.43843 298.43843 149.9384300000001 14993.84300 2020-01-01 2020-01-02 2020-01-01 00:07:59 2020-01-02 03:36:20 2020-01-01 00:07:59.000 2020-01-02 03:36:20.000 479 99380 49929.5 4992950 479 99380 49929.5 4992950 -32691 32447 4709.66 470966 -128 127 -0.74 -74 +48 2 10038 99948 0.14414 300.14414 150.14414 15164.55855 0.14414 300.14413 150.14414 15164.55863 0.14414 300.14414 150.14414000000016 15164.55814 2020-01-01 2020-01-02 2020-01-01 00:00:48 2020-01-02 03:45:48 2020-01-01 00:00:48.000 2020-01-02 03:45:48.000 48 99948 49998 5049798 48 99948 49998 5049798 -32521 32414 4577.009900990099 462278 -128 127 -3.108910891089109 -314 480 2 10470 99381 1.44144 298.44144 149.94144 14994.14414 1.44144 298.44144 149.94143 14994.14392 1.44144 298.44144 149.94144 14994.14400 2020-01-01 2020-01-02 2020-01-01 00:08:00 2020-01-02 03:36:21 2020-01-01 00:08:00.000 2020-01-02 03:36:21.000 480 99381 49930.5 4993050 480 99381 49930.5 4993050 -32690 32448 4710.66 471066 -128 124 -2.3 -230 -481 2 10471 99382 1.44444 298.44444 149.94444 14994.44444 1.44444 298.44446 149.94444 14994.44452 1.44444 298.44444 149.94444 14994.44400 2020-01-01 2020-01-02 2020-01-01 00:08:01 2020-01-02 03:36:22 2020-01-01 00:08:01.000 2020-01-02 03:36:22.000 481 99382 49931.5 4993150 481 99382 49931.5 4993150 -32689 32449 4711.66 471166 -127 125 -1.3 -130 -482 2 10472 99383 1.44744 298.44744 149.94744 14994.74474 1.44744 298.44745 149.94744 14994.74485 1.44744 298.44744 149.94744 14994.74400 2020-01-01 2020-01-02 2020-01-01 00:08:02 2020-01-02 03:36:23 2020-01-01 00:08:02.000 2020-01-02 03:36:23.000 482 99383 49932.5 4993250 482 99383 49932.5 4993250 -32688 32450 4712.66 471266 -126 126 -0.3 -30 -483 2 10473 99384 1.45045 298.45045 149.95045 14995.04504 1.45045 298.45044 149.95044 14995.04499 1.45045 298.45045 149.95045 14995.04500 2020-01-01 2020-01-02 2020-01-01 00:08:03 2020-01-02 03:36:24 2020-01-01 00:08:03.000 2020-01-02 03:36:24.000 483 99384 49933.5 4993350 483 99384 49933.5 4993350 -32687 32451 4713.66 471366 -125 127 0.7 70 -484 2 10474 99385 1.45345 298.45345 149.95345 14995.34534 1.45345 298.45346 149.95345 14995.34574 1.45345 298.45345 149.95345 14995.34500 2020-01-01 2020-01-02 2020-01-01 00:08:04 2020-01-02 03:36:25 2020-01-01 00:08:04.000 2020-01-02 03:36:25.000 484 99385 49934.5 4993450 484 99385 49934.5 4993450 -32686 32452 4714.66 471466 -128 127 -0.86 -86 -485 2 10475 99386 1.45645 298.45645 149.95645 14995.64564 1.45645 298.45645 149.95645 14995.6454 1.45645 298.45645 149.95645 14995.64500 2020-01-01 2020-01-02 2020-01-01 00:08:05 2020-01-02 03:36:26 2020-01-01 00:08:05.000 2020-01-02 03:36:26.000 485 99386 49935.5 4993550 485 99386 49935.5 4993550 -32685 32453 4715.66 471566 -128 127 -2.42 -242 -486 2 10476 99387 1.45945 298.45945 149.95945 14995.94594 1.45945 298.45947 149.95946 14995.94602 1.45945 298.45945 149.95945 14995.94500 2020-01-01 2020-01-02 2020-01-01 00:08:06 2020-01-02 03:36:27 2020-01-01 00:08:06.000 2020-01-02 03:36:27.000 486 99387 49936.5 4993650 486 99387 49936.5 4993650 -32684 32454 4716.66 471666 -128 123 -3.98 -398 -487 2 10477 99388 1.46246 298.46246 149.96246 14996.24624 1.46246 298.46246 149.96246 14996.24633 1.46246 298.46246 149.96246 14996.24600 2020-01-01 2020-01-02 2020-01-01 00:08:07 2020-01-02 03:36:28 2020-01-01 00:08:07.000 2020-01-02 03:36:28.000 487 99388 49937.5 4993750 487 99388 49937.5 4993750 -32683 32455 4717.66 471766 -127 124 -2.98 -298 -488 2 10478 99389 1.46546 298.46546 149.96546 14996.54654 1.46546 298.46545 149.96546 14996.54645 1.46546 298.46546 149.96546 14996.54600 2020-01-01 2020-01-02 2020-01-01 00:08:08 2020-01-02 03:36:29 2020-01-01 00:08:08.000 2020-01-02 03:36:29.000 488 99389 49938.5 4993850 488 99389 49938.5 4993850 -32682 32456 4718.66 471866 -126 125 -1.98 -198 -489 2 10479 99390 1.46846 298.46846 149.96846 14996.84684 1.46846 298.46848 149.96847 14996.84721 1.46846 298.46846 149.96846 14996.84600 2020-01-01 2020-01-02 2020-01-01 00:08:09 2020-01-02 03:36:30 2020-01-01 00:08:09.000 2020-01-02 03:36:30.000 489 99390 49939.5 4993950 489 99390 49939.5 4993950 -32681 32457 4719.66 471966 -125 126 -0.98 -98 -49 2 10039 99949 0.14714 300.14714 150.14714 15164.86186 0.14714 300.14716 150.14714 15164.86173 0.14714 300.14714 150.14714 15164.86114 2020-01-01 2020-01-02 2020-01-01 00:00:49 2020-01-02 03:45:49 2020-01-01 00:00:49.000 2020-01-02 03:45:49.000 49 99949 49999 5049899 49 99949 49999 5049899 -32520 32415 4578.009900990099 462379 -128 123 -4.643564356435643 -469 -490 2 10480 99391 1.47147 298.47147 149.97147 14997.14714 1.47147 298.47147 149.97146 14997.14687 1.47147 298.47147 149.97147 14997.14700 2020-01-01 2020-01-02 2020-01-01 00:08:10 2020-01-02 03:36:31 2020-01-01 00:08:10.000 2020-01-02 03:36:31.000 490 99391 49940.5 4994050 490 99391 49940.5 4994050 -32680 32458 4720.66 472066 -124 127 0.02 2 -491 2 10481 99392 1.47447 298.47447 149.97447 14997.44744 1.47447 298.4745 149.97447 14997.44749 1.47447 298.47447 149.97447 14997.44700 2020-01-01 2020-01-02 2020-01-01 00:08:11 2020-01-02 03:36:32 2020-01-01 00:08:11.000 2020-01-02 03:36:32.000 491 99392 49941.5 4994150 491 99392 49941.5 4994150 -32679 32459 4721.66 472166 -128 127 -1.54 -154 -492 2 10482 99393 1.47747 298.47747 149.97747 14997.74774 1.47747 298.47748 149.97747 14997.74779 1.47747 298.47747 149.97747 14997.74700 2020-01-01 2020-01-02 2020-01-01 00:08:12 2020-01-02 03:36:33 2020-01-01 00:08:12.000 2020-01-02 03:36:33.000 492 99393 49942.5 4994250 492 99393 49942.5 4994250 -32678 32460 4722.66 472266 -128 123 -3.1 -310 -493 2 10483 99394 1.48048 298.48048 149.98048 14998.04804 1.48048 298.48047 149.98048 14998.04809 1.48048 298.48048 149.98048 14998.04800 2020-01-01 2020-01-02 2020-01-01 00:08:13 2020-01-02 03:36:34 2020-01-01 00:08:13.000 2020-01-02 03:36:34.000 493 99394 49943.5 4994350 493 99394 49943.5 4994350 -32677 32461 4723.66 472366 -127 124 -2.1 -210 -494 2 10484 99395 1.48348 298.48348 149.98348 14998.34834 1.48348 298.4835 149.98348 14998.34868 1.48348 298.48348 149.98348 14998.34800 2020-01-01 2020-01-02 2020-01-01 00:08:14 2020-01-02 03:36:35 2020-01-01 00:08:14.000 2020-01-02 03:36:35.000 494 99395 49944.5 4994450 494 99395 49944.5 4994450 -32676 32462 4724.66 472466 -126 125 -1.1 -110 -495 2 10485 99396 1.48648 298.48648 149.98648 14998.64864 1.48648 298.48648 149.98648 14998.64837 1.48648 298.48648 149.98648 14998.64800 2020-01-01 2020-01-02 2020-01-01 00:08:15 2020-01-02 03:36:36 2020-01-01 00:08:15.000 2020-01-02 03:36:36.000 495 99396 49945.5 4994550 495 99396 49945.5 4994550 -32675 32463 4725.66 472566 -125 126 -0.1 -10 -496 2 10486 99397 1.48948 298.48948 149.98948 14998.94894 1.48948 298.4895 149.98948 14998.94896 1.48948 298.48948 149.98948 14998.94800 2020-01-01 2020-01-02 2020-01-01 00:08:16 2020-01-02 03:36:37 2020-01-01 00:08:16.000 2020-01-02 03:36:37.000 496 99397 49946.5 4994650 496 99397 49946.5 4994650 -32674 32464 4726.66 472666 -124 127 0.9 90 -497 2 10487 99398 1.49249 298.49249 149.99249 14999.24924 1.49249 298.4925 149.99249 14999.24926 1.49249 298.49249 149.99249 14999.24900 2020-01-01 2020-01-02 2020-01-01 00:08:17 2020-01-02 03:36:38 2020-01-01 00:08:17.000 2020-01-02 03:36:38.000 497 99398 49947.5 4994750 497 99398 49947.5 4994750 -32673 32465 4727.66 472766 -128 127 -0.66 -66 -498 2 10488 99399 1.49549 298.49549 149.99549 14999.54954 1.49549 298.49548 149.99549 14999.54956 1.49549 298.49549 149.99549 14999.54900 2020-01-01 2020-01-02 2020-01-01 00:08:18 2020-01-02 03:36:39 2020-01-01 00:08:18.000 2020-01-02 03:36:39.000 498 99399 49948.5 4994850 498 99399 49948.5 4994850 -32672 32466 4728.66 472866 -128 123 -2.22 -222 -499 2 10489 99400 1.49849 298.49849 149.99849 14999.84984 1.49849 298.4985 149.9985 14999.85015 1.49849 298.49849 149.99849 14999.84900 2020-01-01 2020-01-02 2020-01-01 00:08:19 2020-01-02 03:36:40 2020-01-01 00:08:19.000 2020-01-02 03:36:40.000 499 99400 49949.5 4994950 499 99400 49949.5 4994950 -32671 32467 4729.66 472966 -127 124 -1.22 -122 -5 2 1004 9995 0.01501 300.01501 150.01501 15151.51651 0.01501 300.015 150.01501 15151.51648 0.01501 300.01501 150.01501 15151.51601 2020-01-01 2020-01-02 2020-01-01 00:00:05 2020-01-02 03:45:05 2020-01-01 00:00:05.000 2020-01-02 03:45:05.000 5 99905 49955 5045455 5 99905 49955 5045455 -32564 32371 4534.009900990099 457935 -128 123 -3.01980198019802 -305 +481 2 10471 99382 1.44444 298.44444 149.94444 14994.44444 1.44444 298.44446 149.94444 14994.44452 1.44444 298.44444 149.94443999999993 14994.44400 2020-01-01 2020-01-02 2020-01-01 00:08:01 2020-01-02 03:36:22 2020-01-01 00:08:01.000 2020-01-02 03:36:22.000 481 99382 49931.5 4993150 481 99382 49931.5 4993150 -32689 32449 4711.66 471166 -127 125 -1.3 -130 +482 2 10472 99383 1.44744 298.44744 149.94744 14994.74474 1.44744 298.44745 149.94744 14994.74485 1.44744 298.44744 149.94743999999994 14994.74400 2020-01-01 2020-01-02 2020-01-01 00:08:02 2020-01-02 03:36:23 2020-01-01 00:08:02.000 2020-01-02 03:36:23.000 482 99383 49932.5 4993250 482 99383 49932.5 4993250 -32688 32450 4712.66 471266 -126 126 -0.3 -30 +483 2 10473 99384 1.45045 298.45045 149.95045 14995.04504 1.45045 298.45044 149.95044 14995.04499 1.45045 298.45045 149.95045000000013 14995.04500 2020-01-01 2020-01-02 2020-01-01 00:08:03 2020-01-02 03:36:24 2020-01-01 00:08:03.000 2020-01-02 03:36:24.000 483 99384 49933.5 4993350 483 99384 49933.5 4993350 -32687 32451 4713.66 471366 -125 127 0.7 70 +484 2 10474 99385 1.45345 298.45345 149.95345 14995.34534 1.45345 298.45346 149.95345 14995.34574 1.45345 298.45345 149.9534500000002 14995.34500 2020-01-01 2020-01-02 2020-01-01 00:08:04 2020-01-02 03:36:25 2020-01-01 00:08:04.000 2020-01-02 03:36:25.000 484 99385 49934.5 4993450 484 99385 49934.5 4993450 -32686 32452 4714.66 471466 -128 127 -0.86 -86 +485 2 10475 99386 1.45645 298.45645 149.95645 14995.64564 1.45645 298.45645 149.95645 14995.6454 1.45645 298.45645 149.95644999999985 14995.64500 2020-01-01 2020-01-02 2020-01-01 00:08:05 2020-01-02 03:36:26 2020-01-01 00:08:05.000 2020-01-02 03:36:26.000 485 99386 49935.5 4993550 485 99386 49935.5 4993550 -32685 32453 4715.66 471566 -128 127 -2.42 -242 +486 2 10476 99387 1.45945 298.45945 149.95945 14995.94594 1.45945 298.45947 149.95946 14995.94602 1.45945 298.45945 149.95945000000012 14995.94500 2020-01-01 2020-01-02 2020-01-01 00:08:06 2020-01-02 03:36:27 2020-01-01 00:08:06.000 2020-01-02 03:36:27.000 486 99387 49936.5 4993650 486 99387 49936.5 4993650 -32684 32454 4716.66 471666 -128 123 -3.98 -398 +487 2 10477 99388 1.46246 298.46246 149.96246 14996.24624 1.46246 298.46246 149.96246 14996.24633 1.46246 298.46246 149.96246000000014 14996.24600 2020-01-01 2020-01-02 2020-01-01 00:08:07 2020-01-02 03:36:28 2020-01-01 00:08:07.000 2020-01-02 03:36:28.000 487 99388 49937.5 4993750 487 99388 49937.5 4993750 -32683 32455 4717.66 471766 -127 124 -2.98 -298 +488 2 10478 99389 1.46546 298.46546 149.96546 14996.54654 1.46546 298.46545 149.96546 14996.54645 1.46546 298.46546 149.96545999999998 14996.54600 2020-01-01 2020-01-02 2020-01-01 00:08:08 2020-01-02 03:36:29 2020-01-01 00:08:08.000 2020-01-02 03:36:29.000 488 99389 49938.5 4993850 488 99389 49938.5 4993850 -32682 32456 4718.66 471866 -126 125 -1.98 -198 +489 2 10479 99390 1.46846 298.46846 149.96846 14996.84684 1.46846 298.46848 149.96847 14996.84721 1.46846 298.46846 149.96846000000002 14996.84600 2020-01-01 2020-01-02 2020-01-01 00:08:09 2020-01-02 03:36:30 2020-01-01 00:08:09.000 2020-01-02 03:36:30.000 489 99390 49939.5 4993950 489 99390 49939.5 4993950 -32681 32457 4719.66 471966 -125 126 -0.98 -98 +49 2 10039 99949 0.14714 300.14714 150.14714 15164.86186 0.14714 300.14716 150.14714 15164.86173 0.14714 300.14714 150.14713999999984 15164.86114 2020-01-01 2020-01-02 2020-01-01 00:00:49 2020-01-02 03:45:49 2020-01-01 00:00:49.000 2020-01-02 03:45:49.000 49 99949 49999 5049899 49 99949 49999 5049899 -32520 32415 4578.009900990099 462379 -128 123 -4.643564356435643 -469 +490 2 10480 99391 1.47147 298.47147 149.97147 14997.14714 1.47147 298.47147 149.97146 14997.14687 1.47147 298.47147 149.9714700000002 14997.14700 2020-01-01 2020-01-02 2020-01-01 00:08:10 2020-01-02 03:36:31 2020-01-01 00:08:10.000 2020-01-02 03:36:31.000 490 99391 49940.5 4994050 490 99391 49940.5 4994050 -32680 32458 4720.66 472066 -124 127 0.02 2 +491 2 10481 99392 1.47447 298.47447 149.97447 14997.44744 1.47447 298.4745 149.97447 14997.44749 1.47447 298.47447 149.97446999999985 14997.44700 2020-01-01 2020-01-02 2020-01-01 00:08:11 2020-01-02 03:36:32 2020-01-01 00:08:11.000 2020-01-02 03:36:32.000 491 99392 49941.5 4994150 491 99392 49941.5 4994150 -32679 32459 4721.66 472166 -128 127 -1.54 -154 +492 2 10482 99393 1.47747 298.47747 149.97747 14997.74774 1.47747 298.47748 149.97747 14997.74779 1.47747 298.47747 149.97746999999987 14997.74700 2020-01-01 2020-01-02 2020-01-01 00:08:12 2020-01-02 03:36:33 2020-01-01 00:08:12.000 2020-01-02 03:36:33.000 492 99393 49942.5 4994250 492 99393 49942.5 4994250 -32678 32460 4722.66 472266 -128 123 -3.1 -310 +493 2 10483 99394 1.48048 298.48048 149.98048 14998.04804 1.48048 298.48047 149.98048 14998.04809 1.48048 298.48048 149.9804800000001 14998.04800 2020-01-01 2020-01-02 2020-01-01 00:08:13 2020-01-02 03:36:34 2020-01-01 00:08:13.000 2020-01-02 03:36:34.000 493 99394 49943.5 4994350 493 99394 49943.5 4994350 -32677 32461 4723.66 472366 -127 124 -2.1 -210 +494 2 10484 99395 1.48348 298.48348 149.98348 14998.34834 1.48348 298.4835 149.98348 14998.34868 1.48348 298.48348 149.9834800000001 14998.34800 2020-01-01 2020-01-02 2020-01-01 00:08:14 2020-01-02 03:36:35 2020-01-01 00:08:14.000 2020-01-02 03:36:35.000 494 99395 49944.5 4994450 494 99395 49944.5 4994450 -32676 32462 4724.66 472466 -126 125 -1.1 -110 +495 2 10485 99396 1.48648 298.48648 149.98648 14998.64864 1.48648 298.48648 149.98648 14998.64837 1.48648 298.48648 149.98647999999977 14998.64800 2020-01-01 2020-01-02 2020-01-01 00:08:15 2020-01-02 03:36:36 2020-01-01 00:08:15.000 2020-01-02 03:36:36.000 495 99396 49945.5 4994550 495 99396 49945.5 4994550 -32675 32463 4725.66 472566 -125 126 -0.1 -10 +496 2 10486 99397 1.48948 298.48948 149.98948 14998.94894 1.48948 298.4895 149.98948 14998.94896 1.48948 298.48948 149.98948000000013 14998.94800 2020-01-01 2020-01-02 2020-01-01 00:08:16 2020-01-02 03:36:37 2020-01-01 00:08:16.000 2020-01-02 03:36:37.000 496 99397 49946.5 4994650 496 99397 49946.5 4994650 -32674 32464 4726.66 472666 -124 127 0.9 90 +497 2 10487 99398 1.49249 298.49249 149.99249 14999.24924 1.49249 298.4925 149.99249 14999.24926 1.49249 298.49249 149.99249000000003 14999.24900 2020-01-01 2020-01-02 2020-01-01 00:08:17 2020-01-02 03:36:38 2020-01-01 00:08:17.000 2020-01-02 03:36:38.000 497 99398 49947.5 4994750 497 99398 49947.5 4994750 -32673 32465 4727.66 472766 -128 127 -0.66 -66 +498 2 10488 99399 1.49549 298.49549 149.99549 14999.54954 1.49549 298.49548 149.99549 14999.54956 1.49549 298.49549 149.9954899999999 14999.54900 2020-01-01 2020-01-02 2020-01-01 00:08:18 2020-01-02 03:36:39 2020-01-01 00:08:18.000 2020-01-02 03:36:39.000 498 99399 49948.5 4994850 498 99399 49948.5 4994850 -32672 32466 4728.66 472866 -128 123 -2.22 -222 +499 2 10489 99400 1.49849 298.49849 149.99849 14999.84984 1.49849 298.4985 149.9985 14999.85015 1.49849 298.49849 149.99848999999998 14999.84900 2020-01-01 2020-01-02 2020-01-01 00:08:19 2020-01-02 03:36:40 2020-01-01 00:08:19.000 2020-01-02 03:36:40.000 499 99400 49949.5 4994950 499 99400 49949.5 4994950 -32671 32467 4729.66 472966 -127 124 -1.22 -122 +5 2 1004 9995 0.01501 300.01501 150.01501 15151.51651 0.01501 300.015 150.01501 15151.51648 0.01501 300.01501 150.01500999999988 15151.51601 2020-01-01 2020-01-02 2020-01-01 00:00:05 2020-01-02 03:45:05 2020-01-01 00:00:05.000 2020-01-02 03:45:05.000 5 99905 49955 5045455 5 99905 49955 5045455 -32564 32371 4534.009900990099 457935 -128 123 -3.01980198019802 -305 50 2 10040 99950 0.15015 300.15015 150.15015 15165.16516 0.15015 300.15015 150.15014 15165.16487 0.15015 300.15015 150.15015 15165.16515 2020-01-01 2020-01-02 2020-01-01 00:00:50 2020-01-02 03:45:50 2020-01-01 00:00:50.000 2020-01-02 03:45:50.000 50 99950 50000 5050000 50 99950 50000 5050000 -32519 32416 4579.009900990099 462480 -127 124 -3.6435643564356437 -368 -500 2 10490 99401 1.5015 298.5015 150.0015 15000.15015 1.5015 298.5015 150.00149 15000.14984 1.50150 298.50150 150.00150 15000.15000 2020-01-01 2020-01-02 2020-01-01 00:08:20 2020-01-02 03:36:41 2020-01-01 00:08:20.000 2020-01-02 03:36:41.000 500 99401 49950.5 4995050 500 99401 49950.5 4995050 -32670 32468 4730.66 473066 -126 125 -0.22 -22 -501 2 10491 99402 1.5045 298.5045 150.0045 15000.45045 1.5045 298.50452 150.0045 15000.45043 1.50450 298.50450 150.00450 15000.45000 2020-01-01 2020-01-02 2020-01-01 00:08:21 2020-01-02 03:36:42 2020-01-01 00:08:21.000 2020-01-02 03:36:42.000 501 99402 49951.5 4995150 501 99402 49951.5 4995150 -32669 32469 4731.66 473166 -125 126 0.78 78 -502 2 10492 99403 1.5075 298.5075 150.0075 15000.75075 1.5075 298.5075 150.0075 15000.75073 1.50750 298.50750 150.00750 15000.75000 2020-01-01 2020-01-02 2020-01-01 00:08:22 2020-01-02 03:36:43 2020-01-01 00:08:22.000 2020-01-02 03:36:43.000 502 99403 49952.5 4995250 502 99403 49952.5 4995250 -32668 32470 4732.66 473266 -124 127 1.78 178 -503 2 10493 99404 1.51051 298.51051 150.01051 15001.05105 1.51051 298.5105 150.01051 15001.05103 1.51051 298.51051 150.01051 15001.05100 2020-01-01 2020-01-02 2020-01-01 00:08:23 2020-01-02 03:36:44 2020-01-01 00:08:23.000 2020-01-02 03:36:44.000 503 99404 49953.5 4995350 503 99404 49953.5 4995350 -32667 32471 4733.66 473366 -128 127 0.22 22 -504 2 10494 99405 1.51351 298.51351 150.01351 15001.35135 1.51351 298.51352 150.01351 15001.35162 1.51351 298.51351 150.01351 15001.35100 2020-01-01 2020-01-02 2020-01-01 00:08:24 2020-01-02 03:36:45 2020-01-01 00:08:24.000 2020-01-02 03:36:45.000 504 99405 49954.5 4995450 504 99405 49954.5 4995450 -32666 32472 4734.66 473466 -128 127 -1.34 -134 -505 2 10495 99406 1.51651 298.51651 150.01651 15001.65165 1.51651 298.5165 150.01651 15001.65131 1.51651 298.51651 150.01651 15001.65100 2020-01-01 2020-01-02 2020-01-01 00:08:25 2020-01-02 03:36:46 2020-01-01 00:08:25.000 2020-01-02 03:36:46.000 505 99406 49955.5 4995550 505 99406 49955.5 4995550 -32665 32473 4735.66 473566 -128 124 -2.9 -290 -506 2 10496 99407 1.51951 298.51951 150.01951 15001.95195 1.51951 298.51953 150.01951 15001.9519 1.51951 298.51951 150.01951 15001.95100 2020-01-01 2020-01-02 2020-01-01 00:08:26 2020-01-02 03:36:47 2020-01-01 00:08:26.000 2020-01-02 03:36:47.000 506 99407 49956.5 4995650 506 99407 49956.5 4995650 -32664 32474 4736.66 473666 -127 125 -1.9 -190 -507 2 10497 99408 1.52252 298.52252 150.02252 15002.25225 1.52252 298.52252 150.02252 15002.2522 1.52252 298.52252 150.02252 15002.25200 2020-01-01 2020-01-02 2020-01-01 00:08:27 2020-01-02 03:36:48 2020-01-01 00:08:27.000 2020-01-02 03:36:48.000 507 99408 49957.5 4995750 507 99408 49957.5 4995750 -32663 32475 4737.66 473766 -126 126 -0.9 -90 -508 2 10498 99409 1.52552 298.52552 150.02552 15002.55255 1.52552 298.5255 150.02552 15002.5525 1.52552 298.52552 150.02552 15002.55200 2020-01-01 2020-01-02 2020-01-01 00:08:28 2020-01-02 03:36:49 2020-01-01 00:08:28.000 2020-01-02 03:36:49.000 508 99409 49958.5 4995850 508 99409 49958.5 4995850 -32662 32476 4738.66 473866 -125 127 0.1 10 -509 2 10499 99410 1.52852 298.52852 150.02852 15002.85285 1.52852 298.52853 150.02853 15002.85312 1.52852 298.52852 150.02852 15002.85200 2020-01-01 2020-01-02 2020-01-01 00:08:29 2020-01-02 03:36:50 2020-01-01 00:08:29.000 2020-01-02 03:36:50.000 509 99410 49959.5 4995950 509 99410 49959.5 4995950 -32661 32477 4739.66 473966 -128 127 -1.46 -146 -51 2 10041 99951 0.15315 300.15315 150.15315 15165.46846 0.15315 300.15317 150.15315 15165.46863 0.15315 300.15315 150.15315 15165.46815 2020-01-01 2020-01-02 2020-01-01 00:00:51 2020-01-02 03:45:51 2020-01-01 00:00:51.000 2020-01-02 03:45:51.000 51 99951 50001 5050101 51 99951 50001 5050101 -32518 32417 4580.009900990099 462581 -126 125 -2.6435643564356437 -267 -510 2 10500 99411 1.53153 298.53153 150.03153 15003.15315 1.53153 298.53152 150.03152 15003.15278 1.53153 298.53153 150.03153 15003.15300 2020-01-01 2020-01-02 2020-01-01 00:08:30 2020-01-02 03:36:51 2020-01-01 00:08:30.000 2020-01-02 03:36:51.000 510 99411 49960.5 4996050 510 99411 49960.5 4996050 -32660 32478 4740.66 474066 -128 127 -3.02 -302 -511 2 10501 99412 1.53453 298.53453 150.03453 15003.45345 1.53453 298.53455 150.03453 15003.45354 1.53453 298.53453 150.03453 15003.45300 2020-01-01 2020-01-02 2020-01-01 00:08:31 2020-01-02 03:36:52 2020-01-01 00:08:31.000 2020-01-02 03:36:52.000 511 99412 49961.5 4996150 511 99412 49961.5 4996150 -32659 32479 4741.66 474166 -128 123 -4.58 -458 -512 2 10502 99413 1.53753 298.53753 150.03753 15003.75375 1.53753 298.53754 150.03753 15003.75366 1.53753 298.53753 150.03753 15003.75300 2020-01-01 2020-01-02 2020-01-01 00:08:32 2020-01-02 03:36:53 2020-01-01 00:08:32.000 2020-01-02 03:36:53.000 512 99413 49962.5 4996250 512 99413 49962.5 4996250 -32658 32480 4742.66 474266 -127 124 -3.58 -358 +500 2 10490 99401 1.5015 298.5015 150.0015 15000.15015 1.5015 298.5015 150.00149 15000.14984 1.50150 298.50150 150.00150000000014 15000.15000 2020-01-01 2020-01-02 2020-01-01 00:08:20 2020-01-02 03:36:41 2020-01-01 00:08:20.000 2020-01-02 03:36:41.000 500 99401 49950.5 4995050 500 99401 49950.5 4995050 -32670 32468 4730.66 473066 -126 125 -0.22 -22 +501 2 10491 99402 1.5045 298.5045 150.0045 15000.45045 1.5045 298.50452 150.0045 15000.45043 1.50450 298.50450 150.0044999999998 15000.45000 2020-01-01 2020-01-02 2020-01-01 00:08:21 2020-01-02 03:36:42 2020-01-01 00:08:21.000 2020-01-02 03:36:42.000 501 99402 49951.5 4995150 501 99402 49951.5 4995150 -32669 32469 4731.66 473166 -125 126 0.78 78 +502 2 10492 99403 1.5075 298.5075 150.0075 15000.75075 1.5075 298.5075 150.0075 15000.75073 1.50750 298.50750 150.00749999999988 15000.75000 2020-01-01 2020-01-02 2020-01-01 00:08:22 2020-01-02 03:36:43 2020-01-01 00:08:22.000 2020-01-02 03:36:43.000 502 99403 49952.5 4995250 502 99403 49952.5 4995250 -32668 32470 4732.66 473266 -124 127 1.78 178 +503 2 10493 99404 1.51051 298.51051 150.01051 15001.05105 1.51051 298.5105 150.01051 15001.05103 1.51051 298.51051 150.01051000000004 15001.05100 2020-01-01 2020-01-02 2020-01-01 00:08:23 2020-01-02 03:36:44 2020-01-01 00:08:23.000 2020-01-02 03:36:44.000 503 99404 49953.5 4995350 503 99404 49953.5 4995350 -32667 32471 4733.66 473366 -128 127 0.22 22 +504 2 10494 99405 1.51351 298.51351 150.01351 15001.35135 1.51351 298.51352 150.01351 15001.35162 1.51351 298.51351 150.01351000000005 15001.35100 2020-01-01 2020-01-02 2020-01-01 00:08:24 2020-01-02 03:36:45 2020-01-01 00:08:24.000 2020-01-02 03:36:45.000 504 99405 49954.5 4995450 504 99405 49954.5 4995450 -32666 32472 4734.66 473466 -128 127 -1.34 -134 +505 2 10495 99406 1.51651 298.51651 150.01651 15001.65165 1.51651 298.5165 150.01651 15001.65131 1.51651 298.51651 150.01650999999998 15001.65100 2020-01-01 2020-01-02 2020-01-01 00:08:25 2020-01-02 03:36:46 2020-01-01 00:08:25.000 2020-01-02 03:36:46.000 505 99406 49955.5 4995550 505 99406 49955.5 4995550 -32665 32473 4735.66 473566 -128 124 -2.9 -290 +506 2 10496 99407 1.51951 298.51951 150.01951 15001.95195 1.51951 298.51953 150.01951 15001.9519 1.51951 298.51951 150.01951000000005 15001.95100 2020-01-01 2020-01-02 2020-01-01 00:08:26 2020-01-02 03:36:47 2020-01-01 00:08:26.000 2020-01-02 03:36:47.000 506 99407 49956.5 4995650 506 99407 49956.5 4995650 -32664 32474 4736.66 473666 -127 125 -1.9 -190 +507 2 10497 99408 1.52252 298.52252 150.02252 15002.25225 1.52252 298.52252 150.02252 15002.2522 1.52252 298.52252 150.0225200000002 15002.25200 2020-01-01 2020-01-02 2020-01-01 00:08:27 2020-01-02 03:36:48 2020-01-01 00:08:27.000 2020-01-02 03:36:48.000 507 99408 49957.5 4995750 507 99408 49957.5 4995750 -32663 32475 4737.66 473766 -126 126 -0.9 -90 +508 2 10498 99409 1.52552 298.52552 150.02552 15002.55255 1.52552 298.5255 150.02552 15002.5525 1.52552 298.52552 150.02551999999991 15002.55200 2020-01-01 2020-01-02 2020-01-01 00:08:28 2020-01-02 03:36:49 2020-01-01 00:08:28.000 2020-01-02 03:36:49.000 508 99409 49958.5 4995850 508 99409 49958.5 4995850 -32662 32476 4738.66 473866 -125 127 0.1 10 +509 2 10499 99410 1.52852 298.52852 150.02852 15002.85285 1.52852 298.52853 150.02853 15002.85312 1.52852 298.52852 150.0285199999999 15002.85200 2020-01-01 2020-01-02 2020-01-01 00:08:29 2020-01-02 03:36:50 2020-01-01 00:08:29.000 2020-01-02 03:36:50.000 509 99410 49959.5 4995950 509 99410 49959.5 4995950 -32661 32477 4739.66 473966 -128 127 -1.46 -146 +51 2 10041 99951 0.15315 300.15315 150.15315 15165.46846 0.15315 300.15317 150.15315 15165.46863 0.15315 300.15315 150.15315000000007 15165.46815 2020-01-01 2020-01-02 2020-01-01 00:00:51 2020-01-02 03:45:51 2020-01-01 00:00:51.000 2020-01-02 03:45:51.000 51 99951 50001 5050101 51 99951 50001 5050101 -32518 32417 4580.009900990099 462581 -126 125 -2.6435643564356437 -267 +510 2 10500 99411 1.53153 298.53153 150.03153 15003.15315 1.53153 298.53152 150.03152 15003.15278 1.53153 298.53153 150.03153000000012 15003.15300 2020-01-01 2020-01-02 2020-01-01 00:08:30 2020-01-02 03:36:51 2020-01-01 00:08:30.000 2020-01-02 03:36:51.000 510 99411 49960.5 4996050 510 99411 49960.5 4996050 -32660 32478 4740.66 474066 -128 127 -3.02 -302 +511 2 10501 99412 1.53453 298.53453 150.03453 15003.45345 1.53453 298.53455 150.03453 15003.45354 1.53453 298.53453 150.03453000000013 15003.45300 2020-01-01 2020-01-02 2020-01-01 00:08:31 2020-01-02 03:36:52 2020-01-01 00:08:31.000 2020-01-02 03:36:52.000 511 99412 49961.5 4996150 511 99412 49961.5 4996150 -32659 32479 4741.66 474166 -128 123 -4.58 -458 +512 2 10502 99413 1.53753 298.53753 150.03753 15003.75375 1.53753 298.53754 150.03753 15003.75366 1.53753 298.53753 150.0375299999998 15003.75300 2020-01-01 2020-01-02 2020-01-01 00:08:32 2020-01-02 03:36:53 2020-01-01 00:08:32.000 2020-01-02 03:36:53.000 512 99413 49962.5 4996250 512 99413 49962.5 4996250 -32658 32480 4742.66 474266 -127 124 -3.58 -358 513 2 10503 99414 1.54054 298.54054 150.04054 15004.05405 1.54054 298.54053 150.04053 15004.05397 1.54054 298.54054 150.04054 15004.05400 2020-01-01 2020-01-02 2020-01-01 00:08:33 2020-01-02 03:36:54 2020-01-01 00:08:33.000 2020-01-02 03:36:54.000 513 99414 49963.5 4996350 513 99414 49963.5 4996350 -32657 32481 4743.66 474366 -126 125 -2.58 -258 -514 2 10504 99415 1.54354 298.54354 150.04354 15004.35435 1.54354 298.54355 150.04354 15004.35459 1.54354 298.54354 150.04354 15004.35400 2020-01-01 2020-01-02 2020-01-01 00:08:34 2020-01-02 03:36:55 2020-01-01 00:08:34.000 2020-01-02 03:36:55.000 514 99415 49964.5 4996450 514 99415 49964.5 4996450 -32656 32482 4744.66 474466 -125 126 -1.58 -158 -515 2 10505 99416 1.54654 298.54654 150.04654 15004.65465 1.54654 298.54654 150.04654 15004.65425 1.54654 298.54654 150.04654 15004.65400 2020-01-01 2020-01-02 2020-01-01 00:08:35 2020-01-02 03:36:56 2020-01-01 00:08:35.000 2020-01-02 03:36:56.000 515 99416 49965.5 4996550 515 99416 49965.5 4996550 -32655 32483 4745.66 474566 -124 127 -0.58 -58 +514 2 10504 99415 1.54354 298.54354 150.04354 15004.35435 1.54354 298.54355 150.04354 15004.35459 1.54354 298.54354 150.04354000000004 15004.35400 2020-01-01 2020-01-02 2020-01-01 00:08:34 2020-01-02 03:36:55 2020-01-01 00:08:34.000 2020-01-02 03:36:55.000 514 99415 49964.5 4996450 514 99415 49964.5 4996450 -32656 32482 4744.66 474466 -125 126 -1.58 -158 +515 2 10505 99416 1.54654 298.54654 150.04654 15004.65465 1.54654 298.54654 150.04654 15004.65425 1.54654 298.54654 150.0465399999999 15004.65400 2020-01-01 2020-01-02 2020-01-01 00:08:35 2020-01-02 03:36:56 2020-01-01 00:08:35.000 2020-01-02 03:36:56.000 515 99416 49965.5 4996550 515 99416 49965.5 4996550 -32655 32483 4745.66 474566 -124 127 -0.58 -58 516 2 10506 99417 1.54954 298.54954 150.04954 15004.95495 1.54954 298.54956 150.04955 15004.955 1.54954 298.54954 150.04954 15004.95400 2020-01-01 2020-01-02 2020-01-01 00:08:36 2020-01-02 03:36:57 2020-01-01 00:08:36.000 2020-01-02 03:36:57.000 516 99417 49966.5 4996650 516 99417 49966.5 4996650 -32654 32484 4746.66 474666 -128 127 -2.14 -214 -517 2 10507 99418 1.55255 298.55255 150.05255 15005.25525 1.55255 298.55255 150.05255 15005.25514 1.55255 298.55255 150.05255 15005.25500 2020-01-01 2020-01-02 2020-01-01 00:08:37 2020-01-02 03:36:58 2020-01-01 00:08:37.000 2020-01-02 03:36:58.000 517 99418 49967.5 4996750 517 99418 49967.5 4996750 -32653 32485 4747.66 474766 -128 123 -3.7 -370 -518 2 10508 99419 1.55555 298.55555 150.05555 15005.55555 1.55555 298.55554 150.05555 15005.55547 1.55555 298.55555 150.05555 15005.55500 2020-01-01 2020-01-02 2020-01-01 00:08:38 2020-01-02 03:36:59 2020-01-01 00:08:38.000 2020-01-02 03:36:59.000 518 99419 49968.5 4996850 518 99419 49968.5 4996850 -32652 32486 4748.66 474866 -127 124 -2.7 -270 -519 2 10509 99420 1.55855 298.55855 150.05855 15005.85585 1.55855 298.55856 150.05856 15005.85607 1.55855 298.55855 150.05855 15005.85500 2020-01-01 2020-01-02 2020-01-01 00:08:39 2020-01-02 03:37:00 2020-01-01 00:08:39.000 2020-01-02 03:37:00.000 519 99420 49969.5 4996950 519 99420 49969.5 4996950 -32651 32487 4749.66 474966 -126 125 -1.7 -170 -52 2 10042 99952 0.15615 300.15615 150.15615 15165.77177 0.15615 300.15616 150.15615 15165.77193 0.15615 300.15615 150.15615 15165.77115 2020-01-01 2020-01-02 2020-01-01 00:00:52 2020-01-02 03:45:52 2020-01-01 00:00:52.000 2020-01-02 03:45:52.000 52 99952 50002 5050202 52 99952 50002 5050202 -32517 32418 4581.009900990099 462682 -125 126 -1.6435643564356435 -166 -520 2 10510 99421 1.56156 298.56156 150.06156 15006.15615 1.56156 298.56155 150.06155 15006.15572 1.56156 298.56156 150.06156 15006.15600 2020-01-01 2020-01-02 2020-01-01 00:08:40 2020-01-02 03:37:01 2020-01-01 00:08:40.000 2020-01-02 03:37:01.000 520 99421 49970.5 4997050 520 99421 49970.5 4997050 -32650 32488 4750.66 475066 -125 126 -0.7 -70 -521 2 10511 99422 1.56456 298.56456 150.06456 15006.45645 1.56456 298.56458 150.06456 15006.45647 1.56456 298.56456 150.06456 15006.45600 2020-01-01 2020-01-02 2020-01-01 00:08:41 2020-01-02 03:37:02 2020-01-01 00:08:41.000 2020-01-02 03:37:02.000 521 99422 49971.5 4997150 521 99422 49971.5 4997150 -32649 32489 4751.66 475166 -124 127 0.3 30 -522 2 10512 99423 1.56756 298.56756 150.06756 15006.75675 1.56756 298.56757 150.06756 15006.75661 1.56756 298.56756 150.06756 15006.75600 2020-01-01 2020-01-02 2020-01-01 00:08:42 2020-01-02 03:37:03 2020-01-01 00:08:42.000 2020-01-02 03:37:03.000 522 99423 49972.5 4997250 522 99423 49972.5 4997250 -32648 32490 4752.66 475266 -128 127 -1.26 -126 -523 2 10513 99424 1.57057 298.57057 150.07057 15007.05705 1.57057 298.57056 150.07056 15007.05694 1.57057 298.57057 150.07057 15007.05700 2020-01-01 2020-01-02 2020-01-01 00:08:43 2020-01-02 03:37:04 2020-01-01 00:08:43.000 2020-01-02 03:37:04.000 523 99424 49973.5 4997350 523 99424 49973.5 4997350 -32647 32491 4753.66 475366 -128 123 -2.82 -282 -524 2 10514 99425 1.57357 298.57357 150.07357 15007.35735 1.57357 298.57358 150.07357 15007.35753 1.57357 298.57357 150.07357 15007.35700 2020-01-01 2020-01-02 2020-01-01 00:08:44 2020-01-02 03:37:05 2020-01-01 00:08:44.000 2020-01-02 03:37:05.000 524 99425 49974.5 4997450 524 99425 49974.5 4997450 -32646 32492 4754.66 475466 -127 124 -1.82 -182 -525 2 10515 99426 1.57657 298.57657 150.07657 15007.65765 1.57657 298.57657 150.07657 15007.65783 1.57657 298.57657 150.07657 15007.65700 2020-01-01 2020-01-02 2020-01-01 00:08:45 2020-01-02 03:37:06 2020-01-01 00:08:45.000 2020-01-02 03:37:06.000 525 99426 49975.5 4997550 525 99426 49975.5 4997550 -32645 32493 4755.66 475566 -126 125 -0.82 -82 -526 2 10516 99427 1.57957 298.57957 150.07957 15007.95795 1.57957 298.5796 150.07957 15007.95795 1.57957 298.57957 150.07957 15007.95700 2020-01-01 2020-01-02 2020-01-01 00:08:46 2020-01-02 03:37:07 2020-01-01 00:08:46.000 2020-01-02 03:37:07.000 526 99427 49976.5 4997650 526 99427 49976.5 4997650 -32644 32494 4756.66 475666 -125 126 0.18 18 -527 2 10517 99428 1.58258 298.58258 150.08258 15008.25825 1.58258 298.58258 150.08258 15008.25811 1.58258 298.58258 150.08258 15008.25800 2020-01-01 2020-01-02 2020-01-01 00:08:47 2020-01-02 03:37:08 2020-01-01 00:08:47.000 2020-01-02 03:37:08.000 527 99428 49977.5 4997750 527 99428 49977.5 4997750 -32643 32495 4757.66 475766 -124 127 1.18 118 -528 2 10518 99429 1.58558 298.58558 150.08558 15008.55855 1.58558 298.58557 150.08558 15008.5584 1.58558 298.58558 150.08558 15008.55800 2020-01-01 2020-01-02 2020-01-01 00:08:48 2020-01-02 03:37:09 2020-01-01 00:08:48.000 2020-01-02 03:37:09.000 528 99429 49978.5 4997850 528 99429 49978.5 4997850 -32642 32496 4758.66 475866 -128 127 -0.38 -38 -529 2 10519 99430 1.58858 298.58858 150.08858 15008.85885 1.58858 298.5886 150.08859 15008.859 1.58858 298.58858 150.08858 15008.85800 2020-01-01 2020-01-02 2020-01-01 00:08:49 2020-01-02 03:37:10 2020-01-01 00:08:49.000 2020-01-02 03:37:10.000 529 99430 49979.5 4997950 529 99430 49979.5 4997950 -32641 32497 4759.66 475966 -128 127 -1.94 -194 -53 2 10043 99953 0.15915 300.15915 150.15915 15166.07507 0.15915 300.15915 150.15915 15166.07511 0.15915 300.15915 150.15915 15166.07415 2020-01-01 2020-01-02 2020-01-01 00:00:53 2020-01-02 03:45:53 2020-01-01 00:00:53.000 2020-01-02 03:45:53.000 53 99953 50003 5050303 53 99953 50003 5050303 -32516 32419 4582.009900990099 462783 -124 127 -0.6435643564356436 -65 +517 2 10507 99418 1.55255 298.55255 150.05255 15005.25525 1.55255 298.55255 150.05255 15005.25514 1.55255 298.55255 150.05255000000017 15005.25500 2020-01-01 2020-01-02 2020-01-01 00:08:37 2020-01-02 03:36:58 2020-01-01 00:08:37.000 2020-01-02 03:36:58.000 517 99418 49967.5 4996750 517 99418 49967.5 4996750 -32653 32485 4747.66 474766 -128 123 -3.7 -370 +518 2 10508 99419 1.55555 298.55555 150.05555 15005.55555 1.55555 298.55554 150.05555 15005.55547 1.55555 298.55555 150.0555499999998 15005.55500 2020-01-01 2020-01-02 2020-01-01 00:08:38 2020-01-02 03:36:59 2020-01-01 00:08:38.000 2020-01-02 03:36:59.000 518 99419 49968.5 4996850 518 99419 49968.5 4996850 -32652 32486 4748.66 474866 -127 124 -2.7 -270 +519 2 10509 99420 1.55855 298.55855 150.05855 15005.85585 1.55855 298.55856 150.05856 15005.85607 1.55855 298.55855 150.0585499999999 15005.85500 2020-01-01 2020-01-02 2020-01-01 00:08:39 2020-01-02 03:37:00 2020-01-01 00:08:39.000 2020-01-02 03:37:00.000 519 99420 49969.5 4996950 519 99420 49969.5 4996950 -32651 32487 4749.66 474966 -126 125 -1.7 -170 +52 2 10042 99952 0.15615 300.15615 150.15615 15165.77177 0.15615 300.15616 150.15615 15165.77193 0.15615 300.15615 150.15615000000003 15165.77115 2020-01-01 2020-01-02 2020-01-01 00:00:52 2020-01-02 03:45:52 2020-01-01 00:00:52.000 2020-01-02 03:45:52.000 52 99952 50002 5050202 52 99952 50002 5050202 -32517 32418 4581.009900990099 462682 -125 126 -1.6435643564356435 -166 +520 2 10510 99421 1.56156 298.56156 150.06156 15006.15615 1.56156 298.56155 150.06155 15006.15572 1.56156 298.56156 150.06156000000007 15006.15600 2020-01-01 2020-01-02 2020-01-01 00:08:40 2020-01-02 03:37:01 2020-01-01 00:08:40.000 2020-01-02 03:37:01.000 520 99421 49970.5 4997050 520 99421 49970.5 4997050 -32650 32488 4750.66 475066 -125 126 -0.7 -70 +521 2 10511 99422 1.56456 298.56456 150.06456 15006.45645 1.56456 298.56458 150.06456 15006.45647 1.56456 298.56456 150.06456000000009 15006.45600 2020-01-01 2020-01-02 2020-01-01 00:08:41 2020-01-02 03:37:02 2020-01-01 00:08:41.000 2020-01-02 03:37:02.000 521 99422 49971.5 4997150 521 99422 49971.5 4997150 -32649 32489 4751.66 475166 -124 127 0.3 30 +522 2 10512 99423 1.56756 298.56756 150.06756 15006.75675 1.56756 298.56757 150.06756 15006.75661 1.56756 298.56756 150.06756000000004 15006.75600 2020-01-01 2020-01-02 2020-01-01 00:08:42 2020-01-02 03:37:03 2020-01-01 00:08:42.000 2020-01-02 03:37:03.000 522 99423 49972.5 4997250 522 99423 49972.5 4997250 -32648 32490 4752.66 475266 -128 127 -1.26 -126 +523 2 10513 99424 1.57057 298.57057 150.07057 15007.05705 1.57057 298.57056 150.07056 15007.05694 1.57057 298.57057 150.0705699999999 15007.05700 2020-01-01 2020-01-02 2020-01-01 00:08:43 2020-01-02 03:37:04 2020-01-01 00:08:43.000 2020-01-02 03:37:04.000 523 99424 49973.5 4997350 523 99424 49973.5 4997350 -32647 32491 4753.66 475366 -128 123 -2.82 -282 +524 2 10514 99425 1.57357 298.57357 150.07357 15007.35735 1.57357 298.57358 150.07357 15007.35753 1.57357 298.57357 150.07356999999996 15007.35700 2020-01-01 2020-01-02 2020-01-01 00:08:44 2020-01-02 03:37:05 2020-01-01 00:08:44.000 2020-01-02 03:37:05.000 524 99425 49974.5 4997450 524 99425 49974.5 4997450 -32646 32492 4754.66 475466 -127 124 -1.82 -182 +525 2 10515 99426 1.57657 298.57657 150.07657 15007.65765 1.57657 298.57657 150.07657 15007.65783 1.57657 298.57657 150.07656999999992 15007.65700 2020-01-01 2020-01-02 2020-01-01 00:08:45 2020-01-02 03:37:06 2020-01-01 00:08:45.000 2020-01-02 03:37:06.000 525 99426 49975.5 4997550 525 99426 49975.5 4997550 -32645 32493 4755.66 475566 -126 125 -0.82 -82 +526 2 10516 99427 1.57957 298.57957 150.07957 15007.95795 1.57957 298.5796 150.07957 15007.95795 1.57957 298.57957 150.0795699999999 15007.95700 2020-01-01 2020-01-02 2020-01-01 00:08:46 2020-01-02 03:37:07 2020-01-01 00:08:46.000 2020-01-02 03:37:07.000 526 99427 49976.5 4997650 526 99427 49976.5 4997650 -32644 32494 4756.66 475666 -125 126 0.18 18 +527 2 10517 99428 1.58258 298.58258 150.08258 15008.25825 1.58258 298.58258 150.08258 15008.25811 1.58258 298.58258 150.08258000000012 15008.25800 2020-01-01 2020-01-02 2020-01-01 00:08:47 2020-01-02 03:37:08 2020-01-01 00:08:47.000 2020-01-02 03:37:08.000 527 99428 49977.5 4997750 527 99428 49977.5 4997750 -32643 32495 4757.66 475766 -124 127 1.18 118 +528 2 10518 99429 1.58558 298.58558 150.08558 15008.55855 1.58558 298.58557 150.08558 15008.5584 1.58558 298.58558 150.08558000000014 15008.55800 2020-01-01 2020-01-02 2020-01-01 00:08:48 2020-01-02 03:37:09 2020-01-01 00:08:48.000 2020-01-02 03:37:09.000 528 99429 49978.5 4997850 528 99429 49978.5 4997850 -32642 32496 4758.66 475866 -128 127 -0.38 -38 +529 2 10519 99430 1.58858 298.58858 150.08858 15008.85885 1.58858 298.5886 150.08859 15008.859 1.58858 298.58858 150.08857999999984 15008.85800 2020-01-01 2020-01-02 2020-01-01 00:08:49 2020-01-02 03:37:10 2020-01-01 00:08:49.000 2020-01-02 03:37:10.000 529 99430 49979.5 4997950 529 99430 49979.5 4997950 -32641 32497 4759.66 475966 -128 127 -1.94 -194 +53 2 10043 99953 0.15915 300.15915 150.15915 15166.07507 0.15915 300.15915 150.15915 15166.07511 0.15915 300.15915 150.15914999999998 15166.07415 2020-01-01 2020-01-02 2020-01-01 00:00:53 2020-01-02 03:45:53 2020-01-01 00:00:53.000 2020-01-02 03:45:53.000 53 99953 50003 5050303 53 99953 50003 5050303 -32516 32419 4582.009900990099 462783 -124 127 -0.6435643564356436 -65 530 2 10520 99431 1.59159 298.59159 150.09159 15009.15915 1.59159 298.59158 150.09159 15009.15929 1.59159 298.59159 150.09159 15009.15900 2020-01-01 2020-01-02 2020-01-01 00:08:50 2020-01-02 03:37:11 2020-01-01 00:08:50.000 2020-01-02 03:37:11.000 530 99431 49980.5 4998050 530 99431 49980.5 4998050 -32640 32498 4760.66 476066 -128 124 -3.5 -350 -531 2 10521 99432 1.59459 298.59459 150.09459 15009.45945 1.59459 298.5946 150.09459 15009.45941 1.59459 298.59459 150.09459 15009.45900 2020-01-01 2020-01-02 2020-01-01 00:08:51 2020-01-02 03:37:12 2020-01-01 00:08:51.000 2020-01-02 03:37:12.000 531 99432 49981.5 4998150 531 99432 49981.5 4998150 -32639 32499 4761.66 476166 -127 125 -2.5 -250 -532 2 10522 99433 1.59759 298.59759 150.09759 15009.75975 1.59759 298.5976 150.09759 15009.75958 1.59759 298.59759 150.09759 15009.75900 2020-01-01 2020-01-02 2020-01-01 00:08:52 2020-01-02 03:37:13 2020-01-01 00:08:52.000 2020-01-02 03:37:13.000 532 99433 49982.5 4998250 532 99433 49982.5 4998250 -32638 32500 4762.66 476266 -126 126 -1.5 -150 -533 2 10523 99434 1.6006 298.6006 150.1006 15010.06006 1.6006 298.6006 150.10059 15010.05988 1.60060 298.60060 150.10060 15010.06000 2020-01-01 2020-01-02 2020-01-01 00:08:53 2020-01-02 03:37:14 2020-01-01 00:08:53.000 2020-01-02 03:37:14.000 533 99434 49983.5 4998350 533 99434 49983.5 4998350 -32637 32501 4763.66 476366 -125 127 -0.5 -50 -534 2 10524 99435 1.6036 298.6036 150.1036 15010.36036 1.6036 298.6036 150.1036 15010.36063 1.60360 298.60360 150.10360 15010.36000 2020-01-01 2020-01-02 2020-01-01 00:08:54 2020-01-02 03:37:15 2020-01-01 00:08:54.000 2020-01-02 03:37:15.000 534 99435 49984.5 4998450 534 99435 49984.5 4998450 -32636 32502 4764.66 476466 -128 127 -2.06 -206 -535 2 10525 99436 1.6066 298.6066 150.1066 15010.66066 1.6066 298.6066 150.1066 15010.66077 1.60660 298.60660 150.10660 15010.66000 2020-01-01 2020-01-02 2020-01-01 00:08:55 2020-01-02 03:37:16 2020-01-01 00:08:55.000 2020-01-02 03:37:16.000 535 99436 49985.5 4998550 535 99436 49985.5 4998550 -32635 32503 4765.66 476566 -128 127 -3.62 -362 -536 2 10526 99437 1.6096 298.6096 150.1096 15010.96096 1.6096 298.60962 150.1096 15010.96092 1.60960 298.60960 150.10960 15010.96000 2020-01-01 2020-01-02 2020-01-01 00:08:56 2020-01-02 03:37:17 2020-01-01 00:08:56.000 2020-01-02 03:37:17.000 536 99437 49986.5 4998650 536 99437 49986.5 4998650 -32634 32504 4766.66 476666 -128 123 -5.18 -518 -537 2 10527 99438 1.61261 298.61261 150.11261 15011.26126 1.61261 298.6126 150.11261 15011.26105 1.61261 298.61261 150.11261 15011.26100 2020-01-01 2020-01-02 2020-01-01 00:08:57 2020-01-02 03:37:18 2020-01-01 00:08:57.000 2020-01-02 03:37:18.000 537 99438 49987.5 4998750 537 99438 49987.5 4998750 -32633 32505 4767.66 476766 -127 124 -4.18 -418 -538 2 10528 99439 1.61561 298.61561 150.11561 15011.56156 1.61561 298.6156 150.11561 15011.56135 1.61561 298.61561 150.11561 15011.56100 2020-01-01 2020-01-02 2020-01-01 00:08:58 2020-01-02 03:37:19 2020-01-01 00:08:58.000 2020-01-02 03:37:19.000 538 99439 49988.5 4998850 538 99439 49988.5 4998850 -32632 32506 4768.66 476866 -126 125 -3.18 -318 -539 2 10529 99440 1.61861 298.61861 150.11861 15011.86186 1.61861 298.61862 150.11862 15011.8621 1.61861 298.61861 150.11861 15011.86100 2020-01-01 2020-01-02 2020-01-01 00:08:59 2020-01-02 03:37:20 2020-01-01 00:08:59.000 2020-01-02 03:37:20.000 539 99440 49989.5 4998950 539 99440 49989.5 4998950 -32631 32507 4769.66 476966 -125 126 -2.18 -218 -54 2 10044 99954 0.16216 300.16216 150.16216 15166.37837 0.16216 300.16217 150.16216 15166.37822 0.16216 300.16216 150.16216 15166.37816 2020-01-01 2020-01-02 2020-01-01 00:00:54 2020-01-02 03:45:54 2020-01-01 00:00:54.000 2020-01-02 03:45:54.000 54 99954 50004 5050404 54 99954 50004 5050404 -32515 32420 4583.009900990099 462884 -128 127 -2.1782178217821784 -220 -540 2 10530 99441 1.62162 298.62162 150.12162 15012.16216 1.62162 298.6216 150.12162 15012.16224 1.62162 298.62162 150.12162 15012.16200 2020-01-01 2020-01-02 2020-01-01 00:09:00 2020-01-02 03:37:21 2020-01-01 00:09:00.000 2020-01-02 03:37:21.000 540 99441 49990.5 4999050 540 99441 49990.5 4999050 -32630 32508 4770.66 477066 -124 127 -1.18 -118 +531 2 10521 99432 1.59459 298.59459 150.09459 15009.45945 1.59459 298.5946 150.09459 15009.45941 1.59459 298.59459 150.09459000000007 15009.45900 2020-01-01 2020-01-02 2020-01-01 00:08:51 2020-01-02 03:37:12 2020-01-01 00:08:51.000 2020-01-02 03:37:12.000 531 99432 49981.5 4998150 531 99432 49981.5 4998150 -32639 32499 4761.66 476166 -127 125 -2.5 -250 +532 2 10522 99433 1.59759 298.59759 150.09759 15009.75975 1.59759 298.5976 150.09759 15009.75958 1.59759 298.59759 150.09758999999994 15009.75900 2020-01-01 2020-01-02 2020-01-01 00:08:52 2020-01-02 03:37:13 2020-01-01 00:08:52.000 2020-01-02 03:37:13.000 532 99433 49982.5 4998250 532 99433 49982.5 4998250 -32638 32500 4762.66 476266 -126 126 -1.5 -150 +533 2 10523 99434 1.6006 298.6006 150.1006 15010.06006 1.6006 298.6006 150.10059 15010.05988 1.60060 298.60060 150.10059999999984 15010.06000 2020-01-01 2020-01-02 2020-01-01 00:08:53 2020-01-02 03:37:14 2020-01-01 00:08:53.000 2020-01-02 03:37:14.000 533 99434 49983.5 4998350 533 99434 49983.5 4998350 -32637 32501 4763.66 476366 -125 127 -0.5 -50 +534 2 10524 99435 1.6036 298.6036 150.1036 15010.36036 1.6036 298.6036 150.1036 15010.36063 1.60360 298.60360 150.10360000000017 15010.36000 2020-01-01 2020-01-02 2020-01-01 00:08:54 2020-01-02 03:37:15 2020-01-01 00:08:54.000 2020-01-02 03:37:15.000 534 99435 49984.5 4998450 534 99435 49984.5 4998450 -32636 32502 4764.66 476466 -128 127 -2.06 -206 +535 2 10525 99436 1.6066 298.6066 150.1066 15010.66066 1.6066 298.6066 150.1066 15010.66077 1.60660 298.60660 150.10659999999987 15010.66000 2020-01-01 2020-01-02 2020-01-01 00:08:55 2020-01-02 03:37:16 2020-01-01 00:08:55.000 2020-01-02 03:37:16.000 535 99436 49985.5 4998550 535 99436 49985.5 4998550 -32635 32503 4765.66 476566 -128 127 -3.62 -362 +536 2 10526 99437 1.6096 298.6096 150.1096 15010.96096 1.6096 298.60962 150.1096 15010.96092 1.60960 298.60960 150.10959999999986 15010.96000 2020-01-01 2020-01-02 2020-01-01 00:08:56 2020-01-02 03:37:17 2020-01-01 00:08:56.000 2020-01-02 03:37:17.000 536 99437 49986.5 4998650 536 99437 49986.5 4998650 -32634 32504 4766.66 476666 -128 123 -5.18 -518 +537 2 10527 99438 1.61261 298.61261 150.11261 15011.26126 1.61261 298.6126 150.11261 15011.26105 1.61261 298.61261 150.1126100000001 15011.26100 2020-01-01 2020-01-02 2020-01-01 00:08:57 2020-01-02 03:37:18 2020-01-01 00:08:57.000 2020-01-02 03:37:18.000 537 99438 49987.5 4998750 537 99438 49987.5 4998750 -32633 32505 4767.66 476766 -127 124 -4.18 -418 +538 2 10528 99439 1.61561 298.61561 150.11561 15011.56156 1.61561 298.6156 150.11561 15011.56135 1.61561 298.61561 150.11561000000012 15011.56100 2020-01-01 2020-01-02 2020-01-01 00:08:58 2020-01-02 03:37:19 2020-01-01 00:08:58.000 2020-01-02 03:37:19.000 538 99439 49988.5 4998850 538 99439 49988.5 4998850 -32632 32506 4768.66 476866 -126 125 -3.18 -318 +539 2 10529 99440 1.61861 298.61861 150.11861 15011.86186 1.61861 298.61862 150.11862 15011.8621 1.61861 298.61861 150.1186099999999 15011.86100 2020-01-01 2020-01-02 2020-01-01 00:08:59 2020-01-02 03:37:20 2020-01-01 00:08:59.000 2020-01-02 03:37:20.000 539 99440 49989.5 4998950 539 99440 49989.5 4998950 -32631 32507 4769.66 476966 -125 126 -2.18 -218 +54 2 10044 99954 0.16216 300.16216 150.16216 15166.37837 0.16216 300.16217 150.16216 15166.37822 0.16216 300.16216 150.1621599999999 15166.37816 2020-01-01 2020-01-02 2020-01-01 00:00:54 2020-01-02 03:45:54 2020-01-01 00:00:54.000 2020-01-02 03:45:54.000 54 99954 50004 5050404 54 99954 50004 5050404 -32515 32420 4583.009900990099 462884 -128 127 -2.1782178217821784 -220 +540 2 10530 99441 1.62162 298.62162 150.12162 15012.16216 1.62162 298.6216 150.12162 15012.16224 1.62162 298.62162 150.12161999999992 15012.16200 2020-01-01 2020-01-02 2020-01-01 00:09:00 2020-01-02 03:37:21 2020-01-01 00:09:00.000 2020-01-02 03:37:21.000 540 99441 49990.5 4999050 540 99441 49990.5 4999050 -32630 32508 4770.66 477066 -124 127 -1.18 -118 541 2 10531 99442 1.62462 298.62462 150.12462 15012.46246 1.62462 298.62463 150.12462 15012.46239 1.62462 298.62462 150.12462 15012.46200 2020-01-01 2020-01-02 2020-01-01 00:09:01 2020-01-02 03:37:22 2020-01-01 00:09:01.000 2020-01-02 03:37:22.000 541 99442 49991.5 4999150 541 99442 49991.5 4999150 -32629 32509 4771.66 477166 -128 127 -2.74 -274 -542 2 10532 99443 1.62762 298.62762 150.12762 15012.76276 1.62762 298.62762 150.12762 15012.76252 1.62762 298.62762 150.12762 15012.76200 2020-01-01 2020-01-02 2020-01-01 00:09:02 2020-01-02 03:37:23 2020-01-01 00:09:02.000 2020-01-02 03:37:23.000 542 99443 49992.5 4999250 542 99443 49992.5 4999250 -32628 32510 4772.66 477266 -128 123 -4.3 -430 -543 2 10533 99444 1.63063 298.63063 150.13063 15013.06306 1.63063 298.63065 150.13063 15013.06327 1.63063 298.63063 150.13063 15013.06300 2020-01-01 2020-01-02 2020-01-01 00:09:03 2020-01-02 03:37:24 2020-01-01 00:09:03.000 2020-01-02 03:37:24.000 543 99444 49993.5 4999350 543 99444 49993.5 4999350 -32627 32511 4773.66 477366 -127 124 -3.3 -330 -544 2 10534 99445 1.63363 298.63363 150.13363 15013.36336 1.63363 298.63364 150.13363 15013.36358 1.63363 298.63363 150.13363 15013.36300 2020-01-01 2020-01-02 2020-01-01 00:09:04 2020-01-02 03:37:25 2020-01-01 00:09:04.000 2020-01-02 03:37:25.000 544 99445 49994.5 4999450 544 99445 49994.5 4999450 -32626 32512 4774.66 477466 -126 125 -2.3 -230 -545 2 10535 99446 1.63663 298.63663 150.13663 15013.66366 1.63663 298.63663 150.13663 15013.6637 1.63663 298.63663 150.13663 15013.66300 2020-01-01 2020-01-02 2020-01-01 00:09:05 2020-01-02 03:37:26 2020-01-01 00:09:05.000 2020-01-02 03:37:26.000 545 99446 49995.5 4999550 545 99446 49995.5 4999550 -32625 32513 4775.66 477566 -125 126 -1.3 -130 -546 2 10536 99447 1.63963 298.63963 150.13963 15013.96396 1.63963 298.63965 150.13963 15013.96385 1.63963 298.63963 150.13963 15013.96300 2020-01-01 2020-01-02 2020-01-01 00:09:06 2020-01-02 03:37:27 2020-01-01 00:09:06.000 2020-01-02 03:37:27.000 546 99447 49996.5 4999650 546 99447 49996.5 4999650 -32624 32514 4776.66 477666 -124 127 -0.3 -30 +542 2 10532 99443 1.62762 298.62762 150.12762 15012.76276 1.62762 298.62762 150.12762 15012.76252 1.62762 298.62762 150.12761999999998 15012.76200 2020-01-01 2020-01-02 2020-01-01 00:09:02 2020-01-02 03:37:23 2020-01-01 00:09:02.000 2020-01-02 03:37:23.000 542 99443 49992.5 4999250 542 99443 49992.5 4999250 -32628 32510 4772.66 477266 -128 123 -4.3 -430 +543 2 10533 99444 1.63063 298.63063 150.13063 15013.06306 1.63063 298.63065 150.13063 15013.06327 1.63063 298.63063 150.13062999999985 15013.06300 2020-01-01 2020-01-02 2020-01-01 00:09:03 2020-01-02 03:37:24 2020-01-01 00:09:03.000 2020-01-02 03:37:24.000 543 99444 49993.5 4999350 543 99444 49993.5 4999350 -32627 32511 4773.66 477366 -127 124 -3.3 -330 +544 2 10534 99445 1.63363 298.63363 150.13363 15013.36336 1.63363 298.63364 150.13363 15013.36358 1.63363 298.63363 150.13363000000012 15013.36300 2020-01-01 2020-01-02 2020-01-01 00:09:04 2020-01-02 03:37:25 2020-01-01 00:09:04.000 2020-01-02 03:37:25.000 544 99445 49994.5 4999450 544 99445 49994.5 4999450 -32626 32512 4774.66 477466 -126 125 -2.3 -230 +545 2 10535 99446 1.63663 298.63663 150.13663 15013.66366 1.63663 298.63663 150.13663 15013.6637 1.63663 298.63663 150.1366300000002 15013.66300 2020-01-01 2020-01-02 2020-01-01 00:09:05 2020-01-02 03:37:26 2020-01-01 00:09:05.000 2020-01-02 03:37:26.000 545 99446 49995.5 4999550 545 99446 49995.5 4999550 -32625 32513 4775.66 477566 -125 126 -1.3 -130 +546 2 10536 99447 1.63963 298.63963 150.13963 15013.96396 1.63963 298.63965 150.13963 15013.96385 1.63963 298.63963 150.13962999999984 15013.96300 2020-01-01 2020-01-02 2020-01-01 00:09:06 2020-01-02 03:37:27 2020-01-01 00:09:06.000 2020-01-02 03:37:27.000 546 99447 49996.5 4999650 546 99447 49996.5 4999650 -32624 32514 4776.66 477666 -124 127 -0.3 -30 547 2 10537 99448 1.64264 298.64264 150.14264 15014.26426 1.64264 298.64264 150.14263 15014.26399 1.64264 298.64264 150.14264 15014.26400 2020-01-01 2020-01-02 2020-01-01 00:09:07 2020-01-02 03:37:28 2020-01-01 00:09:07.000 2020-01-02 03:37:28.000 547 99448 49997.5 4999750 547 99448 49997.5 4999750 -32623 32515 4777.66 477766 -128 127 -1.86 -186 -548 2 10538 99449 1.64564 298.64564 150.14564 15014.56456 1.64564 298.64566 150.14564 15014.56474 1.64564 298.64564 150.14564 15014.56400 2020-01-01 2020-01-02 2020-01-01 00:09:08 2020-01-02 03:37:29 2020-01-01 00:09:08.000 2020-01-02 03:37:29.000 548 99449 49998.5 4999850 548 99449 49998.5 4999850 -32622 32516 4778.66 477866 -128 123 -3.42 -342 -549 2 10539 99450 1.64864 298.64864 150.14864 15014.86486 1.64864 298.64865 150.14865 15014.86504 1.64864 298.64864 150.14864 15014.86400 2020-01-01 2020-01-02 2020-01-01 00:09:09 2020-01-02 03:37:30 2020-01-01 00:09:09.000 2020-01-02 03:37:30.000 549 99450 49999.5 4999950 549 99450 49999.5 4999950 -32621 32517 4779.66 477966 -127 124 -2.42 -242 -55 2 10045 99955 0.16516 300.16516 150.16516 15166.68168 0.16516 300.16516 150.16516 15166.68151 0.16516 300.16516 150.16516 15166.68116 2020-01-01 2020-01-02 2020-01-01 00:00:55 2020-01-02 03:45:55 2020-01-01 00:00:55.000 2020-01-02 03:45:55.000 55 99955 50005 5050505 55 99955 50005 5050505 -32514 32421 4584.009900990099 462985 -128 123 -3.712871287128713 -375 -550 2 10540 99451 1.65165 298.65165 150.15165 15015.16516 1.65165 298.65164 150.15165 15015.16521 1.65165 298.65165 150.15165 15015.16500 2020-01-01 2020-01-02 2020-01-01 00:09:10 2020-01-02 03:37:31 2020-01-01 00:09:10.000 2020-01-02 03:37:31.000 550 99451 50000.5 5000050 550 99451 50000.5 5000050 -32620 32518 4780.66 478066 -126 125 -1.42 -142 -551 2 10541 99452 1.65465 298.65465 150.15465 15015.46546 1.65465 298.65466 150.15465 15015.46533 1.65465 298.65465 150.15465 15015.46500 2020-01-01 2020-01-02 2020-01-01 00:09:11 2020-01-02 03:37:32 2020-01-01 00:09:11.000 2020-01-02 03:37:32.000 551 99452 50001.5 5000150 551 99452 50001.5 5000150 -32619 32519 4781.66 478166 -125 126 -0.42 -42 -552 2 10542 99453 1.65765 298.65765 150.15765 15015.76576 1.65765 298.65765 150.15765 15015.76562 1.65765 298.65765 150.15765 15015.76500 2020-01-01 2020-01-02 2020-01-01 00:09:12 2020-01-02 03:37:33 2020-01-01 00:09:12.000 2020-01-02 03:37:33.000 552 99453 50002.5 5000250 552 99453 50002.5 5000250 -32618 32520 4782.66 478266 -124 127 0.58 58 -553 2 10543 99454 1.66066 298.66066 150.16066 15016.06606 1.66066 298.66068 150.16066 15016.06621 1.66066 298.66066 150.16066 15016.06600 2020-01-01 2020-01-02 2020-01-01 00:09:13 2020-01-02 03:37:34 2020-01-01 00:09:13.000 2020-01-02 03:37:34.000 553 99454 50003.5 5000350 553 99454 50003.5 5000350 -32617 32521 4783.66 478366 -128 127 -0.98 -98 -554 2 10544 99455 1.66366 298.66366 150.16366 15016.36636 1.66366 298.66367 150.16366 15016.36651 1.66366 298.66366 150.16366 15016.36600 2020-01-01 2020-01-02 2020-01-01 00:09:14 2020-01-02 03:37:35 2020-01-01 00:09:14.000 2020-01-02 03:37:35.000 554 99455 50004.5 5000450 554 99455 50004.5 5000450 -32616 32522 4784.66 478466 -128 127 -2.54 -254 -555 2 10545 99456 1.66666 298.66666 150.16666 15016.66666 1.66666 298.66666 150.16666 15016.66668 1.66666 298.66666 150.16666 15016.66600 2020-01-01 2020-01-02 2020-01-01 00:09:15 2020-01-02 03:37:36 2020-01-01 00:09:15.000 2020-01-02 03:37:36.000 555 99456 50005.5 5000550 555 99456 50005.5 5000550 -32615 32523 4785.66 478566 -128 124 -4.1 -410 -556 2 10546 99457 1.66966 298.66966 150.16966 15016.96696 1.66966 298.66968 150.16966 15016.9668 1.66966 298.66966 150.16966 15016.96600 2020-01-01 2020-01-02 2020-01-01 00:09:16 2020-01-02 03:37:37 2020-01-01 00:09:16.000 2020-01-02 03:37:37.000 556 99457 50006.5 5000650 556 99457 50006.5 5000650 -32614 32524 4786.66 478666 -127 125 -3.1 -310 -557 2 10547 99458 1.67267 298.67267 150.17267 15017.26726 1.67267 298.67267 150.17267 15017.26709 1.67267 298.67267 150.17267 15017.26700 2020-01-01 2020-01-02 2020-01-01 00:09:17 2020-01-02 03:37:38 2020-01-01 00:09:17.000 2020-01-02 03:37:38.000 557 99458 50007.5 5000750 557 99458 50007.5 5000750 -32613 32525 4787.66 478766 -126 126 -2.1 -210 +548 2 10538 99449 1.64564 298.64564 150.14564 15014.56456 1.64564 298.64566 150.14564 15014.56474 1.64564 298.64564 150.1456400000001 15014.56400 2020-01-01 2020-01-02 2020-01-01 00:09:08 2020-01-02 03:37:29 2020-01-01 00:09:08.000 2020-01-02 03:37:29.000 548 99449 49998.5 4999850 548 99449 49998.5 4999850 -32622 32516 4778.66 477866 -128 123 -3.42 -342 +549 2 10539 99450 1.64864 298.64864 150.14864 15014.86486 1.64864 298.64865 150.14865 15014.86504 1.64864 298.64864 150.14863999999997 15014.86400 2020-01-01 2020-01-02 2020-01-01 00:09:09 2020-01-02 03:37:30 2020-01-01 00:09:09.000 2020-01-02 03:37:30.000 549 99450 49999.5 4999950 549 99450 49999.5 4999950 -32621 32517 4779.66 477966 -127 124 -2.42 -242 +55 2 10045 99955 0.16516 300.16516 150.16516 15166.68168 0.16516 300.16516 150.16516 15166.68151 0.16516 300.16516 150.16515999999996 15166.68116 2020-01-01 2020-01-02 2020-01-01 00:00:55 2020-01-02 03:45:55 2020-01-01 00:00:55.000 2020-01-02 03:45:55.000 55 99955 50005 5050505 55 99955 50005 5050505 -32514 32421 4584.009900990099 462985 -128 123 -3.712871287128713 -375 +550 2 10540 99451 1.65165 298.65165 150.15165 15015.16516 1.65165 298.65164 150.15165 15015.16521 1.65165 298.65165 150.15164999999985 15015.16500 2020-01-01 2020-01-02 2020-01-01 00:09:10 2020-01-02 03:37:31 2020-01-01 00:09:10.000 2020-01-02 03:37:31.000 550 99451 50000.5 5000050 550 99451 50000.5 5000050 -32620 32518 4780.66 478066 -126 125 -1.42 -142 +551 2 10541 99452 1.65465 298.65465 150.15465 15015.46546 1.65465 298.65466 150.15465 15015.46533 1.65465 298.65465 150.1546500000002 15015.46500 2020-01-01 2020-01-02 2020-01-01 00:09:11 2020-01-02 03:37:32 2020-01-01 00:09:11.000 2020-01-02 03:37:32.000 551 99452 50001.5 5000150 551 99452 50001.5 5000150 -32619 32519 4781.66 478166 -125 126 -0.42 -42 +552 2 10542 99453 1.65765 298.65765 150.15765 15015.76576 1.65765 298.65765 150.15765 15015.76562 1.65765 298.65765 150.15764999999985 15015.76500 2020-01-01 2020-01-02 2020-01-01 00:09:12 2020-01-02 03:37:33 2020-01-01 00:09:12.000 2020-01-02 03:37:33.000 552 99453 50002.5 5000250 552 99453 50002.5 5000250 -32618 32520 4782.66 478266 -124 127 0.58 58 +553 2 10543 99454 1.66066 298.66066 150.16066 15016.06606 1.66066 298.66068 150.16066 15016.06621 1.66066 298.66066 150.16065999999978 15016.06600 2020-01-01 2020-01-02 2020-01-01 00:09:13 2020-01-02 03:37:34 2020-01-01 00:09:13.000 2020-01-02 03:37:34.000 553 99454 50003.5 5000350 553 99454 50003.5 5000350 -32617 32521 4783.66 478366 -128 127 -0.98 -98 +554 2 10544 99455 1.66366 298.66366 150.16366 15016.36636 1.66366 298.66367 150.16366 15016.36651 1.66366 298.66366 150.1636600000001 15016.36600 2020-01-01 2020-01-02 2020-01-01 00:09:14 2020-01-02 03:37:35 2020-01-01 00:09:14.000 2020-01-02 03:37:35.000 554 99455 50004.5 5000450 554 99455 50004.5 5000450 -32616 32522 4784.66 478466 -128 127 -2.54 -254 +555 2 10545 99456 1.66666 298.66666 150.16666 15016.66666 1.66666 298.66666 150.16666 15016.66668 1.66666 298.66666 150.16666000000012 15016.66600 2020-01-01 2020-01-02 2020-01-01 00:09:15 2020-01-02 03:37:36 2020-01-01 00:09:15.000 2020-01-02 03:37:36.000 555 99456 50005.5 5000550 555 99456 50005.5 5000550 -32615 32523 4785.66 478566 -128 124 -4.1 -410 +556 2 10546 99457 1.66966 298.66966 150.16966 15016.96696 1.66966 298.66968 150.16966 15016.9668 1.66966 298.66966 150.1696599999998 15016.96600 2020-01-01 2020-01-02 2020-01-01 00:09:16 2020-01-02 03:37:37 2020-01-01 00:09:16.000 2020-01-02 03:37:37.000 556 99457 50006.5 5000650 556 99457 50006.5 5000650 -32614 32524 4786.66 478666 -127 125 -3.1 -310 +557 2 10547 99458 1.67267 298.67267 150.17267 15017.26726 1.67267 298.67267 150.17267 15017.26709 1.67267 298.67267 150.17266999999995 15017.26700 2020-01-01 2020-01-02 2020-01-01 00:09:17 2020-01-02 03:37:38 2020-01-01 00:09:17.000 2020-01-02 03:37:38.000 557 99458 50007.5 5000750 557 99458 50007.5 5000750 -32613 32525 4787.66 478766 -126 126 -2.1 -210 558 2 10548 99459 1.67567 298.67567 150.17567 15017.56756 1.67567 298.6757 150.17567 15017.56769 1.67567 298.67567 150.17567 15017.56700 2020-01-01 2020-01-02 2020-01-01 00:09:18 2020-01-02 03:37:39 2020-01-01 00:09:18.000 2020-01-02 03:37:39.000 558 99459 50008.5 5000850 558 99459 50008.5 5000850 -32612 32526 4788.66 478866 -125 127 -1.1 -110 -559 2 10549 99460 1.67867 298.67867 150.17867 15017.86786 1.67867 298.67868 150.17868 15017.86802 1.67867 298.67867 150.17867 15017.86700 2020-01-01 2020-01-02 2020-01-01 00:09:19 2020-01-02 03:37:40 2020-01-01 00:09:19.000 2020-01-02 03:37:40.000 559 99460 50009.5 5000950 559 99460 50009.5 5000950 -32611 32527 4789.66 478966 -128 127 -2.66 -266 -56 2 10046 99956 0.16816 300.16816 150.16816 15166.98498 0.16816 300.16818 150.16816 15166.98512 0.16816 300.16816 150.16816 15166.98416 2020-01-01 2020-01-02 2020-01-01 00:00:56 2020-01-02 03:45:56 2020-01-01 00:00:56.000 2020-01-02 03:45:56.000 56 99956 50006 5050606 56 99956 50006 5050606 -32513 32422 4585.009900990099 463086 -127 124 -2.712871287128713 -274 -560 2 10550 99461 1.68168 298.68168 150.18168 15018.16816 1.68168 298.68167 150.18168 15018.16815 1.68168 298.68168 150.18168 15018.16800 2020-01-01 2020-01-02 2020-01-01 00:09:20 2020-01-02 03:37:41 2020-01-01 00:09:20.000 2020-01-02 03:37:41.000 560 99461 50010.5 5001050 560 99461 50010.5 5001050 -32610 32528 4790.66 479066 -128 127 -4.22 -422 -561 2 10551 99462 1.68468 298.68468 150.18468 15018.46846 1.68468 298.6847 150.18468 15018.46826 1.68468 298.68468 150.18468 15018.46800 2020-01-01 2020-01-02 2020-01-01 00:09:21 2020-01-02 03:37:42 2020-01-01 00:09:21.000 2020-01-02 03:37:42.000 561 99462 50011.5 5001150 561 99462 50011.5 5001150 -32609 32529 4791.66 479166 -128 123 -5.78 -578 -562 2 10552 99463 1.68768 298.68768 150.18768 15018.76876 1.68768 298.68768 150.18768 15018.76856 1.68768 298.68768 150.18768 15018.76800 2020-01-01 2020-01-02 2020-01-01 00:09:22 2020-01-02 03:37:43 2020-01-01 00:09:22.000 2020-01-02 03:37:43.000 562 99463 50012.5 5001250 562 99463 50012.5 5001250 -32608 32530 4792.66 479266 -127 124 -4.78 -478 +559 2 10549 99460 1.67867 298.67867 150.17867 15017.86786 1.67867 298.67868 150.17868 15017.86802 1.67867 298.67867 150.17866999999995 15017.86700 2020-01-01 2020-01-02 2020-01-01 00:09:19 2020-01-02 03:37:40 2020-01-01 00:09:19.000 2020-01-02 03:37:40.000 559 99460 50009.5 5000950 559 99460 50009.5 5000950 -32611 32527 4789.66 478966 -128 127 -2.66 -266 +56 2 10046 99956 0.16816 300.16816 150.16816 15166.98498 0.16816 300.16818 150.16816 15166.98512 0.16816 300.16816 150.1681599999999 15166.98416 2020-01-01 2020-01-02 2020-01-01 00:00:56 2020-01-02 03:45:56 2020-01-01 00:00:56.000 2020-01-02 03:45:56.000 56 99956 50006 5050606 56 99956 50006 5050606 -32513 32422 4585.009900990099 463086 -127 124 -2.712871287128713 -274 +560 2 10550 99461 1.68168 298.68168 150.18168 15018.16816 1.68168 298.68167 150.18168 15018.16815 1.68168 298.68168 150.18167999999986 15018.16800 2020-01-01 2020-01-02 2020-01-01 00:09:20 2020-01-02 03:37:41 2020-01-01 00:09:20.000 2020-01-02 03:37:41.000 560 99461 50010.5 5001050 560 99461 50010.5 5001050 -32610 32528 4790.66 479066 -128 127 -4.22 -422 +561 2 10551 99462 1.68468 298.68468 150.18468 15018.46846 1.68468 298.6847 150.18468 15018.46826 1.68468 298.68468 150.18468000000013 15018.46800 2020-01-01 2020-01-02 2020-01-01 00:09:21 2020-01-02 03:37:42 2020-01-01 00:09:21.000 2020-01-02 03:37:42.000 561 99462 50011.5 5001150 561 99462 50011.5 5001150 -32609 32529 4791.66 479166 -128 123 -5.78 -578 +562 2 10552 99463 1.68768 298.68768 150.18768 15018.76876 1.68768 298.68768 150.18768 15018.76856 1.68768 298.68768 150.1876799999998 15018.76800 2020-01-01 2020-01-02 2020-01-01 00:09:22 2020-01-02 03:37:43 2020-01-01 00:09:22.000 2020-01-02 03:37:43.000 562 99463 50012.5 5001250 562 99463 50012.5 5001250 -32608 32530 4792.66 479266 -127 124 -4.78 -478 563 2 10553 99464 1.69069 298.69069 150.19069 15019.06906 1.69069 298.6907 150.19069 15019.06915 1.69069 298.69069 150.19069 15019.06900 2020-01-01 2020-01-02 2020-01-01 00:09:23 2020-01-02 03:37:44 2020-01-01 00:09:23.000 2020-01-02 03:37:44.000 563 99464 50013.5 5001350 563 99464 50013.5 5001350 -32607 32531 4793.66 479366 -126 125 -3.78 -378 -564 2 10554 99465 1.69369 298.69369 150.19369 15019.36936 1.69369 298.6937 150.19369 15019.36948 1.69369 298.69369 150.19369 15019.36900 2020-01-01 2020-01-02 2020-01-01 00:09:24 2020-01-02 03:37:45 2020-01-01 00:09:24.000 2020-01-02 03:37:45.000 564 99465 50014.5 5001450 564 99465 50014.5 5001450 -32606 32532 4794.66 479466 -125 126 -2.78 -278 -565 2 10555 99466 1.69669 298.69669 150.19669 15019.66966 1.69669 298.6967 150.19669 15019.66962 1.69669 298.69669 150.19669 15019.66900 2020-01-01 2020-01-02 2020-01-01 00:09:25 2020-01-02 03:37:46 2020-01-01 00:09:25.000 2020-01-02 03:37:46.000 565 99466 50015.5 5001550 565 99466 50015.5 5001550 -32605 32533 4795.66 479566 -124 127 -1.78 -178 +564 2 10554 99465 1.69369 298.69369 150.19369 15019.36936 1.69369 298.6937 150.19369 15019.36948 1.69369 298.69369 150.19369000000003 15019.36900 2020-01-01 2020-01-02 2020-01-01 00:09:24 2020-01-02 03:37:45 2020-01-01 00:09:24.000 2020-01-02 03:37:45.000 564 99465 50014.5 5001450 564 99465 50014.5 5001450 -32606 32532 4794.66 479466 -125 126 -2.78 -278 +565 2 10555 99466 1.69669 298.69669 150.19669 15019.66966 1.69669 298.6967 150.19669 15019.66962 1.69669 298.69669 150.1966900000001 15019.66900 2020-01-01 2020-01-02 2020-01-01 00:09:25 2020-01-02 03:37:46 2020-01-01 00:09:25.000 2020-01-02 03:37:46.000 565 99466 50015.5 5001550 565 99466 50015.5 5001550 -32605 32533 4795.66 479566 -124 127 -1.78 -178 566 2 10556 99467 1.69969 298.69969 150.19969 15019.96996 1.69969 298.6997 150.1997 15019.97037 1.69969 298.69969 150.19969 15019.96900 2020-01-01 2020-01-02 2020-01-01 00:09:26 2020-01-02 03:37:47 2020-01-01 00:09:26.000 2020-01-02 03:37:47.000 566 99467 50016.5 5001650 566 99467 50016.5 5001650 -32604 32534 4796.66 479666 -128 127 -3.34 -334 -567 2 10557 99468 1.7027 298.7027 150.2027 15020.27027 1.7027 298.7027 150.2027 15020.27003 1.70270 298.70270 150.20270 15020.27000 2020-01-01 2020-01-02 2020-01-01 00:09:27 2020-01-02 03:37:48 2020-01-01 00:09:27.000 2020-01-02 03:37:48.000 567 99468 50017.5 5001750 567 99468 50017.5 5001750 -32603 32535 4797.66 479766 -128 123 -4.9 -490 -568 2 10558 99469 1.7057 298.7057 150.2057 15020.57057 1.7057 298.70572 150.2057 15020.57066 1.70570 298.70570 150.20570 15020.57000 2020-01-01 2020-01-02 2020-01-01 00:09:28 2020-01-02 03:37:49 2020-01-01 00:09:28.000 2020-01-02 03:37:49.000 568 99469 50018.5 5001850 568 99469 50018.5 5001850 -32602 32536 4798.66 479866 -127 124 -3.9 -390 -569 2 10559 99470 1.7087 298.7087 150.2087 15020.87087 1.7087 298.7087 150.2087 15020.87095 1.70870 298.70870 150.20870 15020.87000 2020-01-01 2020-01-02 2020-01-01 00:09:29 2020-01-02 03:37:50 2020-01-01 00:09:29.000 2020-01-02 03:37:50.000 569 99470 50019.5 5001950 569 99470 50019.5 5001950 -32601 32537 4799.66 479966 -126 125 -2.9 -290 -57 2 10047 99957 0.17117 300.17117 150.17117 15167.28828 0.17117 300.17117 150.17117 15167.28841 0.17117 300.17117 150.17117 15167.28817 2020-01-01 2020-01-02 2020-01-01 00:00:57 2020-01-02 03:45:57 2020-01-01 00:00:57.000 2020-01-02 03:45:57.000 57 99957 50007 5050707 57 99957 50007 5050707 -32512 32423 4586.009900990099 463187 -126 125 -1.7128712871287128 -173 -570 2 10560 99471 1.71171 298.71171 150.21171 15021.17117 1.71171 298.7117 150.21171 15021.17109 1.71171 298.71171 150.21171 15021.17100 2020-01-01 2020-01-02 2020-01-01 00:09:30 2020-01-02 03:37:51 2020-01-01 00:09:30.000 2020-01-02 03:37:51.000 570 99471 50020.5 5002050 570 99471 50020.5 5002050 -32600 32538 4800.66 480066 -125 126 -1.9 -190 -571 2 10561 99472 1.71471 298.71471 150.21471 15021.47147 1.71471 298.71472 150.21471 15021.47184 1.71471 298.71471 150.21471 15021.47100 2020-01-01 2020-01-02 2020-01-01 00:09:31 2020-01-02 03:37:52 2020-01-01 00:09:31.000 2020-01-02 03:37:52.000 571 99472 50021.5 5002150 571 99472 50021.5 5002150 -32599 32539 4801.66 480166 -124 127 -0.9 -90 -572 2 10562 99473 1.71771 298.71771 150.21771 15021.77177 1.71771 298.7177 150.21771 15021.7715 1.71771 298.71771 150.21771 15021.77100 2020-01-01 2020-01-02 2020-01-01 00:09:32 2020-01-02 03:37:53 2020-01-01 00:09:32.000 2020-01-02 03:37:53.000 572 99473 50022.5 5002250 572 99473 50022.5 5002250 -32598 32540 4802.66 480266 -128 127 -2.46 -246 -573 2 10563 99474 1.72072 298.72072 150.22072 15022.07207 1.72072 298.72073 150.22072 15022.07212 1.72072 298.72072 150.22072 15022.07200 2020-01-01 2020-01-02 2020-01-01 00:09:33 2020-01-02 03:37:54 2020-01-01 00:09:33.000 2020-01-02 03:37:54.000 573 99474 50023.5 5002350 573 99474 50023.5 5002350 -32597 32541 4803.66 480366 -128 123 -4.02 -402 +567 2 10557 99468 1.7027 298.7027 150.2027 15020.27027 1.7027 298.7027 150.2027 15020.27003 1.70270 298.70270 150.20269999999988 15020.27000 2020-01-01 2020-01-02 2020-01-01 00:09:27 2020-01-02 03:37:48 2020-01-01 00:09:27.000 2020-01-02 03:37:48.000 567 99468 50017.5 5001750 567 99468 50017.5 5001750 -32603 32535 4797.66 479766 -128 123 -4.9 -490 +568 2 10558 99469 1.7057 298.7057 150.2057 15020.57057 1.7057 298.70572 150.2057 15020.57066 1.70570 298.70570 150.2057000000002 15020.57000 2020-01-01 2020-01-02 2020-01-01 00:09:28 2020-01-02 03:37:49 2020-01-01 00:09:28.000 2020-01-02 03:37:49.000 568 99469 50018.5 5001850 568 99469 50018.5 5001850 -32602 32536 4798.66 479866 -127 124 -3.9 -390 +569 2 10559 99470 1.7087 298.7087 150.2087 15020.87087 1.7087 298.7087 150.2087 15020.87095 1.70870 298.70870 150.20869999999988 15020.87000 2020-01-01 2020-01-02 2020-01-01 00:09:29 2020-01-02 03:37:50 2020-01-01 00:09:29.000 2020-01-02 03:37:50.000 569 99470 50019.5 5001950 569 99470 50019.5 5001950 -32601 32537 4799.66 479966 -126 125 -2.9 -290 +57 2 10047 99957 0.17117 300.17117 150.17117 15167.28828 0.17117 300.17117 150.17117 15167.28841 0.17117 300.17117 150.1711699999998 15167.28817 2020-01-01 2020-01-02 2020-01-01 00:00:57 2020-01-02 03:45:57 2020-01-01 00:00:57.000 2020-01-02 03:45:57.000 57 99957 50007 5050707 57 99957 50007 5050707 -32512 32423 4586.009900990099 463187 -126 125 -1.7128712871287128 -173 +570 2 10560 99471 1.71171 298.71171 150.21171 15021.17117 1.71171 298.7117 150.21171 15021.17109 1.71171 298.71171 150.2117099999998 15021.17100 2020-01-01 2020-01-02 2020-01-01 00:09:30 2020-01-02 03:37:51 2020-01-01 00:09:30.000 2020-01-02 03:37:51.000 570 99471 50020.5 5002050 570 99471 50020.5 5002050 -32600 32538 4800.66 480066 -125 126 -1.9 -190 +571 2 10561 99472 1.71471 298.71471 150.21471 15021.47147 1.71471 298.71472 150.21471 15021.47184 1.71471 298.71471 150.21471000000014 15021.47100 2020-01-01 2020-01-02 2020-01-01 00:09:31 2020-01-02 03:37:52 2020-01-01 00:09:31.000 2020-01-02 03:37:52.000 571 99472 50021.5 5002150 571 99472 50021.5 5002150 -32599 32539 4801.66 480166 -124 127 -0.9 -90 +572 2 10562 99473 1.71771 298.71771 150.21771 15021.77177 1.71771 298.7177 150.21771 15021.7715 1.71771 298.71771 150.21771000000012 15021.77100 2020-01-01 2020-01-02 2020-01-01 00:09:32 2020-01-02 03:37:53 2020-01-01 00:09:32.000 2020-01-02 03:37:53.000 572 99473 50022.5 5002250 572 99473 50022.5 5002250 -32598 32540 4802.66 480266 -128 127 -2.46 -246 +573 2 10563 99474 1.72072 298.72072 150.22072 15022.07207 1.72072 298.72073 150.22072 15022.07212 1.72072 298.72072 150.2207199999999 15022.07200 2020-01-01 2020-01-02 2020-01-01 00:09:33 2020-01-02 03:37:54 2020-01-01 00:09:33.000 2020-01-02 03:37:54.000 573 99474 50023.5 5002350 573 99474 50023.5 5002350 -32597 32541 4803.66 480366 -128 123 -4.02 -402 574 2 10564 99475 1.72372 298.72372 150.22372 15022.37237 1.72372 298.72372 150.22372 15022.37243 1.72372 298.72372 150.22372 15022.37200 2020-01-01 2020-01-02 2020-01-01 00:09:34 2020-01-02 03:37:55 2020-01-01 00:09:34.000 2020-01-02 03:37:55.000 574 99475 50024.5 5002450 574 99475 50024.5 5002450 -32596 32542 4804.66 480466 -127 124 -3.02 -302 -575 2 10565 99476 1.72672 298.72672 150.22672 15022.67267 1.72672 298.7267 150.22672 15022.67272 1.72672 298.72672 150.22672 15022.67200 2020-01-01 2020-01-02 2020-01-01 00:09:35 2020-01-02 03:37:56 2020-01-01 00:09:35.000 2020-01-02 03:37:56.000 575 99476 50025.5 5002550 575 99476 50025.5 5002550 -32595 32543 4805.66 480566 -126 125 -2.02 -202 -576 2 10566 99477 1.72972 298.72972 150.22972 15022.97297 1.72972 298.72974 150.22973 15022.97332 1.72972 298.72972 150.22972 15022.97200 2020-01-01 2020-01-02 2020-01-01 00:09:36 2020-01-02 03:37:57 2020-01-01 00:09:36.000 2020-01-02 03:37:57.000 576 99477 50026.5 5002650 576 99477 50026.5 5002650 -32594 32544 4806.66 480666 -125 126 -1.02 -102 -577 2 10567 99478 1.73273 298.73273 150.23273 15023.27327 1.73273 298.73273 150.23272 15023.27297 1.73273 298.73273 150.23273 15023.27300 2020-01-01 2020-01-02 2020-01-01 00:09:37 2020-01-02 03:37:58 2020-01-01 00:09:37.000 2020-01-02 03:37:58.000 577 99478 50027.5 5002750 577 99478 50027.5 5002750 -32593 32545 4807.66 480766 -124 127 -0.02 -2 -578 2 10568 99479 1.73573 298.73573 150.23573 15023.57357 1.73573 298.73575 150.23573 15023.57359 1.73573 298.73573 150.23573 15023.57300 2020-01-01 2020-01-02 2020-01-01 00:09:38 2020-01-02 03:37:59 2020-01-01 00:09:38.000 2020-01-02 03:37:59.000 578 99479 50028.5 5002850 578 99479 50028.5 5002850 -32592 32546 4808.66 480866 -128 127 -1.58 -158 -579 2 10569 99480 1.73873 298.73873 150.23873 15023.87387 1.73873 298.73874 150.23873 15023.8739 1.73873 298.73873 150.23873 15023.87300 2020-01-01 2020-01-02 2020-01-01 00:09:39 2020-01-02 03:38:00 2020-01-01 00:09:39.000 2020-01-02 03:38:00.000 579 99480 50029.5 5002950 579 99480 50029.5 5002950 -32591 32547 4809.66 480966 -128 123 -3.14 -314 -58 2 10048 99958 0.17417 300.17417 150.17417 15167.59159 0.17417 300.17416 150.17417 15167.59159 0.17417 300.17417 150.17417 15167.59117 2020-01-01 2020-01-02 2020-01-01 00:00:58 2020-01-02 03:45:58 2020-01-01 00:00:58.000 2020-01-02 03:45:58.000 58 99958 50008 5050808 58 99958 50008 5050808 -32511 32424 4587.009900990099 463288 -125 126 -0.7128712871287128 -72 -580 2 10570 99481 1.74174 298.74174 150.24174 15024.17417 1.74174 298.74173 150.24174 15024.17419 1.74174 298.74174 150.24174 15024.17400 2020-01-01 2020-01-02 2020-01-01 00:09:40 2020-01-02 03:38:01 2020-01-01 00:09:40.000 2020-01-02 03:38:01.000 580 99481 50030.5 5003050 580 99481 50030.5 5003050 -32590 32548 4810.66 481066 -127 124 -2.14 -214 -581 2 10571 99482 1.74474 298.74474 150.24474 15024.47447 1.74474 298.74475 150.24474 15024.47478 1.74474 298.74474 150.24474 15024.47400 2020-01-01 2020-01-02 2020-01-01 00:09:41 2020-01-02 03:38:02 2020-01-01 00:09:41.000 2020-01-02 03:38:02.000 581 99482 50031.5 5003150 581 99482 50031.5 5003150 -32589 32549 4811.66 481166 -126 125 -1.14 -114 -582 2 10572 99483 1.74774 298.74774 150.24774 15024.77477 1.74774 298.74774 150.24774 15024.77447 1.74774 298.74774 150.24774 15024.77400 2020-01-01 2020-01-02 2020-01-01 00:09:42 2020-01-02 03:38:03 2020-01-01 00:09:42.000 2020-01-02 03:38:03.000 582 99483 50032.5 5003250 582 99483 50032.5 5003250 -32588 32550 4812.66 481266 -125 126 -0.14 -14 -583 2 10573 99484 1.75075 298.75075 150.25075 15025.07507 1.75075 298.75076 150.25075 15025.07507 1.75075 298.75075 150.25075 15025.07500 2020-01-01 2020-01-02 2020-01-01 00:09:43 2020-01-02 03:38:04 2020-01-01 00:09:43.000 2020-01-02 03:38:04.000 583 99484 50033.5 5003350 583 99484 50033.5 5003350 -32587 32551 4813.66 481366 -124 127 0.86 86 -584 2 10574 99485 1.75375 298.75375 150.25375 15025.37537 1.75375 298.75375 150.25375 15025.37536 1.75375 298.75375 150.25375 15025.37500 2020-01-01 2020-01-02 2020-01-01 00:09:44 2020-01-02 03:38:05 2020-01-01 00:09:44.000 2020-01-02 03:38:05.000 584 99485 50034.5 5003450 584 99485 50034.5 5003450 -32586 32552 4814.66 481466 -128 127 -0.7 -70 -585 2 10575 99486 1.75675 298.75675 150.25675 15025.67567 1.75675 298.75674 150.25675 15025.67566 1.75675 298.75675 150.25675 15025.67500 2020-01-01 2020-01-02 2020-01-01 00:09:45 2020-01-02 03:38:06 2020-01-01 00:09:45.000 2020-01-02 03:38:06.000 585 99486 50035.5 5003550 585 99486 50035.5 5003550 -32585 32553 4815.66 481566 -128 127 -2.26 -226 -586 2 10576 99487 1.75975 298.75975 150.25975 15025.97597 1.75975 298.75977 150.25976 15025.97625 1.75975 298.75975 150.25975 15025.97500 2020-01-01 2020-01-02 2020-01-01 00:09:46 2020-01-02 03:38:07 2020-01-01 00:09:46.000 2020-01-02 03:38:07.000 586 99487 50036.5 5003650 586 99487 50036.5 5003650 -32584 32554 4816.66 481666 -128 123 -3.82 -382 -587 2 10577 99488 1.76276 298.76276 150.26276 15026.27627 1.76276 298.76276 150.26275 15026.27594 1.76276 298.76276 150.26276 15026.27600 2020-01-01 2020-01-02 2020-01-01 00:09:47 2020-01-02 03:38:08 2020-01-01 00:09:47.000 2020-01-02 03:38:08.000 587 99488 50037.5 5003750 587 99488 50037.5 5003750 -32583 32555 4817.66 481766 -127 124 -2.82 -282 -588 2 10578 99489 1.76576 298.76576 150.26576 15026.57657 1.76576 298.76578 150.26576 15026.57654 1.76576 298.76576 150.26576 15026.57600 2020-01-01 2020-01-02 2020-01-01 00:09:48 2020-01-02 03:38:09 2020-01-01 00:09:48.000 2020-01-02 03:38:09.000 588 99489 50038.5 5003850 588 99489 50038.5 5003850 -32582 32556 4818.66 481866 -126 125 -1.82 -182 -589 2 10579 99490 1.76876 298.76876 150.26876 15026.87687 1.76876 298.76877 150.26876 15026.87683 1.76876 298.76876 150.26876 15026.87600 2020-01-01 2020-01-02 2020-01-01 00:09:49 2020-01-02 03:38:10 2020-01-01 00:09:49.000 2020-01-02 03:38:10.000 589 99490 50039.5 5003950 589 99490 50039.5 5003950 -32581 32557 4819.66 481966 -125 126 -0.82 -82 -59 2 10049 99959 0.17717 300.17717 150.17717 15167.89489 0.17717 300.1772 150.17717 15167.8947 0.17717 300.17717 150.17717 15167.89417 2020-01-01 2020-01-02 2020-01-01 00:00:59 2020-01-02 03:45:59 2020-01-01 00:00:59.000 2020-01-02 03:45:59.000 59 99959 50009 5050909 59 99959 50009 5050909 -32510 32425 4588.009900990099 463389 -124 127 0.2871287128712871 29 -590 2 10580 99491 1.77177 298.77177 150.27177 15027.17717 1.77177 298.77176 150.27177 15027.17713 1.77177 298.77177 150.27177 15027.17700 2020-01-01 2020-01-02 2020-01-01 00:09:50 2020-01-02 03:38:11 2020-01-01 00:09:50.000 2020-01-02 03:38:11.000 590 99491 50040.5 5004050 590 99491 50040.5 5004050 -32580 32558 4820.66 482066 -124 127 0.18 18 +575 2 10565 99476 1.72672 298.72672 150.22672 15022.67267 1.72672 298.7267 150.22672 15022.67272 1.72672 298.72672 150.22672000000006 15022.67200 2020-01-01 2020-01-02 2020-01-01 00:09:35 2020-01-02 03:37:56 2020-01-01 00:09:35.000 2020-01-02 03:37:56.000 575 99476 50025.5 5002550 575 99476 50025.5 5002550 -32595 32543 4805.66 480566 -126 125 -2.02 -202 +576 2 10566 99477 1.72972 298.72972 150.22972 15022.97297 1.72972 298.72974 150.22973 15022.97332 1.72972 298.72972 150.22971999999993 15022.97200 2020-01-01 2020-01-02 2020-01-01 00:09:36 2020-01-02 03:37:57 2020-01-01 00:09:36.000 2020-01-02 03:37:57.000 576 99477 50026.5 5002650 576 99477 50026.5 5002650 -32594 32544 4806.66 480666 -125 126 -1.02 -102 +577 2 10567 99478 1.73273 298.73273 150.23273 15023.27327 1.73273 298.73273 150.23272 15023.27297 1.73273 298.73273 150.2327299999999 15023.27300 2020-01-01 2020-01-02 2020-01-01 00:09:37 2020-01-02 03:37:58 2020-01-01 00:09:37.000 2020-01-02 03:37:58.000 577 99478 50027.5 5002750 577 99478 50027.5 5002750 -32593 32545 4807.66 480766 -124 127 -0.02 -2 +578 2 10568 99479 1.73573 298.73573 150.23573 15023.57357 1.73573 298.73575 150.23573 15023.57359 1.73573 298.73573 150.23573000000016 15023.57300 2020-01-01 2020-01-02 2020-01-01 00:09:38 2020-01-02 03:37:59 2020-01-01 00:09:38.000 2020-01-02 03:37:59.000 578 99479 50028.5 5002850 578 99479 50028.5 5002850 -32592 32546 4808.66 480866 -128 127 -1.58 -158 +579 2 10569 99480 1.73873 298.73873 150.23873 15023.87387 1.73873 298.73874 150.23873 15023.8739 1.73873 298.73873 150.23872999999983 15023.87300 2020-01-01 2020-01-02 2020-01-01 00:09:39 2020-01-02 03:38:00 2020-01-01 00:09:39.000 2020-01-02 03:38:00.000 579 99480 50029.5 5002950 579 99480 50029.5 5002950 -32591 32547 4809.66 480966 -128 123 -3.14 -314 +58 2 10048 99958 0.17417 300.17417 150.17417 15167.59159 0.17417 300.17416 150.17417 15167.59159 0.17417 300.17417 150.17417000000012 15167.59117 2020-01-01 2020-01-02 2020-01-01 00:00:58 2020-01-02 03:45:58 2020-01-01 00:00:58.000 2020-01-02 03:45:58.000 58 99958 50008 5050808 58 99958 50008 5050808 -32511 32424 4587.009900990099 463288 -125 126 -0.7128712871287128 -72 +580 2 10570 99481 1.74174 298.74174 150.24174 15024.17417 1.74174 298.74173 150.24174 15024.17419 1.74174 298.74174 150.24174000000002 15024.17400 2020-01-01 2020-01-02 2020-01-01 00:09:40 2020-01-02 03:38:01 2020-01-01 00:09:40.000 2020-01-02 03:38:01.000 580 99481 50030.5 5003050 580 99481 50030.5 5003050 -32590 32548 4810.66 481066 -127 124 -2.14 -214 +581 2 10571 99482 1.74474 298.74474 150.24474 15024.47447 1.74474 298.74475 150.24474 15024.47478 1.74474 298.74474 150.24474000000006 15024.47400 2020-01-01 2020-01-02 2020-01-01 00:09:41 2020-01-02 03:38:02 2020-01-01 00:09:41.000 2020-01-02 03:38:02.000 581 99482 50031.5 5003150 581 99482 50031.5 5003150 -32589 32549 4811.66 481166 -126 125 -1.14 -114 +582 2 10572 99483 1.74774 298.74774 150.24774 15024.77477 1.74774 298.74774 150.24774 15024.77447 1.74774 298.74774 150.24774000000005 15024.77400 2020-01-01 2020-01-02 2020-01-01 00:09:42 2020-01-02 03:38:03 2020-01-01 00:09:42.000 2020-01-02 03:38:03.000 582 99483 50032.5 5003250 582 99483 50032.5 5003250 -32588 32550 4812.66 481266 -125 126 -0.14 -14 +583 2 10573 99484 1.75075 298.75075 150.25075 15025.07507 1.75075 298.75076 150.25075 15025.07507 1.75075 298.75075 150.25074999999993 15025.07500 2020-01-01 2020-01-02 2020-01-01 00:09:43 2020-01-02 03:38:04 2020-01-01 00:09:43.000 2020-01-02 03:38:04.000 583 99484 50033.5 5003350 583 99484 50033.5 5003350 -32587 32551 4813.66 481366 -124 127 0.86 86 +584 2 10574 99485 1.75375 298.75375 150.25375 15025.37537 1.75375 298.75375 150.25375 15025.37536 1.75375 298.75375 150.2537499999999 15025.37500 2020-01-01 2020-01-02 2020-01-01 00:09:44 2020-01-02 03:38:05 2020-01-01 00:09:44.000 2020-01-02 03:38:05.000 584 99485 50034.5 5003450 584 99485 50034.5 5003450 -32586 32552 4814.66 481466 -128 127 -0.7 -70 +585 2 10575 99486 1.75675 298.75675 150.25675 15025.67567 1.75675 298.75674 150.25675 15025.67566 1.75675 298.75675 150.2567500000001 15025.67500 2020-01-01 2020-01-02 2020-01-01 00:09:45 2020-01-02 03:38:06 2020-01-01 00:09:45.000 2020-01-02 03:38:06.000 585 99486 50035.5 5003550 585 99486 50035.5 5003550 -32585 32553 4815.66 481566 -128 127 -2.26 -226 +586 2 10576 99487 1.75975 298.75975 150.25975 15025.97597 1.75975 298.75977 150.25976 15025.97625 1.75975 298.75975 150.25974999999988 15025.97500 2020-01-01 2020-01-02 2020-01-01 00:09:46 2020-01-02 03:38:07 2020-01-01 00:09:46.000 2020-01-02 03:38:07.000 586 99487 50036.5 5003650 586 99487 50036.5 5003650 -32584 32554 4816.66 481666 -128 123 -3.82 -382 +587 2 10577 99488 1.76276 298.76276 150.26276 15026.27627 1.76276 298.76276 150.26275 15026.27594 1.76276 298.76276 150.26275999999982 15026.27600 2020-01-01 2020-01-02 2020-01-01 00:09:47 2020-01-02 03:38:08 2020-01-01 00:09:47.000 2020-01-02 03:38:08.000 587 99488 50037.5 5003750 587 99488 50037.5 5003750 -32583 32555 4817.66 481766 -127 124 -2.82 -282 +588 2 10578 99489 1.76576 298.76576 150.26576 15026.57657 1.76576 298.76578 150.26576 15026.57654 1.76576 298.76576 150.26576000000014 15026.57600 2020-01-01 2020-01-02 2020-01-01 00:09:48 2020-01-02 03:38:09 2020-01-01 00:09:48.000 2020-01-02 03:38:09.000 588 99489 50038.5 5003850 588 99489 50038.5 5003850 -32582 32556 4818.66 481866 -126 125 -1.82 -182 +589 2 10579 99490 1.76876 298.76876 150.26876 15026.87687 1.76876 298.76877 150.26876 15026.87683 1.76876 298.76876 150.26876000000013 15026.87600 2020-01-01 2020-01-02 2020-01-01 00:09:49 2020-01-02 03:38:10 2020-01-01 00:09:49.000 2020-01-02 03:38:10.000 589 99490 50039.5 5003950 589 99490 50039.5 5003950 -32581 32557 4819.66 481966 -125 126 -0.82 -82 +59 2 10049 99959 0.17717 300.17717 150.17717 15167.89489 0.17717 300.1772 150.17717 15167.8947 0.17717 300.17717 150.17717000000013 15167.89417 2020-01-01 2020-01-02 2020-01-01 00:00:59 2020-01-02 03:45:59 2020-01-01 00:00:59.000 2020-01-02 03:45:59.000 59 99959 50009 5050909 59 99959 50009 5050909 -32510 32425 4588.009900990099 463389 -124 127 0.2871287128712871 29 +590 2 10580 99491 1.77177 298.77177 150.27177 15027.17717 1.77177 298.77176 150.27177 15027.17713 1.77177 298.77177 150.27176999999992 15027.17700 2020-01-01 2020-01-02 2020-01-01 00:09:50 2020-01-02 03:38:11 2020-01-01 00:09:50.000 2020-01-02 03:38:11.000 590 99491 50040.5 5004050 590 99491 50040.5 5004050 -32580 32558 4820.66 482066 -124 127 0.18 18 591 2 10581 99492 1.77477 298.77477 150.27477 15027.47747 1.77477 298.77478 150.27477 15027.47775 1.77477 298.77477 150.27477 15027.47700 2020-01-01 2020-01-02 2020-01-01 00:09:51 2020-01-02 03:38:12 2020-01-01 00:09:51.000 2020-01-02 03:38:12.000 591 99492 50041.5 5004150 591 99492 50041.5 5004150 -32579 32559 4821.66 482166 -128 127 -1.38 -138 -592 2 10582 99493 1.77777 298.77777 150.27777 15027.77777 1.77777 298.77777 150.27777 15027.77742 1.77777 298.77777 150.27777 15027.77700 2020-01-01 2020-01-02 2020-01-01 00:09:52 2020-01-02 03:38:13 2020-01-01 00:09:52.000 2020-01-02 03:38:13.000 592 99493 50042.5 5004250 592 99493 50042.5 5004250 -32578 32560 4822.66 482266 -128 123 -2.94 -294 -593 2 10583 99494 1.78078 298.78078 150.28078 15028.07807 1.78078 298.7808 150.28078 15028.078 1.78078 298.78078 150.28078 15028.07800 2020-01-01 2020-01-02 2020-01-01 00:09:53 2020-01-02 03:38:14 2020-01-01 00:09:53.000 2020-01-02 03:38:14.000 593 99494 50043.5 5004350 593 99494 50043.5 5004350 -32577 32561 4823.66 482366 -127 124 -1.94 -194 -594 2 10584 99495 1.78378 298.78378 150.28378 15028.37837 1.78378 298.78378 150.28378 15028.3783 1.78378 298.78378 150.28378 15028.37800 2020-01-01 2020-01-02 2020-01-01 00:09:54 2020-01-02 03:38:15 2020-01-01 00:09:54.000 2020-01-02 03:38:15.000 594 99495 50044.5 5004450 594 99495 50044.5 5004450 -32576 32562 4824.66 482466 -126 125 -0.94 -94 -595 2 10585 99496 1.78678 298.78678 150.28678 15028.67867 1.78678 298.78677 150.28678 15028.6786 1.78678 298.78678 150.28678 15028.67800 2020-01-01 2020-01-02 2020-01-01 00:09:55 2020-01-02 03:38:16 2020-01-01 00:09:55.000 2020-01-02 03:38:16.000 595 99496 50045.5 5004550 595 99496 50045.5 5004550 -32575 32563 4825.66 482566 -125 126 0.06 6 -596 2 10586 99497 1.78978 298.78978 150.28978 15028.97897 1.78978 298.7898 150.28979 15028.97922 1.78978 298.78978 150.28978 15028.97800 2020-01-01 2020-01-02 2020-01-01 00:09:56 2020-01-02 03:38:17 2020-01-01 00:09:56.000 2020-01-02 03:38:17.000 596 99497 50046.5 5004650 596 99497 50046.5 5004650 -32574 32564 4826.66 482666 -124 127 1.06 106 -597 2 10587 99498 1.79279 298.79279 150.29279 15029.27927 1.79279 298.7928 150.29278 15029.27888 1.79279 298.79279 150.29279 15029.27900 2020-01-01 2020-01-02 2020-01-01 00:09:57 2020-01-02 03:38:18 2020-01-01 00:09:57.000 2020-01-02 03:38:18.000 597 99498 50047.5 5004750 597 99498 50047.5 5004750 -32573 32565 4827.66 482766 -128 127 -0.5 -50 -598 2 10588 99499 1.79579 298.79579 150.29579 15029.57957 1.79579 298.7958 150.29579 15029.57964 1.79579 298.79579 150.29579 15029.57900 2020-01-01 2020-01-02 2020-01-01 00:09:58 2020-01-02 03:38:19 2020-01-01 00:09:58.000 2020-01-02 03:38:19.000 598 99499 50048.5 5004850 598 99499 50048.5 5004850 -32572 32566 4828.66 482866 -128 123 -2.06 -206 -599 2 10589 99500 1.79879 298.79879 150.29879 15029.87987 1.79879 298.7988 150.29879 15029.87977 1.79879 298.79879 150.29879 15029.87900 2020-01-01 2020-01-02 2020-01-01 00:09:59 2020-01-02 03:38:20 2020-01-01 00:09:59.000 2020-01-02 03:38:20.000 599 99500 50049.5 5004950 599 99500 50049.5 5004950 -32571 32567 4829.66 482966 -127 124 -1.06 -106 -6 2 1005 9996 0.01801 300.01801 150.01801 15151.81981 0.01801 300.018 150.01801 15151.81978 0.01801 300.01801 150.01801 15151.81901 2020-01-01 2020-01-02 2020-01-01 00:00:06 2020-01-02 03:45:06 2020-01-01 00:00:06.000 2020-01-02 03:45:06.000 6 99906 49956 5045556 6 99906 49956 5045556 -32563 32372 4535.009900990099 458036 -127 124 -2.01980198019802 -204 -60 2 10050 99960 0.18018 300.18018 150.18018 15168.19819 0.18018 300.18018 150.18017 15168.198 0.18018 300.18018 150.18018 15168.19818 2020-01-01 2020-01-02 2020-01-01 00:01:00 2020-01-02 03:46:00 2020-01-01 00:01:00.000 2020-01-02 03:46:00.000 60 99960 50010 5051010 60 99960 50010 5051010 -32509 32426 4589.009900990099 463490 -128 127 -1.2475247524752475 -126 -600 2 10590 99501 1.8018 298.8018 150.3018 15030.18018 1.8018 298.8018 150.3018 15030.1801 1.80180 298.80180 150.30180 15030.18000 2020-01-01 2020-01-02 2020-01-01 00:10:00 2020-01-02 03:38:21 2020-01-01 00:10:00.000 2020-01-02 03:38:21.000 600 99501 50050.5 5005050 600 99501 50050.5 5005050 -32570 32568 4830.66 483066 -126 125 -0.06 -6 -601 2 10591 99502 1.8048 298.8048 150.3048 15030.48048 1.8048 298.8048 150.3048 15030.4807 1.80480 298.80480 150.30480 15030.48000 2020-01-01 2020-01-02 2020-01-01 00:10:01 2020-01-02 03:38:22 2020-01-01 00:10:01.000 2020-01-02 03:38:22.000 601 99502 50051.5 5005150 601 99502 50051.5 5005150 -32569 32569 4831.66 483166 -125 126 0.94 94 -602 2 10592 99503 1.8078 298.8078 150.3078 15030.78078 1.8078 298.8078 150.3078 15030.78035 1.80780 298.80780 150.30780 15030.78000 2020-01-01 2020-01-02 2020-01-01 00:10:02 2020-01-02 03:38:23 2020-01-01 00:10:02.000 2020-01-02 03:38:23.000 602 99503 50052.5 5005250 602 99503 50052.5 5005250 -32568 32570 4832.66 483266 -124 127 1.94 194 -603 2 10593 99504 1.81081 298.81081 150.31081 15031.08108 1.81081 298.81082 150.31081 15031.0811 1.81081 298.81081 150.31081 15031.08100 2020-01-01 2020-01-02 2020-01-01 00:10:03 2020-01-02 03:38:24 2020-01-01 00:10:03.000 2020-01-02 03:38:24.000 603 99504 50053.5 5005350 603 99504 50053.5 5005350 -32567 32571 4833.66 483366 -128 127 0.38 38 -604 2 10594 99505 1.81381 298.81381 150.31381 15031.38138 1.81381 298.8138 150.31381 15031.38124 1.81381 298.81381 150.31381 15031.38100 2020-01-01 2020-01-02 2020-01-01 00:10:04 2020-01-02 03:38:25 2020-01-01 00:10:04.000 2020-01-02 03:38:25.000 604 99505 50054.5 5005450 604 99505 50054.5 5005450 -32566 32572 4834.66 483466 -128 123 -1.18 -118 -605 2 10595 99506 1.81681 298.81681 150.31681 15031.68168 1.81681 298.8168 150.31681 15031.68157 1.81681 298.81681 150.31681 15031.68100 2020-01-01 2020-01-02 2020-01-01 00:10:05 2020-01-02 03:38:26 2020-01-01 00:10:05.000 2020-01-02 03:38:26.000 605 99506 50055.5 5005550 605 99506 50055.5 5005550 -32565 32573 4835.66 483566 -127 124 -0.18 -18 -606 2 10596 99507 1.81981 298.81981 150.31981 15031.98198 1.81981 298.81982 150.31982 15031.98217 1.81981 298.81981 150.31981 15031.98100 2020-01-01 2020-01-02 2020-01-01 00:10:06 2020-01-02 03:38:27 2020-01-01 00:10:06.000 2020-01-02 03:38:27.000 606 99507 50056.5 5005650 606 99507 50056.5 5005650 -32564 32574 4836.66 483666 -126 125 0.82 82 -607 2 10597 99508 1.82282 298.82282 150.32282 15032.28228 1.82282 298.8228 150.32282 15032.28246 1.82282 298.82282 150.32282 15032.28200 2020-01-01 2020-01-02 2020-01-01 00:10:07 2020-01-02 03:38:28 2020-01-01 00:10:07.000 2020-01-02 03:38:28.000 607 99508 50057.5 5005750 607 99508 50057.5 5005750 -32563 32575 4837.66 483766 -125 126 1.82 182 -608 2 10598 99509 1.82582 298.82582 150.32582 15032.58258 1.82582 298.82584 150.32582 15032.58258 1.82582 298.82582 150.32582 15032.58200 2020-01-01 2020-01-02 2020-01-01 00:10:08 2020-01-02 03:38:29 2020-01-01 00:10:08.000 2020-01-02 03:38:29.000 608 99509 50058.5 5005850 608 99509 50058.5 5005850 -32562 32576 4838.66 483866 -124 127 2.82 282 -609 2 10599 99510 1.82882 298.82882 150.32882 15032.88288 1.82882 298.82883 150.32882 15032.88274 1.82882 298.82882 150.32882 15032.88200 2020-01-01 2020-01-02 2020-01-01 00:10:09 2020-01-02 03:38:30 2020-01-01 00:10:09.000 2020-01-02 03:38:30.000 609 99510 50059.5 5005950 609 99510 50059.5 5005950 -32561 32577 4839.66 483966 -128 127 1.26 126 +592 2 10582 99493 1.77777 298.77777 150.27777 15027.77777 1.77777 298.77777 150.27777 15027.77742 1.77777 298.77777 150.27777000000006 15027.77700 2020-01-01 2020-01-02 2020-01-01 00:09:52 2020-01-02 03:38:13 2020-01-01 00:09:52.000 2020-01-02 03:38:13.000 592 99493 50042.5 5004250 592 99493 50042.5 5004250 -32578 32560 4822.66 482266 -128 123 -2.94 -294 +593 2 10583 99494 1.78078 298.78078 150.28078 15028.07807 1.78078 298.7808 150.28078 15028.078 1.78078 298.78078 150.28077999999985 15028.07800 2020-01-01 2020-01-02 2020-01-01 00:09:53 2020-01-02 03:38:14 2020-01-01 00:09:53.000 2020-01-02 03:38:14.000 593 99494 50043.5 5004350 593 99494 50043.5 5004350 -32577 32561 4823.66 482366 -127 124 -1.94 -194 +594 2 10584 99495 1.78378 298.78378 150.28378 15028.37837 1.78378 298.78378 150.28378 15028.3783 1.78378 298.78378 150.2837799999999 15028.37800 2020-01-01 2020-01-02 2020-01-01 00:09:54 2020-01-02 03:38:15 2020-01-01 00:09:54.000 2020-01-02 03:38:15.000 594 99495 50044.5 5004450 594 99495 50044.5 5004450 -32576 32562 4824.66 482466 -126 125 -0.94 -94 +595 2 10585 99496 1.78678 298.78678 150.28678 15028.67867 1.78678 298.78677 150.28678 15028.6786 1.78678 298.78678 150.28678000000016 15028.67800 2020-01-01 2020-01-02 2020-01-01 00:09:55 2020-01-02 03:38:16 2020-01-01 00:09:55.000 2020-01-02 03:38:16.000 595 99496 50045.5 5004550 595 99496 50045.5 5004550 -32575 32563 4825.66 482566 -125 126 0.06 6 +596 2 10586 99497 1.78978 298.78978 150.28978 15028.97897 1.78978 298.7898 150.28979 15028.97922 1.78978 298.78978 150.28977999999984 15028.97800 2020-01-01 2020-01-02 2020-01-01 00:09:56 2020-01-02 03:38:17 2020-01-01 00:09:56.000 2020-01-02 03:38:17.000 596 99497 50046.5 5004650 596 99497 50046.5 5004650 -32574 32564 4826.66 482666 -124 127 1.06 106 +597 2 10587 99498 1.79279 298.79279 150.29279 15029.27927 1.79279 298.7928 150.29278 15029.27888 1.79279 298.79279 150.29279000000005 15029.27900 2020-01-01 2020-01-02 2020-01-01 00:09:57 2020-01-02 03:38:18 2020-01-01 00:09:57.000 2020-01-02 03:38:18.000 597 99498 50047.5 5004750 597 99498 50047.5 5004750 -32573 32565 4827.66 482766 -128 127 -0.5 -50 +598 2 10588 99499 1.79579 298.79579 150.29579 15029.57957 1.79579 298.7958 150.29579 15029.57964 1.79579 298.79579 150.2957900000001 15029.57900 2020-01-01 2020-01-02 2020-01-01 00:09:58 2020-01-02 03:38:19 2020-01-01 00:09:58.000 2020-01-02 03:38:19.000 598 99499 50048.5 5004850 598 99499 50048.5 5004850 -32572 32566 4828.66 482866 -128 123 -2.06 -206 +599 2 10589 99500 1.79879 298.79879 150.29879 15029.87987 1.79879 298.7988 150.29879 15029.87977 1.79879 298.79879 150.2987900000001 15029.87900 2020-01-01 2020-01-02 2020-01-01 00:09:59 2020-01-02 03:38:20 2020-01-01 00:09:59.000 2020-01-02 03:38:20.000 599 99500 50049.5 5004950 599 99500 50049.5 5004950 -32571 32567 4829.66 482966 -127 124 -1.06 -106 +6 2 1005 9996 0.01801 300.01801 150.01801 15151.81981 0.01801 300.018 150.01801 15151.81978 0.01801 300.01801 150.01800999999986 15151.81901 2020-01-01 2020-01-02 2020-01-01 00:00:06 2020-01-02 03:45:06 2020-01-01 00:00:06.000 2020-01-02 03:45:06.000 6 99906 49956 5045556 6 99906 49956 5045556 -32563 32372 4535.009900990099 458036 -127 124 -2.01980198019802 -204 +60 2 10050 99960 0.18018 300.18018 150.18018 15168.19819 0.18018 300.18018 150.18017 15168.198 0.18018 300.18018 150.1801799999999 15168.19818 2020-01-01 2020-01-02 2020-01-01 00:01:00 2020-01-02 03:46:00 2020-01-01 00:01:00.000 2020-01-02 03:46:00.000 60 99960 50010 5051010 60 99960 50010 5051010 -32509 32426 4589.009900990099 463490 -128 127 -1.2475247524752475 -126 +600 2 10590 99501 1.8018 298.8018 150.3018 15030.18018 1.8018 298.8018 150.3018 15030.1801 1.80180 298.80180 150.3017999999999 15030.18000 2020-01-01 2020-01-02 2020-01-01 00:10:00 2020-01-02 03:38:21 2020-01-01 00:10:00.000 2020-01-02 03:38:21.000 600 99501 50050.5 5005050 600 99501 50050.5 5005050 -32570 32568 4830.66 483066 -126 125 -0.06 -6 +601 2 10591 99502 1.8048 298.8048 150.3048 15030.48048 1.8048 298.8048 150.3048 15030.4807 1.80480 298.80480 150.30479999999991 15030.48000 2020-01-01 2020-01-02 2020-01-01 00:10:01 2020-01-02 03:38:22 2020-01-01 00:10:01.000 2020-01-02 03:38:22.000 601 99502 50051.5 5005150 601 99502 50051.5 5005150 -32569 32569 4831.66 483166 -125 126 0.94 94 +602 2 10592 99503 1.8078 298.8078 150.3078 15030.78078 1.8078 298.8078 150.3078 15030.78035 1.80780 298.80780 150.3078 15030.78000 2020-01-01 2020-01-02 2020-01-01 00:10:02 2020-01-02 03:38:23 2020-01-01 00:10:02.000 2020-01-02 03:38:23.000 602 99503 50052.5 5005250 602 99503 50052.5 5005250 -32568 32570 4832.66 483266 -124 127 1.94 194 +603 2 10593 99504 1.81081 298.81081 150.31081 15031.08108 1.81081 298.81082 150.31081 15031.0811 1.81081 298.81081 150.31081000000017 15031.08100 2020-01-01 2020-01-02 2020-01-01 00:10:03 2020-01-02 03:38:24 2020-01-01 00:10:03.000 2020-01-02 03:38:24.000 603 99504 50053.5 5005350 603 99504 50053.5 5005350 -32567 32571 4833.66 483366 -128 127 0.38 38 +604 2 10594 99505 1.81381 298.81381 150.31381 15031.38138 1.81381 298.8138 150.31381 15031.38124 1.81381 298.81381 150.31380999999985 15031.38100 2020-01-01 2020-01-02 2020-01-01 00:10:04 2020-01-02 03:38:25 2020-01-01 00:10:04.000 2020-01-02 03:38:25.000 604 99505 50054.5 5005450 604 99505 50054.5 5005450 -32566 32572 4834.66 483466 -128 123 -1.18 -118 +605 2 10595 99506 1.81681 298.81681 150.31681 15031.68168 1.81681 298.8168 150.31681 15031.68157 1.81681 298.81681 150.3168100000001 15031.68100 2020-01-01 2020-01-02 2020-01-01 00:10:05 2020-01-02 03:38:26 2020-01-01 00:10:05.000 2020-01-02 03:38:26.000 605 99506 50055.5 5005550 605 99506 50055.5 5005550 -32565 32573 4835.66 483566 -127 124 -0.18 -18 +606 2 10596 99507 1.81981 298.81981 150.31981 15031.98198 1.81981 298.81982 150.31982 15031.98217 1.81981 298.81981 150.3198100000002 15031.98100 2020-01-01 2020-01-02 2020-01-01 00:10:06 2020-01-02 03:38:27 2020-01-01 00:10:06.000 2020-01-02 03:38:27.000 606 99507 50056.5 5005650 606 99507 50056.5 5005650 -32564 32574 4836.66 483666 -126 125 0.82 82 +607 2 10597 99508 1.82282 298.82282 150.32282 15032.28228 1.82282 298.8228 150.32282 15032.28246 1.82282 298.82282 150.32281999999995 15032.28200 2020-01-01 2020-01-02 2020-01-01 00:10:07 2020-01-02 03:38:28 2020-01-01 00:10:07.000 2020-01-02 03:38:28.000 607 99508 50057.5 5005750 607 99508 50057.5 5005750 -32563 32575 4837.66 483766 -125 126 1.82 182 +608 2 10598 99509 1.82582 298.82582 150.32582 15032.58258 1.82582 298.82584 150.32582 15032.58258 1.82582 298.82582 150.32582000000002 15032.58200 2020-01-01 2020-01-02 2020-01-01 00:10:08 2020-01-02 03:38:29 2020-01-01 00:10:08.000 2020-01-02 03:38:29.000 608 99509 50058.5 5005850 608 99509 50058.5 5005850 -32562 32576 4838.66 483866 -124 127 2.82 282 +609 2 10599 99510 1.82882 298.82882 150.32882 15032.88288 1.82882 298.82883 150.32882 15032.88274 1.82882 298.82882 150.3288200000001 15032.88200 2020-01-01 2020-01-02 2020-01-01 00:10:09 2020-01-02 03:38:30 2020-01-01 00:10:09.000 2020-01-02 03:38:30.000 609 99510 50059.5 5005950 609 99510 50059.5 5005950 -32561 32577 4839.66 483966 -128 127 1.26 126 61 2 10051 99961 0.18318 300.18318 150.18318 15168.5015 0.18318 300.1832 150.18318 15168.5016 0.18318 300.18318 150.18318 15168.50118 2020-01-01 2020-01-02 2020-01-01 00:01:01 2020-01-02 03:46:01 2020-01-01 00:01:01.000 2020-01-02 03:46:01.000 61 99961 50011 5051111 61 99961 50011 5051111 -32508 32427 4590.009900990099 463591 -128 123 -2.782178217821782 -281 -610 2 10600 99511 1.83183 298.83183 150.33183 15033.18318 1.83183 298.83182 150.33183 15033.18304 1.83183 298.83183 150.33183 15033.18300 2020-01-01 2020-01-02 2020-01-01 00:10:10 2020-01-02 03:38:31 2020-01-01 00:10:10.000 2020-01-02 03:38:31.000 610 99511 50060.5 5006050 610 99511 50060.5 5006050 -32560 32578 4840.66 484066 -128 127 -0.3 -30 -611 2 10601 99512 1.83483 298.83483 150.33483 15033.48348 1.83483 298.83484 150.33483 15033.48363 1.83483 298.83483 150.33483 15033.48300 2020-01-01 2020-01-02 2020-01-01 00:10:11 2020-01-02 03:38:32 2020-01-01 00:10:11.000 2020-01-02 03:38:32.000 611 99512 50061.5 5006150 611 99512 50061.5 5006150 -32559 32579 4841.66 484166 -128 123 -1.86 -186 -612 2 10602 99513 1.83783 298.83783 150.33783 15033.78378 1.83783 298.83783 150.33783 15033.78393 1.83783 298.83783 150.33783 15033.78300 2020-01-01 2020-01-02 2020-01-01 00:10:12 2020-01-02 03:38:33 2020-01-01 00:10:12.000 2020-01-02 03:38:33.000 612 99513 50062.5 5006250 612 99513 50062.5 5006250 -32558 32580 4842.66 484266 -127 124 -0.86 -86 -613 2 10603 99514 1.84084 298.84084 150.34084 15034.08408 1.84084 298.84085 150.34084 15034.08405 1.84084 298.84084 150.34084 15034.08400 2020-01-01 2020-01-02 2020-01-01 00:10:13 2020-01-02 03:38:34 2020-01-01 00:10:13.000 2020-01-02 03:38:34.000 613 99514 50063.5 5006350 613 99514 50063.5 5006350 -32557 32581 4843.66 484366 -126 125 0.14 14 -614 2 10604 99515 1.84384 298.84384 150.34384 15034.38438 1.84384 298.84384 150.34384 15034.38421 1.84384 298.84384 150.34384 15034.38400 2020-01-01 2020-01-02 2020-01-01 00:10:14 2020-01-02 03:38:35 2020-01-01 00:10:14.000 2020-01-02 03:38:35.000 614 99515 50064.5 5006450 614 99515 50064.5 5006450 -32556 32582 4844.66 484466 -125 126 1.14 114 -615 2 10605 99516 1.84684 298.84684 150.34684 15034.68468 1.84684 298.84683 150.34684 15034.68452 1.84684 298.84684 150.34684 15034.68400 2020-01-01 2020-01-02 2020-01-01 00:10:15 2020-01-02 03:38:36 2020-01-01 00:10:15.000 2020-01-02 03:38:36.000 615 99516 50065.5 5006550 615 99516 50065.5 5006550 -32555 32583 4845.66 484566 -124 127 2.14 214 -616 2 10606 99517 1.84984 298.84984 150.34984 15034.98498 1.84984 298.84985 150.34985 15034.98527 1.84984 298.84984 150.34984 15034.98400 2020-01-01 2020-01-02 2020-01-01 00:10:16 2020-01-02 03:38:37 2020-01-01 00:10:16.000 2020-01-02 03:38:37.000 616 99517 50066.5 5006650 616 99517 50066.5 5006650 -32554 32584 4846.66 484666 -128 127 0.58 58 -617 2 10607 99518 1.85285 298.85285 150.35285 15035.28528 1.85285 298.85284 150.35285 15035.2854 1.85285 298.85285 150.35285 15035.28500 2020-01-01 2020-01-02 2020-01-01 00:10:17 2020-01-02 03:38:38 2020-01-01 00:10:17.000 2020-01-02 03:38:38.000 617 99518 50067.5 5006750 617 99518 50067.5 5006750 -32553 32585 4847.66 484766 -128 123 -0.98 -98 -618 2 10608 99519 1.85585 298.85585 150.35585 15035.58558 1.85585 298.85587 150.35585 15035.58551 1.85585 298.85585 150.35585 15035.58500 2020-01-01 2020-01-02 2020-01-01 00:10:18 2020-01-02 03:38:39 2020-01-01 00:10:18.000 2020-01-02 03:38:39.000 618 99519 50068.5 5006850 618 99519 50068.5 5006850 -32552 32586 4848.66 484866 -127 124 0.02 2 -619 2 10609 99520 1.85885 298.85885 150.35885 15035.88588 1.85885 298.85886 150.35885 15035.88568 1.85885 298.85885 150.35885 15035.88500 2020-01-01 2020-01-02 2020-01-01 00:10:19 2020-01-02 03:38:40 2020-01-01 00:10:19.000 2020-01-02 03:38:40.000 619 99520 50069.5 5006950 619 99520 50069.5 5006950 -32551 32587 4849.66 484966 -126 125 1.02 102 -62 2 10052 99962 0.18618 300.18618 150.18618 15168.8048 0.18618 300.1862 150.18618 15168.80494 0.18618 300.18618 150.18618 15168.80418 2020-01-01 2020-01-02 2020-01-01 00:01:02 2020-01-02 03:46:02 2020-01-01 00:01:02.000 2020-01-02 03:46:02.000 62 99962 50012 5051212 62 99962 50012 5051212 -32507 32428 4591.009900990099 463692 -127 124 -1.7821782178217822 -180 -620 2 10610 99521 1.86186 298.86186 150.36186 15036.18618 1.86186 298.86185 150.36185 15036.18598 1.86186 298.86186 150.36186 15036.18600 2020-01-01 2020-01-02 2020-01-01 00:10:20 2020-01-02 03:38:41 2020-01-01 00:10:20.000 2020-01-02 03:38:41.000 620 99521 50070.5 5007050 620 99521 50070.5 5007050 -32550 32588 4850.66 485066 -125 126 2.02 202 -621 2 10611 99522 1.86486 298.86486 150.36486 15036.48648 1.86486 298.86487 150.36486 15036.48673 1.86486 298.86486 150.36486 15036.48600 2020-01-01 2020-01-02 2020-01-01 00:10:21 2020-01-02 03:38:42 2020-01-01 00:10:21.000 2020-01-02 03:38:42.000 621 99522 50071.5 5007150 621 99522 50071.5 5007150 -32549 32589 4851.66 485166 -124 127 3.02 302 -622 2 10612 99523 1.86786 298.86786 150.36786 15036.78678 1.86786 298.86786 150.36786 15036.78687 1.86786 298.86786 150.36786 15036.78600 2020-01-01 2020-01-02 2020-01-01 00:10:22 2020-01-02 03:38:43 2020-01-01 00:10:22.000 2020-01-02 03:38:43.000 622 99523 50072.5 5007250 622 99523 50072.5 5007250 -32548 32590 4852.66 485266 -128 127 1.46 146 -623 2 10613 99524 1.87087 298.87087 150.37087 15037.08708 1.87087 298.87088 150.37087 15037.08702 1.87087 298.87087 150.37087 15037.08700 2020-01-01 2020-01-02 2020-01-01 00:10:23 2020-01-02 03:38:44 2020-01-01 00:10:23.000 2020-01-02 03:38:44.000 623 99524 50073.5 5007350 623 99524 50073.5 5007350 -32547 32591 4853.66 485366 -128 123 -0.1 -10 -624 2 10614 99525 1.87387 298.87387 150.37387 15037.38738 1.87387 298.87387 150.37387 15037.38716 1.87387 298.87387 150.37387 15037.38700 2020-01-01 2020-01-02 2020-01-01 00:10:24 2020-01-02 03:38:45 2020-01-01 00:10:24.000 2020-01-02 03:38:45.000 624 99525 50074.5 5007450 624 99525 50074.5 5007450 -32546 32592 4854.66 485466 -127 124 0.9 90 -625 2 10615 99526 1.87687 298.87687 150.37687 15037.68768 1.87687 298.8769 150.37687 15037.68791 1.87687 298.87687 150.37687 15037.68700 2020-01-01 2020-01-02 2020-01-01 00:10:25 2020-01-02 03:38:46 2020-01-01 00:10:25.000 2020-01-02 03:38:46.000 625 99526 50075.5 5007550 625 99526 50075.5 5007550 -32545 32593 4855.66 485566 -126 125 1.9 190 -626 2 10616 99527 1.87987 298.87987 150.37987 15037.98798 1.87987 298.87988 150.37988 15037.9882 1.87987 298.87987 150.37987 15037.98700 2020-01-01 2020-01-02 2020-01-01 00:10:26 2020-01-02 03:38:47 2020-01-01 00:10:26.000 2020-01-02 03:38:47.000 626 99527 50076.5 5007650 626 99527 50076.5 5007650 -32544 32594 4856.66 485666 -125 126 2.9 290 -627 2 10617 99528 1.88288 298.88288 150.38288 15038.28828 1.88288 298.88287 150.38288 15038.28834 1.88288 298.88288 150.38288 15038.28800 2020-01-01 2020-01-02 2020-01-01 00:10:27 2020-01-02 03:38:48 2020-01-01 00:10:27.000 2020-01-02 03:38:48.000 627 99528 50077.5 5007750 627 99528 50077.5 5007750 -32543 32595 4857.66 485766 -124 127 3.9 390 -628 2 10618 99529 1.88588 298.88588 150.38588 15038.58858 1.88588 298.8859 150.38588 15038.58849 1.88588 298.88588 150.38588 15038.58800 2020-01-01 2020-01-02 2020-01-01 00:10:28 2020-01-02 03:38:49 2020-01-01 00:10:28.000 2020-01-02 03:38:49.000 628 99529 50078.5 5007850 628 99529 50078.5 5007850 -32542 32596 4858.66 485866 -128 127 2.34 234 -629 2 10619 99530 1.88888 298.88888 150.38888 15038.88888 1.88888 298.8889 150.38888 15038.88862 1.88888 298.88888 150.38888 15038.88800 2020-01-01 2020-01-02 2020-01-01 00:10:29 2020-01-02 03:38:50 2020-01-01 00:10:29.000 2020-01-02 03:38:50.000 629 99530 50079.5 5007950 629 99530 50079.5 5007950 -32541 32597 4859.66 485966 -128 123 0.78 78 -63 2 10053 99963 0.18918 300.18918 150.18918 15169.1081 0.18918 300.18918 150.18918 15169.10808 0.18918 300.18918 150.18918 15169.10718 2020-01-01 2020-01-02 2020-01-01 00:01:03 2020-01-02 03:46:03 2020-01-01 00:01:03.000 2020-01-02 03:46:03.000 63 99963 50013 5051313 63 99963 50013 5051313 -32506 32429 4592.009900990099 463793 -126 125 -0.7821782178217822 -79 -630 2 10620 99531 1.89189 298.89189 150.39189 15039.18918 1.89189 298.8919 150.39189 15039.18937 1.89189 298.89189 150.39189 15039.18900 2020-01-01 2020-01-02 2020-01-01 00:10:30 2020-01-02 03:38:51 2020-01-01 00:10:30.000 2020-01-02 03:38:51.000 630 99531 50080.5 5008050 630 99531 50080.5 5008050 -32540 32598 4860.66 486066 -127 124 1.78 178 -631 2 10621 99532 1.89489 298.89489 150.39489 15039.48948 1.89489 298.8949 150.39489 15039.48968 1.89489 298.89489 150.39489 15039.48900 2020-01-01 2020-01-02 2020-01-01 00:10:31 2020-01-02 03:38:52 2020-01-01 00:10:31.000 2020-01-02 03:38:52.000 631 99532 50081.5 5008150 631 99532 50081.5 5008150 -32539 32599 4861.66 486166 -126 125 2.78 278 -632 2 10622 99533 1.89789 298.89789 150.39789 15039.78978 1.89789 298.8979 150.39789 15039.78984 1.89789 298.89789 150.39789 15039.78900 2020-01-01 2020-01-02 2020-01-01 00:10:32 2020-01-02 03:38:53 2020-01-01 00:10:32.000 2020-01-02 03:38:53.000 632 99533 50082.5 5008250 632 99533 50082.5 5008250 -32538 32600 4862.66 486266 -125 126 3.78 378 -633 2 10623 99534 1.9009 298.9009 150.4009 15040.09009 1.9009 298.9009 150.40089 15040.08996 1.90090 298.90090 150.40090 15040.09000 2020-01-01 2020-01-02 2020-01-01 00:10:33 2020-01-02 03:38:54 2020-01-01 00:10:33.000 2020-01-02 03:38:54.000 633 99534 50083.5 5008350 633 99534 50083.5 5008350 -32537 32601 4863.66 486366 -124 127 4.78 478 -634 2 10624 99535 1.9039 298.9039 150.4039 15040.39039 1.9039 298.9039 150.4039 15040.39009 1.90390 298.90390 150.40390 15040.39000 2020-01-01 2020-01-02 2020-01-01 00:10:34 2020-01-02 03:38:55 2020-01-01 00:10:34.000 2020-01-02 03:38:55.000 634 99535 50084.5 5008450 634 99535 50084.5 5008450 -32536 32602 4864.66 486466 -128 127 3.22 322 -635 2 10625 99536 1.9069 298.9069 150.4069 15040.69069 1.9069 298.90692 150.4069 15040.69084 1.90690 298.90690 150.40690 15040.69000 2020-01-01 2020-01-02 2020-01-01 00:10:35 2020-01-02 03:38:56 2020-01-01 00:10:35.000 2020-01-02 03:38:56.000 635 99536 50085.5 5008550 635 99536 50085.5 5008550 -32535 32603 4865.66 486566 -128 127 1.66 166 -636 2 10626 99537 1.9099 298.9099 150.4099 15040.99099 1.90991 298.9099 150.40991 15040.99115 1.90990 298.90990 150.40990 15040.99000 2020-01-01 2020-01-02 2020-01-01 00:10:36 2020-01-02 03:38:57 2020-01-01 00:10:36.000 2020-01-02 03:38:57.000 636 99537 50086.5 5008650 636 99537 50086.5 5008650 -32534 32604 4866.66 486666 -128 124 0.1 10 -637 2 10627 99538 1.91291 298.91291 150.41291 15041.29129 1.91291 298.9129 150.41291 15041.29131 1.91291 298.91291 150.41291 15041.29100 2020-01-01 2020-01-02 2020-01-01 00:10:37 2020-01-02 03:38:58 2020-01-01 00:10:37.000 2020-01-02 03:38:58.000 637 99538 50087.5 5008750 637 99538 50087.5 5008750 -32533 32605 4867.66 486766 -127 125 1.1 110 -638 2 10628 99539 1.91591 298.91591 150.41591 15041.59159 1.91591 298.91592 150.41591 15041.59143 1.91591 298.91591 150.41591 15041.59100 2020-01-01 2020-01-02 2020-01-01 00:10:38 2020-01-02 03:38:59 2020-01-01 00:10:38.000 2020-01-02 03:38:59.000 638 99539 50088.5 5008850 638 99539 50088.5 5008850 -32532 32606 4868.66 486866 -126 126 2.1 210 -639 2 10629 99540 1.91891 298.91891 150.41891 15041.89189 1.91891 298.9189 150.41891 15041.89172 1.91891 298.91891 150.41891 15041.89100 2020-01-01 2020-01-02 2020-01-01 00:10:39 2020-01-02 03:39:00 2020-01-01 00:10:39.000 2020-01-02 03:39:00.000 639 99540 50089.5 5008950 639 99540 50089.5 5008950 -32531 32607 4869.66 486966 -125 127 3.1 310 -64 2 10054 99964 0.19219 300.19219 150.19219 15169.41141 0.19219 300.1922 150.19219 15169.41184 0.19219 300.19219 150.19219 15169.41119 2020-01-01 2020-01-02 2020-01-01 00:01:04 2020-01-02 03:46:04 2020-01-01 00:01:04.000 2020-01-02 03:46:04.000 64 99964 50014 5051414 64 99964 50014 5051414 -32505 32430 4593.009900990099 463894 -125 126 0.21782178217821782 22 -640 2 10630 99541 1.92192 298.92192 150.42192 15042.19219 1.92192 298.92194 150.42192 15042.19232 1.92192 298.92192 150.42192 15042.19200 2020-01-01 2020-01-02 2020-01-01 00:10:40 2020-01-02 03:39:01 2020-01-01 00:10:40.000 2020-01-02 03:39:01.000 640 99541 50090.5 5009050 640 99541 50090.5 5009050 -32530 32608 4870.66 487066 -128 127 1.54 154 -641 2 10631 99542 1.92492 298.92492 150.42492 15042.49249 1.92492 298.92493 150.42492 15042.49265 1.92492 298.92492 150.42492 15042.49200 2020-01-01 2020-01-02 2020-01-01 00:10:41 2020-01-02 03:39:02 2020-01-01 00:10:41.000 2020-01-02 03:39:02.000 641 99542 50091.5 5009150 641 99542 50091.5 5009150 -32529 32609 4871.66 487166 -128 127 -0.02 -2 -642 2 10632 99543 1.92792 298.92792 150.42792 15042.79279 1.92792 298.92792 150.42792 15042.79278 1.92792 298.92792 150.42792 15042.79200 2020-01-01 2020-01-02 2020-01-01 00:10:42 2020-01-02 03:39:03 2020-01-01 00:10:42.000 2020-01-02 03:39:03.000 642 99543 50092.5 5009250 642 99543 50092.5 5009250 -32528 32610 4872.66 487266 -128 123 -1.58 -158 -643 2 10633 99544 1.93093 298.93093 150.43093 15043.09309 1.93093 298.93094 150.43092 15043.0929 1.93093 298.93093 150.43093 15043.09300 2020-01-01 2020-01-02 2020-01-01 00:10:43 2020-01-02 03:39:04 2020-01-01 00:10:43.000 2020-01-02 03:39:04.000 643 99544 50093.5 5009350 643 99544 50093.5 5009350 -32527 32611 4873.66 487366 -127 124 -0.58 -58 -644 2 10634 99545 1.93393 298.93393 150.43393 15043.39339 1.93393 298.93393 150.43393 15043.39319 1.93393 298.93393 150.43393 15043.39300 2020-01-01 2020-01-02 2020-01-01 00:10:44 2020-01-02 03:39:05 2020-01-01 00:10:44.000 2020-01-02 03:39:05.000 644 99545 50094.5 5009450 644 99545 50094.5 5009450 -32526 32612 4874.66 487466 -126 125 0.42 42 -645 2 10635 99546 1.93693 298.93693 150.43693 15043.69369 1.93693 298.93695 150.43693 15043.69379 1.93693 298.93693 150.43693 15043.69300 2020-01-01 2020-01-02 2020-01-01 00:10:45 2020-01-02 03:39:06 2020-01-01 00:10:45.000 2020-01-02 03:39:06.000 645 99546 50095.5 5009550 645 99546 50095.5 5009550 -32525 32613 4875.66 487566 -125 126 1.42 142 -646 2 10636 99547 1.93993 298.93993 150.43993 15043.99399 1.93994 298.93994 150.43994 15043.99412 1.93993 298.93993 150.43993 15043.99300 2020-01-01 2020-01-02 2020-01-01 00:10:46 2020-01-02 03:39:07 2020-01-01 00:10:46.000 2020-01-02 03:39:07.000 646 99547 50096.5 5009650 646 99547 50096.5 5009650 -32524 32614 4876.66 487666 -124 127 2.42 242 -647 2 10637 99548 1.94294 298.94294 150.44294 15044.29429 1.94294 298.94293 150.44294 15044.29425 1.94294 298.94294 150.44294 15044.29400 2020-01-01 2020-01-02 2020-01-01 00:10:47 2020-01-02 03:39:08 2020-01-01 00:10:47.000 2020-01-02 03:39:08.000 647 99548 50097.5 5009750 647 99548 50097.5 5009750 -32523 32615 4877.66 487766 -128 127 0.86 86 -648 2 10638 99549 1.94594 298.94594 150.44594 15044.59459 1.94594 298.94595 150.44595 15044.595 1.94594 298.94594 150.44594 15044.59400 2020-01-01 2020-01-02 2020-01-01 00:10:48 2020-01-02 03:39:09 2020-01-01 00:10:48.000 2020-01-02 03:39:09.000 648 99549 50098.5 5009850 648 99549 50098.5 5009850 -32522 32616 4878.66 487866 -128 123 -0.7 -70 -649 2 10639 99550 1.94894 298.94894 150.44894 15044.89489 1.94894 298.94894 150.44894 15044.89467 1.94894 298.94894 150.44894 15044.89400 2020-01-01 2020-01-02 2020-01-01 00:10:49 2020-01-02 03:39:10 2020-01-01 00:10:49.000 2020-01-02 03:39:10.000 649 99550 50099.5 5009950 649 99550 50099.5 5009950 -32521 32617 4879.66 487966 -127 124 0.3 30 -65 2 10055 99965 0.19519 300.19519 150.19519 15169.71471 0.19519 300.1952 150.19519 15169.71448 0.19519 300.19519 150.19519 15169.71419 2020-01-01 2020-01-02 2020-01-01 00:01:05 2020-01-02 03:46:05 2020-01-01 00:01:05.000 2020-01-02 03:46:05.000 65 99965 50015 5051515 65 99965 50015 5051515 -32504 32431 4594.009900990099 463995 -124 127 1.2178217821782178 123 -650 2 10640 99551 1.95195 298.95195 150.45195 15045.19519 1.95195 298.95197 150.45195 15045.19525 1.95195 298.95195 150.45195 15045.19500 2020-01-01 2020-01-02 2020-01-01 00:10:50 2020-01-02 03:39:11 2020-01-01 00:10:50.000 2020-01-02 03:39:11.000 650 99551 50100.5 5010050 650 99551 50100.5 5010050 -32520 32618 4880.66 488066 -126 125 1.3 130 -651 2 10641 99552 1.95495 298.95495 150.45495 15045.49549 1.95495 298.95496 150.45495 15045.49558 1.95495 298.95495 150.45495 15045.49500 2020-01-01 2020-01-02 2020-01-01 00:10:51 2020-01-02 03:39:12 2020-01-01 00:10:51.000 2020-01-02 03:39:12.000 651 99552 50101.5 5010150 651 99552 50101.5 5010150 -32519 32619 4881.66 488166 -125 126 2.3 230 +610 2 10600 99511 1.83183 298.83183 150.33183 15033.18318 1.83183 298.83182 150.33183 15033.18304 1.83183 298.83183 150.33182999999985 15033.18300 2020-01-01 2020-01-02 2020-01-01 00:10:10 2020-01-02 03:38:31 2020-01-01 00:10:10.000 2020-01-02 03:38:31.000 610 99511 50060.5 5006050 610 99511 50060.5 5006050 -32560 32578 4840.66 484066 -128 127 -0.3 -30 +611 2 10601 99512 1.83483 298.83483 150.33483 15033.48348 1.83483 298.83484 150.33483 15033.48363 1.83483 298.83483 150.33482999999984 15033.48300 2020-01-01 2020-01-02 2020-01-01 00:10:11 2020-01-02 03:38:32 2020-01-01 00:10:11.000 2020-01-02 03:38:32.000 611 99512 50061.5 5006150 611 99512 50061.5 5006150 -32559 32579 4841.66 484166 -128 123 -1.86 -186 +612 2 10602 99513 1.83783 298.83783 150.33783 15033.78378 1.83783 298.83783 150.33783 15033.78393 1.83783 298.83783 150.33783000000022 15033.78300 2020-01-01 2020-01-02 2020-01-01 00:10:12 2020-01-02 03:38:33 2020-01-01 00:10:12.000 2020-01-02 03:38:33.000 612 99513 50062.5 5006250 612 99513 50062.5 5006250 -32558 32580 4842.66 484266 -127 124 -0.86 -86 +613 2 10603 99514 1.84084 298.84084 150.34084 15034.08408 1.84084 298.84085 150.34084 15034.08405 1.84084 298.84084 150.34084000000007 15034.08400 2020-01-01 2020-01-02 2020-01-01 00:10:13 2020-01-02 03:38:34 2020-01-01 00:10:13.000 2020-01-02 03:38:34.000 613 99514 50063.5 5006350 613 99514 50063.5 5006350 -32557 32581 4843.66 484366 -126 125 0.14 14 +614 2 10604 99515 1.84384 298.84384 150.34384 15034.38438 1.84384 298.84384 150.34384 15034.38421 1.84384 298.84384 150.34383999999977 15034.38400 2020-01-01 2020-01-02 2020-01-01 00:10:14 2020-01-02 03:38:35 2020-01-01 00:10:14.000 2020-01-02 03:38:35.000 614 99515 50064.5 5006450 614 99515 50064.5 5006450 -32556 32582 4844.66 484466 -125 126 1.14 114 +615 2 10605 99516 1.84684 298.84684 150.34684 15034.68468 1.84684 298.84683 150.34684 15034.68452 1.84684 298.84684 150.34684000000007 15034.68400 2020-01-01 2020-01-02 2020-01-01 00:10:15 2020-01-02 03:38:36 2020-01-01 00:10:15.000 2020-01-02 03:38:36.000 615 99516 50065.5 5006550 615 99516 50065.5 5006550 -32555 32583 4845.66 484566 -124 127 2.14 214 +616 2 10606 99517 1.84984 298.84984 150.34984 15034.98498 1.84984 298.84985 150.34985 15034.98527 1.84984 298.84984 150.34984000000014 15034.98400 2020-01-01 2020-01-02 2020-01-01 00:10:16 2020-01-02 03:38:37 2020-01-01 00:10:16.000 2020-01-02 03:38:37.000 616 99517 50066.5 5006650 616 99517 50066.5 5006650 -32554 32584 4846.66 484666 -128 127 0.58 58 +617 2 10607 99518 1.85285 298.85285 150.35285 15035.28528 1.85285 298.85284 150.35285 15035.2854 1.85285 298.85285 150.35284999999993 15035.28500 2020-01-01 2020-01-02 2020-01-01 00:10:17 2020-01-02 03:38:38 2020-01-01 00:10:17.000 2020-01-02 03:38:38.000 617 99518 50067.5 5006750 617 99518 50067.5 5006750 -32553 32585 4847.66 484766 -128 123 -0.98 -98 +618 2 10608 99519 1.85585 298.85585 150.35585 15035.58558 1.85585 298.85587 150.35585 15035.58551 1.85585 298.85585 150.35584999999995 15035.58500 2020-01-01 2020-01-02 2020-01-01 00:10:18 2020-01-02 03:38:39 2020-01-01 00:10:18.000 2020-01-02 03:38:39.000 618 99519 50068.5 5006850 618 99519 50068.5 5006850 -32552 32586 4848.66 484866 -127 124 0.02 2 +619 2 10609 99520 1.85885 298.85885 150.35885 15035.88588 1.85885 298.85886 150.35885 15035.88568 1.85885 298.85885 150.35885000000002 15035.88500 2020-01-01 2020-01-02 2020-01-01 00:10:19 2020-01-02 03:38:40 2020-01-01 00:10:19.000 2020-01-02 03:38:40.000 619 99520 50069.5 5006950 619 99520 50069.5 5006950 -32551 32587 4849.66 484966 -126 125 1.02 102 +62 2 10052 99962 0.18618 300.18618 150.18618 15168.8048 0.18618 300.1862 150.18618 15168.80494 0.18618 300.18618 150.18618000000006 15168.80418 2020-01-01 2020-01-02 2020-01-01 00:01:02 2020-01-02 03:46:02 2020-01-01 00:01:02.000 2020-01-02 03:46:02.000 62 99962 50012 5051212 62 99962 50012 5051212 -32507 32428 4591.009900990099 463692 -127 124 -1.7821782178217822 -180 +620 2 10610 99521 1.86186 298.86186 150.36186 15036.18618 1.86186 298.86185 150.36185 15036.18598 1.86186 298.86186 150.36186000000018 15036.18600 2020-01-01 2020-01-02 2020-01-01 00:10:20 2020-01-02 03:38:41 2020-01-01 00:10:20.000 2020-01-02 03:38:41.000 620 99521 50070.5 5007050 620 99521 50070.5 5007050 -32550 32588 4850.66 485066 -125 126 2.02 202 +621 2 10611 99522 1.86486 298.86486 150.36486 15036.48648 1.86486 298.86487 150.36486 15036.48673 1.86486 298.86486 150.36485999999985 15036.48600 2020-01-01 2020-01-02 2020-01-01 00:10:21 2020-01-02 03:38:42 2020-01-01 00:10:21.000 2020-01-02 03:38:42.000 621 99522 50071.5 5007150 621 99522 50071.5 5007150 -32549 32589 4851.66 485166 -124 127 3.02 302 +622 2 10612 99523 1.86786 298.86786 150.36786 15036.78678 1.86786 298.86786 150.36786 15036.78687 1.86786 298.86786 150.36786000000012 15036.78600 2020-01-01 2020-01-02 2020-01-01 00:10:22 2020-01-02 03:38:43 2020-01-01 00:10:22.000 2020-01-02 03:38:43.000 622 99523 50072.5 5007250 622 99523 50072.5 5007250 -32548 32590 4852.66 485266 -128 127 1.46 146 +623 2 10613 99524 1.87087 298.87087 150.37087 15037.08708 1.87087 298.87088 150.37087 15037.08702 1.87087 298.87087 150.3708700000001 15037.08700 2020-01-01 2020-01-02 2020-01-01 00:10:23 2020-01-02 03:38:44 2020-01-01 00:10:23.000 2020-01-02 03:38:44.000 623 99524 50073.5 5007350 623 99524 50073.5 5007350 -32547 32591 4853.66 485366 -128 123 -0.1 -10 +624 2 10614 99525 1.87387 298.87387 150.37387 15037.38738 1.87387 298.87387 150.37387 15037.38716 1.87387 298.87387 150.37386999999998 15037.38700 2020-01-01 2020-01-02 2020-01-01 00:10:24 2020-01-02 03:38:45 2020-01-01 00:10:24.000 2020-01-02 03:38:45.000 624 99525 50074.5 5007450 624 99525 50074.5 5007450 -32546 32592 4854.66 485466 -127 124 0.9 90 +625 2 10615 99526 1.87687 298.87687 150.37687 15037.68768 1.87687 298.8769 150.37687 15037.68791 1.87687 298.87687 150.37687000000003 15037.68700 2020-01-01 2020-01-02 2020-01-01 00:10:25 2020-01-02 03:38:46 2020-01-01 00:10:25.000 2020-01-02 03:38:46.000 625 99526 50075.5 5007550 625 99526 50075.5 5007550 -32545 32593 4855.66 485566 -126 125 1.9 190 +626 2 10616 99527 1.87987 298.87987 150.37987 15037.98798 1.87987 298.87988 150.37988 15037.9882 1.87987 298.87987 150.3798700000001 15037.98700 2020-01-01 2020-01-02 2020-01-01 00:10:26 2020-01-02 03:38:47 2020-01-01 00:10:26.000 2020-01-02 03:38:47.000 626 99527 50076.5 5007650 626 99527 50076.5 5007650 -32544 32594 4856.66 485666 -125 126 2.9 290 +627 2 10617 99528 1.88288 298.88288 150.38288 15038.28828 1.88288 298.88287 150.38288 15038.28834 1.88288 298.88288 150.38287999999991 15038.28800 2020-01-01 2020-01-02 2020-01-01 00:10:27 2020-01-02 03:38:48 2020-01-01 00:10:27.000 2020-01-02 03:38:48.000 627 99528 50077.5 5007750 627 99528 50077.5 5007750 -32543 32595 4857.66 485766 -124 127 3.9 390 +628 2 10618 99529 1.88588 298.88588 150.38588 15038.58858 1.88588 298.8859 150.38588 15038.58849 1.88588 298.88588 150.38587999999987 15038.58800 2020-01-01 2020-01-02 2020-01-01 00:10:28 2020-01-02 03:38:49 2020-01-01 00:10:28.000 2020-01-02 03:38:49.000 628 99529 50078.5 5007850 628 99529 50078.5 5007850 -32542 32596 4858.66 485866 -128 127 2.34 234 +629 2 10619 99530 1.88888 298.88888 150.38888 15038.88888 1.88888 298.8889 150.38888 15038.88862 1.88888 298.88888 150.3888800000002 15038.88800 2020-01-01 2020-01-02 2020-01-01 00:10:29 2020-01-02 03:38:50 2020-01-01 00:10:29.000 2020-01-02 03:38:50.000 629 99530 50079.5 5007950 629 99530 50079.5 5007950 -32541 32597 4859.66 485966 -128 123 0.78 78 +63 2 10053 99963 0.18918 300.18918 150.18918 15169.1081 0.18918 300.18918 150.18918 15169.10808 0.18918 300.18918 150.1891799999999 15169.10718 2020-01-01 2020-01-02 2020-01-01 00:01:03 2020-01-02 03:46:03 2020-01-01 00:01:03.000 2020-01-02 03:46:03.000 63 99963 50013 5051313 63 99963 50013 5051313 -32506 32429 4592.009900990099 463793 -126 125 -0.7821782178217822 -79 +630 2 10620 99531 1.89189 298.89189 150.39189 15039.18918 1.89189 298.8919 150.39189 15039.18937 1.89189 298.89189 150.3918900000001 15039.18900 2020-01-01 2020-01-02 2020-01-01 00:10:30 2020-01-02 03:38:51 2020-01-01 00:10:30.000 2020-01-02 03:38:51.000 630 99531 50080.5 5008050 630 99531 50080.5 5008050 -32540 32598 4860.66 486066 -127 124 1.78 178 +631 2 10621 99532 1.89489 298.89489 150.39489 15039.48948 1.89489 298.8949 150.39489 15039.48968 1.89489 298.89489 150.39488999999978 15039.48900 2020-01-01 2020-01-02 2020-01-01 00:10:31 2020-01-02 03:38:52 2020-01-01 00:10:31.000 2020-01-02 03:38:52.000 631 99532 50081.5 5008150 631 99532 50081.5 5008150 -32539 32599 4861.66 486166 -126 125 2.78 278 +632 2 10622 99533 1.89789 298.89789 150.39789 15039.78978 1.89789 298.8979 150.39789 15039.78984 1.89789 298.89789 150.39789000000013 15039.78900 2020-01-01 2020-01-02 2020-01-01 00:10:32 2020-01-02 03:38:53 2020-01-01 00:10:32.000 2020-01-02 03:38:53.000 632 99533 50082.5 5008250 632 99533 50082.5 5008250 -32538 32600 4862.66 486266 -125 126 3.78 378 +633 2 10623 99534 1.9009 298.9009 150.4009 15040.09009 1.9009 298.9009 150.40089 15040.08996 1.90090 298.90090 150.40090000000004 15040.09000 2020-01-01 2020-01-02 2020-01-01 00:10:33 2020-01-02 03:38:54 2020-01-01 00:10:33.000 2020-01-02 03:38:54.000 633 99534 50083.5 5008350 633 99534 50083.5 5008350 -32537 32601 4863.66 486366 -124 127 4.78 478 +634 2 10624 99535 1.9039 298.9039 150.4039 15040.39039 1.9039 298.9039 150.4039 15040.39009 1.90390 298.90390 150.4038999999999 15040.39000 2020-01-01 2020-01-02 2020-01-01 00:10:34 2020-01-02 03:38:55 2020-01-01 00:10:34.000 2020-01-02 03:38:55.000 634 99535 50084.5 5008450 634 99535 50084.5 5008450 -32536 32602 4864.66 486466 -128 127 3.22 322 +635 2 10625 99536 1.9069 298.9069 150.4069 15040.69069 1.9069 298.90692 150.4069 15040.69084 1.90690 298.90690 150.40689999999998 15040.69000 2020-01-01 2020-01-02 2020-01-01 00:10:35 2020-01-02 03:38:56 2020-01-01 00:10:35.000 2020-01-02 03:38:56.000 635 99536 50085.5 5008550 635 99536 50085.5 5008550 -32535 32603 4865.66 486566 -128 127 1.66 166 +636 2 10626 99537 1.9099 298.9099 150.4099 15040.99099 1.90991 298.9099 150.40991 15040.99115 1.90990 298.90990 150.40990000000005 15040.99000 2020-01-01 2020-01-02 2020-01-01 00:10:36 2020-01-02 03:38:57 2020-01-01 00:10:36.000 2020-01-02 03:38:57.000 636 99537 50086.5 5008650 636 99537 50086.5 5008650 -32534 32604 4866.66 486666 -128 124 0.1 10 +637 2 10627 99538 1.91291 298.91291 150.41291 15041.29129 1.91291 298.9129 150.41291 15041.29131 1.91291 298.91291 150.4129099999998 15041.29100 2020-01-01 2020-01-02 2020-01-01 00:10:37 2020-01-02 03:38:58 2020-01-01 00:10:37.000 2020-01-02 03:38:58.000 637 99538 50087.5 5008750 637 99538 50087.5 5008750 -32533 32605 4867.66 486766 -127 125 1.1 110 +638 2 10628 99539 1.91591 298.91591 150.41591 15041.59159 1.91591 298.91592 150.41591 15041.59143 1.91591 298.91591 150.41590999999988 15041.59100 2020-01-01 2020-01-02 2020-01-01 00:10:38 2020-01-02 03:38:59 2020-01-01 00:10:38.000 2020-01-02 03:38:59.000 638 99539 50088.5 5008850 638 99539 50088.5 5008850 -32532 32606 4868.66 486866 -126 126 2.1 210 +639 2 10629 99540 1.91891 298.91891 150.41891 15041.89189 1.91891 298.9189 150.41891 15041.89172 1.91891 298.91891 150.41891000000015 15041.89100 2020-01-01 2020-01-02 2020-01-01 00:10:39 2020-01-02 03:39:00 2020-01-01 00:10:39.000 2020-01-02 03:39:00.000 639 99540 50089.5 5008950 639 99540 50089.5 5008950 -32531 32607 4869.66 486966 -125 127 3.1 310 +64 2 10054 99964 0.19219 300.19219 150.19219 15169.41141 0.19219 300.1922 150.19219 15169.41184 0.19219 300.19219 150.1921899999999 15169.41119 2020-01-01 2020-01-02 2020-01-01 00:01:04 2020-01-02 03:46:04 2020-01-01 00:01:04.000 2020-01-02 03:46:04.000 64 99964 50014 5051414 64 99964 50014 5051414 -32505 32430 4593.009900990099 463894 -125 126 0.21782178217821782 22 +640 2 10630 99541 1.92192 298.92192 150.42192 15042.19219 1.92192 298.92194 150.42192 15042.19232 1.92192 298.92192 150.42192000000006 15042.19200 2020-01-01 2020-01-02 2020-01-01 00:10:40 2020-01-02 03:39:01 2020-01-01 00:10:40.000 2020-01-02 03:39:01.000 640 99541 50090.5 5009050 640 99541 50090.5 5009050 -32530 32608 4870.66 487066 -128 127 1.54 154 +641 2 10631 99542 1.92492 298.92492 150.42492 15042.49249 1.92492 298.92493 150.42492 15042.49265 1.92492 298.92492 150.42491999999996 15042.49200 2020-01-01 2020-01-02 2020-01-01 00:10:41 2020-01-02 03:39:02 2020-01-01 00:10:41.000 2020-01-02 03:39:02.000 641 99542 50091.5 5009150 641 99542 50091.5 5009150 -32529 32609 4871.66 487166 -128 127 -0.02 -2 +642 2 10632 99543 1.92792 298.92792 150.42792 15042.79279 1.92792 298.92792 150.42792 15042.79278 1.92792 298.92792 150.42792000000006 15042.79200 2020-01-01 2020-01-02 2020-01-01 00:10:42 2020-01-02 03:39:03 2020-01-01 00:10:42.000 2020-01-02 03:39:03.000 642 99543 50092.5 5009250 642 99543 50092.5 5009250 -32528 32610 4872.66 487266 -128 123 -1.58 -158 +643 2 10633 99544 1.93093 298.93093 150.43093 15043.09309 1.93093 298.93094 150.43092 15043.0929 1.93093 298.93093 150.43093000000022 15043.09300 2020-01-01 2020-01-02 2020-01-01 00:10:43 2020-01-02 03:39:04 2020-01-01 00:10:43.000 2020-01-02 03:39:04.000 643 99544 50093.5 5009350 643 99544 50093.5 5009350 -32527 32611 4873.66 487366 -127 124 -0.58 -58 +644 2 10634 99545 1.93393 298.93393 150.43393 15043.39339 1.93393 298.93393 150.43393 15043.39319 1.93393 298.93393 150.4339299999999 15043.39300 2020-01-01 2020-01-02 2020-01-01 00:10:44 2020-01-02 03:39:05 2020-01-01 00:10:44.000 2020-01-02 03:39:05.000 644 99545 50094.5 5009450 644 99545 50094.5 5009450 -32526 32612 4874.66 487466 -126 125 0.42 42 +645 2 10635 99546 1.93693 298.93693 150.43693 15043.69369 1.93693 298.93695 150.43693 15043.69379 1.93693 298.93693 150.4369299999999 15043.69300 2020-01-01 2020-01-02 2020-01-01 00:10:45 2020-01-02 03:39:06 2020-01-01 00:10:45.000 2020-01-02 03:39:06.000 645 99546 50095.5 5009550 645 99546 50095.5 5009550 -32525 32613 4875.66 487566 -125 126 1.42 142 +646 2 10636 99547 1.93993 298.93993 150.43993 15043.99399 1.93994 298.93994 150.43994 15043.99412 1.93993 298.93993 150.4399300000002 15043.99300 2020-01-01 2020-01-02 2020-01-01 00:10:46 2020-01-02 03:39:07 2020-01-01 00:10:46.000 2020-01-02 03:39:07.000 646 99547 50096.5 5009650 646 99547 50096.5 5009650 -32524 32614 4876.66 487666 -124 127 2.42 242 +647 2 10637 99548 1.94294 298.94294 150.44294 15044.29429 1.94294 298.94293 150.44294 15044.29425 1.94294 298.94294 150.44294000000014 15044.29400 2020-01-01 2020-01-02 2020-01-01 00:10:47 2020-01-02 03:39:08 2020-01-01 00:10:47.000 2020-01-02 03:39:08.000 647 99548 50097.5 5009750 647 99548 50097.5 5009750 -32523 32615 4877.66 487766 -128 127 0.86 86 +648 2 10638 99549 1.94594 298.94594 150.44594 15044.59459 1.94594 298.94595 150.44595 15044.595 1.94594 298.94594 150.44593999999978 15044.59400 2020-01-01 2020-01-02 2020-01-01 00:10:48 2020-01-02 03:39:09 2020-01-01 00:10:48.000 2020-01-02 03:39:09.000 648 99549 50098.5 5009850 648 99549 50098.5 5009850 -32522 32616 4878.66 487866 -128 123 -0.7 -70 +649 2 10639 99550 1.94894 298.94894 150.44894 15044.89489 1.94894 298.94894 150.44894 15044.89467 1.94894 298.94894 150.44894000000016 15044.89400 2020-01-01 2020-01-02 2020-01-01 00:10:49 2020-01-02 03:39:10 2020-01-01 00:10:49.000 2020-01-02 03:39:10.000 649 99550 50099.5 5009950 649 99550 50099.5 5009950 -32521 32617 4879.66 487966 -127 124 0.3 30 +65 2 10055 99965 0.19519 300.19519 150.19519 15169.71471 0.19519 300.1952 150.19519 15169.71448 0.19519 300.19519 150.1951900000002 15169.71419 2020-01-01 2020-01-02 2020-01-01 00:01:05 2020-01-02 03:46:05 2020-01-01 00:01:05.000 2020-01-02 03:46:05.000 65 99965 50015 5051515 65 99965 50015 5051515 -32504 32431 4594.009900990099 463995 -124 127 1.2178217821782178 123 +650 2 10640 99551 1.95195 298.95195 150.45195 15045.19519 1.95195 298.95197 150.45195 15045.19525 1.95195 298.95195 150.4519500000001 15045.19500 2020-01-01 2020-01-02 2020-01-01 00:10:50 2020-01-02 03:39:11 2020-01-01 00:10:50.000 2020-01-02 03:39:11.000 650 99551 50100.5 5010050 650 99551 50100.5 5010050 -32520 32618 4880.66 488066 -126 125 1.3 130 +651 2 10641 99552 1.95495 298.95495 150.45495 15045.49549 1.95495 298.95496 150.45495 15045.49558 1.95495 298.95495 150.4549499999999 15045.49500 2020-01-01 2020-01-02 2020-01-01 00:10:51 2020-01-02 03:39:12 2020-01-01 00:10:51.000 2020-01-02 03:39:12.000 651 99552 50101.5 5010150 651 99552 50101.5 5010150 -32519 32619 4881.66 488166 -125 126 2.3 230 652 2 10642 99553 1.95795 298.95795 150.45795 15045.79579 1.95795 298.95795 150.45795 15045.79572 1.95795 298.95795 150.45795 15045.79500 2020-01-01 2020-01-02 2020-01-01 00:10:52 2020-01-02 03:39:13 2020-01-01 00:10:52.000 2020-01-02 03:39:13.000 652 99553 50102.5 5010250 652 99553 50102.5 5010250 -32518 32620 4882.66 488266 -124 127 3.3 330 -653 2 10643 99554 1.96096 298.96096 150.46096 15046.09609 1.96096 298.96097 150.46096 15046.09647 1.96096 298.96096 150.46096 15046.09600 2020-01-01 2020-01-02 2020-01-01 00:10:53 2020-01-02 03:39:14 2020-01-01 00:10:53.000 2020-01-02 03:39:14.000 653 99554 50103.5 5010350 653 99554 50103.5 5010350 -32517 32621 4883.66 488366 -128 127 1.74 174 -654 2 10644 99555 1.96396 298.96396 150.46396 15046.39639 1.96396 298.96396 150.46396 15046.39613 1.96396 298.96396 150.46396 15046.39600 2020-01-01 2020-01-02 2020-01-01 00:10:54 2020-01-02 03:39:15 2020-01-01 00:10:54.000 2020-01-02 03:39:15.000 654 99555 50104.5 5010450 654 99555 50104.5 5010450 -32516 32622 4884.66 488466 -128 123 0.18 18 -655 2 10645 99556 1.96696 298.96696 150.46696 15046.69669 1.96696 298.96698 150.46696 15046.69676 1.96696 298.96696 150.46696 15046.69600 2020-01-01 2020-01-02 2020-01-01 00:10:55 2020-01-02 03:39:16 2020-01-01 00:10:55.000 2020-01-02 03:39:16.000 655 99556 50105.5 5010550 655 99556 50105.5 5010550 -32515 32623 4885.66 488566 -127 124 1.18 118 -656 2 10646 99557 1.96996 298.96996 150.46996 15046.99699 1.96997 298.96997 150.46997 15046.99706 1.96996 298.96996 150.46996 15046.99600 2020-01-01 2020-01-02 2020-01-01 00:10:56 2020-01-02 03:39:17 2020-01-01 00:10:56.000 2020-01-02 03:39:17.000 656 99557 50106.5 5010650 656 99557 50106.5 5010650 -32514 32624 4886.66 488666 -126 125 2.18 218 -657 2 10647 99558 1.97297 298.97297 150.47297 15047.29729 1.97297 298.97296 150.47297 15047.29735 1.97297 298.97297 150.47297 15047.29700 2020-01-01 2020-01-02 2020-01-01 00:10:57 2020-01-02 03:39:18 2020-01-01 00:10:57.000 2020-01-02 03:39:18.000 657 99558 50107.5 5010750 657 99558 50107.5 5010750 -32513 32625 4887.66 488766 -125 126 3.18 318 +653 2 10643 99554 1.96096 298.96096 150.46096 15046.09609 1.96096 298.96097 150.46096 15046.09647 1.96096 298.96096 150.46096000000014 15046.09600 2020-01-01 2020-01-02 2020-01-01 00:10:53 2020-01-02 03:39:14 2020-01-01 00:10:53.000 2020-01-02 03:39:14.000 653 99554 50103.5 5010350 653 99554 50103.5 5010350 -32517 32621 4883.66 488366 -128 127 1.74 174 +654 2 10644 99555 1.96396 298.96396 150.46396 15046.39639 1.96396 298.96396 150.46396 15046.39613 1.96396 298.96396 150.46395999999982 15046.39600 2020-01-01 2020-01-02 2020-01-01 00:10:54 2020-01-02 03:39:15 2020-01-01 00:10:54.000 2020-01-02 03:39:15.000 654 99555 50104.5 5010450 654 99555 50104.5 5010450 -32516 32622 4884.66 488466 -128 123 0.18 18 +655 2 10645 99556 1.96696 298.96696 150.46696 15046.69669 1.96696 298.96698 150.46696 15046.69676 1.96696 298.96696 150.46695999999986 15046.69600 2020-01-01 2020-01-02 2020-01-01 00:10:55 2020-01-02 03:39:16 2020-01-01 00:10:55.000 2020-01-02 03:39:16.000 655 99556 50105.5 5010550 655 99556 50105.5 5010550 -32515 32623 4885.66 488566 -127 124 1.18 118 +656 2 10646 99557 1.96996 298.96996 150.46996 15046.99699 1.96997 298.96997 150.46997 15046.99706 1.96996 298.96996 150.46996000000016 15046.99600 2020-01-01 2020-01-02 2020-01-01 00:10:56 2020-01-02 03:39:17 2020-01-01 00:10:56.000 2020-01-02 03:39:17.000 656 99557 50106.5 5010650 656 99557 50106.5 5010650 -32514 32624 4886.66 488666 -126 125 2.18 218 +657 2 10647 99558 1.97297 298.97297 150.47297 15047.29729 1.97297 298.97296 150.47297 15047.29735 1.97297 298.97297 150.47297000000006 15047.29700 2020-01-01 2020-01-02 2020-01-01 00:10:57 2020-01-02 03:39:18 2020-01-01 00:10:57.000 2020-01-02 03:39:18.000 657 99558 50107.5 5010750 657 99558 50107.5 5010750 -32513 32625 4887.66 488766 -125 126 3.18 318 658 2 10648 99559 1.97597 298.97597 150.47597 15047.59759 1.97597 298.97598 150.47597 15047.59794 1.97597 298.97597 150.47597 15047.59700 2020-01-01 2020-01-02 2020-01-01 00:10:58 2020-01-02 03:39:19 2020-01-01 00:10:58.000 2020-01-02 03:39:19.000 658 99559 50108.5 5010850 658 99559 50108.5 5010850 -32512 32626 4888.66 488866 -124 127 4.18 418 -659 2 10649 99560 1.97897 298.97897 150.47897 15047.89789 1.97897 298.97897 150.47897 15047.8976 1.97897 298.97897 150.47897 15047.89700 2020-01-01 2020-01-02 2020-01-01 00:10:59 2020-01-02 03:39:20 2020-01-01 00:10:59.000 2020-01-02 03:39:20.000 659 99560 50109.5 5010950 659 99560 50109.5 5010950 -32511 32627 4889.66 488966 -128 127 2.62 262 -66 2 10056 99966 0.19819 300.19819 150.19819 15170.01801 0.19819 300.1982 150.19819 15170.01808 0.19819 300.19819 150.19819 15170.01719 2020-01-01 2020-01-02 2020-01-01 00:01:06 2020-01-02 03:46:06 2020-01-01 00:01:06.000 2020-01-02 03:46:06.000 66 99966 50016 5051616 66 99966 50016 5051616 -32503 32432 4595.009900990099 464096 -128 127 -0.31683168316831684 -32 -660 2 10650 99561 1.98198 298.98198 150.48198 15048.19819 1.98198 298.982 150.48198 15048.19822 1.98198 298.98198 150.48198 15048.19800 2020-01-01 2020-01-02 2020-01-01 00:11:00 2020-01-02 03:39:21 2020-01-01 00:11:00.000 2020-01-02 03:39:21.000 660 99561 50110.5 5011050 660 99561 50110.5 5011050 -32510 32628 4890.66 489066 -128 127 1.06 106 -661 2 10651 99562 1.98498 298.98498 150.48498 15048.49849 1.98498 298.985 150.48498 15048.49853 1.98498 298.98498 150.48498 15048.49800 2020-01-01 2020-01-02 2020-01-01 00:11:01 2020-01-02 03:39:22 2020-01-01 00:11:01.000 2020-01-02 03:39:22.000 661 99562 50111.5 5011150 661 99562 50111.5 5011150 -32509 32629 4891.66 489166 -128 124 -0.5 -50 -662 2 10652 99563 1.98798 298.98798 150.48798 15048.79879 1.98798 298.98798 150.48798 15048.79882 1.98798 298.98798 150.48798 15048.79800 2020-01-01 2020-01-02 2020-01-01 00:11:02 2020-01-02 03:39:23 2020-01-01 00:11:02.000 2020-01-02 03:39:23.000 662 99563 50112.5 5011250 662 99563 50112.5 5011250 -32508 32630 4892.66 489266 -127 125 0.5 50 -663 2 10653 99564 1.99099 298.99099 150.49099 15049.09909 1.99099 298.991 150.49099 15049.09942 1.99099 298.99099 150.49099 15049.09900 2020-01-01 2020-01-02 2020-01-01 00:11:03 2020-01-02 03:39:24 2020-01-01 00:11:03.000 2020-01-02 03:39:24.000 663 99564 50113.5 5011350 663 99564 50113.5 5011350 -32507 32631 4893.66 489366 -126 126 1.5 150 -664 2 10654 99565 1.99399 298.99399 150.49399 15049.39939 1.99399 298.994 150.49399 15049.39911 1.99399 298.99399 150.49399 15049.39900 2020-01-01 2020-01-02 2020-01-01 00:11:04 2020-01-02 03:39:25 2020-01-01 00:11:04.000 2020-01-02 03:39:25.000 664 99565 50114.5 5011450 664 99565 50114.5 5011450 -32506 32632 4894.66 489466 -125 127 2.5 250 -665 2 10655 99566 1.99699 298.99699 150.49699 15049.69969 1.99699 298.997 150.49699 15049.6997 1.99699 298.99699 150.49699 15049.69900 2020-01-01 2020-01-02 2020-01-01 00:11:05 2020-01-02 03:39:26 2020-01-01 00:11:05.000 2020-01-02 03:39:26.000 665 99566 50115.5 5011550 665 99566 50115.5 5011550 -32505 32633 4895.66 489566 -128 127 0.94 94 -666 2 10656 99567 2 299 150.5 15050 2 299 150.5 15050 2.00000 299.00000 150.50000 15050.00000 2020-01-01 2020-01-02 2020-01-01 00:11:06 2020-01-02 03:39:27 2020-01-01 00:11:06.000 2020-01-02 03:39:27.000 666 99567 50116.5 5011650 666 99567 50116.5 5011650 -32504 32634 4896.66 489666 -128 127 -0.62 -62 -667 2 10657 99568 2.003 299.003 150.503 15050.3003 2.003 299.003 150.503 15050.30029 2.00300 299.00300 150.50300 15050.30000 2020-01-01 2020-01-02 2020-01-01 00:11:07 2020-01-02 03:39:28 2020-01-01 00:11:07.000 2020-01-02 03:39:28.000 667 99568 50117.5 5011750 667 99568 50117.5 5011750 -32503 32635 4897.66 489766 -128 123 -2.18 -218 -668 2 10658 99569 2.006 299.006 150.506 15050.6006 2.006 299.006 150.506 15050.60089 2.00600 299.00600 150.50600 15050.60000 2020-01-01 2020-01-02 2020-01-01 00:11:08 2020-01-02 03:39:29 2020-01-01 00:11:08.000 2020-01-02 03:39:29.000 668 99569 50118.5 5011850 668 99569 50118.5 5011850 -32502 32636 4898.66 489866 -127 124 -1.18 -118 -669 2 10659 99570 2.009 299.009 150.509 15050.9009 2.009 299.009 150.509 15050.90057 2.00900 299.00900 150.50900 15050.90000 2020-01-01 2020-01-02 2020-01-01 00:11:09 2020-01-02 03:39:30 2020-01-01 00:11:09.000 2020-01-02 03:39:30.000 669 99570 50119.5 5011950 669 99570 50119.5 5011950 -32501 32637 4899.66 489966 -126 125 -0.18 -18 -67 2 10057 99967 0.2012 300.2012 150.2012 15170.32132 0.2012 300.2012 150.2012 15170.32142 0.20120 300.20120 150.20120 15170.32120 2020-01-01 2020-01-02 2020-01-01 00:01:07 2020-01-02 03:46:07 2020-01-01 00:01:07.000 2020-01-02 03:46:07.000 67 99967 50017 5051717 67 99967 50017 5051717 -32502 32433 4596.009900990099 464197 -128 127 -1.8514851485148516 -187 -670 2 10660 99571 2.01201 299.01201 150.51201 15051.2012 2.01201 299.01202 150.51201 15051.20117 2.01201 299.01201 150.51201 15051.20100 2020-01-01 2020-01-02 2020-01-01 00:11:10 2020-01-02 03:39:31 2020-01-01 00:11:10.000 2020-01-02 03:39:31.000 670 99571 50120.5 5012050 670 99571 50120.5 5012050 -32500 32638 4900.66 490066 -125 126 0.82 82 -671 2 10661 99572 2.01501 299.01501 150.51501 15051.5015 2.01501 299.015 150.51501 15051.50146 2.01501 299.01501 150.51501 15051.50100 2020-01-01 2020-01-02 2020-01-01 00:11:11 2020-01-02 03:39:32 2020-01-01 00:11:11.000 2020-01-02 03:39:32.000 671 99572 50121.5 5012150 671 99572 50121.5 5012150 -32499 32639 4901.66 490166 -124 127 1.82 182 -672 2 10662 99573 2.01801 299.01801 150.51801 15051.8018 2.01801 299.018 150.51801 15051.80176 2.01801 299.01801 150.51801 15051.80100 2020-01-01 2020-01-02 2020-01-01 00:11:12 2020-01-02 03:39:33 2020-01-01 00:11:12.000 2020-01-02 03:39:33.000 672 99573 50122.5 5012250 672 99573 50122.5 5012250 -32498 32640 4902.66 490266 -128 127 0.26 26 -673 2 10663 99574 2.02102 299.02102 150.52102 15052.1021 2.02102 299.02103 150.52102 15052.1024 2.02102 299.02102 150.52102 15052.10200 2020-01-01 2020-01-02 2020-01-01 00:11:13 2020-01-02 03:39:34 2020-01-01 00:11:13.000 2020-01-02 03:39:34.000 673 99574 50123.5 5012350 673 99574 50123.5 5012350 -32497 32641 4903.66 490366 -128 123 -1.3 -130 -674 2 10664 99575 2.02402 299.02402 150.52402 15052.4024 2.02402 299.02402 150.52402 15052.40204 2.02402 299.02402 150.52402 15052.40200 2020-01-01 2020-01-02 2020-01-01 00:11:14 2020-01-02 03:39:35 2020-01-01 00:11:14.000 2020-01-02 03:39:35.000 674 99575 50124.5 5012450 674 99575 50124.5 5012450 -32496 32642 4904.66 490466 -127 124 -0.3 -30 -675 2 10665 99576 2.02702 299.02702 150.52702 15052.7027 2.02702 299.02704 150.52702 15052.70264 2.02702 299.02702 150.52702 15052.70200 2020-01-01 2020-01-02 2020-01-01 00:11:15 2020-01-02 03:39:36 2020-01-01 00:11:15.000 2020-01-02 03:39:36.000 675 99576 50125.5 5012550 675 99576 50125.5 5012550 -32495 32643 4905.66 490566 -126 125 0.7 70 -676 2 10666 99577 2.03003 299.03003 150.53003 15053.003 2.03003 299.03003 150.53002 15053.00293 2.03003 299.03003 150.53003 15053.00300 2020-01-01 2020-01-02 2020-01-01 00:11:16 2020-01-02 03:39:37 2020-01-01 00:11:16.000 2020-01-02 03:39:37.000 676 99577 50126.5 5012650 676 99577 50126.5 5012650 -32494 32644 4906.66 490666 -125 126 1.7 170 +659 2 10649 99560 1.97897 298.97897 150.47897 15047.89789 1.97897 298.97897 150.47897 15047.8976 1.97897 298.97897 150.4789700000001 15047.89700 2020-01-01 2020-01-02 2020-01-01 00:10:59 2020-01-02 03:39:20 2020-01-01 00:10:59.000 2020-01-02 03:39:20.000 659 99560 50109.5 5010950 659 99560 50109.5 5010950 -32511 32627 4889.66 488966 -128 127 2.62 262 +66 2 10056 99966 0.19819 300.19819 150.19819 15170.01801 0.19819 300.1982 150.19819 15170.01808 0.19819 300.19819 150.19818999999987 15170.01719 2020-01-01 2020-01-02 2020-01-01 00:01:06 2020-01-02 03:46:06 2020-01-01 00:01:06.000 2020-01-02 03:46:06.000 66 99966 50016 5051616 66 99966 50016 5051616 -32503 32432 4595.009900990099 464096 -128 127 -0.31683168316831684 -32 +660 2 10650 99561 1.98198 298.98198 150.48198 15048.19819 1.98198 298.982 150.48198 15048.19822 1.98198 298.98198 150.48197999999996 15048.19800 2020-01-01 2020-01-02 2020-01-01 00:11:00 2020-01-02 03:39:21 2020-01-01 00:11:00.000 2020-01-02 03:39:21.000 660 99561 50110.5 5011050 660 99561 50110.5 5011050 -32510 32628 4890.66 489066 -128 127 1.06 106 +661 2 10651 99562 1.98498 298.98498 150.48498 15048.49849 1.98498 298.985 150.48498 15048.49853 1.98498 298.98498 150.4849799999999 15048.49800 2020-01-01 2020-01-02 2020-01-01 00:11:01 2020-01-02 03:39:22 2020-01-01 00:11:01.000 2020-01-02 03:39:22.000 661 99562 50111.5 5011150 661 99562 50111.5 5011150 -32509 32629 4891.66 489166 -128 124 -0.5 -50 +662 2 10652 99563 1.98798 298.98798 150.48798 15048.79879 1.98798 298.98798 150.48798 15048.79882 1.98798 298.98798 150.4879799999999 15048.79800 2020-01-01 2020-01-02 2020-01-01 00:11:02 2020-01-02 03:39:23 2020-01-01 00:11:02.000 2020-01-02 03:39:23.000 662 99563 50112.5 5011250 662 99563 50112.5 5011250 -32508 32630 4892.66 489266 -127 125 0.5 50 +663 2 10653 99564 1.99099 298.99099 150.49099 15049.09909 1.99099 298.991 150.49099 15049.09942 1.99099 298.99099 150.49099000000015 15049.09900 2020-01-01 2020-01-02 2020-01-01 00:11:03 2020-01-02 03:39:24 2020-01-01 00:11:03.000 2020-01-02 03:39:24.000 663 99564 50113.5 5011350 663 99564 50113.5 5011350 -32507 32631 4893.66 489366 -126 126 1.5 150 +664 2 10654 99565 1.99399 298.99399 150.49399 15049.39939 1.99399 298.994 150.49399 15049.39911 1.99399 298.99399 150.49399000000014 15049.39900 2020-01-01 2020-01-02 2020-01-01 00:11:04 2020-01-02 03:39:25 2020-01-01 00:11:04.000 2020-01-02 03:39:25.000 664 99565 50114.5 5011450 664 99565 50114.5 5011450 -32506 32632 4894.66 489466 -125 127 2.5 250 +665 2 10655 99566 1.99699 298.99699 150.49699 15049.69969 1.99699 298.997 150.49699 15049.6997 1.99699 298.99699 150.4969899999998 15049.69900 2020-01-01 2020-01-02 2020-01-01 00:11:05 2020-01-02 03:39:26 2020-01-01 00:11:05.000 2020-01-02 03:39:26.000 665 99566 50115.5 5011550 665 99566 50115.5 5011550 -32505 32633 4895.66 489566 -128 127 0.94 94 +666 2 10656 99567 2 299 150.5 15050 2 299 150.5 15050 2.00000 299.00000 150.5 15050.00000 2020-01-01 2020-01-02 2020-01-01 00:11:06 2020-01-02 03:39:27 2020-01-01 00:11:06.000 2020-01-02 03:39:27.000 666 99567 50116.5 5011650 666 99567 50116.5 5011650 -32504 32634 4896.66 489666 -128 127 -0.62 -62 +667 2 10657 99568 2.003 299.003 150.503 15050.3003 2.003 299.003 150.503 15050.30029 2.00300 299.00300 150.50300000000004 15050.30000 2020-01-01 2020-01-02 2020-01-01 00:11:07 2020-01-02 03:39:28 2020-01-01 00:11:07.000 2020-01-02 03:39:28.000 667 99568 50117.5 5011750 667 99568 50117.5 5011750 -32503 32635 4897.66 489766 -128 123 -2.18 -218 +668 2 10658 99569 2.006 299.006 150.506 15050.6006 2.006 299.006 150.506 15050.60089 2.00600 299.00600 150.50599999999991 15050.60000 2020-01-01 2020-01-02 2020-01-01 00:11:08 2020-01-02 03:39:29 2020-01-01 00:11:08.000 2020-01-02 03:39:29.000 668 99569 50118.5 5011850 668 99569 50118.5 5011850 -32502 32636 4898.66 489866 -127 124 -1.18 -118 +669 2 10659 99570 2.009 299.009 150.509 15050.9009 2.009 299.009 150.509 15050.90057 2.00900 299.00900 150.509 15050.90000 2020-01-01 2020-01-02 2020-01-01 00:11:09 2020-01-02 03:39:30 2020-01-01 00:11:09.000 2020-01-02 03:39:30.000 669 99570 50119.5 5011950 669 99570 50119.5 5011950 -32501 32637 4899.66 489966 -126 125 -0.18 -18 +67 2 10057 99967 0.2012 300.2012 150.2012 15170.32132 0.2012 300.2012 150.2012 15170.32142 0.20120 300.20120 150.20120000000003 15170.32120 2020-01-01 2020-01-02 2020-01-01 00:01:07 2020-01-02 03:46:07 2020-01-01 00:01:07.000 2020-01-02 03:46:07.000 67 99967 50017 5051717 67 99967 50017 5051717 -32502 32433 4596.009900990099 464197 -128 127 -1.8514851485148516 -187 +670 2 10660 99571 2.01201 299.01201 150.51201 15051.2012 2.01201 299.01202 150.51201 15051.20117 2.01201 299.01201 150.51201000000015 15051.20100 2020-01-01 2020-01-02 2020-01-01 00:11:10 2020-01-02 03:39:31 2020-01-01 00:11:10.000 2020-01-02 03:39:31.000 670 99571 50120.5 5012050 670 99571 50120.5 5012050 -32500 32638 4900.66 490066 -125 126 0.82 82 +671 2 10661 99572 2.01501 299.01501 150.51501 15051.5015 2.01501 299.015 150.51501 15051.50146 2.01501 299.01501 150.51500999999985 15051.50100 2020-01-01 2020-01-02 2020-01-01 00:11:11 2020-01-02 03:39:32 2020-01-01 00:11:11.000 2020-01-02 03:39:32.000 671 99572 50121.5 5012150 671 99572 50121.5 5012150 -32499 32639 4901.66 490166 -124 127 1.82 182 +672 2 10662 99573 2.01801 299.01801 150.51801 15051.8018 2.01801 299.018 150.51801 15051.80176 2.01801 299.01801 150.51800999999986 15051.80100 2020-01-01 2020-01-02 2020-01-01 00:11:12 2020-01-02 03:39:33 2020-01-01 00:11:12.000 2020-01-02 03:39:33.000 672 99573 50122.5 5012250 672 99573 50122.5 5012250 -32498 32640 4902.66 490266 -128 127 0.26 26 +673 2 10663 99574 2.02102 299.02102 150.52102 15052.1021 2.02102 299.02103 150.52102 15052.1024 2.02102 299.02102 150.5210200000001 15052.10200 2020-01-01 2020-01-02 2020-01-01 00:11:13 2020-01-02 03:39:34 2020-01-01 00:11:13.000 2020-01-02 03:39:34.000 673 99574 50123.5 5012350 673 99574 50123.5 5012350 -32497 32641 4903.66 490366 -128 123 -1.3 -130 +674 2 10664 99575 2.02402 299.02402 150.52402 15052.4024 2.02402 299.02402 150.52402 15052.40204 2.02402 299.02402 150.52402000000006 15052.40200 2020-01-01 2020-01-02 2020-01-01 00:11:14 2020-01-02 03:39:35 2020-01-01 00:11:14.000 2020-01-02 03:39:35.000 674 99575 50124.5 5012450 674 99575 50124.5 5012450 -32496 32642 4904.66 490466 -127 124 -0.3 -30 +675 2 10665 99576 2.02702 299.02702 150.52702 15052.7027 2.02702 299.02704 150.52702 15052.70264 2.02702 299.02702 150.5270199999999 15052.70200 2020-01-01 2020-01-02 2020-01-01 00:11:15 2020-01-02 03:39:36 2020-01-01 00:11:15.000 2020-01-02 03:39:36.000 675 99576 50125.5 5012550 675 99576 50125.5 5012550 -32495 32643 4905.66 490566 -126 125 0.7 70 +676 2 10666 99577 2.03003 299.03003 150.53003 15053.003 2.03003 299.03003 150.53002 15053.00293 2.03003 299.03003 150.53002999999993 15053.00300 2020-01-01 2020-01-02 2020-01-01 00:11:16 2020-01-02 03:39:37 2020-01-01 00:11:16.000 2020-01-02 03:39:37.000 676 99577 50126.5 5012650 676 99577 50126.5 5012650 -32494 32644 4906.66 490666 -125 126 1.7 170 677 2 10667 99578 2.03303 299.03303 150.53303 15053.3033 2.03303 299.03302 150.53303 15053.30323 2.03303 299.03303 150.53303 15053.30300 2020-01-01 2020-01-02 2020-01-01 00:11:17 2020-01-02 03:39:38 2020-01-01 00:11:17.000 2020-01-02 03:39:38.000 677 99578 50127.5 5012750 677 99578 50127.5 5012750 -32493 32645 4907.66 490766 -124 127 2.7 270 -678 2 10668 99579 2.03603 299.03603 150.53603 15053.6036 2.03603 299.03604 150.53603 15053.60387 2.03603 299.03603 150.53603 15053.60300 2020-01-01 2020-01-02 2020-01-01 00:11:18 2020-01-02 03:39:39 2020-01-01 00:11:18.000 2020-01-02 03:39:39.000 678 99579 50128.5 5012850 678 99579 50128.5 5012850 -32492 32646 4908.66 490866 -128 127 1.14 114 -679 2 10669 99580 2.03903 299.03903 150.53903 15053.9039 2.03903 299.03903 150.53903 15053.90351 2.03903 299.03903 150.53903 15053.90300 2020-01-01 2020-01-02 2020-01-01 00:11:19 2020-01-02 03:39:40 2020-01-01 00:11:19.000 2020-01-02 03:39:40.000 679 99580 50129.5 5012950 679 99580 50129.5 5012950 -32491 32647 4909.66 490966 -128 123 -0.42 -42 -68 2 10058 99968 0.2042 300.2042 150.2042 15170.62462 0.2042 300.2042 150.2042 15170.62457 0.20420 300.20420 150.20420 15170.62420 2020-01-01 2020-01-02 2020-01-01 00:01:08 2020-01-02 03:46:08 2020-01-01 00:01:08.000 2020-01-02 03:46:08.000 68 99968 50018 5051818 68 99968 50018 5051818 -32501 32434 4597.009900990099 464298 -128 124 -3.386138613861386 -342 -680 2 10670 99581 2.04204 299.04204 150.54204 15054.2042 2.04204 299.04205 150.54204 15054.20426 2.04204 299.04204 150.54204 15054.20400 2020-01-01 2020-01-02 2020-01-01 00:11:20 2020-01-02 03:39:41 2020-01-01 00:11:20.000 2020-01-02 03:39:41.000 680 99581 50130.5 5013050 680 99581 50130.5 5013050 -32490 32648 4910.66 491066 -127 124 0.58 58 -681 2 10671 99582 2.04504 299.04504 150.54504 15054.5045 2.04504 299.04504 150.54504 15054.5044 2.04504 299.04504 150.54504 15054.50400 2020-01-01 2020-01-02 2020-01-01 00:11:21 2020-01-02 03:39:42 2020-01-01 00:11:21.000 2020-01-02 03:39:42.000 681 99582 50131.5 5013150 681 99582 50131.5 5013150 -32489 32649 4911.66 491166 -126 125 1.58 158 -682 2 10672 99583 2.04804 299.04804 150.54804 15054.8048 2.04804 299.04803 150.54804 15054.80474 2.04804 299.04804 150.54804 15054.80400 2020-01-01 2020-01-02 2020-01-01 00:11:22 2020-01-02 03:39:43 2020-01-01 00:11:22.000 2020-01-02 03:39:43.000 682 99583 50132.5 5013250 682 99583 50132.5 5013250 -32488 32650 4912.66 491266 -125 126 2.58 258 +678 2 10668 99579 2.03603 299.03603 150.53603 15053.6036 2.03603 299.03604 150.53603 15053.60387 2.03603 299.03603 150.53602999999993 15053.60300 2020-01-01 2020-01-02 2020-01-01 00:11:18 2020-01-02 03:39:39 2020-01-01 00:11:18.000 2020-01-02 03:39:39.000 678 99579 50128.5 5012850 678 99579 50128.5 5012850 -32492 32646 4908.66 490866 -128 127 1.14 114 +679 2 10669 99580 2.03903 299.03903 150.53903 15053.9039 2.03903 299.03903 150.53903 15053.90351 2.03903 299.03903 150.53902999999994 15053.90300 2020-01-01 2020-01-02 2020-01-01 00:11:19 2020-01-02 03:39:40 2020-01-01 00:11:19.000 2020-01-02 03:39:40.000 679 99580 50129.5 5012950 679 99580 50129.5 5012950 -32491 32647 4909.66 490966 -128 123 -0.42 -42 +68 2 10058 99968 0.2042 300.2042 150.2042 15170.62462 0.2042 300.2042 150.2042 15170.62457 0.20420 300.20420 150.2042000000001 15170.62420 2020-01-01 2020-01-02 2020-01-01 00:01:08 2020-01-02 03:46:08 2020-01-01 00:01:08.000 2020-01-02 03:46:08.000 68 99968 50018 5051818 68 99968 50018 5051818 -32501 32434 4597.009900990099 464298 -128 124 -3.386138613861386 -342 +680 2 10670 99581 2.04204 299.04204 150.54204 15054.2042 2.04204 299.04205 150.54204 15054.20426 2.04204 299.04204 150.5420400000001 15054.20400 2020-01-01 2020-01-02 2020-01-01 00:11:20 2020-01-02 03:39:41 2020-01-01 00:11:20.000 2020-01-02 03:39:41.000 680 99581 50130.5 5013050 680 99581 50130.5 5013050 -32490 32648 4910.66 491066 -127 124 0.58 58 +681 2 10671 99582 2.04504 299.04504 150.54504 15054.5045 2.04504 299.04504 150.54504 15054.5044 2.04504 299.04504 150.5450400000002 15054.50400 2020-01-01 2020-01-02 2020-01-01 00:11:21 2020-01-02 03:39:42 2020-01-01 00:11:21.000 2020-01-02 03:39:42.000 681 99582 50131.5 5013150 681 99582 50131.5 5013150 -32489 32649 4911.66 491166 -126 125 1.58 158 +682 2 10672 99583 2.04804 299.04804 150.54804 15054.8048 2.04804 299.04803 150.54804 15054.80474 2.04804 299.04804 150.54803999999984 15054.80400 2020-01-01 2020-01-02 2020-01-01 00:11:22 2020-01-02 03:39:43 2020-01-01 00:11:22.000 2020-01-02 03:39:43.000 682 99583 50132.5 5013250 682 99583 50132.5 5013250 -32488 32650 4912.66 491266 -125 126 2.58 258 683 2 10673 99584 2.05105 299.05105 150.55105 15055.1051 2.05105 299.05106 150.55105 15055.10533 2.05105 299.05105 150.55105 15055.10500 2020-01-01 2020-01-02 2020-01-01 00:11:23 2020-01-02 03:39:44 2020-01-01 00:11:23.000 2020-01-02 03:39:44.000 683 99584 50133.5 5013350 683 99584 50133.5 5013350 -32487 32651 4913.66 491366 -124 127 3.58 358 -684 2 10674 99585 2.05405 299.05405 150.55405 15055.4054 2.05405 299.05405 150.55404 15055.40498 2.05405 299.05405 150.55405 15055.40500 2020-01-01 2020-01-02 2020-01-01 00:11:24 2020-01-02 03:39:45 2020-01-01 00:11:24.000 2020-01-02 03:39:45.000 684 99585 50134.5 5013450 684 99585 50134.5 5013450 -32486 32652 4914.66 491466 -128 127 2.02 202 -685 2 10675 99586 2.05705 299.05705 150.55705 15055.7057 2.05705 299.05707 150.55705 15055.70573 2.05705 299.05705 150.55705 15055.70500 2020-01-01 2020-01-02 2020-01-01 00:11:25 2020-01-02 03:39:46 2020-01-01 00:11:25.000 2020-01-02 03:39:46.000 685 99586 50135.5 5013550 685 99586 50135.5 5013550 -32485 32653 4915.66 491566 -128 127 0.46 46 -686 2 10676 99587 2.06006 299.06006 150.56006 15056.006 2.06006 299.06006 150.56005 15056.00587 2.06006 299.06006 150.56006 15056.00600 2020-01-01 2020-01-02 2020-01-01 00:11:26 2020-01-02 03:39:47 2020-01-01 00:11:26.000 2020-01-02 03:39:47.000 686 99587 50136.5 5013650 686 99587 50136.5 5013650 -32484 32654 4916.66 491666 -128 124 -1.1 -110 -687 2 10677 99588 2.06306 299.06306 150.56306 15056.3063 2.06306 299.06305 150.56306 15056.30621 2.06306 299.06306 150.56306 15056.30600 2020-01-01 2020-01-02 2020-01-01 00:11:27 2020-01-02 03:39:48 2020-01-01 00:11:27.000 2020-01-02 03:39:48.000 687 99588 50137.5 5013750 687 99588 50137.5 5013750 -32483 32655 4917.66 491766 -127 125 -0.1 -10 -688 2 10678 99589 2.06606 299.06606 150.56606 15056.6066 2.06606 299.06607 150.56606 15056.60681 2.06606 299.06606 150.56606 15056.60600 2020-01-01 2020-01-02 2020-01-01 00:11:28 2020-01-02 03:39:49 2020-01-01 00:11:28.000 2020-01-02 03:39:49.000 688 99589 50138.5 5013850 688 99589 50138.5 5013850 -32482 32656 4918.66 491866 -126 126 0.9 90 -689 2 10679 99590 2.06906 299.06906 150.56906 15056.9069 2.06906 299.06906 150.56907 15056.9071 2.06906 299.06906 150.56906 15056.90600 2020-01-01 2020-01-02 2020-01-01 00:11:29 2020-01-02 03:39:50 2020-01-01 00:11:29.000 2020-01-02 03:39:50.000 689 99590 50139.5 5013950 689 99590 50139.5 5013950 -32481 32657 4919.66 491966 -125 127 1.9 190 -69 2 10059 99969 0.2072 300.2072 150.2072 15170.92792 0.2072 300.2072 150.20721 15170.92832 0.20720 300.20720 150.20720 15170.92720 2020-01-01 2020-01-02 2020-01-01 00:01:09 2020-01-02 03:46:09 2020-01-01 00:01:09.000 2020-01-02 03:46:09.000 69 99969 50019 5051919 69 99969 50019 5051919 -32500 32435 4598.009900990099 464399 -127 125 -2.386138613861386 -241 -690 2 10680 99591 2.07207 299.07207 150.57207 15057.2072 2.07207 299.07208 150.57207 15057.2072 2.07207 299.07207 150.57207 15057.20700 2020-01-01 2020-01-02 2020-01-01 00:11:30 2020-01-02 03:39:51 2020-01-01 00:11:30.000 2020-01-02 03:39:51.000 690 99591 50140.5 5014050 690 99591 50140.5 5014050 -32480 32658 4920.66 492066 -128 127 0.34 34 -691 2 10681 99592 2.07507 299.07507 150.57507 15057.5075 2.07507 299.07507 150.57507 15057.50734 2.07507 299.07507 150.57507 15057.50700 2020-01-01 2020-01-02 2020-01-01 00:11:31 2020-01-02 03:39:52 2020-01-01 00:11:31.000 2020-01-02 03:39:52.000 691 99592 50141.5 5014150 691 99592 50141.5 5014150 -32479 32659 4921.66 492166 -128 127 -1.22 -122 -692 2 10682 99593 2.07807 299.07807 150.57807 15057.8078 2.07807 299.07806 150.57807 15057.80767 2.07807 299.07807 150.57807 15057.80700 2020-01-01 2020-01-02 2020-01-01 00:11:32 2020-01-02 03:39:53 2020-01-01 00:11:32.000 2020-01-02 03:39:53.000 692 99593 50142.5 5014250 692 99593 50142.5 5014250 -32478 32660 4922.66 492266 -128 123 -2.78 -278 -693 2 10683 99594 2.08108 299.08108 150.58108 15058.1081 2.08108 299.0811 150.58108 15058.10827 2.08108 299.08108 150.58108 15058.10800 2020-01-01 2020-01-02 2020-01-01 00:11:33 2020-01-02 03:39:54 2020-01-01 00:11:33.000 2020-01-02 03:39:54.000 693 99594 50143.5 5014350 693 99594 50143.5 5014350 -32477 32661 4923.66 492366 -127 124 -1.78 -178 -694 2 10684 99595 2.08408 299.08408 150.58408 15058.4084 2.08408 299.08408 150.58408 15058.40857 2.08408 299.08408 150.58408 15058.40800 2020-01-01 2020-01-02 2020-01-01 00:11:34 2020-01-02 03:39:55 2020-01-01 00:11:34.000 2020-01-02 03:39:55.000 694 99595 50144.5 5014450 694 99595 50144.5 5014450 -32476 32662 4924.66 492466 -126 125 -0.78 -78 -695 2 10685 99596 2.08708 299.08708 150.58708 15058.7087 2.08708 299.0871 150.58708 15058.70867 2.08708 299.08708 150.58708 15058.70800 2020-01-01 2020-01-02 2020-01-01 00:11:35 2020-01-02 03:39:56 2020-01-01 00:11:35.000 2020-01-02 03:39:56.000 695 99596 50145.5 5014550 695 99596 50145.5 5014550 -32475 32663 4925.66 492566 -125 126 0.22 22 -696 2 10686 99597 2.09009 299.09009 150.59009 15059.009 2.09009 299.0901 150.59008 15059.00885 2.09009 299.09009 150.59009 15059.00900 2020-01-01 2020-01-02 2020-01-01 00:11:36 2020-01-02 03:39:57 2020-01-01 00:11:36.000 2020-01-02 03:39:57.000 696 99597 50146.5 5014650 696 99597 50146.5 5014650 -32474 32664 4926.66 492666 -124 127 1.22 122 -697 2 10687 99598 2.09309 299.09309 150.59309 15059.3093 2.09309 299.09308 150.59309 15059.30915 2.09309 299.09309 150.59309 15059.30900 2020-01-01 2020-01-02 2020-01-01 00:11:37 2020-01-02 03:39:58 2020-01-01 00:11:37.000 2020-01-02 03:39:58.000 697 99598 50147.5 5014750 697 99598 50147.5 5014750 -32473 32665 4927.66 492766 -128 127 -0.34 -34 -698 2 10688 99599 2.09609 299.09609 150.59609 15059.6096 2.09609 299.0961 150.59609 15059.6099 2.09609 299.09609 150.59609 15059.60900 2020-01-01 2020-01-02 2020-01-01 00:11:38 2020-01-02 03:39:59 2020-01-01 00:11:38.000 2020-01-02 03:39:59.000 698 99599 50148.5 5014850 698 99599 50148.5 5014850 -32472 32666 4928.66 492866 -128 123 -1.9 -190 -699 2 10689 99600 2.09909 299.09909 150.59909 15059.9099 2.09909 299.0991 150.5991 15059.91003 2.09909 299.09909 150.59909 15059.90900 2020-01-01 2020-01-02 2020-01-01 00:11:39 2020-01-02 03:40:00 2020-01-01 00:11:39.000 2020-01-02 03:40:00.000 699 99600 50149.5 5014950 699 99600 50149.5 5014950 -32471 32667 4929.66 492966 -127 124 -0.9 -90 -7 2 1006 9997 0.02102 300.02102 150.02102 15152.12312 0.02102 300.02103 150.02102 15152.12342 0.02102 300.02102 150.02102 15152.12302 2020-01-01 2020-01-02 2020-01-01 00:00:07 2020-01-02 03:45:07 2020-01-01 00:00:07.000 2020-01-02 03:45:07.000 7 99907 49957 5045657 7 99907 49957 5045657 -32562 32373 4536.009900990099 458137 -126 125 -1.0198019801980198 -103 -70 2 10060 99970 0.21021 300.21021 150.21021 15171.23123 0.21021 300.2102 150.2102 15171.23097 0.21021 300.21021 150.21021 15171.23121 2020-01-01 2020-01-02 2020-01-01 00:01:10 2020-01-02 03:46:10 2020-01-01 00:01:10.000 2020-01-02 03:46:10.000 70 99970 50020 5052020 70 99970 50020 5052020 -32499 32436 4599.009900990099 464500 -126 126 -1.386138613861386 -140 -700 2 10690 99601 2.1021 299.1021 150.6021 15060.21021 2.1021 299.1021 150.6021 15060.21014 2.10210 299.10210 150.60210 15060.21000 2020-01-01 2020-01-02 2020-01-01 00:11:40 2020-01-02 03:40:01 2020-01-01 00:11:40.000 2020-01-02 03:40:01.000 700 99601 50150.5 5015050 700 99601 50150.5 5015050 -32470 32668 4930.66 493066 -126 125 0.1 10 -701 2 10691 99602 2.1051 299.1051 150.6051 15060.51051 2.1051 299.1051 150.6051 15060.51031 2.10510 299.10510 150.60510 15060.51000 2020-01-01 2020-01-02 2020-01-01 00:11:41 2020-01-02 03:40:02 2020-01-01 00:11:41.000 2020-01-02 03:40:02.000 701 99602 50151.5 5015150 701 99602 50151.5 5015150 -32469 32669 4931.66 493166 -125 126 1.1 110 -702 2 10692 99603 2.1081 299.1081 150.6081 15060.81081 2.1081 299.1081 150.6081 15060.81062 2.10810 299.10810 150.60810 15060.81000 2020-01-01 2020-01-02 2020-01-01 00:11:42 2020-01-02 03:40:03 2020-01-01 00:11:42.000 2020-01-02 03:40:03.000 702 99603 50152.5 5015250 702 99603 50152.5 5015250 -32468 32670 4932.66 493266 -124 127 2.1 210 -703 2 10693 99604 2.11111 299.11111 150.61111 15061.11111 2.11111 299.1111 150.61111 15061.11137 2.11111 299.11111 150.61111 15061.11100 2020-01-01 2020-01-02 2020-01-01 00:11:43 2020-01-02 03:40:04 2020-01-01 00:11:43.000 2020-01-02 03:40:04.000 703 99604 50153.5 5015350 703 99604 50153.5 5015350 -32467 32671 4933.66 493366 -128 127 0.54 54 -704 2 10694 99605 2.11411 299.11411 150.61411 15061.41141 2.11411 299.1141 150.61411 15061.41151 2.11411 299.11411 150.61411 15061.41100 2020-01-01 2020-01-02 2020-01-01 00:11:44 2020-01-02 03:40:05 2020-01-01 00:11:44.000 2020-01-02 03:40:05.000 704 99605 50154.5 5015450 704 99605 50154.5 5015450 -32466 32672 4934.66 493466 -128 123 -1.02 -102 -705 2 10695 99606 2.11711 299.11711 150.61711 15061.71171 2.11711 299.11713 150.61711 15061.71165 2.11711 299.11711 150.61711 15061.71100 2020-01-01 2020-01-02 2020-01-01 00:11:45 2020-01-02 03:40:06 2020-01-01 00:11:45.000 2020-01-02 03:40:06.000 705 99606 50155.5 5015550 705 99606 50155.5 5015550 -32465 32673 4935.66 493566 -127 124 -0.02 -2 -706 2 10696 99607 2.12012 299.12012 150.62012 15062.01201 2.12012 299.12012 150.62011 15062.01179 2.12012 299.12012 150.62012 15062.01200 2020-01-01 2020-01-02 2020-01-01 00:11:46 2020-01-02 03:40:07 2020-01-01 00:11:46.000 2020-01-02 03:40:07.000 706 99607 50156.5 5015650 706 99607 50156.5 5015650 -32464 32674 4936.66 493666 -126 125 0.98 98 -707 2 10697 99608 2.12312 299.12312 150.62312 15062.31231 2.12312 299.1231 150.62312 15062.31208 2.12312 299.12312 150.62312 15062.31200 2020-01-01 2020-01-02 2020-01-01 00:11:47 2020-01-02 03:40:08 2020-01-01 00:11:47.000 2020-01-02 03:40:08.000 707 99608 50157.5 5015750 707 99608 50157.5 5015750 -32463 32675 4937.66 493766 -125 126 1.98 198 -708 2 10698 99609 2.12612 299.12612 150.62612 15062.61261 2.12612 299.12613 150.62612 15062.61283 2.12612 299.12612 150.62612 15062.61200 2020-01-01 2020-01-02 2020-01-01 00:11:48 2020-01-02 03:40:09 2020-01-01 00:11:48.000 2020-01-02 03:40:09.000 708 99609 50158.5 5015850 708 99609 50158.5 5015850 -32462 32676 4938.66 493866 -124 127 2.98 298 -709 2 10699 99610 2.12912 299.12912 150.62912 15062.91291 2.12912 299.12912 150.62912 15062.91298 2.12912 299.12912 150.62912 15062.91200 2020-01-01 2020-01-02 2020-01-01 00:11:49 2020-01-02 03:40:10 2020-01-01 00:11:49.000 2020-01-02 03:40:10.000 709 99610 50159.5 5015950 709 99610 50159.5 5015950 -32461 32677 4939.66 493966 -128 127 1.42 142 -71 2 10061 99971 0.21321 300.21321 150.21321 15171.53453 0.21321 300.21323 150.21321 15171.5346 0.21321 300.21321 150.21321 15171.53421 2020-01-01 2020-01-02 2020-01-01 00:01:11 2020-01-02 03:46:11 2020-01-01 00:01:11.000 2020-01-02 03:46:11.000 71 99971 50021 5052121 71 99971 50021 5052121 -32498 32437 4600.009900990099 464601 -125 127 -0.38613861386138615 -39 +684 2 10674 99585 2.05405 299.05405 150.55405 15055.4054 2.05405 299.05405 150.55404 15055.40498 2.05405 299.05405 150.55405000000013 15055.40500 2020-01-01 2020-01-02 2020-01-01 00:11:24 2020-01-02 03:39:45 2020-01-01 00:11:24.000 2020-01-02 03:39:45.000 684 99585 50134.5 5013450 684 99585 50134.5 5013450 -32486 32652 4914.66 491466 -128 127 2.02 202 +685 2 10675 99586 2.05705 299.05705 150.55705 15055.7057 2.05705 299.05707 150.55705 15055.70573 2.05705 299.05705 150.55704999999992 15055.70500 2020-01-01 2020-01-02 2020-01-01 00:11:25 2020-01-02 03:39:46 2020-01-01 00:11:25.000 2020-01-02 03:39:46.000 685 99586 50135.5 5013550 685 99586 50135.5 5013550 -32485 32653 4915.66 491566 -128 127 0.46 46 +686 2 10676 99587 2.06006 299.06006 150.56006 15056.006 2.06006 299.06006 150.56005 15056.00587 2.06006 299.06006 150.56005999999988 15056.00600 2020-01-01 2020-01-02 2020-01-01 00:11:26 2020-01-02 03:39:47 2020-01-01 00:11:26.000 2020-01-02 03:39:47.000 686 99587 50136.5 5013650 686 99587 50136.5 5013650 -32484 32654 4916.66 491666 -128 124 -1.1 -110 +687 2 10677 99588 2.06306 299.06306 150.56306 15056.3063 2.06306 299.06305 150.56306 15056.30621 2.06306 299.06306 150.5630600000002 15056.30600 2020-01-01 2020-01-02 2020-01-01 00:11:27 2020-01-02 03:39:48 2020-01-01 00:11:27.000 2020-01-02 03:39:48.000 687 99588 50137.5 5013750 687 99588 50137.5 5013750 -32483 32655 4917.66 491766 -127 125 -0.1 -10 +688 2 10678 99589 2.06606 299.06606 150.56606 15056.6066 2.06606 299.06607 150.56606 15056.60681 2.06606 299.06606 150.56605999999988 15056.60600 2020-01-01 2020-01-02 2020-01-01 00:11:28 2020-01-02 03:39:49 2020-01-01 00:11:28.000 2020-01-02 03:39:49.000 688 99589 50138.5 5013850 688 99589 50138.5 5013850 -32482 32656 4918.66 491866 -126 126 0.9 90 +689 2 10679 99590 2.06906 299.06906 150.56906 15056.9069 2.06906 299.06906 150.56907 15056.9071 2.06906 299.06906 150.56905999999987 15056.90600 2020-01-01 2020-01-02 2020-01-01 00:11:29 2020-01-02 03:39:50 2020-01-01 00:11:29.000 2020-01-02 03:39:50.000 689 99590 50139.5 5013950 689 99590 50139.5 5013950 -32481 32657 4919.66 491966 -125 127 1.9 190 +69 2 10059 99969 0.2072 300.2072 150.2072 15170.92792 0.2072 300.2072 150.20721 15170.92832 0.20720 300.20720 150.20720000000009 15170.92720 2020-01-01 2020-01-02 2020-01-01 00:01:09 2020-01-02 03:46:09 2020-01-01 00:01:09.000 2020-01-02 03:46:09.000 69 99969 50019 5051919 69 99969 50019 5051919 -32500 32435 4598.009900990099 464399 -127 125 -2.386138613861386 -241 +690 2 10680 99591 2.07207 299.07207 150.57207 15057.2072 2.07207 299.07208 150.57207 15057.2072 2.07207 299.07207 150.5720700000001 15057.20700 2020-01-01 2020-01-02 2020-01-01 00:11:30 2020-01-02 03:39:51 2020-01-01 00:11:30.000 2020-01-02 03:39:51.000 690 99591 50140.5 5014050 690 99591 50140.5 5014050 -32480 32658 4920.66 492066 -128 127 0.34 34 +691 2 10681 99592 2.07507 299.07507 150.57507 15057.5075 2.07507 299.07507 150.57507 15057.50734 2.07507 299.07507 150.57507000000012 15057.50700 2020-01-01 2020-01-02 2020-01-01 00:11:31 2020-01-02 03:39:52 2020-01-01 00:11:31.000 2020-01-02 03:39:52.000 691 99592 50141.5 5014150 691 99592 50141.5 5014150 -32479 32659 4921.66 492166 -128 127 -1.22 -122 +692 2 10682 99593 2.07807 299.07807 150.57807 15057.8078 2.07807 299.07806 150.57807 15057.80767 2.07807 299.07807 150.5780699999998 15057.80700 2020-01-01 2020-01-02 2020-01-01 00:11:32 2020-01-02 03:39:53 2020-01-01 00:11:32.000 2020-01-02 03:39:53.000 692 99593 50142.5 5014250 692 99593 50142.5 5014250 -32478 32660 4922.66 492266 -128 123 -2.78 -278 +693 2 10683 99594 2.08108 299.08108 150.58108 15058.1081 2.08108 299.0811 150.58108 15058.10827 2.08108 299.08108 150.58107999999996 15058.10800 2020-01-01 2020-01-02 2020-01-01 00:11:33 2020-01-02 03:39:54 2020-01-01 00:11:33.000 2020-01-02 03:39:54.000 693 99594 50143.5 5014350 693 99594 50143.5 5014350 -32477 32661 4923.66 492366 -127 124 -1.78 -178 +694 2 10684 99595 2.08408 299.08408 150.58408 15058.4084 2.08408 299.08408 150.58408 15058.40857 2.08408 299.08408 150.58408000000003 15058.40800 2020-01-01 2020-01-02 2020-01-01 00:11:34 2020-01-02 03:39:55 2020-01-01 00:11:34.000 2020-01-02 03:39:55.000 694 99595 50144.5 5014450 694 99595 50144.5 5014450 -32476 32662 4924.66 492466 -126 125 -0.78 -78 +695 2 10685 99596 2.08708 299.08708 150.58708 15058.7087 2.08708 299.0871 150.58708 15058.70867 2.08708 299.08708 150.5870799999999 15058.70800 2020-01-01 2020-01-02 2020-01-01 00:11:35 2020-01-02 03:39:56 2020-01-01 00:11:35.000 2020-01-02 03:39:56.000 695 99596 50145.5 5014550 695 99596 50145.5 5014550 -32475 32663 4925.66 492566 -125 126 0.22 22 +696 2 10686 99597 2.09009 299.09009 150.59009 15059.009 2.09009 299.0901 150.59008 15059.00885 2.09009 299.09009 150.59008999999986 15059.00900 2020-01-01 2020-01-02 2020-01-01 00:11:36 2020-01-02 03:39:57 2020-01-01 00:11:36.000 2020-01-02 03:39:57.000 696 99597 50146.5 5014650 696 99597 50146.5 5014650 -32474 32664 4926.66 492666 -124 127 1.22 122 +697 2 10687 99598 2.09309 299.09309 150.59309 15059.3093 2.09309 299.09308 150.59309 15059.30915 2.09309 299.09309 150.59309000000013 15059.30900 2020-01-01 2020-01-02 2020-01-01 00:11:37 2020-01-02 03:39:58 2020-01-01 00:11:37.000 2020-01-02 03:39:58.000 697 99598 50147.5 5014750 697 99598 50147.5 5014750 -32473 32665 4927.66 492766 -128 127 -0.34 -34 +698 2 10688 99599 2.09609 299.09609 150.59609 15059.6096 2.09609 299.0961 150.59609 15059.6099 2.09609 299.09609 150.5960899999998 15059.60900 2020-01-01 2020-01-02 2020-01-01 00:11:38 2020-01-02 03:39:59 2020-01-01 00:11:38.000 2020-01-02 03:39:59.000 698 99599 50148.5 5014850 698 99599 50148.5 5014850 -32472 32666 4928.66 492866 -128 123 -1.9 -190 +699 2 10689 99600 2.09909 299.09909 150.59909 15059.9099 2.09909 299.0991 150.5991 15059.91003 2.09909 299.09909 150.59908999999988 15059.90900 2020-01-01 2020-01-02 2020-01-01 00:11:39 2020-01-02 03:40:00 2020-01-01 00:11:39.000 2020-01-02 03:40:00.000 699 99600 50149.5 5014950 699 99600 50149.5 5014950 -32471 32667 4929.66 492966 -127 124 -0.9 -90 +7 2 1006 9997 0.02102 300.02102 150.02102 15152.12312 0.02102 300.02103 150.02102 15152.12342 0.02102 300.02102 150.0210200000001 15152.12302 2020-01-01 2020-01-02 2020-01-01 00:00:07 2020-01-02 03:45:07 2020-01-01 00:00:07.000 2020-01-02 03:45:07.000 7 99907 49957 5045657 7 99907 49957 5045657 -32562 32373 4536.009900990099 458137 -126 125 -1.0198019801980198 -103 +70 2 10060 99970 0.21021 300.21021 150.21021 15171.23123 0.21021 300.2102 150.2102 15171.23097 0.21021 300.21021 150.2102099999999 15171.23121 2020-01-01 2020-01-02 2020-01-01 00:01:10 2020-01-02 03:46:10 2020-01-01 00:01:10.000 2020-01-02 03:46:10.000 70 99970 50020 5052020 70 99970 50020 5052020 -32499 32436 4599.009900990099 464500 -126 126 -1.386138613861386 -140 +700 2 10690 99601 2.1021 299.1021 150.6021 15060.21021 2.1021 299.1021 150.6021 15060.21014 2.10210 299.10210 150.60210000000004 15060.21000 2020-01-01 2020-01-02 2020-01-01 00:11:40 2020-01-02 03:40:01 2020-01-01 00:11:40.000 2020-01-02 03:40:01.000 700 99601 50150.5 5015050 700 99601 50150.5 5015050 -32470 32668 4930.66 493066 -126 125 0.1 10 +701 2 10691 99602 2.1051 299.1051 150.6051 15060.51051 2.1051 299.1051 150.6051 15060.51031 2.10510 299.10510 150.60510000000005 15060.51000 2020-01-01 2020-01-02 2020-01-01 00:11:41 2020-01-02 03:40:02 2020-01-01 00:11:41.000 2020-01-02 03:40:02.000 701 99602 50151.5 5015150 701 99602 50151.5 5015150 -32469 32669 4931.66 493166 -125 126 1.1 110 +702 2 10692 99603 2.1081 299.1081 150.6081 15060.81081 2.1081 299.1081 150.6081 15060.81062 2.10810 299.10810 150.60809999999998 15060.81000 2020-01-01 2020-01-02 2020-01-01 00:11:42 2020-01-02 03:40:03 2020-01-01 00:11:42.000 2020-01-02 03:40:03.000 702 99603 50152.5 5015250 702 99603 50152.5 5015250 -32468 32670 4932.66 493266 -124 127 2.1 210 +703 2 10693 99604 2.11111 299.11111 150.61111 15061.11111 2.11111 299.1111 150.61111 15061.11137 2.11111 299.11111 150.61110999999988 15061.11100 2020-01-01 2020-01-02 2020-01-01 00:11:43 2020-01-02 03:40:04 2020-01-01 00:11:43.000 2020-01-02 03:40:04.000 703 99604 50153.5 5015350 703 99604 50153.5 5015350 -32467 32671 4933.66 493366 -128 127 0.54 54 +704 2 10694 99605 2.11411 299.11411 150.61411 15061.41141 2.11411 299.1141 150.61411 15061.41151 2.11411 299.11411 150.6141100000002 15061.41100 2020-01-01 2020-01-02 2020-01-01 00:11:44 2020-01-02 03:40:05 2020-01-01 00:11:44.000 2020-01-02 03:40:05.000 704 99605 50154.5 5015450 704 99605 50154.5 5015450 -32466 32672 4934.66 493466 -128 123 -1.02 -102 +705 2 10695 99606 2.11711 299.11711 150.61711 15061.71171 2.11711 299.11713 150.61711 15061.71165 2.11711 299.11711 150.6171099999999 15061.71100 2020-01-01 2020-01-02 2020-01-01 00:11:45 2020-01-02 03:40:06 2020-01-01 00:11:45.000 2020-01-02 03:40:06.000 705 99606 50155.5 5015550 705 99606 50155.5 5015550 -32465 32673 4935.66 493566 -127 124 -0.02 -2 +706 2 10696 99607 2.12012 299.12012 150.62012 15062.01201 2.12012 299.12012 150.62011 15062.01179 2.12012 299.12012 150.6201199999998 15062.01200 2020-01-01 2020-01-02 2020-01-01 00:11:46 2020-01-02 03:40:07 2020-01-01 00:11:46.000 2020-01-02 03:40:07.000 706 99607 50156.5 5015650 706 99607 50156.5 5015650 -32464 32674 4936.66 493666 -126 125 0.98 98 +707 2 10697 99608 2.12312 299.12312 150.62312 15062.31231 2.12312 299.1231 150.62312 15062.31208 2.12312 299.12312 150.62312000000014 15062.31200 2020-01-01 2020-01-02 2020-01-01 00:11:47 2020-01-02 03:40:08 2020-01-01 00:11:47.000 2020-01-02 03:40:08.000 707 99608 50157.5 5015750 707 99608 50157.5 5015750 -32463 32675 4937.66 493766 -125 126 1.98 198 +708 2 10698 99609 2.12612 299.12612 150.62612 15062.61261 2.12612 299.12613 150.62612 15062.61283 2.12612 299.12612 150.62612000000013 15062.61200 2020-01-01 2020-01-02 2020-01-01 00:11:48 2020-01-02 03:40:09 2020-01-01 00:11:48.000 2020-01-02 03:40:09.000 708 99609 50158.5 5015850 708 99609 50158.5 5015850 -32462 32676 4938.66 493866 -124 127 2.98 298 +709 2 10699 99610 2.12912 299.12912 150.62912 15062.91291 2.12912 299.12912 150.62912 15062.91298 2.12912 299.12912 150.6291199999998 15062.91200 2020-01-01 2020-01-02 2020-01-01 00:11:49 2020-01-02 03:40:10 2020-01-01 00:11:49.000 2020-01-02 03:40:10.000 709 99610 50159.5 5015950 709 99610 50159.5 5015950 -32461 32677 4939.66 493966 -128 127 1.42 142 +71 2 10061 99971 0.21321 300.21321 150.21321 15171.53453 0.21321 300.21323 150.21321 15171.5346 0.21321 300.21321 150.21320999999992 15171.53421 2020-01-01 2020-01-02 2020-01-01 00:01:11 2020-01-02 03:46:11 2020-01-01 00:01:11.000 2020-01-02 03:46:11.000 71 99971 50021 5052121 71 99971 50021 5052121 -32498 32437 4600.009900990099 464601 -125 127 -0.38613861386138615 -39 710 2 10700 99611 2.13213 299.13213 150.63213 15063.21321 2.13213 299.13214 150.63213 15063.21311 2.13213 299.13213 150.63213 15063.21300 2020-01-01 2020-01-02 2020-01-01 00:11:50 2020-01-02 03:40:11 2020-01-01 00:11:50.000 2020-01-02 03:40:11.000 710 99611 50160.5 5016050 710 99611 50160.5 5016050 -32460 32678 4940.66 494066 -128 127 -0.14 -14 -711 2 10701 99612 2.13513 299.13513 150.63513 15063.51351 2.13513 299.13513 150.63513 15063.51325 2.13513 299.13513 150.63513 15063.51300 2020-01-01 2020-01-02 2020-01-01 00:11:51 2020-01-02 03:40:12 2020-01-01 00:11:51.000 2020-01-02 03:40:12.000 711 99612 50161.5 5016150 711 99612 50161.5 5016150 -32459 32679 4941.66 494166 -128 124 -1.7 -170 -712 2 10702 99613 2.13813 299.13813 150.63813 15063.81381 2.13813 299.13815 150.63814 15063.81401 2.13813 299.13813 150.63813 15063.81300 2020-01-01 2020-01-02 2020-01-01 00:11:52 2020-01-02 03:40:13 2020-01-01 00:11:52.000 2020-01-02 03:40:13.000 712 99613 50162.5 5016250 712 99613 50162.5 5016250 -32458 32680 4942.66 494266 -127 125 -0.7 -70 -713 2 10703 99614 2.14114 299.14114 150.64114 15064.11411 2.14114 299.14114 150.64114 15064.11431 2.14114 299.14114 150.64114 15064.11400 2020-01-01 2020-01-02 2020-01-01 00:11:53 2020-01-02 03:40:14 2020-01-01 00:11:53.000 2020-01-02 03:40:14.000 713 99614 50163.5 5016350 713 99614 50163.5 5016350 -32457 32681 4943.66 494366 -126 126 0.3 30 -714 2 10704 99615 2.14414 299.14414 150.64414 15064.41441 2.14414 299.14413 150.64414 15064.41448 2.14414 299.14414 150.64414 15064.41400 2020-01-01 2020-01-02 2020-01-01 00:11:54 2020-01-02 03:40:15 2020-01-01 00:11:54.000 2020-01-02 03:40:15.000 714 99615 50164.5 5016450 714 99615 50164.5 5016450 -32456 32682 4944.66 494466 -125 127 1.3 130 -715 2 10705 99616 2.14714 299.14714 150.64714 15064.71471 2.14714 299.14716 150.64714 15064.71458 2.14714 299.14714 150.64714 15064.71400 2020-01-01 2020-01-02 2020-01-01 00:11:55 2020-01-02 03:40:16 2020-01-01 00:11:55.000 2020-01-02 03:40:16.000 715 99616 50165.5 5016550 715 99616 50165.5 5016550 -32455 32683 4945.66 494566 -128 127 -0.26 -26 -716 2 10706 99617 2.15015 299.15015 150.65015 15065.01501 2.15015 299.15015 150.65014 15065.01472 2.15015 299.15015 150.65015 15065.01500 2020-01-01 2020-01-02 2020-01-01 00:11:56 2020-01-02 03:40:17 2020-01-01 00:11:56.000 2020-01-02 03:40:17.000 716 99617 50166.5 5016650 716 99617 50166.5 5016650 -32454 32684 4946.66 494666 -128 127 -1.82 -182 -717 2 10707 99618 2.15315 299.15315 150.65315 15065.31531 2.15315 299.15317 150.65315 15065.31547 2.15315 299.15315 150.65315 15065.31500 2020-01-01 2020-01-02 2020-01-01 00:11:57 2020-01-02 03:40:18 2020-01-01 00:11:57.000 2020-01-02 03:40:18.000 717 99618 50167.5 5016750 717 99618 50167.5 5016750 -32453 32685 4947.66 494766 -128 123 -3.38 -338 -718 2 10708 99619 2.15615 299.15615 150.65615 15065.61561 2.15615 299.15616 150.65615 15065.61578 2.15615 299.15615 150.65615 15065.61500 2020-01-01 2020-01-02 2020-01-01 00:11:58 2020-01-02 03:40:19 2020-01-01 00:11:58.000 2020-01-02 03:40:19.000 718 99619 50168.5 5016850 718 99619 50168.5 5016850 -32452 32686 4948.66 494866 -127 124 -2.38 -238 +711 2 10701 99612 2.13513 299.13513 150.63513 15063.51351 2.13513 299.13513 150.63513 15063.51325 2.13513 299.13513 150.63513000000006 15063.51300 2020-01-01 2020-01-02 2020-01-01 00:11:51 2020-01-02 03:40:12 2020-01-01 00:11:51.000 2020-01-02 03:40:12.000 711 99612 50161.5 5016150 711 99612 50161.5 5016150 -32459 32679 4941.66 494166 -128 124 -1.7 -170 +712 2 10702 99613 2.13813 299.13813 150.63813 15063.81381 2.13813 299.13815 150.63814 15063.81401 2.13813 299.13813 150.6381299999999 15063.81300 2020-01-01 2020-01-02 2020-01-01 00:11:52 2020-01-02 03:40:13 2020-01-01 00:11:52.000 2020-01-02 03:40:13.000 712 99613 50162.5 5016250 712 99613 50162.5 5016250 -32458 32680 4942.66 494266 -127 125 -0.7 -70 +713 2 10703 99614 2.14114 299.14114 150.64114 15064.11411 2.14114 299.14114 150.64114 15064.11431 2.14114 299.14114 150.6411399999999 15064.11400 2020-01-01 2020-01-02 2020-01-01 00:11:53 2020-01-02 03:40:14 2020-01-01 00:11:53.000 2020-01-02 03:40:14.000 713 99614 50163.5 5016350 713 99614 50163.5 5016350 -32457 32681 4943.66 494366 -126 126 0.3 30 +714 2 10704 99615 2.14414 299.14414 150.64414 15064.41441 2.14414 299.14413 150.64414 15064.41448 2.14414 299.14414 150.64414000000014 15064.41400 2020-01-01 2020-01-02 2020-01-01 00:11:54 2020-01-02 03:40:15 2020-01-01 00:11:54.000 2020-01-02 03:40:15.000 714 99615 50164.5 5016450 714 99615 50164.5 5016450 -32456 32682 4944.66 494466 -125 127 1.3 130 +715 2 10705 99616 2.14714 299.14714 150.64714 15064.71471 2.14714 299.14716 150.64714 15064.71458 2.14714 299.14714 150.6471399999998 15064.71400 2020-01-01 2020-01-02 2020-01-01 00:11:55 2020-01-02 03:40:16 2020-01-01 00:11:55.000 2020-01-02 03:40:16.000 715 99616 50165.5 5016550 715 99616 50165.5 5016550 -32455 32683 4945.66 494566 -128 127 -0.26 -26 +716 2 10706 99617 2.15015 299.15015 150.65015 15065.01501 2.15015 299.15015 150.65014 15065.01472 2.15015 299.15015 150.65015000000002 15065.01500 2020-01-01 2020-01-02 2020-01-01 00:11:56 2020-01-02 03:40:17 2020-01-01 00:11:56.000 2020-01-02 03:40:17.000 716 99617 50166.5 5016650 716 99617 50166.5 5016650 -32454 32684 4946.66 494666 -128 127 -1.82 -182 +717 2 10707 99618 2.15315 299.15315 150.65315 15065.31531 2.15315 299.15317 150.65315 15065.31547 2.15315 299.15315 150.65315000000007 15065.31500 2020-01-01 2020-01-02 2020-01-01 00:11:57 2020-01-02 03:40:18 2020-01-01 00:11:57.000 2020-01-02 03:40:18.000 717 99618 50167.5 5016750 717 99618 50167.5 5016750 -32453 32685 4947.66 494766 -128 123 -3.38 -338 +718 2 10708 99619 2.15615 299.15615 150.65615 15065.61561 2.15615 299.15616 150.65615 15065.61578 2.15615 299.15615 150.65615000000005 15065.61500 2020-01-01 2020-01-02 2020-01-01 00:11:58 2020-01-02 03:40:19 2020-01-01 00:11:58.000 2020-01-02 03:40:19.000 718 99619 50168.5 5016850 718 99619 50168.5 5016850 -32452 32686 4948.66 494866 -127 124 -2.38 -238 719 2 10709 99620 2.15915 299.15915 150.65915 15065.91591 2.15915 299.15915 150.65915 15065.91595 2.15915 299.15915 150.65915 15065.91500 2020-01-01 2020-01-02 2020-01-01 00:11:59 2020-01-02 03:40:20 2020-01-01 00:11:59.000 2020-01-02 03:40:20.000 719 99620 50169.5 5016950 719 99620 50169.5 5016950 -32451 32687 4949.66 494966 -126 125 -1.38 -138 72 2 10062 99972 0.21621 300.21621 150.21621 15171.83783 0.21621 300.21622 150.21621 15171.83791 0.21621 300.21621 150.21621 15171.83721 2020-01-01 2020-01-02 2020-01-01 00:01:12 2020-01-02 03:46:12 2020-01-01 00:01:12.000 2020-01-02 03:46:12.000 72 99972 50022 5052222 72 99972 50022 5052222 -32497 32438 4601.009900990099 464702 -128 127 -1.9207920792079207 -194 -720 2 10710 99621 2.16216 299.16216 150.66216 15066.21621 2.16216 299.16217 150.66216 15066.21606 2.16216 299.16216 150.66216 15066.21600 2020-01-01 2020-01-02 2020-01-01 00:12:00 2020-01-02 03:40:21 2020-01-01 00:12:00.000 2020-01-02 03:40:21.000 720 99621 50170.5 5017050 720 99621 50170.5 5017050 -32450 32688 4950.66 495066 -125 126 -0.38 -38 -721 2 10711 99622 2.16516 299.16516 150.66516 15066.51651 2.16516 299.16516 150.66516 15066.51635 2.16516 299.16516 150.66516 15066.51600 2020-01-01 2020-01-02 2020-01-01 00:12:01 2020-01-02 03:40:22 2020-01-01 00:12:01.000 2020-01-02 03:40:22.000 721 99622 50171.5 5017150 721 99622 50171.5 5017150 -32449 32689 4951.66 495166 -124 127 0.62 62 -722 2 10712 99623 2.16816 299.16816 150.66816 15066.81681 2.16816 299.16818 150.66816 15066.81695 2.16816 299.16816 150.66816 15066.81600 2020-01-01 2020-01-02 2020-01-01 00:12:02 2020-01-02 03:40:23 2020-01-01 00:12:02.000 2020-01-02 03:40:23.000 722 99623 50172.5 5017250 722 99623 50172.5 5017250 -32448 32690 4952.66 495266 -128 127 -0.94 -94 -723 2 10713 99624 2.17117 299.17117 150.67117 15067.11711 2.17117 299.17117 150.67117 15067.11724 2.17117 299.17117 150.67117 15067.11700 2020-01-01 2020-01-02 2020-01-01 00:12:03 2020-01-02 03:40:24 2020-01-01 00:12:03.000 2020-01-02 03:40:24.000 723 99624 50173.5 5017350 723 99624 50173.5 5017350 -32447 32691 4953.66 495366 -128 123 -2.5 -250 -724 2 10714 99625 2.17417 299.17417 150.67417 15067.41741 2.17417 299.17416 150.67417 15067.41742 2.17417 299.17417 150.67417 15067.41700 2020-01-01 2020-01-02 2020-01-01 00:12:04 2020-01-02 03:40:25 2020-01-01 00:12:04.000 2020-01-02 03:40:25.000 724 99625 50174.5 5017450 724 99625 50174.5 5017450 -32446 32692 4954.66 495466 -127 124 -1.5 -150 -725 2 10715 99626 2.17717 299.17717 150.67717 15067.71771 2.17717 299.1772 150.67717 15067.71752 2.17717 299.17717 150.67717 15067.71700 2020-01-01 2020-01-02 2020-01-01 00:12:05 2020-01-02 03:40:26 2020-01-01 00:12:05.000 2020-01-02 03:40:26.000 725 99626 50175.5 5017550 725 99626 50175.5 5017550 -32445 32693 4955.66 495566 -126 125 -0.5 -50 -726 2 10716 99627 2.18018 299.18018 150.68018 15068.01801 2.18018 299.18018 150.68017 15068.01782 2.18018 299.18018 150.68018 15068.01800 2020-01-01 2020-01-02 2020-01-01 00:12:06 2020-01-02 03:40:27 2020-01-01 00:12:06.000 2020-01-02 03:40:27.000 726 99627 50176.5 5017650 726 99627 50176.5 5017650 -32444 32694 4956.66 495666 -125 126 0.5 50 +720 2 10710 99621 2.16216 299.16216 150.66216 15066.21621 2.16216 299.16217 150.66216 15066.21606 2.16216 299.16216 150.6621599999999 15066.21600 2020-01-01 2020-01-02 2020-01-01 00:12:00 2020-01-02 03:40:21 2020-01-01 00:12:00.000 2020-01-02 03:40:21.000 720 99621 50170.5 5017050 720 99621 50170.5 5017050 -32450 32688 4950.66 495066 -125 126 -0.38 -38 +721 2 10711 99622 2.16516 299.16516 150.66516 15066.51651 2.16516 299.16516 150.66516 15066.51635 2.16516 299.16516 150.66515999999996 15066.51600 2020-01-01 2020-01-02 2020-01-01 00:12:01 2020-01-02 03:40:22 2020-01-01 00:12:01.000 2020-01-02 03:40:22.000 721 99622 50171.5 5017150 721 99622 50171.5 5017150 -32449 32689 4951.66 495166 -124 127 0.62 62 +722 2 10712 99623 2.16816 299.16816 150.66816 15066.81681 2.16816 299.16818 150.66816 15066.81695 2.16816 299.16816 150.66815999999992 15066.81600 2020-01-01 2020-01-02 2020-01-01 00:12:02 2020-01-02 03:40:23 2020-01-01 00:12:02.000 2020-01-02 03:40:23.000 722 99623 50172.5 5017250 722 99623 50172.5 5017250 -32448 32690 4952.66 495266 -128 127 -0.94 -94 +723 2 10713 99624 2.17117 299.17117 150.67117 15067.11711 2.17117 299.17117 150.67117 15067.11724 2.17117 299.17117 150.6711699999998 15067.11700 2020-01-01 2020-01-02 2020-01-01 00:12:03 2020-01-02 03:40:24 2020-01-01 00:12:03.000 2020-01-02 03:40:24.000 723 99624 50173.5 5017350 723 99624 50173.5 5017350 -32447 32691 4953.66 495366 -128 123 -2.5 -250 +724 2 10714 99625 2.17417 299.17417 150.67417 15067.41741 2.17417 299.17416 150.67417 15067.41742 2.17417 299.17417 150.67417000000015 15067.41700 2020-01-01 2020-01-02 2020-01-01 00:12:04 2020-01-02 03:40:25 2020-01-01 00:12:04.000 2020-01-02 03:40:25.000 724 99625 50174.5 5017450 724 99625 50174.5 5017450 -32446 32692 4954.66 495466 -127 124 -1.5 -150 +725 2 10715 99626 2.17717 299.17717 150.67717 15067.71771 2.17717 299.1772 150.67717 15067.71752 2.17717 299.17717 150.67717000000016 15067.71700 2020-01-01 2020-01-02 2020-01-01 00:12:05 2020-01-02 03:40:26 2020-01-01 00:12:05.000 2020-01-02 03:40:26.000 725 99626 50175.5 5017550 725 99626 50175.5 5017550 -32445 32693 4955.66 495566 -126 125 -0.5 -50 +726 2 10716 99627 2.18018 299.18018 150.68018 15068.01801 2.18018 299.18018 150.68017 15068.01782 2.18018 299.18018 150.68017999999992 15068.01800 2020-01-01 2020-01-02 2020-01-01 00:12:06 2020-01-02 03:40:27 2020-01-01 00:12:06.000 2020-01-02 03:40:27.000 726 99627 50176.5 5017650 726 99627 50176.5 5017650 -32444 32694 4956.66 495666 -125 126 0.5 50 727 2 10717 99628 2.18318 299.18318 150.68318 15068.31831 2.18318 299.1832 150.68318 15068.31842 2.18318 299.18318 150.68318 15068.31800 2020-01-01 2020-01-02 2020-01-01 00:12:07 2020-01-02 03:40:28 2020-01-01 00:12:07.000 2020-01-02 03:40:28.000 727 99628 50177.5 5017750 727 99628 50177.5 5017750 -32443 32695 4957.66 495766 -124 127 1.5 150 -728 2 10718 99629 2.18618 299.18618 150.68618 15068.61861 2.18618 299.1862 150.68618 15068.61875 2.18618 299.18618 150.68618 15068.61800 2020-01-01 2020-01-02 2020-01-01 00:12:08 2020-01-02 03:40:29 2020-01-01 00:12:08.000 2020-01-02 03:40:29.000 728 99629 50178.5 5017850 728 99629 50178.5 5017850 -32442 32696 4958.66 495866 -128 127 -0.06 -6 -729 2 10719 99630 2.18918 299.18918 150.68918 15068.91891 2.18918 299.18918 150.68918 15068.91889 2.18918 299.18918 150.68918 15068.91800 2020-01-01 2020-01-02 2020-01-01 00:12:09 2020-01-02 03:40:30 2020-01-01 00:12:09.000 2020-01-02 03:40:30.000 729 99630 50179.5 5017950 729 99630 50179.5 5017950 -32441 32697 4959.66 495966 -128 123 -1.62 -162 -73 2 10063 99973 0.21921 300.21921 150.21921 15172.14114 0.21921 300.2192 150.21921 15172.14121 0.21921 300.21921 150.21921 15172.14021 2020-01-01 2020-01-02 2020-01-01 00:01:13 2020-01-02 03:46:13 2020-01-01 00:01:13.000 2020-01-02 03:46:13.000 73 99973 50023 5052323 73 99973 50023 5052323 -32496 32439 4602.009900990099 464803 -128 127 -3.4554455445544554 -349 -730 2 10720 99631 2.19219 299.19219 150.69219 15069.21921 2.19219 299.1922 150.69219 15069.21965 2.19219 299.19219 150.69219 15069.21900 2020-01-01 2020-01-02 2020-01-01 00:12:10 2020-01-02 03:40:31 2020-01-01 00:12:10.000 2020-01-02 03:40:31.000 730 99631 50180.5 5018050 730 99631 50180.5 5018050 -32440 32698 4960.66 496066 -127 124 -0.62 -62 -731 2 10721 99632 2.19519 299.19519 150.69519 15069.51951 2.19519 299.1952 150.69519 15069.51928 2.19519 299.19519 150.69519 15069.51900 2020-01-01 2020-01-02 2020-01-01 00:12:11 2020-01-02 03:40:32 2020-01-01 00:12:11.000 2020-01-02 03:40:32.000 731 99632 50181.5 5018150 731 99632 50181.5 5018150 -32439 32699 4961.66 496166 -126 125 0.38 38 -732 2 10722 99633 2.19819 299.19819 150.69819 15069.81981 2.19819 299.1982 150.69819 15069.81988 2.19819 299.19819 150.69819 15069.81900 2020-01-01 2020-01-02 2020-01-01 00:12:12 2020-01-02 03:40:33 2020-01-01 00:12:12.000 2020-01-02 03:40:33.000 732 99633 50182.5 5018250 732 99633 50182.5 5018250 -32438 32700 4962.66 496266 -125 126 1.38 138 -733 2 10723 99634 2.2012 299.2012 150.7012 15070.12012 2.2012 299.2012 150.7012 15070.12022 2.20120 299.20120 150.70120 15070.12000 2020-01-01 2020-01-02 2020-01-01 00:12:13 2020-01-02 03:40:34 2020-01-01 00:12:13.000 2020-01-02 03:40:34.000 733 99634 50183.5 5018350 733 99634 50183.5 5018350 -32437 32701 4963.66 496366 -124 127 2.38 238 -734 2 10724 99635 2.2042 299.2042 150.7042 15070.42042 2.2042 299.2042 150.7042 15070.42036 2.20420 299.20420 150.70420 15070.42000 2020-01-01 2020-01-02 2020-01-01 00:12:14 2020-01-02 03:40:35 2020-01-01 00:12:14.000 2020-01-02 03:40:35.000 734 99635 50184.5 5018450 734 99635 50184.5 5018450 -32436 32702 4964.66 496466 -128 127 0.82 82 -735 2 10725 99636 2.2072 299.2072 150.7072 15070.72072 2.2072 299.2072 150.70721 15070.72111 2.20720 299.20720 150.70720 15070.72000 2020-01-01 2020-01-02 2020-01-01 00:12:15 2020-01-02 03:40:36 2020-01-01 00:12:15.000 2020-01-02 03:40:36.000 735 99636 50185.5 5018550 735 99636 50185.5 5018550 -32435 32703 4965.66 496566 -128 127 -0.74 -74 -736 2 10726 99637 2.21021 299.21021 150.71021 15071.02102 2.21021 299.2102 150.7102 15071.02076 2.21021 299.21021 150.71021 15071.02100 2020-01-01 2020-01-02 2020-01-01 00:12:16 2020-01-02 03:40:37 2020-01-01 00:12:16.000 2020-01-02 03:40:37.000 736 99637 50186.5 5018650 736 99637 50186.5 5018650 -32434 32704 4966.66 496666 -128 124 -2.3 -230 -737 2 10727 99638 2.21321 299.21321 150.71321 15071.32132 2.21321 299.21323 150.71321 15071.32139 2.21321 299.21321 150.71321 15071.32100 2020-01-01 2020-01-02 2020-01-01 00:12:17 2020-01-02 03:40:38 2020-01-01 00:12:17.000 2020-01-02 03:40:38.000 737 99638 50187.5 5018750 737 99638 50187.5 5018750 -32433 32705 4967.66 496766 -127 125 -1.3 -130 +728 2 10718 99629 2.18618 299.18618 150.68618 15068.61861 2.18618 299.1862 150.68618 15068.61875 2.18618 299.18618 150.6861800000001 15068.61800 2020-01-01 2020-01-02 2020-01-01 00:12:08 2020-01-02 03:40:29 2020-01-01 00:12:08.000 2020-01-02 03:40:29.000 728 99629 50178.5 5017850 728 99629 50178.5 5017850 -32442 32696 4958.66 495866 -128 127 -0.06 -6 +729 2 10719 99630 2.18918 299.18918 150.68918 15068.91891 2.18918 299.18918 150.68918 15068.91889 2.18918 299.18918 150.6891799999999 15068.91800 2020-01-01 2020-01-02 2020-01-01 00:12:09 2020-01-02 03:40:30 2020-01-01 00:12:09.000 2020-01-02 03:40:30.000 729 99630 50179.5 5017950 729 99630 50179.5 5017950 -32441 32697 4959.66 495966 -128 123 -1.62 -162 +73 2 10063 99973 0.21921 300.21921 150.21921 15172.14114 0.21921 300.2192 150.21921 15172.14121 0.21921 300.21921 150.21920999999992 15172.14021 2020-01-01 2020-01-02 2020-01-01 00:01:13 2020-01-02 03:46:13 2020-01-01 00:01:13.000 2020-01-02 03:46:13.000 73 99973 50023 5052323 73 99973 50023 5052323 -32496 32439 4602.009900990099 464803 -128 127 -3.4554455445544554 -349 +730 2 10720 99631 2.19219 299.19219 150.69219 15069.21921 2.19219 299.1922 150.69219 15069.21965 2.19219 299.19219 150.6921899999999 15069.21900 2020-01-01 2020-01-02 2020-01-01 00:12:10 2020-01-02 03:40:31 2020-01-01 00:12:10.000 2020-01-02 03:40:31.000 730 99631 50180.5 5018050 730 99631 50180.5 5018050 -32440 32698 4960.66 496066 -127 124 -0.62 -62 +731 2 10721 99632 2.19519 299.19519 150.69519 15069.51951 2.19519 299.1952 150.69519 15069.51928 2.19519 299.19519 150.6951900000002 15069.51900 2020-01-01 2020-01-02 2020-01-01 00:12:11 2020-01-02 03:40:32 2020-01-01 00:12:11.000 2020-01-02 03:40:32.000 731 99632 50181.5 5018150 731 99632 50181.5 5018150 -32439 32699 4961.66 496166 -126 125 0.38 38 +732 2 10722 99633 2.19819 299.19819 150.69819 15069.81981 2.19819 299.1982 150.69819 15069.81988 2.19819 299.19819 150.69818999999984 15069.81900 2020-01-01 2020-01-02 2020-01-01 00:12:12 2020-01-02 03:40:33 2020-01-01 00:12:12.000 2020-01-02 03:40:33.000 732 99633 50182.5 5018250 732 99633 50182.5 5018250 -32438 32700 4962.66 496266 -125 126 1.38 138 +733 2 10723 99634 2.2012 299.2012 150.7012 15070.12012 2.2012 299.2012 150.7012 15070.12022 2.20120 299.20120 150.70120000000003 15070.12000 2020-01-01 2020-01-02 2020-01-01 00:12:13 2020-01-02 03:40:34 2020-01-01 00:12:13.000 2020-01-02 03:40:34.000 733 99634 50183.5 5018350 733 99634 50183.5 5018350 -32437 32701 4963.66 496366 -124 127 2.38 238 +734 2 10724 99635 2.2042 299.2042 150.7042 15070.42042 2.2042 299.2042 150.7042 15070.42036 2.20420 299.20420 150.7042000000001 15070.42000 2020-01-01 2020-01-02 2020-01-01 00:12:14 2020-01-02 03:40:35 2020-01-01 00:12:14.000 2020-01-02 03:40:35.000 734 99635 50184.5 5018450 734 99635 50184.5 5018450 -32436 32702 4964.66 496466 -128 127 0.82 82 +735 2 10725 99636 2.2072 299.2072 150.7072 15070.72072 2.2072 299.2072 150.70721 15070.72111 2.20720 299.20720 150.70720000000009 15070.72000 2020-01-01 2020-01-02 2020-01-01 00:12:15 2020-01-02 03:40:36 2020-01-01 00:12:15.000 2020-01-02 03:40:36.000 735 99636 50185.5 5018550 735 99636 50185.5 5018550 -32435 32703 4965.66 496566 -128 127 -0.74 -74 +736 2 10726 99637 2.21021 299.21021 150.71021 15071.02102 2.21021 299.2102 150.7102 15071.02076 2.21021 299.21021 150.71020999999996 15071.02100 2020-01-01 2020-01-02 2020-01-01 00:12:16 2020-01-02 03:40:37 2020-01-01 00:12:16.000 2020-01-02 03:40:37.000 736 99637 50186.5 5018650 736 99637 50186.5 5018650 -32434 32704 4966.66 496666 -128 124 -2.3 -230 +737 2 10727 99638 2.21321 299.21321 150.71321 15071.32132 2.21321 299.21323 150.71321 15071.32139 2.21321 299.21321 150.71320999999992 15071.32100 2020-01-01 2020-01-02 2020-01-01 00:12:17 2020-01-02 03:40:38 2020-01-01 00:12:17.000 2020-01-02 03:40:38.000 737 99638 50187.5 5018750 737 99638 50187.5 5018750 -32433 32705 4967.66 496766 -127 125 -1.3 -130 738 2 10728 99639 2.21621 299.21621 150.71621 15071.62162 2.21621 299.21622 150.71621 15071.62169 2.21621 299.21621 150.71621 15071.62100 2020-01-01 2020-01-02 2020-01-01 00:12:18 2020-01-02 03:40:39 2020-01-01 00:12:18.000 2020-01-02 03:40:39.000 738 99639 50188.5 5018850 738 99639 50188.5 5018850 -32432 32706 4968.66 496866 -126 126 -0.3 -30 -739 2 10729 99640 2.21921 299.21921 150.71921 15071.92192 2.21921 299.2192 150.71921 15071.92199 2.21921 299.21921 150.71921 15071.92100 2020-01-01 2020-01-02 2020-01-01 00:12:19 2020-01-02 03:40:40 2020-01-01 00:12:19.000 2020-01-02 03:40:40.000 739 99640 50189.5 5018950 739 99640 50189.5 5018950 -32431 32707 4969.66 496966 -125 127 0.7 70 -74 2 10064 99974 0.22222 300.22222 150.22222 15172.44444 0.22222 300.22223 150.22222 15172.4448 0.22222 300.22222 150.22222 15172.44422 2020-01-01 2020-01-02 2020-01-01 00:01:14 2020-01-02 03:46:14 2020-01-01 00:01:14.000 2020-01-02 03:46:14.000 74 99974 50024 5052424 74 99974 50024 5052424 -32495 32440 4603.009900990099 464904 -128 123 -4.99009900990099 -504 -740 2 10730 99641 2.22222 299.22222 150.72222 15072.22222 2.22222 299.22223 150.72222 15072.22258 2.22222 299.22222 150.72222 15072.22200 2020-01-01 2020-01-02 2020-01-01 00:12:20 2020-01-02 03:40:41 2020-01-01 00:12:20.000 2020-01-02 03:40:41.000 740 99641 50190.5 5019050 740 99641 50190.5 5019050 -32430 32708 4970.66 497066 -128 127 -0.86 -86 -741 2 10731 99642 2.22522 299.22522 150.72522 15072.52252 2.22522 299.22522 150.72522 15072.52223 2.22522 299.22522 150.72522 15072.52200 2020-01-01 2020-01-02 2020-01-01 00:12:21 2020-01-02 03:40:42 2020-01-01 00:12:21.000 2020-01-02 03:40:42.000 741 99642 50191.5 5019150 741 99642 50191.5 5019150 -32429 32709 4971.66 497166 -128 127 -2.42 -242 -742 2 10732 99643 2.22822 299.22822 150.72822 15072.82282 2.22822 299.22824 150.72822 15072.82286 2.22822 299.22822 150.72822 15072.82200 2020-01-01 2020-01-02 2020-01-01 00:12:22 2020-01-02 03:40:43 2020-01-01 00:12:22.000 2020-01-02 03:40:43.000 742 99643 50192.5 5019250 742 99643 50192.5 5019250 -32428 32710 4972.66 497266 -128 123 -3.98 -398 -743 2 10733 99644 2.23123 299.23123 150.73123 15073.12312 2.23123 299.23123 150.73123 15073.12316 2.23123 299.23123 150.73123 15073.12300 2020-01-01 2020-01-02 2020-01-01 00:12:23 2020-01-02 03:40:44 2020-01-01 00:12:23.000 2020-01-02 03:40:44.000 743 99644 50193.5 5019350 743 99644 50193.5 5019350 -32427 32711 4973.66 497366 -127 124 -2.98 -298 +739 2 10729 99640 2.21921 299.21921 150.71921 15071.92192 2.21921 299.2192 150.71921 15071.92199 2.21921 299.21921 150.71920999999995 15071.92100 2020-01-01 2020-01-02 2020-01-01 00:12:19 2020-01-02 03:40:40 2020-01-01 00:12:19.000 2020-01-02 03:40:40.000 739 99640 50189.5 5018950 739 99640 50189.5 5018950 -32431 32707 4969.66 496966 -125 127 0.7 70 +74 2 10064 99974 0.22222 300.22222 150.22222 15172.44444 0.22222 300.22223 150.22222 15172.4448 0.22222 300.22222 150.22221999999985 15172.44422 2020-01-01 2020-01-02 2020-01-01 00:01:14 2020-01-02 03:46:14 2020-01-01 00:01:14.000 2020-01-02 03:46:14.000 74 99974 50024 5052424 74 99974 50024 5052424 -32495 32440 4603.009900990099 464904 -128 123 -4.99009900990099 -504 +740 2 10730 99641 2.22222 299.22222 150.72222 15072.22222 2.22222 299.22223 150.72222 15072.22258 2.22222 299.22222 150.72221999999985 15072.22200 2020-01-01 2020-01-02 2020-01-01 00:12:20 2020-01-02 03:40:41 2020-01-01 00:12:20.000 2020-01-02 03:40:41.000 740 99641 50190.5 5019050 740 99641 50190.5 5019050 -32430 32708 4970.66 497066 -128 127 -0.86 -86 +741 2 10731 99642 2.22522 299.22522 150.72522 15072.52252 2.22522 299.22522 150.72522 15072.52223 2.22522 299.22522 150.7252200000001 15072.52200 2020-01-01 2020-01-02 2020-01-01 00:12:21 2020-01-02 03:40:42 2020-01-01 00:12:21.000 2020-01-02 03:40:42.000 741 99642 50191.5 5019150 741 99642 50191.5 5019150 -32429 32709 4971.66 497166 -128 127 -2.42 -242 +742 2 10732 99643 2.22822 299.22822 150.72822 15072.82282 2.22822 299.22824 150.72822 15072.82286 2.22822 299.22822 150.7282200000002 15072.82200 2020-01-01 2020-01-02 2020-01-01 00:12:22 2020-01-02 03:40:43 2020-01-01 00:12:22.000 2020-01-02 03:40:43.000 742 99643 50192.5 5019250 742 99643 50192.5 5019250 -32428 32710 4972.66 497266 -128 123 -3.98 -398 +743 2 10733 99644 2.23123 299.23123 150.73123 15073.12312 2.23123 299.23123 150.73123 15073.12316 2.23123 299.23123 150.73122999999993 15073.12300 2020-01-01 2020-01-02 2020-01-01 00:12:23 2020-01-02 03:40:44 2020-01-01 00:12:23.000 2020-01-02 03:40:44.000 743 99644 50193.5 5019350 743 99644 50193.5 5019350 -32427 32711 4973.66 497366 -127 124 -2.98 -298 744 2 10734 99645 2.23423 299.23423 150.73423 15073.42342 2.23423 299.23422 150.73423 15073.42345 2.23423 299.23423 150.73423 15073.42300 2020-01-01 2020-01-02 2020-01-01 00:12:24 2020-01-02 03:40:45 2020-01-01 00:12:24.000 2020-01-02 03:40:45.000 744 99645 50194.5 5019450 744 99645 50194.5 5019450 -32426 32712 4974.66 497466 -126 125 -1.98 -198 -745 2 10735 99646 2.23723 299.23723 150.73723 15073.72372 2.23723 299.23724 150.73724 15073.72405 2.23723 299.23723 150.73723 15073.72300 2020-01-01 2020-01-02 2020-01-01 00:12:25 2020-01-02 03:40:46 2020-01-01 00:12:25.000 2020-01-02 03:40:46.000 745 99646 50195.5 5019550 745 99646 50195.5 5019550 -32425 32713 4975.66 497566 -125 126 -0.98 -98 -746 2 10736 99647 2.24024 299.24024 150.74024 15074.02402 2.24024 299.24023 150.74023 15074.02373 2.24024 299.24024 150.74024 15074.02400 2020-01-01 2020-01-02 2020-01-01 00:12:26 2020-01-02 03:40:47 2020-01-01 00:12:26.000 2020-01-02 03:40:47.000 746 99647 50196.5 5019650 746 99647 50196.5 5019650 -32424 32714 4976.66 497666 -124 127 0.02 2 -747 2 10737 99648 2.24324 299.24324 150.74324 15074.32432 2.24324 299.24326 150.74324 15074.32433 2.24324 299.24324 150.74324 15074.32400 2020-01-01 2020-01-02 2020-01-01 00:12:27 2020-01-02 03:40:48 2020-01-01 00:12:27.000 2020-01-02 03:40:48.000 747 99648 50197.5 5019750 747 99648 50197.5 5019750 -32423 32715 4977.66 497766 -128 127 -1.54 -154 -748 2 10738 99649 2.24624 299.24624 150.74624 15074.62462 2.24624 299.24625 150.74624 15074.62463 2.24624 299.24624 150.74624 15074.62400 2020-01-01 2020-01-02 2020-01-01 00:12:28 2020-01-02 03:40:49 2020-01-01 00:12:28.000 2020-01-02 03:40:49.000 748 99649 50198.5 5019850 748 99649 50198.5 5019850 -32422 32716 4978.66 497866 -128 123 -3.1 -310 -749 2 10739 99650 2.24924 299.24924 150.74924 15074.92492 2.24924 299.24924 150.74924 15074.92492 2.24924 299.24924 150.74924 15074.92400 2020-01-01 2020-01-02 2020-01-01 00:12:29 2020-01-02 03:40:50 2020-01-01 00:12:29.000 2020-01-02 03:40:50.000 749 99650 50199.5 5019950 749 99650 50199.5 5019950 -32421 32717 4979.66 497966 -127 124 -2.1 -210 -75 2 10065 99975 0.22522 300.22522 150.22522 15172.74774 0.22522 300.22522 150.22522 15172.74745 0.22522 300.22522 150.22522 15172.74722 2020-01-01 2020-01-02 2020-01-01 00:01:15 2020-01-02 03:46:15 2020-01-01 00:01:15.000 2020-01-02 03:46:15.000 75 99975 50025 5052525 75 99975 50025 5052525 -32494 32441 4604.009900990099 465005 -127 124 -3.99009900990099 -403 -750 2 10740 99651 2.25225 299.25225 150.75225 15075.22522 2.25225 299.25226 150.75225 15075.22552 2.25225 299.25225 150.75225 15075.22500 2020-01-01 2020-01-02 2020-01-01 00:12:30 2020-01-02 03:40:51 2020-01-01 00:12:30.000 2020-01-02 03:40:51.000 750 99651 50200.5 5020050 750 99651 50200.5 5020050 -32420 32718 4980.66 498066 -126 125 -1.1 -110 -751 2 10741 99652 2.25525 299.25525 150.75525 15075.52552 2.25525 299.25525 150.75525 15075.5252 2.25525 299.25525 150.75525 15075.52500 2020-01-01 2020-01-02 2020-01-01 00:12:31 2020-01-02 03:40:52 2020-01-01 00:12:31.000 2020-01-02 03:40:52.000 751 99652 50201.5 5020150 751 99652 50201.5 5020150 -32419 32719 4981.66 498166 -125 126 -0.1 -10 -752 2 10742 99653 2.25825 299.25825 150.75825 15075.82582 2.25825 299.25827 150.75825 15075.8258 2.25825 299.25825 150.75825 15075.82500 2020-01-01 2020-01-02 2020-01-01 00:12:32 2020-01-02 03:40:53 2020-01-01 00:12:32.000 2020-01-02 03:40:53.000 752 99653 50202.5 5020250 752 99653 50202.5 5020250 -32418 32720 4982.66 498266 -124 127 0.9 90 -753 2 10743 99654 2.26126 299.26126 150.76126 15076.12612 2.26126 299.26126 150.76126 15076.12609 2.26126 299.26126 150.76126 15076.12600 2020-01-01 2020-01-02 2020-01-01 00:12:33 2020-01-02 03:40:54 2020-01-01 00:12:33.000 2020-01-02 03:40:54.000 753 99654 50203.5 5020350 753 99654 50203.5 5020350 -32417 32721 4983.66 498366 -128 127 -0.66 -66 -754 2 10744 99655 2.26426 299.26426 150.76426 15076.42642 2.26426 299.26425 150.76426 15076.4264 2.26426 299.26426 150.76426 15076.42600 2020-01-01 2020-01-02 2020-01-01 00:12:34 2020-01-02 03:40:55 2020-01-01 00:12:34.000 2020-01-02 03:40:55.000 754 99655 50204.5 5020450 754 99655 50204.5 5020450 -32416 32722 4984.66 498466 -128 123 -2.22 -222 +745 2 10735 99646 2.23723 299.23723 150.73723 15073.72372 2.23723 299.23724 150.73724 15073.72405 2.23723 299.23723 150.73723000000012 15073.72300 2020-01-01 2020-01-02 2020-01-01 00:12:25 2020-01-02 03:40:46 2020-01-01 00:12:25.000 2020-01-02 03:40:46.000 745 99646 50195.5 5019550 745 99646 50195.5 5019550 -32425 32713 4975.66 497566 -125 126 -0.98 -98 +746 2 10736 99647 2.24024 299.24024 150.74024 15074.02402 2.24024 299.24023 150.74023 15074.02373 2.24024 299.24024 150.7402399999999 15074.02400 2020-01-01 2020-01-02 2020-01-01 00:12:26 2020-01-02 03:40:47 2020-01-01 00:12:26.000 2020-01-02 03:40:47.000 746 99647 50196.5 5019650 746 99647 50196.5 5019650 -32424 32714 4976.66 497666 -124 127 0.02 2 +747 2 10737 99648 2.24324 299.24324 150.74324 15074.32432 2.24324 299.24326 150.74324 15074.32433 2.24324 299.24324 150.74323999999984 15074.32400 2020-01-01 2020-01-02 2020-01-01 00:12:27 2020-01-02 03:40:48 2020-01-01 00:12:27.000 2020-01-02 03:40:48.000 747 99648 50197.5 5019750 747 99648 50197.5 5019750 -32423 32715 4977.66 497766 -128 127 -1.54 -154 +748 2 10738 99649 2.24624 299.24624 150.74624 15074.62462 2.24624 299.24625 150.74624 15074.62463 2.24624 299.24624 150.74624000000017 15074.62400 2020-01-01 2020-01-02 2020-01-01 00:12:28 2020-01-02 03:40:49 2020-01-01 00:12:28.000 2020-01-02 03:40:49.000 748 99649 50198.5 5019850 748 99649 50198.5 5019850 -32422 32716 4978.66 497866 -128 123 -3.1 -310 +749 2 10739 99650 2.24924 299.24924 150.74924 15074.92492 2.24924 299.24924 150.74924 15074.92492 2.24924 299.24924 150.74923999999987 15074.92400 2020-01-01 2020-01-02 2020-01-01 00:12:29 2020-01-02 03:40:50 2020-01-01 00:12:29.000 2020-01-02 03:40:50.000 749 99650 50199.5 5019950 749 99650 50199.5 5019950 -32421 32717 4979.66 497966 -127 124 -2.1 -210 +75 2 10065 99975 0.22522 300.22522 150.22522 15172.74774 0.22522 300.22522 150.22522 15172.74745 0.22522 300.22522 150.2252200000001 15172.74722 2020-01-01 2020-01-02 2020-01-01 00:01:15 2020-01-02 03:46:15 2020-01-01 00:01:15.000 2020-01-02 03:46:15.000 75 99975 50025 5052525 75 99975 50025 5052525 -32494 32441 4604.009900990099 465005 -127 124 -3.99009900990099 -403 +750 2 10740 99651 2.25225 299.25225 150.75225 15075.22522 2.25225 299.25226 150.75225 15075.22552 2.25225 299.25225 150.75224999999978 15075.22500 2020-01-01 2020-01-02 2020-01-01 00:12:30 2020-01-02 03:40:51 2020-01-01 00:12:30.000 2020-01-02 03:40:51.000 750 99651 50200.5 5020050 750 99651 50200.5 5020050 -32420 32718 4980.66 498066 -126 125 -1.1 -110 +751 2 10741 99652 2.25525 299.25525 150.75525 15075.52552 2.25525 299.25525 150.75525 15075.5252 2.25525 299.25525 150.7552500000001 15075.52500 2020-01-01 2020-01-02 2020-01-01 00:12:31 2020-01-02 03:40:52 2020-01-01 00:12:31.000 2020-01-02 03:40:52.000 751 99652 50201.5 5020150 751 99652 50201.5 5020150 -32419 32719 4981.66 498166 -125 126 -0.1 -10 +752 2 10742 99653 2.25825 299.25825 150.75825 15075.82582 2.25825 299.25827 150.75825 15075.8258 2.25825 299.25825 150.75825000000015 15075.82500 2020-01-01 2020-01-02 2020-01-01 00:12:32 2020-01-02 03:40:53 2020-01-01 00:12:32.000 2020-01-02 03:40:53.000 752 99653 50202.5 5020250 752 99653 50202.5 5020250 -32418 32720 4982.66 498266 -124 127 0.9 90 +753 2 10743 99654 2.26126 299.26126 150.76126 15076.12612 2.26126 299.26126 150.76126 15076.12609 2.26126 299.26126 150.76125999999994 15076.12600 2020-01-01 2020-01-02 2020-01-01 00:12:33 2020-01-02 03:40:54 2020-01-01 00:12:33.000 2020-01-02 03:40:54.000 753 99654 50203.5 5020350 753 99654 50203.5 5020350 -32417 32721 4983.66 498366 -128 127 -0.66 -66 +754 2 10744 99655 2.26426 299.26426 150.76426 15076.42642 2.26426 299.26425 150.76426 15076.4264 2.26426 299.26426 150.76425999999995 15076.42600 2020-01-01 2020-01-02 2020-01-01 00:12:34 2020-01-02 03:40:55 2020-01-01 00:12:34.000 2020-01-02 03:40:55.000 754 99655 50204.5 5020450 754 99655 50204.5 5020450 -32416 32722 4984.66 498466 -128 123 -2.22 -222 755 2 10745 99656 2.26726 299.26726 150.76726 15076.72672 2.26726 299.26727 150.76727 15076.72703 2.26726 299.26726 150.76726 15076.72600 2020-01-01 2020-01-02 2020-01-01 00:12:35 2020-01-02 03:40:56 2020-01-01 00:12:35.000 2020-01-02 03:40:56.000 755 99656 50205.5 5020550 755 99656 50205.5 5020550 -32415 32723 4985.66 498566 -127 124 -1.22 -122 -756 2 10746 99657 2.27027 299.27027 150.77027 15077.02702 2.27027 299.27026 150.77026 15077.02667 2.27027 299.27027 150.77027 15077.02700 2020-01-01 2020-01-02 2020-01-01 00:12:36 2020-01-02 03:40:57 2020-01-01 00:12:36.000 2020-01-02 03:40:57.000 756 99657 50206.5 5020650 756 99657 50206.5 5020650 -32414 32724 4986.66 498666 -126 125 -0.22 -22 -757 2 10747 99658 2.27327 299.27327 150.77327 15077.32732 2.27327 299.2733 150.77327 15077.32727 2.27327 299.27327 150.77327 15077.32700 2020-01-01 2020-01-02 2020-01-01 00:12:37 2020-01-02 03:40:58 2020-01-01 00:12:37.000 2020-01-02 03:40:58.000 757 99658 50207.5 5020750 757 99658 50207.5 5020750 -32413 32725 4987.66 498766 -125 126 0.78 78 -758 2 10748 99659 2.27627 299.27627 150.77627 15077.62762 2.27627 299.27628 150.77627 15077.62756 2.27627 299.27627 150.77627 15077.62700 2020-01-01 2020-01-02 2020-01-01 00:12:38 2020-01-02 03:40:59 2020-01-01 00:12:38.000 2020-01-02 03:40:59.000 758 99659 50208.5 5020850 758 99659 50208.5 5020850 -32412 32726 4988.66 498866 -124 127 1.78 178 -759 2 10749 99660 2.27927 299.27927 150.77927 15077.92792 2.27927 299.27927 150.77927 15077.92787 2.27927 299.27927 150.77927 15077.92700 2020-01-01 2020-01-02 2020-01-01 00:12:39 2020-01-02 03:41:00 2020-01-01 00:12:39.000 2020-01-02 03:41:00.000 759 99660 50209.5 5020950 759 99660 50209.5 5020950 -32411 32727 4989.66 498966 -128 127 0.22 22 -76 2 10066 99976 0.22822 300.22822 150.22822 15173.05105 0.22822 300.22824 150.22822 15173.05109 0.22822 300.22822 150.22822 15173.05022 2020-01-01 2020-01-02 2020-01-01 00:01:16 2020-01-02 03:46:16 2020-01-01 00:01:16.000 2020-01-02 03:46:16.000 76 99976 50026 5052626 76 99976 50026 5052626 -32493 32442 4605.009900990099 465106 -126 125 -2.99009900990099 -302 -760 2 10750 99661 2.28228 299.28228 150.78228 15078.22822 2.28228 299.2823 150.78228 15078.2285 2.28228 299.28228 150.78228 15078.22800 2020-01-01 2020-01-02 2020-01-01 00:12:40 2020-01-02 03:41:01 2020-01-01 00:12:40.000 2020-01-02 03:41:01.000 760 99661 50210.5 5021050 760 99661 50210.5 5021050 -32410 32728 4990.66 499066 -128 127 -1.34 -134 -761 2 10751 99662 2.28528 299.28528 150.78528 15078.52852 2.28528 299.28528 150.78528 15078.52814 2.28528 299.28528 150.78528 15078.52800 2020-01-01 2020-01-02 2020-01-01 00:12:41 2020-01-02 03:41:02 2020-01-01 00:12:41.000 2020-01-02 03:41:02.000 761 99662 50211.5 5021150 761 99662 50211.5 5021150 -32409 32729 4991.66 499166 -128 124 -2.9 -290 -762 2 10752 99663 2.28828 299.28828 150.78828 15078.82882 2.28828 299.2883 150.78828 15078.82889 2.28828 299.28828 150.78828 15078.82800 2020-01-01 2020-01-02 2020-01-01 00:12:42 2020-01-02 03:41:03 2020-01-01 00:12:42.000 2020-01-02 03:41:03.000 762 99663 50212.5 5021250 762 99663 50212.5 5021250 -32408 32730 4992.66 499266 -127 125 -1.9 -190 -763 2 10753 99664 2.29129 299.29129 150.79129 15079.12912 2.29129 299.2913 150.79129 15079.12904 2.29129 299.29129 150.79129 15079.12900 2020-01-01 2020-01-02 2020-01-01 00:12:43 2020-01-02 03:41:04 2020-01-01 00:12:43.000 2020-01-02 03:41:04.000 763 99664 50213.5 5021350 763 99664 50213.5 5021350 -32407 32731 4993.66 499366 -126 126 -0.9 -90 -764 2 10754 99665 2.29429 299.29429 150.79429 15079.42942 2.29429 299.29428 150.79429 15079.42933 2.29429 299.29429 150.79429 15079.42900 2020-01-01 2020-01-02 2020-01-01 00:12:44 2020-01-02 03:41:05 2020-01-01 00:12:44.000 2020-01-02 03:41:05.000 764 99665 50214.5 5021450 764 99665 50214.5 5021450 -32406 32732 4994.66 499466 -125 127 0.1 10 -765 2 10755 99666 2.29729 299.29729 150.79729 15079.72972 2.29729 299.2973 150.79729 15079.72996 2.29729 299.29729 150.79729 15079.72900 2020-01-01 2020-01-02 2020-01-01 00:12:45 2020-01-02 03:41:06 2020-01-01 00:12:45.000 2020-01-02 03:41:06.000 765 99666 50215.5 5021550 765 99666 50215.5 5021550 -32405 32733 4995.66 499566 -128 127 -1.46 -146 -766 2 10756 99667 2.3003 299.3003 150.8003 15080.03003 2.3003 299.3003 150.80029 15080.02961 2.30030 299.30030 150.80030 15080.03000 2020-01-01 2020-01-02 2020-01-01 00:12:46 2020-01-02 03:41:07 2020-01-01 00:12:46.000 2020-01-02 03:41:07.000 766 99667 50216.5 5021650 766 99667 50216.5 5021650 -32404 32734 4996.66 499666 -128 127 -3.02 -302 -767 2 10757 99668 2.3033 299.3033 150.8033 15080.33033 2.3033 299.3033 150.8033 15080.33036 2.30330 299.30330 150.80330 15080.33000 2020-01-01 2020-01-02 2020-01-01 00:12:47 2020-01-02 03:41:08 2020-01-01 00:12:47.000 2020-01-02 03:41:08.000 767 99668 50217.5 5021750 767 99668 50217.5 5021750 -32403 32735 4997.66 499766 -128 123 -4.58 -458 -768 2 10758 99669 2.3063 299.3063 150.8063 15080.63063 2.3063 299.3063 150.8063 15080.6305 2.30630 299.30630 150.80630 15080.63000 2020-01-01 2020-01-02 2020-01-01 00:12:48 2020-01-02 03:41:09 2020-01-01 00:12:48.000 2020-01-02 03:41:09.000 768 99669 50218.5 5021850 768 99669 50218.5 5021850 -32402 32736 4998.66 499866 -127 124 -3.58 -358 -769 2 10759 99670 2.3093 299.3093 150.8093 15080.93093 2.3093 299.3093 150.8093 15080.93084 2.30930 299.30930 150.80930 15080.93000 2020-01-01 2020-01-02 2020-01-01 00:12:49 2020-01-02 03:41:10 2020-01-01 00:12:49.000 2020-01-02 03:41:10.000 769 99670 50219.5 5021950 769 99670 50219.5 5021950 -32401 32737 4999.66 499966 -126 125 -2.58 -258 -77 2 10067 99977 0.23123 300.23123 150.23123 15173.35435 0.23123 300.23123 150.23123 15173.35439 0.23123 300.23123 150.23123 15173.35423 2020-01-01 2020-01-02 2020-01-01 00:01:17 2020-01-02 03:46:17 2020-01-01 00:01:17.000 2020-01-02 03:46:17.000 77 99977 50027 5052727 77 99977 50027 5052727 -32492 32443 4606.009900990099 465207 -125 126 -1.99009900990099 -201 -770 2 10760 99671 2.31231 299.31231 150.81231 15081.23123 2.31231 299.31232 150.81231 15081.23144 2.31231 299.31231 150.81231 15081.23100 2020-01-01 2020-01-02 2020-01-01 00:12:50 2020-01-02 03:41:11 2020-01-01 00:12:50.000 2020-01-02 03:41:11.000 770 99671 50220.5 5022050 770 99671 50220.5 5022050 -32400 32738 5000.66 500066 -125 126 -1.58 -158 -771 2 10761 99672 2.31531 299.31531 150.81531 15081.53153 2.31531 299.3153 150.81531 15081.53173 2.31531 299.31531 150.81531 15081.53100 2020-01-01 2020-01-02 2020-01-01 00:12:51 2020-01-02 03:41:12 2020-01-01 00:12:51.000 2020-01-02 03:41:12.000 771 99672 50221.5 5022150 771 99672 50221.5 5022150 -32399 32739 5001.66 500166 -124 127 -0.58 -58 -772 2 10762 99673 2.31831 299.31831 150.81831 15081.83183 2.31831 299.31833 150.81831 15081.83183 2.31831 299.31831 150.81831 15081.83100 2020-01-01 2020-01-02 2020-01-01 00:12:52 2020-01-02 03:41:13 2020-01-01 00:12:52.000 2020-01-02 03:41:13.000 772 99673 50222.5 5022250 772 99673 50222.5 5022250 -32398 32740 5002.66 500266 -128 127 -2.14 -214 -773 2 10763 99674 2.32132 299.32132 150.82132 15082.13213 2.32132 299.32132 150.82131 15082.13197 2.32132 299.32132 150.82132 15082.13200 2020-01-01 2020-01-02 2020-01-01 00:12:53 2020-01-02 03:41:14 2020-01-01 00:12:53.000 2020-01-02 03:41:14.000 773 99674 50223.5 5022350 773 99674 50223.5 5022350 -32397 32741 5003.66 500366 -128 123 -3.7 -370 -774 2 10764 99675 2.32432 299.32432 150.82432 15082.43243 2.32432 299.3243 150.82432 15082.43231 2.32432 299.32432 150.82432 15082.43200 2020-01-01 2020-01-02 2020-01-01 00:12:54 2020-01-02 03:41:15 2020-01-01 00:12:54.000 2020-01-02 03:41:15.000 774 99675 50224.5 5022450 774 99675 50224.5 5022450 -32396 32742 5004.66 500466 -127 124 -2.7 -270 -775 2 10765 99676 2.32732 299.32732 150.82732 15082.73273 2.32732 299.32733 150.82732 15082.73291 2.32732 299.32732 150.82732 15082.73200 2020-01-01 2020-01-02 2020-01-01 00:12:55 2020-01-02 03:41:16 2020-01-01 00:12:55.000 2020-01-02 03:41:16.000 775 99676 50225.5 5022550 775 99676 50225.5 5022550 -32395 32743 5005.66 500566 -126 125 -1.7 -170 -776 2 10766 99677 2.33033 299.33033 150.83033 15083.03303 2.33033 299.33032 150.83033 15083.0332 2.33033 299.33033 150.83033 15083.03300 2020-01-01 2020-01-02 2020-01-01 00:12:56 2020-01-02 03:41:17 2020-01-01 00:12:56.000 2020-01-02 03:41:17.000 776 99677 50226.5 5022650 776 99677 50226.5 5022650 -32394 32744 5006.66 500666 -125 126 -0.7 -70 -777 2 10767 99678 2.33333 299.33333 150.83333 15083.33333 2.33333 299.33334 150.83333 15083.3333 2.33333 299.33333 150.83333 15083.33300 2020-01-01 2020-01-02 2020-01-01 00:12:57 2020-01-02 03:41:18 2020-01-01 00:12:57.000 2020-01-02 03:41:18.000 777 99678 50227.5 5022750 777 99678 50227.5 5022750 -32393 32745 5007.66 500766 -124 127 0.3 30 -778 2 10768 99679 2.33633 299.33633 150.83633 15083.63363 2.33633 299.33633 150.83633 15083.63348 2.33633 299.33633 150.83633 15083.63300 2020-01-01 2020-01-02 2020-01-01 00:12:58 2020-01-02 03:41:19 2020-01-01 00:12:58.000 2020-01-02 03:41:19.000 778 99679 50228.5 5022850 778 99679 50228.5 5022850 -32392 32746 5008.66 500866 -128 127 -1.26 -126 -779 2 10769 99680 2.33933 299.33933 150.83933 15083.93393 2.33933 299.33932 150.83933 15083.93378 2.33933 299.33933 150.83933 15083.93300 2020-01-01 2020-01-02 2020-01-01 00:12:59 2020-01-02 03:41:20 2020-01-01 00:12:59.000 2020-01-02 03:41:20.000 779 99680 50229.5 5022950 779 99680 50229.5 5022950 -32391 32747 5009.66 500966 -128 123 -2.82 -282 -78 2 10068 99978 0.23423 300.23423 150.23423 15173.65765 0.23423 300.23422 150.23423 15173.65769 0.23423 300.23423 150.23423 15173.65723 2020-01-01 2020-01-02 2020-01-01 00:01:18 2020-01-02 03:46:18 2020-01-01 00:01:18.000 2020-01-02 03:46:18.000 78 99978 50028 5052828 78 99978 50028 5052828 -32491 32444 4607.009900990099 465308 -124 127 -0.9900990099009901 -100 -780 2 10770 99681 2.34234 299.34234 150.84234 15084.23423 2.34234 299.34235 150.84234 15084.23437 2.34234 299.34234 150.84234 15084.23400 2020-01-01 2020-01-02 2020-01-01 00:13:00 2020-01-02 03:41:21 2020-01-01 00:13:00.000 2020-01-02 03:41:21.000 780 99681 50230.5 5023050 780 99681 50230.5 5023050 -32390 32748 5010.66 501066 -127 124 -1.82 -182 -781 2 10771 99682 2.34534 299.34534 150.84534 15084.53453 2.34534 299.34534 150.84534 15084.53467 2.34534 299.34534 150.84534 15084.53400 2020-01-01 2020-01-02 2020-01-01 00:13:01 2020-01-02 03:41:22 2020-01-01 00:13:01.000 2020-01-02 03:41:22.000 781 99682 50231.5 5023150 781 99682 50231.5 5023150 -32389 32749 5011.66 501166 -126 125 -0.82 -82 -782 2 10772 99683 2.34834 299.34834 150.84834 15084.83483 2.34834 299.34836 150.84834 15084.83477 2.34834 299.34834 150.84834 15084.83400 2020-01-01 2020-01-02 2020-01-01 00:13:02 2020-01-02 03:41:23 2020-01-01 00:13:02.000 2020-01-02 03:41:23.000 782 99683 50232.5 5023250 782 99683 50232.5 5023250 -32388 32750 5012.66 501266 -125 126 0.18 18 -783 2 10773 99684 2.35135 299.35135 150.85135 15085.13513 2.35135 299.35135 150.85134 15085.13495 2.35135 299.35135 150.85135 15085.13500 2020-01-01 2020-01-02 2020-01-01 00:13:03 2020-01-02 03:41:24 2020-01-01 00:13:03.000 2020-01-02 03:41:24.000 783 99684 50233.5 5023350 783 99684 50233.5 5023350 -32387 32751 5013.66 501366 -124 127 1.18 118 -784 2 10774 99685 2.35435 299.35435 150.85435 15085.43543 2.35435 299.35434 150.85435 15085.43525 2.35435 299.35435 150.85435 15085.43500 2020-01-01 2020-01-02 2020-01-01 00:13:04 2020-01-02 03:41:25 2020-01-01 00:13:04.000 2020-01-02 03:41:25.000 784 99685 50234.5 5023450 784 99685 50234.5 5023450 -32386 32752 5014.66 501466 -128 127 -0.38 -38 -785 2 10775 99686 2.35735 299.35735 150.85735 15085.73573 2.35735 299.35736 150.85736 15085.736 2.35735 299.35735 150.85735 15085.73500 2020-01-01 2020-01-02 2020-01-01 00:13:05 2020-01-02 03:41:26 2020-01-01 00:13:05.000 2020-01-02 03:41:26.000 785 99686 50235.5 5023550 785 99686 50235.5 5023550 -32385 32753 5015.66 501566 -128 127 -1.94 -194 -786 2 10776 99687 2.36036 299.36036 150.86036 15086.03603 2.36036 299.36035 150.86036 15086.03614 2.36036 299.36036 150.86036 15086.03600 2020-01-01 2020-01-02 2020-01-01 00:13:06 2020-01-02 03:41:27 2020-01-01 00:13:06.000 2020-01-02 03:41:27.000 786 99687 50236.5 5023650 786 99687 50236.5 5023650 -32384 32754 5016.66 501666 -128 124 -3.5 -350 -787 2 10777 99688 2.36336 299.36336 150.86336 15086.33633 2.36336 299.36337 150.86336 15086.33628 2.36336 299.36336 150.86336 15086.33600 2020-01-01 2020-01-02 2020-01-01 00:13:07 2020-01-02 03:41:28 2020-01-01 00:13:07.000 2020-01-02 03:41:28.000 787 99688 50237.5 5023750 787 99688 50237.5 5023750 -32383 32755 5017.66 501766 -127 125 -2.5 -250 +756 2 10746 99657 2.27027 299.27027 150.77027 15077.02702 2.27027 299.27026 150.77026 15077.02667 2.27027 299.27027 150.7702700000002 15077.02700 2020-01-01 2020-01-02 2020-01-01 00:12:36 2020-01-02 03:40:57 2020-01-01 00:12:36.000 2020-01-02 03:40:57.000 756 99657 50206.5 5020650 756 99657 50206.5 5020650 -32414 32724 4986.66 498666 -126 125 -0.22 -22 +757 2 10747 99658 2.27327 299.27327 150.77327 15077.32732 2.27327 299.2733 150.77327 15077.32727 2.27327 299.27327 150.77326999999985 15077.32700 2020-01-01 2020-01-02 2020-01-01 00:12:37 2020-01-02 03:40:58 2020-01-01 00:12:37.000 2020-01-02 03:40:58.000 757 99658 50207.5 5020750 757 99658 50207.5 5020750 -32413 32725 4987.66 498766 -125 126 0.78 78 +758 2 10748 99659 2.27627 299.27627 150.77627 15077.62762 2.27627 299.27628 150.77627 15077.62756 2.27627 299.27627 150.77627000000012 15077.62700 2020-01-01 2020-01-02 2020-01-01 00:12:38 2020-01-02 03:40:59 2020-01-01 00:12:38.000 2020-01-02 03:40:59.000 758 99659 50208.5 5020850 758 99659 50208.5 5020850 -32412 32726 4988.66 498866 -124 127 1.78 178 +759 2 10749 99660 2.27927 299.27927 150.77927 15077.92792 2.27927 299.27927 150.77927 15077.92787 2.27927 299.27927 150.7792699999999 15077.92700 2020-01-01 2020-01-02 2020-01-01 00:12:39 2020-01-02 03:41:00 2020-01-01 00:12:39.000 2020-01-02 03:41:00.000 759 99660 50209.5 5020950 759 99660 50209.5 5020950 -32411 32727 4989.66 498966 -128 127 0.22 22 +76 2 10066 99976 0.22822 300.22822 150.22822 15173.05105 0.22822 300.22824 150.22822 15173.05109 0.22822 300.22822 150.2282200000002 15173.05022 2020-01-01 2020-01-02 2020-01-01 00:01:16 2020-01-02 03:46:16 2020-01-01 00:01:16.000 2020-01-02 03:46:16.000 76 99976 50026 5052626 76 99976 50026 5052626 -32493 32442 4605.009900990099 465106 -126 125 -2.99009900990099 -302 +760 2 10750 99661 2.28228 299.28228 150.78228 15078.22822 2.28228 299.2823 150.78228 15078.2285 2.28228 299.28228 150.78228000000001 15078.22800 2020-01-01 2020-01-02 2020-01-01 00:12:40 2020-01-02 03:41:01 2020-01-01 00:12:40.000 2020-01-02 03:41:01.000 760 99661 50210.5 5021050 760 99661 50210.5 5021050 -32410 32728 4990.66 499066 -128 127 -1.34 -134 +761 2 10751 99662 2.28528 299.28528 150.78528 15078.52852 2.28528 299.28528 150.78528 15078.52814 2.28528 299.28528 150.78528000000003 15078.52800 2020-01-01 2020-01-02 2020-01-01 00:12:41 2020-01-02 03:41:02 2020-01-01 00:12:41.000 2020-01-02 03:41:02.000 761 99662 50211.5 5021150 761 99662 50211.5 5021150 -32409 32729 4991.66 499166 -128 124 -2.9 -290 +762 2 10752 99663 2.28828 299.28828 150.78828 15078.82882 2.28828 299.2883 150.78828 15078.82889 2.28828 299.28828 150.78828000000007 15078.82800 2020-01-01 2020-01-02 2020-01-01 00:12:42 2020-01-02 03:41:03 2020-01-01 00:12:42.000 2020-01-02 03:41:03.000 762 99663 50212.5 5021250 762 99663 50212.5 5021250 -32408 32730 4992.66 499266 -127 125 -1.9 -190 +763 2 10753 99664 2.29129 299.29129 150.79129 15079.12912 2.29129 299.2913 150.79129 15079.12904 2.29129 299.29129 150.79128999999992 15079.12900 2020-01-01 2020-01-02 2020-01-01 00:12:43 2020-01-02 03:41:04 2020-01-01 00:12:43.000 2020-01-02 03:41:04.000 763 99664 50213.5 5021350 763 99664 50213.5 5021350 -32407 32731 4993.66 499366 -126 126 -0.9 -90 +764 2 10754 99665 2.29429 299.29429 150.79429 15079.42942 2.29429 299.29428 150.79429 15079.42933 2.29429 299.29429 150.79428999999988 15079.42900 2020-01-01 2020-01-02 2020-01-01 00:12:44 2020-01-02 03:41:05 2020-01-01 00:12:44.000 2020-01-02 03:41:05.000 764 99665 50214.5 5021450 764 99665 50214.5 5021450 -32406 32732 4994.66 499466 -125 127 0.1 10 +765 2 10755 99666 2.29729 299.29729 150.79729 15079.72972 2.29729 299.2973 150.79729 15079.72996 2.29729 299.29729 150.7972900000002 15079.72900 2020-01-01 2020-01-02 2020-01-01 00:12:45 2020-01-02 03:41:06 2020-01-01 00:12:45.000 2020-01-02 03:41:06.000 765 99666 50215.5 5021550 765 99666 50215.5 5021550 -32405 32733 4995.66 499566 -128 127 -1.46 -146 +766 2 10756 99667 2.3003 299.3003 150.8003 15080.03003 2.3003 299.3003 150.80029 15080.02961 2.30030 299.30030 150.8003000000001 15080.03000 2020-01-01 2020-01-02 2020-01-01 00:12:46 2020-01-02 03:41:07 2020-01-01 00:12:46.000 2020-01-02 03:41:07.000 766 99667 50216.5 5021650 766 99667 50216.5 5021650 -32404 32734 4996.66 499666 -128 127 -3.02 -302 +767 2 10757 99668 2.3033 299.3033 150.8033 15080.33033 2.3033 299.3033 150.8033 15080.33036 2.30330 299.30330 150.80329999999978 15080.33000 2020-01-01 2020-01-02 2020-01-01 00:12:47 2020-01-02 03:41:08 2020-01-01 00:12:47.000 2020-01-02 03:41:08.000 767 99668 50217.5 5021750 767 99668 50217.5 5021750 -32403 32735 4997.66 499766 -128 123 -4.58 -458 +768 2 10758 99669 2.3063 299.3063 150.8063 15080.63063 2.3063 299.3063 150.8063 15080.6305 2.30630 299.30630 150.80630000000014 15080.63000 2020-01-01 2020-01-02 2020-01-01 00:12:48 2020-01-02 03:41:09 2020-01-01 00:12:48.000 2020-01-02 03:41:09.000 768 99669 50218.5 5021850 768 99669 50218.5 5021850 -32402 32736 4998.66 499866 -127 124 -3.58 -358 +769 2 10759 99670 2.3093 299.3093 150.8093 15080.93093 2.3093 299.3093 150.8093 15080.93084 2.30930 299.30930 150.80930000000012 15080.93000 2020-01-01 2020-01-02 2020-01-01 00:12:49 2020-01-02 03:41:10 2020-01-01 00:12:49.000 2020-01-02 03:41:10.000 769 99670 50219.5 5021950 769 99670 50219.5 5021950 -32401 32737 4999.66 499966 -126 125 -2.58 -258 +77 2 10067 99977 0.23123 300.23123 150.23123 15173.35435 0.23123 300.23123 150.23123 15173.35439 0.23123 300.23123 150.23122999999993 15173.35423 2020-01-01 2020-01-02 2020-01-01 00:01:17 2020-01-02 03:46:17 2020-01-01 00:01:17.000 2020-01-02 03:46:17.000 77 99977 50027 5052727 77 99977 50027 5052727 -32492 32443 4606.009900990099 465207 -125 126 -1.99009900990099 -201 +770 2 10760 99671 2.31231 299.31231 150.81231 15081.23123 2.31231 299.31232 150.81231 15081.23144 2.31231 299.31231 150.8123099999999 15081.23100 2020-01-01 2020-01-02 2020-01-01 00:12:50 2020-01-02 03:41:11 2020-01-01 00:12:50.000 2020-01-02 03:41:11.000 770 99671 50220.5 5022050 770 99671 50220.5 5022050 -32400 32738 5000.66 500066 -125 126 -1.58 -158 +771 2 10761 99672 2.31531 299.31531 150.81531 15081.53153 2.31531 299.3153 150.81531 15081.53173 2.31531 299.31531 150.81530999999998 15081.53100 2020-01-01 2020-01-02 2020-01-01 00:12:51 2020-01-02 03:41:12 2020-01-01 00:12:51.000 2020-01-02 03:41:12.000 771 99672 50221.5 5022150 771 99672 50221.5 5022150 -32399 32739 5001.66 500166 -124 127 -0.58 -58 +772 2 10762 99673 2.31831 299.31831 150.81831 15081.83183 2.31831 299.31833 150.81831 15081.83183 2.31831 299.31831 150.81831000000003 15081.83100 2020-01-01 2020-01-02 2020-01-01 00:12:52 2020-01-02 03:41:13 2020-01-01 00:12:52.000 2020-01-02 03:41:13.000 772 99673 50222.5 5022250 772 99673 50222.5 5022250 -32398 32740 5002.66 500266 -128 127 -2.14 -214 +773 2 10763 99674 2.32132 299.32132 150.82132 15082.13213 2.32132 299.32132 150.82131 15082.13197 2.32132 299.32132 150.8213199999998 15082.13200 2020-01-01 2020-01-02 2020-01-01 00:12:53 2020-01-02 03:41:14 2020-01-01 00:12:53.000 2020-01-02 03:41:14.000 773 99674 50223.5 5022350 773 99674 50223.5 5022350 -32397 32741 5003.66 500366 -128 123 -3.7 -370 +774 2 10764 99675 2.32432 299.32432 150.82432 15082.43243 2.32432 299.3243 150.82432 15082.43231 2.32432 299.32432 150.8243199999999 15082.43200 2020-01-01 2020-01-02 2020-01-01 00:12:54 2020-01-02 03:41:15 2020-01-01 00:12:54.000 2020-01-02 03:41:15.000 774 99675 50224.5 5022450 774 99675 50224.5 5022450 -32396 32742 5004.66 500466 -127 124 -2.7 -270 +775 2 10765 99676 2.32732 299.32732 150.82732 15082.73273 2.32732 299.32733 150.82732 15082.73291 2.32732 299.32732 150.82732000000016 15082.73200 2020-01-01 2020-01-02 2020-01-01 00:12:55 2020-01-02 03:41:16 2020-01-01 00:12:55.000 2020-01-02 03:41:16.000 775 99676 50225.5 5022550 775 99676 50225.5 5022550 -32395 32743 5005.66 500566 -126 125 -1.7 -170 +776 2 10766 99677 2.33033 299.33033 150.83033 15083.03303 2.33033 299.33032 150.83033 15083.0332 2.33033 299.33033 150.83033000000003 15083.03300 2020-01-01 2020-01-02 2020-01-01 00:12:56 2020-01-02 03:41:17 2020-01-01 00:12:56.000 2020-01-02 03:41:17.000 776 99677 50226.5 5022650 776 99677 50226.5 5022650 -32394 32744 5006.66 500666 -125 126 -0.7 -70 +777 2 10767 99678 2.33333 299.33333 150.83333 15083.33333 2.33333 299.33334 150.83333 15083.3333 2.33333 299.33333 150.83333000000002 15083.33300 2020-01-01 2020-01-02 2020-01-01 00:12:57 2020-01-02 03:41:18 2020-01-01 00:12:57.000 2020-01-02 03:41:18.000 777 99678 50227.5 5022750 777 99678 50227.5 5022750 -32393 32745 5007.66 500766 -124 127 0.3 30 +778 2 10768 99679 2.33633 299.33633 150.83633 15083.63363 2.33633 299.33633 150.83633 15083.63348 2.33633 299.33633 150.83633000000006 15083.63300 2020-01-01 2020-01-02 2020-01-01 00:12:58 2020-01-02 03:41:19 2020-01-01 00:12:58.000 2020-01-02 03:41:19.000 778 99679 50228.5 5022850 778 99679 50228.5 5022850 -32392 32746 5008.66 500866 -128 127 -1.26 -126 +779 2 10769 99680 2.33933 299.33933 150.83933 15083.93393 2.33933 299.33932 150.83933 15083.93378 2.33933 299.33933 150.83933000000002 15083.93300 2020-01-01 2020-01-02 2020-01-01 00:12:59 2020-01-02 03:41:20 2020-01-01 00:12:59.000 2020-01-02 03:41:20.000 779 99680 50229.5 5022950 779 99680 50229.5 5022950 -32391 32747 5009.66 500966 -128 123 -2.82 -282 +78 2 10068 99978 0.23423 300.23423 150.23423 15173.65765 0.23423 300.23422 150.23423 15173.65769 0.23423 300.23423 150.23423000000003 15173.65723 2020-01-01 2020-01-02 2020-01-01 00:01:18 2020-01-02 03:46:18 2020-01-01 00:01:18.000 2020-01-02 03:46:18.000 78 99978 50028 5052828 78 99978 50028 5052828 -32491 32444 4607.009900990099 465308 -124 127 -0.9900990099009901 -100 +780 2 10770 99681 2.34234 299.34234 150.84234 15084.23423 2.34234 299.34235 150.84234 15084.23437 2.34234 299.34234 150.8423399999999 15084.23400 2020-01-01 2020-01-02 2020-01-01 00:13:00 2020-01-02 03:41:21 2020-01-01 00:13:00.000 2020-01-02 03:41:21.000 780 99681 50230.5 5023050 780 99681 50230.5 5023050 -32390 32748 5010.66 501066 -127 124 -1.82 -182 +781 2 10771 99682 2.34534 299.34534 150.84534 15084.53453 2.34534 299.34534 150.84534 15084.53467 2.34534 299.34534 150.8453399999999 15084.53400 2020-01-01 2020-01-02 2020-01-01 00:13:01 2020-01-02 03:41:22 2020-01-01 00:13:01.000 2020-01-02 03:41:22.000 781 99682 50231.5 5023150 781 99682 50231.5 5023150 -32389 32749 5011.66 501166 -126 125 -0.82 -82 +782 2 10772 99683 2.34834 299.34834 150.84834 15084.83483 2.34834 299.34836 150.84834 15084.83477 2.34834 299.34834 150.84834000000006 15084.83400 2020-01-01 2020-01-02 2020-01-01 00:13:02 2020-01-02 03:41:23 2020-01-01 00:13:02.000 2020-01-02 03:41:23.000 782 99683 50232.5 5023250 782 99683 50232.5 5023250 -32388 32750 5012.66 501266 -125 126 0.18 18 +783 2 10773 99684 2.35135 299.35135 150.85135 15085.13513 2.35135 299.35135 150.85134 15085.13495 2.35135 299.35135 150.85135000000014 15085.13500 2020-01-01 2020-01-02 2020-01-01 00:13:03 2020-01-02 03:41:24 2020-01-01 00:13:03.000 2020-01-02 03:41:24.000 783 99684 50233.5 5023350 783 99684 50233.5 5023350 -32387 32751 5013.66 501366 -124 127 1.18 118 +784 2 10774 99685 2.35435 299.35435 150.85435 15085.43543 2.35435 299.35434 150.85435 15085.43525 2.35435 299.35435 150.85434999999978 15085.43500 2020-01-01 2020-01-02 2020-01-01 00:13:04 2020-01-02 03:41:25 2020-01-01 00:13:04.000 2020-01-02 03:41:25.000 784 99685 50234.5 5023450 784 99685 50234.5 5023450 -32386 32752 5014.66 501466 -128 127 -0.38 -38 +785 2 10775 99686 2.35735 299.35735 150.85735 15085.73573 2.35735 299.35736 150.85736 15085.736 2.35735 299.35735 150.85735000000017 15085.73500 2020-01-01 2020-01-02 2020-01-01 00:13:05 2020-01-02 03:41:26 2020-01-01 00:13:05.000 2020-01-02 03:41:26.000 785 99686 50235.5 5023550 785 99686 50235.5 5023550 -32385 32753 5015.66 501566 -128 127 -1.94 -194 +786 2 10776 99687 2.36036 299.36036 150.86036 15086.03603 2.36036 299.36035 150.86036 15086.03614 2.36036 299.36036 150.86036000000004 15086.03600 2020-01-01 2020-01-02 2020-01-01 00:13:06 2020-01-02 03:41:27 2020-01-01 00:13:06.000 2020-01-02 03:41:27.000 786 99687 50236.5 5023650 786 99687 50236.5 5023650 -32384 32754 5016.66 501666 -128 124 -3.5 -350 +787 2 10777 99688 2.36336 299.36336 150.86336 15086.33633 2.36336 299.36337 150.86336 15086.33628 2.36336 299.36336 150.86335999999991 15086.33600 2020-01-01 2020-01-02 2020-01-01 00:13:07 2020-01-02 03:41:28 2020-01-01 00:13:07.000 2020-01-02 03:41:28.000 787 99688 50237.5 5023750 787 99688 50237.5 5023750 -32383 32755 5017.66 501766 -127 125 -2.5 -250 788 2 10778 99689 2.36636 299.36636 150.86636 15086.63663 2.36636 299.36636 150.86636 15086.63641 2.36636 299.36636 150.86636 15086.63600 2020-01-01 2020-01-02 2020-01-01 00:13:08 2020-01-02 03:41:29 2020-01-01 00:13:08.000 2020-01-02 03:41:29.000 788 99689 50238.5 5023850 788 99689 50238.5 5023850 -32382 32756 5018.66 501866 -126 126 -1.5 -150 -789 2 10779 99690 2.36936 299.36936 150.86936 15086.93693 2.36936 299.36935 150.86936 15086.93672 2.36936 299.36936 150.86936 15086.93600 2020-01-01 2020-01-02 2020-01-01 00:13:09 2020-01-02 03:41:30 2020-01-01 00:13:09.000 2020-01-02 03:41:30.000 789 99690 50239.5 5023950 789 99690 50239.5 5023950 -32381 32757 5019.66 501966 -125 127 -0.5 -50 -79 2 10069 99979 0.23723 300.23723 150.23723 15173.96096 0.23723 300.23724 150.23724 15173.96129 0.23723 300.23723 150.23723 15173.96023 2020-01-01 2020-01-02 2020-01-01 00:01:19 2020-01-02 03:46:19 2020-01-01 00:01:19.000 2020-01-02 03:46:19.000 79 99979 50029 5052929 79 99979 50029 5052929 -32490 32445 4608.009900990099 465409 -128 127 -2.5247524752475248 -255 -790 2 10780 99691 2.37237 299.37237 150.87237 15087.23723 2.37237 299.37238 150.87237 15087.23747 2.37237 299.37237 150.87237 15087.23700 2020-01-01 2020-01-02 2020-01-01 00:13:10 2020-01-02 03:41:31 2020-01-01 00:13:10.000 2020-01-02 03:41:31.000 790 99691 50240.5 5024050 790 99691 50240.5 5024050 -32380 32758 5020.66 502066 -128 127 -2.06 -206 -791 2 10781 99692 2.37537 299.37537 150.87537 15087.53753 2.37537 299.37537 150.87537 15087.53761 2.37537 299.37537 150.87537 15087.53700 2020-01-01 2020-01-02 2020-01-01 00:13:11 2020-01-02 03:41:32 2020-01-01 00:13:11.000 2020-01-02 03:41:32.000 791 99692 50241.5 5024150 791 99692 50241.5 5024150 -32379 32759 5021.66 502166 -128 127 -3.62 -362 -792 2 10782 99693 2.37837 299.37837 150.87837 15087.83783 2.37837 299.3784 150.87837 15087.83775 2.37837 299.37837 150.87837 15087.83700 2020-01-01 2020-01-02 2020-01-01 00:13:12 2020-01-02 03:41:33 2020-01-01 00:13:12.000 2020-01-02 03:41:33.000 792 99693 50242.5 5024250 792 99693 50242.5 5024250 -32378 32760 5022.66 502266 -128 123 -5.18 -518 -793 2 10783 99694 2.38138 299.38138 150.88138 15088.13813 2.38138 299.38138 150.88137 15088.13789 2.38138 299.38138 150.88138 15088.13800 2020-01-01 2020-01-02 2020-01-01 00:13:13 2020-01-02 03:41:34 2020-01-01 00:13:13.000 2020-01-02 03:41:34.000 793 99694 50243.5 5024350 793 99694 50243.5 5024350 -32377 32761 5023.66 502366 -127 124 -4.18 -418 -794 2 10784 99695 2.38438 299.38438 150.88438 15088.43843 2.38438 299.3844 150.88438 15088.43864 2.38438 299.38438 150.88438 15088.43800 2020-01-01 2020-01-02 2020-01-01 00:13:14 2020-01-02 03:41:35 2020-01-01 00:13:14.000 2020-01-02 03:41:35.000 794 99695 50244.5 5024450 794 99695 50244.5 5024450 -32376 32762 5024.66 502466 -126 125 -3.18 -318 -795 2 10785 99696 2.38738 299.38738 150.88738 15088.73873 2.38738 299.3874 150.88738 15088.73894 2.38738 299.38738 150.88738 15088.73800 2020-01-01 2020-01-02 2020-01-01 00:13:15 2020-01-02 03:41:36 2020-01-01 00:13:15.000 2020-01-02 03:41:36.000 795 99696 50245.5 5024550 795 99696 50245.5 5024550 -32375 32763 5025.66 502566 -125 126 -2.18 -218 -796 2 10786 99697 2.39039 299.39039 150.89039 15089.03903 2.39039 299.39038 150.89039 15089.03908 2.39039 299.39039 150.89039 15089.03900 2020-01-01 2020-01-02 2020-01-01 00:13:16 2020-01-02 03:41:37 2020-01-01 00:13:16.000 2020-01-02 03:41:37.000 796 99697 50246.5 5024650 796 99697 50246.5 5024650 -32374 32764 5026.66 502666 -124 127 -1.18 -118 -797 2 10787 99698 2.39339 299.39339 150.89339 15089.33933 2.39339 299.3934 150.89339 15089.33921 2.39339 299.39339 150.89339 15089.33900 2020-01-01 2020-01-02 2020-01-01 00:13:17 2020-01-02 03:41:38 2020-01-01 00:13:17.000 2020-01-02 03:41:38.000 797 99698 50247.5 5024750 797 99698 50247.5 5024750 -32373 32765 5027.66 502766 -128 127 -2.74 -274 -798 2 10788 99699 2.39639 299.39639 150.89639 15089.63963 2.39639 299.3964 150.89639 15089.63936 2.39639 299.39639 150.89639 15089.63900 2020-01-01 2020-01-02 2020-01-01 00:13:18 2020-01-02 03:41:39 2020-01-01 00:13:18.000 2020-01-02 03:41:39.000 798 99699 50248.5 5024850 798 99699 50248.5 5024850 -32372 32766 5028.66 502866 -128 123 -4.3 -430 -799 2 10789 99700 2.39939 299.39939 150.89939 15089.93993 2.39939 299.3994 150.8994 15089.94011 2.39939 299.39939 150.89939 15089.93900 2020-01-01 2020-01-02 2020-01-01 00:13:19 2020-01-02 03:41:40 2020-01-01 00:13:19.000 2020-01-02 03:41:40.000 799 99700 50249.5 5024950 799 99700 50249.5 5024950 -32371 32767 5029.66 502966 -127 124 -3.3 -330 -8 2 1007 9998 0.02402 300.02402 150.02402 15152.42642 0.02402 300.02402 150.02402 15152.42607 0.02402 300.02402 150.02402 15152.42602 2020-01-01 2020-01-02 2020-01-01 00:00:08 2020-01-02 03:45:08 2020-01-01 00:00:08.000 2020-01-02 03:45:08.000 8 99908 49958 5045758 8 99908 49958 5045758 -32561 32374 4537.009900990099 458238 -125 126 -0.019801980198019802 -2 -80 2 10070 99980 0.24024 300.24024 150.24024 15174.26426 0.24024 300.24023 150.24023 15174.26397 0.24024 300.24024 150.24024 15174.26424 2020-01-01 2020-01-02 2020-01-01 00:01:20 2020-01-02 03:46:20 2020-01-01 00:01:20.000 2020-01-02 03:46:20.000 80 99980 50030 5053030 80 99980 50030 5053030 -32489 32446 4609.009900990099 465510 -128 123 -4.0594059405940595 -410 -800 2 10790 99701 2.4024 299.4024 150.9024 15090.24024 2.4024 299.4024 150.9024 15090.24041 2.40240 299.40240 150.90240 15090.24000 2020-01-01 2020-01-02 2020-01-01 00:13:20 2020-01-02 03:41:41 2020-01-01 00:13:20.000 2020-01-02 03:41:41.000 800 99701 50250.5 5025050 800 99701 50250.5 5025050 -32768 32167 4375.3 437530 -126 125 -2.3 -230 -801 2 10791 99702 2.4054 299.4054 150.9054 15090.54054 2.4054 299.4054 150.9054 15090.54058 2.40540 299.40540 150.90540 15090.54000 2020-01-01 2020-01-02 2020-01-01 00:13:21 2020-01-02 03:41:42 2020-01-01 00:13:21.000 2020-01-02 03:41:42.000 801 99702 50251.5 5025150 801 99702 50251.5 5025150 -32767 32168 4376.3 437630 -125 126 -1.3 -130 -802 2 10792 99703 2.4084 299.4084 150.9084 15090.84084 2.4084 299.40842 150.9084 15090.84069 2.40840 299.40840 150.90840 15090.84000 2020-01-01 2020-01-02 2020-01-01 00:13:22 2020-01-02 03:41:43 2020-01-01 00:13:22.000 2020-01-02 03:41:43.000 802 99703 50252.5 5025250 802 99703 50252.5 5025250 -32766 32169 4377.3 437730 -124 127 -0.3 -30 -803 2 10793 99704 2.41141 299.41141 150.91141 15091.14114 2.41141 299.4114 150.9114 15091.14098 2.41141 299.41141 150.91141 15091.14100 2020-01-01 2020-01-02 2020-01-01 00:13:23 2020-01-02 03:41:44 2020-01-01 00:13:23.000 2020-01-02 03:41:44.000 803 99704 50253.5 5025350 803 99704 50253.5 5025350 -32765 32170 4378.3 437830 -128 127 -1.86 -186 -804 2 10794 99705 2.41441 299.41441 150.91441 15091.44144 2.41441 299.41443 150.91441 15091.44158 2.41441 299.41441 150.91441 15091.44100 2020-01-01 2020-01-02 2020-01-01 00:13:24 2020-01-02 03:41:45 2020-01-01 00:13:24.000 2020-01-02 03:41:45.000 804 99705 50254.5 5025450 804 99705 50254.5 5025450 -32764 32171 4379.3 437930 -128 123 -3.42 -342 +789 2 10779 99690 2.36936 299.36936 150.86936 15086.93693 2.36936 299.36935 150.86936 15086.93672 2.36936 299.36936 150.86936000000006 15086.93600 2020-01-01 2020-01-02 2020-01-01 00:13:09 2020-01-02 03:41:30 2020-01-01 00:13:09.000 2020-01-02 03:41:30.000 789 99690 50239.5 5023950 789 99690 50239.5 5023950 -32381 32757 5019.66 501966 -125 127 -0.5 -50 +79 2 10069 99979 0.23723 300.23723 150.23723 15173.96096 0.23723 300.23724 150.23724 15173.96129 0.23723 300.23723 150.23723000000015 15173.96023 2020-01-01 2020-01-02 2020-01-01 00:01:19 2020-01-02 03:46:19 2020-01-01 00:01:19.000 2020-01-02 03:46:19.000 79 99979 50029 5052929 79 99979 50029 5052929 -32490 32445 4608.009900990099 465409 -128 127 -2.5247524752475248 -255 +790 2 10780 99691 2.37237 299.37237 150.87237 15087.23723 2.37237 299.37238 150.87237 15087.23747 2.37237 299.37237 150.87236999999982 15087.23700 2020-01-01 2020-01-02 2020-01-01 00:13:10 2020-01-02 03:41:31 2020-01-01 00:13:10.000 2020-01-02 03:41:31.000 790 99691 50240.5 5024050 790 99691 50240.5 5024050 -32380 32758 5020.66 502066 -128 127 -2.06 -206 +791 2 10781 99692 2.37537 299.37537 150.87537 15087.53753 2.37537 299.37537 150.87537 15087.53761 2.37537 299.37537 150.87536999999986 15087.53700 2020-01-01 2020-01-02 2020-01-01 00:13:11 2020-01-02 03:41:32 2020-01-01 00:13:11.000 2020-01-02 03:41:32.000 791 99692 50241.5 5024150 791 99692 50241.5 5024150 -32379 32759 5021.66 502166 -128 127 -3.62 -362 +792 2 10782 99693 2.37837 299.37837 150.87837 15087.83783 2.37837 299.3784 150.87837 15087.83775 2.37837 299.37837 150.87837000000016 15087.83700 2020-01-01 2020-01-02 2020-01-01 00:13:12 2020-01-02 03:41:33 2020-01-01 00:13:12.000 2020-01-02 03:41:33.000 792 99693 50242.5 5024250 792 99693 50242.5 5024250 -32378 32760 5022.66 502266 -128 123 -5.18 -518 +793 2 10783 99694 2.38138 299.38138 150.88138 15088.13813 2.38138 299.38138 150.88137 15088.13789 2.38138 299.38138 150.8813800000001 15088.13800 2020-01-01 2020-01-02 2020-01-01 00:13:13 2020-01-02 03:41:34 2020-01-01 00:13:13.000 2020-01-02 03:41:34.000 793 99694 50243.5 5024350 793 99694 50243.5 5024350 -32377 32761 5023.66 502366 -127 124 -4.18 -418 +794 2 10784 99695 2.38438 299.38438 150.88438 15088.43843 2.38438 299.3844 150.88438 15088.43864 2.38438 299.38438 150.88438000000005 15088.43800 2020-01-01 2020-01-02 2020-01-01 00:13:14 2020-01-02 03:41:35 2020-01-01 00:13:14.000 2020-01-02 03:41:35.000 794 99695 50244.5 5024450 794 99695 50244.5 5024450 -32376 32762 5024.66 502466 -126 125 -3.18 -318 +795 2 10785 99696 2.38738 299.38738 150.88738 15088.73873 2.38738 299.3874 150.88738 15088.73894 2.38738 299.38738 150.8873800000001 15088.73800 2020-01-01 2020-01-02 2020-01-01 00:13:15 2020-01-02 03:41:36 2020-01-01 00:13:15.000 2020-01-02 03:41:36.000 795 99696 50245.5 5024550 795 99696 50245.5 5024550 -32375 32763 5025.66 502566 -125 126 -2.18 -218 +796 2 10786 99697 2.39039 299.39039 150.89039 15089.03903 2.39039 299.39038 150.89039 15089.03908 2.39039 299.39039 150.89038999999997 15089.03900 2020-01-01 2020-01-02 2020-01-01 00:13:16 2020-01-02 03:41:37 2020-01-01 00:13:16.000 2020-01-02 03:41:37.000 796 99697 50246.5 5024650 796 99697 50246.5 5024650 -32374 32764 5026.66 502666 -124 127 -1.18 -118 +797 2 10787 99698 2.39339 299.39339 150.89339 15089.33933 2.39339 299.3934 150.89339 15089.33921 2.39339 299.39339 150.8933899999999 15089.33900 2020-01-01 2020-01-02 2020-01-01 00:13:17 2020-01-02 03:41:38 2020-01-01 00:13:17.000 2020-01-02 03:41:38.000 797 99698 50247.5 5024750 797 99698 50247.5 5024750 -32373 32765 5027.66 502766 -128 127 -2.74 -274 +798 2 10788 99699 2.39639 299.39639 150.89639 15089.63963 2.39639 299.3964 150.89639 15089.63936 2.39639 299.39639 150.8963899999999 15089.63900 2020-01-01 2020-01-02 2020-01-01 00:13:18 2020-01-02 03:41:39 2020-01-01 00:13:18.000 2020-01-02 03:41:39.000 798 99699 50248.5 5024850 798 99699 50248.5 5024850 -32372 32766 5028.66 502866 -128 123 -4.3 -430 +799 2 10789 99700 2.39939 299.39939 150.89939 15089.93993 2.39939 299.3994 150.8994 15089.94011 2.39939 299.39939 150.89938999999998 15089.93900 2020-01-01 2020-01-02 2020-01-01 00:13:19 2020-01-02 03:41:40 2020-01-01 00:13:19.000 2020-01-02 03:41:40.000 799 99700 50249.5 5024950 799 99700 50249.5 5024950 -32371 32767 5029.66 502966 -127 124 -3.3 -330 +8 2 1007 9998 0.02402 300.02402 150.02402 15152.42642 0.02402 300.02402 150.02402 15152.42607 0.02402 300.02402 150.02402000000012 15152.42602 2020-01-01 2020-01-02 2020-01-01 00:00:08 2020-01-02 03:45:08 2020-01-01 00:00:08.000 2020-01-02 03:45:08.000 8 99908 49958 5045758 8 99908 49958 5045758 -32561 32374 4537.009900990099 458238 -125 126 -0.019801980198019802 -2 +80 2 10070 99980 0.24024 300.24024 150.24024 15174.26426 0.24024 300.24023 150.24023 15174.26397 0.24024 300.24024 150.2402399999998 15174.26424 2020-01-01 2020-01-02 2020-01-01 00:01:20 2020-01-02 03:46:20 2020-01-01 00:01:20.000 2020-01-02 03:46:20.000 80 99980 50030 5053030 80 99980 50030 5053030 -32489 32446 4609.009900990099 465510 -128 123 -4.0594059405940595 -410 +800 2 10790 99701 2.4024 299.4024 150.9024 15090.24024 2.4024 299.4024 150.9024 15090.24041 2.40240 299.40240 150.90240000000017 15090.24000 2020-01-01 2020-01-02 2020-01-01 00:13:20 2020-01-02 03:41:41 2020-01-01 00:13:20.000 2020-01-02 03:41:41.000 800 99701 50250.5 5025050 800 99701 50250.5 5025050 -32768 32167 4375.3 437530 -126 125 -2.3 -230 +801 2 10791 99702 2.4054 299.4054 150.9054 15090.54054 2.4054 299.4054 150.9054 15090.54058 2.40540 299.40540 150.90539999999984 15090.54000 2020-01-01 2020-01-02 2020-01-01 00:13:21 2020-01-02 03:41:42 2020-01-01 00:13:21.000 2020-01-02 03:41:42.000 801 99702 50251.5 5025150 801 99702 50251.5 5025150 -32767 32168 4376.3 437630 -125 126 -1.3 -130 +802 2 10792 99703 2.4084 299.4084 150.9084 15090.84084 2.4084 299.40842 150.9084 15090.84069 2.40840 299.40840 150.90840000000009 15090.84000 2020-01-01 2020-01-02 2020-01-01 00:13:22 2020-01-02 03:41:43 2020-01-01 00:13:22.000 2020-01-02 03:41:43.000 802 99703 50252.5 5025250 802 99703 50252.5 5025250 -32766 32169 4377.3 437730 -124 127 -0.3 -30 +803 2 10793 99704 2.41141 299.41141 150.91141 15091.14114 2.41141 299.4114 150.9114 15091.14098 2.41141 299.41141 150.91141000000007 15091.14100 2020-01-01 2020-01-02 2020-01-01 00:13:23 2020-01-02 03:41:44 2020-01-01 00:13:23.000 2020-01-02 03:41:44.000 803 99704 50253.5 5025350 803 99704 50253.5 5025350 -32765 32170 4378.3 437830 -128 127 -1.86 -186 +804 2 10794 99705 2.41441 299.41441 150.91441 15091.44144 2.41441 299.41443 150.91441 15091.44158 2.41441 299.41441 150.91440999999995 15091.44100 2020-01-01 2020-01-02 2020-01-01 00:13:24 2020-01-02 03:41:45 2020-01-01 00:13:24.000 2020-01-02 03:41:45.000 804 99705 50254.5 5025450 804 99705 50254.5 5025450 -32764 32171 4379.3 437930 -128 123 -3.42 -342 805 2 10795 99706 2.41741 299.41741 150.91741 15091.74174 2.41741 299.41742 150.91741 15091.74188 2.41741 299.41741 150.91741 15091.74100 2020-01-01 2020-01-02 2020-01-01 00:13:25 2020-01-02 03:41:46 2020-01-01 00:13:25.000 2020-01-02 03:41:46.000 805 99706 50255.5 5025550 805 99706 50255.5 5025550 -32763 32172 4380.3 438030 -127 124 -2.42 -242 -806 2 10796 99707 2.42042 299.42042 150.92042 15092.04204 2.42042 299.4204 150.92042 15092.04205 2.42042 299.42042 150.92042 15092.04200 2020-01-01 2020-01-02 2020-01-01 00:13:26 2020-01-02 03:41:47 2020-01-01 00:13:26.000 2020-01-02 03:41:47.000 806 99707 50256.5 5025650 806 99707 50256.5 5025650 -32762 32173 4381.3 438130 -126 125 -1.42 -142 -807 2 10797 99708 2.42342 299.42342 150.92342 15092.34234 2.42342 299.42343 150.92342 15092.34216 2.42342 299.42342 150.92342 15092.34200 2020-01-01 2020-01-02 2020-01-01 00:13:27 2020-01-02 03:41:48 2020-01-01 00:13:27.000 2020-01-02 03:41:48.000 807 99708 50257.5 5025750 807 99708 50257.5 5025750 -32761 32174 4382.3 438230 -125 126 -0.42 -42 -808 2 10798 99709 2.42642 299.42642 150.92642 15092.64264 2.42642 299.42642 150.92642 15092.64245 2.42642 299.42642 150.92642 15092.64200 2020-01-01 2020-01-02 2020-01-01 00:13:28 2020-01-02 03:41:49 2020-01-01 00:13:28.000 2020-01-02 03:41:49.000 808 99709 50258.5 5025850 808 99709 50258.5 5025850 -32760 32175 4383.3 438330 -124 127 0.58 58 -809 2 10799 99710 2.42942 299.42942 150.92942 15092.94294 2.42942 299.42944 150.92943 15092.94305 2.42942 299.42942 150.92942 15092.94200 2020-01-01 2020-01-02 2020-01-01 00:13:29 2020-01-02 03:41:50 2020-01-01 00:13:29.000 2020-01-02 03:41:50.000 809 99710 50259.5 5025950 809 99710 50259.5 5025950 -32759 32176 4384.3 438430 -128 127 -0.98 -98 -81 2 10071 99981 0.24324 300.24324 150.24324 15174.56756 0.24324 300.24326 150.24324 15174.56758 0.24324 300.24324 150.24324 15174.56724 2020-01-01 2020-01-02 2020-01-01 00:01:21 2020-01-02 03:46:21 2020-01-01 00:01:21.000 2020-01-02 03:46:21.000 81 99981 50031 5053131 81 99981 50031 5053131 -32488 32447 4610.009900990099 465611 -127 124 -3.0594059405940595 -309 -810 2 10800 99711 2.43243 299.43243 150.93243 15093.24324 2.43243 299.43243 150.93243 15093.24338 2.43243 299.43243 150.93243 15093.24300 2020-01-01 2020-01-02 2020-01-01 00:13:30 2020-01-02 03:41:51 2020-01-01 00:13:30.000 2020-01-02 03:41:51.000 810 99711 50260.5 5026050 810 99711 50260.5 5026050 -32758 32177 4385.3 438530 -128 127 -2.54 -254 -811 2 10801 99712 2.43543 299.43543 150.93543 15093.54354 2.43543 299.43542 150.93543 15093.54353 2.43543 299.43543 150.93543 15093.54300 2020-01-01 2020-01-02 2020-01-01 00:13:31 2020-01-02 03:41:52 2020-01-01 00:13:31.000 2020-01-02 03:41:52.000 811 99712 50261.5 5026150 811 99712 50261.5 5026150 -32757 32178 4386.3 438630 -128 124 -4.1 -410 -812 2 10802 99713 2.43843 299.43843 150.93843 15093.84384 2.43843 299.43845 150.93844 15093.84428 2.43843 299.43843 150.93843 15093.84300 2020-01-01 2020-01-02 2020-01-01 00:13:32 2020-01-02 03:41:53 2020-01-01 00:13:32.000 2020-01-02 03:41:53.000 812 99713 50262.5 5026250 812 99713 50262.5 5026250 -32756 32179 4387.3 438730 -127 125 -3.1 -310 +806 2 10796 99707 2.42042 299.42042 150.92042 15092.04204 2.42042 299.4204 150.92042 15092.04205 2.42042 299.42042 150.92042000000018 15092.04200 2020-01-01 2020-01-02 2020-01-01 00:13:26 2020-01-02 03:41:47 2020-01-01 00:13:26.000 2020-01-02 03:41:47.000 806 99707 50256.5 5025650 806 99707 50256.5 5025650 -32762 32173 4381.3 438130 -126 125 -1.42 -142 +807 2 10797 99708 2.42342 299.42342 150.92342 15092.34234 2.42342 299.42343 150.92342 15092.34216 2.42342 299.42342 150.92341999999985 15092.34200 2020-01-01 2020-01-02 2020-01-01 00:13:27 2020-01-02 03:41:48 2020-01-01 00:13:27.000 2020-01-02 03:41:48.000 807 99708 50257.5 5025750 807 99708 50257.5 5025750 -32761 32174 4382.3 438230 -125 126 -0.42 -42 +808 2 10798 99709 2.42642 299.42642 150.92642 15092.64264 2.42642 299.42642 150.92642 15092.64245 2.42642 299.42642 150.92641999999987 15092.64200 2020-01-01 2020-01-02 2020-01-01 00:13:28 2020-01-02 03:41:49 2020-01-01 00:13:28.000 2020-01-02 03:41:49.000 808 99709 50258.5 5025850 808 99709 50258.5 5025850 -32760 32175 4383.3 438330 -124 127 0.58 58 +809 2 10799 99710 2.42942 299.42942 150.92942 15092.94294 2.42942 299.42944 150.92943 15092.94305 2.42942 299.42942 150.9294200000002 15092.94200 2020-01-01 2020-01-02 2020-01-01 00:13:29 2020-01-02 03:41:50 2020-01-01 00:13:29.000 2020-01-02 03:41:50.000 809 99710 50259.5 5025950 809 99710 50259.5 5025950 -32759 32176 4384.3 438430 -128 127 -0.98 -98 +81 2 10071 99981 0.24324 300.24324 150.24324 15174.56756 0.24324 300.24326 150.24324 15174.56758 0.24324 300.24324 150.24323999999987 15174.56724 2020-01-01 2020-01-02 2020-01-01 00:01:21 2020-01-02 03:46:21 2020-01-01 00:01:21.000 2020-01-02 03:46:21.000 81 99981 50031 5053131 81 99981 50031 5053131 -32488 32447 4610.009900990099 465611 -127 124 -3.0594059405940595 -309 +810 2 10800 99711 2.43243 299.43243 150.93243 15093.24324 2.43243 299.43243 150.93243 15093.24338 2.43243 299.43243 150.93243000000012 15093.24300 2020-01-01 2020-01-02 2020-01-01 00:13:30 2020-01-02 03:41:51 2020-01-01 00:13:30.000 2020-01-02 03:41:51.000 810 99711 50260.5 5026050 810 99711 50260.5 5026050 -32758 32177 4385.3 438530 -128 127 -2.54 -254 +811 2 10801 99712 2.43543 299.43543 150.93543 15093.54354 2.43543 299.43542 150.93543 15093.54353 2.43543 299.43543 150.9354299999998 15093.54300 2020-01-01 2020-01-02 2020-01-01 00:13:31 2020-01-02 03:41:52 2020-01-01 00:13:31.000 2020-01-02 03:41:52.000 811 99712 50261.5 5026150 811 99712 50261.5 5026150 -32757 32178 4386.3 438630 -128 124 -4.1 -410 +812 2 10802 99713 2.43843 299.43843 150.93843 15093.84384 2.43843 299.43845 150.93844 15093.84428 2.43843 299.43843 150.9384300000001 15093.84300 2020-01-01 2020-01-02 2020-01-01 00:13:32 2020-01-02 03:41:53 2020-01-01 00:13:32.000 2020-01-02 03:41:53.000 812 99713 50262.5 5026250 812 99713 50262.5 5026250 -32756 32179 4387.3 438730 -127 125 -3.1 -310 813 2 10803 99714 2.44144 299.44144 150.94144 15094.14414 2.44144 299.44144 150.94143 15094.14392 2.44144 299.44144 150.94144 15094.14400 2020-01-01 2020-01-02 2020-01-01 00:13:33 2020-01-02 03:41:54 2020-01-01 00:13:33.000 2020-01-02 03:41:54.000 813 99714 50263.5 5026350 813 99714 50263.5 5026350 -32755 32180 4388.3 438830 -126 126 -2.1 -210 -814 2 10804 99715 2.44444 299.44444 150.94444 15094.44444 2.44444 299.44446 150.94444 15094.44452 2.44444 299.44444 150.94444 15094.44400 2020-01-01 2020-01-02 2020-01-01 00:13:34 2020-01-02 03:41:55 2020-01-01 00:13:34.000 2020-01-02 03:41:55.000 814 99715 50264.5 5026450 814 99715 50264.5 5026450 -32754 32181 4389.3 438930 -125 127 -1.1 -110 -815 2 10805 99716 2.44744 299.44744 150.94744 15094.74474 2.44744 299.44745 150.94744 15094.74485 2.44744 299.44744 150.94744 15094.74400 2020-01-01 2020-01-02 2020-01-01 00:13:35 2020-01-02 03:41:56 2020-01-01 00:13:35.000 2020-01-02 03:41:56.000 815 99716 50265.5 5026550 815 99716 50265.5 5026550 -32753 32182 4390.3 439030 -128 127 -2.66 -266 -816 2 10806 99717 2.45045 299.45045 150.95045 15095.04504 2.45045 299.45044 150.95045 15095.045 2.45045 299.45045 150.95045 15095.04500 2020-01-01 2020-01-02 2020-01-01 00:13:36 2020-01-02 03:41:57 2020-01-01 00:13:36.000 2020-01-02 03:41:57.000 816 99717 50266.5 5026650 816 99717 50266.5 5026650 -32752 32183 4391.3 439130 -128 127 -4.22 -422 -817 2 10807 99718 2.45345 299.45345 150.95345 15095.34534 2.45345 299.45346 150.95345 15095.34574 2.45345 299.45345 150.95345 15095.34500 2020-01-01 2020-01-02 2020-01-01 00:13:37 2020-01-02 03:41:58 2020-01-01 00:13:37.000 2020-01-02 03:41:58.000 817 99718 50267.5 5026750 817 99718 50267.5 5026750 -32751 32184 4392.3 439230 -128 123 -5.78 -578 -818 2 10808 99719 2.45645 299.45645 150.95645 15095.64564 2.45645 299.45645 150.95645 15095.64539 2.45645 299.45645 150.95645 15095.64500 2020-01-01 2020-01-02 2020-01-01 00:13:38 2020-01-02 03:41:59 2020-01-01 00:13:38.000 2020-01-02 03:41:59.000 818 99719 50268.5 5026850 818 99719 50268.5 5026850 -32750 32185 4393.3 439330 -127 124 -4.78 -478 -819 2 10809 99720 2.45945 299.45945 150.95945 15095.94594 2.45945 299.45947 150.95946 15095.94602 2.45945 299.45945 150.95945 15095.94500 2020-01-01 2020-01-02 2020-01-01 00:13:39 2020-01-02 03:42:00 2020-01-01 00:13:39.000 2020-01-02 03:42:00.000 819 99720 50269.5 5026950 819 99720 50269.5 5026950 -32749 32186 4394.3 439430 -126 125 -3.78 -378 -82 2 10072 99982 0.24624 300.24624 150.24624 15174.87087 0.24624 300.24625 150.24624 15174.87088 0.24624 300.24624 150.24624 15174.87024 2020-01-01 2020-01-02 2020-01-01 00:01:22 2020-01-02 03:46:22 2020-01-01 00:01:22.000 2020-01-02 03:46:22.000 82 99982 50032 5053232 82 99982 50032 5053232 -32487 32448 4611.009900990099 465712 -126 125 -2.0594059405940595 -208 -820 2 10810 99721 2.46246 299.46246 150.96246 15096.24624 2.46246 299.46246 150.96246 15096.24633 2.46246 299.46246 150.96246 15096.24600 2020-01-01 2020-01-02 2020-01-01 00:13:40 2020-01-02 03:42:01 2020-01-01 00:13:40.000 2020-01-02 03:42:01.000 820 99721 50270.5 5027050 820 99721 50270.5 5027050 -32748 32187 4395.3 439530 -125 126 -2.78 -278 -821 2 10811 99722 2.46546 299.46546 150.96546 15096.54654 2.46546 299.46545 150.96546 15096.54646 2.46546 299.46546 150.96546 15096.54600 2020-01-01 2020-01-02 2020-01-01 00:13:41 2020-01-02 03:42:02 2020-01-01 00:13:41.000 2020-01-02 03:42:02.000 821 99722 50271.5 5027150 821 99722 50271.5 5027150 -32747 32188 4396.3 439630 -124 127 -1.78 -178 -822 2 10812 99723 2.46846 299.46846 150.96846 15096.84684 2.46846 299.46848 150.96847 15096.84721 2.46846 299.46846 150.96846 15096.84600 2020-01-01 2020-01-02 2020-01-01 00:13:42 2020-01-02 03:42:03 2020-01-01 00:13:42.000 2020-01-02 03:42:03.000 822 99723 50272.5 5027250 822 99723 50272.5 5027250 -32746 32189 4397.3 439730 -128 127 -3.34 -334 -823 2 10813 99724 2.47147 299.47147 150.97147 15097.14714 2.47147 299.47147 150.97146 15097.14686 2.47147 299.47147 150.97147 15097.14700 2020-01-01 2020-01-02 2020-01-01 00:13:43 2020-01-02 03:42:04 2020-01-01 00:13:43.000 2020-01-02 03:42:04.000 823 99724 50273.5 5027350 823 99724 50273.5 5027350 -32745 32190 4398.3 439830 -128 123 -4.9 -490 -824 2 10814 99725 2.47447 299.47447 150.97447 15097.44744 2.47447 299.4745 150.97447 15097.44749 2.47447 299.47447 150.97447 15097.44700 2020-01-01 2020-01-02 2020-01-01 00:13:44 2020-01-02 03:42:05 2020-01-01 00:13:44.000 2020-01-02 03:42:05.000 824 99725 50274.5 5027450 824 99725 50274.5 5027450 -32744 32191 4399.3 439930 -127 124 -3.9 -390 -825 2 10815 99726 2.47747 299.47747 150.97747 15097.74774 2.47747 299.47748 150.97747 15097.74779 2.47747 299.47747 150.97747 15097.74700 2020-01-01 2020-01-02 2020-01-01 00:13:45 2020-01-02 03:42:06 2020-01-01 00:13:45.000 2020-01-02 03:42:06.000 825 99726 50275.5 5027550 825 99726 50275.5 5027550 -32743 32192 4400.3 440030 -126 125 -2.9 -290 -826 2 10816 99727 2.48048 299.48048 150.98048 15098.04804 2.48048 299.48047 150.98048 15098.04809 2.48048 299.48048 150.98048 15098.04800 2020-01-01 2020-01-02 2020-01-01 00:13:46 2020-01-02 03:42:07 2020-01-01 00:13:46.000 2020-01-02 03:42:07.000 826 99727 50276.5 5027650 826 99727 50276.5 5027650 -32742 32193 4401.3 440130 -125 126 -1.9 -190 -827 2 10817 99728 2.48348 299.48348 150.98348 15098.34834 2.48348 299.4835 150.98348 15098.34869 2.48348 299.48348 150.98348 15098.34800 2020-01-01 2020-01-02 2020-01-01 00:13:47 2020-01-02 03:42:08 2020-01-01 00:13:47.000 2020-01-02 03:42:08.000 827 99728 50277.5 5027750 827 99728 50277.5 5027750 -32741 32194 4402.3 440230 -124 127 -0.9 -90 -828 2 10818 99729 2.48648 299.48648 150.98648 15098.64864 2.48648 299.48648 150.98648 15098.64837 2.48648 299.48648 150.98648 15098.64800 2020-01-01 2020-01-02 2020-01-01 00:13:48 2020-01-02 03:42:09 2020-01-01 00:13:48.000 2020-01-02 03:42:09.000 828 99729 50278.5 5027850 828 99729 50278.5 5027850 -32740 32195 4403.3 440330 -128 127 -2.46 -246 -829 2 10819 99730 2.48948 299.48948 150.98948 15098.94894 2.48948 299.4895 150.98948 15098.94896 2.48948 299.48948 150.98948 15098.94800 2020-01-01 2020-01-02 2020-01-01 00:13:49 2020-01-02 03:42:10 2020-01-01 00:13:49.000 2020-01-02 03:42:10.000 829 99730 50279.5 5027950 829 99730 50279.5 5027950 -32739 32196 4404.3 440430 -128 123 -4.02 -402 -83 2 10073 99983 0.24924 300.24924 150.24924 15175.17417 0.24924 300.24924 150.24924 15175.17417 0.24924 300.24924 150.24924 15175.17324 2020-01-01 2020-01-02 2020-01-01 00:01:23 2020-01-02 03:46:23 2020-01-01 00:01:23.000 2020-01-02 03:46:23.000 83 99983 50033 5053333 83 99983 50033 5053333 -32486 32449 4612.009900990099 465813 -125 126 -1.0594059405940595 -107 -830 2 10820 99731 2.49249 299.49249 150.99249 15099.24924 2.49249 299.4925 150.99249 15099.24926 2.49249 299.49249 150.99249 15099.24900 2020-01-01 2020-01-02 2020-01-01 00:13:50 2020-01-02 03:42:11 2020-01-01 00:13:50.000 2020-01-02 03:42:11.000 830 99731 50280.5 5028050 830 99731 50280.5 5028050 -32738 32197 4405.3 440530 -127 124 -3.02 -302 -831 2 10821 99732 2.49549 299.49549 150.99549 15099.54954 2.49549 299.49548 150.99549 15099.54956 2.49549 299.49549 150.99549 15099.54900 2020-01-01 2020-01-02 2020-01-01 00:13:51 2020-01-02 03:42:12 2020-01-01 00:13:51.000 2020-01-02 03:42:12.000 831 99732 50281.5 5028150 831 99732 50281.5 5028150 -32737 32198 4406.3 440630 -126 125 -2.02 -202 -832 2 10822 99733 2.49849 299.49849 150.99849 15099.84984 2.49849 299.4985 150.9985 15099.85016 2.49849 299.49849 150.99849 15099.84900 2020-01-01 2020-01-02 2020-01-01 00:13:52 2020-01-02 03:42:13 2020-01-01 00:13:52.000 2020-01-02 03:42:13.000 832 99733 50282.5 5028250 832 99733 50282.5 5028250 -32736 32199 4407.3 440730 -125 126 -1.02 -102 -833 2 10823 99734 2.5015 299.5015 151.0015 15100.15015 2.5015 299.5015 151.00149 15100.14983 2.50150 299.50150 151.00150 15100.15000 2020-01-01 2020-01-02 2020-01-01 00:13:53 2020-01-02 03:42:14 2020-01-01 00:13:53.000 2020-01-02 03:42:14.000 833 99734 50283.5 5028350 833 99734 50283.5 5028350 -32735 32200 4408.3 440830 -124 127 -0.02 -2 -834 2 10824 99735 2.5045 299.5045 151.0045 15100.45045 2.5045 299.50452 151.0045 15100.45043 2.50450 299.50450 151.00450 15100.45000 2020-01-01 2020-01-02 2020-01-01 00:13:54 2020-01-02 03:42:15 2020-01-01 00:13:54.000 2020-01-02 03:42:15.000 834 99735 50284.5 5028450 834 99735 50284.5 5028450 -32734 32201 4409.3 440930 -128 127 -1.58 -158 -835 2 10825 99736 2.5075 299.5075 151.0075 15100.75075 2.5075 299.5075 151.0075 15100.75073 2.50750 299.50750 151.00750 15100.75000 2020-01-01 2020-01-02 2020-01-01 00:13:55 2020-01-02 03:42:16 2020-01-01 00:13:55.000 2020-01-02 03:42:16.000 835 99736 50285.5 5028550 835 99736 50285.5 5028550 -32733 32202 4410.3 441030 -128 123 -3.14 -314 -836 2 10826 99737 2.51051 299.51051 151.01051 15101.05105 2.51051 299.5105 151.01051 15101.05103 2.51051 299.51051 151.01051 15101.05100 2020-01-01 2020-01-02 2020-01-01 00:13:56 2020-01-02 03:42:17 2020-01-01 00:13:56.000 2020-01-02 03:42:17.000 836 99737 50286.5 5028650 836 99737 50286.5 5028650 -32732 32203 4411.3 441130 -127 124 -2.14 -214 -837 2 10827 99738 2.51351 299.51351 151.01351 15101.35135 2.51351 299.51352 151.01351 15101.35162 2.51351 299.51351 151.01351 15101.35100 2020-01-01 2020-01-02 2020-01-01 00:13:57 2020-01-02 03:42:18 2020-01-01 00:13:57.000 2020-01-02 03:42:18.000 837 99738 50287.5 5028750 837 99738 50287.5 5028750 -32731 32204 4412.3 441230 -126 125 -1.14 -114 -838 2 10828 99739 2.51651 299.51651 151.01651 15101.65165 2.51651 299.5165 151.01651 15101.6513 2.51651 299.51651 151.01651 15101.65100 2020-01-01 2020-01-02 2020-01-01 00:13:58 2020-01-02 03:42:19 2020-01-01 00:13:58.000 2020-01-02 03:42:19.000 838 99739 50288.5 5028850 838 99739 50288.5 5028850 -32730 32205 4413.3 441330 -125 126 -0.14 -14 -839 2 10829 99740 2.51951 299.51951 151.01951 15101.95195 2.51951 299.51953 151.01951 15101.9519 2.51951 299.51951 151.01951 15101.95100 2020-01-01 2020-01-02 2020-01-01 00:13:59 2020-01-02 03:42:20 2020-01-01 00:13:59.000 2020-01-02 03:42:20.000 839 99740 50289.5 5028950 839 99740 50289.5 5028950 -32729 32206 4414.3 441430 -124 127 0.86 86 -84 2 10074 99984 0.25225 300.25225 150.25225 15175.47747 0.25225 300.25226 150.25225 15175.47778 0.25225 300.25225 150.25225 15175.47725 2020-01-01 2020-01-02 2020-01-01 00:01:24 2020-01-02 03:46:24 2020-01-01 00:01:24.000 2020-01-02 03:46:24.000 84 99984 50034 5053434 84 99984 50034 5053434 -32485 32450 4613.009900990099 465914 -124 127 -0.0594059405940594 -6 -840 2 10830 99741 2.52252 299.52252 151.02252 15102.25225 2.52252 299.52252 151.02252 15102.2522 2.52252 299.52252 151.02252 15102.25200 2020-01-01 2020-01-02 2020-01-01 00:14:00 2020-01-02 03:42:21 2020-01-01 00:14:00.000 2020-01-02 03:42:21.000 840 99741 50290.5 5029050 840 99741 50290.5 5029050 -32728 32207 4415.3 441530 -128 127 -0.7 -70 -841 2 10831 99742 2.52552 299.52552 151.02552 15102.55255 2.52552 299.5255 151.02552 15102.5525 2.52552 299.52552 151.02552 15102.55200 2020-01-01 2020-01-02 2020-01-01 00:14:01 2020-01-02 03:42:22 2020-01-01 00:14:01.000 2020-01-02 03:42:22.000 841 99742 50291.5 5029150 841 99742 50291.5 5029150 -32727 32208 4416.3 441630 -128 127 -2.26 -226 -842 2 10832 99743 2.52852 299.52852 151.02852 15102.85285 2.52852 299.52853 151.02853 15102.85313 2.52852 299.52852 151.02852 15102.85200 2020-01-01 2020-01-02 2020-01-01 00:14:02 2020-01-02 03:42:23 2020-01-01 00:14:02.000 2020-01-02 03:42:23.000 842 99743 50292.5 5029250 842 99743 50292.5 5029250 -32726 32209 4417.3 441730 -128 123 -3.82 -382 -843 2 10833 99744 2.53153 299.53153 151.03153 15103.15315 2.53153 299.53152 151.03152 15103.15278 2.53153 299.53153 151.03153 15103.15300 2020-01-01 2020-01-02 2020-01-01 00:14:03 2020-01-02 03:42:24 2020-01-01 00:14:03.000 2020-01-02 03:42:24.000 843 99744 50293.5 5029350 843 99744 50293.5 5029350 -32725 32210 4418.3 441830 -127 124 -2.82 -282 -844 2 10834 99745 2.53453 299.53453 151.03453 15103.45345 2.53453 299.53455 151.03453 15103.45353 2.53453 299.53453 151.03453 15103.45300 2020-01-01 2020-01-02 2020-01-01 00:14:04 2020-01-02 03:42:25 2020-01-01 00:14:04.000 2020-01-02 03:42:25.000 844 99745 50294.5 5029450 844 99745 50294.5 5029450 -32724 32211 4419.3 441930 -126 125 -1.82 -182 -845 2 10835 99746 2.53753 299.53753 151.03753 15103.75375 2.53753 299.53754 151.03753 15103.75366 2.53753 299.53753 151.03753 15103.75300 2020-01-01 2020-01-02 2020-01-01 00:14:05 2020-01-02 03:42:26 2020-01-01 00:14:05.000 2020-01-02 03:42:26.000 845 99746 50295.5 5029550 845 99746 50295.5 5029550 -32723 32212 4420.3 442030 -125 126 -0.82 -82 +814 2 10804 99715 2.44444 299.44444 150.94444 15094.44444 2.44444 299.44446 150.94444 15094.44452 2.44444 299.44444 150.94443999999996 15094.44400 2020-01-01 2020-01-02 2020-01-01 00:13:34 2020-01-02 03:41:55 2020-01-01 00:13:34.000 2020-01-02 03:41:55.000 814 99715 50264.5 5026450 814 99715 50264.5 5026450 -32754 32181 4389.3 438930 -125 127 -1.1 -110 +815 2 10805 99716 2.44744 299.44744 150.94744 15094.74474 2.44744 299.44745 150.94744 15094.74485 2.44744 299.44744 150.94743999999994 15094.74400 2020-01-01 2020-01-02 2020-01-01 00:13:35 2020-01-02 03:41:56 2020-01-01 00:13:35.000 2020-01-02 03:41:56.000 815 99716 50265.5 5026550 815 99716 50265.5 5026550 -32753 32182 4390.3 439030 -128 127 -2.66 -266 +816 2 10806 99717 2.45045 299.45045 150.95045 15095.04504 2.45045 299.45044 150.95045 15095.045 2.45045 299.45045 150.9504500000001 15095.04500 2020-01-01 2020-01-02 2020-01-01 00:13:36 2020-01-02 03:41:57 2020-01-01 00:13:36.000 2020-01-02 03:41:57.000 816 99717 50266.5 5026650 816 99717 50266.5 5026650 -32752 32183 4391.3 439130 -128 127 -4.22 -422 +817 2 10807 99718 2.45345 299.45345 150.95345 15095.34534 2.45345 299.45346 150.95345 15095.34574 2.45345 299.45345 150.9534500000002 15095.34500 2020-01-01 2020-01-02 2020-01-01 00:13:37 2020-01-02 03:41:58 2020-01-01 00:13:37.000 2020-01-02 03:41:58.000 817 99718 50267.5 5026750 817 99718 50267.5 5026750 -32751 32184 4392.3 439230 -128 123 -5.78 -578 +818 2 10808 99719 2.45645 299.45645 150.95645 15095.64564 2.45645 299.45645 150.95645 15095.64539 2.45645 299.45645 150.95644999999985 15095.64500 2020-01-01 2020-01-02 2020-01-01 00:13:38 2020-01-02 03:41:59 2020-01-01 00:13:38.000 2020-01-02 03:41:59.000 818 99719 50268.5 5026850 818 99719 50268.5 5026850 -32750 32185 4393.3 439330 -127 124 -4.78 -478 +819 2 10809 99720 2.45945 299.45945 150.95945 15095.94594 2.45945 299.45947 150.95946 15095.94602 2.45945 299.45945 150.95945000000012 15095.94500 2020-01-01 2020-01-02 2020-01-01 00:13:39 2020-01-02 03:42:00 2020-01-01 00:13:39.000 2020-01-02 03:42:00.000 819 99720 50269.5 5026950 819 99720 50269.5 5026950 -32749 32186 4394.3 439430 -126 125 -3.78 -378 +82 2 10072 99982 0.24624 300.24624 150.24624 15174.87087 0.24624 300.24625 150.24624 15174.87088 0.24624 300.24624 150.2462400000002 15174.87024 2020-01-01 2020-01-02 2020-01-01 00:01:22 2020-01-02 03:46:22 2020-01-01 00:01:22.000 2020-01-02 03:46:22.000 82 99982 50032 5053232 82 99982 50032 5053232 -32487 32448 4611.009900990099 465712 -126 125 -2.0594059405940595 -208 +820 2 10810 99721 2.46246 299.46246 150.96246 15096.24624 2.46246 299.46246 150.96246 15096.24633 2.46246 299.46246 150.9624600000001 15096.24600 2020-01-01 2020-01-02 2020-01-01 00:13:40 2020-01-02 03:42:01 2020-01-01 00:13:40.000 2020-01-02 03:42:01.000 820 99721 50270.5 5027050 820 99721 50270.5 5027050 -32748 32187 4395.3 439530 -125 126 -2.78 -278 +821 2 10811 99722 2.46546 299.46546 150.96546 15096.54654 2.46546 299.46545 150.96546 15096.54646 2.46546 299.46546 150.96545999999995 15096.54600 2020-01-01 2020-01-02 2020-01-01 00:13:41 2020-01-02 03:42:02 2020-01-01 00:13:41.000 2020-01-02 03:42:02.000 821 99722 50271.5 5027150 821 99722 50271.5 5027150 -32747 32188 4396.3 439630 -124 127 -1.78 -178 +822 2 10812 99723 2.46846 299.46846 150.96846 15096.84684 2.46846 299.46848 150.96847 15096.84721 2.46846 299.46846 150.96846000000002 15096.84600 2020-01-01 2020-01-02 2020-01-01 00:13:42 2020-01-02 03:42:03 2020-01-01 00:13:42.000 2020-01-02 03:42:03.000 822 99723 50272.5 5027250 822 99723 50272.5 5027250 -32746 32189 4397.3 439730 -128 127 -3.34 -334 +823 2 10813 99724 2.47147 299.47147 150.97147 15097.14714 2.47147 299.47147 150.97146 15097.14686 2.47147 299.47147 150.97147000000024 15097.14700 2020-01-01 2020-01-02 2020-01-01 00:13:43 2020-01-02 03:42:04 2020-01-01 00:13:43.000 2020-01-02 03:42:04.000 823 99724 50273.5 5027350 823 99724 50273.5 5027350 -32745 32190 4398.3 439830 -128 123 -4.9 -490 +824 2 10814 99725 2.47447 299.47447 150.97447 15097.44744 2.47447 299.4745 150.97447 15097.44749 2.47447 299.47447 150.97446999999985 15097.44700 2020-01-01 2020-01-02 2020-01-01 00:13:44 2020-01-02 03:42:05 2020-01-01 00:13:44.000 2020-01-02 03:42:05.000 824 99725 50274.5 5027450 824 99725 50274.5 5027450 -32744 32191 4399.3 439930 -127 124 -3.9 -390 +825 2 10815 99726 2.47747 299.47747 150.97747 15097.74774 2.47747 299.47748 150.97747 15097.74779 2.47747 299.47747 150.97746999999987 15097.74700 2020-01-01 2020-01-02 2020-01-01 00:13:45 2020-01-02 03:42:06 2020-01-01 00:13:45.000 2020-01-02 03:42:06.000 825 99726 50275.5 5027550 825 99726 50275.5 5027550 -32743 32192 4400.3 440030 -126 125 -2.9 -290 +826 2 10816 99727 2.48048 299.48048 150.98048 15098.04804 2.48048 299.48047 150.98048 15098.04809 2.48048 299.48048 150.9804800000001 15098.04800 2020-01-01 2020-01-02 2020-01-01 00:13:46 2020-01-02 03:42:07 2020-01-01 00:13:46.000 2020-01-02 03:42:07.000 826 99727 50276.5 5027650 826 99727 50276.5 5027650 -32742 32193 4401.3 440130 -125 126 -1.9 -190 +827 2 10817 99728 2.48348 299.48348 150.98348 15098.34834 2.48348 299.4835 150.98348 15098.34869 2.48348 299.48348 150.98348000000013 15098.34800 2020-01-01 2020-01-02 2020-01-01 00:13:47 2020-01-02 03:42:08 2020-01-01 00:13:47.000 2020-01-02 03:42:08.000 827 99728 50277.5 5027750 827 99728 50277.5 5027750 -32741 32194 4402.3 440230 -124 127 -0.9 -90 +828 2 10818 99729 2.48648 299.48648 150.98648 15098.64864 2.48648 299.48648 150.98648 15098.64837 2.48648 299.48648 150.98647999999977 15098.64800 2020-01-01 2020-01-02 2020-01-01 00:13:48 2020-01-02 03:42:09 2020-01-01 00:13:48.000 2020-01-02 03:42:09.000 828 99729 50278.5 5027850 828 99729 50278.5 5027850 -32740 32195 4403.3 440330 -128 127 -2.46 -246 +829 2 10819 99730 2.48948 299.48948 150.98948 15098.94894 2.48948 299.4895 150.98948 15098.94896 2.48948 299.48948 150.98948000000013 15098.94800 2020-01-01 2020-01-02 2020-01-01 00:13:49 2020-01-02 03:42:10 2020-01-01 00:13:49.000 2020-01-02 03:42:10.000 829 99730 50279.5 5027950 829 99730 50279.5 5027950 -32739 32196 4404.3 440430 -128 123 -4.02 -402 +83 2 10073 99983 0.24924 300.24924 150.24924 15175.17417 0.24924 300.24924 150.24924 15175.17417 0.24924 300.24924 150.24923999999987 15175.17324 2020-01-01 2020-01-02 2020-01-01 00:01:23 2020-01-02 03:46:23 2020-01-01 00:01:23.000 2020-01-02 03:46:23.000 83 99983 50033 5053333 83 99983 50033 5053333 -32486 32449 4612.009900990099 465813 -125 126 -1.0594059405940595 -107 +830 2 10820 99731 2.49249 299.49249 150.99249 15099.24924 2.49249 299.4925 150.99249 15099.24926 2.49249 299.49249 150.99249000000003 15099.24900 2020-01-01 2020-01-02 2020-01-01 00:13:50 2020-01-02 03:42:11 2020-01-01 00:13:50.000 2020-01-02 03:42:11.000 830 99731 50280.5 5028050 830 99731 50280.5 5028050 -32738 32197 4405.3 440530 -127 124 -3.02 -302 +831 2 10821 99732 2.49549 299.49549 150.99549 15099.54954 2.49549 299.49548 150.99549 15099.54956 2.49549 299.49549 150.9954899999999 15099.54900 2020-01-01 2020-01-02 2020-01-01 00:13:51 2020-01-02 03:42:12 2020-01-01 00:13:51.000 2020-01-02 03:42:12.000 831 99732 50281.5 5028150 831 99732 50281.5 5028150 -32737 32198 4406.3 440630 -126 125 -2.02 -202 +832 2 10822 99733 2.49849 299.49849 150.99849 15099.84984 2.49849 299.4985 150.9985 15099.85016 2.49849 299.49849 150.99848999999998 15099.84900 2020-01-01 2020-01-02 2020-01-01 00:13:52 2020-01-02 03:42:13 2020-01-01 00:13:52.000 2020-01-02 03:42:13.000 832 99733 50282.5 5028250 832 99733 50282.5 5028250 -32736 32199 4407.3 440730 -125 126 -1.02 -102 +833 2 10823 99734 2.5015 299.5015 151.0015 15100.15015 2.5015 299.5015 151.00149 15100.14983 2.50150 299.50150 151.00150000000014 15100.15000 2020-01-01 2020-01-02 2020-01-01 00:13:53 2020-01-02 03:42:14 2020-01-01 00:13:53.000 2020-01-02 03:42:14.000 833 99734 50283.5 5028350 833 99734 50283.5 5028350 -32735 32200 4408.3 440830 -124 127 -0.02 -2 +834 2 10824 99735 2.5045 299.5045 151.0045 15100.45045 2.5045 299.50452 151.0045 15100.45043 2.50450 299.50450 151.00449999999984 15100.45000 2020-01-01 2020-01-02 2020-01-01 00:13:54 2020-01-02 03:42:15 2020-01-01 00:13:54.000 2020-01-02 03:42:15.000 834 99735 50284.5 5028450 834 99735 50284.5 5028450 -32734 32201 4409.3 440930 -128 127 -1.58 -158 +835 2 10825 99736 2.5075 299.5075 151.0075 15100.75075 2.5075 299.5075 151.0075 15100.75073 2.50750 299.50750 151.00749999999988 15100.75000 2020-01-01 2020-01-02 2020-01-01 00:13:55 2020-01-02 03:42:16 2020-01-01 00:13:55.000 2020-01-02 03:42:16.000 835 99736 50285.5 5028550 835 99736 50285.5 5028550 -32733 32202 4410.3 441030 -128 123 -3.14 -314 +836 2 10826 99737 2.51051 299.51051 151.01051 15101.05105 2.51051 299.5105 151.01051 15101.05103 2.51051 299.51051 151.01051000000004 15101.05100 2020-01-01 2020-01-02 2020-01-01 00:13:56 2020-01-02 03:42:17 2020-01-01 00:13:56.000 2020-01-02 03:42:17.000 836 99737 50286.5 5028650 836 99737 50286.5 5028650 -32732 32203 4411.3 441130 -127 124 -2.14 -214 +837 2 10827 99738 2.51351 299.51351 151.01351 15101.35135 2.51351 299.51352 151.01351 15101.35162 2.51351 299.51351 151.01351000000005 15101.35100 2020-01-01 2020-01-02 2020-01-01 00:13:57 2020-01-02 03:42:18 2020-01-01 00:13:57.000 2020-01-02 03:42:18.000 837 99738 50287.5 5028750 837 99738 50287.5 5028750 -32731 32204 4412.3 441230 -126 125 -1.14 -114 +838 2 10828 99739 2.51651 299.51651 151.01651 15101.65165 2.51651 299.5165 151.01651 15101.6513 2.51651 299.51651 151.01650999999995 15101.65100 2020-01-01 2020-01-02 2020-01-01 00:13:58 2020-01-02 03:42:19 2020-01-01 00:13:58.000 2020-01-02 03:42:19.000 838 99739 50288.5 5028850 838 99739 50288.5 5028850 -32730 32205 4413.3 441330 -125 126 -0.14 -14 +839 2 10829 99740 2.51951 299.51951 151.01951 15101.95195 2.51951 299.51953 151.01951 15101.9519 2.51951 299.51951 151.01951000000005 15101.95100 2020-01-01 2020-01-02 2020-01-01 00:13:59 2020-01-02 03:42:20 2020-01-01 00:13:59.000 2020-01-02 03:42:20.000 839 99740 50289.5 5028950 839 99740 50289.5 5028950 -32729 32206 4414.3 441430 -124 127 0.86 86 +84 2 10074 99984 0.25225 300.25225 150.25225 15175.47747 0.25225 300.25226 150.25225 15175.47778 0.25225 300.25225 150.25224999999975 15175.47725 2020-01-01 2020-01-02 2020-01-01 00:01:24 2020-01-02 03:46:24 2020-01-01 00:01:24.000 2020-01-02 03:46:24.000 84 99984 50034 5053434 84 99984 50034 5053434 -32485 32450 4613.009900990099 465914 -124 127 -0.0594059405940594 -6 +840 2 10830 99741 2.52252 299.52252 151.02252 15102.25225 2.52252 299.52252 151.02252 15102.2522 2.52252 299.52252 151.0225200000002 15102.25200 2020-01-01 2020-01-02 2020-01-01 00:14:00 2020-01-02 03:42:21 2020-01-01 00:14:00.000 2020-01-02 03:42:21.000 840 99741 50290.5 5029050 840 99741 50290.5 5029050 -32728 32207 4415.3 441530 -128 127 -0.7 -70 +841 2 10831 99742 2.52552 299.52552 151.02552 15102.55255 2.52552 299.5255 151.02552 15102.5525 2.52552 299.52552 151.02551999999991 15102.55200 2020-01-01 2020-01-02 2020-01-01 00:14:01 2020-01-02 03:42:22 2020-01-01 00:14:01.000 2020-01-02 03:42:22.000 841 99742 50291.5 5029150 841 99742 50291.5 5029150 -32727 32208 4416.3 441630 -128 127 -2.26 -226 +842 2 10832 99743 2.52852 299.52852 151.02852 15102.85285 2.52852 299.52853 151.02853 15102.85313 2.52852 299.52852 151.0285199999999 15102.85200 2020-01-01 2020-01-02 2020-01-01 00:14:02 2020-01-02 03:42:23 2020-01-01 00:14:02.000 2020-01-02 03:42:23.000 842 99743 50292.5 5029250 842 99743 50292.5 5029250 -32726 32209 4417.3 441730 -128 123 -3.82 -382 +843 2 10833 99744 2.53153 299.53153 151.03153 15103.15315 2.53153 299.53152 151.03152 15103.15278 2.53153 299.53153 151.03153000000015 15103.15300 2020-01-01 2020-01-02 2020-01-01 00:14:03 2020-01-02 03:42:24 2020-01-01 00:14:03.000 2020-01-02 03:42:24.000 843 99744 50293.5 5029350 843 99744 50293.5 5029350 -32725 32210 4418.3 441830 -127 124 -2.82 -282 +844 2 10834 99745 2.53453 299.53453 151.03453 15103.45345 2.53453 299.53455 151.03453 15103.45353 2.53453 299.53453 151.03453000000013 15103.45300 2020-01-01 2020-01-02 2020-01-01 00:14:04 2020-01-02 03:42:25 2020-01-01 00:14:04.000 2020-01-02 03:42:25.000 844 99745 50294.5 5029450 844 99745 50294.5 5029450 -32724 32211 4419.3 441930 -126 125 -1.82 -182 +845 2 10835 99746 2.53753 299.53753 151.03753 15103.75375 2.53753 299.53754 151.03753 15103.75366 2.53753 299.53753 151.0375299999998 15103.75300 2020-01-01 2020-01-02 2020-01-01 00:14:05 2020-01-02 03:42:26 2020-01-01 00:14:05.000 2020-01-02 03:42:26.000 845 99746 50295.5 5029550 845 99746 50295.5 5029550 -32723 32212 4420.3 442030 -125 126 -0.82 -82 846 2 10836 99747 2.54054 299.54054 151.04054 15104.05405 2.54054 299.54053 151.04053 15104.05397 2.54054 299.54054 151.04054 15104.05400 2020-01-01 2020-01-02 2020-01-01 00:14:06 2020-01-02 03:42:27 2020-01-01 00:14:06.000 2020-01-02 03:42:27.000 846 99747 50296.5 5029650 846 99747 50296.5 5029650 -32722 32213 4421.3 442130 -124 127 0.18 18 -847 2 10837 99748 2.54354 299.54354 151.04354 15104.35435 2.54354 299.54355 151.04354 15104.3546 2.54354 299.54354 151.04354 15104.35400 2020-01-01 2020-01-02 2020-01-01 00:14:07 2020-01-02 03:42:28 2020-01-01 00:14:07.000 2020-01-02 03:42:28.000 847 99748 50297.5 5029750 847 99748 50297.5 5029750 -32721 32214 4422.3 442230 -128 127 -1.38 -138 -848 2 10838 99749 2.54654 299.54654 151.04654 15104.65465 2.54654 299.54654 151.04654 15104.65425 2.54654 299.54654 151.04654 15104.65400 2020-01-01 2020-01-02 2020-01-01 00:14:08 2020-01-02 03:42:29 2020-01-01 00:14:08.000 2020-01-02 03:42:29.000 848 99749 50298.5 5029850 848 99749 50298.5 5029850 -32720 32215 4423.3 442330 -128 123 -2.94 -294 -849 2 10839 99750 2.54954 299.54954 151.04954 15104.95495 2.54954 299.54956 151.04954 15104.95499 2.54954 299.54954 151.04954 15104.95400 2020-01-01 2020-01-02 2020-01-01 00:14:09 2020-01-02 03:42:30 2020-01-01 00:14:09.000 2020-01-02 03:42:30.000 849 99750 50299.5 5029950 849 99750 50299.5 5029950 -32719 32216 4424.3 442430 -127 124 -1.94 -194 -85 2 10075 99985 0.25525 300.25525 150.25525 15175.78078 0.25525 300.25525 150.25525 15175.78046 0.25525 300.25525 150.25525 15175.78025 2020-01-01 2020-01-02 2020-01-01 00:01:25 2020-01-02 03:46:25 2020-01-01 00:01:25.000 2020-01-02 03:46:25.000 85 99985 50035 5053535 85 99985 50035 5053535 -32484 32451 4614.009900990099 466015 -128 127 -1.5940594059405941 -161 -850 2 10840 99751 2.55255 299.55255 151.05255 15105.25525 2.55255 299.55255 151.05255 15105.25514 2.55255 299.55255 151.05255 15105.25500 2020-01-01 2020-01-02 2020-01-01 00:14:10 2020-01-02 03:42:31 2020-01-01 00:14:10.000 2020-01-02 03:42:31.000 850 99751 50300.5 5030050 850 99751 50300.5 5030050 -32718 32217 4425.3 442530 -126 125 -0.94 -94 -851 2 10841 99752 2.55555 299.55555 151.05555 15105.55555 2.55555 299.55554 151.05555 15105.55547 2.55555 299.55555 151.05555 15105.55500 2020-01-01 2020-01-02 2020-01-01 00:14:11 2020-01-02 03:42:32 2020-01-01 00:14:11.000 2020-01-02 03:42:32.000 851 99752 50301.5 5030150 851 99752 50301.5 5030150 -32717 32218 4426.3 442630 -125 126 0.06 6 -852 2 10842 99753 2.55855 299.55855 151.05855 15105.85585 2.55855 299.55856 151.05856 15105.85607 2.55855 299.55855 151.05855 15105.85500 2020-01-01 2020-01-02 2020-01-01 00:14:12 2020-01-02 03:42:33 2020-01-01 00:14:12.000 2020-01-02 03:42:33.000 852 99753 50302.5 5030250 852 99753 50302.5 5030250 -32716 32219 4427.3 442730 -124 127 1.06 106 -853 2 10843 99754 2.56156 299.56156 151.06156 15106.15615 2.56156 299.56155 151.06155 15106.15571 2.56156 299.56156 151.06156 15106.15600 2020-01-01 2020-01-02 2020-01-01 00:14:13 2020-01-02 03:42:34 2020-01-01 00:14:13.000 2020-01-02 03:42:34.000 853 99754 50303.5 5030350 853 99754 50303.5 5030350 -32715 32220 4428.3 442830 -128 127 -0.5 -50 -854 2 10844 99755 2.56456 299.56456 151.06456 15106.45645 2.56456 299.56458 151.06456 15106.45646 2.56456 299.56456 151.06456 15106.45600 2020-01-01 2020-01-02 2020-01-01 00:14:14 2020-01-02 03:42:35 2020-01-01 00:14:14.000 2020-01-02 03:42:35.000 854 99755 50304.5 5030450 854 99755 50304.5 5030450 -32714 32221 4429.3 442930 -128 123 -2.06 -206 -855 2 10845 99756 2.56756 299.56756 151.06756 15106.75675 2.56756 299.56757 151.06756 15106.75661 2.56756 299.56756 151.06756 15106.75600 2020-01-01 2020-01-02 2020-01-01 00:14:15 2020-01-02 03:42:36 2020-01-01 00:14:15.000 2020-01-02 03:42:36.000 855 99756 50305.5 5030550 855 99756 50305.5 5030550 -32713 32222 4430.3 443030 -127 124 -1.06 -106 -856 2 10846 99757 2.57057 299.57057 151.07057 15107.05705 2.57057 299.57056 151.07056 15107.05694 2.57057 299.57057 151.07057 15107.05700 2020-01-01 2020-01-02 2020-01-01 00:14:16 2020-01-02 03:42:37 2020-01-01 00:14:16.000 2020-01-02 03:42:37.000 856 99757 50306.5 5030650 856 99757 50306.5 5030650 -32712 32223 4431.3 443130 -126 125 -0.06 -6 +847 2 10837 99748 2.54354 299.54354 151.04354 15104.35435 2.54354 299.54355 151.04354 15104.3546 2.54354 299.54354 151.04354000000006 15104.35400 2020-01-01 2020-01-02 2020-01-01 00:14:07 2020-01-02 03:42:28 2020-01-01 00:14:07.000 2020-01-02 03:42:28.000 847 99748 50297.5 5029750 847 99748 50297.5 5029750 -32721 32214 4422.3 442230 -128 127 -1.38 -138 +848 2 10838 99749 2.54654 299.54654 151.04654 15104.65465 2.54654 299.54654 151.04654 15104.65425 2.54654 299.54654 151.0465399999999 15104.65400 2020-01-01 2020-01-02 2020-01-01 00:14:08 2020-01-02 03:42:29 2020-01-01 00:14:08.000 2020-01-02 03:42:29.000 848 99749 50298.5 5029850 848 99749 50298.5 5029850 -32720 32215 4423.3 442330 -128 123 -2.94 -294 +849 2 10839 99750 2.54954 299.54954 151.04954 15104.95495 2.54954 299.54956 151.04954 15104.95499 2.54954 299.54954 151.04953999999998 15104.95400 2020-01-01 2020-01-02 2020-01-01 00:14:09 2020-01-02 03:42:30 2020-01-01 00:14:09.000 2020-01-02 03:42:30.000 849 99750 50299.5 5029950 849 99750 50299.5 5029950 -32719 32216 4424.3 442430 -127 124 -1.94 -194 +85 2 10075 99985 0.25525 300.25525 150.25525 15175.78078 0.25525 300.25525 150.25525 15175.78046 0.25525 300.25525 150.2552500000001 15175.78025 2020-01-01 2020-01-02 2020-01-01 00:01:25 2020-01-02 03:46:25 2020-01-01 00:01:25.000 2020-01-02 03:46:25.000 85 99985 50035 5053535 85 99985 50035 5053535 -32484 32451 4614.009900990099 466015 -128 127 -1.5940594059405941 -161 +850 2 10840 99751 2.55255 299.55255 151.05255 15105.25525 2.55255 299.55255 151.05255 15105.25514 2.55255 299.55255 151.05255000000014 15105.25500 2020-01-01 2020-01-02 2020-01-01 00:14:10 2020-01-02 03:42:31 2020-01-01 00:14:10.000 2020-01-02 03:42:31.000 850 99751 50300.5 5030050 850 99751 50300.5 5030050 -32718 32217 4425.3 442530 -126 125 -0.94 -94 +851 2 10841 99752 2.55555 299.55555 151.05555 15105.55555 2.55555 299.55554 151.05555 15105.55547 2.55555 299.55555 151.0555499999998 15105.55500 2020-01-01 2020-01-02 2020-01-01 00:14:11 2020-01-02 03:42:32 2020-01-01 00:14:11.000 2020-01-02 03:42:32.000 851 99752 50301.5 5030150 851 99752 50301.5 5030150 -32717 32218 4426.3 442630 -125 126 0.06 6 +852 2 10842 99753 2.55855 299.55855 151.05855 15105.85585 2.55855 299.55856 151.05856 15105.85607 2.55855 299.55855 151.0585499999999 15105.85500 2020-01-01 2020-01-02 2020-01-01 00:14:12 2020-01-02 03:42:33 2020-01-01 00:14:12.000 2020-01-02 03:42:33.000 852 99753 50302.5 5030250 852 99753 50302.5 5030250 -32716 32219 4427.3 442730 -124 127 1.06 106 +853 2 10843 99754 2.56156 299.56156 151.06156 15106.15615 2.56156 299.56155 151.06155 15106.15571 2.56156 299.56156 151.06156000000007 15106.15600 2020-01-01 2020-01-02 2020-01-01 00:14:13 2020-01-02 03:42:34 2020-01-01 00:14:13.000 2020-01-02 03:42:34.000 853 99754 50303.5 5030350 853 99754 50303.5 5030350 -32715 32220 4428.3 442830 -128 127 -0.5 -50 +854 2 10844 99755 2.56456 299.56456 151.06456 15106.45645 2.56456 299.56458 151.06456 15106.45646 2.56456 299.56456 151.06456000000009 15106.45600 2020-01-01 2020-01-02 2020-01-01 00:14:14 2020-01-02 03:42:35 2020-01-01 00:14:14.000 2020-01-02 03:42:35.000 854 99755 50304.5 5030450 854 99755 50304.5 5030450 -32714 32221 4429.3 442930 -128 123 -2.06 -206 +855 2 10845 99756 2.56756 299.56756 151.06756 15106.75675 2.56756 299.56757 151.06756 15106.75661 2.56756 299.56756 151.06756000000001 15106.75600 2020-01-01 2020-01-02 2020-01-01 00:14:15 2020-01-02 03:42:36 2020-01-01 00:14:15.000 2020-01-02 03:42:36.000 855 99756 50305.5 5030550 855 99756 50305.5 5030550 -32713 32222 4430.3 443030 -127 124 -1.06 -106 +856 2 10846 99757 2.57057 299.57057 151.07057 15107.05705 2.57057 299.57056 151.07056 15107.05694 2.57057 299.57057 151.0705699999999 15107.05700 2020-01-01 2020-01-02 2020-01-01 00:14:16 2020-01-02 03:42:37 2020-01-01 00:14:16.000 2020-01-02 03:42:37.000 856 99757 50306.5 5030650 856 99757 50306.5 5030650 -32712 32223 4431.3 443130 -126 125 -0.06 -6 857 2 10847 99758 2.57357 299.57357 151.07357 15107.35735 2.57357 299.57358 151.07357 15107.35754 2.57357 299.57357 151.07357 15107.35700 2020-01-01 2020-01-02 2020-01-01 00:14:17 2020-01-02 03:42:38 2020-01-01 00:14:17.000 2020-01-02 03:42:38.000 857 99758 50307.5 5030750 857 99758 50307.5 5030750 -32711 32224 4432.3 443230 -125 126 0.94 94 -858 2 10848 99759 2.57657 299.57657 151.07657 15107.65765 2.57657 299.57657 151.07657 15107.65783 2.57657 299.57657 151.07657 15107.65700 2020-01-01 2020-01-02 2020-01-01 00:14:18 2020-01-02 03:42:39 2020-01-01 00:14:18.000 2020-01-02 03:42:39.000 858 99759 50308.5 5030850 858 99759 50308.5 5030850 -32710 32225 4433.3 443330 -124 127 1.94 194 -859 2 10849 99760 2.57957 299.57957 151.07957 15107.95795 2.57957 299.5796 151.07957 15107.95794 2.57957 299.57957 151.07957 15107.95700 2020-01-01 2020-01-02 2020-01-01 00:14:19 2020-01-02 03:42:40 2020-01-01 00:14:19.000 2020-01-02 03:42:40.000 859 99760 50309.5 5030950 859 99760 50309.5 5030950 -32709 32226 4434.3 443430 -128 127 0.38 38 -86 2 10076 99986 0.25825 300.25825 150.25825 15176.08408 0.25825 300.25827 150.25825 15176.08406 0.25825 300.25825 150.25825 15176.08325 2020-01-01 2020-01-02 2020-01-01 00:01:26 2020-01-02 03:46:26 2020-01-01 00:01:26.000 2020-01-02 03:46:26.000 86 99986 50036 5053636 86 99986 50036 5053636 -32483 32452 4615.009900990099 466116 -128 123 -3.128712871287129 -316 -860 2 10850 99761 2.58258 299.58258 151.08258 15108.25825 2.58258 299.58258 151.08258 15108.25811 2.58258 299.58258 151.08258 15108.25800 2020-01-01 2020-01-02 2020-01-01 00:14:20 2020-01-02 03:42:41 2020-01-01 00:14:20.000 2020-01-02 03:42:41.000 860 99761 50310.5 5031050 860 99761 50310.5 5031050 -32708 32227 4435.3 443530 -128 123 -1.18 -118 -861 2 10851 99762 2.58558 299.58558 151.08558 15108.55855 2.58558 299.58557 151.08558 15108.55841 2.58558 299.58558 151.08558 15108.55800 2020-01-01 2020-01-02 2020-01-01 00:14:21 2020-01-02 03:42:42 2020-01-01 00:14:21.000 2020-01-02 03:42:42.000 861 99762 50311.5 5031150 861 99762 50311.5 5031150 -32707 32228 4436.3 443630 -127 124 -0.18 -18 -862 2 10852 99763 2.58858 299.58858 151.08858 15108.85885 2.58858 299.5886 151.08859 15108.85901 2.58858 299.58858 151.08858 15108.85800 2020-01-01 2020-01-02 2020-01-01 00:14:22 2020-01-02 03:42:43 2020-01-01 00:14:22.000 2020-01-02 03:42:43.000 862 99763 50312.5 5031250 862 99763 50312.5 5031250 -32706 32229 4437.3 443730 -126 125 0.82 82 +858 2 10848 99759 2.57657 299.57657 151.07657 15107.65765 2.57657 299.57657 151.07657 15107.65783 2.57657 299.57657 151.07656999999995 15107.65700 2020-01-01 2020-01-02 2020-01-01 00:14:18 2020-01-02 03:42:39 2020-01-01 00:14:18.000 2020-01-02 03:42:39.000 858 99759 50308.5 5030850 858 99759 50308.5 5030850 -32710 32225 4433.3 443330 -124 127 1.94 194 +859 2 10849 99760 2.57957 299.57957 151.07957 15107.95795 2.57957 299.5796 151.07957 15107.95794 2.57957 299.57957 151.0795699999999 15107.95700 2020-01-01 2020-01-02 2020-01-01 00:14:19 2020-01-02 03:42:40 2020-01-01 00:14:19.000 2020-01-02 03:42:40.000 859 99760 50309.5 5030950 859 99760 50309.5 5030950 -32709 32226 4434.3 443430 -128 127 0.38 38 +86 2 10076 99986 0.25825 300.25825 150.25825 15176.08408 0.25825 300.25827 150.25825 15176.08406 0.25825 300.25825 150.25825000000012 15176.08325 2020-01-01 2020-01-02 2020-01-01 00:01:26 2020-01-02 03:46:26 2020-01-01 00:01:26.000 2020-01-02 03:46:26.000 86 99986 50036 5053636 86 99986 50036 5053636 -32483 32452 4615.009900990099 466116 -128 123 -3.128712871287129 -316 +860 2 10850 99761 2.58258 299.58258 151.08258 15108.25825 2.58258 299.58258 151.08258 15108.25811 2.58258 299.58258 151.08258000000012 15108.25800 2020-01-01 2020-01-02 2020-01-01 00:14:20 2020-01-02 03:42:41 2020-01-01 00:14:20.000 2020-01-02 03:42:41.000 860 99761 50310.5 5031050 860 99761 50310.5 5031050 -32708 32227 4435.3 443530 -128 123 -1.18 -118 +861 2 10851 99762 2.58558 299.58558 151.08558 15108.55855 2.58558 299.58557 151.08558 15108.55841 2.58558 299.58558 151.08558000000016 15108.55800 2020-01-01 2020-01-02 2020-01-01 00:14:21 2020-01-02 03:42:42 2020-01-01 00:14:21.000 2020-01-02 03:42:42.000 861 99762 50311.5 5031150 861 99762 50311.5 5031150 -32707 32228 4436.3 443630 -127 124 -0.18 -18 +862 2 10852 99763 2.58858 299.58858 151.08858 15108.85885 2.58858 299.5886 151.08859 15108.85901 2.58858 299.58858 151.08857999999984 15108.85800 2020-01-01 2020-01-02 2020-01-01 00:14:22 2020-01-02 03:42:43 2020-01-01 00:14:22.000 2020-01-02 03:42:43.000 862 99763 50312.5 5031250 862 99763 50312.5 5031250 -32706 32229 4437.3 443730 -126 125 0.82 82 863 2 10853 99764 2.59159 299.59159 151.09159 15109.15915 2.59159 299.59158 151.09159 15109.1593 2.59159 299.59159 151.09159 15109.15900 2020-01-01 2020-01-02 2020-01-01 00:14:23 2020-01-02 03:42:44 2020-01-01 00:14:23.000 2020-01-02 03:42:44.000 863 99764 50313.5 5031350 863 99764 50313.5 5031350 -32705 32230 4438.3 443830 -125 126 1.82 182 -864 2 10854 99765 2.59459 299.59459 151.09459 15109.45945 2.59459 299.5946 151.09459 15109.45941 2.59459 299.59459 151.09459 15109.45900 2020-01-01 2020-01-02 2020-01-01 00:14:24 2020-01-02 03:42:45 2020-01-01 00:14:24.000 2020-01-02 03:42:45.000 864 99765 50314.5 5031450 864 99765 50314.5 5031450 -32704 32231 4439.3 443930 -124 127 2.82 282 -865 2 10855 99766 2.59759 299.59759 151.09759 15109.75975 2.59759 299.5976 151.09759 15109.75958 2.59759 299.59759 151.09759 15109.75900 2020-01-01 2020-01-02 2020-01-01 00:14:25 2020-01-02 03:42:46 2020-01-01 00:14:25.000 2020-01-02 03:42:46.000 865 99766 50315.5 5031550 865 99766 50315.5 5031550 -32703 32232 4440.3 444030 -128 127 1.26 126 -866 2 10856 99767 2.6006 299.6006 151.1006 15110.06006 2.6006 299.6006 151.10059 15110.05988 2.60060 299.60060 151.10060 15110.06000 2020-01-01 2020-01-02 2020-01-01 00:14:26 2020-01-02 03:42:47 2020-01-01 00:14:26.000 2020-01-02 03:42:47.000 866 99767 50316.5 5031650 866 99767 50316.5 5031650 -32702 32233 4441.3 444130 -128 127 -0.3 -30 -867 2 10857 99768 2.6036 299.6036 151.1036 15110.36036 2.6036 299.6036 151.1036 15110.36063 2.60360 299.60360 151.10360 15110.36000 2020-01-01 2020-01-02 2020-01-01 00:14:27 2020-01-02 03:42:48 2020-01-01 00:14:27.000 2020-01-02 03:42:48.000 867 99768 50317.5 5031750 867 99768 50317.5 5031750 -32701 32234 4442.3 444230 -128 123 -1.86 -186 -868 2 10858 99769 2.6066 299.6066 151.1066 15110.66066 2.6066 299.6066 151.1066 15110.66078 2.60660 299.60660 151.10660 15110.66000 2020-01-01 2020-01-02 2020-01-01 00:14:28 2020-01-02 03:42:49 2020-01-01 00:14:28.000 2020-01-02 03:42:49.000 868 99769 50318.5 5031850 868 99769 50318.5 5031850 -32700 32235 4443.3 444330 -127 124 -0.86 -86 -869 2 10859 99770 2.6096 299.6096 151.1096 15110.96096 2.6096 299.60962 151.1096 15110.96091 2.60960 299.60960 151.10960 15110.96000 2020-01-01 2020-01-02 2020-01-01 00:14:29 2020-01-02 03:42:50 2020-01-01 00:14:29.000 2020-01-02 03:42:50.000 869 99770 50319.5 5031950 869 99770 50319.5 5031950 -32699 32236 4444.3 444430 -126 125 0.14 14 -87 2 10077 99987 0.26126 300.26126 150.26126 15176.38738 0.26126 300.26126 150.26126 15176.38736 0.26126 300.26126 150.26126 15176.38726 2020-01-01 2020-01-02 2020-01-01 00:01:27 2020-01-02 03:46:27 2020-01-01 00:01:27.000 2020-01-02 03:46:27.000 87 99987 50037 5053737 87 99987 50037 5053737 -32482 32453 4616.009900990099 466217 -127 124 -2.128712871287129 -215 -870 2 10860 99771 2.61261 299.61261 151.11261 15111.26126 2.61261 299.6126 151.11261 15111.26105 2.61261 299.61261 151.11261 15111.26100 2020-01-01 2020-01-02 2020-01-01 00:14:30 2020-01-02 03:42:51 2020-01-01 00:14:30.000 2020-01-02 03:42:51.000 870 99771 50320.5 5032050 870 99771 50320.5 5032050 -32698 32237 4445.3 444530 -125 126 1.14 114 -871 2 10861 99772 2.61561 299.61561 151.11561 15111.56156 2.61561 299.6156 151.11561 15111.56135 2.61561 299.61561 151.11561 15111.56100 2020-01-01 2020-01-02 2020-01-01 00:14:31 2020-01-02 03:42:52 2020-01-01 00:14:31.000 2020-01-02 03:42:52.000 871 99772 50321.5 5032150 871 99772 50321.5 5032150 -32697 32238 4446.3 444630 -124 127 2.14 214 -872 2 10862 99773 2.61861 299.61861 151.11861 15111.86186 2.61861 299.61862 151.11862 15111.8621 2.61861 299.61861 151.11861 15111.86100 2020-01-01 2020-01-02 2020-01-01 00:14:32 2020-01-02 03:42:53 2020-01-01 00:14:32.000 2020-01-02 03:42:53.000 872 99773 50322.5 5032250 872 99773 50322.5 5032250 -32696 32239 4447.3 444730 -128 127 0.58 58 -873 2 10863 99774 2.62162 299.62162 151.12162 15112.16216 2.62162 299.6216 151.12162 15112.16224 2.62162 299.62162 151.12162 15112.16200 2020-01-01 2020-01-02 2020-01-01 00:14:33 2020-01-02 03:42:54 2020-01-01 00:14:33.000 2020-01-02 03:42:54.000 873 99774 50323.5 5032350 873 99774 50323.5 5032350 -32695 32240 4448.3 444830 -128 123 -0.98 -98 +864 2 10854 99765 2.59459 299.59459 151.09459 15109.45945 2.59459 299.5946 151.09459 15109.45941 2.59459 299.59459 151.09459000000007 15109.45900 2020-01-01 2020-01-02 2020-01-01 00:14:24 2020-01-02 03:42:45 2020-01-01 00:14:24.000 2020-01-02 03:42:45.000 864 99765 50314.5 5031450 864 99765 50314.5 5031450 -32704 32231 4439.3 443930 -124 127 2.82 282 +865 2 10855 99766 2.59759 299.59759 151.09759 15109.75975 2.59759 299.5976 151.09759 15109.75958 2.59759 299.59759 151.0975899999999 15109.75900 2020-01-01 2020-01-02 2020-01-01 00:14:25 2020-01-02 03:42:46 2020-01-01 00:14:25.000 2020-01-02 03:42:46.000 865 99766 50315.5 5031550 865 99766 50315.5 5031550 -32703 32232 4440.3 444030 -128 127 1.26 126 +866 2 10856 99767 2.6006 299.6006 151.1006 15110.06006 2.6006 299.6006 151.10059 15110.05988 2.60060 299.60060 151.10059999999984 15110.06000 2020-01-01 2020-01-02 2020-01-01 00:14:26 2020-01-02 03:42:47 2020-01-01 00:14:26.000 2020-01-02 03:42:47.000 866 99767 50316.5 5031650 866 99767 50316.5 5031650 -32702 32233 4441.3 444130 -128 127 -0.3 -30 +867 2 10857 99768 2.6036 299.6036 151.1036 15110.36036 2.6036 299.6036 151.1036 15110.36063 2.60360 299.60360 151.10360000000017 15110.36000 2020-01-01 2020-01-02 2020-01-01 00:14:27 2020-01-02 03:42:48 2020-01-01 00:14:27.000 2020-01-02 03:42:48.000 867 99768 50317.5 5031750 867 99768 50317.5 5031750 -32701 32234 4442.3 444230 -128 123 -1.86 -186 +868 2 10858 99769 2.6066 299.6066 151.1066 15110.66066 2.6066 299.6066 151.1066 15110.66078 2.60660 299.60660 151.10659999999984 15110.66000 2020-01-01 2020-01-02 2020-01-01 00:14:28 2020-01-02 03:42:49 2020-01-01 00:14:28.000 2020-01-02 03:42:49.000 868 99769 50318.5 5031850 868 99769 50318.5 5031850 -32700 32235 4443.3 444330 -127 124 -0.86 -86 +869 2 10859 99770 2.6096 299.6096 151.1096 15110.96096 2.6096 299.60962 151.1096 15110.96091 2.60960 299.60960 151.10959999999983 15110.96000 2020-01-01 2020-01-02 2020-01-01 00:14:29 2020-01-02 03:42:50 2020-01-01 00:14:29.000 2020-01-02 03:42:50.000 869 99770 50319.5 5031950 869 99770 50319.5 5031950 -32699 32236 4444.3 444430 -126 125 0.14 14 +87 2 10077 99987 0.26126 300.26126 150.26126 15176.38738 0.26126 300.26126 150.26126 15176.38736 0.26126 300.26126 150.26125999999994 15176.38726 2020-01-01 2020-01-02 2020-01-01 00:01:27 2020-01-02 03:46:27 2020-01-01 00:01:27.000 2020-01-02 03:46:27.000 87 99987 50037 5053737 87 99987 50037 5053737 -32482 32453 4616.009900990099 466217 -127 124 -2.128712871287129 -215 +870 2 10860 99771 2.61261 299.61261 151.11261 15111.26126 2.61261 299.6126 151.11261 15111.26105 2.61261 299.61261 151.1126100000001 15111.26100 2020-01-01 2020-01-02 2020-01-01 00:14:30 2020-01-02 03:42:51 2020-01-01 00:14:30.000 2020-01-02 03:42:51.000 870 99771 50320.5 5032050 870 99771 50320.5 5032050 -32698 32237 4445.3 444530 -125 126 1.14 114 +871 2 10861 99772 2.61561 299.61561 151.11561 15111.56156 2.61561 299.6156 151.11561 15111.56135 2.61561 299.61561 151.11561000000012 15111.56100 2020-01-01 2020-01-02 2020-01-01 00:14:31 2020-01-02 03:42:52 2020-01-01 00:14:31.000 2020-01-02 03:42:52.000 871 99772 50321.5 5032150 871 99772 50321.5 5032150 -32697 32238 4446.3 444630 -124 127 2.14 214 +872 2 10862 99773 2.61861 299.61861 151.11861 15111.86186 2.61861 299.61862 151.11862 15111.8621 2.61861 299.61861 151.1186099999999 15111.86100 2020-01-01 2020-01-02 2020-01-01 00:14:32 2020-01-02 03:42:53 2020-01-01 00:14:32.000 2020-01-02 03:42:53.000 872 99773 50322.5 5032250 872 99773 50322.5 5032250 -32696 32239 4447.3 444730 -128 127 0.58 58 +873 2 10863 99774 2.62162 299.62162 151.12162 15112.16216 2.62162 299.6216 151.12162 15112.16224 2.62162 299.62162 151.12161999999992 15112.16200 2020-01-01 2020-01-02 2020-01-01 00:14:33 2020-01-02 03:42:54 2020-01-01 00:14:33.000 2020-01-02 03:42:54.000 873 99774 50323.5 5032350 873 99774 50323.5 5032350 -32695 32240 4448.3 444830 -128 123 -0.98 -98 874 2 10864 99775 2.62462 299.62462 151.12462 15112.46246 2.62462 299.62463 151.12462 15112.46238 2.62462 299.62462 151.12462 15112.46200 2020-01-01 2020-01-02 2020-01-01 00:14:34 2020-01-02 03:42:55 2020-01-01 00:14:34.000 2020-01-02 03:42:55.000 874 99775 50324.5 5032450 874 99775 50324.5 5032450 -32694 32241 4449.3 444930 -127 124 0.02 2 -875 2 10865 99776 2.62762 299.62762 151.12762 15112.76276 2.62762 299.62762 151.12762 15112.76252 2.62762 299.62762 151.12762 15112.76200 2020-01-01 2020-01-02 2020-01-01 00:14:35 2020-01-02 03:42:56 2020-01-01 00:14:35.000 2020-01-02 03:42:56.000 875 99776 50325.5 5032550 875 99776 50325.5 5032550 -32693 32242 4450.3 445030 -126 125 1.02 102 -876 2 10866 99777 2.63063 299.63063 151.13063 15113.06306 2.63063 299.63065 151.13063 15113.06327 2.63063 299.63063 151.13063 15113.06300 2020-01-01 2020-01-02 2020-01-01 00:14:36 2020-01-02 03:42:57 2020-01-01 00:14:36.000 2020-01-02 03:42:57.000 876 99777 50326.5 5032650 876 99777 50326.5 5032650 -32692 32243 4451.3 445130 -125 126 2.02 202 -877 2 10867 99778 2.63363 299.63363 151.13363 15113.36336 2.63363 299.63364 151.13363 15113.36358 2.63363 299.63363 151.13363 15113.36300 2020-01-01 2020-01-02 2020-01-01 00:14:37 2020-01-02 03:42:58 2020-01-01 00:14:37.000 2020-01-02 03:42:58.000 877 99778 50327.5 5032750 877 99778 50327.5 5032750 -32691 32244 4452.3 445230 -124 127 3.02 302 -878 2 10868 99779 2.63663 299.63663 151.13663 15113.66366 2.63663 299.63663 151.13663 15113.66371 2.63663 299.63663 151.13663 15113.66300 2020-01-01 2020-01-02 2020-01-01 00:14:38 2020-01-02 03:42:59 2020-01-01 00:14:38.000 2020-01-02 03:42:59.000 878 99779 50328.5 5032850 878 99779 50328.5 5032850 -32690 32245 4453.3 445330 -128 127 1.46 146 -879 2 10869 99780 2.63963 299.63963 151.13963 15113.96396 2.63963 299.63965 151.13963 15113.96385 2.63963 299.63963 151.13963 15113.96300 2020-01-01 2020-01-02 2020-01-01 00:14:39 2020-01-02 03:43:00 2020-01-01 00:14:39.000 2020-01-02 03:43:00.000 879 99780 50329.5 5032950 879 99780 50329.5 5032950 -32689 32246 4454.3 445430 -128 123 -0.1 -10 -88 2 10078 99988 0.26426 300.26426 150.26426 15176.69069 0.26426 300.26425 150.26426 15176.69066 0.26426 300.26426 150.26426 15176.69026 2020-01-01 2020-01-02 2020-01-01 00:01:28 2020-01-02 03:46:28 2020-01-01 00:01:28.000 2020-01-02 03:46:28.000 88 99988 50038 5053838 88 99988 50038 5053838 -32481 32454 4617.009900990099 466318 -126 125 -1.1287128712871286 -114 +875 2 10865 99776 2.62762 299.62762 151.12762 15112.76276 2.62762 299.62762 151.12762 15112.76252 2.62762 299.62762 151.12761999999992 15112.76200 2020-01-01 2020-01-02 2020-01-01 00:14:35 2020-01-02 03:42:56 2020-01-01 00:14:35.000 2020-01-02 03:42:56.000 875 99776 50325.5 5032550 875 99776 50325.5 5032550 -32693 32242 4450.3 445030 -126 125 1.02 102 +876 2 10866 99777 2.63063 299.63063 151.13063 15113.06306 2.63063 299.63065 151.13063 15113.06327 2.63063 299.63063 151.13062999999985 15113.06300 2020-01-01 2020-01-02 2020-01-01 00:14:36 2020-01-02 03:42:57 2020-01-01 00:14:36.000 2020-01-02 03:42:57.000 876 99777 50326.5 5032650 876 99777 50326.5 5032650 -32692 32243 4451.3 445130 -125 126 2.02 202 +877 2 10867 99778 2.63363 299.63363 151.13363 15113.36336 2.63363 299.63364 151.13363 15113.36358 2.63363 299.63363 151.1336300000001 15113.36300 2020-01-01 2020-01-02 2020-01-01 00:14:37 2020-01-02 03:42:58 2020-01-01 00:14:37.000 2020-01-02 03:42:58.000 877 99778 50327.5 5032750 877 99778 50327.5 5032750 -32691 32244 4452.3 445230 -124 127 3.02 302 +878 2 10868 99779 2.63663 299.63663 151.13663 15113.66366 2.63663 299.63663 151.13663 15113.66371 2.63663 299.63663 151.13663000000017 15113.66300 2020-01-01 2020-01-02 2020-01-01 00:14:38 2020-01-02 03:42:59 2020-01-01 00:14:38.000 2020-01-02 03:42:59.000 878 99779 50328.5 5032850 878 99779 50328.5 5032850 -32690 32245 4453.3 445330 -128 127 1.46 146 +879 2 10869 99780 2.63963 299.63963 151.13963 15113.96396 2.63963 299.63965 151.13963 15113.96385 2.63963 299.63963 151.13962999999984 15113.96300 2020-01-01 2020-01-02 2020-01-01 00:14:39 2020-01-02 03:43:00 2020-01-01 00:14:39.000 2020-01-02 03:43:00.000 879 99780 50329.5 5032950 879 99780 50329.5 5032950 -32689 32246 4454.3 445430 -128 123 -0.1 -10 +88 2 10078 99988 0.26426 300.26426 150.26426 15176.69069 0.26426 300.26425 150.26426 15176.69066 0.26426 300.26426 150.26425999999995 15176.69026 2020-01-01 2020-01-02 2020-01-01 00:01:28 2020-01-02 03:46:28 2020-01-01 00:01:28.000 2020-01-02 03:46:28.000 88 99988 50038 5053838 88 99988 50038 5053838 -32481 32454 4617.009900990099 466318 -126 125 -1.1287128712871286 -114 880 2 10870 99781 2.64264 299.64264 151.14264 15114.26426 2.64264 299.64264 151.14263 15114.26399 2.64264 299.64264 151.14264 15114.26400 2020-01-01 2020-01-02 2020-01-01 00:14:40 2020-01-02 03:43:01 2020-01-01 00:14:40.000 2020-01-02 03:43:01.000 880 99781 50330.5 5033050 880 99781 50330.5 5033050 -32688 32247 4455.3 445530 -127 124 0.9 90 -881 2 10871 99782 2.64564 299.64564 151.14564 15114.56456 2.64564 299.64566 151.14564 15114.56474 2.64564 299.64564 151.14564 15114.56400 2020-01-01 2020-01-02 2020-01-01 00:14:41 2020-01-02 03:43:02 2020-01-01 00:14:41.000 2020-01-02 03:43:02.000 881 99782 50331.5 5033150 881 99782 50331.5 5033150 -32687 32248 4456.3 445630 -126 125 1.9 190 -882 2 10872 99783 2.64864 299.64864 151.14864 15114.86486 2.64864 299.64865 151.14865 15114.86504 2.64864 299.64864 151.14864 15114.86400 2020-01-01 2020-01-02 2020-01-01 00:14:42 2020-01-02 03:43:03 2020-01-01 00:14:42.000 2020-01-02 03:43:03.000 882 99783 50332.5 5033250 882 99783 50332.5 5033250 -32686 32249 4457.3 445730 -125 126 2.9 290 -883 2 10873 99784 2.65165 299.65165 151.15165 15115.16516 2.65165 299.65164 151.15165 15115.16522 2.65165 299.65165 151.15165 15115.16500 2020-01-01 2020-01-02 2020-01-01 00:14:43 2020-01-02 03:43:04 2020-01-01 00:14:43.000 2020-01-02 03:43:04.000 883 99784 50333.5 5033350 883 99784 50333.5 5033350 -32685 32250 4458.3 445830 -124 127 3.9 390 -884 2 10874 99785 2.65465 299.65465 151.15465 15115.46546 2.65465 299.65466 151.15465 15115.46532 2.65465 299.65465 151.15465 15115.46500 2020-01-01 2020-01-02 2020-01-01 00:14:44 2020-01-02 03:43:05 2020-01-01 00:14:44.000 2020-01-02 03:43:05.000 884 99785 50334.5 5033450 884 99785 50334.5 5033450 -32684 32251 4459.3 445930 -128 127 2.34 234 -885 2 10875 99786 2.65765 299.65765 151.15765 15115.76576 2.65765 299.65765 151.15765 15115.76562 2.65765 299.65765 151.15765 15115.76500 2020-01-01 2020-01-02 2020-01-01 00:14:45 2020-01-02 03:43:06 2020-01-01 00:14:45.000 2020-01-02 03:43:06.000 885 99786 50335.5 5033550 885 99786 50335.5 5033550 -32683 32252 4460.3 446030 -128 123 0.78 78 -886 2 10876 99787 2.66066 299.66066 151.16066 15116.06606 2.66066 299.66068 151.16066 15116.06621 2.66066 299.66066 151.16066 15116.06600 2020-01-01 2020-01-02 2020-01-01 00:14:46 2020-01-02 03:43:07 2020-01-01 00:14:46.000 2020-01-02 03:43:07.000 886 99787 50336.5 5033650 886 99787 50336.5 5033650 -32682 32253 4461.3 446130 -127 124 1.78 178 -887 2 10877 99788 2.66366 299.66366 151.16366 15116.36636 2.66366 299.66367 151.16366 15116.36651 2.66366 299.66366 151.16366 15116.36600 2020-01-01 2020-01-02 2020-01-01 00:14:47 2020-01-02 03:43:08 2020-01-01 00:14:47.000 2020-01-02 03:43:08.000 887 99788 50337.5 5033750 887 99788 50337.5 5033750 -32681 32254 4462.3 446230 -126 125 2.78 278 -888 2 10878 99789 2.66666 299.66666 151.16666 15116.66666 2.66666 299.66666 151.16666 15116.66669 2.66666 299.66666 151.16666 15116.66600 2020-01-01 2020-01-02 2020-01-01 00:14:48 2020-01-02 03:43:09 2020-01-01 00:14:48.000 2020-01-02 03:43:09.000 888 99789 50338.5 5033850 888 99789 50338.5 5033850 -32680 32255 4463.3 446330 -125 126 3.78 378 -889 2 10879 99790 2.66966 299.66966 151.16966 15116.96696 2.66966 299.66968 151.16966 15116.96679 2.66966 299.66966 151.16966 15116.96600 2020-01-01 2020-01-02 2020-01-01 00:14:49 2020-01-02 03:43:10 2020-01-01 00:14:49.000 2020-01-02 03:43:10.000 889 99790 50339.5 5033950 889 99790 50339.5 5033950 -32679 32256 4464.3 446430 -124 127 4.78 478 -89 2 10079 99989 0.26726 300.26726 150.26726 15176.99399 0.26726 300.26727 150.26727 15176.9943 0.26726 300.26726 150.26726 15176.99326 2020-01-01 2020-01-02 2020-01-01 00:01:29 2020-01-02 03:46:29 2020-01-01 00:01:29.000 2020-01-02 03:46:29.000 89 99989 50039 5053939 89 99989 50039 5053939 -32480 32455 4618.009900990099 466419 -125 126 -0.12871287128712872 -13 -890 2 10880 99791 2.67267 299.67267 151.17267 15117.26726 2.67267 299.67267 151.17267 15117.26708 2.67267 299.67267 151.17267 15117.26700 2020-01-01 2020-01-02 2020-01-01 00:14:50 2020-01-02 03:43:11 2020-01-01 00:14:50.000 2020-01-02 03:43:11.000 890 99791 50340.5 5034050 890 99791 50340.5 5034050 -32678 32257 4465.3 446530 -128 127 3.22 322 +881 2 10871 99782 2.64564 299.64564 151.14564 15114.56456 2.64564 299.64566 151.14564 15114.56474 2.64564 299.64564 151.1456400000001 15114.56400 2020-01-01 2020-01-02 2020-01-01 00:14:41 2020-01-02 03:43:02 2020-01-01 00:14:41.000 2020-01-02 03:43:02.000 881 99782 50331.5 5033150 881 99782 50331.5 5033150 -32687 32248 4456.3 445630 -126 125 1.9 190 +882 2 10872 99783 2.64864 299.64864 151.14864 15114.86486 2.64864 299.64865 151.14865 15114.86504 2.64864 299.64864 151.14863999999992 15114.86400 2020-01-01 2020-01-02 2020-01-01 00:14:42 2020-01-02 03:43:03 2020-01-01 00:14:42.000 2020-01-02 03:43:03.000 882 99783 50332.5 5033250 882 99783 50332.5 5033250 -32686 32249 4457.3 445730 -125 126 2.9 290 +883 2 10873 99784 2.65165 299.65165 151.15165 15115.16516 2.65165 299.65164 151.15165 15115.16522 2.65165 299.65165 151.15164999999988 15115.16500 2020-01-01 2020-01-02 2020-01-01 00:14:43 2020-01-02 03:43:04 2020-01-01 00:14:43.000 2020-01-02 03:43:04.000 883 99784 50333.5 5033350 883 99784 50333.5 5033350 -32685 32250 4458.3 445830 -124 127 3.9 390 +884 2 10874 99785 2.65465 299.65465 151.15465 15115.46546 2.65465 299.65466 151.15465 15115.46532 2.65465 299.65465 151.1546500000002 15115.46500 2020-01-01 2020-01-02 2020-01-01 00:14:44 2020-01-02 03:43:05 2020-01-01 00:14:44.000 2020-01-02 03:43:05.000 884 99785 50334.5 5033450 884 99785 50334.5 5033450 -32684 32251 4459.3 445930 -128 127 2.34 234 +885 2 10875 99786 2.65765 299.65765 151.15765 15115.76576 2.65765 299.65765 151.15765 15115.76562 2.65765 299.65765 151.15764999999988 15115.76500 2020-01-01 2020-01-02 2020-01-01 00:14:45 2020-01-02 03:43:06 2020-01-01 00:14:45.000 2020-01-02 03:43:06.000 885 99786 50335.5 5033550 885 99786 50335.5 5033550 -32683 32252 4460.3 446030 -128 123 0.78 78 +886 2 10876 99787 2.66066 299.66066 151.16066 15116.06606 2.66066 299.66068 151.16066 15116.06621 2.66066 299.66066 151.16065999999978 15116.06600 2020-01-01 2020-01-02 2020-01-01 00:14:46 2020-01-02 03:43:07 2020-01-01 00:14:46.000 2020-01-02 03:43:07.000 886 99787 50336.5 5033650 886 99787 50336.5 5033650 -32682 32253 4461.3 446130 -127 124 1.78 178 +887 2 10877 99788 2.66366 299.66366 151.16366 15116.36636 2.66366 299.66367 151.16366 15116.36651 2.66366 299.66366 151.1636600000001 15116.36600 2020-01-01 2020-01-02 2020-01-01 00:14:47 2020-01-02 03:43:08 2020-01-01 00:14:47.000 2020-01-02 03:43:08.000 887 99788 50337.5 5033750 887 99788 50337.5 5033750 -32681 32254 4462.3 446230 -126 125 2.78 278 +888 2 10878 99789 2.66666 299.66666 151.16666 15116.66666 2.66666 299.66666 151.16666 15116.66669 2.66666 299.66666 151.1666600000001 15116.66600 2020-01-01 2020-01-02 2020-01-01 00:14:48 2020-01-02 03:43:09 2020-01-01 00:14:48.000 2020-01-02 03:43:09.000 888 99789 50338.5 5033850 888 99789 50338.5 5033850 -32680 32255 4463.3 446330 -125 126 3.78 378 +889 2 10879 99790 2.66966 299.66966 151.16966 15116.96696 2.66966 299.66968 151.16966 15116.96679 2.66966 299.66966 151.1696599999998 15116.96600 2020-01-01 2020-01-02 2020-01-01 00:14:49 2020-01-02 03:43:10 2020-01-01 00:14:49.000 2020-01-02 03:43:10.000 889 99790 50339.5 5033950 889 99790 50339.5 5033950 -32679 32256 4464.3 446430 -124 127 4.78 478 +89 2 10079 99989 0.26726 300.26726 150.26726 15176.99399 0.26726 300.26727 150.26727 15176.9943 0.26726 300.26726 150.26726000000005 15176.99326 2020-01-01 2020-01-02 2020-01-01 00:01:29 2020-01-02 03:46:29 2020-01-01 00:01:29.000 2020-01-02 03:46:29.000 89 99989 50039 5053939 89 99989 50039 5053939 -32480 32455 4618.009900990099 466419 -125 126 -0.12871287128712872 -13 +890 2 10880 99791 2.67267 299.67267 151.17267 15117.26726 2.67267 299.67267 151.17267 15117.26708 2.67267 299.67267 151.17266999999995 15117.26700 2020-01-01 2020-01-02 2020-01-01 00:14:50 2020-01-02 03:43:11 2020-01-01 00:14:50.000 2020-01-02 03:43:11.000 890 99791 50340.5 5034050 890 99791 50340.5 5034050 -32678 32257 4465.3 446530 -128 127 3.22 322 891 2 10881 99792 2.67567 299.67567 151.17567 15117.56756 2.67567 299.6757 151.17567 15117.56768 2.67567 299.67567 151.17567 15117.56700 2020-01-01 2020-01-02 2020-01-01 00:14:51 2020-01-02 03:43:12 2020-01-01 00:14:51.000 2020-01-02 03:43:12.000 891 99792 50341.5 5034150 891 99792 50341.5 5034150 -32677 32258 4466.3 446630 -128 127 1.66 166 -892 2 10882 99793 2.67867 299.67867 151.17867 15117.86786 2.67867 299.67868 151.17868 15117.86802 2.67867 299.67867 151.17867 15117.86700 2020-01-01 2020-01-02 2020-01-01 00:14:52 2020-01-02 03:43:13 2020-01-01 00:14:52.000 2020-01-02 03:43:13.000 892 99793 50342.5 5034250 892 99793 50342.5 5034250 -32676 32259 4467.3 446730 -128 124 0.1 10 -893 2 10883 99794 2.68168 299.68168 151.18168 15118.16816 2.68168 299.68167 151.18168 15118.16816 2.68168 299.68168 151.18168 15118.16800 2020-01-01 2020-01-02 2020-01-01 00:14:53 2020-01-02 03:43:14 2020-01-01 00:14:53.000 2020-01-02 03:43:14.000 893 99794 50343.5 5034350 893 99794 50343.5 5034350 -32675 32260 4468.3 446830 -127 125 1.1 110 -894 2 10884 99795 2.68468 299.68468 151.18468 15118.46846 2.68468 299.6847 151.18468 15118.46826 2.68468 299.68468 151.18468 15118.46800 2020-01-01 2020-01-02 2020-01-01 00:14:54 2020-01-02 03:43:15 2020-01-01 00:14:54.000 2020-01-02 03:43:15.000 894 99795 50344.5 5034450 894 99795 50344.5 5034450 -32674 32261 4469.3 446930 -126 126 2.1 210 -895 2 10885 99796 2.68768 299.68768 151.18768 15118.76876 2.68768 299.68768 151.18768 15118.76855 2.68768 299.68768 151.18768 15118.76800 2020-01-01 2020-01-02 2020-01-01 00:14:55 2020-01-02 03:43:16 2020-01-01 00:14:55.000 2020-01-02 03:43:16.000 895 99796 50345.5 5034550 895 99796 50345.5 5034550 -32673 32262 4470.3 447030 -125 127 3.1 310 -896 2 10886 99797 2.69069 299.69069 151.19069 15119.06906 2.69069 299.6907 151.19069 15119.06915 2.69069 299.69069 151.19069 15119.06900 2020-01-01 2020-01-02 2020-01-01 00:14:56 2020-01-02 03:43:17 2020-01-01 00:14:56.000 2020-01-02 03:43:17.000 896 99797 50346.5 5034650 896 99797 50346.5 5034650 -32672 32263 4471.3 447130 -128 127 1.54 154 -897 2 10887 99798 2.69369 299.69369 151.19369 15119.36936 2.69369 299.6937 151.19369 15119.36949 2.69369 299.69369 151.19369 15119.36900 2020-01-01 2020-01-02 2020-01-01 00:14:57 2020-01-02 03:43:18 2020-01-01 00:14:57.000 2020-01-02 03:43:18.000 897 99798 50347.5 5034750 897 99798 50347.5 5034750 -32671 32264 4472.3 447230 -128 127 -0.02 -2 -898 2 10888 99799 2.69669 299.69669 151.19669 15119.66966 2.69669 299.6967 151.19669 15119.66963 2.69669 299.69669 151.19669 15119.66900 2020-01-01 2020-01-02 2020-01-01 00:14:58 2020-01-02 03:43:19 2020-01-01 00:14:58.000 2020-01-02 03:43:19.000 898 99799 50348.5 5034850 898 99799 50348.5 5034850 -32670 32265 4473.3 447330 -128 123 -1.58 -158 -899 2 10889 99800 2.69969 299.69969 151.19969 15119.96996 2.69969 299.6997 151.1997 15119.97038 2.69969 299.69969 151.19969 15119.96900 2020-01-01 2020-01-02 2020-01-01 00:14:59 2020-01-02 03:43:20 2020-01-01 00:14:59.000 2020-01-02 03:43:20.000 899 99800 50349.5 5034950 899 99800 50349.5 5034950 -32669 32266 4474.3 447430 -127 124 -0.58 -58 -9 2 1008 9999 0.02702 300.02702 150.02702 15152.72972 0.02702 300.02704 150.02702 15152.72966 0.02702 300.02702 150.02702 15152.72902 2020-01-01 2020-01-02 2020-01-01 00:00:09 2020-01-02 03:45:09 2020-01-01 00:00:09.000 2020-01-02 03:45:09.000 9 99909 49959 5045859 9 99909 49959 5045859 -32560 32375 4538.009900990099 458339 -124 127 0.9801980198019802 99 -90 2 10080 99990 0.27027 300.27027 150.27027 15177.29729 0.27027 300.27026 150.27026 15177.29694 0.27027 300.27027 150.27027 15177.29727 2020-01-01 2020-01-02 2020-01-01 00:01:30 2020-01-02 03:46:30 2020-01-01 00:01:30.000 2020-01-02 03:46:30.000 90 99990 50040 5054040 90 99990 50040 5054040 -32479 32456 4619.009900990099 466520 -124 127 0.8712871287128713 88 -900 2 10890 99801 2.7027 299.7027 151.2027 15120.27027 2.7027 299.7027 151.2027 15120.27003 2.70270 299.70270 151.20270 15120.27000 2020-01-01 2020-01-02 2020-01-01 00:15:00 2020-01-02 03:43:21 2020-01-01 00:15:00.000 2020-01-02 03:43:21.000 900 99801 50350.5 5035050 900 99801 50350.5 5035050 -32668 32267 4475.3 447530 -126 125 0.42 42 -901 2 10891 99802 2.7057 299.7057 151.2057 15120.57057 2.7057 299.70572 151.2057 15120.57066 2.70570 299.70570 151.20570 15120.57000 2020-01-01 2020-01-02 2020-01-01 00:15:01 2020-01-02 03:43:22 2020-01-01 00:15:01.000 2020-01-02 03:43:22.000 901 99802 50351.5 5035150 901 99802 50351.5 5035150 -32667 32268 4476.3 447630 -125 126 1.42 142 -902 2 10892 99803 2.7087 299.7087 151.2087 15120.87087 2.7087 299.7087 151.2087 15120.87095 2.70870 299.70870 151.20870 15120.87000 2020-01-01 2020-01-02 2020-01-01 00:15:02 2020-01-02 03:43:23 2020-01-01 00:15:02.000 2020-01-02 03:43:23.000 902 99803 50352.5 5035250 902 99803 50352.5 5035250 -32666 32269 4477.3 447730 -124 127 2.42 242 -903 2 10893 99804 2.71171 299.71171 151.21171 15121.17117 2.71171 299.7117 151.21171 15121.1711 2.71171 299.71171 151.21171 15121.17100 2020-01-01 2020-01-02 2020-01-01 00:15:03 2020-01-02 03:43:24 2020-01-01 00:15:03.000 2020-01-02 03:43:24.000 903 99804 50353.5 5035350 903 99804 50353.5 5035350 -32665 32270 4478.3 447830 -128 127 0.86 86 -904 2 10894 99805 2.71471 299.71471 151.21471 15121.47147 2.71471 299.71472 151.21471 15121.47185 2.71471 299.71471 151.21471 15121.47100 2020-01-01 2020-01-02 2020-01-01 00:15:04 2020-01-02 03:43:25 2020-01-01 00:15:04.000 2020-01-02 03:43:25.000 904 99805 50354.5 5035450 904 99805 50354.5 5035450 -32664 32271 4479.3 447930 -128 123 -0.7 -70 -905 2 10895 99806 2.71771 299.71771 151.21771 15121.77177 2.71771 299.7177 151.21771 15121.77149 2.71771 299.71771 151.21771 15121.77100 2020-01-01 2020-01-02 2020-01-01 00:15:05 2020-01-02 03:43:26 2020-01-01 00:15:05.000 2020-01-02 03:43:26.000 905 99806 50355.5 5035550 905 99806 50355.5 5035550 -32663 32272 4480.3 448030 -127 124 0.3 30 -906 2 10896 99807 2.72072 299.72072 151.22072 15122.07207 2.72072 299.72073 151.22072 15122.07212 2.72072 299.72072 151.22072 15122.07200 2020-01-01 2020-01-02 2020-01-01 00:15:06 2020-01-02 03:43:27 2020-01-01 00:15:06.000 2020-01-02 03:43:27.000 906 99807 50356.5 5035650 906 99807 50356.5 5035650 -32662 32273 4481.3 448130 -126 125 1.3 130 +892 2 10882 99793 2.67867 299.67867 151.17867 15117.86786 2.67867 299.67868 151.17868 15117.86802 2.67867 299.67867 151.17866999999993 15117.86700 2020-01-01 2020-01-02 2020-01-01 00:14:52 2020-01-02 03:43:13 2020-01-01 00:14:52.000 2020-01-02 03:43:13.000 892 99793 50342.5 5034250 892 99793 50342.5 5034250 -32676 32259 4467.3 446730 -128 124 0.1 10 +893 2 10883 99794 2.68168 299.68168 151.18168 15118.16816 2.68168 299.68167 151.18168 15118.16816 2.68168 299.68168 151.18167999999986 15118.16800 2020-01-01 2020-01-02 2020-01-01 00:14:53 2020-01-02 03:43:14 2020-01-01 00:14:53.000 2020-01-02 03:43:14.000 893 99794 50343.5 5034350 893 99794 50343.5 5034350 -32675 32260 4468.3 446830 -127 125 1.1 110 +894 2 10884 99795 2.68468 299.68468 151.18468 15118.46846 2.68468 299.6847 151.18468 15118.46826 2.68468 299.68468 151.18468000000013 15118.46800 2020-01-01 2020-01-02 2020-01-01 00:14:54 2020-01-02 03:43:15 2020-01-01 00:14:54.000 2020-01-02 03:43:15.000 894 99795 50344.5 5034450 894 99795 50344.5 5034450 -32674 32261 4469.3 446930 -126 126 2.1 210 +895 2 10885 99796 2.68768 299.68768 151.18768 15118.76876 2.68768 299.68768 151.18768 15118.76855 2.68768 299.68768 151.1876799999998 15118.76800 2020-01-01 2020-01-02 2020-01-01 00:14:55 2020-01-02 03:43:16 2020-01-01 00:14:55.000 2020-01-02 03:43:16.000 895 99796 50345.5 5034550 895 99796 50345.5 5034550 -32673 32262 4470.3 447030 -125 127 3.1 310 +896 2 10886 99797 2.69069 299.69069 151.19069 15119.06906 2.69069 299.6907 151.19069 15119.06915 2.69069 299.69069 151.19068999999993 15119.06900 2020-01-01 2020-01-02 2020-01-01 00:14:56 2020-01-02 03:43:17 2020-01-01 00:14:56.000 2020-01-02 03:43:17.000 896 99797 50346.5 5034650 896 99797 50346.5 5034650 -32672 32263 4471.3 447130 -128 127 1.54 154 +897 2 10887 99798 2.69369 299.69369 151.19369 15119.36936 2.69369 299.6937 151.19369 15119.36949 2.69369 299.69369 151.19369000000003 15119.36900 2020-01-01 2020-01-02 2020-01-01 00:14:57 2020-01-02 03:43:18 2020-01-01 00:14:57.000 2020-01-02 03:43:18.000 897 99798 50347.5 5034750 897 99798 50347.5 5034750 -32671 32264 4472.3 447230 -128 127 -0.02 -2 +898 2 10888 99799 2.69669 299.69669 151.19669 15119.66966 2.69669 299.6967 151.19669 15119.66963 2.69669 299.69669 151.1966900000001 15119.66900 2020-01-01 2020-01-02 2020-01-01 00:14:58 2020-01-02 03:43:19 2020-01-01 00:14:58.000 2020-01-02 03:43:19.000 898 99799 50348.5 5034850 898 99799 50348.5 5034850 -32670 32265 4473.3 447330 -128 123 -1.58 -158 +899 2 10889 99800 2.69969 299.69969 151.19969 15119.96996 2.69969 299.6997 151.1997 15119.97038 2.69969 299.69969 151.19968999999998 15119.96900 2020-01-01 2020-01-02 2020-01-01 00:14:59 2020-01-02 03:43:20 2020-01-01 00:14:59.000 2020-01-02 03:43:20.000 899 99800 50349.5 5034950 899 99800 50349.5 5034950 -32669 32266 4474.3 447430 -127 124 -0.58 -58 +9 2 1008 9999 0.02702 300.02702 150.02702 15152.72972 0.02702 300.02704 150.02702 15152.72966 0.02702 300.02702 150.02701999999985 15152.72902 2020-01-01 2020-01-02 2020-01-01 00:00:09 2020-01-02 03:45:09 2020-01-01 00:00:09.000 2020-01-02 03:45:09.000 9 99909 49959 5045859 9 99909 49959 5045859 -32560 32375 4538.009900990099 458339 -124 127 0.9801980198019802 99 +90 2 10080 99990 0.27027 300.27027 150.27027 15177.29729 0.27027 300.27026 150.27026 15177.29694 0.27027 300.27027 150.27027000000024 15177.29727 2020-01-01 2020-01-02 2020-01-01 00:01:30 2020-01-02 03:46:30 2020-01-01 00:01:30.000 2020-01-02 03:46:30.000 90 99990 50040 5054040 90 99990 50040 5054040 -32479 32456 4619.009900990099 466520 -124 127 0.8712871287128713 88 +900 2 10890 99801 2.7027 299.7027 151.2027 15120.27027 2.7027 299.7027 151.2027 15120.27003 2.70270 299.70270 151.20269999999988 15120.27000 2020-01-01 2020-01-02 2020-01-01 00:15:00 2020-01-02 03:43:21 2020-01-01 00:15:00.000 2020-01-02 03:43:21.000 900 99801 50350.5 5035050 900 99801 50350.5 5035050 -32668 32267 4475.3 447530 -126 125 0.42 42 +901 2 10891 99802 2.7057 299.7057 151.2057 15120.57057 2.7057 299.70572 151.2057 15120.57066 2.70570 299.70570 151.2057000000002 15120.57000 2020-01-01 2020-01-02 2020-01-01 00:15:01 2020-01-02 03:43:22 2020-01-01 00:15:01.000 2020-01-02 03:43:22.000 901 99802 50351.5 5035150 901 99802 50351.5 5035150 -32667 32268 4476.3 447630 -125 126 1.42 142 +902 2 10892 99803 2.7087 299.7087 151.2087 15120.87087 2.7087 299.7087 151.2087 15120.87095 2.70870 299.70870 151.2086999999999 15120.87000 2020-01-01 2020-01-02 2020-01-01 00:15:02 2020-01-02 03:43:23 2020-01-01 00:15:02.000 2020-01-02 03:43:23.000 902 99803 50352.5 5035250 902 99803 50352.5 5035250 -32666 32269 4477.3 447730 -124 127 2.42 242 +903 2 10893 99804 2.71171 299.71171 151.21171 15121.17117 2.71171 299.7117 151.21171 15121.1711 2.71171 299.71171 151.21170999999978 15121.17100 2020-01-01 2020-01-02 2020-01-01 00:15:03 2020-01-02 03:43:24 2020-01-01 00:15:03.000 2020-01-02 03:43:24.000 903 99804 50353.5 5035350 903 99804 50353.5 5035350 -32665 32270 4478.3 447830 -128 127 0.86 86 +904 2 10894 99805 2.71471 299.71471 151.21471 15121.47147 2.71471 299.71472 151.21471 15121.47185 2.71471 299.71471 151.2147100000001 15121.47100 2020-01-01 2020-01-02 2020-01-01 00:15:04 2020-01-02 03:43:25 2020-01-01 00:15:04.000 2020-01-02 03:43:25.000 904 99805 50354.5 5035450 904 99805 50354.5 5035450 -32664 32271 4479.3 447930 -128 123 -0.7 -70 +905 2 10895 99806 2.71771 299.71771 151.21771 15121.77177 2.71771 299.7177 151.21771 15121.77149 2.71771 299.71771 151.21771000000012 15121.77100 2020-01-01 2020-01-02 2020-01-01 00:15:05 2020-01-02 03:43:26 2020-01-01 00:15:05.000 2020-01-02 03:43:26.000 905 99806 50355.5 5035550 905 99806 50355.5 5035550 -32663 32272 4480.3 448030 -127 124 0.3 30 +906 2 10896 99807 2.72072 299.72072 151.22072 15122.07207 2.72072 299.72073 151.22072 15122.07212 2.72072 299.72072 151.2207199999999 15122.07200 2020-01-01 2020-01-02 2020-01-01 00:15:06 2020-01-02 03:43:27 2020-01-01 00:15:06.000 2020-01-02 03:43:27.000 906 99807 50356.5 5035650 906 99807 50356.5 5035650 -32662 32273 4481.3 448130 -126 125 1.3 130 907 2 10897 99808 2.72372 299.72372 151.22372 15122.37237 2.72372 299.72372 151.22372 15122.37243 2.72372 299.72372 151.22372 15122.37200 2020-01-01 2020-01-02 2020-01-01 00:15:07 2020-01-02 03:43:28 2020-01-01 00:15:07.000 2020-01-02 03:43:28.000 907 99808 50357.5 5035750 907 99808 50357.5 5035750 -32661 32274 4482.3 448230 -125 126 2.3 230 -908 2 10898 99809 2.72672 299.72672 151.22672 15122.67267 2.72672 299.7267 151.22672 15122.67272 2.72672 299.72672 151.22672 15122.67200 2020-01-01 2020-01-02 2020-01-01 00:15:08 2020-01-02 03:43:29 2020-01-01 00:15:08.000 2020-01-02 03:43:29.000 908 99809 50358.5 5035850 908 99809 50358.5 5035850 -32660 32275 4483.3 448330 -124 127 3.3 330 -909 2 10899 99810 2.72972 299.72972 151.22972 15122.97297 2.72972 299.72974 151.22973 15122.97332 2.72972 299.72972 151.22972 15122.97200 2020-01-01 2020-01-02 2020-01-01 00:15:09 2020-01-02 03:43:30 2020-01-01 00:15:09.000 2020-01-02 03:43:30.000 909 99810 50359.5 5035950 909 99810 50359.5 5035950 -32659 32276 4484.3 448430 -128 127 1.74 174 -91 2 10081 99991 0.27327 300.27327 150.27327 15177.6006 0.27327 300.2733 150.27327 15177.60054 0.27327 300.27327 150.27327 15177.60027 2020-01-01 2020-01-02 2020-01-01 00:01:31 2020-01-02 03:46:31 2020-01-01 00:01:31.000 2020-01-02 03:46:31.000 91 99991 50041 5054141 91 99991 50041 5054141 -32478 32457 4620.009900990099 466621 -128 127 -0.6633663366336634 -67 -910 2 10900 99811 2.73273 299.73273 151.23273 15123.27327 2.73273 299.73273 151.23272 15123.27296 2.73273 299.73273 151.23273 15123.27300 2020-01-01 2020-01-02 2020-01-01 00:15:10 2020-01-02 03:43:31 2020-01-01 00:15:10.000 2020-01-02 03:43:31.000 910 99811 50360.5 5036050 910 99811 50360.5 5036050 -32658 32277 4485.3 448530 -128 123 0.18 18 -911 2 10901 99812 2.73573 299.73573 151.23573 15123.57357 2.73573 299.73575 151.23573 15123.57359 2.73573 299.73573 151.23573 15123.57300 2020-01-01 2020-01-02 2020-01-01 00:15:11 2020-01-02 03:43:32 2020-01-01 00:15:11.000 2020-01-02 03:43:32.000 911 99812 50361.5 5036150 911 99812 50361.5 5036150 -32657 32278 4486.3 448630 -127 124 1.18 118 -912 2 10902 99813 2.73873 299.73873 151.23873 15123.87387 2.73873 299.73874 151.23873 15123.8739 2.73873 299.73873 151.23873 15123.87300 2020-01-01 2020-01-02 2020-01-01 00:15:12 2020-01-02 03:43:33 2020-01-01 00:15:12.000 2020-01-02 03:43:33.000 912 99813 50362.5 5036250 912 99813 50362.5 5036250 -32656 32279 4487.3 448730 -126 125 2.18 218 +908 2 10898 99809 2.72672 299.72672 151.22672 15122.67267 2.72672 299.7267 151.22672 15122.67272 2.72672 299.72672 151.22672000000006 15122.67200 2020-01-01 2020-01-02 2020-01-01 00:15:08 2020-01-02 03:43:29 2020-01-01 00:15:08.000 2020-01-02 03:43:29.000 908 99809 50358.5 5035850 908 99809 50358.5 5035850 -32660 32275 4483.3 448330 -124 127 3.3 330 +909 2 10899 99810 2.72972 299.72972 151.22972 15122.97297 2.72972 299.72974 151.22973 15122.97332 2.72972 299.72972 151.22971999999987 15122.97200 2020-01-01 2020-01-02 2020-01-01 00:15:09 2020-01-02 03:43:30 2020-01-01 00:15:09.000 2020-01-02 03:43:30.000 909 99810 50359.5 5035950 909 99810 50359.5 5035950 -32659 32276 4484.3 448430 -128 127 1.74 174 +91 2 10081 99991 0.27327 300.27327 150.27327 15177.6006 0.27327 300.2733 150.27327 15177.60054 0.27327 300.27327 150.27326999999985 15177.60027 2020-01-01 2020-01-02 2020-01-01 00:01:31 2020-01-02 03:46:31 2020-01-01 00:01:31.000 2020-01-02 03:46:31.000 91 99991 50041 5054141 91 99991 50041 5054141 -32478 32457 4620.009900990099 466621 -128 127 -0.6633663366336634 -67 +910 2 10900 99811 2.73273 299.73273 151.23273 15123.27327 2.73273 299.73273 151.23272 15123.27296 2.73273 299.73273 151.2327299999999 15123.27300 2020-01-01 2020-01-02 2020-01-01 00:15:10 2020-01-02 03:43:31 2020-01-01 00:15:10.000 2020-01-02 03:43:31.000 910 99811 50360.5 5036050 910 99811 50360.5 5036050 -32658 32277 4485.3 448530 -128 123 0.18 18 +911 2 10901 99812 2.73573 299.73573 151.23573 15123.57357 2.73573 299.73575 151.23573 15123.57359 2.73573 299.73573 151.23573000000016 15123.57300 2020-01-01 2020-01-02 2020-01-01 00:15:11 2020-01-02 03:43:32 2020-01-01 00:15:11.000 2020-01-02 03:43:32.000 911 99812 50361.5 5036150 911 99812 50361.5 5036150 -32657 32278 4486.3 448630 -127 124 1.18 118 +912 2 10902 99813 2.73873 299.73873 151.23873 15123.87387 2.73873 299.73874 151.23873 15123.8739 2.73873 299.73873 151.2387299999998 15123.87300 2020-01-01 2020-01-02 2020-01-01 00:15:12 2020-01-02 03:43:33 2020-01-01 00:15:12.000 2020-01-02 03:43:33.000 912 99813 50362.5 5036250 912 99813 50362.5 5036250 -32656 32279 4487.3 448730 -126 125 2.18 218 913 2 10903 99814 2.74174 299.74174 151.24174 15124.17417 2.74174 299.74173 151.24174 15124.17419 2.74174 299.74174 151.24174 15124.17400 2020-01-01 2020-01-02 2020-01-01 00:15:13 2020-01-02 03:43:34 2020-01-01 00:15:13.000 2020-01-02 03:43:34.000 913 99814 50363.5 5036350 913 99814 50363.5 5036350 -32655 32280 4488.3 448830 -125 126 3.18 318 -914 2 10904 99815 2.74474 299.74474 151.24474 15124.47447 2.74474 299.74475 151.24474 15124.47479 2.74474 299.74474 151.24474 15124.47400 2020-01-01 2020-01-02 2020-01-01 00:15:14 2020-01-02 03:43:35 2020-01-01 00:15:14.000 2020-01-02 03:43:35.000 914 99815 50364.5 5036450 914 99815 50364.5 5036450 -32654 32281 4489.3 448930 -124 127 4.18 418 -915 2 10905 99816 2.74774 299.74774 151.24774 15124.77477 2.74774 299.74774 151.24774 15124.77447 2.74774 299.74774 151.24774 15124.77400 2020-01-01 2020-01-02 2020-01-01 00:15:15 2020-01-02 03:43:36 2020-01-01 00:15:15.000 2020-01-02 03:43:36.000 915 99816 50365.5 5036550 915 99816 50365.5 5036550 -32653 32282 4490.3 449030 -128 127 2.62 262 -916 2 10906 99817 2.75075 299.75075 151.25075 15125.07507 2.75075 299.75076 151.25075 15125.07507 2.75075 299.75075 151.25075 15125.07500 2020-01-01 2020-01-02 2020-01-01 00:15:16 2020-01-02 03:43:37 2020-01-01 00:15:16.000 2020-01-02 03:43:37.000 916 99817 50366.5 5036650 916 99817 50366.5 5036650 -32652 32283 4491.3 449130 -128 127 1.06 106 -917 2 10907 99818 2.75375 299.75375 151.25375 15125.37537 2.75375 299.75375 151.25375 15125.37536 2.75375 299.75375 151.25375 15125.37500 2020-01-01 2020-01-02 2020-01-01 00:15:17 2020-01-02 03:43:38 2020-01-01 00:15:17.000 2020-01-02 03:43:38.000 917 99818 50367.5 5036750 917 99818 50367.5 5036750 -32651 32284 4492.3 449230 -128 124 -0.5 -50 -918 2 10908 99819 2.75675 299.75675 151.25675 15125.67567 2.75675 299.75674 151.25675 15125.67566 2.75675 299.75675 151.25675 15125.67500 2020-01-01 2020-01-02 2020-01-01 00:15:18 2020-01-02 03:43:39 2020-01-01 00:15:18.000 2020-01-02 03:43:39.000 918 99819 50368.5 5036850 918 99819 50368.5 5036850 -32650 32285 4493.3 449330 -127 125 0.5 50 -919 2 10909 99820 2.75975 299.75975 151.25975 15125.97597 2.75975 299.75977 151.25976 15125.97626 2.75975 299.75975 151.25975 15125.97500 2020-01-01 2020-01-02 2020-01-01 00:15:19 2020-01-02 03:43:40 2020-01-01 00:15:19.000 2020-01-02 03:43:40.000 919 99820 50369.5 5036950 919 99820 50369.5 5036950 -32649 32286 4494.3 449430 -126 126 1.5 150 -92 2 10082 99992 0.27627 300.27627 150.27627 15177.9039 0.27627 300.27628 150.27627 15177.90384 0.27627 300.27627 150.27627 15177.90327 2020-01-01 2020-01-02 2020-01-01 00:01:32 2020-01-02 03:46:32 2020-01-01 00:01:32.000 2020-01-02 03:46:32.000 92 99992 50042 5054242 92 99992 50042 5054242 -32477 32458 4621.009900990099 466722 -128 123 -2.198019801980198 -222 -920 2 10910 99821 2.76276 299.76276 151.26276 15126.27627 2.76276 299.76276 151.26275 15126.27594 2.76276 299.76276 151.26276 15126.27600 2020-01-01 2020-01-02 2020-01-01 00:15:20 2020-01-02 03:43:41 2020-01-01 00:15:20.000 2020-01-02 03:43:41.000 920 99821 50370.5 5037050 920 99821 50370.5 5037050 -32648 32287 4495.3 449530 -125 127 2.5 250 -921 2 10911 99822 2.76576 299.76576 151.26576 15126.57657 2.76576 299.76578 151.26576 15126.57654 2.76576 299.76576 151.26576 15126.57600 2020-01-01 2020-01-02 2020-01-01 00:15:21 2020-01-02 03:43:42 2020-01-01 00:15:21.000 2020-01-02 03:43:42.000 921 99822 50371.5 5037150 921 99822 50371.5 5037150 -32647 32288 4496.3 449630 -128 127 0.94 94 -922 2 10912 99823 2.76876 299.76876 151.26876 15126.87687 2.76876 299.76877 151.26876 15126.87683 2.76876 299.76876 151.26876 15126.87600 2020-01-01 2020-01-02 2020-01-01 00:15:22 2020-01-02 03:43:43 2020-01-01 00:15:22.000 2020-01-02 03:43:43.000 922 99823 50372.5 5037250 922 99823 50372.5 5037250 -32646 32289 4497.3 449730 -128 127 -0.62 -62 -923 2 10913 99824 2.77177 299.77177 151.27177 15127.17717 2.77177 299.77176 151.27177 15127.17713 2.77177 299.77177 151.27177 15127.17700 2020-01-01 2020-01-02 2020-01-01 00:15:23 2020-01-02 03:43:44 2020-01-01 00:15:23.000 2020-01-02 03:43:44.000 923 99824 50373.5 5037350 923 99824 50373.5 5037350 -32645 32290 4498.3 449830 -128 123 -2.18 -218 +914 2 10904 99815 2.74474 299.74474 151.24474 15124.47447 2.74474 299.74475 151.24474 15124.47479 2.74474 299.74474 151.24474000000006 15124.47400 2020-01-01 2020-01-02 2020-01-01 00:15:14 2020-01-02 03:43:35 2020-01-01 00:15:14.000 2020-01-02 03:43:35.000 914 99815 50364.5 5036450 914 99815 50364.5 5036450 -32654 32281 4489.3 448930 -124 127 4.18 418 +915 2 10905 99816 2.74774 299.74774 151.24774 15124.77477 2.74774 299.74774 151.24774 15124.77447 2.74774 299.74774 151.24774000000008 15124.77400 2020-01-01 2020-01-02 2020-01-01 00:15:15 2020-01-02 03:43:36 2020-01-01 00:15:15.000 2020-01-02 03:43:36.000 915 99816 50365.5 5036550 915 99816 50365.5 5036550 -32653 32282 4490.3 449030 -128 127 2.62 262 +916 2 10906 99817 2.75075 299.75075 151.25075 15125.07507 2.75075 299.75076 151.25075 15125.07507 2.75075 299.75075 151.25074999999987 15125.07500 2020-01-01 2020-01-02 2020-01-01 00:15:16 2020-01-02 03:43:37 2020-01-01 00:15:16.000 2020-01-02 03:43:37.000 916 99817 50366.5 5036650 916 99817 50366.5 5036650 -32652 32283 4491.3 449130 -128 127 1.06 106 +917 2 10907 99818 2.75375 299.75375 151.25375 15125.37537 2.75375 299.75375 151.25375 15125.37536 2.75375 299.75375 151.2537499999999 15125.37500 2020-01-01 2020-01-02 2020-01-01 00:15:17 2020-01-02 03:43:38 2020-01-01 00:15:17.000 2020-01-02 03:43:38.000 917 99818 50367.5 5036750 917 99818 50367.5 5036750 -32651 32284 4492.3 449230 -128 124 -0.5 -50 +918 2 10908 99819 2.75675 299.75675 151.25675 15125.67567 2.75675 299.75674 151.25675 15125.67566 2.75675 299.75675 151.25675000000004 15125.67500 2020-01-01 2020-01-02 2020-01-01 00:15:18 2020-01-02 03:43:39 2020-01-01 00:15:18.000 2020-01-02 03:43:39.000 918 99819 50368.5 5036850 918 99819 50368.5 5036850 -32650 32285 4493.3 449330 -127 125 0.5 50 +919 2 10909 99820 2.75975 299.75975 151.25975 15125.97597 2.75975 299.75977 151.25976 15125.97626 2.75975 299.75975 151.25974999999994 15125.97500 2020-01-01 2020-01-02 2020-01-01 00:15:19 2020-01-02 03:43:40 2020-01-01 00:15:19.000 2020-01-02 03:43:40.000 919 99820 50369.5 5036950 919 99820 50369.5 5036950 -32649 32286 4494.3 449430 -126 126 1.5 150 +92 2 10082 99992 0.27627 300.27627 150.27627 15177.9039 0.27627 300.27628 150.27627 15177.90384 0.27627 300.27627 150.27627000000012 15177.90327 2020-01-01 2020-01-02 2020-01-01 00:01:32 2020-01-02 03:46:32 2020-01-01 00:01:32.000 2020-01-02 03:46:32.000 92 99992 50042 5054242 92 99992 50042 5054242 -32477 32458 4621.009900990099 466722 -128 123 -2.198019801980198 -222 +920 2 10910 99821 2.76276 299.76276 151.26276 15126.27627 2.76276 299.76276 151.26275 15126.27594 2.76276 299.76276 151.2627599999998 15126.27600 2020-01-01 2020-01-02 2020-01-01 00:15:20 2020-01-02 03:43:41 2020-01-01 00:15:20.000 2020-01-02 03:43:41.000 920 99821 50370.5 5037050 920 99821 50370.5 5037050 -32648 32287 4495.3 449530 -125 127 2.5 250 +921 2 10911 99822 2.76576 299.76576 151.26576 15126.57657 2.76576 299.76578 151.26576 15126.57654 2.76576 299.76576 151.26576000000017 15126.57600 2020-01-01 2020-01-02 2020-01-01 00:15:21 2020-01-02 03:43:42 2020-01-01 00:15:21.000 2020-01-02 03:43:42.000 921 99822 50371.5 5037150 921 99822 50371.5 5037150 -32647 32288 4496.3 449630 -128 127 0.94 94 +922 2 10912 99823 2.76876 299.76876 151.26876 15126.87687 2.76876 299.76877 151.26876 15126.87683 2.76876 299.76876 151.26876000000016 15126.87600 2020-01-01 2020-01-02 2020-01-01 00:15:22 2020-01-02 03:43:43 2020-01-01 00:15:22.000 2020-01-02 03:43:43.000 922 99823 50372.5 5037250 922 99823 50372.5 5037250 -32646 32289 4497.3 449730 -128 127 -0.62 -62 +923 2 10913 99824 2.77177 299.77177 151.27177 15127.17717 2.77177 299.77176 151.27177 15127.17713 2.77177 299.77177 151.27176999999992 15127.17700 2020-01-01 2020-01-02 2020-01-01 00:15:23 2020-01-02 03:43:44 2020-01-01 00:15:23.000 2020-01-02 03:43:44.000 923 99824 50373.5 5037350 923 99824 50373.5 5037350 -32645 32290 4498.3 449830 -128 123 -2.18 -218 924 2 10914 99825 2.77477 299.77477 151.27477 15127.47747 2.77477 299.77478 151.27477 15127.47776 2.77477 299.77477 151.27477 15127.47700 2020-01-01 2020-01-02 2020-01-01 00:15:24 2020-01-02 03:43:45 2020-01-01 00:15:24.000 2020-01-02 03:43:45.000 924 99825 50374.5 5037450 924 99825 50374.5 5037450 -32644 32291 4499.3 449930 -127 124 -1.18 -118 -925 2 10915 99826 2.77777 299.77777 151.27777 15127.77777 2.77777 299.77777 151.27777 15127.77741 2.77777 299.77777 151.27777 15127.77700 2020-01-01 2020-01-02 2020-01-01 00:15:25 2020-01-02 03:43:46 2020-01-01 00:15:25.000 2020-01-02 03:43:46.000 925 99826 50375.5 5037550 925 99826 50375.5 5037550 -32643 32292 4500.3 450030 -126 125 -0.18 -18 -926 2 10916 99827 2.78078 299.78078 151.28078 15128.07807 2.78078 299.7808 151.28078 15128.078 2.78078 299.78078 151.28078 15128.07800 2020-01-01 2020-01-02 2020-01-01 00:15:26 2020-01-02 03:43:47 2020-01-01 00:15:26.000 2020-01-02 03:43:47.000 926 99827 50376.5 5037650 926 99827 50376.5 5037650 -32642 32293 4501.3 450130 -125 126 0.82 82 -927 2 10917 99828 2.78378 299.78378 151.28378 15128.37837 2.78378 299.78378 151.28378 15128.3783 2.78378 299.78378 151.28378 15128.37800 2020-01-01 2020-01-02 2020-01-01 00:15:27 2020-01-02 03:43:48 2020-01-01 00:15:27.000 2020-01-02 03:43:48.000 927 99828 50377.5 5037750 927 99828 50377.5 5037750 -32641 32294 4502.3 450230 -124 127 1.82 182 -928 2 10918 99829 2.78678 299.78678 151.28678 15128.67867 2.78678 299.78677 151.28678 15128.6786 2.78678 299.78678 151.28678 15128.67800 2020-01-01 2020-01-02 2020-01-01 00:15:28 2020-01-02 03:43:49 2020-01-01 00:15:28.000 2020-01-02 03:43:49.000 928 99829 50378.5 5037850 928 99829 50378.5 5037850 -32640 32295 4503.3 450330 -128 127 0.26 26 -929 2 10919 99830 2.78978 299.78978 151.28978 15128.97897 2.78978 299.7898 151.28979 15128.97923 2.78978 299.78978 151.28978 15128.97800 2020-01-01 2020-01-02 2020-01-01 00:15:29 2020-01-02 03:43:50 2020-01-01 00:15:29.000 2020-01-02 03:43:50.000 929 99830 50379.5 5037950 929 99830 50379.5 5037950 -32639 32296 4504.3 450430 -128 123 -1.3 -130 -93 2 10083 99993 0.27927 300.27927 150.27927 15178.2072 0.27927 300.27927 150.27927 15178.20715 0.27927 300.27927 150.27927 15178.20627 2020-01-01 2020-01-02 2020-01-01 00:01:33 2020-01-02 03:46:33 2020-01-01 00:01:33.000 2020-01-02 03:46:33.000 93 99993 50043 5054343 93 99993 50043 5054343 -32476 32459 4622.009900990099 466823 -127 124 -1.198019801980198 -121 +925 2 10915 99826 2.77777 299.77777 151.27777 15127.77777 2.77777 299.77777 151.27777 15127.77741 2.77777 299.77777 151.2777700000001 15127.77700 2020-01-01 2020-01-02 2020-01-01 00:15:25 2020-01-02 03:43:46 2020-01-01 00:15:25.000 2020-01-02 03:43:46.000 925 99826 50375.5 5037550 925 99826 50375.5 5037550 -32643 32292 4500.3 450030 -126 125 -0.18 -18 +926 2 10916 99827 2.78078 299.78078 151.28078 15128.07807 2.78078 299.7808 151.28078 15128.078 2.78078 299.78078 151.28077999999982 15128.07800 2020-01-01 2020-01-02 2020-01-01 00:15:26 2020-01-02 03:43:47 2020-01-01 00:15:26.000 2020-01-02 03:43:47.000 926 99827 50376.5 5037650 926 99827 50376.5 5037650 -32642 32293 4501.3 450130 -125 126 0.82 82 +927 2 10917 99828 2.78378 299.78378 151.28378 15128.37837 2.78378 299.78378 151.28378 15128.3783 2.78378 299.78378 151.28377999999987 15128.37800 2020-01-01 2020-01-02 2020-01-01 00:15:27 2020-01-02 03:43:48 2020-01-01 00:15:27.000 2020-01-02 03:43:48.000 927 99828 50377.5 5037750 927 99828 50377.5 5037750 -32641 32294 4502.3 450230 -124 127 1.82 182 +928 2 10918 99829 2.78678 299.78678 151.28678 15128.67867 2.78678 299.78677 151.28678 15128.6786 2.78678 299.78678 151.2867800000002 15128.67800 2020-01-01 2020-01-02 2020-01-01 00:15:28 2020-01-02 03:43:49 2020-01-01 00:15:28.000 2020-01-02 03:43:49.000 928 99829 50378.5 5037850 928 99829 50378.5 5037850 -32640 32295 4503.3 450330 -128 127 0.26 26 +929 2 10919 99830 2.78978 299.78978 151.28978 15128.97897 2.78978 299.7898 151.28979 15128.97923 2.78978 299.78978 151.28977999999984 15128.97800 2020-01-01 2020-01-02 2020-01-01 00:15:29 2020-01-02 03:43:50 2020-01-01 00:15:29.000 2020-01-02 03:43:50.000 929 99830 50379.5 5037950 929 99830 50379.5 5037950 -32639 32296 4504.3 450430 -128 123 -1.3 -130 +93 2 10083 99993 0.27927 300.27927 150.27927 15178.2072 0.27927 300.27927 150.27927 15178.20715 0.27927 300.27927 150.27926999999983 15178.20627 2020-01-01 2020-01-02 2020-01-01 00:01:33 2020-01-02 03:46:33 2020-01-01 00:01:33.000 2020-01-02 03:46:33.000 93 99993 50043 5054343 93 99993 50043 5054343 -32476 32459 4622.009900990099 466823 -127 124 -1.198019801980198 -121 930 2 10920 99831 2.79279 299.79279 151.29279 15129.27927 2.79279 299.7928 151.29278 15129.27888 2.79279 299.79279 151.29279 15129.27900 2020-01-01 2020-01-02 2020-01-01 00:15:30 2020-01-02 03:43:51 2020-01-01 00:15:30.000 2020-01-02 03:43:51.000 930 99831 50380.5 5038050 930 99831 50380.5 5038050 -32638 32297 4505.3 450530 -127 124 -0.3 -30 -931 2 10921 99832 2.79579 299.79579 151.29579 15129.57957 2.79579 299.7958 151.29579 15129.57963 2.79579 299.79579 151.29579 15129.57900 2020-01-01 2020-01-02 2020-01-01 00:15:31 2020-01-02 03:43:52 2020-01-01 00:15:31.000 2020-01-02 03:43:52.000 931 99832 50381.5 5038150 931 99832 50381.5 5038150 -32637 32298 4506.3 450630 -126 125 0.7 70 -932 2 10922 99833 2.79879 299.79879 151.29879 15129.87987 2.79879 299.7988 151.29879 15129.87977 2.79879 299.79879 151.29879 15129.87900 2020-01-01 2020-01-02 2020-01-01 00:15:32 2020-01-02 03:43:53 2020-01-01 00:15:32.000 2020-01-02 03:43:53.000 932 99833 50382.5 5038250 932 99833 50382.5 5038250 -32636 32299 4507.3 450730 -125 126 1.7 170 -933 2 10923 99834 2.8018 299.8018 151.3018 15130.18018 2.8018 299.8018 151.3018 15130.18011 2.80180 299.80180 151.30180 15130.18000 2020-01-01 2020-01-02 2020-01-01 00:15:33 2020-01-02 03:43:54 2020-01-01 00:15:33.000 2020-01-02 03:43:54.000 933 99834 50383.5 5038350 933 99834 50383.5 5038350 -32635 32300 4508.3 450830 -124 127 2.7 270 -934 2 10924 99835 2.8048 299.8048 151.3048 15130.48048 2.8048 299.8048 151.3048 15130.48071 2.80480 299.80480 151.30480 15130.48000 2020-01-01 2020-01-02 2020-01-01 00:15:34 2020-01-02 03:43:55 2020-01-01 00:15:34.000 2020-01-02 03:43:55.000 934 99835 50384.5 5038450 934 99835 50384.5 5038450 -32634 32301 4509.3 450930 -128 127 1.14 114 -935 2 10925 99836 2.8078 299.8078 151.3078 15130.78078 2.8078 299.8078 151.3078 15130.78034 2.80780 299.80780 151.30780 15130.78000 2020-01-01 2020-01-02 2020-01-01 00:15:35 2020-01-02 03:43:56 2020-01-01 00:15:35.000 2020-01-02 03:43:56.000 935 99836 50385.5 5038550 935 99836 50385.5 5038550 -32633 32302 4510.3 451030 -128 123 -0.42 -42 -936 2 10926 99837 2.81081 299.81081 151.31081 15131.08108 2.81081 299.81082 151.31081 15131.0811 2.81081 299.81081 151.31081 15131.08100 2020-01-01 2020-01-02 2020-01-01 00:15:36 2020-01-02 03:43:57 2020-01-01 00:15:36.000 2020-01-02 03:43:57.000 936 99837 50386.5 5038650 936 99837 50386.5 5038650 -32632 32303 4511.3 451130 -127 124 0.58 58 -937 2 10927 99838 2.81381 299.81381 151.31381 15131.38138 2.81381 299.8138 151.31381 15131.38124 2.81381 299.81381 151.31381 15131.38100 2020-01-01 2020-01-02 2020-01-01 00:15:37 2020-01-02 03:43:58 2020-01-01 00:15:37.000 2020-01-02 03:43:58.000 937 99838 50387.5 5038750 937 99838 50387.5 5038750 -32631 32304 4512.3 451230 -126 125 1.58 158 -938 2 10928 99839 2.81681 299.81681 151.31681 15131.68168 2.81681 299.8168 151.31681 15131.68157 2.81681 299.81681 151.31681 15131.68100 2020-01-01 2020-01-02 2020-01-01 00:15:38 2020-01-02 03:43:59 2020-01-01 00:15:38.000 2020-01-02 03:43:59.000 938 99839 50388.5 5038850 938 99839 50388.5 5038850 -32630 32305 4513.3 451330 -125 126 2.58 258 -939 2 10929 99840 2.81981 299.81981 151.31981 15131.98198 2.81982 299.81982 151.31982 15131.98217 2.81981 299.81981 151.31981 15131.98100 2020-01-01 2020-01-02 2020-01-01 00:15:39 2020-01-02 03:44:00 2020-01-01 00:15:39.000 2020-01-02 03:44:00.000 939 99840 50389.5 5038950 939 99840 50389.5 5038950 -32629 32306 4514.3 451430 -124 127 3.58 358 -94 2 10084 99994 0.28228 300.28228 150.28228 15178.51051 0.28228 300.2823 150.28228 15178.51078 0.28228 300.28228 150.28228 15178.51028 2020-01-01 2020-01-02 2020-01-01 00:01:34 2020-01-02 03:46:34 2020-01-01 00:01:34.000 2020-01-02 03:46:34.000 94 99994 50044 5054444 94 99994 50044 5054444 -32475 32460 4623.009900990099 466924 -126 125 -0.19801980198019803 -20 -940 2 10930 99841 2.82282 299.82282 151.32282 15132.28228 2.82282 299.8228 151.32282 15132.28247 2.82282 299.82282 151.32282 15132.28200 2020-01-01 2020-01-02 2020-01-01 00:15:40 2020-01-02 03:44:01 2020-01-01 00:15:40.000 2020-01-02 03:44:01.000 940 99841 50390.5 5039050 940 99841 50390.5 5039050 -32628 32307 4515.3 451530 -128 127 2.02 202 +931 2 10921 99832 2.79579 299.79579 151.29579 15129.57957 2.79579 299.7958 151.29579 15129.57963 2.79579 299.79579 151.2957900000001 15129.57900 2020-01-01 2020-01-02 2020-01-01 00:15:31 2020-01-02 03:43:52 2020-01-01 00:15:31.000 2020-01-02 03:43:52.000 931 99832 50381.5 5038150 931 99832 50381.5 5038150 -32637 32298 4506.3 450630 -126 125 0.7 70 +932 2 10922 99833 2.79879 299.79879 151.29879 15129.87987 2.79879 299.7988 151.29879 15129.87977 2.79879 299.79879 151.2987900000001 15129.87900 2020-01-01 2020-01-02 2020-01-01 00:15:32 2020-01-02 03:43:53 2020-01-01 00:15:32.000 2020-01-02 03:43:53.000 932 99833 50382.5 5038250 932 99833 50382.5 5038250 -32636 32299 4507.3 450730 -125 126 1.7 170 +933 2 10923 99834 2.8018 299.8018 151.3018 15130.18018 2.8018 299.8018 151.3018 15130.18011 2.80180 299.80180 151.3017999999999 15130.18000 2020-01-01 2020-01-02 2020-01-01 00:15:33 2020-01-02 03:43:54 2020-01-01 00:15:33.000 2020-01-02 03:43:54.000 933 99834 50383.5 5038350 933 99834 50383.5 5038350 -32635 32300 4508.3 450830 -124 127 2.7 270 +934 2 10924 99835 2.8048 299.8048 151.3048 15130.48048 2.8048 299.8048 151.3048 15130.48071 2.80480 299.80480 151.30479999999991 15130.48000 2020-01-01 2020-01-02 2020-01-01 00:15:34 2020-01-02 03:43:55 2020-01-01 00:15:34.000 2020-01-02 03:43:55.000 934 99835 50384.5 5038450 934 99835 50384.5 5038450 -32634 32301 4509.3 450930 -128 127 1.14 114 +935 2 10925 99836 2.8078 299.8078 151.3078 15130.78078 2.8078 299.8078 151.3078 15130.78034 2.80780 299.80780 151.30780000000001 15130.78000 2020-01-01 2020-01-02 2020-01-01 00:15:35 2020-01-02 03:43:56 2020-01-01 00:15:35.000 2020-01-02 03:43:56.000 935 99836 50385.5 5038550 935 99836 50385.5 5038550 -32633 32302 4510.3 451030 -128 123 -0.42 -42 +936 2 10926 99837 2.81081 299.81081 151.31081 15131.08108 2.81081 299.81082 151.31081 15131.0811 2.81081 299.81081 151.31081000000017 15131.08100 2020-01-01 2020-01-02 2020-01-01 00:15:36 2020-01-02 03:43:57 2020-01-01 00:15:36.000 2020-01-02 03:43:57.000 936 99837 50386.5 5038650 936 99837 50386.5 5038650 -32632 32303 4511.3 451130 -127 124 0.58 58 +937 2 10927 99838 2.81381 299.81381 151.31381 15131.38138 2.81381 299.8138 151.31381 15131.38124 2.81381 299.81381 151.31380999999985 15131.38100 2020-01-01 2020-01-02 2020-01-01 00:15:37 2020-01-02 03:43:58 2020-01-01 00:15:37.000 2020-01-02 03:43:58.000 937 99838 50387.5 5038750 937 99838 50387.5 5038750 -32631 32304 4512.3 451230 -126 125 1.58 158 +938 2 10928 99839 2.81681 299.81681 151.31681 15131.68168 2.81681 299.8168 151.31681 15131.68157 2.81681 299.81681 151.3168100000001 15131.68100 2020-01-01 2020-01-02 2020-01-01 00:15:38 2020-01-02 03:43:59 2020-01-01 00:15:38.000 2020-01-02 03:43:59.000 938 99839 50388.5 5038850 938 99839 50388.5 5038850 -32630 32305 4513.3 451330 -125 126 2.58 258 +939 2 10929 99840 2.81981 299.81981 151.31981 15131.98198 2.81982 299.81982 151.31982 15131.98217 2.81981 299.81981 151.3198100000002 15131.98100 2020-01-01 2020-01-02 2020-01-01 00:15:39 2020-01-02 03:44:00 2020-01-01 00:15:39.000 2020-01-02 03:44:00.000 939 99840 50389.5 5038950 939 99840 50389.5 5038950 -32629 32306 4514.3 451430 -124 127 3.58 358 +94 2 10084 99994 0.28228 300.28228 150.28228 15178.51051 0.28228 300.2823 150.28228 15178.51078 0.28228 300.28228 150.28227999999996 15178.51028 2020-01-01 2020-01-02 2020-01-01 00:01:34 2020-01-02 03:46:34 2020-01-01 00:01:34.000 2020-01-02 03:46:34.000 94 99994 50044 5054444 94 99994 50044 5054444 -32475 32460 4623.009900990099 466924 -126 125 -0.19801980198019803 -20 +940 2 10930 99841 2.82282 299.82282 151.32282 15132.28228 2.82282 299.8228 151.32282 15132.28247 2.82282 299.82282 151.32281999999995 15132.28200 2020-01-01 2020-01-02 2020-01-01 00:15:40 2020-01-02 03:44:01 2020-01-01 00:15:40.000 2020-01-02 03:44:01.000 940 99841 50390.5 5039050 940 99841 50390.5 5039050 -32628 32307 4515.3 451530 -128 127 2.02 202 941 2 10931 99842 2.82582 299.82582 151.32582 15132.58258 2.82582 299.82584 151.32582 15132.58257 2.82582 299.82582 151.32582 15132.58200 2020-01-01 2020-01-02 2020-01-01 00:15:41 2020-01-02 03:44:02 2020-01-01 00:15:41.000 2020-01-02 03:44:02.000 941 99842 50391.5 5039150 941 99842 50391.5 5039150 -32627 32308 4516.3 451630 -128 127 0.46 46 -942 2 10932 99843 2.82882 299.82882 151.32882 15132.88288 2.82882 299.82883 151.32882 15132.88275 2.82882 299.82882 151.32882 15132.88200 2020-01-01 2020-01-02 2020-01-01 00:15:42 2020-01-02 03:44:03 2020-01-01 00:15:42.000 2020-01-02 03:44:03.000 942 99843 50392.5 5039250 942 99843 50392.5 5039250 -32626 32309 4517.3 451730 -128 124 -1.1 -110 -943 2 10933 99844 2.83183 299.83183 151.33183 15133.18318 2.83183 299.83182 151.33183 15133.18304 2.83183 299.83183 151.33183 15133.18300 2020-01-01 2020-01-02 2020-01-01 00:15:43 2020-01-02 03:44:04 2020-01-01 00:15:43.000 2020-01-02 03:44:04.000 943 99844 50393.5 5039350 943 99844 50393.5 5039350 -32625 32310 4518.3 451830 -127 125 -0.1 -10 -944 2 10934 99845 2.83483 299.83483 151.33483 15133.48348 2.83483 299.83484 151.33483 15133.48364 2.83483 299.83483 151.33483 15133.48300 2020-01-01 2020-01-02 2020-01-01 00:15:44 2020-01-02 03:44:05 2020-01-01 00:15:44.000 2020-01-02 03:44:05.000 944 99845 50394.5 5039450 944 99845 50394.5 5039450 -32624 32311 4519.3 451930 -126 126 0.9 90 -945 2 10935 99846 2.83783 299.83783 151.33783 15133.78378 2.83783 299.83783 151.33783 15133.78393 2.83783 299.83783 151.33783 15133.78300 2020-01-01 2020-01-02 2020-01-01 00:15:45 2020-01-02 03:44:06 2020-01-01 00:15:45.000 2020-01-02 03:44:06.000 945 99846 50395.5 5039550 945 99846 50395.5 5039550 -32623 32312 4520.3 452030 -125 127 1.9 190 -946 2 10936 99847 2.84084 299.84084 151.34084 15134.08408 2.84084 299.84085 151.34084 15134.08404 2.84084 299.84084 151.34084 15134.08400 2020-01-01 2020-01-02 2020-01-01 00:15:46 2020-01-02 03:44:07 2020-01-01 00:15:46.000 2020-01-02 03:44:07.000 946 99847 50396.5 5039650 946 99847 50396.5 5039650 -32622 32313 4521.3 452130 -128 127 0.34 34 -947 2 10937 99848 2.84384 299.84384 151.34384 15134.38438 2.84384 299.84384 151.34384 15134.38421 2.84384 299.84384 151.34384 15134.38400 2020-01-01 2020-01-02 2020-01-01 00:15:47 2020-01-02 03:44:08 2020-01-01 00:15:47.000 2020-01-02 03:44:08.000 947 99848 50397.5 5039750 947 99848 50397.5 5039750 -32621 32314 4522.3 452230 -128 127 -1.22 -122 -948 2 10938 99849 2.84684 299.84684 151.34684 15134.68468 2.84684 299.84683 151.34684 15134.68452 2.84684 299.84684 151.34684 15134.68400 2020-01-01 2020-01-02 2020-01-01 00:15:48 2020-01-02 03:44:09 2020-01-01 00:15:48.000 2020-01-02 03:44:09.000 948 99849 50398.5 5039850 948 99849 50398.5 5039850 -32620 32315 4523.3 452330 -128 123 -2.78 -278 -949 2 10939 99850 2.84984 299.84984 151.34984 15134.98498 2.84985 299.84985 151.34985 15134.98527 2.84984 299.84984 151.34984 15134.98400 2020-01-01 2020-01-02 2020-01-01 00:15:49 2020-01-02 03:44:10 2020-01-01 00:15:49.000 2020-01-02 03:44:10.000 949 99850 50399.5 5039950 949 99850 50399.5 5039950 -32619 32316 4524.3 452430 -127 124 -1.78 -178 -95 2 10085 99995 0.28528 300.28528 150.28528 15178.81381 0.28528 300.28528 150.28528 15178.81343 0.28528 300.28528 150.28528 15178.81328 2020-01-01 2020-01-02 2020-01-01 00:01:35 2020-01-02 03:46:35 2020-01-01 00:01:35.000 2020-01-02 03:46:35.000 95 99995 50045 5054545 95 99995 50045 5054545 -32474 32461 4624.009900990099 467025 -125 126 0.801980198019802 81 -950 2 10940 99851 2.85285 299.85285 151.35285 15135.28528 2.85285 299.85284 151.35285 15135.28541 2.85285 299.85285 151.35285 15135.28500 2020-01-01 2020-01-02 2020-01-01 00:15:50 2020-01-02 03:44:11 2020-01-01 00:15:50.000 2020-01-02 03:44:11.000 950 99851 50400.5 5040050 950 99851 50400.5 5040050 -32618 32317 4525.3 452530 -126 125 -0.78 -78 -951 2 10941 99852 2.85585 299.85585 151.35585 15135.58558 2.85585 299.85587 151.35585 15135.58551 2.85585 299.85585 151.35585 15135.58500 2020-01-01 2020-01-02 2020-01-01 00:15:51 2020-01-02 03:44:12 2020-01-01 00:15:51.000 2020-01-02 03:44:12.000 951 99852 50401.5 5040150 951 99852 50401.5 5040150 -32617 32318 4526.3 452630 -125 126 0.22 22 -952 2 10942 99853 2.85885 299.85885 151.35885 15135.88588 2.85885 299.85886 151.35885 15135.88568 2.85885 299.85885 151.35885 15135.88500 2020-01-01 2020-01-02 2020-01-01 00:15:52 2020-01-02 03:44:13 2020-01-01 00:15:52.000 2020-01-02 03:44:13.000 952 99853 50402.5 5040250 952 99853 50402.5 5040250 -32616 32319 4527.3 452730 -124 127 1.22 122 -953 2 10943 99854 2.86186 299.86186 151.36186 15136.18618 2.86186 299.86185 151.36185 15136.18598 2.86186 299.86186 151.36186 15136.18600 2020-01-01 2020-01-02 2020-01-01 00:15:53 2020-01-02 03:44:14 2020-01-01 00:15:53.000 2020-01-02 03:44:14.000 953 99854 50403.5 5040350 953 99854 50403.5 5040350 -32615 32320 4528.3 452830 -128 127 -0.34 -34 -954 2 10944 99855 2.86486 299.86486 151.36486 15136.48648 2.86486 299.86487 151.36486 15136.48674 2.86486 299.86486 151.36486 15136.48600 2020-01-01 2020-01-02 2020-01-01 00:15:54 2020-01-02 03:44:15 2020-01-01 00:15:54.000 2020-01-02 03:44:15.000 954 99855 50404.5 5040450 954 99855 50404.5 5040450 -32614 32321 4529.3 452930 -128 123 -1.9 -190 -955 2 10945 99856 2.86786 299.86786 151.36786 15136.78678 2.86786 299.86786 151.36786 15136.78688 2.86786 299.86786 151.36786 15136.78600 2020-01-01 2020-01-02 2020-01-01 00:15:55 2020-01-02 03:44:16 2020-01-01 00:15:55.000 2020-01-02 03:44:16.000 955 99856 50405.5 5040550 955 99856 50405.5 5040550 -32613 32322 4530.3 453030 -127 124 -0.9 -90 -956 2 10946 99857 2.87087 299.87087 151.37087 15137.08708 2.87087 299.87088 151.37087 15137.08701 2.87087 299.87087 151.37087 15137.08700 2020-01-01 2020-01-02 2020-01-01 00:15:56 2020-01-02 03:44:17 2020-01-01 00:15:56.000 2020-01-02 03:44:17.000 956 99857 50406.5 5040650 956 99857 50406.5 5040650 -32612 32323 4531.3 453130 -126 125 0.1 10 -957 2 10947 99858 2.87387 299.87387 151.37387 15137.38738 2.87387 299.87387 151.37387 15137.38716 2.87387 299.87387 151.37387 15137.38700 2020-01-01 2020-01-02 2020-01-01 00:15:57 2020-01-02 03:44:18 2020-01-01 00:15:57.000 2020-01-02 03:44:18.000 957 99858 50407.5 5040750 957 99858 50407.5 5040750 -32611 32324 4532.3 453230 -125 126 1.1 110 -958 2 10948 99859 2.87687 299.87687 151.37687 15137.68768 2.87687 299.8769 151.37687 15137.68791 2.87687 299.87687 151.37687 15137.68700 2020-01-01 2020-01-02 2020-01-01 00:15:58 2020-01-02 03:44:19 2020-01-01 00:15:58.000 2020-01-02 03:44:19.000 958 99859 50408.5 5040850 958 99859 50408.5 5040850 -32610 32325 4533.3 453330 -124 127 2.1 210 -959 2 10949 99860 2.87987 299.87987 151.37987 15137.98798 2.87988 299.87988 151.37988 15137.9882 2.87987 299.87987 151.37987 15137.98700 2020-01-01 2020-01-02 2020-01-01 00:15:59 2020-01-02 03:44:20 2020-01-01 00:15:59.000 2020-01-02 03:44:20.000 959 99860 50409.5 5040950 959 99860 50409.5 5040950 -32609 32326 4534.3 453430 -128 127 0.54 54 -96 2 10086 99996 0.28828 300.28828 150.28828 15179.11711 0.28828 300.2883 150.28828 15179.11718 0.28828 300.28828 150.28828 15179.11628 2020-01-01 2020-01-02 2020-01-01 00:01:36 2020-01-02 03:46:36 2020-01-01 00:01:36.000 2020-01-02 03:46:36.000 96 99996 50046 5054646 96 99996 50046 5054646 -32473 32462 4625.009900990099 467126 -124 127 1.801980198019802 182 -960 2 10950 99861 2.88288 299.88288 151.38288 15138.28828 2.88288 299.88287 151.38288 15138.28834 2.88288 299.88288 151.38288 15138.28800 2020-01-01 2020-01-02 2020-01-01 00:16:00 2020-01-02 03:44:21 2020-01-01 00:16:00.000 2020-01-02 03:44:21.000 960 99861 50410.5 5041050 960 99861 50410.5 5041050 -32608 32327 4535.3 453530 -128 123 -1.02 -102 -961 2 10951 99862 2.88588 299.88588 151.38588 15138.58858 2.88588 299.8859 151.38588 15138.58848 2.88588 299.88588 151.38588 15138.58800 2020-01-01 2020-01-02 2020-01-01 00:16:01 2020-01-02 03:44:22 2020-01-01 00:16:01.000 2020-01-02 03:44:22.000 961 99862 50411.5 5041150 961 99862 50411.5 5041150 -32607 32328 4536.3 453630 -127 124 -0.02 -2 -962 2 10952 99863 2.88888 299.88888 151.38888 15138.88888 2.88888 299.8889 151.38888 15138.88862 2.88888 299.88888 151.38888 15138.88800 2020-01-01 2020-01-02 2020-01-01 00:16:02 2020-01-02 03:44:23 2020-01-01 00:16:02.000 2020-01-02 03:44:23.000 962 99863 50412.5 5041250 962 99863 50412.5 5041250 -32606 32329 4537.3 453730 -126 125 0.98 98 -963 2 10953 99864 2.89189 299.89189 151.39189 15139.18918 2.89189 299.8919 151.39189 15139.18937 2.89189 299.89189 151.39189 15139.18900 2020-01-01 2020-01-02 2020-01-01 00:16:03 2020-01-02 03:44:24 2020-01-01 00:16:03.000 2020-01-02 03:44:24.000 963 99864 50413.5 5041350 963 99864 50413.5 5041350 -32605 32330 4538.3 453830 -125 126 1.98 198 -964 2 10954 99865 2.89489 299.89489 151.39489 15139.48948 2.89489 299.8949 151.39489 15139.48968 2.89489 299.89489 151.39489 15139.48900 2020-01-01 2020-01-02 2020-01-01 00:16:04 2020-01-02 03:44:25 2020-01-01 00:16:04.000 2020-01-02 03:44:25.000 964 99865 50414.5 5041450 964 99865 50414.5 5041450 -32604 32331 4539.3 453930 -124 127 2.98 298 -965 2 10955 99866 2.89789 299.89789 151.39789 15139.78978 2.89789 299.8979 151.39789 15139.78985 2.89789 299.89789 151.39789 15139.78900 2020-01-01 2020-01-02 2020-01-01 00:16:05 2020-01-02 03:44:26 2020-01-01 00:16:05.000 2020-01-02 03:44:26.000 965 99866 50415.5 5041550 965 99866 50415.5 5041550 -32603 32332 4540.3 454030 -128 127 1.42 142 -966 2 10956 99867 2.9009 299.9009 151.4009 15140.09009 2.9009 299.9009 151.40089 15140.08996 2.90090 299.90090 151.40090 15140.09000 2020-01-01 2020-01-02 2020-01-01 00:16:06 2020-01-02 03:44:27 2020-01-01 00:16:06.000 2020-01-02 03:44:27.000 966 99867 50416.5 5041650 966 99867 50416.5 5041650 -32602 32333 4541.3 454130 -128 127 -0.14 -14 -967 2 10957 99868 2.9039 299.9039 151.4039 15140.39039 2.9039 299.9039 151.4039 15140.39009 2.90390 299.90390 151.40390 15140.39000 2020-01-01 2020-01-02 2020-01-01 00:16:07 2020-01-02 03:44:28 2020-01-01 00:16:07.000 2020-01-02 03:44:28.000 967 99868 50417.5 5041750 967 99868 50417.5 5041750 -32601 32334 4542.3 454230 -128 124 -1.7 -170 -968 2 10958 99869 2.9069 299.9069 151.4069 15140.69069 2.9069 299.90692 151.4069 15140.69084 2.90690 299.90690 151.40690 15140.69000 2020-01-01 2020-01-02 2020-01-01 00:16:08 2020-01-02 03:44:29 2020-01-01 00:16:08.000 2020-01-02 03:44:29.000 968 99869 50418.5 5041850 968 99869 50418.5 5041850 -32600 32335 4543.3 454330 -127 125 -0.7 -70 -969 2 10959 99870 2.9099 299.9099 151.4099 15140.99099 2.90991 299.9099 151.40991 15140.99114 2.90990 299.90990 151.40990 15140.99000 2020-01-01 2020-01-02 2020-01-01 00:16:09 2020-01-02 03:44:30 2020-01-01 00:16:09.000 2020-01-02 03:44:30.000 969 99870 50419.5 5041950 969 99870 50419.5 5041950 -32599 32336 4544.3 454430 -126 126 0.3 30 -97 2 10087 99997 0.29129 300.29129 150.29129 15179.42042 0.29129 300.2913 150.29129 15179.42033 0.29129 300.29129 150.29129 15179.42029 2020-01-01 2020-01-02 2020-01-01 00:01:37 2020-01-02 03:46:37 2020-01-01 00:01:37.000 2020-01-02 03:46:37.000 97 99997 50047 5054747 97 99997 50047 5054747 -32472 32463 4626.009900990099 467227 -128 127 0.26732673267326734 27 -970 2 10960 99871 2.91291 299.91291 151.41291 15141.29129 2.91291 299.9129 151.41291 15141.29132 2.91291 299.91291 151.41291 15141.29100 2020-01-01 2020-01-02 2020-01-01 00:16:10 2020-01-02 03:44:31 2020-01-01 00:16:10.000 2020-01-02 03:44:31.000 970 99871 50420.5 5042050 970 99871 50420.5 5042050 -32598 32337 4545.3 454530 -125 127 1.3 130 -971 2 10961 99872 2.91591 299.91591 151.41591 15141.59159 2.91591 299.91592 151.41591 15141.59142 2.91591 299.91591 151.41591 15141.59100 2020-01-01 2020-01-02 2020-01-01 00:16:11 2020-01-02 03:44:32 2020-01-01 00:16:11.000 2020-01-02 03:44:32.000 971 99872 50421.5 5042150 971 99872 50421.5 5042150 -32597 32338 4546.3 454630 -128 127 -0.26 -26 -972 2 10962 99873 2.91891 299.91891 151.41891 15141.89189 2.91891 299.9189 151.41891 15141.89172 2.91891 299.91891 151.41891 15141.89100 2020-01-01 2020-01-02 2020-01-01 00:16:12 2020-01-02 03:44:33 2020-01-01 00:16:12.000 2020-01-02 03:44:33.000 972 99873 50422.5 5042250 972 99873 50422.5 5042250 -32596 32339 4547.3 454730 -128 127 -1.82 -182 -973 2 10963 99874 2.92192 299.92192 151.42192 15142.19219 2.92192 299.92194 151.42192 15142.19232 2.92192 299.92192 151.42192 15142.19200 2020-01-01 2020-01-02 2020-01-01 00:16:13 2020-01-02 03:44:34 2020-01-01 00:16:13.000 2020-01-02 03:44:34.000 973 99874 50423.5 5042350 973 99874 50423.5 5042350 -32595 32340 4548.3 454830 -128 123 -3.38 -338 +942 2 10932 99843 2.82882 299.82882 151.32882 15132.88288 2.82882 299.82883 151.32882 15132.88275 2.82882 299.82882 151.3288200000001 15132.88200 2020-01-01 2020-01-02 2020-01-01 00:15:42 2020-01-02 03:44:03 2020-01-01 00:15:42.000 2020-01-02 03:44:03.000 942 99843 50392.5 5039250 942 99843 50392.5 5039250 -32626 32309 4517.3 451730 -128 124 -1.1 -110 +943 2 10933 99844 2.83183 299.83183 151.33183 15133.18318 2.83183 299.83182 151.33183 15133.18304 2.83183 299.83183 151.33182999999985 15133.18300 2020-01-01 2020-01-02 2020-01-01 00:15:43 2020-01-02 03:44:04 2020-01-01 00:15:43.000 2020-01-02 03:44:04.000 943 99844 50393.5 5039350 943 99844 50393.5 5039350 -32625 32310 4518.3 451830 -127 125 -0.1 -10 +944 2 10934 99845 2.83483 299.83483 151.33483 15133.48348 2.83483 299.83484 151.33483 15133.48364 2.83483 299.83483 151.33482999999984 15133.48300 2020-01-01 2020-01-02 2020-01-01 00:15:44 2020-01-02 03:44:05 2020-01-01 00:15:44.000 2020-01-02 03:44:05.000 944 99845 50394.5 5039450 944 99845 50394.5 5039450 -32624 32311 4519.3 451930 -126 126 0.9 90 +945 2 10935 99846 2.83783 299.83783 151.33783 15133.78378 2.83783 299.83783 151.33783 15133.78393 2.83783 299.83783 151.3378300000002 15133.78300 2020-01-01 2020-01-02 2020-01-01 00:15:45 2020-01-02 03:44:06 2020-01-01 00:15:45.000 2020-01-02 03:44:06.000 945 99846 50395.5 5039550 945 99846 50395.5 5039550 -32623 32312 4520.3 452030 -125 127 1.9 190 +946 2 10936 99847 2.84084 299.84084 151.34084 15134.08408 2.84084 299.84085 151.34084 15134.08404 2.84084 299.84084 151.34084000000007 15134.08400 2020-01-01 2020-01-02 2020-01-01 00:15:46 2020-01-02 03:44:07 2020-01-01 00:15:46.000 2020-01-02 03:44:07.000 946 99847 50396.5 5039650 946 99847 50396.5 5039650 -32622 32313 4521.3 452130 -128 127 0.34 34 +947 2 10937 99848 2.84384 299.84384 151.34384 15134.38438 2.84384 299.84384 151.34384 15134.38421 2.84384 299.84384 151.34383999999977 15134.38400 2020-01-01 2020-01-02 2020-01-01 00:15:47 2020-01-02 03:44:08 2020-01-01 00:15:47.000 2020-01-02 03:44:08.000 947 99848 50397.5 5039750 947 99848 50397.5 5039750 -32621 32314 4522.3 452230 -128 127 -1.22 -122 +948 2 10938 99849 2.84684 299.84684 151.34684 15134.68468 2.84684 299.84683 151.34684 15134.68452 2.84684 299.84684 151.3468400000001 15134.68400 2020-01-01 2020-01-02 2020-01-01 00:15:48 2020-01-02 03:44:09 2020-01-01 00:15:48.000 2020-01-02 03:44:09.000 948 99849 50398.5 5039850 948 99849 50398.5 5039850 -32620 32315 4523.3 452330 -128 123 -2.78 -278 +949 2 10939 99850 2.84984 299.84984 151.34984 15134.98498 2.84985 299.84985 151.34985 15134.98527 2.84984 299.84984 151.34984000000009 15134.98400 2020-01-01 2020-01-02 2020-01-01 00:15:49 2020-01-02 03:44:10 2020-01-01 00:15:49.000 2020-01-02 03:44:10.000 949 99850 50399.5 5039950 949 99850 50399.5 5039950 -32619 32316 4524.3 452430 -127 124 -1.78 -178 +95 2 10085 99995 0.28528 300.28528 150.28528 15178.81381 0.28528 300.28528 150.28528 15178.81343 0.28528 300.28528 150.28528000000003 15178.81328 2020-01-01 2020-01-02 2020-01-01 00:01:35 2020-01-02 03:46:35 2020-01-01 00:01:35.000 2020-01-02 03:46:35.000 95 99995 50045 5054545 95 99995 50045 5054545 -32474 32461 4624.009900990099 467025 -125 126 0.801980198019802 81 +950 2 10940 99851 2.85285 299.85285 151.35285 15135.28528 2.85285 299.85284 151.35285 15135.28541 2.85285 299.85285 151.35284999999996 15135.28500 2020-01-01 2020-01-02 2020-01-01 00:15:50 2020-01-02 03:44:11 2020-01-01 00:15:50.000 2020-01-02 03:44:11.000 950 99851 50400.5 5040050 950 99851 50400.5 5040050 -32618 32317 4525.3 452530 -126 125 -0.78 -78 +951 2 10941 99852 2.85585 299.85585 151.35585 15135.58558 2.85585 299.85587 151.35585 15135.58551 2.85585 299.85585 151.35584999999995 15135.58500 2020-01-01 2020-01-02 2020-01-01 00:15:51 2020-01-02 03:44:12 2020-01-01 00:15:51.000 2020-01-02 03:44:12.000 951 99852 50401.5 5040150 951 99852 50401.5 5040150 -32617 32318 4526.3 452630 -125 126 0.22 22 +952 2 10942 99853 2.85885 299.85885 151.35885 15135.88588 2.85885 299.85886 151.35885 15135.88568 2.85885 299.85885 151.35885000000002 15135.88500 2020-01-01 2020-01-02 2020-01-01 00:15:52 2020-01-02 03:44:13 2020-01-01 00:15:52.000 2020-01-02 03:44:13.000 952 99853 50402.5 5040250 952 99853 50402.5 5040250 -32616 32319 4527.3 452730 -124 127 1.22 122 +953 2 10943 99854 2.86186 299.86186 151.36186 15136.18618 2.86186 299.86185 151.36185 15136.18598 2.86186 299.86186 151.36186000000018 15136.18600 2020-01-01 2020-01-02 2020-01-01 00:15:53 2020-01-02 03:44:14 2020-01-01 00:15:53.000 2020-01-02 03:44:14.000 953 99854 50403.5 5040350 953 99854 50403.5 5040350 -32615 32320 4528.3 452830 -128 127 -0.34 -34 +954 2 10944 99855 2.86486 299.86486 151.36486 15136.48648 2.86486 299.86487 151.36486 15136.48674 2.86486 299.86486 151.36485999999985 15136.48600 2020-01-01 2020-01-02 2020-01-01 00:15:54 2020-01-02 03:44:15 2020-01-01 00:15:54.000 2020-01-02 03:44:15.000 954 99855 50404.5 5040450 954 99855 50404.5 5040450 -32614 32321 4529.3 452930 -128 123 -1.9 -190 +955 2 10945 99856 2.86786 299.86786 151.36786 15136.78678 2.86786 299.86786 151.36786 15136.78688 2.86786 299.86786 151.36786000000012 15136.78600 2020-01-01 2020-01-02 2020-01-01 00:15:55 2020-01-02 03:44:16 2020-01-01 00:15:55.000 2020-01-02 03:44:16.000 955 99856 50405.5 5040550 955 99856 50405.5 5040550 -32613 32322 4530.3 453030 -127 124 -0.9 -90 +956 2 10946 99857 2.87087 299.87087 151.37087 15137.08708 2.87087 299.87088 151.37087 15137.08701 2.87087 299.87087 151.37087000000014 15137.08700 2020-01-01 2020-01-02 2020-01-01 00:15:56 2020-01-02 03:44:17 2020-01-01 00:15:56.000 2020-01-02 03:44:17.000 956 99857 50406.5 5040650 956 99857 50406.5 5040650 -32612 32323 4531.3 453130 -126 125 0.1 10 +957 2 10947 99858 2.87387 299.87387 151.37387 15137.38738 2.87387 299.87387 151.37387 15137.38716 2.87387 299.87387 151.37386999999995 15137.38700 2020-01-01 2020-01-02 2020-01-01 00:15:57 2020-01-02 03:44:18 2020-01-01 00:15:57.000 2020-01-02 03:44:18.000 957 99858 50407.5 5040750 957 99858 50407.5 5040750 -32611 32324 4532.3 453230 -125 126 1.1 110 +958 2 10948 99859 2.87687 299.87687 151.37687 15137.68768 2.87687 299.8769 151.37687 15137.68791 2.87687 299.87687 151.37687000000003 15137.68700 2020-01-01 2020-01-02 2020-01-01 00:15:58 2020-01-02 03:44:19 2020-01-01 00:15:58.000 2020-01-02 03:44:19.000 958 99859 50408.5 5040850 958 99859 50408.5 5040850 -32610 32325 4533.3 453330 -124 127 2.1 210 +959 2 10949 99860 2.87987 299.87987 151.37987 15137.98798 2.87988 299.87988 151.37988 15137.9882 2.87987 299.87987 151.3798700000001 15137.98700 2020-01-01 2020-01-02 2020-01-01 00:15:59 2020-01-02 03:44:20 2020-01-01 00:15:59.000 2020-01-02 03:44:20.000 959 99860 50409.5 5040950 959 99860 50409.5 5040950 -32609 32326 4534.3 453430 -128 127 0.54 54 +96 2 10086 99996 0.28828 300.28828 150.28828 15179.11711 0.28828 300.2883 150.28828 15179.11718 0.28828 300.28828 150.28828000000007 15179.11628 2020-01-01 2020-01-02 2020-01-01 00:01:36 2020-01-02 03:46:36 2020-01-01 00:01:36.000 2020-01-02 03:46:36.000 96 99996 50046 5054646 96 99996 50046 5054646 -32473 32462 4625.009900990099 467126 -124 127 1.801980198019802 182 +960 2 10950 99861 2.88288 299.88288 151.38288 15138.28828 2.88288 299.88287 151.38288 15138.28834 2.88288 299.88288 151.3828799999999 15138.28800 2020-01-01 2020-01-02 2020-01-01 00:16:00 2020-01-02 03:44:21 2020-01-01 00:16:00.000 2020-01-02 03:44:21.000 960 99861 50410.5 5041050 960 99861 50410.5 5041050 -32608 32327 4535.3 453530 -128 123 -1.02 -102 +961 2 10951 99862 2.88588 299.88588 151.38588 15138.58858 2.88588 299.8859 151.38588 15138.58848 2.88588 299.88588 151.38587999999987 15138.58800 2020-01-01 2020-01-02 2020-01-01 00:16:01 2020-01-02 03:44:22 2020-01-01 00:16:01.000 2020-01-02 03:44:22.000 961 99862 50411.5 5041150 961 99862 50411.5 5041150 -32607 32328 4536.3 453630 -127 124 -0.02 -2 +962 2 10952 99863 2.88888 299.88888 151.38888 15138.88888 2.88888 299.8889 151.38888 15138.88862 2.88888 299.88888 151.3888800000002 15138.88800 2020-01-01 2020-01-02 2020-01-01 00:16:02 2020-01-02 03:44:23 2020-01-01 00:16:02.000 2020-01-02 03:44:23.000 962 99863 50412.5 5041250 962 99863 50412.5 5041250 -32606 32329 4537.3 453730 -126 125 0.98 98 +963 2 10953 99864 2.89189 299.89189 151.39189 15139.18918 2.89189 299.8919 151.39189 15139.18937 2.89189 299.89189 151.39189000000013 15139.18900 2020-01-01 2020-01-02 2020-01-01 00:16:03 2020-01-02 03:44:24 2020-01-01 00:16:03.000 2020-01-02 03:44:24.000 963 99864 50413.5 5041350 963 99864 50413.5 5041350 -32605 32330 4538.3 453830 -125 126 1.98 198 +964 2 10954 99865 2.89489 299.89489 151.39489 15139.48948 2.89489 299.8949 151.39489 15139.48968 2.89489 299.89489 151.39488999999978 15139.48900 2020-01-01 2020-01-02 2020-01-01 00:16:04 2020-01-02 03:44:25 2020-01-01 00:16:04.000 2020-01-02 03:44:25.000 964 99865 50414.5 5041450 964 99865 50414.5 5041450 -32604 32331 4539.3 453930 -124 127 2.98 298 +965 2 10955 99866 2.89789 299.89789 151.39789 15139.78978 2.89789 299.8979 151.39789 15139.78985 2.89789 299.89789 151.39789000000013 15139.78900 2020-01-01 2020-01-02 2020-01-01 00:16:05 2020-01-02 03:44:26 2020-01-01 00:16:05.000 2020-01-02 03:44:26.000 965 99866 50415.5 5041550 965 99866 50415.5 5041550 -32603 32332 4540.3 454030 -128 127 1.42 142 +966 2 10956 99867 2.9009 299.9009 151.4009 15140.09009 2.9009 299.9009 151.40089 15140.08996 2.90090 299.90090 151.4009 15140.09000 2020-01-01 2020-01-02 2020-01-01 00:16:06 2020-01-02 03:44:27 2020-01-01 00:16:06.000 2020-01-02 03:44:27.000 966 99867 50416.5 5041650 966 99867 50416.5 5041650 -32602 32333 4541.3 454130 -128 127 -0.14 -14 +967 2 10957 99868 2.9039 299.9039 151.4039 15140.39039 2.9039 299.9039 151.4039 15140.39009 2.90390 299.90390 151.4038999999999 15140.39000 2020-01-01 2020-01-02 2020-01-01 00:16:07 2020-01-02 03:44:28 2020-01-01 00:16:07.000 2020-01-02 03:44:28.000 967 99868 50417.5 5041750 967 99868 50417.5 5041750 -32601 32334 4542.3 454230 -128 124 -1.7 -170 +968 2 10958 99869 2.9069 299.9069 151.4069 15140.69069 2.9069 299.90692 151.4069 15140.69084 2.90690 299.90690 151.40689999999998 15140.69000 2020-01-01 2020-01-02 2020-01-01 00:16:08 2020-01-02 03:44:29 2020-01-01 00:16:08.000 2020-01-02 03:44:29.000 968 99869 50418.5 5041850 968 99869 50418.5 5041850 -32600 32335 4543.3 454330 -127 125 -0.7 -70 +969 2 10959 99870 2.9099 299.9099 151.4099 15140.99099 2.90991 299.9099 151.40991 15140.99114 2.90990 299.90990 151.40990000000002 15140.99000 2020-01-01 2020-01-02 2020-01-01 00:16:09 2020-01-02 03:44:30 2020-01-01 00:16:09.000 2020-01-02 03:44:30.000 969 99870 50419.5 5041950 969 99870 50419.5 5041950 -32599 32336 4544.3 454430 -126 126 0.3 30 +97 2 10087 99997 0.29129 300.29129 150.29129 15179.42042 0.29129 300.2913 150.29129 15179.42033 0.29129 300.29129 150.29128999999986 15179.42029 2020-01-01 2020-01-02 2020-01-01 00:01:37 2020-01-02 03:46:37 2020-01-01 00:01:37.000 2020-01-02 03:46:37.000 97 99997 50047 5054747 97 99997 50047 5054747 -32472 32463 4626.009900990099 467227 -128 127 0.26732673267326734 27 +970 2 10960 99871 2.91291 299.91291 151.41291 15141.29129 2.91291 299.9129 151.41291 15141.29132 2.91291 299.91291 151.41290999999984 15141.29100 2020-01-01 2020-01-02 2020-01-01 00:16:10 2020-01-02 03:44:31 2020-01-01 00:16:10.000 2020-01-02 03:44:31.000 970 99871 50420.5 5042050 970 99871 50420.5 5042050 -32598 32337 4545.3 454530 -125 127 1.3 130 +971 2 10961 99872 2.91591 299.91591 151.41591 15141.59159 2.91591 299.91592 151.41591 15141.59142 2.91591 299.91591 151.41590999999988 15141.59100 2020-01-01 2020-01-02 2020-01-01 00:16:11 2020-01-02 03:44:32 2020-01-01 00:16:11.000 2020-01-02 03:44:32.000 971 99872 50421.5 5042150 971 99872 50421.5 5042150 -32597 32338 4546.3 454630 -128 127 -0.26 -26 +972 2 10962 99873 2.91891 299.91891 151.41891 15141.89189 2.91891 299.9189 151.41891 15141.89172 2.91891 299.91891 151.41891000000015 15141.89100 2020-01-01 2020-01-02 2020-01-01 00:16:12 2020-01-02 03:44:33 2020-01-01 00:16:12.000 2020-01-02 03:44:33.000 972 99873 50422.5 5042250 972 99873 50422.5 5042250 -32596 32339 4547.3 454730 -128 127 -1.82 -182 +973 2 10963 99874 2.92192 299.92192 151.42192 15142.19219 2.92192 299.92194 151.42192 15142.19232 2.92192 299.92192 151.42192000000006 15142.19200 2020-01-01 2020-01-02 2020-01-01 00:16:13 2020-01-02 03:44:34 2020-01-01 00:16:13.000 2020-01-02 03:44:34.000 973 99874 50423.5 5042350 973 99874 50423.5 5042350 -32595 32340 4548.3 454830 -128 123 -3.38 -338 974 2 10964 99875 2.92492 299.92492 151.42492 15142.49249 2.92492 299.92493 151.42492 15142.49265 2.92492 299.92492 151.42492 15142.49200 2020-01-01 2020-01-02 2020-01-01 00:16:14 2020-01-02 03:44:35 2020-01-01 00:16:14.000 2020-01-02 03:44:35.000 974 99875 50424.5 5042450 974 99875 50424.5 5042450 -32594 32341 4549.3 454930 -127 124 -2.38 -238 -975 2 10965 99876 2.92792 299.92792 151.42792 15142.79279 2.92792 299.92792 151.42792 15142.79279 2.92792 299.92792 151.42792 15142.79200 2020-01-01 2020-01-02 2020-01-01 00:16:15 2020-01-02 03:44:36 2020-01-01 00:16:15.000 2020-01-02 03:44:36.000 975 99876 50425.5 5042550 975 99876 50425.5 5042550 -32593 32342 4550.3 455030 -126 125 -1.38 -138 -976 2 10966 99877 2.93093 299.93093 151.43093 15143.09309 2.93093 299.93094 151.43092 15143.09289 2.93093 299.93093 151.43093 15143.09300 2020-01-01 2020-01-02 2020-01-01 00:16:16 2020-01-02 03:44:37 2020-01-01 00:16:16.000 2020-01-02 03:44:37.000 976 99877 50426.5 5042650 976 99877 50426.5 5042650 -32592 32343 4551.3 455130 -125 126 -0.38 -38 -977 2 10967 99878 2.93393 299.93393 151.43393 15143.39339 2.93393 299.93393 151.43393 15143.39318 2.93393 299.93393 151.43393 15143.39300 2020-01-01 2020-01-02 2020-01-01 00:16:17 2020-01-02 03:44:38 2020-01-01 00:16:17.000 2020-01-02 03:44:38.000 977 99878 50427.5 5042750 977 99878 50427.5 5042750 -32591 32344 4552.3 455230 -124 127 0.62 62 -978 2 10968 99879 2.93693 299.93693 151.43693 15143.69369 2.93693 299.93695 151.43693 15143.69378 2.93693 299.93693 151.43693 15143.69300 2020-01-01 2020-01-02 2020-01-01 00:16:18 2020-01-02 03:44:39 2020-01-01 00:16:18.000 2020-01-02 03:44:39.000 978 99879 50428.5 5042850 978 99879 50428.5 5042850 -32590 32345 4553.3 455330 -128 127 -0.94 -94 -979 2 10969 99880 2.93993 299.93993 151.43993 15143.99399 2.93994 299.93994 151.43994 15143.99412 2.93993 299.93993 151.43993 15143.99300 2020-01-01 2020-01-02 2020-01-01 00:16:19 2020-01-02 03:44:40 2020-01-01 00:16:19.000 2020-01-02 03:44:40.000 979 99880 50429.5 5042950 979 99880 50429.5 5042950 -32589 32346 4554.3 455430 -128 123 -2.5 -250 -98 2 10088 99998 0.29429 300.29429 150.29429 15179.72372 0.29429 300.29428 150.29429 15179.72363 0.29429 300.29429 150.29429 15179.72329 2020-01-01 2020-01-02 2020-01-01 00:01:38 2020-01-02 03:46:38 2020-01-01 00:01:38.000 2020-01-02 03:46:38.000 98 99998 50048 5054848 98 99998 50048 5054848 -32471 32464 4627.009900990099 467328 -128 127 -1.2673267326732673 -128 -980 2 10970 99881 2.94294 299.94294 151.44294 15144.29429 2.94294 299.94293 151.44294 15144.29426 2.94294 299.94294 151.44294 15144.29400 2020-01-01 2020-01-02 2020-01-01 00:16:20 2020-01-02 03:44:41 2020-01-01 00:16:20.000 2020-01-02 03:44:41.000 980 99881 50430.5 5043050 980 99881 50430.5 5043050 -32588 32347 4555.3 455530 -127 124 -1.5 -150 -981 2 10971 99882 2.94594 299.94594 151.44594 15144.59459 2.94594 299.94595 151.44595 15144.59501 2.94594 299.94594 151.44594 15144.59400 2020-01-01 2020-01-02 2020-01-01 00:16:21 2020-01-02 03:44:42 2020-01-01 00:16:21.000 2020-01-02 03:44:42.000 981 99882 50431.5 5043150 981 99882 50431.5 5043150 -32587 32348 4556.3 455630 -126 125 -0.5 -50 -982 2 10972 99883 2.94894 299.94894 151.44894 15144.89489 2.94894 299.94894 151.44894 15144.89466 2.94894 299.94894 151.44894 15144.89400 2020-01-01 2020-01-02 2020-01-01 00:16:22 2020-01-02 03:44:43 2020-01-01 00:16:22.000 2020-01-02 03:44:43.000 982 99883 50432.5 5043250 982 99883 50432.5 5043250 -32586 32349 4557.3 455730 -125 126 0.5 50 -983 2 10973 99884 2.95195 299.95195 151.45195 15145.19519 2.95195 299.95197 151.45195 15145.19525 2.95195 299.95195 151.45195 15145.19500 2020-01-01 2020-01-02 2020-01-01 00:16:23 2020-01-02 03:44:44 2020-01-01 00:16:23.000 2020-01-02 03:44:44.000 983 99884 50433.5 5043350 983 99884 50433.5 5043350 -32585 32350 4558.3 455830 -124 127 1.5 150 -984 2 10974 99885 2.95495 299.95495 151.45495 15145.49549 2.95495 299.95496 151.45495 15145.49559 2.95495 299.95495 151.45495 15145.49500 2020-01-01 2020-01-02 2020-01-01 00:16:24 2020-01-02 03:44:45 2020-01-01 00:16:24.000 2020-01-02 03:44:45.000 984 99885 50434.5 5043450 984 99885 50434.5 5043450 -32584 32351 4559.3 455930 -128 127 -0.06 -6 -985 2 10975 99886 2.95795 299.95795 151.45795 15145.79579 2.95795 299.95795 151.45795 15145.79573 2.95795 299.95795 151.45795 15145.79500 2020-01-01 2020-01-02 2020-01-01 00:16:25 2020-01-02 03:44:46 2020-01-01 00:16:25.000 2020-01-02 03:44:46.000 985 99886 50435.5 5043550 985 99886 50435.5 5043550 -32583 32352 4560.3 456030 -128 123 -1.62 -162 -986 2 10976 99887 2.96096 299.96096 151.46096 15146.09609 2.96096 299.96097 151.46096 15146.09648 2.96096 299.96096 151.46096 15146.09600 2020-01-01 2020-01-02 2020-01-01 00:16:26 2020-01-02 03:44:47 2020-01-01 00:16:26.000 2020-01-02 03:44:47.000 986 99887 50436.5 5043650 986 99887 50436.5 5043650 -32582 32353 4561.3 456130 -127 124 -0.62 -62 -987 2 10977 99888 2.96396 299.96396 151.46396 15146.39639 2.96396 299.96396 151.46396 15146.39612 2.96396 299.96396 151.46396 15146.39600 2020-01-01 2020-01-02 2020-01-01 00:16:27 2020-01-02 03:44:48 2020-01-01 00:16:27.000 2020-01-02 03:44:48.000 987 99888 50437.5 5043750 987 99888 50437.5 5043750 -32581 32354 4562.3 456230 -126 125 0.38 38 -988 2 10978 99889 2.96696 299.96696 151.46696 15146.69669 2.96696 299.96698 151.46696 15146.69676 2.96696 299.96696 151.46696 15146.69600 2020-01-01 2020-01-02 2020-01-01 00:16:28 2020-01-02 03:44:49 2020-01-01 00:16:28.000 2020-01-02 03:44:49.000 988 99889 50438.5 5043850 988 99889 50438.5 5043850 -32580 32355 4563.3 456330 -125 126 1.38 138 -989 2 10979 99890 2.96996 299.96996 151.46996 15146.99699 2.96997 299.96997 151.46997 15146.99706 2.96996 299.96996 151.46996 15146.99600 2020-01-01 2020-01-02 2020-01-01 00:16:29 2020-01-02 03:44:50 2020-01-01 00:16:29.000 2020-01-02 03:44:50.000 989 99890 50439.5 5043950 989 99890 50439.5 5043950 -32579 32356 4564.3 456430 -124 127 2.38 238 -99 2 10089 99999 0.29729 300.29729 150.29729 15180.02702 0.29729 300.2973 150.29729 15180.02726 0.29729 300.29729 150.29729 15180.02629 2020-01-01 2020-01-02 2020-01-01 00:01:39 2020-01-02 03:46:39 2020-01-01 00:01:39.000 2020-01-02 03:46:39.000 99 99999 50049 5054949 99 99999 50049 5054949 -32470 32465 4628.009900990099 467429 -128 123 -2.801980198019802 -283 -990 2 10980 99891 2.97297 299.97297 151.47297 15147.29729 2.97297 299.97296 151.47297 15147.29735 2.97297 299.97297 151.47297 15147.29700 2020-01-01 2020-01-02 2020-01-01 00:16:30 2020-01-02 03:44:51 2020-01-01 00:16:30.000 2020-01-02 03:44:51.000 990 99891 50440.5 5044050 990 99891 50440.5 5044050 -32578 32357 4565.3 456530 -128 127 0.82 82 +975 2 10965 99876 2.92792 299.92792 151.42792 15142.79279 2.92792 299.92792 151.42792 15142.79279 2.92792 299.92792 151.42792000000006 15142.79200 2020-01-01 2020-01-02 2020-01-01 00:16:15 2020-01-02 03:44:36 2020-01-01 00:16:15.000 2020-01-02 03:44:36.000 975 99876 50425.5 5042550 975 99876 50425.5 5042550 -32593 32342 4550.3 455030 -126 125 -1.38 -138 +976 2 10966 99877 2.93093 299.93093 151.43093 15143.09309 2.93093 299.93094 151.43092 15143.09289 2.93093 299.93093 151.43093000000022 15143.09300 2020-01-01 2020-01-02 2020-01-01 00:16:16 2020-01-02 03:44:37 2020-01-01 00:16:16.000 2020-01-02 03:44:37.000 976 99877 50426.5 5042650 976 99877 50426.5 5042650 -32592 32343 4551.3 455130 -125 126 -0.38 -38 +977 2 10967 99878 2.93393 299.93393 151.43393 15143.39339 2.93393 299.93393 151.43393 15143.39318 2.93393 299.93393 151.4339299999999 15143.39300 2020-01-01 2020-01-02 2020-01-01 00:16:17 2020-01-02 03:44:38 2020-01-01 00:16:17.000 2020-01-02 03:44:38.000 977 99878 50427.5 5042750 977 99878 50427.5 5042750 -32591 32344 4552.3 455230 -124 127 0.62 62 +978 2 10968 99879 2.93693 299.93693 151.43693 15143.69369 2.93693 299.93695 151.43693 15143.69378 2.93693 299.93693 151.4369299999999 15143.69300 2020-01-01 2020-01-02 2020-01-01 00:16:18 2020-01-02 03:44:39 2020-01-01 00:16:18.000 2020-01-02 03:44:39.000 978 99879 50428.5 5042850 978 99879 50428.5 5042850 -32590 32345 4553.3 455330 -128 127 -0.94 -94 +979 2 10969 99880 2.93993 299.93993 151.43993 15143.99399 2.93994 299.93994 151.43994 15143.99412 2.93993 299.93993 151.43993000000017 15143.99300 2020-01-01 2020-01-02 2020-01-01 00:16:19 2020-01-02 03:44:40 2020-01-01 00:16:19.000 2020-01-02 03:44:40.000 979 99880 50429.5 5042950 979 99880 50429.5 5042950 -32589 32346 4554.3 455430 -128 123 -2.5 -250 +98 2 10088 99998 0.29429 300.29429 150.29429 15179.72372 0.29429 300.29428 150.29429 15179.72363 0.29429 300.29429 150.29428999999988 15179.72329 2020-01-01 2020-01-02 2020-01-01 00:01:38 2020-01-02 03:46:38 2020-01-01 00:01:38.000 2020-01-02 03:46:38.000 98 99998 50048 5054848 98 99998 50048 5054848 -32471 32464 4627.009900990099 467328 -128 127 -1.2673267326732673 -128 +980 2 10970 99881 2.94294 299.94294 151.44294 15144.29429 2.94294 299.94293 151.44294 15144.29426 2.94294 299.94294 151.44294000000014 15144.29400 2020-01-01 2020-01-02 2020-01-01 00:16:20 2020-01-02 03:44:41 2020-01-01 00:16:20.000 2020-01-02 03:44:41.000 980 99881 50430.5 5043050 980 99881 50430.5 5043050 -32588 32347 4555.3 455530 -127 124 -1.5 -150 +981 2 10971 99882 2.94594 299.94594 151.44594 15144.59459 2.94594 299.94595 151.44595 15144.59501 2.94594 299.94594 151.4459399999998 15144.59400 2020-01-01 2020-01-02 2020-01-01 00:16:21 2020-01-02 03:44:42 2020-01-01 00:16:21.000 2020-01-02 03:44:42.000 981 99882 50431.5 5043150 981 99882 50431.5 5043150 -32587 32348 4556.3 455630 -126 125 -0.5 -50 +982 2 10972 99883 2.94894 299.94894 151.44894 15144.89489 2.94894 299.94894 151.44894 15144.89466 2.94894 299.94894 151.44894000000014 15144.89400 2020-01-01 2020-01-02 2020-01-01 00:16:22 2020-01-02 03:44:43 2020-01-01 00:16:22.000 2020-01-02 03:44:43.000 982 99883 50432.5 5043250 982 99883 50432.5 5043250 -32586 32349 4557.3 455730 -125 126 0.5 50 +983 2 10973 99884 2.95195 299.95195 151.45195 15145.19519 2.95195 299.95197 151.45195 15145.19525 2.95195 299.95195 151.45195000000004 15145.19500 2020-01-01 2020-01-02 2020-01-01 00:16:23 2020-01-02 03:44:44 2020-01-01 00:16:23.000 2020-01-02 03:44:44.000 983 99884 50433.5 5043350 983 99884 50433.5 5043350 -32585 32350 4558.3 455830 -124 127 1.5 150 +984 2 10974 99885 2.95495 299.95495 151.45495 15145.49549 2.95495 299.95496 151.45495 15145.49559 2.95495 299.95495 151.4549499999999 15145.49500 2020-01-01 2020-01-02 2020-01-01 00:16:24 2020-01-02 03:44:45 2020-01-01 00:16:24.000 2020-01-02 03:44:45.000 984 99885 50434.5 5043450 984 99885 50434.5 5043450 -32584 32351 4559.3 455930 -128 127 -0.06 -6 +985 2 10975 99886 2.95795 299.95795 151.45795 15145.79579 2.95795 299.95795 151.45795 15145.79573 2.95795 299.95795 151.45794999999998 15145.79500 2020-01-01 2020-01-02 2020-01-01 00:16:25 2020-01-02 03:44:46 2020-01-01 00:16:25.000 2020-01-02 03:44:46.000 985 99886 50435.5 5043550 985 99886 50435.5 5043550 -32583 32352 4560.3 456030 -128 123 -1.62 -162 +986 2 10976 99887 2.96096 299.96096 151.46096 15146.09609 2.96096 299.96097 151.46096 15146.09648 2.96096 299.96096 151.46096000000014 15146.09600 2020-01-01 2020-01-02 2020-01-01 00:16:26 2020-01-02 03:44:47 2020-01-01 00:16:26.000 2020-01-02 03:44:47.000 986 99887 50436.5 5043650 986 99887 50436.5 5043650 -32582 32353 4561.3 456130 -127 124 -0.62 -62 +987 2 10977 99888 2.96396 299.96396 151.46396 15146.39639 2.96396 299.96396 151.46396 15146.39612 2.96396 299.96396 151.46395999999982 15146.39600 2020-01-01 2020-01-02 2020-01-01 00:16:27 2020-01-02 03:44:48 2020-01-01 00:16:27.000 2020-01-02 03:44:48.000 987 99888 50437.5 5043750 987 99888 50437.5 5043750 -32581 32354 4562.3 456230 -126 125 0.38 38 +988 2 10978 99889 2.96696 299.96696 151.46696 15146.69669 2.96696 299.96698 151.46696 15146.69676 2.96696 299.96696 151.46695999999986 15146.69600 2020-01-01 2020-01-02 2020-01-01 00:16:28 2020-01-02 03:44:49 2020-01-01 00:16:28.000 2020-01-02 03:44:49.000 988 99889 50438.5 5043850 988 99889 50438.5 5043850 -32580 32355 4563.3 456330 -125 126 1.38 138 +989 2 10979 99890 2.96996 299.96996 151.46996 15146.99699 2.96997 299.96997 151.46997 15146.99706 2.96996 299.96996 151.46996000000016 15146.99600 2020-01-01 2020-01-02 2020-01-01 00:16:29 2020-01-02 03:44:50 2020-01-01 00:16:29.000 2020-01-02 03:44:50.000 989 99890 50439.5 5043950 989 99890 50439.5 5043950 -32579 32356 4564.3 456430 -124 127 2.38 238 +99 2 10089 99999 0.29729 300.29729 150.29729 15180.02702 0.29729 300.2973 150.29729 15180.02726 0.29729 300.29729 150.29729000000023 15180.02629 2020-01-01 2020-01-02 2020-01-01 00:01:39 2020-01-02 03:46:39 2020-01-01 00:01:39.000 2020-01-02 03:46:39.000 99 99999 50049 5054949 99 99999 50049 5054949 -32470 32465 4628.009900990099 467429 -128 123 -2.801980198019802 -283 +990 2 10980 99891 2.97297 299.97297 151.47297 15147.29729 2.97297 299.97296 151.47297 15147.29735 2.97297 299.97297 151.4729700000001 15147.29700 2020-01-01 2020-01-02 2020-01-01 00:16:30 2020-01-02 03:44:51 2020-01-01 00:16:30.000 2020-01-02 03:44:51.000 990 99891 50440.5 5044050 990 99891 50440.5 5044050 -32578 32357 4565.3 456530 -128 127 0.82 82 991 2 10981 99892 2.97597 299.97597 151.47597 15147.59759 2.97597 299.97598 151.47597 15147.59795 2.97597 299.97597 151.47597 15147.59700 2020-01-01 2020-01-02 2020-01-01 00:16:31 2020-01-02 03:44:52 2020-01-01 00:16:31.000 2020-01-02 03:44:52.000 991 99892 50441.5 5044150 991 99892 50441.5 5044150 -32577 32358 4566.3 456630 -128 127 -0.74 -74 -992 2 10982 99893 2.97897 299.97897 151.47897 15147.89789 2.97897 299.97897 151.47897 15147.89759 2.97897 299.97897 151.47897 15147.89700 2020-01-01 2020-01-02 2020-01-01 00:16:32 2020-01-02 03:44:53 2020-01-01 00:16:32.000 2020-01-02 03:44:53.000 992 99893 50442.5 5044250 992 99893 50442.5 5044250 -32576 32359 4567.3 456730 -128 124 -2.3 -230 +992 2 10982 99893 2.97897 299.97897 151.47897 15147.89789 2.97897 299.97897 151.47897 15147.89759 2.97897 299.97897 151.4789700000001 15147.89700 2020-01-01 2020-01-02 2020-01-01 00:16:32 2020-01-02 03:44:53 2020-01-01 00:16:32.000 2020-01-02 03:44:53.000 992 99893 50442.5 5044250 992 99893 50442.5 5044250 -32576 32359 4567.3 456730 -128 124 -2.3 -230 993 2 10983 99894 2.98198 299.98198 151.48198 15148.19819 2.98198 299.982 151.48198 15148.19823 2.98198 299.98198 151.48198 15148.19800 2020-01-01 2020-01-02 2020-01-01 00:16:33 2020-01-02 03:44:54 2020-01-01 00:16:33.000 2020-01-02 03:44:54.000 993 99894 50443.5 5044350 993 99894 50443.5 5044350 -32575 32360 4568.3 456830 -127 125 -1.3 -130 -994 2 10984 99895 2.98498 299.98498 151.48498 15148.49849 2.98498 299.985 151.48498 15148.49853 2.98498 299.98498 151.48498 15148.49800 2020-01-01 2020-01-02 2020-01-01 00:16:34 2020-01-02 03:44:55 2020-01-01 00:16:34.000 2020-01-02 03:44:55.000 994 99895 50444.5 5044450 994 99895 50444.5 5044450 -32574 32361 4569.3 456930 -126 126 -0.3 -30 -995 2 10985 99896 2.98798 299.98798 151.48798 15148.79879 2.98798 299.98798 151.48798 15148.79882 2.98798 299.98798 151.48798 15148.79800 2020-01-01 2020-01-02 2020-01-01 00:16:35 2020-01-02 03:44:56 2020-01-01 00:16:35.000 2020-01-02 03:44:56.000 995 99896 50445.5 5044550 995 99896 50445.5 5044550 -32573 32362 4570.3 457030 -125 127 0.7 70 -996 2 10986 99897 2.99099 299.99099 151.49099 15149.09909 2.99099 299.991 151.49099 15149.09942 2.99099 299.99099 151.49099 15149.09900 2020-01-01 2020-01-02 2020-01-01 00:16:36 2020-01-02 03:44:57 2020-01-01 00:16:36.000 2020-01-02 03:44:57.000 996 99897 50446.5 5044650 996 99897 50446.5 5044650 -32572 32363 4571.3 457130 -128 127 -0.86 -86 -997 2 10987 99898 2.99399 299.99399 151.49399 15149.39939 2.99399 299.994 151.49399 15149.3991 2.99399 299.99399 151.49399 15149.39900 2020-01-01 2020-01-02 2020-01-01 00:16:37 2020-01-02 03:44:58 2020-01-01 00:16:37.000 2020-01-02 03:44:58.000 997 99898 50447.5 5044750 997 99898 50447.5 5044750 -32571 32364 4572.3 457230 -128 127 -2.42 -242 -998 2 10988 99899 2.99699 299.99699 151.49699 15149.69969 2.99699 299.997 151.49699 15149.6997 2.99699 299.99699 151.49699 15149.69900 2020-01-01 2020-01-02 2020-01-01 00:16:38 2020-01-02 03:44:59 2020-01-01 00:16:38.000 2020-01-02 03:44:59.000 998 99899 50448.5 5044850 998 99899 50448.5 5044850 -32570 32365 4573.3 457330 -128 123 -3.98 -398 +994 2 10984 99895 2.98498 299.98498 151.48498 15148.49849 2.98498 299.985 151.48498 15148.49853 2.98498 299.98498 151.48497999999995 15148.49800 2020-01-01 2020-01-02 2020-01-01 00:16:34 2020-01-02 03:44:55 2020-01-01 00:16:34.000 2020-01-02 03:44:55.000 994 99895 50444.5 5044450 994 99895 50444.5 5044450 -32574 32361 4569.3 456930 -126 126 -0.3 -30 +995 2 10985 99896 2.98798 299.98798 151.48798 15148.79879 2.98798 299.98798 151.48798 15148.79882 2.98798 299.98798 151.4879799999999 15148.79800 2020-01-01 2020-01-02 2020-01-01 00:16:35 2020-01-02 03:44:56 2020-01-01 00:16:35.000 2020-01-02 03:44:56.000 995 99896 50445.5 5044550 995 99896 50445.5 5044550 -32573 32362 4570.3 457030 -125 127 0.7 70 +996 2 10986 99897 2.99099 299.99099 151.49099 15149.09909 2.99099 299.991 151.49099 15149.09942 2.99099 299.99099 151.49099000000015 15149.09900 2020-01-01 2020-01-02 2020-01-01 00:16:36 2020-01-02 03:44:57 2020-01-01 00:16:36.000 2020-01-02 03:44:57.000 996 99897 50446.5 5044650 996 99897 50446.5 5044650 -32572 32363 4571.3 457130 -128 127 -0.86 -86 +997 2 10987 99898 2.99399 299.99399 151.49399 15149.39939 2.99399 299.994 151.49399 15149.3991 2.99399 299.99399 151.49399000000017 15149.39900 2020-01-01 2020-01-02 2020-01-01 00:16:37 2020-01-02 03:44:58 2020-01-01 00:16:37.000 2020-01-02 03:44:58.000 997 99898 50447.5 5044750 997 99898 50447.5 5044750 -32571 32364 4572.3 457230 -128 127 -2.42 -242 +998 2 10988 99899 2.99699 299.99699 151.49699 15149.69969 2.99699 299.997 151.49699 15149.6997 2.99699 299.99699 151.49698999999984 15149.69900 2020-01-01 2020-01-02 2020-01-01 00:16:38 2020-01-02 03:44:59 2020-01-01 00:16:38.000 2020-01-02 03:44:59.000 998 99899 50448.5 5044850 998 99899 50448.5 5044850 -32570 32365 4573.3 457330 -128 123 -3.98 -398 ---- select row with nulls without states ---- -2 1 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N ---- select row with nulls with states ---- From 6fb7e944dbf0194cfd526a90e43d53e9acd683d8 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Fri, 30 Oct 2020 21:10:02 +0300 Subject: [PATCH 059/425] a test for file engine settings --- src/Storages/StorageFile.cpp | 28 +++++++++---------- .../01544_file_engine_settings.reference | 2 ++ .../0_stateless/01544_file_engine_settings.sh | 23 +++++++++++++++ 3 files changed, 39 insertions(+), 14 deletions(-) create mode 100644 tests/queries/0_stateless/01544_file_engine_settings.reference create mode 100755 tests/queries/0_stateless/01544_file_engine_settings.sh diff --git a/src/Storages/StorageFile.cpp b/src/Storages/StorageFile.cpp index d175736e8f8..517eeb1e671 100644 --- a/src/Storages/StorageFile.cpp +++ b/src/Storages/StorageFile.cpp @@ -167,18 +167,18 @@ StorageFile::StorageFile(int table_fd_, CommonArguments args) StorageFile::StorageFile(const std::string & table_path_, const std::string & user_files_path, CommonArguments args) : StorageFile(args) { - fmt::print(stderr, "Create storage File '{}' from file at \n{}\n", - args.table_id.getNameForLogs(), StackTrace().toString()); - - const auto & changes = args.context.getSettings().changes(); - for (const auto & change : changes) - { - fmt::print(stderr, "Changed setting '{}' to '{}'\n", - change.name, toString(change.value)); - } - - fmt::print(stderr, "delimiter = '{}'\n", - toString(args.context.getSettings().get("format_csv_delimiter"))); +// fmt::print(stderr, "Create storage File '{}' from file at \n{}\n", +// args.table_id.getNameForLogs(), StackTrace().toString()); +// +// const auto & changes = args.context.getSettings().changes(); +// for (const auto & change : changes) +// { +// fmt::print(stderr, "Changed setting '{}' to '{}'\n", +// change.name, toString(change.value)); +// } +// +// fmt::print(stderr, "delimiter = '{}'\n", +// toString(args.context.getSettings().get("format_csv_delimiter"))); is_db_table = false; @@ -204,8 +204,8 @@ StorageFile::StorageFile(const std::string & table_path_, const std::string & us StorageFile::StorageFile(const std::string & relative_table_dir_path, CommonArguments args) : StorageFile(args) { - fmt::print(stderr, "Create storage File '{}' from database at \n{}\n", - args.table_id.getNameForLogs(), StackTrace().toString()); +// fmt::print(stderr, "Create storage File '{}' from database at \n{}\n", +// args.table_id.getNameForLogs(), StackTrace().toString()); if (relative_table_dir_path.empty()) throw Exception("Storage " + getName() + " requires data path", ErrorCodes::INCORRECT_FILE_NAME); diff --git a/tests/queries/0_stateless/01544_file_engine_settings.reference b/tests/queries/0_stateless/01544_file_engine_settings.reference new file mode 100644 index 00000000000..d2afb8fc688 --- /dev/null +++ b/tests/queries/0_stateless/01544_file_engine_settings.reference @@ -0,0 +1,2 @@ +1|1 +1 1 diff --git a/tests/queries/0_stateless/01544_file_engine_settings.sh b/tests/queries/0_stateless/01544_file_engine_settings.sh new file mode 100755 index 00000000000..b13ec0f3db3 --- /dev/null +++ b/tests/queries/0_stateless/01544_file_engine_settings.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +set -eu + +CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) +. "$CURDIR"/../shell_config.sh + +the_file="$CLICKHOUSE_TMP/01544-t.csv" +rm -f -- "$the_file" + +# We are going to check that format settings work for File engine, +# by creating a table with a non-default delimiter, and reading from it. +${CLICKHOUSE_LOCAL} --query " + create table t(a int, b int) engine File(CSV, '$the_file') settings format_csv_delimiter = '|'; + insert into t select 1 a, 1 b; +" + +# See what's in the file +cat "$the_file" + +${CLICKHOUSE_LOCAL} --query " + create table t(a int, b int) engine File(CSV, '$the_file') settings format_csv_delimiter = '|'; + select * from t; +" From 19fcea88f216c62b2a32f4acece33399d969fb42 Mon Sep 17 00:00:00 2001 From: myrrc Date: Fri, 30 Oct 2020 21:13:57 +0300 Subject: [PATCH 060/425] fixing gcc build err --- src/DataTypes/IDataType.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/DataTypes/IDataType.h b/src/DataTypes/IDataType.h index 797b05d2ef3..c32aba721f4 100644 --- a/src/DataTypes/IDataType.h +++ b/src/DataTypes/IDataType.h @@ -469,7 +469,9 @@ struct WhichDataType constexpr WhichDataType(TypeIndex idx_ = TypeIndex::Nothing) : idx(idx_) {} constexpr WhichDataType(const IDataType & data_type) : idx(data_type.getTypeId()) {} constexpr WhichDataType(const IDataType * data_type) : idx(data_type->getTypeId()) {} - constexpr WhichDataType(const DataTypePtr & data_type) : idx(data_type->getTypeId()) {} + + // shared ptr -> is non-constexpr in gcc + WhichDataType(const DataTypePtr & data_type) : idx(data_type->getTypeId()) {} constexpr bool isUInt8() const { return idx == TypeIndex::UInt8; } constexpr bool isUInt16() const { return idx == TypeIndex::UInt16; } From 382fff9009eb001487f1f4f88b390d52717e46a8 Mon Sep 17 00:00:00 2001 From: feng lv Date: Sun, 1 Nov 2020 13:54:07 +0000 Subject: [PATCH 061/425] fix --- .../IInterpreterUnionOrSelectQuery.h | 39 ++ src/Interpreters/InterpreterSelectQuery.cpp | 11 +- src/Interpreters/InterpreterSelectQuery.h | 29 +- .../InterpreterSelectWithUnionQuery.cpp | 413 ++++++++---------- .../InterpreterSelectWithUnionQuery.h | 53 +-- src/Interpreters/executeQuery.cpp | 2 - src/Parsers/ASTSelectWithUnionQuery.cpp | 11 +- src/Parsers/ASTSelectWithUnionQuery.h | 3 - src/Parsers/IAST.cpp | 5 - src/Parsers/IAST.h | 2 - src/Parsers/ParserSelectWithUnionQuery.cpp | 35 +- 11 files changed, 238 insertions(+), 365 deletions(-) create mode 100644 src/Interpreters/IInterpreterUnionOrSelectQuery.h diff --git a/src/Interpreters/IInterpreterUnionOrSelectQuery.h b/src/Interpreters/IInterpreterUnionOrSelectQuery.h new file mode 100644 index 00000000000..67e3cf25e5a --- /dev/null +++ b/src/Interpreters/IInterpreterUnionOrSelectQuery.h @@ -0,0 +1,39 @@ +#pragma once + +#include +#include +#include +#include + +namespace DB +{ +class IInterpreterUnionOrSelectQuery : public IInterpreter +{ +public: + IInterpreterUnionOrSelectQuery(const ASTPtr & query_ptr_, const Context & context_, const SelectQueryOptions & options_) + : query_ptr(query_ptr_) + , context(std::make_shared(context_)) + , options(options_) + , max_streams(context->getSettingsRef().max_threads) + { + } + + virtual void buildQueryPlan(QueryPlan & query_plan) = 0; + + virtual void ignoreWithTotals() = 0; + + virtual ~IInterpreterUnionOrSelectQuery() override = default; + + Block getSampleBlock() { return result_header; } + + size_t getMaxStreams() const { return max_streams; } + +protected: + ASTPtr query_ptr; + std::shared_ptr context; + Block result_header; + SelectQueryOptions options; + size_t max_streams = 1; +}; +} + diff --git a/src/Interpreters/InterpreterSelectQuery.cpp b/src/Interpreters/InterpreterSelectQuery.cpp index d9821be4e4e..0b86914b1fa 100644 --- a/src/Interpreters/InterpreterSelectQuery.cpp +++ b/src/Interpreters/InterpreterSelectQuery.cpp @@ -119,7 +119,6 @@ String InterpreterSelectQuery::generateFilterActions( ParserExpression expr_parser; expr_list->children.push_back(parseQuery(expr_parser, column_str, 0, context->getSettingsRef().max_parser_depth)); } - select_ast->setExpression(ASTSelectQuery::Expression::TABLES, std::make_shared()); auto tables = select_ast->tables(); auto tables_elem = std::make_shared(); @@ -215,10 +214,8 @@ InterpreterSelectQuery::InterpreterSelectQuery( const SelectQueryOptions & options_, const Names & required_result_column_names, const StorageMetadataPtr & metadata_snapshot_) - : options(options_) /// NOTE: the query almost always should be cloned because it will be modified during analysis. - , query_ptr(options.modify_inplace ? query_ptr_ : query_ptr_->clone()) - , context(std::make_shared(context_)) + : IInterpreterUnionOrSelectQuery(options_.modify_inplace ? query_ptr_ : query_ptr_->clone(), context_, options_) , storage(storage_) , input(input_) , input_pipe(std::move(input_pipe_)) @@ -464,12 +461,6 @@ InterpreterSelectQuery::InterpreterSelectQuery( sanitizeBlock(result_header, true); } - -Block InterpreterSelectQuery::getSampleBlock() -{ - return result_header; -} - void InterpreterSelectQuery::buildQueryPlan(QueryPlan & query_plan) { executeImpl(query_plan, input, std::move(input_pipe)); diff --git a/src/Interpreters/InterpreterSelectQuery.h b/src/Interpreters/InterpreterSelectQuery.h index 455b1a1e623..6bbcb9a6bcd 100644 --- a/src/Interpreters/InterpreterSelectQuery.h +++ b/src/Interpreters/InterpreterSelectQuery.h @@ -3,16 +3,15 @@ #include #include -#include #include #include #include -#include -#include +#include +#include +#include +#include #include #include -#include -#include #include @@ -32,7 +31,7 @@ using TreeRewriterResultPtr = std::shared_ptr; /** Interprets the SELECT query. Returns the stream of blocks with the results of the query before `to_stage` stage. */ -class InterpreterSelectQuery : public IInterpreter +class InterpreterSelectQuery : public IInterpreterUnionOrSelectQuery { public: /** @@ -79,18 +78,12 @@ public: BlockIO execute() override; /// Builds QueryPlan for current query. - void buildQueryPlan(QueryPlan & query_plan); + virtual void buildQueryPlan(QueryPlan & query_plan) override; bool ignoreLimits() const override { return options.ignore_limits; } bool ignoreQuota() const override { return options.ignore_quota; } - Block getSampleBlock(); - - void ignoreWithTotals(); - - ASTPtr getQuery() const { return query_ptr; } - - size_t getMaxStreams() const { return max_streams; } + virtual void ignoreWithTotals() override; const SelectQueryInfo & getQueryInfo() const { return query_info; } @@ -158,9 +151,6 @@ private: */ void initSettings(); - SelectQueryOptions options; - ASTPtr query_ptr; - std::shared_ptr context; TreeRewriterResultPtr syntax_analyzer_result; std::unique_ptr query_analyzer; SelectQueryInfo query_info; @@ -172,15 +162,10 @@ private: QueryProcessingStage::Enum from_stage = QueryProcessingStage::FetchColumns; - /// How many streams we ask for storage to produce, and in how many threads we will do further processing. - size_t max_streams = 1; - /// List of columns to read to execute the query. Names required_columns; /// Structure of query source (table, subquery, etc). Block source_header; - /// Structure of query result. - Block result_header; /// The subquery interpreter, if the subquery std::unique_ptr interpreter_subquery; diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp index 92f88342241..43ff1c48167 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp @@ -10,8 +10,6 @@ #include #include -#include - namespace DB { @@ -22,206 +20,40 @@ namespace ErrorCodes extern const int EXPECTED_ALL_OR_DISTINCT; } -struct CustomizeUnionModeRewrite -{ - using TypeToVisit = ASTSelectWithUnionQuery; - - const UnionMode & default_union_mode; - - void visit(ASTSelectWithUnionQuery & union_select, ASTPtr &) - { - size_t num_selects = union_select.list_of_selects->children.size(); - if (!num_selects) - throw Exception("Logical error: no children in ASTSelectWithUnionQuery", ErrorCodes::LOGICAL_ERROR); - if (num_selects > 1) - { - for (auto & mode : union_select.union_modes) - { - if (mode == ASTSelectWithUnionQuery::Mode::Unspecified) - { - if (default_union_mode == UnionMode::ALL) - mode = ASTSelectWithUnionQuery::Mode::ALL; - else if (default_union_mode == UnionMode::DISTINCT) - mode = ASTSelectWithUnionQuery::Mode::DISTINCT; - else - throw Exception( - "Expected ALL or DISTINCT in SelectWithUnion query, because setting (union_default_mode) is empty", - DB::ErrorCodes::EXPECTED_ALL_OR_DISTINCT); - } - } - /// Optimize: if there is UNION DISTINCT, all previous UNION DISTINCT can be rewritten to UNION ALL. - /// Therefore we have at most one UNION DISTINCT in a sequence. - for (auto rit = union_select.union_modes.rbegin(); rit != union_select.union_modes.rend(); ++rit) - { - if (*rit == ASTSelectWithUnionQuery::Mode::DISTINCT) - { - /// Number of streams need to do a DISTINCT transform after unite - for (auto mode_to_modify = ++rit; mode_to_modify != union_select.union_modes.rend(); ++mode_to_modify) - *mode_to_modify = ASTSelectWithUnionQuery::Mode::ALL; - break; - } - } - } - } -}; - -using CustomizeUnionQueryOptimizeVisitor = InDepthNodeVisitor, true>; - -QueryPlan NestedInterpreter::buildQueryPlan(const std::shared_ptr & context, const Block & header) -{ - QueryPlan res; - if (type == Type::LEAF) - { - if (interpreter) - { - interpreter->buildQueryPlan(res); - return res; - } - else - throw Exception("Interpreter is not initialized.", ErrorCodes::LOGICAL_ERROR); - } - - if (num_distinct_union == 0) - { - std::vector> plans(children.size()); - DataStreams data_streams(children.size()); - - for (size_t i = 0; i < children.size(); ++i) - { - plans[i] = std::make_unique(children[i]->buildQueryPlan(context, header)); - data_streams[i] = plans[i]->getCurrentDataStream(); - } - - auto max_threads = context->getSettingsRef().max_threads; - auto union_step = std::make_unique(std::move(data_streams), header, max_threads); - - res.unitePlans(std::move(union_step), std::move(plans)); - return res; - } - /// The first union_distinct_num UNION streams need to do a DISTINCT transform after unite - else - { - QueryPlan distinct_query_plan; - - std::vector> plans(num_distinct_union); - DataStreams data_streams(num_distinct_union); - - for (size_t i = 0; i < num_distinct_union; ++i) - { - plans[i] = std::make_unique(children[i]->buildQueryPlan(context, header)); - data_streams[i] = plans[i]->getCurrentDataStream(); - } - - auto max_threads = context->getSettingsRef().max_threads; - auto union_step = std::make_unique(std::move(data_streams), header, max_threads); - - distinct_query_plan.unitePlans(std::move(union_step), std::move(plans)); - - /// Add distinct transform - const Settings & settings = context->getSettingsRef(); - SizeLimits limits(settings.max_rows_in_distinct, settings.max_bytes_in_distinct, settings.distinct_overflow_mode); - - auto distinct_step - = std::make_unique(distinct_query_plan.getCurrentDataStream(), limits, 0, header.getNames(), false); - - distinct_query_plan.addStep(std::move(distinct_step)); - - /// No other UNION streams after DISTINCT stream - if (num_distinct_union == children.size()) - { - return distinct_query_plan; - } - - /// Build final UNION step - std::vector> final_plans(children.size() - num_distinct_union + 1); - DataStreams final_data_streams(children.size() - num_distinct_union + 1); - - final_plans[0] = std::make_unique(std::move(distinct_query_plan)); - final_data_streams[0] = final_plans[0]->getCurrentDataStream(); - - for (size_t i = 1; i < children.size() - num_distinct_union + 1; ++i) - { - final_plans[i] = std::make_unique(children[num_distinct_union + i - 1]->buildQueryPlan(context, header)); - final_data_streams[i] = final_plans[i]->getCurrentDataStream(); - } - - auto final_union_step = std::make_unique(std::move(final_data_streams), header, max_threads); - res.unitePlans(std::move(final_union_step), std::move(final_plans)); - return res; - } -} - -void NestedInterpreter::ignoreWithTotals() -{ - if (type == Type::LEAF) - { - if (interpreter) - interpreter->ignoreWithTotals(); - else - { - throw Exception("Interpreter is not initialized.", ErrorCodes::LOGICAL_ERROR); - } - return; - } - for (auto & child : children) - { - child->ignoreWithTotals(); - } -} - - InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery( - const ASTPtr & query_ptr_, - const Context & context_, - const SelectQueryOptions & options_, - const Names & required_result_column_names) - : options(options_), - query_ptr(query_ptr_), - context(std::make_shared(context_)), - max_streams(context->getSettingsRef().max_threads) + const ASTPtr & query_ptr_, const Context & context_, const SelectQueryOptions & options_, const Names & required_result_column_names) + : IInterpreterUnionOrSelectQuery(query_ptr_, context_, options_) { - std::cout << "\n\n In InterpreterSelectWithUnionQuery\n\n"; const auto & ast = query_ptr->as(); - std::cout << "\n\n before throw\n\n"; - if (!ast.flatten_nodes_list) - std::cout << "\n\n flatten_nodes_list is null\n\n"; - size_t total_num_selects = ast.flatten_nodes_list->children.size(); - std::cout << "\n\n after get num throw\n\n"; - if (!total_num_selects) - throw Exception("Logical error: no children in ASTSelectWithUnionQuery", ErrorCodes::LOGICAL_ERROR); - std::cout << "\n\n after throw\n\n"; - /// Rewrite ast with settings.union_default_mode - const auto & settings = context->getSettingsRef(); - CustomizeUnionQueryOptimizeVisitor::Data data_union_mode{settings.union_default_mode}; - CustomizeUnionQueryOptimizeVisitor(data_union_mode).visit(query_ptr); + size_t num_children = ast.list_of_selects->children.size(); + if (!num_children) + throw Exception("Logical error: no children in ASTSelectWithUnionQuery", ErrorCodes::LOGICAL_ERROR); /// We first build nested interpreters for each select query, then using this nested interpreters to build Tree Structured nested interpreter. /// Note that we pass 'required_result_column_names' to first SELECT. /// And for the rest, we pass names at the corresponding positions of 'required_result_column_names' in the result of first SELECT, /// because names could be different. - std::vector> interpreters; - interpreters.reserve(total_num_selects); - std::vector required_result_column_names_for_other_selects(total_num_selects); - if (!required_result_column_names.empty() && total_num_selects > 1) + nested_interpreters.reserve(num_children); + std::vector required_result_column_names_for_other_selects(num_children); + + if (!required_result_column_names.empty() && num_children > 1) { /// Result header if there are no filtering by 'required_result_column_names'. /// We use it to determine positions of 'required_result_column_names' in SELECT clause. - Block full_result_header - = InterpreterSelectQuery(ast.flatten_nodes_list->children.at(0), *context, options.copy().analyze().noModify()) - .getSampleBlock(); + Block full_result_header = getCurrentChildResultHeader(ast.list_of_selects->children.at(0), required_result_column_names); std::vector positions_of_required_result_columns(required_result_column_names.size()); + for (size_t required_result_num = 0, size = required_result_column_names.size(); required_result_num < size; ++required_result_num) positions_of_required_result_columns[required_result_num] = full_result_header.getPositionByName(required_result_column_names[required_result_num]); - for (size_t query_num = 1; query_num < total_num_selects; ++query_num) + for (size_t query_num = 1; query_num < num_children; ++query_num) { Block full_result_header_for_current_select - = InterpreterSelectQuery(ast.flatten_nodes_list->children.at(query_num), *context, options.copy().analyze().noModify()) - .getSampleBlock(); + = getCurrentChildResultHeader(ast.list_of_selects->children.at(query_num), required_result_column_names); if (full_result_header_for_current_select.columns() != full_result_header.columns()) throw Exception("Different number of columns in UNION ALL elements:\n" @@ -236,26 +68,26 @@ InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery( } } - for (size_t query_num = 0; query_num < total_num_selects; ++query_num) + for (size_t query_num = 0; query_num < num_children; ++query_num) { const Names & current_required_result_column_names = query_num == 0 ? required_result_column_names : required_result_column_names_for_other_selects[query_num]; - interpreters.emplace_back(std::make_shared( - ast.flatten_nodes_list->children.at(query_num), *context, options, current_required_result_column_names)); + nested_interpreters.emplace_back( + buildCurrentChildInterpreter(ast.list_of_selects->children.at(query_num), current_required_result_column_names)); } /// Determine structure of the result. - if (total_num_selects == 1) + if (num_children == 1) { - result_header = interpreters.front()->getSampleBlock(); + result_header = nested_interpreters.front()->getSampleBlock(); } else { - Blocks headers(total_num_selects); - for (size_t query_num = 0; query_num < total_num_selects; ++query_num) - headers[query_num] = interpreters[query_num]->getSampleBlock(); + Blocks headers(num_children); + for (size_t query_num = 0; query_num < num_children; ++query_num) + headers[query_num] = nested_interpreters[query_num]->getSampleBlock(); result_header = getCommonHeaderForUnion(headers); } @@ -263,7 +95,7 @@ InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery( /// InterpreterSelectWithUnionQuery ignores limits if all nested interpreters ignore limits. bool all_nested_ignore_limits = true; bool all_nested_ignore_quota = true; - for (auto & interpreter : interpreters) + for (auto & interpreter : nested_interpreters) { if (!interpreter->ignoreLimits()) all_nested_ignore_limits = false; @@ -273,44 +105,6 @@ InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery( options.ignore_limits |= all_nested_ignore_limits; options.ignore_quota |= all_nested_ignore_quota; - int index = 0; - buildNestedTreeInterpreter(query_ptr, nested_interpreter, interpreters, index); -} - -/// We build a Tree Structured nested interpreters to build QueryPlan later -/// The structure of build nested interpreters is same as AST Tree -void InterpreterSelectWithUnionQuery::buildNestedTreeInterpreter( - const ASTPtr & ast_ptr, - std::shared_ptr nested_interpreter_, - std::vector> & interpreters, - int & index) -{ - std::cout << "\n\n in build \n\n"; - if (auto inner_union = ast_ptr->as()) - { - auto internal_intepreter = std::make_shared(); - const auto & union_modes = inner_union->union_modes; - - for (auto rit = union_modes.rbegin(); rit != union_modes.rend(); ++rit) - { - if (*rit == ASTSelectWithUnionQuery::Mode::DISTINCT) - { - internal_intepreter->num_distinct_union = union_modes.rend() - rit + 1; - break; - } - } - - nested_interpreter_->children.push_back(internal_intepreter); - - for (auto & child : inner_union->list_of_selects->children) - buildNestedTreeInterpreter(child, internal_intepreter, interpreters, index); - return; - } - - auto leaf_interpreter = std::make_shared(); - leaf_interpreter->type = NestedInterpreter::Type::LEAF; - leaf_interpreter->interpreter = interpreters[index++]; - nested_interpreter_->children.push_back(leaf_interpreter); } Block InterpreterSelectWithUnionQuery::getCommonHeaderForUnion(const Blocks & headers) @@ -343,33 +137,167 @@ Block InterpreterSelectWithUnionQuery::getCommonHeaderForUnion(const Blocks & he return common_header; } +Block InterpreterSelectWithUnionQuery::getCurrentChildResultHeader(const ASTPtr & ast_ptr_, const Names & required_result_column_names) +{ + if (const auto _ = ast_ptr_->as()) + return InterpreterSelectWithUnionQuery(ast_ptr_, *context, options.copy().analyze().noModify(), required_result_column_names) + .getSampleBlock(); + else + return InterpreterSelectQuery(ast_ptr_, *context, options.copy().analyze().noModify()).getSampleBlock(); +} + +std::unique_ptr +InterpreterSelectWithUnionQuery::buildCurrentChildInterpreter(const ASTPtr & ast_ptr_, const Names & current_required_result_column_names) +{ + if (const auto _ = ast_ptr_->as()) + return std::make_unique(ast_ptr_, *context, options, current_required_result_column_names); + else + return std::make_unique(ast_ptr_, *context, options, current_required_result_column_names); +} InterpreterSelectWithUnionQuery::~InterpreterSelectWithUnionQuery() = default; - -Block InterpreterSelectWithUnionQuery::getSampleBlock() +Block InterpreterSelectWithUnionQuery::getSampleBlock(const ASTPtr & query_ptr_, const Context & context_) { - return result_header; -} - -Block InterpreterSelectWithUnionQuery::getSampleBlock( - const ASTPtr & query_ptr, - const Context & context) -{ - auto & cache = context.getSampleBlockCache(); + auto & cache = context_.getSampleBlockCache(); /// Using query string because query_ptr changes for every internal SELECT - auto key = queryToString(query_ptr); + auto key = queryToString(query_ptr_); if (cache.find(key) != cache.end()) { return cache[key]; } - return cache[key] = InterpreterSelectWithUnionQuery(query_ptr, context, SelectQueryOptions().analyze()).getSampleBlock(); + return cache[key] = InterpreterSelectWithUnionQuery(query_ptr_, context_, SelectQueryOptions().analyze()).getSampleBlock(); +} + +size_t InterpreterSelectWithUnionQuery::optimizeUnionList() +{ + auto union_distinct_num = 0; + + auto union_default_mode = context->getSettingsRef().union_default_mode; + auto & ast = query_ptr->as(); + size_t num_selects = ast.list_of_selects->children.size(); + + if (!num_selects) + throw Exception("Logical error: no children in ASTSelectWithUnionQuery", ErrorCodes::LOGICAL_ERROR); + + if (num_selects > 1) + { + for (auto & mode : ast.union_modes) + { + if (mode == ASTSelectWithUnionQuery::Mode::Unspecified) + { + if (union_default_mode == UnionMode::ALL) + mode = ASTSelectWithUnionQuery::Mode::ALL; + else if (union_default_mode == UnionMode::DISTINCT) + mode = ASTSelectWithUnionQuery::Mode::DISTINCT; + else + throw Exception( + "Expected ALL or DISTINCT in SelectWithUnion query, because setting (union_default_mode) is empty", + DB::ErrorCodes::EXPECTED_ALL_OR_DISTINCT); + } + } + /// Optimize: if there is UNION DISTINCT, all previous UNION DISTINCT can be rewritten to UNION ALL. + /// Therefore we have at most one UNION DISTINCT in a sequence. + for (auto rit = ast.union_modes.rbegin(); rit != ast.union_modes.rend(); ++rit) + { + if (*rit == ASTSelectWithUnionQuery::Mode::DISTINCT) + { + /// Number of streams need to do a DISTINCT transform after unite + union_distinct_num = ast.union_modes.rend() - rit + 1; + for (auto mode_to_modify = ++rit; mode_to_modify != ast.union_modes.rend(); ++mode_to_modify) + *mode_to_modify = ASTSelectWithUnionQuery::Mode::ALL; + break; + } + } + } + return union_distinct_num; } void InterpreterSelectWithUnionQuery::buildQueryPlan(QueryPlan & query_plan) { - query_plan = nested_interpreter->buildQueryPlan(context, result_header); + auto num_distinct_union = optimizeUnionList(); + size_t num_plans = nested_interpreters.size(); + + /// Skip union for single interpreter. + if (num_plans == 1) + { + nested_interpreters.front()->buildQueryPlan(query_plan); + return; + } + + /// All UNION streams in the chain does not need to do DISTINCT transform + if (num_distinct_union == 0) + { + std::vector> plans(num_plans); + DataStreams data_streams(num_plans); + + for (size_t i = 0; i < num_plans; ++i) + { + plans[i] = std::make_unique(); + nested_interpreters[i]->buildQueryPlan(*plans[i]); + data_streams[i] = plans[i]->getCurrentDataStream(); + } + + auto max_threads = context->getSettingsRef().max_threads; + auto union_step = std::make_unique(std::move(data_streams), result_header, max_threads); + + query_plan.unitePlans(std::move(union_step), std::move(plans)); + } + + /// The first union_distinct_num UNION streams need to do a DISTINCT transform after unite + else + { + QueryPlan distinct_query_plan; + + std::vector> plans(num_distinct_union); + DataStreams data_streams(num_distinct_union); + + for (size_t i = 0; i < num_distinct_union; ++i) + { + plans[i] = std::make_unique(); + nested_interpreters[i]->buildQueryPlan(*plans[i]); + data_streams[i] = plans[i]->getCurrentDataStream(); + } + + auto max_threads = context->getSettingsRef().max_threads; + auto union_step = std::make_unique(std::move(data_streams), result_header, max_threads); + + distinct_query_plan.unitePlans(std::move(union_step), std::move(plans)); + + /// Add distinct transform + const Settings & settings = context->getSettingsRef(); + SizeLimits limits(settings.max_rows_in_distinct, settings.max_bytes_in_distinct, settings.distinct_overflow_mode); + + auto distinct_step + = std::make_unique(distinct_query_plan.getCurrentDataStream(), limits, 0, result_header.getNames(), false); + + distinct_query_plan.addStep(std::move(distinct_step)); + + /// No other UNION streams after DISTINCT stream + if (num_plans == num_distinct_union) + { + query_plan = std::move(distinct_query_plan); + return; + } + + /// Build final UNION step + std::vector> final_plans(num_plans - num_distinct_union + 1); + DataStreams final_data_streams(num_plans - num_distinct_union + 1); + + final_plans[0] = std::make_unique(std::move(distinct_query_plan)); + final_data_streams[0] = final_plans[0]->getCurrentDataStream(); + + for (size_t i = 1; i < num_plans - num_distinct_union + 1; ++i) + { + final_plans[i] = std::make_unique(); + nested_interpreters[num_distinct_union + i - 1]->buildQueryPlan(*final_plans[i]); + final_data_streams[i] = final_plans[i]->getCurrentDataStream(); + } + + auto final_union_step = std::make_unique(std::move(final_data_streams), result_header, max_threads); + query_plan.unitePlans(std::move(final_union_step), std::move(final_plans)); + } } BlockIO InterpreterSelectWithUnionQuery::execute() @@ -390,7 +318,8 @@ BlockIO InterpreterSelectWithUnionQuery::execute() void InterpreterSelectWithUnionQuery::ignoreWithTotals() { - nested_interpreter->ignoreWithTotals(); + for (auto & interpreter : nested_interpreters) + interpreter->ignoreWithTotals(); } } diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.h b/src/Interpreters/InterpreterSelectWithUnionQuery.h index 4af73b3c723..3976b5f8b82 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.h +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.h @@ -1,9 +1,7 @@ #pragma once #include -#include -#include -#include +#include #include namespace DB @@ -13,27 +11,13 @@ class Context; class InterpreterSelectQuery; class QueryPlan; -struct NestedInterpreter -{ - ~NestedInterpreter() { } - enum class Type - { - LEAF, - INTERNAL - }; - Type type = Type::INTERNAL; - std::vector> children; - std::shared_ptr interpreter; - size_t num_distinct_union = 0; - QueryPlan buildQueryPlan(const std::shared_ptr & context, const Block & header); - void ignoreWithTotals(); -}; - /** Interprets one or multiple SELECT queries inside UNION/UNION ALL/UNION DISTINCT chain. */ -class InterpreterSelectWithUnionQuery : public IInterpreter +class InterpreterSelectWithUnionQuery : public IInterpreterUnionOrSelectQuery { public: + using IInterpreterUnionOrSelectQuery::getSampleBlock; + InterpreterSelectWithUnionQuery( const ASTPtr & query_ptr_, const Context & context_, @@ -43,41 +27,30 @@ public: ~InterpreterSelectWithUnionQuery() override; /// Builds QueryPlan for current query. - void buildQueryPlan(QueryPlan & query_plan); + virtual void buildQueryPlan(QueryPlan & query_plan) override; BlockIO execute() override; bool ignoreLimits() const override { return options.ignore_limits; } bool ignoreQuota() const override { return options.ignore_quota; } - Block getSampleBlock(); - static Block getSampleBlock( const ASTPtr & query_ptr_, const Context & context_); - void ignoreWithTotals(); - - ASTPtr getQuery() const { return query_ptr; } + virtual void ignoreWithTotals() override; private: - SelectQueryOptions options; - ASTPtr query_ptr; - std::shared_ptr context; - - std::shared_ptr nested_interpreter; - - Block result_header; - - size_t max_streams = 1; + std::vector> nested_interpreters; static Block getCommonHeaderForUnion(const Blocks & headers); - static void buildNestedTreeInterpreter( - const ASTPtr & ast_ptr, - std::shared_ptr nested_interpreter_, - std::vector> & interpreters, - int & index); + Block getCurrentChildResultHeader(const ASTPtr & ast_ptr_, const Names & required_result_column_names); + + std::unique_ptr + buildCurrentChildInterpreter(const ASTPtr & ast_ptr_, const Names & current_required_result_column_names); + + size_t optimizeUnionList(); }; } diff --git a/src/Interpreters/executeQuery.cpp b/src/Interpreters/executeQuery.cpp index 8b4b35785c1..57c557c5658 100644 --- a/src/Interpreters/executeQuery.cpp +++ b/src/Interpreters/executeQuery.cpp @@ -70,12 +70,10 @@ namespace ErrorCodes static void checkASTSizeLimits(const IAST & ast, const Settings & settings) { - std::cout << "\n\n before check limits"; if (settings.max_ast_depth) ast.checkDepth(settings.max_ast_depth); if (settings.max_ast_elements) ast.checkSize(settings.max_ast_elements); - std::cout << "\n\n after check limits"; } diff --git a/src/Parsers/ASTSelectWithUnionQuery.cpp b/src/Parsers/ASTSelectWithUnionQuery.cpp index 5deae6f653f..8748bf1ef85 100644 --- a/src/Parsers/ASTSelectWithUnionQuery.cpp +++ b/src/Parsers/ASTSelectWithUnionQuery.cpp @@ -15,8 +15,7 @@ ASTPtr ASTSelectWithUnionQuery::clone() const res->list_of_selects = list_of_selects->clone(); res->children.push_back(res->list_of_selects); - res->union_modes.insert(res->union_modes.begin(), union_modes.begin(), union_modes.end()); - res->flatten_nodes_list = flatten_nodes_list->clone(); + res->union_modes = union_modes; cloneOutputOptions(*res); return res; @@ -25,10 +24,8 @@ ASTPtr ASTSelectWithUnionQuery::clone() const void ASTSelectWithUnionQuery::formatQueryImpl(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const { - std::cout << "\n\nin format \n\n"; std::string indent_str = settings.one_line ? "" : std::string(4 * frame.indent, ' '); -#if 0 auto mode_to_str = [&](auto mode) { if (mode == Mode::Unspecified) @@ -38,18 +35,16 @@ void ASTSelectWithUnionQuery::formatQueryImpl(const FormatSettings & settings, F else return "DISTINCT"; }; -#endif - for (ASTs::const_iterator it = flatten_nodes_list->children.begin(); it != flatten_nodes_list->children.end(); ++it) + for (ASTs::const_iterator it = list_of_selects->children.begin(); it != list_of_selects->children.end(); ++it) { if (it != list_of_selects->children.begin()) settings.ostr << settings.nl_or_ws << indent_str << (settings.hilite ? hilite_keyword : "") << "UNION " - // << mode_to_str(union_modes[it - list_of_selects->children.begin() - 1]) << (settings.hilite ? hilite_none : "") + << mode_to_str(union_modes[it - list_of_selects->children.begin() - 1]) << (settings.hilite ? hilite_none : "") << settings.nl_or_ws; (*it)->formatImpl(settings, state, frame); } - std::cout << "\n\nafter format \n\n"; } } diff --git a/src/Parsers/ASTSelectWithUnionQuery.h b/src/Parsers/ASTSelectWithUnionQuery.h index 67ec21e246c..5600dd4b43a 100644 --- a/src/Parsers/ASTSelectWithUnionQuery.h +++ b/src/Parsers/ASTSelectWithUnionQuery.h @@ -28,9 +28,6 @@ public: Modes union_modes; ASTPtr list_of_selects; - - /// we need flatten_nodes to help build nested_interpreter - ASTPtr flatten_nodes_list; }; } diff --git a/src/Parsers/IAST.cpp b/src/Parsers/IAST.cpp index d9f0b3562bc..8ee4154541b 100644 --- a/src/Parsers/IAST.cpp +++ b/src/Parsers/IAST.cpp @@ -76,18 +76,13 @@ void IAST::updateTreeHashImpl(SipHash & hash_state) const size_t IAST::checkDepthImpl(size_t max_depth, size_t level) const { - std::cout << "\n\n in check depth impl\n\n"; - std::cout << "\nchildren.size = " << children.size() << "\n\n"; size_t res = level + 1; for (const auto & child : children) { - std::cout << "\n in for\n\n"; if (level >= max_depth) throw Exception("AST is too deep. Maximum: " + toString(max_depth), ErrorCodes::TOO_DEEP_AST); res = std::max(res, child->checkDepthImpl(max_depth, level + 1)); - std::cout << "\n after for\n\n"; } - std::cout << "\n\n after impl\n\n"; return res; } diff --git a/src/Parsers/IAST.h b/src/Parsers/IAST.h index d1fca853592..c88c80021d6 100644 --- a/src/Parsers/IAST.h +++ b/src/Parsers/IAST.h @@ -11,7 +11,6 @@ #include #include -#include class SipHash; @@ -92,7 +91,6 @@ public: */ size_t checkDepth(size_t max_depth) const { - std::cout << "\n in check depth\n\n"; return checkDepthImpl(max_depth, 0); } diff --git a/src/Parsers/ParserSelectWithUnionQuery.cpp b/src/Parsers/ParserSelectWithUnionQuery.cpp index ee03da753e4..382d7a66669 100644 --- a/src/Parsers/ParserSelectWithUnionQuery.cpp +++ b/src/Parsers/ParserSelectWithUnionQuery.cpp @@ -1,5 +1,3 @@ -#include -#include #include #include #include @@ -10,24 +8,9 @@ namespace DB { -static void getSelectsFromUnionListNode(ASTPtr & ast_select, ASTs & selects) -{ - if (auto * inner_union = ast_select->as()) - { - for (auto & child : inner_union->list_of_selects->children) - { - getSelectsFromUnionListNode(child, selects); - } - - return; - } - - selects.push_back(std::move(ast_select)); -} bool ParserSelectWithUnionQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) { - std::cout << "\n\n in ParserSelectWithUnionQuery\n\n"; ASTPtr list_node; ParserUnionList parser( @@ -42,27 +25,17 @@ bool ParserSelectWithUnionQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & auto select_with_union_query = std::make_shared(); node = select_with_union_query; - select_with_union_query->list_of_selects = std::make_shared(); + select_with_union_query->list_of_selects = list_node; select_with_union_query->children.push_back(select_with_union_query->list_of_selects); - select_with_union_query->list_of_selects->children.insert( - select_with_union_query->list_of_selects->children.begin(), list_node->children.begin(), list_node->children.end()); select_with_union_query->union_modes = parser.getUnionModes(); - /// NOTE: We cann't simply flatten inner union query now, since we may have different union mode in query, + /// NOTE: We cann't flatten inner union query now, since we may have different union mode in query, /// so flatten may change it's semantics. For example: /// flatten `SELECT 1 UNION (SELECT 1 UNION ALL SELETC 1)` -> `SELECT 1 UNION SELECT 1 UNION ALL SELECT 1` - /// We can use a non-flatten AST to help build QueryPlan in InterpreterSelectWithUnionQuery - - select_with_union_query->flatten_nodes_list = std::make_shared(); - - for (auto & child : list_node->children) - { - getSelectsFromUnionListNode(child, select_with_union_query->flatten_nodes_list->children); - } - std::cout << "\n\n after ParserSelectWithUnionQuery\n\n"; - std::cout << "\n\n flatten_nodes.size =" << select_with_union_query->flatten_nodes_list->children.size() << "\n\n"; return true; } + + } From af45cddbc7a5033296f88259d4a2b79179cda30d Mon Sep 17 00:00:00 2001 From: feng lv Date: Sun, 1 Nov 2020 14:43:29 +0000 Subject: [PATCH 062/425] fix --- src/Parsers/ASTSelectWithUnionQuery.cpp | 21 +- ...t_and_setting_union_default_mode.reference | 199 +++++++----------- ...istinct_and_setting_union_default_mode.sql | 22 ++ 3 files changed, 109 insertions(+), 133 deletions(-) diff --git a/src/Parsers/ASTSelectWithUnionQuery.cpp b/src/Parsers/ASTSelectWithUnionQuery.cpp index 8748bf1ef85..57a3c00543c 100644 --- a/src/Parsers/ASTSelectWithUnionQuery.cpp +++ b/src/Parsers/ASTSelectWithUnionQuery.cpp @@ -1,9 +1,8 @@ -#include #include +#include +#include #include -#include - namespace DB { @@ -40,10 +39,18 @@ void ASTSelectWithUnionQuery::formatQueryImpl(const FormatSettings & settings, F { if (it != list_of_selects->children.begin()) settings.ostr << settings.nl_or_ws << indent_str << (settings.hilite ? hilite_keyword : "") << "UNION " - << mode_to_str(union_modes[it - list_of_selects->children.begin() - 1]) << (settings.hilite ? hilite_none : "") - << settings.nl_or_ws; - - (*it)->formatImpl(settings, state, frame); + << mode_to_str(union_modes[it - list_of_selects->children.begin() - 1]) << (settings.hilite ? hilite_none : ""); + if (auto _ = (*it)->as()) + { + auto sub_query = std::make_shared(); + sub_query->children.push_back(*it); + sub_query->formatImpl(settings, state, frame); + } + else + { + settings.ostr << settings.nl_or_ws; + (*it)->formatImpl(settings, state, frame); + } } } diff --git a/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.reference b/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.reference index 6c4547333fe..868cadf1d81 100644 --- a/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.reference +++ b/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.reference @@ -1,140 +1,87 @@ -0 1 -2 -3 -4 -5 -6 -7 -8 -9 -0 1 -2 -3 -4 -5 -6 -7 -8 -9 -0 1 -2 -3 -4 -5 -6 -7 -8 -9 -0 1 -2 -3 -4 -5 -6 -7 -8 -9 -0 1 -2 -3 -4 -5 -6 -7 -8 -9 -0 1 -2 -3 -4 -5 -6 -7 -8 -9 -0 1 -2 -3 -4 -5 -6 -7 -8 -9 -0 1 -2 -3 -4 -5 -6 -7 -8 -9 -0 1 -2 -3 -4 -5 -6 -7 -8 -9 -0 1 -2 -3 -4 -5 -6 -7 -8 -9 -0 1 -2 -3 -4 -5 -6 -7 -8 -9 -0 1 -2 -3 -4 -5 -6 -7 -8 -9 -0 1 -2 -3 -4 -5 -6 -7 -8 -9 -0 1 -2 -3 -4 -5 -6 -7 -8 -9 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 diff --git a/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.sql b/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.sql index 12fe204591c..30ccfdc8c45 100644 --- a/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.sql +++ b/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.sql @@ -1,2 +1,24 @@ SELECT 1; (((((((SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1; +(((((((SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1; +SELECT 1 UNION SELECT 1 UNION SELECT 1 UNION ALL SELECT 1; +SELECT 1 UNION SELECT 1 UNION SELECT 1 UNION DISTINCT SELECT 1; +SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION SELECT 1 UNION ALL SELECT 1; +SELECT 1 UNION (SELECT 1 UNION ALL SELECT 1 UNION SELECT 1 UNION DISTINCT SELECT 1 UNION ALL SELECT 1); +SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1 UNION SELECT 1 UNION DISTINCT SELECT 1 UNION ALL SELECT 1); +SELECT 1 UNION (SELECT 1 UNION (SELECT 1 UNION (SELECT 1 UNION (SELECT 1 UNION (SELECT 1 UNION (SELECT 1 UNION (SELECT 1))))))); +SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1))))))); +SELECT * FROM (SELECT 1 UNION ALL (SELECT 1 UNION SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1))); + +SET union_default_mode='ALL'; + +(((((((SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1; +(((((((SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1; +SELECT 1 UNION SELECT 1 UNION SELECT 1 UNION ALL SELECT 1; +SELECT 1 UNION SELECT 1 UNION SELECT 1 UNION DISTINCT SELECT 1; +SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION SELECT 1 UNION ALL SELECT 1; +SELECT 1 UNION (SELECT 1 UNION ALL SELECT 1 UNION SELECT 1 UNION DISTINCT SELECT 1 UNION ALL SELECT 1); +SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1 UNION SELECT 1 UNION DISTINCT SELECT 1 UNION ALL SELECT 1); +SELECT 1 UNION (SELECT 1 UNION (SELECT 1 UNION (SELECT 1 UNION (SELECT 1 UNION (SELECT 1 UNION (SELECT 1 UNION (SELECT 1))))))); +SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL(SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1))))))); +SELECT * FROM (SELECT 1 UNION ALL (SELECT 1 UNION SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1))); From e82ce52e2f6a458a62fae6171920a57ddbec54a7 Mon Sep 17 00:00:00 2001 From: feng lv Date: Sun, 1 Nov 2020 14:57:41 +0000 Subject: [PATCH 063/425] fix --- src/Interpreters/InterpreterSelectQuery.cpp | 1 + .../InterpreterSelectWithUnionQuery.cpp | 14 +++++++------- src/Interpreters/InterpreterSelectWithUnionQuery.h | 1 - src/Parsers/ExpressionListParsers.cpp | 2 -- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/Interpreters/InterpreterSelectQuery.cpp b/src/Interpreters/InterpreterSelectQuery.cpp index 0b86914b1fa..73252894aa5 100644 --- a/src/Interpreters/InterpreterSelectQuery.cpp +++ b/src/Interpreters/InterpreterSelectQuery.cpp @@ -119,6 +119,7 @@ String InterpreterSelectQuery::generateFilterActions( ParserExpression expr_parser; expr_list->children.push_back(parseQuery(expr_parser, column_str, 0, context->getSettingsRef().max_parser_depth)); } + select_ast->setExpression(ASTSelectQuery::Expression::TABLES, std::make_shared()); auto tables = select_ast->tables(); auto tables_elem = std::make_shared(); diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp index 43ff1c48167..a3798e42f02 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp @@ -1,14 +1,15 @@ -#include -#include -#include -#include #include -#include +#include +#include +#include +#include +#include #include +#include #include #include #include -#include +#include namespace DB { @@ -30,7 +31,6 @@ InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery( if (!num_children) throw Exception("Logical error: no children in ASTSelectWithUnionQuery", ErrorCodes::LOGICAL_ERROR); - /// We first build nested interpreters for each select query, then using this nested interpreters to build Tree Structured nested interpreter. /// Note that we pass 'required_result_column_names' to first SELECT. /// And for the rest, we pass names at the corresponding positions of 'required_result_column_names' in the result of first SELECT, /// because names could be different. diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.h b/src/Interpreters/InterpreterSelectWithUnionQuery.h index 3976b5f8b82..06d31c92a67 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.h +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.h @@ -2,7 +2,6 @@ #include #include -#include namespace DB { diff --git a/src/Parsers/ExpressionListParsers.cpp b/src/Parsers/ExpressionListParsers.cpp index 220d304751e..1cc72f5fb8b 100644 --- a/src/Parsers/ExpressionListParsers.cpp +++ b/src/Parsers/ExpressionListParsers.cpp @@ -1,5 +1,3 @@ -#include -#include #include #include From 5f25f9c814a2314489e1f66c8fb52da5fff6ade7 Mon Sep 17 00:00:00 2001 From: feng lv Date: Sun, 1 Nov 2020 15:15:51 +0000 Subject: [PATCH 064/425] fix fix --- src/Interpreters/InterpreterSelectWithUnionQuery.cpp | 2 +- src/Parsers/ParserSelectWithUnionQuery.cpp | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp index a3798e42f02..1fecd221aba 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp @@ -197,7 +197,7 @@ size_t InterpreterSelectWithUnionQuery::optimizeUnionList() DB::ErrorCodes::EXPECTED_ALL_OR_DISTINCT); } } - /// Optimize: if there is UNION DISTINCT, all previous UNION DISTINCT can be rewritten to UNION ALL. + /// Optimize general cases: if there is UNION DISTINCT, all previous UNION DISTINCT can be rewritten to UNION ALL. /// Therefore we have at most one UNION DISTINCT in a sequence. for (auto rit = ast.union_modes.rbegin(); rit != ast.union_modes.rend(); ++rit) { diff --git a/src/Parsers/ParserSelectWithUnionQuery.cpp b/src/Parsers/ParserSelectWithUnionQuery.cpp index 382d7a66669..db586867db0 100644 --- a/src/Parsers/ParserSelectWithUnionQuery.cpp +++ b/src/Parsers/ParserSelectWithUnionQuery.cpp @@ -3,8 +3,6 @@ #include #include #include -#include - namespace DB { @@ -32,10 +30,7 @@ bool ParserSelectWithUnionQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & /// NOTE: We cann't flatten inner union query now, since we may have different union mode in query, /// so flatten may change it's semantics. For example: /// flatten `SELECT 1 UNION (SELECT 1 UNION ALL SELETC 1)` -> `SELECT 1 UNION SELECT 1 UNION ALL SELECT 1` - return true; } - - } From f04d74172f794b76c393036ec2014a1d639d8b11 Mon Sep 17 00:00:00 2001 From: feng lv Date: Sun, 1 Nov 2020 15:41:31 +0000 Subject: [PATCH 065/425] fix --- ...9_union_distinct_and_setting_union_default_mode.reference | 5 +++++ .../01529_union_distinct_and_setting_union_default_mode.sql | 2 ++ 2 files changed, 7 insertions(+) diff --git a/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.reference b/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.reference index 868cadf1d81..f9f3ee818e9 100644 --- a/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.reference +++ b/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.reference @@ -10,6 +10,8 @@ 1 1 1 +all +all 1 1 1 @@ -51,6 +53,9 @@ 1 1 1 +all +all +all 1 1 1 diff --git a/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.sql b/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.sql index 30ccfdc8c45..6e45c150508 100644 --- a/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.sql +++ b/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.sql @@ -2,6 +2,7 @@ SELECT 1; (((((((SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1; (((((((SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1; SELECT 1 UNION SELECT 1 UNION SELECT 1 UNION ALL SELECT 1; +SELECT 'all' UNION SELECT 'all' UNION ALL SELECT 'all'; SELECT 1 UNION SELECT 1 UNION SELECT 1 UNION DISTINCT SELECT 1; SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION SELECT 1 UNION ALL SELECT 1; SELECT 1 UNION (SELECT 1 UNION ALL SELECT 1 UNION SELECT 1 UNION DISTINCT SELECT 1 UNION ALL SELECT 1); @@ -15,6 +16,7 @@ SET union_default_mode='ALL'; (((((((SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1; (((((((SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1; SELECT 1 UNION SELECT 1 UNION SELECT 1 UNION ALL SELECT 1; +SELECT 'all' UNION SELECT 'all' UNION ALL SELECT 'all'; SELECT 1 UNION SELECT 1 UNION SELECT 1 UNION DISTINCT SELECT 1; SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION SELECT 1 UNION ALL SELECT 1; SELECT 1 UNION (SELECT 1 UNION ALL SELECT 1 UNION SELECT 1 UNION DISTINCT SELECT 1 UNION ALL SELECT 1); From 3dce3c6a21ed0d16c19e401b66b9b9a27a2e5949 Mon Sep 17 00:00:00 2001 From: feng lv Date: Mon, 2 Nov 2020 05:28:37 +0000 Subject: [PATCH 066/425] fix --- src/Interpreters/InterpreterInsertQuery.cpp | 79 +++++++++++---------- src/Parsers/ASTSelectWithUnionQuery.cpp | 3 +- src/Storages/SelectQueryDescription.cpp | 23 ++++-- 3 files changed, 63 insertions(+), 42 deletions(-) diff --git a/src/Interpreters/InterpreterInsertQuery.cpp b/src/Interpreters/InterpreterInsertQuery.cpp index aa8bcd74ea6..5ffd667bf40 100644 --- a/src/Interpreters/InterpreterInsertQuery.cpp +++ b/src/Interpreters/InterpreterInsertQuery.cpp @@ -140,34 +140,39 @@ Block InterpreterInsertQuery::getSampleBlock( /** A query that just reads all data without any complex computations or filetering. * If we just pipe the result to INSERT, we don't have to use too many threads for read. */ -static bool isTrivialSelect(const ASTSelectQuery & select_query) +static bool isTrivialSelect(const ASTPtr & select) { - const auto & tables = select_query.tables(); + if (auto select_query = select->as()) + { + const auto & tables = select_query->tables(); - if (!tables) - return false; + if (!tables) + return false; - const auto & tables_in_select_query = tables->as(); + const auto & tables_in_select_query = tables->as(); - if (tables_in_select_query.children.size() != 1) - return false; + if (tables_in_select_query.children.size() != 1) + return false; - const auto & child = tables_in_select_query.children.front(); - const auto & table_element = child->as(); - const auto & table_expr = table_element.table_expression->as(); + const auto & child = tables_in_select_query.children.front(); + const auto & table_element = child->as(); + const auto & table_expr = table_element.table_expression->as(); - if (table_expr.subquery) - return false; + if (table_expr.subquery) + return false; - /// Note: how to write it in more generic way? - return (!select_query.distinct - && !select_query.limit_with_ties - && !select_query.prewhere() - && !select_query.where() - && !select_query.groupBy() - && !select_query.having() - && !select_query.orderBy() - && !select_query.limitBy()); + /// Note: how to write it in more generic way? + return (!select_query->distinct + && !select_query->limit_with_ties + && !select_query->prewhere() + && !select_query->where() + && !select_query->groupBy() + && !select_query->having() + && !select_query->orderBy() + && !select_query->limitBy()); + } + /// This query is ASTSelectWithUnionQuery subquery + return false; }; @@ -196,23 +201,25 @@ BlockIO InterpreterInsertQuery::execute() auto new_query = std::dynamic_pointer_cast(query.clone()); if (select.list_of_selects->children.size() == 1) { - auto & select_query = select.list_of_selects->children.at(0)->as(); - JoinedTables joined_tables(Context(context), select_query); - - if (joined_tables.tablesCount() == 1) + if (auto select_query = select.list_of_selects->children.at(0)->as()) { - storage_src = std::dynamic_pointer_cast(joined_tables.getLeftTableStorage()); - if (storage_src) + JoinedTables joined_tables(Context(context), *select_query); + + if (joined_tables.tablesCount() == 1) { - const auto select_with_union_query = std::make_shared(); - select_with_union_query->list_of_selects = std::make_shared(); + storage_src = std::dynamic_pointer_cast(joined_tables.getLeftTableStorage()); + if (storage_src) + { + const auto select_with_union_query = std::make_shared(); + select_with_union_query->list_of_selects = std::make_shared(); - auto new_select_query = std::dynamic_pointer_cast(select_query.clone()); - select_with_union_query->list_of_selects->children.push_back(new_select_query); + auto new_select_query = std::dynamic_pointer_cast(select_query->clone()); + select_with_union_query->list_of_selects->children.push_back(new_select_query); - new_select_query->replaceDatabaseAndTable(storage_src->getRemoteDatabaseName(), storage_src->getRemoteTableName()); + new_select_query->replaceDatabaseAndTable(storage_src->getRemoteDatabaseName(), storage_src->getRemoteTableName()); - new_query->select = select_with_union_query; + new_query->select = select_with_union_query; + } } } } @@ -277,10 +284,8 @@ BlockIO InterpreterInsertQuery::execute() { const auto & selects = query.select->as().list_of_selects->children; - is_trivial_insert_select = std::all_of(selects.begin(), selects.end(), [](const ASTPtr & select) - { - return isTrivialSelect(select->as()); - }); + is_trivial_insert_select + = std::all_of(selects.begin(), selects.end(), [](const ASTPtr & select) { return isTrivialSelect(select); }); } if (is_trivial_insert_select) diff --git a/src/Parsers/ASTSelectWithUnionQuery.cpp b/src/Parsers/ASTSelectWithUnionQuery.cpp index 57a3c00543c..29aa1b81acf 100644 --- a/src/Parsers/ASTSelectWithUnionQuery.cpp +++ b/src/Parsers/ASTSelectWithUnionQuery.cpp @@ -48,7 +48,8 @@ void ASTSelectWithUnionQuery::formatQueryImpl(const FormatSettings & settings, F } else { - settings.ostr << settings.nl_or_ws; + if (it != list_of_selects->children.begin()) + settings.ostr << settings.nl_or_ws; (*it)->formatImpl(settings, state, frame); } } diff --git a/src/Storages/SelectQueryDescription.cpp b/src/Storages/SelectQueryDescription.cpp index 0935a5be5ca..db886793f7c 100644 --- a/src/Storages/SelectQueryDescription.cpp +++ b/src/Storages/SelectQueryDescription.cpp @@ -98,20 +98,35 @@ void checkAllowedQueries(const ASTSelectQuery & query) } +/// check if only one single select query in SelectWithUnionQuery +static bool isSingleSelect(const ASTPtr & select, ASTPtr & res) +{ + auto new_select = select->as(); + if (new_select.list_of_selects->children.size() != 1) + return false; + auto & new_inner_query = new_select.list_of_selects->children.at(0); + if (auto _ = new_inner_query->as()) + { + res = new_inner_query; + return true; + } + else + return isSingleSelect(new_inner_query, res); +} + SelectQueryDescription SelectQueryDescription::getSelectQueryFromASTForMatView(const ASTPtr & select, const Context & context) { - auto & new_select = select->as(); + ASTPtr new_inner_query; - if (new_select.list_of_selects->children.size() != 1) + if (!isSingleSelect(select, new_inner_query)) throw Exception("UNION is not supported for MATERIALIZED VIEW", ErrorCodes::QUERY_IS_NOT_SUPPORTED_IN_MATERIALIZED_VIEW); - auto & new_inner_query = new_select.list_of_selects->children.at(0); auto & select_query = new_inner_query->as(); checkAllowedQueries(select_query); SelectQueryDescription result; result.select_table_id = extractDependentTableFromSelectQuery(select_query, context); - result.select_query = new_select.clone(); + result.select_query = select->as().clone(); result.inner_query = new_inner_query->clone(); return result; From 7159affda8e8b91e3e3da8ebcd7681c0ab305c6e Mon Sep 17 00:00:00 2001 From: feng lv Date: Mon, 2 Nov 2020 06:53:09 +0000 Subject: [PATCH 067/425] fix --- src/Parsers/ASTSelectWithUnionQuery.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/Parsers/ASTSelectWithUnionQuery.cpp b/src/Parsers/ASTSelectWithUnionQuery.cpp index 29aa1b81acf..54ae310a23a 100644 --- a/src/Parsers/ASTSelectWithUnionQuery.cpp +++ b/src/Parsers/ASTSelectWithUnionQuery.cpp @@ -40,11 +40,22 @@ void ASTSelectWithUnionQuery::formatQueryImpl(const FormatSettings & settings, F if (it != list_of_selects->children.begin()) settings.ostr << settings.nl_or_ws << indent_str << (settings.hilite ? hilite_keyword : "") << "UNION " << mode_to_str(union_modes[it - list_of_selects->children.begin() - 1]) << (settings.hilite ? hilite_none : ""); - if (auto _ = (*it)->as()) + if (auto node = (*it)->as()) { - auto sub_query = std::make_shared(); - sub_query->children.push_back(*it); - sub_query->formatImpl(settings, state, frame); + // just one child in subquery, () is not need + if (node->list_of_selects->children.size() == 1) + { + if (it != list_of_selects->children.begin()) + settings.ostr << settings.nl_or_ws; + node->list_of_selects->children.at(0)->formatImpl(settings, state, frame); + } + // more than one child in subquery + else + { + auto sub_query = std::make_shared(); + sub_query->children.push_back(*it); + sub_query->formatImpl(settings, state, frame); + } } else { From 1a34abadbc25afe8e277273c64d743263ed45616 Mon Sep 17 00:00:00 2001 From: feng lv Date: Mon, 2 Nov 2020 08:02:35 +0000 Subject: [PATCH 068/425] fix fix fix --- src/Interpreters/InterpreterInsertQuery.cpp | 4 ++-- src/Interpreters/InterpreterSelectWithUnionQuery.cpp | 4 ++-- src/Parsers/ASTSelectWithUnionQuery.cpp | 2 +- src/Storages/SelectQueryDescription.cpp | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Interpreters/InterpreterInsertQuery.cpp b/src/Interpreters/InterpreterInsertQuery.cpp index 5ffd667bf40..e2830322024 100644 --- a/src/Interpreters/InterpreterInsertQuery.cpp +++ b/src/Interpreters/InterpreterInsertQuery.cpp @@ -142,7 +142,7 @@ Block InterpreterInsertQuery::getSampleBlock( */ static bool isTrivialSelect(const ASTPtr & select) { - if (auto select_query = select->as()) + if (auto * select_query = select->as()) { const auto & tables = select_query->tables(); @@ -201,7 +201,7 @@ BlockIO InterpreterInsertQuery::execute() auto new_query = std::dynamic_pointer_cast(query.clone()); if (select.list_of_selects->children.size() == 1) { - if (auto select_query = select.list_of_selects->children.at(0)->as()) + if (auto * select_query = select.list_of_selects->children.at(0)->as()) { JoinedTables joined_tables(Context(context), *select_query); diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp index 1fecd221aba..7cc0e890fc2 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp @@ -139,7 +139,7 @@ Block InterpreterSelectWithUnionQuery::getCommonHeaderForUnion(const Blocks & he Block InterpreterSelectWithUnionQuery::getCurrentChildResultHeader(const ASTPtr & ast_ptr_, const Names & required_result_column_names) { - if (const auto _ = ast_ptr_->as()) + if (ast_ptr_->as()) return InterpreterSelectWithUnionQuery(ast_ptr_, *context, options.copy().analyze().noModify(), required_result_column_names) .getSampleBlock(); else @@ -149,7 +149,7 @@ Block InterpreterSelectWithUnionQuery::getCurrentChildResultHeader(const ASTPtr std::unique_ptr InterpreterSelectWithUnionQuery::buildCurrentChildInterpreter(const ASTPtr & ast_ptr_, const Names & current_required_result_column_names) { - if (const auto _ = ast_ptr_->as()) + if (ast_ptr_->as()) return std::make_unique(ast_ptr_, *context, options, current_required_result_column_names); else return std::make_unique(ast_ptr_, *context, options, current_required_result_column_names); diff --git a/src/Parsers/ASTSelectWithUnionQuery.cpp b/src/Parsers/ASTSelectWithUnionQuery.cpp index 54ae310a23a..639c8ec1b6e 100644 --- a/src/Parsers/ASTSelectWithUnionQuery.cpp +++ b/src/Parsers/ASTSelectWithUnionQuery.cpp @@ -40,7 +40,7 @@ void ASTSelectWithUnionQuery::formatQueryImpl(const FormatSettings & settings, F if (it != list_of_selects->children.begin()) settings.ostr << settings.nl_or_ws << indent_str << (settings.hilite ? hilite_keyword : "") << "UNION " << mode_to_str(union_modes[it - list_of_selects->children.begin() - 1]) << (settings.hilite ? hilite_none : ""); - if (auto node = (*it)->as()) + if (auto * node = (*it)->as()) { // just one child in subquery, () is not need if (node->list_of_selects->children.size() == 1) diff --git a/src/Storages/SelectQueryDescription.cpp b/src/Storages/SelectQueryDescription.cpp index db886793f7c..c11e6bd74f8 100644 --- a/src/Storages/SelectQueryDescription.cpp +++ b/src/Storages/SelectQueryDescription.cpp @@ -105,7 +105,7 @@ static bool isSingleSelect(const ASTPtr & select, ASTPtr & res) if (new_select.list_of_selects->children.size() != 1) return false; auto & new_inner_query = new_select.list_of_selects->children.at(0); - if (auto _ = new_inner_query->as()) + if (new_inner_query->as()) { res = new_inner_query; return true; From 5c77ae914f50dc00d960141a27f357d5388bd5c0 Mon Sep 17 00:00:00 2001 From: myrrc Date: Mon, 2 Nov 2020 14:47:59 +0300 Subject: [PATCH 069/425] fixed contexpr modifier build, updated tests --- .../AggregateFunctionAvg.cpp | 2 +- src/AggregateFunctions/AggregateFunctionAvg.h | 12 +- .../AggregateFunctionAvgWeighted.cpp | 2 +- ...01518_nullable_aggregate_states2.reference | 1220 ++++++++--------- 4 files changed, 614 insertions(+), 622 deletions(-) diff --git a/src/AggregateFunctions/AggregateFunctionAvg.cpp b/src/AggregateFunctions/AggregateFunctionAvg.cpp index 4d1b01b25fc..bec0a778c2d 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.cpp +++ b/src/AggregateFunctions/AggregateFunctionAvg.cpp @@ -14,7 +14,7 @@ namespace ErrorCodes namespace { -constexpr bool allowType(const DataTypePtr& type) noexcept +bool allowType(const DataTypePtr& type) noexcept { const WhichDataType t(type); return t.isInt() || t.isUInt() || t.isFloat() || t.isDecimal(); diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index 2369ae835c3..7c2ad3d0984 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -17,16 +17,8 @@ struct RationalFraction Float64 numerator{0}; Denominator denominator{0}; - Float64 NO_SANITIZE_UNDEFINED result() const - { - if constexpr (std::numeric_limits::is_iec559) - return static_cast(numerator) / denominator; /// allow division by zero - - if (denominator == static_cast(0)) - return static_cast(0); - - return static_cast(numerator / denominator); - } + /// Allow division by zero as sometimes we need to return NaN. + Float64 NO_SANITIZE_UNDEFINED result() const { return numerator / denominator; } }; /** diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp index 6b677414d87..9045bff002a 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp @@ -15,7 +15,7 @@ namespace ErrorCodes namespace { -constexpr bool allowTypes(const DataTypePtr& left, const DataTypePtr& right) noexcept +bool allowTypes(const DataTypePtr& left, const DataTypePtr& right) noexcept { const WhichDataType l_dt(left), r_dt(right); diff --git a/tests/queries/0_stateless/01518_nullable_aggregate_states2.reference b/tests/queries/0_stateless/01518_nullable_aggregate_states2.reference index e068a35dbd1..e393fd798fb 100644 --- a/tests/queries/0_stateless/01518_nullable_aggregate_states2.reference +++ b/tests/queries/0_stateless/01518_nullable_aggregate_states2.reference @@ -288,723 +288,723 @@ 35 102 10025 99935 0.1051 300.1051 150.1051 15160.61561 0.1051 300.1051 150.1051 15160.61542 0.10510 300.10510 150.10510000000014 15160.61510 2020-01-01 2020-01-02 2020-01-01 00:00:35 2020-01-02 03:45:35 2020-01-01 00:00:35.000 2020-01-02 03:45:35.000 35 99935 49985 5048485 35 99935 49985 5048485 -32534 32401 4564.009900990099 460965 -128 127 -0.900990099009901 -91 350 101 10340 99251 1.05105 298.05105 149.55105 14955.1051 1.05105 298.05106 149.55105 14955.10532 1.05105 298.05105 149.55105 14955.10500 2020-01-01 2020-01-02 2020-01-01 00:05:50 2020-01-02 03:34:11 2020-01-01 00:05:50.000 2020-01-02 03:34:11.000 350 99251 49800.5 4980050 350 99251 49800.5 4980050 -32219 32716 5236.02 523602 -126 125 0.82 82 351 101 10341 99252 1.05405 298.05405 149.55405 14955.4054 1.05405 298.05405 149.55404 14955.40499 1.05405 298.05405 149.55405000000016 14955.40500 2020-01-01 2020-01-02 2020-01-01 00:05:51 2020-01-02 03:34:12 2020-01-01 00:05:51.000 2020-01-02 03:34:12.000 351 99252 49801.5 4980150 351 99252 49801.5 4980150 -32218 32717 5237.02 523702 -125 126 1.82 182 -352 101 10342 99253 1.05705 298.05705 149.55705 14955.7057 1.05705 298.05707 149.55705 14955.70574 1.05705 298.05705 149.55704999999992 14955.70500 2020-01-01 2020-01-02 2020-01-01 00:05:52 2020-01-02 03:34:13 2020-01-01 00:05:52.000 2020-01-02 03:34:13.000 352 99253 49802.5 4980250 352 99253 49802.5 4980250 -32217 32718 5238.02 523802 -124 127 2.82 282 -353 101 10343 99254 1.06006 298.06006 149.56006 14956.006 1.06006 298.06006 149.56005 14956.00587 1.06006 298.06006 149.56005999999982 14956.00600 2020-01-01 2020-01-02 2020-01-01 00:05:53 2020-01-02 03:34:14 2020-01-01 00:05:53.000 2020-01-02 03:34:14.000 353 99254 49803.5 4980350 353 99254 49803.5 4980350 -32216 32719 5239.02 523902 -128 127 1.26 126 -354 101 10344 99255 1.06306 298.06306 149.56306 14956.3063 1.06306 298.06305 149.56306 14956.3062 1.06306 298.06306 149.56306000000026 14956.30600 2020-01-01 2020-01-02 2020-01-01 00:05:54 2020-01-02 03:34:15 2020-01-01 00:05:54.000 2020-01-02 03:34:15.000 354 99255 49804.5 4980450 354 99255 49804.5 4980450 -32215 32720 5240.02 524002 -128 127 -0.3 -30 -355 101 10345 99256 1.06606 298.06606 149.56606 14956.6066 1.06606 298.06607 149.56606 14956.6068 1.06606 298.06606 149.56605999999982 14956.60600 2020-01-01 2020-01-02 2020-01-01 00:05:55 2020-01-02 03:34:16 2020-01-01 00:05:55.000 2020-01-02 03:34:16.000 355 99256 49805.5 4980550 355 99256 49805.5 4980550 -32214 32721 5241.02 524102 -128 123 -1.86 -186 -356 101 10346 99257 1.06906 298.06906 149.56906 14956.9069 1.06906 298.06906 149.56907 14956.90709 1.06906 298.06906 149.56905999999984 14956.90600 2020-01-01 2020-01-02 2020-01-01 00:05:56 2020-01-02 03:34:17 2020-01-01 00:05:56.000 2020-01-02 03:34:17.000 356 99257 49806.5 4980650 356 99257 49806.5 4980650 -32213 32722 5242.02 524202 -127 124 -0.86 -86 -357 101 10347 99258 1.07207 298.07207 149.57207 14957.2072 1.07207 298.07208 149.57207 14957.20721 1.07207 298.07207 149.57207000000014 14957.20700 2020-01-01 2020-01-02 2020-01-01 00:05:57 2020-01-02 03:34:18 2020-01-01 00:05:57.000 2020-01-02 03:34:18.000 357 99258 49807.5 4980750 357 99258 49807.5 4980750 -32212 32723 5243.02 524302 -126 125 0.14 14 -358 101 10348 99259 1.07507 298.07507 149.57507 14957.5075 1.07507 298.07507 149.57507 14957.50734 1.07507 298.07507 149.57507000000015 14957.50700 2020-01-01 2020-01-02 2020-01-01 00:05:58 2020-01-02 03:34:19 2020-01-01 00:05:58.000 2020-01-02 03:34:19.000 358 99259 49808.5 4980850 358 99259 49808.5 4980850 -32211 32724 5244.02 524402 -125 126 1.14 114 -359 101 10349 99260 1.07807 298.07807 149.57807 14957.8078 1.07807 298.07806 149.57807 14957.80767 1.07807 298.07807 149.5780699999997 14957.80700 2020-01-01 2020-01-02 2020-01-01 00:05:59 2020-01-02 03:34:20 2020-01-01 00:05:59.000 2020-01-02 03:34:20.000 359 99260 49809.5 4980950 359 99260 49809.5 4980950 -32210 32725 5245.02 524502 -124 127 2.14 214 +352 101 10342 99253 1.05705 298.05705 149.55705 14955.7057 1.05705 298.05707 149.55705 14955.70574 1.05705 298.05705 149.5570500000001 14955.70500 2020-01-01 2020-01-02 2020-01-01 00:05:52 2020-01-02 03:34:13 2020-01-01 00:05:52.000 2020-01-02 03:34:13.000 352 99253 49802.5 4980250 352 99253 49802.5 4980250 -32217 32718 5238.02 523802 -124 127 2.82 282 +353 101 10343 99254 1.06006 298.06006 149.56006 14956.006 1.06006 298.06006 149.56005 14956.00587 1.06006 298.06006 149.5600599999999 14956.00600 2020-01-01 2020-01-02 2020-01-01 00:05:53 2020-01-02 03:34:14 2020-01-01 00:05:53.000 2020-01-02 03:34:14.000 353 99254 49803.5 4980350 353 99254 49803.5 4980350 -32216 32719 5239.02 523902 -128 127 1.26 126 +354 101 10344 99255 1.06306 298.06306 149.56306 14956.3063 1.06306 298.06305 149.56306 14956.3062 1.06306 298.06306 149.56306000000012 14956.30600 2020-01-01 2020-01-02 2020-01-01 00:05:54 2020-01-02 03:34:15 2020-01-01 00:05:54.000 2020-01-02 03:34:15.000 354 99255 49804.5 4980450 354 99255 49804.5 4980450 -32215 32720 5240.02 524002 -128 127 -0.3 -30 +355 101 10345 99256 1.06606 298.06606 149.56606 14956.6066 1.06606 298.06607 149.56606 14956.6068 1.06606 298.06606 149.56605999999994 14956.60600 2020-01-01 2020-01-02 2020-01-01 00:05:55 2020-01-02 03:34:16 2020-01-01 00:05:55.000 2020-01-02 03:34:16.000 355 99256 49805.5 4980550 355 99256 49805.5 4980550 -32214 32721 5241.02 524102 -128 123 -1.86 -186 +356 101 10346 99257 1.06906 298.06906 149.56906 14956.9069 1.06906 298.06906 149.56907 14956.90709 1.06906 298.06906 149.56905999999992 14956.90600 2020-01-01 2020-01-02 2020-01-01 00:05:56 2020-01-02 03:34:17 2020-01-01 00:05:56.000 2020-01-02 03:34:17.000 356 99257 49806.5 4980650 356 99257 49806.5 4980650 -32213 32722 5242.02 524202 -127 124 -0.86 -86 +357 101 10347 99258 1.07207 298.07207 149.57207 14957.2072 1.07207 298.07208 149.57207 14957.20721 1.07207 298.07207 149.57207000000008 14957.20700 2020-01-01 2020-01-02 2020-01-01 00:05:57 2020-01-02 03:34:18 2020-01-01 00:05:57.000 2020-01-02 03:34:18.000 357 99258 49807.5 4980750 357 99258 49807.5 4980750 -32212 32723 5243.02 524302 -126 125 0.14 14 +358 101 10348 99259 1.07507 298.07507 149.57507 14957.5075 1.07507 298.07507 149.57507 14957.50734 1.07507 298.07507 149.57507000000004 14957.50700 2020-01-01 2020-01-02 2020-01-01 00:05:58 2020-01-02 03:34:19 2020-01-01 00:05:58.000 2020-01-02 03:34:19.000 358 99259 49808.5 4980850 358 99259 49808.5 4980850 -32211 32724 5244.02 524402 -125 126 1.14 114 +359 101 10349 99260 1.07807 298.07807 149.57807 14957.8078 1.07807 298.07806 149.57807 14957.80767 1.07807 298.07807 149.57806999999985 14957.80700 2020-01-01 2020-01-02 2020-01-01 00:05:59 2020-01-02 03:34:20 2020-01-01 00:05:59.000 2020-01-02 03:34:20.000 359 99260 49809.5 4980950 359 99260 49809.5 4980950 -32210 32725 5245.02 524502 -124 127 2.14 214 36 102 10026 99936 0.1081 300.1081 150.1081 15160.91891 0.1081 300.1081 150.1081 15160.91873 0.10810 300.10810 150.10809999999998 15160.91810 2020-01-01 2020-01-02 2020-01-01 00:00:36 2020-01-02 03:45:36 2020-01-01 00:00:36.000 2020-01-02 03:45:36.000 36 99936 49986 5048586 36 99936 49986 5048586 -32533 32402 4565.009900990099 461066 -128 123 -2.4356435643564356 -246 360 101 10350 99261 1.08108 298.08108 149.58108 14958.1081 1.08108 298.0811 149.58108 14958.10827 1.08108 298.08108 149.58107999999996 14958.10800 2020-01-01 2020-01-02 2020-01-01 00:06:00 2020-01-02 03:34:21 2020-01-01 00:06:00.000 2020-01-02 03:34:21.000 360 99261 49810.5 4981050 360 99261 49810.5 4981050 -32209 32726 5246.02 524602 -128 127 0.58 58 -361 101 10351 99262 1.08408 298.08408 149.58408 14958.4084 1.08408 298.08408 149.58408 14958.40856 1.08408 298.08408 149.58408000000006 14958.40800 2020-01-01 2020-01-02 2020-01-01 00:06:01 2020-01-02 03:34:22 2020-01-01 00:06:01.000 2020-01-02 03:34:22.000 361 99262 49811.5 4981150 361 99262 49811.5 4981150 -32208 32727 5247.02 524702 -128 123 -0.98 -98 -362 101 10352 99263 1.08708 298.08708 149.58708 14958.7087 1.08708 298.0871 149.58708 14958.70868 1.08708 298.08708 149.58707999999987 14958.70800 2020-01-01 2020-01-02 2020-01-01 00:06:02 2020-01-02 03:34:23 2020-01-01 00:06:02.000 2020-01-02 03:34:23.000 362 99263 49812.5 4981250 362 99263 49812.5 4981250 -32207 32728 5248.02 524802 -127 124 0.02 2 -363 101 10353 99264 1.09009 298.09009 149.59009 14959.009 1.09009 298.0901 149.59008 14959.00884 1.09009 298.09009 149.5900899999998 14959.00900 2020-01-01 2020-01-02 2020-01-01 00:06:03 2020-01-02 03:34:24 2020-01-01 00:06:03.000 2020-01-02 03:34:24.000 363 99264 49813.5 4981350 363 99264 49813.5 4981350 -32206 32729 5249.02 524902 -126 125 1.02 102 -364 101 10354 99265 1.09309 298.09309 149.59309 14959.3093 1.09309 298.09308 149.59309 14959.30915 1.09309 298.09309 149.5930900000002 14959.30900 2020-01-01 2020-01-02 2020-01-01 00:06:04 2020-01-02 03:34:25 2020-01-01 00:06:04.000 2020-01-02 03:34:25.000 364 99265 49814.5 4981450 364 99265 49814.5 4981450 -32205 32730 5250.02 525002 -125 126 2.02 202 -365 101 10355 99266 1.09609 298.09609 149.59609 14959.6096 1.09609 298.0961 149.59609 14959.6099 1.09609 298.09609 149.59608999999972 14959.60900 2020-01-01 2020-01-02 2020-01-01 00:06:05 2020-01-02 03:34:26 2020-01-01 00:06:05.000 2020-01-02 03:34:26.000 365 99266 49815.5 4981550 365 99266 49815.5 4981550 -32204 32731 5251.02 525102 -124 127 3.02 302 -366 101 10356 99267 1.09909 298.09909 149.59909 14959.9099 1.09909 298.0991 149.5991 14959.91003 1.09909 298.09909 149.59908999999982 14959.90900 2020-01-01 2020-01-02 2020-01-01 00:06:06 2020-01-02 03:34:27 2020-01-01 00:06:06.000 2020-01-02 03:34:27.000 366 99267 49816.5 4981650 366 99267 49816.5 4981650 -32203 32732 5252.02 525202 -128 127 1.46 146 +361 101 10351 99262 1.08408 298.08408 149.58408 14958.4084 1.08408 298.08408 149.58408 14958.40856 1.08408 298.08408 149.58408 14958.40800 2020-01-01 2020-01-02 2020-01-01 00:06:01 2020-01-02 03:34:22 2020-01-01 00:06:01.000 2020-01-02 03:34:22.000 361 99262 49811.5 4981150 361 99262 49811.5 4981150 -32208 32727 5247.02 524702 -128 123 -0.98 -98 +362 101 10352 99263 1.08708 298.08708 149.58708 14958.7087 1.08708 298.0871 149.58708 14958.70868 1.08708 298.08708 149.58707999999996 14958.70800 2020-01-01 2020-01-02 2020-01-01 00:06:02 2020-01-02 03:34:23 2020-01-01 00:06:02.000 2020-01-02 03:34:23.000 362 99263 49812.5 4981250 362 99263 49812.5 4981250 -32207 32728 5248.02 524802 -127 124 0.02 2 +363 101 10353 99264 1.09009 298.09009 149.59009 14959.009 1.09009 298.0901 149.59008 14959.00884 1.09009 298.09009 149.59008999999992 14959.00900 2020-01-01 2020-01-02 2020-01-01 00:06:03 2020-01-02 03:34:24 2020-01-01 00:06:03.000 2020-01-02 03:34:24.000 363 99264 49813.5 4981350 363 99264 49813.5 4981350 -32206 32729 5249.02 524902 -126 125 1.02 102 +364 101 10354 99265 1.09309 298.09309 149.59309 14959.3093 1.09309 298.09308 149.59309 14959.30915 1.09309 298.09309 149.59309000000007 14959.30900 2020-01-01 2020-01-02 2020-01-01 00:06:04 2020-01-02 03:34:25 2020-01-01 00:06:04.000 2020-01-02 03:34:25.000 364 99265 49814.5 4981450 364 99265 49814.5 4981450 -32205 32730 5250.02 525002 -125 126 2.02 202 +365 101 10355 99266 1.09609 298.09609 149.59609 14959.6096 1.09609 298.0961 149.59609 14959.6099 1.09609 298.09609 149.5960899999999 14959.60900 2020-01-01 2020-01-02 2020-01-01 00:06:05 2020-01-02 03:34:26 2020-01-01 00:06:05.000 2020-01-02 03:34:26.000 365 99266 49815.5 4981550 365 99266 49815.5 4981550 -32204 32731 5251.02 525102 -124 127 3.02 302 +366 101 10356 99267 1.09909 298.09909 149.59909 14959.9099 1.09909 298.0991 149.5991 14959.91003 1.09909 298.09909 149.59908999999993 14959.90900 2020-01-01 2020-01-02 2020-01-01 00:06:06 2020-01-02 03:34:27 2020-01-01 00:06:06.000 2020-01-02 03:34:27.000 366 99267 49816.5 4981650 366 99267 49816.5 4981650 -32203 32732 5252.02 525202 -128 127 1.46 146 367 101 10357 99268 1.1021 298.1021 149.6021 14960.21021 1.1021 298.1021 149.6021 14960.21015 1.10210 298.10210 149.60210000000004 14960.21000 2020-01-01 2020-01-02 2020-01-01 00:06:07 2020-01-02 03:34:28 2020-01-01 00:06:07.000 2020-01-02 03:34:28.000 367 99268 49817.5 4981750 367 99268 49817.5 4981750 -32202 32733 5253.02 525302 -128 123 -0.1 -10 -368 101 10358 99269 1.1051 298.1051 149.6051 14960.51051 1.1051 298.1051 149.6051 14960.51031 1.10510 298.10510 149.60510000000014 14960.51000 2020-01-01 2020-01-02 2020-01-01 00:06:08 2020-01-02 03:34:29 2020-01-01 00:06:08.000 2020-01-02 03:34:29.000 368 99269 49818.5 4981850 368 99269 49818.5 4981850 -32201 32734 5254.02 525402 -127 124 0.9 90 -369 101 10359 99270 1.1081 298.1081 149.6081 14960.81081 1.1081 298.1081 149.6081 14960.81062 1.10810 298.10810 149.60809999999995 14960.81000 2020-01-01 2020-01-02 2020-01-01 00:06:09 2020-01-02 03:34:30 2020-01-01 00:06:09.000 2020-01-02 03:34:30.000 369 99270 49819.5 4981950 369 99270 49819.5 4981950 -32200 32735 5255.02 525502 -126 125 1.9 190 -37 102 10027 99937 0.11111 300.11111 150.11111 15161.22222 0.11111 300.1111 150.11111 15161.22248 0.11111 300.11111 150.11110999999985 15161.22211 2020-01-01 2020-01-02 2020-01-01 00:00:37 2020-01-02 03:45:37 2020-01-01 00:00:37.000 2020-01-02 03:45:37.000 37 99937 49987 5048687 37 99937 49987 5048687 -32532 32403 4566.009900990099 461167 -127 124 -1.4356435643564356 -145 -370 101 10360 99271 1.11111 298.11111 149.61111 14961.11111 1.11111 298.1111 149.61111 14961.11137 1.11111 298.11111 149.61110999999985 14961.11100 2020-01-01 2020-01-02 2020-01-01 00:06:10 2020-01-02 03:34:31 2020-01-01 00:06:10.000 2020-01-02 03:34:31.000 370 99271 49820.5 4982050 370 99271 49820.5 4982050 -32199 32736 5256.02 525602 -125 126 2.9 290 -371 101 10361 99272 1.11411 298.11411 149.61411 14961.41141 1.11411 298.1141 149.61411 14961.4115 1.11411 298.11411 149.6141100000003 14961.41100 2020-01-01 2020-01-02 2020-01-01 00:06:11 2020-01-02 03:34:32 2020-01-01 00:06:11.000 2020-01-02 03:34:32.000 371 99272 49821.5 4982150 371 99272 49821.5 4982150 -32198 32737 5257.02 525702 -124 127 3.9 390 -372 101 10362 99273 1.11711 298.11711 149.61711 14961.71171 1.11711 298.11713 149.61711 14961.71165 1.11711 298.11711 149.61710999999985 14961.71100 2020-01-01 2020-01-02 2020-01-01 00:06:12 2020-01-02 03:34:33 2020-01-01 00:06:12.000 2020-01-02 03:34:33.000 372 99273 49822.5 4982250 372 99273 49822.5 4982250 -32197 32738 5258.02 525802 -128 127 2.34 234 -373 101 10363 99274 1.12012 298.12012 149.62012 14962.01201 1.12012 298.12012 149.62011 14962.01179 1.12012 298.12012 149.62011999999973 14962.01200 2020-01-01 2020-01-02 2020-01-01 00:06:13 2020-01-02 03:34:34 2020-01-01 00:06:13.000 2020-01-02 03:34:34.000 373 99274 49823.5 4982350 373 99274 49823.5 4982350 -32196 32739 5259.02 525902 -128 123 0.78 78 -374 101 10364 99275 1.12312 298.12312 149.62312 14962.31231 1.12312 298.1231 149.62312 14962.31208 1.12312 298.12312 149.62312000000017 14962.31200 2020-01-01 2020-01-02 2020-01-01 00:06:14 2020-01-02 03:34:35 2020-01-01 00:06:14.000 2020-01-02 03:34:35.000 374 99275 49824.5 4982450 374 99275 49824.5 4982450 -32195 32740 5260.02 526002 -127 124 1.78 178 -375 101 10365 99276 1.12612 298.12612 149.62612 14962.61261 1.12612 298.12613 149.62612 14962.61283 1.12612 298.12612 149.62612000000018 14962.61200 2020-01-01 2020-01-02 2020-01-01 00:06:15 2020-01-02 03:34:36 2020-01-01 00:06:15.000 2020-01-02 03:34:36.000 375 99276 49825.5 4982550 375 99276 49825.5 4982550 -32194 32741 5261.02 526102 -126 125 2.78 278 -376 101 10366 99277 1.12912 298.12912 149.62912 14962.91291 1.12912 298.12912 149.62912 14962.91297 1.12912 298.12912 149.62911999999974 14962.91200 2020-01-01 2020-01-02 2020-01-01 00:06:16 2020-01-02 03:34:37 2020-01-01 00:06:16.000 2020-01-02 03:34:37.000 376 99277 49826.5 4982650 376 99277 49826.5 4982650 -32193 32742 5262.02 526202 -125 126 3.78 378 +368 101 10358 99269 1.1051 298.1051 149.6051 14960.51051 1.1051 298.1051 149.6051 14960.51031 1.10510 298.10510 149.6051 14960.51000 2020-01-01 2020-01-02 2020-01-01 00:06:08 2020-01-02 03:34:29 2020-01-01 00:06:08.000 2020-01-02 03:34:29.000 368 99269 49818.5 4981850 368 99269 49818.5 4981850 -32201 32734 5254.02 525402 -127 124 0.9 90 +369 101 10359 99270 1.1081 298.1081 149.6081 14960.81081 1.1081 298.1081 149.6081 14960.81062 1.10810 298.10810 149.60809999999998 14960.81000 2020-01-01 2020-01-02 2020-01-01 00:06:09 2020-01-02 03:34:30 2020-01-01 00:06:09.000 2020-01-02 03:34:30.000 369 99270 49819.5 4981950 369 99270 49819.5 4981950 -32200 32735 5255.02 525502 -126 125 1.9 190 +37 102 10027 99937 0.11111 300.11111 150.11111 15161.22222 0.11111 300.1111 150.11111 15161.22248 0.11111 300.11111 150.1111099999999 15161.22211 2020-01-01 2020-01-02 2020-01-01 00:00:37 2020-01-02 03:45:37 2020-01-01 00:00:37.000 2020-01-02 03:45:37.000 37 99937 49987 5048687 37 99937 49987 5048687 -32532 32403 4566.009900990099 461167 -127 124 -1.4356435643564356 -145 +370 101 10360 99271 1.11111 298.11111 149.61111 14961.11111 1.11111 298.1111 149.61111 14961.11137 1.11111 298.11111 149.6111099999999 14961.11100 2020-01-01 2020-01-02 2020-01-01 00:06:10 2020-01-02 03:34:31 2020-01-01 00:06:10.000 2020-01-02 03:34:31.000 370 99271 49820.5 4982050 370 99271 49820.5 4982050 -32199 32736 5256.02 525602 -125 126 2.9 290 +371 101 10361 99272 1.11411 298.11411 149.61411 14961.41141 1.11411 298.1141 149.61411 14961.4115 1.11411 298.11411 149.61411000000015 14961.41100 2020-01-01 2020-01-02 2020-01-01 00:06:11 2020-01-02 03:34:32 2020-01-01 00:06:11.000 2020-01-02 03:34:32.000 371 99272 49821.5 4982150 371 99272 49821.5 4982150 -32198 32737 5257.02 525702 -124 127 3.9 390 +372 101 10362 99273 1.11711 298.11711 149.61711 14961.71171 1.11711 298.11713 149.61711 14961.71165 1.11711 298.11711 149.61710999999997 14961.71100 2020-01-01 2020-01-02 2020-01-01 00:06:12 2020-01-02 03:34:33 2020-01-01 00:06:12.000 2020-01-02 03:34:33.000 372 99273 49822.5 4982250 372 99273 49822.5 4982250 -32197 32738 5258.02 525802 -128 127 2.34 234 +373 101 10363 99274 1.12012 298.12012 149.62012 14962.01201 1.12012 298.12012 149.62011 14962.01179 1.12012 298.12012 149.62011999999987 14962.01200 2020-01-01 2020-01-02 2020-01-01 00:06:13 2020-01-02 03:34:34 2020-01-01 00:06:13.000 2020-01-02 03:34:34.000 373 99274 49823.5 4982350 373 99274 49823.5 4982350 -32196 32739 5259.02 525902 -128 123 0.78 78 +374 101 10364 99275 1.12312 298.12312 149.62312 14962.31231 1.12312 298.1231 149.62312 14962.31208 1.12312 298.12312 149.62312000000009 14962.31200 2020-01-01 2020-01-02 2020-01-01 00:06:14 2020-01-02 03:34:35 2020-01-01 00:06:14.000 2020-01-02 03:34:35.000 374 99275 49824.5 4982450 374 99275 49824.5 4982450 -32195 32740 5260.02 526002 -127 124 1.78 178 +375 101 10365 99276 1.12612 298.12612 149.62612 14962.61261 1.12612 298.12613 149.62612 14962.61283 1.12612 298.12612 149.62612000000004 14962.61200 2020-01-01 2020-01-02 2020-01-01 00:06:15 2020-01-02 03:34:36 2020-01-01 00:06:15.000 2020-01-02 03:34:36.000 375 99276 49825.5 4982550 375 99276 49825.5 4982550 -32194 32741 5261.02 526102 -126 125 2.78 278 +376 101 10366 99277 1.12912 298.12912 149.62912 14962.91291 1.12912 298.12912 149.62912 14962.91297 1.12912 298.12912 149.6291199999999 14962.91200 2020-01-01 2020-01-02 2020-01-01 00:06:16 2020-01-02 03:34:37 2020-01-01 00:06:16.000 2020-01-02 03:34:37.000 376 99277 49826.5 4982650 376 99277 49826.5 4982650 -32193 32742 5262.02 526202 -125 126 3.78 378 377 101 10367 99278 1.13213 298.13213 149.63213 14963.21321 1.13213 298.13214 149.63213 14963.21312 1.13213 298.13213 149.63213 14963.21300 2020-01-01 2020-01-02 2020-01-01 00:06:17 2020-01-02 03:34:38 2020-01-01 00:06:17.000 2020-01-02 03:34:38.000 377 99278 49827.5 4982750 377 99278 49827.5 4982750 -32192 32743 5263.02 526302 -124 127 4.78 478 -378 101 10368 99279 1.13513 298.13513 149.63513 14963.51351 1.13513 298.13513 149.63513 14963.51326 1.13513 298.13513 149.6351300000001 14963.51300 2020-01-01 2020-01-02 2020-01-01 00:06:18 2020-01-02 03:34:39 2020-01-01 00:06:18.000 2020-01-02 03:34:39.000 378 99279 49828.5 4982850 378 99279 49828.5 4982850 -32191 32744 5264.02 526402 -128 127 3.22 322 -379 101 10369 99280 1.13813 298.13813 149.63813 14963.81381 1.13813 298.13815 149.63814 14963.81401 1.13813 298.13813 149.63812999999985 14963.81300 2020-01-01 2020-01-02 2020-01-01 00:06:19 2020-01-02 03:34:40 2020-01-01 00:06:19.000 2020-01-02 03:34:40.000 379 99280 49829.5 4982950 379 99280 49829.5 4982950 -32190 32745 5265.02 526502 -128 127 1.66 166 -38 102 10028 99938 0.11411 300.11411 150.11411 15161.52552 0.11411 300.1141 150.11411 15161.52562 0.11411 300.11411 150.11411000000032 15161.52511 2020-01-01 2020-01-02 2020-01-01 00:00:38 2020-01-02 03:45:38 2020-01-01 00:00:38.000 2020-01-02 03:45:38.000 38 99938 49988 5048788 38 99938 49988 5048788 -32531 32404 4567.009900990099 461268 -126 125 -0.43564356435643564 -44 -380 101 10370 99281 1.14114 298.14114 149.64114 14964.11411 1.14114 298.14114 149.64114 14964.11431 1.14114 298.14114 149.64113999999984 14964.11400 2020-01-01 2020-01-02 2020-01-01 00:06:20 2020-01-02 03:34:41 2020-01-01 00:06:20.000 2020-01-02 03:34:41.000 380 99281 49830.5 4983050 380 99281 49830.5 4983050 -32189 32746 5266.02 526602 -128 124 0.1 10 -381 101 10371 99282 1.14414 298.14414 149.64414 14964.41441 1.14414 298.14413 149.64414 14964.41448 1.14414 298.14414 149.6441400000002 14964.41400 2020-01-01 2020-01-02 2020-01-01 00:06:21 2020-01-02 03:34:42 2020-01-01 00:06:21.000 2020-01-02 03:34:42.000 381 99282 49831.5 4983150 381 99282 49831.5 4983150 -32188 32747 5267.02 526702 -127 125 1.1 110 -382 101 10372 99283 1.14714 298.14714 149.64714 14964.71471 1.14714 298.14716 149.64714 14964.71459 1.14714 298.14714 149.64713999999975 14964.71400 2020-01-01 2020-01-02 2020-01-01 00:06:22 2020-01-02 03:34:43 2020-01-01 00:06:22.000 2020-01-02 03:34:43.000 382 99283 49832.5 4983250 382 99283 49832.5 4983250 -32187 32748 5268.02 526802 -126 126 2.1 210 -383 101 10373 99284 1.15015 298.15015 149.65015 14965.01501 1.15015 298.15015 149.65014 14965.01472 1.15015 298.15015 149.65014999999997 14965.01500 2020-01-01 2020-01-02 2020-01-01 00:06:23 2020-01-02 03:34:44 2020-01-01 00:06:23.000 2020-01-02 03:34:44.000 383 99284 49833.5 4983350 383 99284 49833.5 4983350 -32186 32749 5269.02 526902 -125 127 3.1 310 +378 101 10368 99279 1.13513 298.13513 149.63513 14963.51351 1.13513 298.13513 149.63513 14963.51326 1.13513 298.13513 149.63513000000003 14963.51300 2020-01-01 2020-01-02 2020-01-01 00:06:18 2020-01-02 03:34:39 2020-01-01 00:06:18.000 2020-01-02 03:34:39.000 378 99279 49828.5 4982850 378 99279 49828.5 4982850 -32191 32744 5264.02 526402 -128 127 3.22 322 +379 101 10369 99280 1.13813 298.13813 149.63813 14963.81381 1.13813 298.13815 149.63814 14963.81401 1.13813 298.13813 149.63812999999993 14963.81300 2020-01-01 2020-01-02 2020-01-01 00:06:19 2020-01-02 03:34:40 2020-01-01 00:06:19.000 2020-01-02 03:34:40.000 379 99280 49829.5 4982950 379 99280 49829.5 4982950 -32190 32745 5265.02 526502 -128 127 1.66 166 +38 102 10028 99938 0.11411 300.11411 150.11411 15161.52552 0.11411 300.1141 150.11411 15161.52562 0.11411 300.11411 150.11411000000012 15161.52511 2020-01-01 2020-01-02 2020-01-01 00:00:38 2020-01-02 03:45:38 2020-01-01 00:00:38.000 2020-01-02 03:45:38.000 38 99938 49988 5048788 38 99938 49988 5048788 -32531 32404 4567.009900990099 461268 -126 125 -0.43564356435643564 -44 +380 101 10370 99281 1.14114 298.14114 149.64114 14964.11411 1.14114 298.14114 149.64114 14964.11431 1.14114 298.14114 149.64113999999995 14964.11400 2020-01-01 2020-01-02 2020-01-01 00:06:20 2020-01-02 03:34:41 2020-01-01 00:06:20.000 2020-01-02 03:34:41.000 380 99281 49830.5 4983050 380 99281 49830.5 4983050 -32189 32746 5266.02 526602 -128 124 0.1 10 +381 101 10371 99282 1.14414 298.14414 149.64414 14964.41441 1.14414 298.14413 149.64414 14964.41448 1.14414 298.14414 149.64414000000005 14964.41400 2020-01-01 2020-01-02 2020-01-01 00:06:21 2020-01-02 03:34:42 2020-01-01 00:06:21.000 2020-01-02 03:34:42.000 381 99282 49831.5 4983150 381 99282 49831.5 4983150 -32188 32747 5267.02 526702 -127 125 1.1 110 +382 101 10372 99283 1.14714 298.14714 149.64714 14964.71471 1.14714 298.14716 149.64714 14964.71459 1.14714 298.14714 149.64713999999992 14964.71400 2020-01-01 2020-01-02 2020-01-01 00:06:22 2020-01-02 03:34:43 2020-01-01 00:06:22.000 2020-01-02 03:34:43.000 382 99283 49832.5 4983250 382 99283 49832.5 4983250 -32187 32748 5268.02 526802 -126 126 2.1 210 +383 101 10373 99284 1.15015 298.15015 149.65015 14965.01501 1.15015 298.15015 149.65014 14965.01472 1.15015 298.15015 149.65015 14965.01500 2020-01-01 2020-01-02 2020-01-01 00:06:23 2020-01-02 03:34:44 2020-01-01 00:06:23.000 2020-01-02 03:34:44.000 383 99284 49833.5 4983350 383 99284 49833.5 4983350 -32186 32749 5269.02 526902 -125 127 3.1 310 384 101 10374 99285 1.15315 298.15315 149.65315 14965.31531 1.15315 298.15317 149.65315 14965.31547 1.15315 298.15315 149.65315000000007 14965.31500 2020-01-01 2020-01-02 2020-01-01 00:06:24 2020-01-02 03:34:45 2020-01-01 00:06:24.000 2020-01-02 03:34:45.000 384 99285 49834.5 4983450 384 99285 49834.5 4983450 -32185 32750 5270.02 527002 -128 127 1.54 154 -385 101 10375 99286 1.15615 298.15615 149.65615 14965.61561 1.15615 298.15616 149.65615 14965.61578 1.15615 298.15615 149.6561500000001 14965.61500 2020-01-01 2020-01-02 2020-01-01 00:06:25 2020-01-02 03:34:46 2020-01-01 00:06:25.000 2020-01-02 03:34:46.000 385 99286 49835.5 4983550 385 99286 49835.5 4983550 -32184 32751 5271.02 527102 -128 127 -0.02 -2 -386 101 10376 99287 1.15915 298.15915 149.65915 14965.91591 1.15915 298.15915 149.65915 14965.91594 1.15915 298.15915 149.65914999999998 14965.91500 2020-01-01 2020-01-02 2020-01-01 00:06:26 2020-01-02 03:34:47 2020-01-01 00:06:26.000 2020-01-02 03:34:47.000 386 99287 49836.5 4983650 386 99287 49836.5 4983650 -32183 32752 5272.02 527202 -128 123 -1.58 -158 -387 101 10377 99288 1.16216 298.16216 149.66216 14966.21621 1.16216 298.16217 149.66216 14966.21606 1.16216 298.16216 149.6621599999999 14966.21600 2020-01-01 2020-01-02 2020-01-01 00:06:27 2020-01-02 03:34:48 2020-01-01 00:06:27.000 2020-01-02 03:34:48.000 387 99288 49837.5 4983750 387 99288 49837.5 4983750 -32182 32753 5273.02 527302 -127 124 -0.58 -58 +385 101 10375 99286 1.15615 298.15615 149.65615 14965.61561 1.15615 298.15616 149.65615 14965.61578 1.15615 298.15615 149.65615000000003 14965.61500 2020-01-01 2020-01-02 2020-01-01 00:06:25 2020-01-02 03:34:46 2020-01-01 00:06:25.000 2020-01-02 03:34:46.000 385 99286 49835.5 4983550 385 99286 49835.5 4983550 -32184 32751 5271.02 527102 -128 127 -0.02 -2 +386 101 10376 99287 1.15915 298.15915 149.65915 14965.91591 1.15915 298.15915 149.65915 14965.91594 1.15915 298.15915 149.65915 14965.91500 2020-01-01 2020-01-02 2020-01-01 00:06:26 2020-01-02 03:34:47 2020-01-01 00:06:26.000 2020-01-02 03:34:47.000 386 99287 49836.5 4983650 386 99287 49836.5 4983650 -32183 32752 5272.02 527202 -128 123 -1.58 -158 +387 101 10377 99288 1.16216 298.16216 149.66216 14966.21621 1.16216 298.16217 149.66216 14966.21606 1.16216 298.16216 149.66215999999994 14966.21600 2020-01-01 2020-01-02 2020-01-01 00:06:27 2020-01-02 03:34:48 2020-01-01 00:06:27.000 2020-01-02 03:34:48.000 387 99288 49837.5 4983750 387 99288 49837.5 4983750 -32182 32753 5273.02 527302 -127 124 -0.58 -58 388 101 10378 99289 1.16516 298.16516 149.66516 14966.51651 1.16516 298.16516 149.66516 14966.51636 1.16516 298.16516 149.66516 14966.51600 2020-01-01 2020-01-02 2020-01-01 00:06:28 2020-01-02 03:34:49 2020-01-01 00:06:28.000 2020-01-02 03:34:49.000 388 99289 49838.5 4983850 388 99289 49838.5 4983850 -32181 32754 5274.02 527402 -126 125 0.42 42 -389 101 10379 99290 1.16816 298.16816 149.66816 14966.81681 1.16816 298.16818 149.66816 14966.81695 1.16816 298.16816 149.66815999999986 14966.81600 2020-01-01 2020-01-02 2020-01-01 00:06:29 2020-01-02 03:34:50 2020-01-01 00:06:29.000 2020-01-02 03:34:50.000 389 99290 49839.5 4983950 389 99290 49839.5 4983950 -32180 32755 5275.02 527502 -125 126 1.42 142 -39 102 10029 99939 0.11711 300.11711 150.11711 15161.82882 0.11711 300.11713 150.11711 15161.82876 0.11711 300.11711 150.11710999999983 15161.82811 2020-01-01 2020-01-02 2020-01-01 00:00:39 2020-01-02 03:45:39 2020-01-01 00:00:39.000 2020-01-02 03:45:39.000 39 99939 49989 5048889 39 99939 49989 5048889 -32530 32405 4568.009900990099 461369 -125 126 0.5643564356435643 57 -390 101 10380 99291 1.17117 298.17117 149.67117 14967.11711 1.17117 298.17117 149.67117 14967.11725 1.17117 298.17117 149.67116999999976 14967.11700 2020-01-01 2020-01-02 2020-01-01 00:06:30 2020-01-02 03:34:51 2020-01-01 00:06:30.000 2020-01-02 03:34:51.000 390 99291 49840.5 4984050 390 99291 49840.5 4984050 -32179 32756 5276.02 527602 -124 127 2.42 242 +389 101 10379 99290 1.16816 298.16816 149.66816 14966.81681 1.16816 298.16818 149.66816 14966.81695 1.16816 298.16816 149.66815999999997 14966.81600 2020-01-01 2020-01-02 2020-01-01 00:06:29 2020-01-02 03:34:50 2020-01-01 00:06:29.000 2020-01-02 03:34:50.000 389 99290 49839.5 4983950 389 99290 49839.5 4983950 -32180 32755 5275.02 527502 -125 126 1.42 142 +39 102 10029 99939 0.11711 300.11711 150.11711 15161.82882 0.11711 300.11713 150.11711 15161.82876 0.11711 300.11711 150.11710999999997 15161.82811 2020-01-01 2020-01-02 2020-01-01 00:00:39 2020-01-02 03:45:39 2020-01-01 00:00:39.000 2020-01-02 03:45:39.000 39 99939 49989 5048889 39 99939 49989 5048889 -32530 32405 4568.009900990099 461369 -125 126 0.5643564356435643 57 +390 101 10380 99291 1.17117 298.17117 149.67117 14967.11711 1.17117 298.17117 149.67117 14967.11725 1.17117 298.17117 149.6711699999999 14967.11700 2020-01-01 2020-01-02 2020-01-01 00:06:30 2020-01-02 03:34:51 2020-01-01 00:06:30.000 2020-01-02 03:34:51.000 390 99291 49840.5 4984050 390 99291 49840.5 4984050 -32179 32756 5276.02 527602 -124 127 2.42 242 391 101 10381 99292 1.17417 298.17417 149.67417 14967.41741 1.17417 298.17416 149.67417 14967.41741 1.17417 298.17417 149.67417000000012 14967.41700 2020-01-01 2020-01-02 2020-01-01 00:06:31 2020-01-02 03:34:52 2020-01-01 00:06:31.000 2020-01-02 03:34:52.000 391 99292 49841.5 4984150 391 99292 49841.5 4984150 -32178 32757 5277.02 527702 -128 127 0.86 86 -392 101 10382 99293 1.17717 298.17717 149.67717 14967.71771 1.17717 298.1772 149.67717 14967.71753 1.17717 298.17717 149.67717000000022 14967.71700 2020-01-01 2020-01-02 2020-01-01 00:06:32 2020-01-02 03:34:53 2020-01-01 00:06:32.000 2020-01-02 03:34:53.000 392 99293 49842.5 4984250 392 99293 49842.5 4984250 -32177 32758 5278.02 527802 -128 123 -0.7 -70 -393 101 10383 99294 1.18018 298.18018 149.68018 14968.01801 1.18018 298.18018 149.68017 14968.01782 1.18018 298.18018 149.68017999999987 14968.01800 2020-01-01 2020-01-02 2020-01-01 00:06:33 2020-01-02 03:34:54 2020-01-01 00:06:33.000 2020-01-02 03:34:54.000 393 99294 49843.5 4984350 393 99294 49843.5 4984350 -32176 32759 5279.02 527902 -127 124 0.3 30 +392 101 10382 99293 1.17717 298.17717 149.67717 14967.71771 1.17717 298.1772 149.67717 14967.71753 1.17717 298.17717 149.67717000000007 14967.71700 2020-01-01 2020-01-02 2020-01-01 00:06:32 2020-01-02 03:34:53 2020-01-01 00:06:32.000 2020-01-02 03:34:53.000 392 99293 49842.5 4984250 392 99293 49842.5 4984250 -32177 32758 5278.02 527802 -128 123 -0.7 -70 +393 101 10383 99294 1.18018 298.18018 149.68018 14968.01801 1.18018 298.18018 149.68017 14968.01782 1.18018 298.18018 149.68017999999995 14968.01800 2020-01-01 2020-01-02 2020-01-01 00:06:33 2020-01-02 03:34:54 2020-01-01 00:06:33.000 2020-01-02 03:34:54.000 393 99294 49843.5 4984350 393 99294 49843.5 4984350 -32176 32759 5279.02 527902 -127 124 0.3 30 394 101 10384 99295 1.18318 298.18318 149.68318 14968.31831 1.18318 298.1832 149.68318 14968.31842 1.18318 298.18318 149.68318 14968.31800 2020-01-01 2020-01-02 2020-01-01 00:06:34 2020-01-02 03:34:55 2020-01-01 00:06:34.000 2020-01-02 03:34:55.000 394 99295 49844.5 4984450 394 99295 49844.5 4984450 -32175 32760 5280.02 528002 -126 125 1.3 130 -395 101 10385 99296 1.18618 298.18618 149.68618 14968.61861 1.18618 298.1862 149.68618 14968.61875 1.18618 298.18618 149.68618000000012 14968.61800 2020-01-01 2020-01-02 2020-01-01 00:06:35 2020-01-02 03:34:56 2020-01-01 00:06:35.000 2020-01-02 03:34:56.000 395 99296 49845.5 4984550 395 99296 49845.5 4984550 -32174 32761 5281.02 528102 -125 126 2.3 230 -396 101 10386 99297 1.18918 298.18918 149.68918 14968.91891 1.18918 298.18918 149.68918 14968.91889 1.18918 298.18918 149.68917999999988 14968.91800 2020-01-01 2020-01-02 2020-01-01 00:06:36 2020-01-02 03:34:57 2020-01-01 00:06:36.000 2020-01-02 03:34:57.000 396 99297 49846.5 4984650 396 99297 49846.5 4984650 -32173 32762 5282.02 528202 -124 127 3.3 330 -397 101 10387 99298 1.19219 298.19219 149.69219 14969.21921 1.19219 298.1922 149.69219 14969.21964 1.19219 298.19219 149.69218999999987 14969.21900 2020-01-01 2020-01-02 2020-01-01 00:06:37 2020-01-02 03:34:58 2020-01-01 00:06:37.000 2020-01-02 03:34:58.000 397 99298 49847.5 4984750 397 99298 49847.5 4984750 -32172 32763 5283.02 528302 -128 127 1.74 174 -398 101 10388 99299 1.19519 298.19519 149.69519 14969.51951 1.19519 298.1952 149.69519 14969.51929 1.19519 298.19519 149.69519000000022 14969.51900 2020-01-01 2020-01-02 2020-01-01 00:06:38 2020-01-02 03:34:59 2020-01-01 00:06:38.000 2020-01-02 03:34:59.000 398 99299 49848.5 4984850 398 99299 49848.5 4984850 -32171 32764 5284.02 528402 -128 123 0.18 18 -399 101 10389 99300 1.19819 298.19819 149.69819 14969.81981 1.19819 298.1982 149.69819 14969.81989 1.19819 298.19819 149.69818999999978 14969.81900 2020-01-01 2020-01-02 2020-01-01 00:06:39 2020-01-02 03:35:00 2020-01-01 00:06:39.000 2020-01-02 03:35:00.000 399 99300 49849.5 4984950 399 99300 49849.5 4984950 -32170 32765 5285.02 528502 -127 124 1.18 118 -4 102 1003 9994 0.01201 300.01201 150.01201 15151.21321 0.01201 300.01202 150.01201 15151.21318 0.01201 300.01201 150.01201000000026 15151.21301 2020-01-01 2020-01-02 2020-01-01 00:00:04 2020-01-02 03:45:04 2020-01-01 00:00:04.000 2020-01-02 03:45:04.000 4 99904 49954 5045354 4 99904 49954 5045354 -32565 32370 4533.009900990099 457834 -128 127 -1.4851485148514851 -150 -40 102 10030 99940 0.12012 300.12012 150.12012 15162.13213 0.12012 300.12012 150.12011 15162.13191 0.12012 300.12012 150.1201199999997 15162.13212 2020-01-01 2020-01-02 2020-01-01 00:00:40 2020-01-02 03:45:40 2020-01-01 00:00:40.000 2020-01-02 03:45:40.000 40 99940 49990 5048990 40 99940 49990 5048990 -32529 32406 4569.009900990099 461470 -124 127 1.5643564356435644 158 +395 101 10385 99296 1.18618 298.18618 149.68618 14968.61861 1.18618 298.1862 149.68618 14968.61875 1.18618 298.18618 149.68618000000004 14968.61800 2020-01-01 2020-01-02 2020-01-01 00:06:35 2020-01-02 03:34:56 2020-01-01 00:06:35.000 2020-01-02 03:34:56.000 395 99296 49845.5 4984550 395 99296 49845.5 4984550 -32174 32761 5281.02 528102 -125 126 2.3 230 +396 101 10386 99297 1.18918 298.18918 149.68918 14968.91891 1.18918 298.18918 149.68918 14968.91889 1.18918 298.18918 149.68917999999996 14968.91800 2020-01-01 2020-01-02 2020-01-01 00:06:36 2020-01-02 03:34:57 2020-01-01 00:06:36.000 2020-01-02 03:34:57.000 396 99297 49846.5 4984650 396 99297 49846.5 4984650 -32173 32762 5282.02 528202 -124 127 3.3 330 +397 101 10387 99298 1.19219 298.19219 149.69219 14969.21921 1.19219 298.1922 149.69219 14969.21964 1.19219 298.19219 149.69218999999993 14969.21900 2020-01-01 2020-01-02 2020-01-01 00:06:37 2020-01-02 03:34:58 2020-01-01 00:06:37.000 2020-01-02 03:34:58.000 397 99298 49847.5 4984750 397 99298 49847.5 4984750 -32172 32763 5283.02 528302 -128 127 1.74 174 +398 101 10388 99299 1.19519 298.19519 149.69519 14969.51951 1.19519 298.1952 149.69519 14969.51929 1.19519 298.19519 149.69519000000008 14969.51900 2020-01-01 2020-01-02 2020-01-01 00:06:38 2020-01-02 03:34:59 2020-01-01 00:06:38.000 2020-01-02 03:34:59.000 398 99299 49848.5 4984850 398 99299 49848.5 4984850 -32171 32764 5284.02 528402 -128 123 0.18 18 +399 101 10389 99300 1.19819 298.19819 149.69819 14969.81981 1.19819 298.1982 149.69819 14969.81989 1.19819 298.19819 149.69818999999993 14969.81900 2020-01-01 2020-01-02 2020-01-01 00:06:39 2020-01-02 03:35:00 2020-01-01 00:06:39.000 2020-01-02 03:35:00.000 399 99300 49849.5 4984950 399 99300 49849.5 4984950 -32170 32765 5285.02 528502 -127 124 1.18 118 +4 102 1003 9994 0.01201 300.01201 150.01201 15151.21321 0.01201 300.01202 150.01201 15151.21318 0.01201 300.01201 150.0120100000001 15151.21301 2020-01-01 2020-01-02 2020-01-01 00:00:04 2020-01-02 03:45:04 2020-01-01 00:00:04.000 2020-01-02 03:45:04.000 4 99904 49954 5045354 4 99904 49954 5045354 -32565 32370 4533.009900990099 457834 -128 127 -1.4851485148514851 -150 +40 102 10030 99940 0.12012 300.12012 150.12012 15162.13213 0.12012 300.12012 150.12011 15162.13191 0.12012 300.12012 150.12011999999987 15162.13212 2020-01-01 2020-01-02 2020-01-01 00:00:40 2020-01-02 03:45:40 2020-01-01 00:00:40.000 2020-01-02 03:45:40.000 40 99940 49990 5048990 40 99940 49990 5048990 -32529 32406 4569.009900990099 461470 -124 127 1.5643564356435644 158 400 101 10390 99301 1.2012 298.2012 149.7012 14970.12012 1.2012 298.2012 149.7012 14970.12022 1.20120 298.20120 149.7012 14970.12000 2020-01-01 2020-01-02 2020-01-01 00:06:40 2020-01-02 03:35:01 2020-01-01 00:06:40.000 2020-01-02 03:35:01.000 400 99301 49850.5 4985050 400 99301 49850.5 4985050 -32169 32766 5286.02 528602 -126 125 2.18 218 -401 101 10391 99302 1.2042 298.2042 149.7042 14970.42042 1.2042 298.2042 149.7042 14970.42035 1.20420 298.20420 149.7042000000001 14970.42000 2020-01-01 2020-01-02 2020-01-01 00:06:41 2020-01-02 03:35:02 2020-01-01 00:06:41.000 2020-01-02 03:35:02.000 401 99302 49851.5 4985150 401 99302 49851.5 4985150 -32168 32767 5287.02 528702 -125 126 3.18 318 -402 101 10392 99303 1.2072 298.2072 149.7072 14970.72072 1.2072 298.2072 149.70721 14970.72111 1.20720 298.20720 149.70720000000014 14970.72000 2020-01-01 2020-01-02 2020-01-01 00:06:42 2020-01-02 03:35:03 2020-01-01 00:06:42.000 2020-01-02 03:35:03.000 402 99303 49852.5 4985250 402 99303 49852.5 4985250 -32768 32370 4632.66 463266 -124 127 4.18 418 -403 101 10393 99304 1.21021 298.21021 149.71021 14971.02102 1.21021 298.2102 149.7102 14971.02077 1.21021 298.21021 149.71020999999988 14971.02100 2020-01-01 2020-01-02 2020-01-01 00:06:43 2020-01-02 03:35:04 2020-01-01 00:06:43.000 2020-01-02 03:35:04.000 403 99304 49853.5 4985350 403 99304 49853.5 4985350 -32767 32371 4633.66 463366 -128 127 2.62 262 +401 101 10391 99302 1.2042 298.2042 149.7042 14970.42042 1.2042 298.2042 149.7042 14970.42035 1.20420 298.20420 149.70420000000004 14970.42000 2020-01-01 2020-01-02 2020-01-01 00:06:41 2020-01-02 03:35:02 2020-01-01 00:06:41.000 2020-01-02 03:35:02.000 401 99302 49851.5 4985150 401 99302 49851.5 4985150 -32168 32767 5287.02 528702 -125 126 3.18 318 +402 101 10392 99303 1.2072 298.2072 149.7072 14970.72072 1.2072 298.2072 149.70721 14970.72111 1.20720 298.20720 149.70720000000003 14970.72000 2020-01-01 2020-01-02 2020-01-01 00:06:42 2020-01-02 03:35:03 2020-01-01 00:06:42.000 2020-01-02 03:35:03.000 402 99303 49852.5 4985250 402 99303 49852.5 4985250 -32768 32370 4632.66 463266 -124 127 4.18 418 +403 101 10393 99304 1.21021 298.21021 149.71021 14971.02102 1.21021 298.2102 149.7102 14971.02077 1.21021 298.21021 149.71020999999996 14971.02100 2020-01-01 2020-01-02 2020-01-01 00:06:43 2020-01-02 03:35:04 2020-01-01 00:06:43.000 2020-01-02 03:35:04.000 403 99304 49853.5 4985350 403 99304 49853.5 4985350 -32767 32371 4633.66 463366 -128 127 2.62 262 404 101 10394 99305 1.21321 298.21321 149.71321 14971.32132 1.21321 298.21323 149.71321 14971.32139 1.21321 298.21321 149.71320999999992 14971.32100 2020-01-01 2020-01-02 2020-01-01 00:06:44 2020-01-02 03:35:05 2020-01-01 00:06:44.000 2020-01-02 03:35:05.000 404 99305 49854.5 4985450 404 99305 49854.5 4985450 -32766 32372 4634.66 463466 -128 127 1.06 106 -405 101 10395 99306 1.21621 298.21621 149.71621 14971.62162 1.21621 298.21622 149.71621 14971.62169 1.21621 298.21621 149.71621000000002 14971.62100 2020-01-01 2020-01-02 2020-01-01 00:06:45 2020-01-02 03:35:06 2020-01-01 00:06:45.000 2020-01-02 03:35:06.000 405 99306 49855.5 4985550 405 99306 49855.5 4985550 -32765 32373 4635.66 463566 -128 124 -0.5 -50 -406 101 10396 99307 1.21921 298.21921 149.71921 14971.92192 1.21921 298.2192 149.71921 14971.92199 1.21921 298.21921 149.7192099999999 14971.92100 2020-01-01 2020-01-02 2020-01-01 00:06:46 2020-01-02 03:35:07 2020-01-01 00:06:46.000 2020-01-02 03:35:07.000 406 99307 49856.5 4985650 406 99307 49856.5 4985650 -32764 32374 4636.66 463666 -127 125 0.5 50 -407 101 10397 99308 1.22222 298.22222 149.72222 14972.22222 1.22222 298.22223 149.72222 14972.22257 1.22222 298.22222 149.7222199999998 14972.22200 2020-01-01 2020-01-02 2020-01-01 00:06:47 2020-01-02 03:35:08 2020-01-01 00:06:47.000 2020-01-02 03:35:08.000 407 99308 49857.5 4985750 407 99308 49857.5 4985750 -32763 32375 4637.66 463766 -126 126 1.5 150 -408 101 10398 99309 1.22522 298.22522 149.72522 14972.52252 1.22522 298.22522 149.72522 14972.52224 1.22522 298.22522 149.72522000000015 14972.52200 2020-01-01 2020-01-02 2020-01-01 00:06:48 2020-01-02 03:35:09 2020-01-01 00:06:48.000 2020-01-02 03:35:09.000 408 99309 49858.5 4985850 408 99309 49858.5 4985850 -32762 32376 4638.66 463866 -125 127 2.5 250 -409 101 10399 99310 1.22822 298.22822 149.72822 14972.82282 1.22822 298.22824 149.72822 14972.82286 1.22822 298.22822 149.72822000000025 14972.82200 2020-01-01 2020-01-02 2020-01-01 00:06:49 2020-01-02 03:35:10 2020-01-01 00:06:49.000 2020-01-02 03:35:10.000 409 99310 49859.5 4985950 409 99310 49859.5 4985950 -32761 32377 4639.66 463966 -128 127 0.94 94 -41 102 10031 99941 0.12312 300.12312 150.12312 15162.43543 0.12312 300.1231 150.12312 15162.43521 0.12312 300.12312 150.12312000000017 15162.43512 2020-01-01 2020-01-02 2020-01-01 00:00:41 2020-01-02 03:45:41 2020-01-01 00:00:41.000 2020-01-02 03:45:41.000 41 99941 49991 5049091 41 99941 49991 5049091 -32528 32407 4570.009900990099 461571 -128 127 0.0297029702970297 3 -410 101 10400 99311 1.23123 298.23123 149.73123 14973.12312 1.23123 298.23123 149.73123 14973.12316 1.23123 298.23123 149.7312299999999 14973.12300 2020-01-01 2020-01-02 2020-01-01 00:06:50 2020-01-02 03:35:11 2020-01-01 00:06:50.000 2020-01-02 03:35:11.000 410 99311 49860.5 4986050 410 99311 49860.5 4986050 -32760 32378 4640.66 464066 -128 127 -0.62 -62 -411 101 10401 99312 1.23423 298.23423 149.73423 14973.42342 1.23423 298.23422 149.73423 14973.42345 1.23423 298.23423 149.73423000000003 14973.42300 2020-01-01 2020-01-02 2020-01-01 00:06:51 2020-01-02 03:35:12 2020-01-01 00:06:51.000 2020-01-02 03:35:12.000 411 99312 49861.5 4986150 411 99312 49861.5 4986150 -32759 32379 4641.66 464166 -128 123 -2.18 -218 -412 101 10402 99313 1.23723 298.23723 149.73723 14973.72372 1.23723 298.23724 149.73724 14973.72405 1.23723 298.23723 149.73723000000015 14973.72300 2020-01-01 2020-01-02 2020-01-01 00:06:52 2020-01-02 03:35:13 2020-01-01 00:06:52.000 2020-01-02 03:35:13.000 412 99313 49862.5 4986250 412 99313 49862.5 4986250 -32758 32380 4642.66 464266 -127 124 -1.18 -118 -413 101 10403 99314 1.24024 298.24024 149.74024 14974.02402 1.24024 298.24023 149.74023 14974.02374 1.24024 298.24024 149.7402399999998 14974.02400 2020-01-01 2020-01-02 2020-01-01 00:06:53 2020-01-02 03:35:14 2020-01-01 00:06:53.000 2020-01-02 03:35:14.000 413 99314 49863.5 4986350 413 99314 49863.5 4986350 -32757 32381 4643.66 464366 -126 125 -0.18 -18 -414 101 10404 99315 1.24324 298.24324 149.74324 14974.32432 1.24324 298.24326 149.74324 14974.32433 1.24324 298.24324 149.74323999999982 14974.32400 2020-01-01 2020-01-02 2020-01-01 00:06:54 2020-01-02 03:35:15 2020-01-01 00:06:54.000 2020-01-02 03:35:15.000 414 99315 49864.5 4986450 414 99315 49864.5 4986450 -32756 32382 4644.66 464466 -125 126 0.82 82 -415 101 10405 99316 1.24624 298.24624 149.74624 14974.62462 1.24624 298.24625 149.74624 14974.62463 1.24624 298.24624 149.74624000000026 14974.62400 2020-01-01 2020-01-02 2020-01-01 00:06:55 2020-01-02 03:35:16 2020-01-01 00:06:55.000 2020-01-02 03:35:16.000 415 99316 49865.5 4986550 415 99316 49865.5 4986550 -32755 32383 4645.66 464566 -124 127 1.82 182 -416 101 10406 99317 1.24924 298.24924 149.74924 14974.92492 1.24924 298.24924 149.74924 14974.92492 1.24924 298.24924 149.74923999999982 14974.92400 2020-01-01 2020-01-02 2020-01-01 00:06:56 2020-01-02 03:35:17 2020-01-01 00:06:56.000 2020-01-02 03:35:17.000 416 99317 49866.5 4986650 416 99317 49866.5 4986650 -32754 32384 4646.66 464666 -128 127 0.26 26 -417 101 10407 99318 1.25225 298.25225 149.75225 14975.22522 1.25225 298.25226 149.75225 14975.22552 1.25225 298.25225 149.7522499999997 14975.22500 2020-01-01 2020-01-02 2020-01-01 00:06:57 2020-01-02 03:35:18 2020-01-01 00:06:57.000 2020-01-02 03:35:18.000 417 99318 49867.5 4986750 417 99318 49867.5 4986750 -32753 32385 4647.66 464766 -128 123 -1.3 -130 -418 101 10408 99319 1.25525 298.25525 149.75525 14975.52552 1.25525 298.25525 149.75525 14975.52521 1.25525 298.25525 149.75525000000013 14975.52500 2020-01-01 2020-01-02 2020-01-01 00:06:58 2020-01-02 03:35:19 2020-01-01 00:06:58.000 2020-01-02 03:35:19.000 418 99319 49868.5 4986850 418 99319 49868.5 4986850 -32752 32386 4648.66 464866 -127 124 -0.3 -30 -419 101 10409 99320 1.25825 298.25825 149.75825 14975.82582 1.25825 298.25827 149.75825 14975.8258 1.25825 298.25825 149.75825000000015 14975.82500 2020-01-01 2020-01-02 2020-01-01 00:06:59 2020-01-02 03:35:20 2020-01-01 00:06:59.000 2020-01-02 03:35:20.000 419 99320 49869.5 4986950 419 99320 49869.5 4986950 -32751 32387 4649.66 464966 -126 125 0.7 70 -42 102 10032 99942 0.12612 300.12612 150.12612 15162.73873 0.12612 300.12613 150.12612 15162.73896 0.12612 300.12612 150.1261200000002 15162.73812 2020-01-01 2020-01-02 2020-01-01 00:00:42 2020-01-02 03:45:42 2020-01-01 00:00:42.000 2020-01-02 03:45:42.000 42 99942 49992 5049192 42 99942 49992 5049192 -32527 32408 4571.009900990099 461672 -128 127 -1.504950495049505 -152 -420 101 10410 99321 1.26126 298.26126 149.76126 14976.12612 1.26126 298.26126 149.76126 14976.12609 1.26126 298.26126 149.7612599999999 14976.12600 2020-01-01 2020-01-02 2020-01-01 00:07:00 2020-01-02 03:35:21 2020-01-01 00:07:00.000 2020-01-02 03:35:21.000 420 99321 49870.5 4987050 420 99321 49870.5 4987050 -32750 32388 4650.66 465066 -125 126 1.7 170 +405 101 10395 99306 1.21621 298.21621 149.71621 14971.62162 1.21621 298.21622 149.71621 14971.62169 1.21621 298.21621 149.71621 14971.62100 2020-01-01 2020-01-02 2020-01-01 00:06:45 2020-01-02 03:35:06 2020-01-01 00:06:45.000 2020-01-02 03:35:06.000 405 99306 49855.5 4985550 405 99306 49855.5 4985550 -32765 32373 4635.66 463566 -128 124 -0.5 -50 +406 101 10396 99307 1.21921 298.21921 149.71921 14971.92192 1.21921 298.2192 149.71921 14971.92199 1.21921 298.21921 149.71920999999998 14971.92100 2020-01-01 2020-01-02 2020-01-01 00:06:46 2020-01-02 03:35:07 2020-01-01 00:06:46.000 2020-01-02 03:35:07.000 406 99307 49856.5 4985650 406 99307 49856.5 4985650 -32764 32374 4636.66 463666 -127 125 0.5 50 +407 101 10397 99308 1.22222 298.22222 149.72222 14972.22222 1.22222 298.22223 149.72222 14972.22257 1.22222 298.22222 149.72221999999994 14972.22200 2020-01-01 2020-01-02 2020-01-01 00:06:47 2020-01-02 03:35:08 2020-01-01 00:06:47.000 2020-01-02 03:35:08.000 407 99308 49857.5 4985750 407 99308 49857.5 4985750 -32763 32375 4637.66 463766 -126 126 1.5 150 +408 101 10398 99309 1.22522 298.22522 149.72522 14972.52252 1.22522 298.22522 149.72522 14972.52224 1.22522 298.22522 149.72522000000004 14972.52200 2020-01-01 2020-01-02 2020-01-01 00:06:48 2020-01-02 03:35:09 2020-01-01 00:06:48.000 2020-01-02 03:35:09.000 408 99309 49858.5 4985850 408 99309 49858.5 4985850 -32762 32376 4638.66 463866 -125 127 2.5 250 +409 101 10399 99310 1.22822 298.22822 149.72822 14972.82282 1.22822 298.22824 149.72822 14972.82286 1.22822 298.22822 149.7282200000001 14972.82200 2020-01-01 2020-01-02 2020-01-01 00:06:49 2020-01-02 03:35:10 2020-01-01 00:06:49.000 2020-01-02 03:35:10.000 409 99310 49859.5 4985950 409 99310 49859.5 4985950 -32761 32377 4639.66 463966 -128 127 0.94 94 +41 102 10031 99941 0.12312 300.12312 150.12312 15162.43543 0.12312 300.1231 150.12312 15162.43521 0.12312 300.12312 150.12312000000009 15162.43512 2020-01-01 2020-01-02 2020-01-01 00:00:41 2020-01-02 03:45:41 2020-01-01 00:00:41.000 2020-01-02 03:45:41.000 41 99941 49991 5049091 41 99941 49991 5049091 -32528 32407 4570.009900990099 461571 -128 127 0.0297029702970297 3 +410 101 10400 99311 1.23123 298.23123 149.73123 14973.12312 1.23123 298.23123 149.73123 14973.12316 1.23123 298.23123 149.73122999999995 14973.12300 2020-01-01 2020-01-02 2020-01-01 00:06:50 2020-01-02 03:35:11 2020-01-01 00:06:50.000 2020-01-02 03:35:11.000 410 99311 49860.5 4986050 410 99311 49860.5 4986050 -32760 32378 4640.66 464066 -128 127 -0.62 -62 +411 101 10401 99312 1.23423 298.23423 149.73423 14973.42342 1.23423 298.23422 149.73423 14973.42345 1.23423 298.23423 149.73423 14973.42300 2020-01-01 2020-01-02 2020-01-01 00:06:51 2020-01-02 03:35:12 2020-01-01 00:06:51.000 2020-01-02 03:35:12.000 411 99312 49861.5 4986150 411 99312 49861.5 4986150 -32759 32379 4641.66 464166 -128 123 -2.18 -218 +412 101 10402 99313 1.23723 298.23723 149.73723 14973.72372 1.23723 298.23724 149.73724 14973.72405 1.23723 298.23723 149.73723000000007 14973.72300 2020-01-01 2020-01-02 2020-01-01 00:06:52 2020-01-02 03:35:13 2020-01-01 00:06:52.000 2020-01-02 03:35:13.000 412 99313 49862.5 4986250 412 99313 49862.5 4986250 -32758 32380 4642.66 464266 -127 124 -1.18 -118 +413 101 10403 99314 1.24024 298.24024 149.74024 14974.02402 1.24024 298.24023 149.74023 14974.02374 1.24024 298.24024 149.74023999999991 14974.02400 2020-01-01 2020-01-02 2020-01-01 00:06:53 2020-01-02 03:35:14 2020-01-01 00:06:53.000 2020-01-02 03:35:14.000 413 99314 49863.5 4986350 413 99314 49863.5 4986350 -32757 32381 4643.66 464366 -126 125 -0.18 -18 +414 101 10404 99315 1.24324 298.24324 149.74324 14974.32432 1.24324 298.24326 149.74324 14974.32433 1.24324 298.24324 149.7432399999999 14974.32400 2020-01-01 2020-01-02 2020-01-01 00:06:54 2020-01-02 03:35:15 2020-01-01 00:06:54.000 2020-01-02 03:35:15.000 414 99315 49864.5 4986450 414 99315 49864.5 4986450 -32756 32382 4644.66 464466 -125 126 0.82 82 +415 101 10405 99316 1.24624 298.24624 149.74624 14974.62462 1.24624 298.24625 149.74624 14974.62463 1.24624 298.24624 149.7462400000001 14974.62400 2020-01-01 2020-01-02 2020-01-01 00:06:55 2020-01-02 03:35:16 2020-01-01 00:06:55.000 2020-01-02 03:35:16.000 415 99316 49865.5 4986550 415 99316 49865.5 4986550 -32755 32383 4645.66 464566 -124 127 1.82 182 +416 101 10406 99317 1.24924 298.24924 149.74924 14974.92492 1.24924 298.24924 149.74924 14974.92492 1.24924 298.24924 149.74923999999993 14974.92400 2020-01-01 2020-01-02 2020-01-01 00:06:56 2020-01-02 03:35:17 2020-01-01 00:06:56.000 2020-01-02 03:35:17.000 416 99317 49866.5 4986650 416 99317 49866.5 4986650 -32754 32384 4646.66 464666 -128 127 0.26 26 +417 101 10407 99318 1.25225 298.25225 149.75225 14975.22522 1.25225 298.25226 149.75225 14975.22552 1.25225 298.25225 149.75224999999983 14975.22500 2020-01-01 2020-01-02 2020-01-01 00:06:57 2020-01-02 03:35:18 2020-01-01 00:06:57.000 2020-01-02 03:35:18.000 417 99318 49867.5 4986750 417 99318 49867.5 4986750 -32753 32385 4647.66 464766 -128 123 -1.3 -130 +418 101 10408 99319 1.25525 298.25525 149.75525 14975.52552 1.25525 298.25525 149.75525 14975.52521 1.25525 298.25525 149.75525000000007 14975.52500 2020-01-01 2020-01-02 2020-01-01 00:06:58 2020-01-02 03:35:19 2020-01-01 00:06:58.000 2020-01-02 03:35:19.000 418 99319 49868.5 4986850 418 99319 49868.5 4986850 -32752 32386 4648.66 464866 -127 124 -0.3 -30 +419 101 10409 99320 1.25825 298.25825 149.75825 14975.82582 1.25825 298.25827 149.75825 14975.8258 1.25825 298.25825 149.75825000000006 14975.82500 2020-01-01 2020-01-02 2020-01-01 00:06:59 2020-01-02 03:35:20 2020-01-01 00:06:59.000 2020-01-02 03:35:20.000 419 99320 49869.5 4986950 419 99320 49869.5 4986950 -32751 32387 4649.66 464966 -126 125 0.7 70 +42 102 10032 99942 0.12612 300.12612 150.12612 15162.73873 0.12612 300.12613 150.12612 15162.73896 0.12612 300.12612 150.12612000000004 15162.73812 2020-01-01 2020-01-02 2020-01-01 00:00:42 2020-01-02 03:45:42 2020-01-01 00:00:42.000 2020-01-02 03:45:42.000 42 99942 49992 5049192 42 99942 49992 5049192 -32527 32408 4571.009900990099 461672 -128 127 -1.504950495049505 -152 +420 101 10410 99321 1.26126 298.26126 149.76126 14976.12612 1.26126 298.26126 149.76126 14976.12609 1.26126 298.26126 149.76126 14976.12600 2020-01-01 2020-01-02 2020-01-01 00:07:00 2020-01-02 03:35:21 2020-01-01 00:07:00.000 2020-01-02 03:35:21.000 420 99321 49870.5 4987050 420 99321 49870.5 4987050 -32750 32388 4650.66 465066 -125 126 1.7 170 421 101 10411 99322 1.26426 298.26426 149.76426 14976.42642 1.26426 298.26425 149.76426 14976.4264 1.26426 298.26426 149.76425999999995 14976.42600 2020-01-01 2020-01-02 2020-01-01 00:07:01 2020-01-02 03:35:22 2020-01-01 00:07:01.000 2020-01-02 03:35:22.000 421 99322 49871.5 4987150 421 99322 49871.5 4987150 -32749 32389 4651.66 465166 -124 127 2.7 270 -422 101 10412 99323 1.26726 298.26726 149.76726 14976.72672 1.26726 298.26727 149.76727 14976.72702 1.26726 298.26726 149.76726000000005 14976.72600 2020-01-01 2020-01-02 2020-01-01 00:07:02 2020-01-02 03:35:23 2020-01-01 00:07:02.000 2020-01-02 03:35:23.000 422 99323 49872.5 4987250 422 99323 49872.5 4987250 -32748 32390 4652.66 465266 -128 127 1.14 114 -423 101 10413 99324 1.27027 298.27027 149.77027 14977.02702 1.27027 298.27026 149.77026 14977.02667 1.27027 298.27027 149.77027000000027 14977.02700 2020-01-01 2020-01-02 2020-01-01 00:07:03 2020-01-02 03:35:24 2020-01-01 00:07:03.000 2020-01-02 03:35:24.000 423 99324 49873.5 4987350 423 99324 49873.5 4987350 -32747 32391 4653.66 465366 -128 123 -0.42 -42 -424 101 10414 99325 1.27327 298.27327 149.77327 14977.32732 1.27327 298.2733 149.77327 14977.32727 1.27327 298.27327 149.77326999999983 14977.32700 2020-01-01 2020-01-02 2020-01-01 00:07:04 2020-01-02 03:35:25 2020-01-01 00:07:04.000 2020-01-02 03:35:25.000 424 99325 49874.5 4987450 424 99325 49874.5 4987450 -32746 32392 4654.66 465466 -127 124 0.58 58 -425 101 10415 99326 1.27627 298.27627 149.77627 14977.62762 1.27627 298.27628 149.77627 14977.62756 1.27627 298.27627 149.77627000000018 14977.62700 2020-01-01 2020-01-02 2020-01-01 00:07:05 2020-01-02 03:35:26 2020-01-01 00:07:05.000 2020-01-02 03:35:26.000 425 99326 49875.5 4987550 425 99326 49875.5 4987550 -32745 32393 4655.66 465566 -126 125 1.58 158 -426 101 10416 99327 1.27927 298.27927 149.77927 14977.92792 1.27927 298.27927 149.77927 14977.92787 1.27927 298.27927 149.7792699999997 14977.92700 2020-01-01 2020-01-02 2020-01-01 00:07:06 2020-01-02 03:35:27 2020-01-01 00:07:06.000 2020-01-02 03:35:27.000 426 99327 49876.5 4987650 426 99327 49876.5 4987650 -32744 32394 4656.66 465666 -125 126 2.58 258 -427 101 10417 99328 1.28228 298.28228 149.78228 14978.22822 1.28228 298.2823 149.78228 14978.22849 1.28228 298.28228 149.78227999999993 14978.22800 2020-01-01 2020-01-02 2020-01-01 00:07:07 2020-01-02 03:35:28 2020-01-01 00:07:07.000 2020-01-02 03:35:28.000 427 99328 49877.5 4987750 427 99328 49877.5 4987750 -32743 32395 4657.66 465766 -124 127 3.58 358 +422 101 10412 99323 1.26726 298.26726 149.76726 14976.72672 1.26726 298.26727 149.76727 14976.72702 1.26726 298.26726 149.76726000000002 14976.72600 2020-01-01 2020-01-02 2020-01-01 00:07:02 2020-01-02 03:35:23 2020-01-01 00:07:02.000 2020-01-02 03:35:23.000 422 99323 49872.5 4987250 422 99323 49872.5 4987250 -32748 32390 4652.66 465266 -128 127 1.14 114 +423 101 10413 99324 1.27027 298.27027 149.77027 14977.02702 1.27027 298.27026 149.77026 14977.02667 1.27027 298.27027 149.77027000000012 14977.02700 2020-01-01 2020-01-02 2020-01-01 00:07:03 2020-01-02 03:35:24 2020-01-01 00:07:03.000 2020-01-02 03:35:24.000 423 99324 49873.5 4987350 423 99324 49873.5 4987350 -32747 32391 4653.66 465366 -128 123 -0.42 -42 +424 101 10414 99325 1.27327 298.27327 149.77327 14977.32732 1.27327 298.2733 149.77327 14977.32727 1.27327 298.27327 149.7732699999999 14977.32700 2020-01-01 2020-01-02 2020-01-01 00:07:04 2020-01-02 03:35:25 2020-01-01 00:07:04.000 2020-01-02 03:35:25.000 424 99325 49874.5 4987450 424 99325 49874.5 4987450 -32746 32392 4654.66 465466 -127 124 0.58 58 +425 101 10415 99326 1.27627 298.27627 149.77627 14977.62762 1.27627 298.27628 149.77627 14977.62756 1.27627 298.27627 149.77627000000007 14977.62700 2020-01-01 2020-01-02 2020-01-01 00:07:05 2020-01-02 03:35:26 2020-01-01 00:07:05.000 2020-01-02 03:35:26.000 425 99326 49875.5 4987550 425 99326 49875.5 4987550 -32745 32393 4655.66 465566 -126 125 1.58 158 +426 101 10416 99327 1.27927 298.27927 149.77927 14977.92792 1.27927 298.27927 149.77927 14977.92787 1.27927 298.27927 149.77926999999988 14977.92700 2020-01-01 2020-01-02 2020-01-01 00:07:06 2020-01-02 03:35:27 2020-01-01 00:07:06.000 2020-01-02 03:35:27.000 426 99327 49876.5 4987650 426 99327 49876.5 4987650 -32744 32394 4656.66 465666 -125 126 2.58 258 +427 101 10417 99328 1.28228 298.28228 149.78228 14978.22822 1.28228 298.2823 149.78228 14978.22849 1.28228 298.28228 149.78227999999996 14978.22800 2020-01-01 2020-01-02 2020-01-01 00:07:07 2020-01-02 03:35:28 2020-01-01 00:07:07.000 2020-01-02 03:35:28.000 427 99328 49877.5 4987750 427 99328 49877.5 4987750 -32743 32395 4657.66 465766 -124 127 3.58 358 428 101 10418 99329 1.28528 298.28528 149.78528 14978.52852 1.28528 298.28528 149.78528 14978.52815 1.28528 298.28528 149.78528000000003 14978.52800 2020-01-01 2020-01-02 2020-01-01 00:07:08 2020-01-02 03:35:29 2020-01-01 00:07:08.000 2020-01-02 03:35:29.000 428 99329 49878.5 4987850 428 99329 49878.5 4987850 -32742 32396 4658.66 465866 -128 127 2.02 202 -429 101 10419 99330 1.28828 298.28828 149.78828 14978.82882 1.28828 298.2883 149.78828 14978.8289 1.28828 298.28828 149.78828000000013 14978.82800 2020-01-01 2020-01-02 2020-01-01 00:07:09 2020-01-02 03:35:30 2020-01-01 00:07:09.000 2020-01-02 03:35:30.000 429 99330 49879.5 4987950 429 99330 49879.5 4987950 -32741 32397 4659.66 465966 -128 127 0.46 46 -43 102 10033 99943 0.12912 300.12912 150.12912 15163.04204 0.12912 300.12912 150.12912 15163.04211 0.12912 300.12912 150.12911999999972 15163.04112 2020-01-01 2020-01-02 2020-01-01 00:00:43 2020-01-02 03:45:43 2020-01-01 00:00:43.000 2020-01-02 03:45:43.000 43 99943 49993 5049293 43 99943 49993 5049293 -32526 32409 4572.009900990099 461773 -128 124 -3.0396039603960396 -307 -430 101 10420 99331 1.29129 298.29129 149.79129 14979.12912 1.29129 298.2913 149.79129 14979.12904 1.29129 298.29129 149.79128999999983 14979.12900 2020-01-01 2020-01-02 2020-01-01 00:07:10 2020-01-02 03:35:31 2020-01-01 00:07:10.000 2020-01-02 03:35:31.000 430 99331 49880.5 4988050 430 99331 49880.5 4988050 -32740 32398 4660.66 466066 -128 124 -1.1 -110 -431 101 10421 99332 1.29429 298.29429 149.79429 14979.42942 1.29429 298.29428 149.79429 14979.42933 1.29429 298.29429 149.79428999999985 14979.42900 2020-01-01 2020-01-02 2020-01-01 00:07:11 2020-01-02 03:35:32 2020-01-01 00:07:11.000 2020-01-02 03:35:32.000 431 99332 49881.5 4988150 431 99332 49881.5 4988150 -32739 32399 4661.66 466166 -127 125 -0.1 -10 -432 101 10422 99333 1.29729 298.29729 149.79729 14979.72972 1.29729 298.2973 149.79729 14979.72996 1.29729 298.29729 149.7972900000003 14979.72900 2020-01-01 2020-01-02 2020-01-01 00:07:12 2020-01-02 03:35:33 2020-01-01 00:07:12.000 2020-01-02 03:35:33.000 432 99333 49882.5 4988250 432 99333 49882.5 4988250 -32738 32400 4662.66 466266 -126 126 0.9 90 -433 101 10423 99334 1.3003 298.3003 149.8003 14980.03003 1.3003 298.3003 149.80029 14980.02962 1.30030 298.30030 149.80030000000016 14980.03000 2020-01-01 2020-01-02 2020-01-01 00:07:13 2020-01-02 03:35:34 2020-01-01 00:07:13.000 2020-01-02 03:35:34.000 433 99334 49883.5 4988350 433 99334 49883.5 4988350 -32737 32401 4663.66 466366 -125 127 1.9 190 -434 101 10424 99335 1.3033 298.3033 149.8033 14980.33033 1.3033 298.3033 149.8033 14980.33037 1.30330 298.30330 149.80329999999972 14980.33000 2020-01-01 2020-01-02 2020-01-01 00:07:14 2020-01-02 03:35:35 2020-01-01 00:07:14.000 2020-01-02 03:35:35.000 434 99335 49884.5 4988450 434 99335 49884.5 4988450 -32736 32402 4664.66 466466 -128 127 0.34 34 -435 101 10425 99336 1.3063 298.3063 149.8063 14980.63063 1.3063 298.3063 149.8063 14980.63051 1.30630 298.30630 149.80630000000016 14980.63000 2020-01-01 2020-01-02 2020-01-01 00:07:15 2020-01-02 03:35:36 2020-01-01 00:07:15.000 2020-01-02 03:35:36.000 435 99336 49885.5 4988550 435 99336 49885.5 4988550 -32735 32403 4665.66 466566 -128 127 -1.22 -122 -436 101 10426 99337 1.3093 298.3093 149.8093 14980.93093 1.3093 298.3093 149.8093 14980.93084 1.30930 298.30930 149.80930000000018 14980.93000 2020-01-01 2020-01-02 2020-01-01 00:07:16 2020-01-02 03:35:37 2020-01-01 00:07:16.000 2020-01-02 03:35:37.000 436 99337 49886.5 4988650 436 99337 49886.5 4988650 -32734 32404 4666.66 466666 -128 123 -2.78 -278 -437 101 10427 99338 1.31231 298.31231 149.81231 14981.23123 1.31231 298.31232 149.81231 14981.23143 1.31231 298.31231 149.81231000000008 14981.23100 2020-01-01 2020-01-02 2020-01-01 00:07:17 2020-01-02 03:35:38 2020-01-01 00:07:17.000 2020-01-02 03:35:38.000 437 99338 49887.5 4988750 437 99338 49887.5 4988750 -32733 32405 4667.66 466766 -127 124 -1.78 -178 +429 101 10419 99330 1.28828 298.28828 149.78828 14978.82882 1.28828 298.2883 149.78828 14978.8289 1.28828 298.28828 149.78828000000001 14978.82800 2020-01-01 2020-01-02 2020-01-01 00:07:09 2020-01-02 03:35:30 2020-01-01 00:07:09.000 2020-01-02 03:35:30.000 429 99330 49879.5 4987950 429 99330 49879.5 4987950 -32741 32397 4659.66 465966 -128 127 0.46 46 +43 102 10033 99943 0.12912 300.12912 150.12912 15163.04204 0.12912 300.12912 150.12912 15163.04211 0.12912 300.12912 150.1291199999999 15163.04112 2020-01-01 2020-01-02 2020-01-01 00:00:43 2020-01-02 03:45:43 2020-01-01 00:00:43.000 2020-01-02 03:45:43.000 43 99943 49993 5049293 43 99943 49993 5049293 -32526 32409 4572.009900990099 461773 -128 124 -3.0396039603960396 -307 +430 101 10420 99331 1.29129 298.29129 149.79129 14979.12912 1.29129 298.2913 149.79129 14979.12904 1.29129 298.29129 149.79128999999995 14979.12900 2020-01-01 2020-01-02 2020-01-01 00:07:10 2020-01-02 03:35:31 2020-01-01 00:07:10.000 2020-01-02 03:35:31.000 430 99331 49880.5 4988050 430 99331 49880.5 4988050 -32740 32398 4660.66 466066 -128 124 -1.1 -110 +431 101 10421 99332 1.29429 298.29429 149.79429 14979.42942 1.29429 298.29428 149.79429 14979.42933 1.29429 298.29429 149.79428999999993 14979.42900 2020-01-01 2020-01-02 2020-01-01 00:07:11 2020-01-02 03:35:32 2020-01-01 00:07:11.000 2020-01-02 03:35:32.000 431 99332 49881.5 4988150 431 99332 49881.5 4988150 -32739 32399 4661.66 466166 -127 125 -0.1 -10 +432 101 10422 99333 1.29729 298.29729 149.79729 14979.72972 1.29729 298.2973 149.79729 14979.72996 1.29729 298.29729 149.79729000000015 14979.72900 2020-01-01 2020-01-02 2020-01-01 00:07:12 2020-01-02 03:35:33 2020-01-01 00:07:12.000 2020-01-02 03:35:33.000 432 99333 49882.5 4988250 432 99333 49882.5 4988250 -32738 32400 4662.66 466266 -126 126 0.9 90 +433 101 10423 99334 1.3003 298.3003 149.8003 14980.03003 1.3003 298.3003 149.80029 14980.02962 1.30030 298.30030 149.80030000000005 14980.03000 2020-01-01 2020-01-02 2020-01-01 00:07:13 2020-01-02 03:35:34 2020-01-01 00:07:13.000 2020-01-02 03:35:34.000 433 99334 49883.5 4988350 433 99334 49883.5 4988350 -32737 32401 4663.66 466366 -125 127 1.9 190 +434 101 10424 99335 1.3033 298.3033 149.8033 14980.33033 1.3033 298.3033 149.8033 14980.33037 1.30330 298.30330 149.80329999999987 14980.33000 2020-01-01 2020-01-02 2020-01-01 00:07:14 2020-01-02 03:35:35 2020-01-01 00:07:14.000 2020-01-02 03:35:35.000 434 99335 49884.5 4988450 434 99335 49884.5 4988450 -32736 32402 4664.66 466466 -128 127 0.34 34 +435 101 10425 99336 1.3063 298.3063 149.8063 14980.63063 1.3063 298.3063 149.8063 14980.63051 1.30630 298.30630 149.80630000000008 14980.63000 2020-01-01 2020-01-02 2020-01-01 00:07:15 2020-01-02 03:35:36 2020-01-01 00:07:15.000 2020-01-02 03:35:36.000 435 99336 49885.5 4988550 435 99336 49885.5 4988550 -32735 32403 4665.66 466566 -128 127 -1.22 -122 +436 101 10426 99337 1.3093 298.3093 149.8093 14980.93093 1.3093 298.3093 149.8093 14980.93084 1.30930 298.30930 149.80930000000006 14980.93000 2020-01-01 2020-01-02 2020-01-01 00:07:16 2020-01-02 03:35:37 2020-01-01 00:07:16.000 2020-01-02 03:35:37.000 436 99337 49886.5 4988650 436 99337 49886.5 4988650 -32734 32404 4666.66 466666 -128 123 -2.78 -278 +437 101 10427 99338 1.31231 298.31231 149.81231 14981.23123 1.31231 298.31232 149.81231 14981.23143 1.31231 298.31231 149.81231 14981.23100 2020-01-01 2020-01-02 2020-01-01 00:07:17 2020-01-02 03:35:38 2020-01-01 00:07:17.000 2020-01-02 03:35:38.000 437 99338 49887.5 4988750 437 99338 49887.5 4988750 -32733 32405 4667.66 466766 -127 124 -1.78 -178 438 101 10428 99339 1.31531 298.31531 149.81531 14981.53153 1.31531 298.3153 149.81531 14981.53173 1.31531 298.31531 149.81530999999998 14981.53100 2020-01-01 2020-01-02 2020-01-01 00:07:18 2020-01-02 03:35:39 2020-01-01 00:07:18.000 2020-01-02 03:35:39.000 438 99339 49888.5 4988850 438 99339 49888.5 4988850 -32732 32406 4668.66 466866 -126 125 -0.78 -78 -439 101 10429 99340 1.31831 298.31831 149.81831 14981.83183 1.31831 298.31833 149.81831 14981.83184 1.31831 298.31831 149.81831000000005 14981.83100 2020-01-01 2020-01-02 2020-01-01 00:07:19 2020-01-02 03:35:40 2020-01-01 00:07:19.000 2020-01-02 03:35:40.000 439 99340 49889.5 4988950 439 99340 49889.5 4988950 -32731 32407 4669.66 466966 -125 126 0.22 22 +439 101 10429 99340 1.31831 298.31831 149.81831 14981.83183 1.31831 298.31833 149.81831 14981.83184 1.31831 298.31831 149.81831000000008 14981.83100 2020-01-01 2020-01-02 2020-01-01 00:07:19 2020-01-02 03:35:40 2020-01-01 00:07:19.000 2020-01-02 03:35:40.000 439 99340 49889.5 4988950 439 99340 49889.5 4988950 -32731 32407 4669.66 466966 -125 126 0.22 22 44 102 10034 99944 0.13213 300.13213 150.13213 15163.34534 0.13213 300.13214 150.13213 15163.34525 0.13213 300.13213 150.13213 15163.34513 2020-01-01 2020-01-02 2020-01-01 00:00:44 2020-01-02 03:45:44 2020-01-01 00:00:44.000 2020-01-02 03:45:44.000 44 99944 49994 5049394 44 99944 49994 5049394 -32525 32410 4573.009900990099 461874 -127 125 -2.0396039603960396 -206 -440 101 10430 99341 1.32132 298.32132 149.82132 14982.13213 1.32132 298.32132 149.82131 14982.13197 1.32132 298.32132 149.82131999999987 14982.13200 2020-01-01 2020-01-02 2020-01-01 00:07:20 2020-01-02 03:35:41 2020-01-01 00:07:20.000 2020-01-02 03:35:41.000 440 99341 49890.5 4989050 440 99341 49890.5 4989050 -32730 32408 4670.66 467066 -124 127 1.22 122 -441 101 10431 99342 1.32432 298.32432 149.82432 14982.43243 1.32432 298.3243 149.82432 14982.4323 1.32432 298.32432 149.82431999999994 14982.43200 2020-01-01 2020-01-02 2020-01-01 00:07:21 2020-01-02 03:35:42 2020-01-01 00:07:21.000 2020-01-02 03:35:42.000 441 99342 49891.5 4989150 441 99342 49891.5 4989150 -32729 32409 4671.66 467166 -128 127 -0.34 -34 -442 101 10432 99343 1.32732 298.32732 149.82732 14982.73273 1.32732 298.32733 149.82732 14982.7329 1.32732 298.32732 149.8273200000001 14982.73200 2020-01-01 2020-01-02 2020-01-01 00:07:22 2020-01-02 03:35:43 2020-01-01 00:07:22.000 2020-01-02 03:35:43.000 442 99343 49892.5 4989250 442 99343 49892.5 4989250 -32728 32410 4672.66 467266 -128 123 -1.9 -190 -443 101 10433 99344 1.33033 298.33033 149.83033 14983.03303 1.33033 298.33032 149.83033 14983.03319 1.33033 298.33033 149.83033 14983.03300 2020-01-01 2020-01-02 2020-01-01 00:07:23 2020-01-02 03:35:44 2020-01-01 00:07:23.000 2020-01-02 03:35:44.000 443 99344 49893.5 4989350 443 99344 49893.5 4989350 -32727 32411 4673.66 467366 -127 124 -0.9 -90 -444 101 10434 99345 1.33333 298.33333 149.83333 14983.33333 1.33333 298.33334 149.83333 14983.33331 1.33333 298.33333 149.83333 14983.33300 2020-01-01 2020-01-02 2020-01-01 00:07:24 2020-01-02 03:35:45 2020-01-01 00:07:24.000 2020-01-02 03:35:45.000 444 99345 49894.5 4989450 444 99345 49894.5 4989450 -32726 32412 4674.66 467466 -126 125 0.1 10 +440 101 10430 99341 1.32132 298.32132 149.82132 14982.13213 1.32132 298.32132 149.82131 14982.13197 1.32132 298.32132 149.82131999999973 14982.13200 2020-01-01 2020-01-02 2020-01-01 00:07:20 2020-01-02 03:35:41 2020-01-01 00:07:20.000 2020-01-02 03:35:41.000 440 99341 49890.5 4989050 440 99341 49890.5 4989050 -32730 32408 4670.66 467066 -124 127 1.22 122 +441 101 10431 99342 1.32432 298.32432 149.82432 14982.43243 1.32432 298.3243 149.82432 14982.4323 1.32432 298.32432 149.82431999999983 14982.43200 2020-01-01 2020-01-02 2020-01-01 00:07:21 2020-01-02 03:35:42 2020-01-01 00:07:21.000 2020-01-02 03:35:42.000 441 99342 49891.5 4989150 441 99342 49891.5 4989150 -32729 32409 4671.66 467166 -128 127 -0.34 -34 +442 101 10432 99343 1.32732 298.32732 149.82732 14982.73273 1.32732 298.32733 149.82732 14982.7329 1.32732 298.32732 149.82732000000019 14982.73200 2020-01-01 2020-01-02 2020-01-01 00:07:22 2020-01-02 03:35:43 2020-01-01 00:07:22.000 2020-01-02 03:35:43.000 442 99343 49892.5 4989250 442 99343 49892.5 4989250 -32728 32410 4672.66 467266 -128 123 -1.9 -190 +443 101 10433 99344 1.33033 298.33033 149.83033 14983.03303 1.33033 298.33032 149.83033 14983.03319 1.33033 298.33033 149.8303300000001 14983.03300 2020-01-01 2020-01-02 2020-01-01 00:07:23 2020-01-02 03:35:44 2020-01-01 00:07:23.000 2020-01-02 03:35:44.000 443 99344 49893.5 4989350 443 99344 49893.5 4989350 -32727 32411 4673.66 467366 -127 124 -0.9 -90 +444 101 10434 99345 1.33333 298.33333 149.83333 14983.33333 1.33333 298.33334 149.83333 14983.33331 1.33333 298.33333 149.83332999999996 14983.33300 2020-01-01 2020-01-02 2020-01-01 00:07:24 2020-01-02 03:35:45 2020-01-01 00:07:24.000 2020-01-02 03:35:45.000 444 99345 49894.5 4989450 444 99345 49894.5 4989450 -32726 32412 4674.66 467466 -126 125 0.1 10 445 101 10435 99346 1.33633 298.33633 149.83633 14983.63363 1.33633 298.33633 149.83633 14983.63348 1.33633 298.33633 149.83633000000006 14983.63300 2020-01-01 2020-01-02 2020-01-01 00:07:25 2020-01-02 03:35:46 2020-01-01 00:07:25.000 2020-01-02 03:35:46.000 445 99346 49895.5 4989550 445 99346 49895.5 4989550 -32725 32413 4675.66 467566 -125 126 1.1 110 -446 101 10436 99347 1.33933 298.33933 149.83933 14983.93393 1.33933 298.33932 149.83933 14983.93378 1.33933 298.33933 149.83933000000002 14983.93300 2020-01-01 2020-01-02 2020-01-01 00:07:26 2020-01-02 03:35:47 2020-01-01 00:07:26.000 2020-01-02 03:35:47.000 446 99347 49896.5 4989650 446 99347 49896.5 4989650 -32724 32414 4676.66 467666 -124 127 2.1 210 -447 101 10437 99348 1.34234 298.34234 149.84234 14984.23423 1.34234 298.34235 149.84234 14984.23437 1.34234 298.34234 149.84233999999995 14984.23400 2020-01-01 2020-01-02 2020-01-01 00:07:27 2020-01-02 03:35:48 2020-01-01 00:07:27.000 2020-01-02 03:35:48.000 447 99348 49897.5 4989750 447 99348 49897.5 4989750 -32723 32415 4677.66 467766 -128 127 0.54 54 -448 101 10438 99349 1.34534 298.34534 149.84534 14984.53453 1.34534 298.34534 149.84534 14984.53466 1.34534 298.34534 149.84533999999994 14984.53400 2020-01-01 2020-01-02 2020-01-01 00:07:28 2020-01-02 03:35:49 2020-01-01 00:07:28.000 2020-01-02 03:35:49.000 448 99349 49898.5 4989850 448 99349 49898.5 4989850 -32722 32416 4678.66 467866 -128 123 -1.02 -102 -449 101 10439 99350 1.34834 298.34834 149.84834 14984.83483 1.34834 298.34836 149.84834 14984.83478 1.34834 298.34834 149.84834000000015 14984.83400 2020-01-01 2020-01-02 2020-01-01 00:07:29 2020-01-02 03:35:50 2020-01-01 00:07:29.000 2020-01-02 03:35:50.000 449 99350 49899.5 4989950 449 99350 49899.5 4989950 -32721 32417 4679.66 467966 -127 124 -0.02 -2 -45 102 10035 99945 0.13513 300.13513 150.13513 15163.64864 0.13513 300.13513 150.13513 15163.64839 0.13513 300.13513 150.13513000000003 15163.64813 2020-01-01 2020-01-02 2020-01-01 00:00:45 2020-01-02 03:45:45 2020-01-01 00:00:45.000 2020-01-02 03:45:45.000 45 99945 49995 5049495 45 99945 49995 5049495 -32524 32411 4574.009900990099 461975 -126 126 -1.0396039603960396 -105 -450 101 10440 99351 1.35135 298.35135 149.85135 14985.13513 1.35135 298.35135 149.85134 14985.13495 1.35135 298.35135 149.85135000000008 14985.13500 2020-01-01 2020-01-02 2020-01-01 00:07:30 2020-01-02 03:35:51 2020-01-01 00:07:30.000 2020-01-02 03:35:51.000 450 99351 49900.5 4990050 450 99351 49900.5 4990050 -32720 32418 4680.66 468066 -126 125 0.98 98 -451 101 10441 99352 1.35435 298.35435 149.85435 14985.43543 1.35435 298.35434 149.85435 14985.43525 1.35435 298.35435 149.8543499999999 14985.43500 2020-01-01 2020-01-02 2020-01-01 00:07:31 2020-01-02 03:35:52 2020-01-01 00:07:31.000 2020-01-02 03:35:52.000 451 99352 49901.5 4990150 451 99352 49901.5 4990150 -32719 32419 4681.66 468166 -125 126 1.98 198 -452 101 10442 99353 1.35735 298.35735 149.85735 14985.73573 1.35735 298.35736 149.85736 14985.736 1.35735 298.35735 149.8573500000001 14985.73500 2020-01-01 2020-01-02 2020-01-01 00:07:32 2020-01-02 03:35:53 2020-01-01 00:07:32.000 2020-01-02 03:35:53.000 452 99353 49902.5 4990250 452 99353 49902.5 4990250 -32718 32420 4682.66 468266 -124 127 2.98 298 -453 101 10443 99354 1.36036 298.36036 149.86036 14986.03603 1.36036 298.36035 149.86036 14986.03614 1.36036 298.36036 149.86036000000004 14986.03600 2020-01-01 2020-01-02 2020-01-01 00:07:33 2020-01-02 03:35:54 2020-01-01 00:07:33.000 2020-01-02 03:35:54.000 453 99354 49903.5 4990350 453 99354 49903.5 4990350 -32717 32421 4683.66 468366 -128 127 1.42 142 -454 101 10444 99355 1.36336 298.36336 149.86336 14986.33633 1.36336 298.36337 149.86336 14986.33629 1.36336 298.36336 149.86335999999994 14986.33600 2020-01-01 2020-01-02 2020-01-01 00:07:34 2020-01-02 03:35:55 2020-01-01 00:07:34.000 2020-01-02 03:35:55.000 454 99355 49904.5 4990450 454 99355 49904.5 4990450 -32716 32422 4684.66 468466 -128 127 -0.14 -14 +446 101 10436 99347 1.33933 298.33933 149.83933 14983.93393 1.33933 298.33932 149.83933 14983.93378 1.33933 298.33933 149.8393300000001 14983.93300 2020-01-01 2020-01-02 2020-01-01 00:07:26 2020-01-02 03:35:47 2020-01-01 00:07:26.000 2020-01-02 03:35:47.000 446 99347 49896.5 4989650 446 99347 49896.5 4989650 -32724 32414 4676.66 467666 -124 127 2.1 210 +447 101 10437 99348 1.34234 298.34234 149.84234 14984.23423 1.34234 298.34235 149.84234 14984.23437 1.34234 298.34234 149.84233999999984 14984.23400 2020-01-01 2020-01-02 2020-01-01 00:07:27 2020-01-02 03:35:48 2020-01-01 00:07:27.000 2020-01-02 03:35:48.000 447 99348 49897.5 4989750 447 99348 49897.5 4989750 -32723 32415 4677.66 467766 -128 127 0.54 54 +448 101 10438 99349 1.34534 298.34534 149.84534 14984.53453 1.34534 298.34534 149.84534 14984.53466 1.34534 298.34534 149.84533999999988 14984.53400 2020-01-01 2020-01-02 2020-01-01 00:07:28 2020-01-02 03:35:49 2020-01-01 00:07:28.000 2020-01-02 03:35:49.000 448 99349 49898.5 4989850 448 99349 49898.5 4989850 -32722 32416 4678.66 467866 -128 123 -1.02 -102 +449 101 10439 99350 1.34834 298.34834 149.84834 14984.83483 1.34834 298.34836 149.84834 14984.83478 1.34834 298.34834 149.8483400000001 14984.83400 2020-01-01 2020-01-02 2020-01-01 00:07:29 2020-01-02 03:35:50 2020-01-01 00:07:29.000 2020-01-02 03:35:50.000 449 99350 49899.5 4989950 449 99350 49899.5 4989950 -32721 32417 4679.66 467966 -127 124 -0.02 -2 +45 102 10035 99945 0.13513 300.13513 150.13513 15163.64864 0.13513 300.13513 150.13513 15163.64839 0.13513 300.13513 150.13513000000006 15163.64813 2020-01-01 2020-01-02 2020-01-01 00:00:45 2020-01-02 03:45:45 2020-01-01 00:00:45.000 2020-01-02 03:45:45.000 45 99945 49995 5049495 45 99945 49995 5049495 -32524 32411 4574.009900990099 461975 -126 126 -1.0396039603960396 -105 +450 101 10440 99351 1.35135 298.35135 149.85135 14985.13513 1.35135 298.35135 149.85134 14985.13495 1.35135 298.35135 149.8513500000002 14985.13500 2020-01-01 2020-01-02 2020-01-01 00:07:30 2020-01-02 03:35:51 2020-01-01 00:07:30.000 2020-01-02 03:35:51.000 450 99351 49900.5 4990050 450 99351 49900.5 4990050 -32720 32418 4680.66 468066 -126 125 0.98 98 +451 101 10441 99352 1.35435 298.35435 149.85435 14985.43543 1.35435 298.35434 149.85435 14985.43525 1.35435 298.35435 149.85434999999976 14985.43500 2020-01-01 2020-01-02 2020-01-01 00:07:31 2020-01-02 03:35:52 2020-01-01 00:07:31.000 2020-01-02 03:35:52.000 451 99352 49901.5 4990150 451 99352 49901.5 4990150 -32719 32419 4681.66 468166 -125 126 1.98 198 +452 101 10442 99353 1.35735 298.35735 149.85735 14985.73573 1.35735 298.35736 149.85736 14985.736 1.35735 298.35735 149.8573500000002 14985.73500 2020-01-01 2020-01-02 2020-01-01 00:07:32 2020-01-02 03:35:53 2020-01-01 00:07:32.000 2020-01-02 03:35:53.000 452 99353 49902.5 4990250 452 99353 49902.5 4990250 -32718 32420 4682.66 468266 -124 127 2.98 298 +453 101 10443 99354 1.36036 298.36036 149.86036 14986.03603 1.36036 298.36035 149.86036 14986.03614 1.36036 298.36036 149.8603600000001 14986.03600 2020-01-01 2020-01-02 2020-01-01 00:07:33 2020-01-02 03:35:54 2020-01-01 00:07:33.000 2020-01-02 03:35:54.000 453 99354 49903.5 4990350 453 99354 49903.5 4990350 -32717 32421 4683.66 468366 -128 127 1.42 142 +454 101 10444 99355 1.36336 298.36336 149.86336 14986.33633 1.36336 298.36337 149.86336 14986.33629 1.36336 298.36336 149.86335999999986 14986.33600 2020-01-01 2020-01-02 2020-01-01 00:07:34 2020-01-02 03:35:55 2020-01-01 00:07:34.000 2020-01-02 03:35:55.000 454 99355 49904.5 4990450 454 99355 49904.5 4990450 -32716 32422 4684.66 468466 -128 127 -0.14 -14 455 101 10445 99356 1.36636 298.36636 149.86636 14986.63663 1.36636 298.36636 149.86636 14986.63641 1.36636 298.36636 149.86636 14986.63600 2020-01-01 2020-01-02 2020-01-01 00:07:35 2020-01-02 03:35:56 2020-01-01 00:07:35.000 2020-01-02 03:35:56.000 455 99356 49905.5 4990550 455 99356 49905.5 4990550 -32715 32423 4685.66 468566 -128 124 -1.7 -170 -456 101 10446 99357 1.36936 298.36936 149.86936 14986.93693 1.36936 298.36935 149.86936 14986.93672 1.36936 298.36936 149.86936000000003 14986.93600 2020-01-01 2020-01-02 2020-01-01 00:07:36 2020-01-02 03:35:57 2020-01-01 00:07:36.000 2020-01-02 03:35:57.000 456 99357 49906.5 4990650 456 99357 49906.5 4990650 -32714 32424 4686.66 468666 -127 125 -0.7 -70 -457 101 10447 99358 1.37237 298.37237 149.87237 14987.23723 1.37237 298.37238 149.87237 14987.23747 1.37237 298.37237 149.8723699999999 14987.23700 2020-01-01 2020-01-02 2020-01-01 00:07:37 2020-01-02 03:35:58 2020-01-01 00:07:37.000 2020-01-02 03:35:58.000 457 99358 49907.5 4990750 457 99358 49907.5 4990750 -32713 32425 4687.66 468766 -126 126 0.3 30 -458 101 10448 99359 1.37537 298.37537 149.87537 14987.53753 1.37537 298.37537 149.87537 14987.5376 1.37537 298.37537 149.87536999999992 14987.53700 2020-01-01 2020-01-02 2020-01-01 00:07:38 2020-01-02 03:35:59 2020-01-01 00:07:38.000 2020-01-02 03:35:59.000 458 99359 49908.5 4990850 458 99359 49908.5 4990850 -32712 32426 4688.66 468866 -125 127 1.3 130 -459 101 10449 99360 1.37837 298.37837 149.87837 14987.83783 1.37837 298.3784 149.87837 14987.83775 1.37837 298.37837 149.87837000000007 14987.83700 2020-01-01 2020-01-02 2020-01-01 00:07:39 2020-01-02 03:36:00 2020-01-01 00:07:39.000 2020-01-02 03:36:00.000 459 99360 49909.5 4990950 459 99360 49909.5 4990950 -32711 32427 4689.66 468966 -128 127 -0.26 -26 -46 102 10036 99946 0.13813 300.13813 150.13813 15163.95195 0.13813 300.13815 150.13814 15163.95214 0.13813 300.13813 150.13812999999993 15163.95113 2020-01-01 2020-01-02 2020-01-01 00:00:46 2020-01-02 03:45:46 2020-01-01 00:00:46.000 2020-01-02 03:45:46.000 46 99946 49996 5049596 46 99946 49996 5049596 -32523 32412 4575.009900990099 462076 -125 127 -0.039603960396039604 -4 -460 101 10450 99361 1.38138 298.38138 149.88138 14988.13813 1.38138 298.38138 149.88137 14988.13789 1.38138 298.38138 149.88138000000004 14988.13800 2020-01-01 2020-01-02 2020-01-01 00:07:40 2020-01-02 03:36:01 2020-01-01 00:07:40.000 2020-01-02 03:36:01.000 460 99361 49910.5 4991050 460 99361 49910.5 4991050 -32710 32428 4690.66 469066 -128 127 -1.82 -182 -461 101 10451 99362 1.38438 298.38438 149.88438 14988.43843 1.38438 298.3844 149.88438 14988.43864 1.38438 298.38438 149.88438000000002 14988.43800 2020-01-01 2020-01-02 2020-01-01 00:07:41 2020-01-02 03:36:02 2020-01-01 00:07:41.000 2020-01-02 03:36:02.000 461 99362 49911.5 4991150 461 99362 49911.5 4991150 -32709 32429 4691.66 469166 -128 123 -3.38 -338 -462 101 10452 99363 1.38738 298.38738 149.88738 14988.73873 1.38738 298.3874 149.88738 14988.73894 1.38738 298.38738 149.88738000000006 14988.73800 2020-01-01 2020-01-02 2020-01-01 00:07:42 2020-01-02 03:36:03 2020-01-01 00:07:42.000 2020-01-02 03:36:03.000 462 99363 49912.5 4991250 462 99363 49912.5 4991250 -32708 32430 4692.66 469266 -127 124 -2.38 -238 +456 101 10446 99357 1.36936 298.36936 149.86936 14986.93693 1.36936 298.36935 149.86936 14986.93672 1.36936 298.36936 149.8693600000001 14986.93600 2020-01-01 2020-01-02 2020-01-01 00:07:36 2020-01-02 03:35:57 2020-01-01 00:07:36.000 2020-01-02 03:35:57.000 456 99357 49906.5 4990650 456 99357 49906.5 4990650 -32714 32424 4686.66 468666 -127 125 -0.7 -70 +457 101 10447 99358 1.37237 298.37237 149.87237 14987.23723 1.37237 298.37238 149.87237 14987.23747 1.37237 298.37237 149.87236999999976 14987.23700 2020-01-01 2020-01-02 2020-01-01 00:07:37 2020-01-02 03:35:58 2020-01-01 00:07:37.000 2020-01-02 03:35:58.000 457 99358 49907.5 4990750 457 99358 49907.5 4990750 -32713 32425 4687.66 468766 -126 126 0.3 30 +458 101 10448 99359 1.37537 298.37537 149.87537 14987.53753 1.37537 298.37537 149.87537 14987.5376 1.37537 298.37537 149.87536999999986 14987.53700 2020-01-01 2020-01-02 2020-01-01 00:07:38 2020-01-02 03:35:59 2020-01-01 00:07:38.000 2020-01-02 03:35:59.000 458 99359 49908.5 4990850 458 99359 49908.5 4990850 -32712 32426 4688.66 468866 -125 127 1.3 130 +459 101 10449 99360 1.37837 298.37837 149.87837 14987.83783 1.37837 298.3784 149.87837 14987.83775 1.37837 298.37837 149.87837000000022 14987.83700 2020-01-01 2020-01-02 2020-01-01 00:07:39 2020-01-02 03:36:00 2020-01-01 00:07:39.000 2020-01-02 03:36:00.000 459 99360 49909.5 4990950 459 99360 49909.5 4990950 -32711 32427 4689.66 468966 -128 127 -0.26 -26 +46 102 10036 99946 0.13813 300.13813 150.13813 15163.95195 0.13813 300.13815 150.13814 15163.95214 0.13813 300.13813 150.13812999999988 15163.95113 2020-01-01 2020-01-02 2020-01-01 00:00:46 2020-01-02 03:45:46 2020-01-01 00:00:46.000 2020-01-02 03:45:46.000 46 99946 49996 5049596 46 99946 49996 5049596 -32523 32412 4575.009900990099 462076 -125 127 -0.039603960396039604 -4 +460 101 10450 99361 1.38138 298.38138 149.88138 14988.13813 1.38138 298.38138 149.88137 14988.13789 1.38138 298.38138 149.88138000000012 14988.13800 2020-01-01 2020-01-02 2020-01-01 00:07:40 2020-01-02 03:36:01 2020-01-01 00:07:40.000 2020-01-02 03:36:01.000 460 99361 49910.5 4991050 460 99361 49910.5 4991050 -32710 32428 4690.66 469066 -128 127 -1.82 -182 +461 101 10451 99362 1.38438 298.38438 149.88438 14988.43843 1.38438 298.3844 149.88438 14988.43864 1.38438 298.38438 149.88438 14988.43800 2020-01-01 2020-01-02 2020-01-01 00:07:41 2020-01-02 03:36:02 2020-01-01 00:07:41.000 2020-01-02 03:36:02.000 461 99362 49911.5 4991150 461 99362 49911.5 4991150 -32709 32429 4691.66 469166 -128 123 -3.38 -338 +462 101 10452 99363 1.38738 298.38738 149.88738 14988.73873 1.38738 298.3874 149.88738 14988.73894 1.38738 298.38738 149.8873800000001 14988.73800 2020-01-01 2020-01-02 2020-01-01 00:07:42 2020-01-02 03:36:03 2020-01-01 00:07:42.000 2020-01-02 03:36:03.000 462 99363 49912.5 4991250 462 99363 49912.5 4991250 -32708 32430 4692.66 469266 -127 124 -2.38 -238 463 101 10453 99364 1.39039 298.39039 149.89039 14989.03903 1.39039 298.39038 149.89039 14989.03907 1.39039 298.39039 149.89039 14989.03900 2020-01-01 2020-01-02 2020-01-01 00:07:43 2020-01-02 03:36:04 2020-01-01 00:07:43.000 2020-01-02 03:36:04.000 463 99364 49913.5 4991350 463 99364 49913.5 4991350 -32707 32431 4693.66 469366 -126 125 -1.38 -138 -464 101 10454 99365 1.39339 298.39339 149.89339 14989.33933 1.39339 298.3934 149.89339 14989.33922 1.39339 298.39339 149.89338999999998 14989.33900 2020-01-01 2020-01-02 2020-01-01 00:07:44 2020-01-02 03:36:05 2020-01-01 00:07:44.000 2020-01-02 03:36:05.000 464 99365 49914.5 4991450 464 99365 49914.5 4991450 -32706 32432 4694.66 469466 -125 126 -0.38 -38 +464 101 10454 99365 1.39339 298.39339 149.89339 14989.33933 1.39339 298.3934 149.89339 14989.33922 1.39339 298.39339 149.89338999999987 14989.33900 2020-01-01 2020-01-02 2020-01-01 00:07:44 2020-01-02 03:36:05 2020-01-01 00:07:44.000 2020-01-02 03:36:05.000 464 99365 49914.5 4991450 464 99365 49914.5 4991450 -32706 32432 4694.66 469466 -125 126 -0.38 -38 465 101 10455 99366 1.39639 298.39639 149.89639 14989.63963 1.39639 298.3964 149.89639 14989.63936 1.39639 298.39639 149.8963899999999 14989.63900 2020-01-01 2020-01-02 2020-01-01 00:07:45 2020-01-02 03:36:06 2020-01-01 00:07:45.000 2020-01-02 03:36:06.000 465 99366 49915.5 4991550 465 99366 49915.5 4991550 -32705 32433 4695.66 469566 -124 127 0.62 62 -466 101 10456 99367 1.39939 298.39939 149.89939 14989.93993 1.39939 298.3994 149.8994 14989.94011 1.39939 298.39939 149.89938999999998 14989.93900 2020-01-01 2020-01-02 2020-01-01 00:07:46 2020-01-02 03:36:07 2020-01-01 00:07:46.000 2020-01-02 03:36:07.000 466 99367 49916.5 4991650 466 99367 49916.5 4991650 -32704 32434 4696.66 469666 -128 127 -0.94 -94 -467 101 10457 99368 1.4024 298.4024 149.9024 14990.24024 1.4024 298.4024 149.9024 14990.24041 1.40240 298.40240 149.90240000000009 14990.24000 2020-01-01 2020-01-02 2020-01-01 00:07:47 2020-01-02 03:36:08 2020-01-01 00:07:47.000 2020-01-02 03:36:08.000 467 99368 49917.5 4991750 467 99368 49917.5 4991750 -32703 32435 4697.66 469766 -128 123 -2.5 -250 -468 101 10458 99369 1.4054 298.4054 149.9054 14990.54054 1.4054 298.4054 149.9054 14990.54058 1.40540 298.40540 149.90539999999993 14990.54000 2020-01-01 2020-01-02 2020-01-01 00:07:48 2020-01-02 03:36:09 2020-01-01 00:07:48.000 2020-01-02 03:36:09.000 468 99369 49918.5 4991850 468 99369 49918.5 4991850 -32702 32436 4698.66 469866 -127 124 -1.5 -150 -469 101 10459 99370 1.4084 298.4084 149.9084 14990.84084 1.4084 298.40842 149.9084 14990.8407 1.40840 298.40840 149.90840000000003 14990.84000 2020-01-01 2020-01-02 2020-01-01 00:07:49 2020-01-02 03:36:10 2020-01-01 00:07:49.000 2020-01-02 03:36:10.000 469 99370 49919.5 4991950 469 99370 49919.5 4991950 -32701 32437 4699.66 469966 -126 125 -0.5 -50 -47 102 10037 99947 0.14114 300.14114 150.14114 15164.25525 0.14114 300.14114 150.14114 15164.25545 0.14114 300.14114 150.14113999999995 15164.25514 2020-01-01 2020-01-02 2020-01-01 00:00:47 2020-01-02 03:45:47 2020-01-01 00:00:47.000 2020-01-02 03:45:47.000 47 99947 49997 5049697 47 99947 49997 5049697 -32522 32413 4576.009900990099 462177 -128 127 -1.5742574257425743 -159 -470 101 10460 99371 1.41141 298.41141 149.91141 14991.14114 1.41141 298.4114 149.9114 14991.14099 1.41141 298.41141 149.91141000000005 14991.14100 2020-01-01 2020-01-02 2020-01-01 00:07:50 2020-01-02 03:36:11 2020-01-01 00:07:50.000 2020-01-02 03:36:11.000 470 99371 49920.5 4992050 470 99371 49920.5 4992050 -32700 32438 4700.66 470066 -125 126 0.5 50 -471 101 10461 99372 1.41441 298.41441 149.91441 14991.44144 1.41441 298.41443 149.91441 14991.44159 1.41441 298.41441 149.91440999999995 14991.44100 2020-01-01 2020-01-02 2020-01-01 00:07:51 2020-01-02 03:36:12 2020-01-01 00:07:51.000 2020-01-02 03:36:12.000 471 99372 49921.5 4992150 471 99372 49921.5 4992150 -32699 32439 4701.66 470166 -124 127 1.5 150 -472 101 10462 99373 1.41741 298.41741 149.91741 14991.74174 1.41741 298.41742 149.91741 14991.74188 1.41741 298.41741 149.91741 14991.74100 2020-01-01 2020-01-02 2020-01-01 00:07:52 2020-01-02 03:36:13 2020-01-01 00:07:52.000 2020-01-02 03:36:13.000 472 99373 49922.5 4992250 472 99373 49922.5 4992250 -32698 32440 4702.66 470266 -128 127 -0.06 -6 -473 101 10463 99374 1.42042 298.42042 149.92042 14992.04204 1.42042 298.4204 149.92042 14992.04204 1.42042 298.42042 149.9204200000001 14992.04200 2020-01-01 2020-01-02 2020-01-01 00:07:53 2020-01-02 03:36:14 2020-01-01 00:07:53.000 2020-01-02 03:36:14.000 473 99374 49923.5 4992350 473 99374 49923.5 4992350 -32697 32441 4703.66 470366 -128 123 -1.62 -162 -474 101 10464 99375 1.42342 298.42342 149.92342 14992.34234 1.42342 298.42343 149.92342 14992.34216 1.42342 298.42342 149.9234199999999 14992.34200 2020-01-01 2020-01-02 2020-01-01 00:07:54 2020-01-02 03:36:15 2020-01-01 00:07:54.000 2020-01-02 03:36:15.000 474 99375 49924.5 4992450 474 99375 49924.5 4992450 -32696 32442 4704.66 470466 -127 124 -0.62 -62 -475 101 10465 99376 1.42642 298.42642 149.92642 14992.64264 1.42642 298.42642 149.92642 14992.64246 1.42642 298.42642 149.9264199999999 14992.64200 2020-01-01 2020-01-02 2020-01-01 00:07:55 2020-01-02 03:36:16 2020-01-01 00:07:55.000 2020-01-02 03:36:16.000 475 99376 49925.5 4992550 475 99376 49925.5 4992550 -32695 32443 4705.66 470566 -126 125 0.38 38 -476 101 10466 99377 1.42942 298.42942 149.92942 14992.94294 1.42942 298.42944 149.92943 14992.94305 1.42942 298.42942 149.9294200000001 14992.94200 2020-01-01 2020-01-02 2020-01-01 00:07:56 2020-01-02 03:36:17 2020-01-01 00:07:56.000 2020-01-02 03:36:17.000 476 99377 49926.5 4992650 476 99377 49926.5 4992650 -32694 32444 4706.66 470666 -125 126 1.38 138 -477 101 10467 99378 1.43243 298.43243 149.93243 14993.24324 1.43243 298.43243 149.93243 14993.24338 1.43243 298.43243 149.93243000000004 14993.24300 2020-01-01 2020-01-02 2020-01-01 00:07:57 2020-01-02 03:36:18 2020-01-01 00:07:57.000 2020-01-02 03:36:18.000 477 99378 49927.5 4992750 477 99378 49927.5 4992750 -32693 32445 4707.66 470766 -124 127 2.38 238 -478 101 10468 99379 1.43543 298.43543 149.93543 14993.54354 1.43543 298.43542 149.93543 14993.54352 1.43543 298.43543 149.93542999999983 14993.54300 2020-01-01 2020-01-02 2020-01-01 00:07:58 2020-01-02 03:36:19 2020-01-01 00:07:58.000 2020-01-02 03:36:19.000 478 99379 49928.5 4992850 478 99379 49928.5 4992850 -32692 32446 4708.66 470866 -128 127 0.82 82 -479 101 10469 99380 1.43843 298.43843 149.93843 14993.84384 1.43843 298.43845 149.93844 14993.84427 1.43843 298.43843 149.93843000000007 14993.84300 2020-01-01 2020-01-02 2020-01-01 00:07:59 2020-01-02 03:36:20 2020-01-01 00:07:59.000 2020-01-02 03:36:20.000 479 99380 49929.5 4992950 479 99380 49929.5 4992950 -32691 32447 4709.66 470966 -128 127 -0.74 -74 -48 102 10038 99948 0.14414 300.14414 150.14414 15164.55855 0.14414 300.14413 150.14414 15164.55863 0.14414 300.14414 150.14414000000005 15164.55814 2020-01-01 2020-01-02 2020-01-01 00:00:48 2020-01-02 03:45:48 2020-01-01 00:00:48.000 2020-01-02 03:45:48.000 48 99948 49998 5049798 48 99948 49998 5049798 -32521 32414 4577.009900990099 462278 -128 127 -3.108910891089109 -314 -480 101 10470 99381 1.44144 298.44144 149.94144 14994.14414 1.44144 298.44144 149.94143 14994.14392 1.44144 298.44144 149.94144 14994.14400 2020-01-01 2020-01-02 2020-01-01 00:08:00 2020-01-02 03:36:21 2020-01-01 00:08:00.000 2020-01-02 03:36:21.000 480 99381 49930.5 4993050 480 99381 49930.5 4993050 -32690 32448 4710.66 471066 -128 124 -2.3 -230 -481 101 10471 99382 1.44444 298.44444 149.94444 14994.44444 1.44444 298.44446 149.94444 14994.44452 1.44444 298.44444 149.94444 14994.44400 2020-01-01 2020-01-02 2020-01-01 00:08:01 2020-01-02 03:36:22 2020-01-01 00:08:01.000 2020-01-02 03:36:22.000 481 99382 49931.5 4993150 481 99382 49931.5 4993150 -32689 32449 4711.66 471166 -127 125 -1.3 -130 +466 101 10456 99367 1.39939 298.39939 149.89939 14989.93993 1.39939 298.3994 149.8994 14989.94011 1.39939 298.39939 149.89939 14989.93900 2020-01-01 2020-01-02 2020-01-01 00:07:46 2020-01-02 03:36:07 2020-01-01 00:07:46.000 2020-01-02 03:36:07.000 466 99367 49916.5 4991650 466 99367 49916.5 4991650 -32704 32434 4696.66 469666 -128 127 -0.94 -94 +467 101 10457 99368 1.4024 298.4024 149.9024 14990.24024 1.4024 298.4024 149.9024 14990.24041 1.40240 298.40240 149.90240000000023 14990.24000 2020-01-01 2020-01-02 2020-01-01 00:07:47 2020-01-02 03:36:08 2020-01-01 00:07:47.000 2020-01-02 03:36:08.000 467 99368 49917.5 4991750 467 99368 49917.5 4991750 -32703 32435 4697.66 469766 -128 123 -2.5 -250 +468 101 10458 99369 1.4054 298.4054 149.9054 14990.54054 1.4054 298.4054 149.9054 14990.54058 1.40540 298.40540 149.9053999999998 14990.54000 2020-01-01 2020-01-02 2020-01-01 00:07:48 2020-01-02 03:36:09 2020-01-01 00:07:48.000 2020-01-02 03:36:09.000 468 99369 49918.5 4991850 468 99369 49918.5 4991850 -32702 32436 4698.66 469866 -127 124 -1.5 -150 +469 101 10459 99370 1.4084 298.4084 149.9084 14990.84084 1.4084 298.40842 149.9084 14990.8407 1.40840 298.40840 149.90840000000014 14990.84000 2020-01-01 2020-01-02 2020-01-01 00:07:49 2020-01-02 03:36:10 2020-01-01 00:07:49.000 2020-01-02 03:36:10.000 469 99370 49919.5 4991950 469 99370 49919.5 4991950 -32701 32437 4699.66 469966 -126 125 -0.5 -50 +47 102 10037 99947 0.14114 300.14114 150.14114 15164.25525 0.14114 300.14114 150.14114 15164.25545 0.14114 300.14114 150.14113999999984 15164.25514 2020-01-01 2020-01-02 2020-01-01 00:00:47 2020-01-02 03:45:47 2020-01-01 00:00:47.000 2020-01-02 03:45:47.000 47 99947 49997 5049697 47 99947 49997 5049697 -32522 32413 4576.009900990099 462177 -128 127 -1.5742574257425743 -159 +470 101 10460 99371 1.41141 298.41141 149.91141 14991.14114 1.41141 298.4114 149.9114 14991.14099 1.41141 298.41141 149.91141000000013 14991.14100 2020-01-01 2020-01-02 2020-01-01 00:07:50 2020-01-02 03:36:11 2020-01-01 00:07:50.000 2020-01-02 03:36:11.000 470 99371 49920.5 4992050 470 99371 49920.5 4992050 -32700 32438 4700.66 470066 -125 126 0.5 50 +471 101 10461 99372 1.41441 298.41441 149.91441 14991.44144 1.41441 298.41443 149.91441 14991.44159 1.41441 298.41441 149.9144099999999 14991.44100 2020-01-01 2020-01-02 2020-01-01 00:07:51 2020-01-02 03:36:12 2020-01-01 00:07:51.000 2020-01-02 03:36:12.000 471 99372 49921.5 4992150 471 99372 49921.5 4992150 -32699 32439 4701.66 470166 -124 127 1.5 150 +472 101 10462 99373 1.41741 298.41741 149.91741 14991.74174 1.41741 298.41742 149.91741 14991.74188 1.41741 298.41741 149.91741000000002 14991.74100 2020-01-01 2020-01-02 2020-01-01 00:07:52 2020-01-02 03:36:13 2020-01-01 00:07:52.000 2020-01-02 03:36:13.000 472 99373 49922.5 4992250 472 99373 49922.5 4992250 -32698 32440 4702.66 470266 -128 127 -0.06 -6 +473 101 10463 99374 1.42042 298.42042 149.92042 14992.04204 1.42042 298.4204 149.92042 14992.04204 1.42042 298.42042 149.92042000000023 14992.04200 2020-01-01 2020-01-02 2020-01-01 00:07:53 2020-01-02 03:36:14 2020-01-01 00:07:53.000 2020-01-02 03:36:14.000 473 99374 49923.5 4992350 473 99374 49923.5 4992350 -32697 32441 4703.66 470366 -128 123 -1.62 -162 +474 101 10464 99375 1.42342 298.42342 149.92342 14992.34234 1.42342 298.42343 149.92342 14992.34216 1.42342 298.42342 149.9234199999998 14992.34200 2020-01-01 2020-01-02 2020-01-01 00:07:54 2020-01-02 03:36:15 2020-01-01 00:07:54.000 2020-01-02 03:36:15.000 474 99375 49924.5 4992450 474 99375 49924.5 4992450 -32696 32442 4704.66 470466 -127 124 -0.62 -62 +475 101 10465 99376 1.42642 298.42642 149.92642 14992.64264 1.42642 298.42642 149.92642 14992.64246 1.42642 298.42642 149.9264199999998 14992.64200 2020-01-01 2020-01-02 2020-01-01 00:07:55 2020-01-02 03:36:16 2020-01-01 00:07:55.000 2020-01-02 03:36:16.000 475 99376 49925.5 4992550 475 99376 49925.5 4992550 -32695 32443 4705.66 470566 -126 125 0.38 38 +476 101 10466 99377 1.42942 298.42942 149.92942 14992.94294 1.42942 298.42944 149.92943 14992.94305 1.42942 298.42942 149.92942000000025 14992.94200 2020-01-01 2020-01-02 2020-01-01 00:07:56 2020-01-02 03:36:17 2020-01-01 00:07:56.000 2020-01-02 03:36:17.000 476 99377 49926.5 4992650 476 99377 49926.5 4992650 -32694 32444 4706.66 470666 -125 126 1.38 138 +477 101 10467 99378 1.43243 298.43243 149.93243 14993.24324 1.43243 298.43243 149.93243 14993.24338 1.43243 298.43243 149.93243000000015 14993.24300 2020-01-01 2020-01-02 2020-01-01 00:07:57 2020-01-02 03:36:18 2020-01-01 00:07:57.000 2020-01-02 03:36:18.000 477 99378 49927.5 4992750 477 99378 49927.5 4992750 -32693 32445 4707.66 470766 -124 127 2.38 238 +478 101 10468 99379 1.43543 298.43543 149.93543 14993.54354 1.43543 298.43542 149.93543 14993.54352 1.43543 298.43543 149.93542999999968 14993.54300 2020-01-01 2020-01-02 2020-01-01 00:07:58 2020-01-02 03:36:19 2020-01-01 00:07:58.000 2020-01-02 03:36:19.000 478 99379 49928.5 4992850 478 99379 49928.5 4992850 -32692 32446 4708.66 470866 -128 127 0.82 82 +479 101 10469 99380 1.43843 298.43843 149.93843 14993.84384 1.43843 298.43845 149.93844 14993.84427 1.43843 298.43843 149.93843000000012 14993.84300 2020-01-01 2020-01-02 2020-01-01 00:07:59 2020-01-02 03:36:20 2020-01-01 00:07:59.000 2020-01-02 03:36:20.000 479 99380 49929.5 4992950 479 99380 49929.5 4992950 -32691 32447 4709.66 470966 -128 127 -0.74 -74 +48 102 10038 99948 0.14414 300.14414 150.14414 15164.55855 0.14414 300.14413 150.14414 15164.55863 0.14414 300.14414 150.14414000000022 15164.55814 2020-01-01 2020-01-02 2020-01-01 00:00:48 2020-01-02 03:45:48 2020-01-01 00:00:48.000 2020-01-02 03:45:48.000 48 99948 49998 5049798 48 99948 49998 5049798 -32521 32414 4577.009900990099 462278 -128 127 -3.108910891089109 -314 +480 101 10470 99381 1.44144 298.44144 149.94144 14994.14414 1.44144 298.44144 149.94143 14994.14392 1.44144 298.44144 149.94144000000003 14994.14400 2020-01-01 2020-01-02 2020-01-01 00:08:00 2020-01-02 03:36:21 2020-01-01 00:08:00.000 2020-01-02 03:36:21.000 480 99381 49930.5 4993050 480 99381 49930.5 4993050 -32690 32448 4710.66 471066 -128 124 -2.3 -230 +481 101 10471 99382 1.44444 298.44444 149.94444 14994.44444 1.44444 298.44446 149.94444 14994.44452 1.44444 298.44444 149.9444399999999 14994.44400 2020-01-01 2020-01-02 2020-01-01 00:08:01 2020-01-02 03:36:22 2020-01-01 00:08:01.000 2020-01-02 03:36:22.000 481 99382 49931.5 4993150 481 99382 49931.5 4993150 -32689 32449 4711.66 471166 -127 125 -1.3 -130 482 101 10472 99383 1.44744 298.44744 149.94744 14994.74474 1.44744 298.44745 149.94744 14994.74485 1.44744 298.44744 149.94743999999994 14994.74400 2020-01-01 2020-01-02 2020-01-01 00:08:02 2020-01-02 03:36:23 2020-01-01 00:08:02.000 2020-01-02 03:36:23.000 482 99383 49932.5 4993250 482 99383 49932.5 4993250 -32688 32450 4712.66 471266 -126 126 -0.3 -30 -483 101 10473 99384 1.45045 298.45045 149.95045 14995.04504 1.45045 298.45044 149.95044 14995.04499 1.45045 298.45045 149.95045000000005 14995.04500 2020-01-01 2020-01-02 2020-01-01 00:08:03 2020-01-02 03:36:24 2020-01-01 00:08:03.000 2020-01-02 03:36:24.000 483 99384 49933.5 4993350 483 99384 49933.5 4993350 -32687 32451 4713.66 471366 -125 127 0.7 70 -484 101 10474 99385 1.45345 298.45345 149.95345 14995.34534 1.45345 298.45346 149.95345 14995.34574 1.45345 298.45345 149.95345000000012 14995.34500 2020-01-01 2020-01-02 2020-01-01 00:08:04 2020-01-02 03:36:25 2020-01-01 00:08:04.000 2020-01-02 03:36:25.000 484 99385 49934.5 4993450 484 99385 49934.5 4993450 -32686 32452 4714.66 471466 -128 127 -0.86 -86 -485 101 10475 99386 1.45645 298.45645 149.95645 14995.64564 1.45645 298.45645 149.95645 14995.6454 1.45645 298.45645 149.9564499999999 14995.64500 2020-01-01 2020-01-02 2020-01-01 00:08:05 2020-01-02 03:36:26 2020-01-01 00:08:05.000 2020-01-02 03:36:26.000 485 99386 49935.5 4993550 485 99386 49935.5 4993550 -32685 32453 4715.66 471566 -128 127 -2.42 -242 -486 101 10476 99387 1.45945 298.45945 149.95945 14995.94594 1.45945 298.45947 149.95946 14995.94602 1.45945 298.45945 149.95945000000006 14995.94500 2020-01-01 2020-01-02 2020-01-01 00:08:06 2020-01-02 03:36:27 2020-01-01 00:08:06.000 2020-01-02 03:36:27.000 486 99387 49936.5 4993650 486 99387 49936.5 4993650 -32684 32454 4716.66 471666 -128 123 -3.98 -398 -487 101 10477 99388 1.46246 298.46246 149.96246 14996.24624 1.46246 298.46246 149.96246 14996.24633 1.46246 298.46246 149.96246000000008 14996.24600 2020-01-01 2020-01-02 2020-01-01 00:08:07 2020-01-02 03:36:28 2020-01-01 00:08:07.000 2020-01-02 03:36:28.000 487 99388 49937.5 4993750 487 99388 49937.5 4993750 -32683 32455 4717.66 471766 -127 124 -2.98 -298 -488 101 10478 99389 1.46546 298.46546 149.96546 14996.54654 1.46546 298.46545 149.96546 14996.54645 1.46546 298.46546 149.96545999999998 14996.54600 2020-01-01 2020-01-02 2020-01-01 00:08:08 2020-01-02 03:36:29 2020-01-01 00:08:08.000 2020-01-02 03:36:29.000 488 99389 49938.5 4993850 488 99389 49938.5 4993850 -32682 32456 4718.66 471866 -126 125 -1.98 -198 +483 101 10473 99384 1.45045 298.45045 149.95045 14995.04504 1.45045 298.45044 149.95044 14995.04499 1.45045 298.45045 149.95045000000016 14995.04500 2020-01-01 2020-01-02 2020-01-01 00:08:03 2020-01-02 03:36:24 2020-01-01 00:08:03.000 2020-01-02 03:36:24.000 483 99384 49933.5 4993350 483 99384 49933.5 4993350 -32687 32451 4713.66 471366 -125 127 0.7 70 +484 101 10474 99385 1.45345 298.45345 149.95345 14995.34534 1.45345 298.45346 149.95345 14995.34574 1.45345 298.45345 149.95345000000026 14995.34500 2020-01-01 2020-01-02 2020-01-01 00:08:04 2020-01-02 03:36:25 2020-01-01 00:08:04.000 2020-01-02 03:36:25.000 484 99385 49934.5 4993450 484 99385 49934.5 4993450 -32686 32452 4714.66 471466 -128 127 -0.86 -86 +485 101 10475 99386 1.45645 298.45645 149.95645 14995.64564 1.45645 298.45645 149.95645 14995.6454 1.45645 298.45645 149.95644999999982 14995.64500 2020-01-01 2020-01-02 2020-01-01 00:08:05 2020-01-02 03:36:26 2020-01-01 00:08:05.000 2020-01-02 03:36:26.000 485 99386 49935.5 4993550 485 99386 49935.5 4993550 -32685 32453 4715.66 471566 -128 127 -2.42 -242 +486 101 10476 99387 1.45945 298.45945 149.95945 14995.94594 1.45945 298.45947 149.95946 14995.94602 1.45945 298.45945 149.95945000000017 14995.94500 2020-01-01 2020-01-02 2020-01-01 00:08:06 2020-01-02 03:36:27 2020-01-01 00:08:06.000 2020-01-02 03:36:27.000 486 99387 49936.5 4993650 486 99387 49936.5 4993650 -32684 32454 4716.66 471666 -128 123 -3.98 -398 +487 101 10477 99388 1.46246 298.46246 149.96246 14996.24624 1.46246 298.46246 149.96246 14996.24633 1.46246 298.46246 149.96246000000014 14996.24600 2020-01-01 2020-01-02 2020-01-01 00:08:07 2020-01-02 03:36:28 2020-01-01 00:08:07.000 2020-01-02 03:36:28.000 487 99388 49937.5 4993750 487 99388 49937.5 4993750 -32683 32455 4717.66 471766 -127 124 -2.98 -298 +488 101 10478 99389 1.46546 298.46546 149.96546 14996.54654 1.46546 298.46545 149.96546 14996.54645 1.46546 298.46546 149.96545999999995 14996.54600 2020-01-01 2020-01-02 2020-01-01 00:08:08 2020-01-02 03:36:29 2020-01-01 00:08:08.000 2020-01-02 03:36:29.000 488 99389 49938.5 4993850 488 99389 49938.5 4993850 -32682 32456 4718.66 471866 -126 125 -1.98 -198 489 101 10479 99390 1.46846 298.46846 149.96846 14996.84684 1.46846 298.46848 149.96847 14996.84721 1.46846 298.46846 149.96846000000002 14996.84600 2020-01-01 2020-01-02 2020-01-01 00:08:09 2020-01-02 03:36:30 2020-01-01 00:08:09.000 2020-01-02 03:36:30.000 489 99390 49939.5 4993950 489 99390 49939.5 4993950 -32681 32457 4719.66 471966 -125 126 -0.98 -98 -49 102 10039 99949 0.14714 300.14714 150.14714 15164.86186 0.14714 300.14716 150.14714 15164.86173 0.14714 300.14714 150.14713999999992 15164.86114 2020-01-01 2020-01-02 2020-01-01 00:00:49 2020-01-02 03:45:49 2020-01-01 00:00:49.000 2020-01-02 03:45:49.000 49 99949 49999 5049899 49 99949 49999 5049899 -32520 32415 4578.009900990099 462379 -128 123 -4.643564356435643 -469 -490 101 10480 99391 1.47147 298.47147 149.97147 14997.14714 1.47147 298.47147 149.97146 14997.14687 1.47147 298.47147 149.97147000000012 14997.14700 2020-01-01 2020-01-02 2020-01-01 00:08:10 2020-01-02 03:36:31 2020-01-01 00:08:10.000 2020-01-02 03:36:31.000 490 99391 49940.5 4994050 490 99391 49940.5 4994050 -32680 32458 4720.66 472066 -124 127 0.02 2 -491 101 10481 99392 1.47447 298.47447 149.97447 14997.44744 1.47447 298.4745 149.97447 14997.44749 1.47447 298.47447 149.97446999999997 14997.44700 2020-01-01 2020-01-02 2020-01-01 00:08:11 2020-01-02 03:36:32 2020-01-01 00:08:11.000 2020-01-02 03:36:32.000 491 99392 49941.5 4994150 491 99392 49941.5 4994150 -32679 32459 4721.66 472166 -128 127 -1.54 -154 -492 101 10482 99393 1.47747 298.47747 149.97747 14997.74774 1.47747 298.47748 149.97747 14997.74779 1.47747 298.47747 149.9774699999999 14997.74700 2020-01-01 2020-01-02 2020-01-01 00:08:12 2020-01-02 03:36:33 2020-01-01 00:08:12.000 2020-01-02 03:36:33.000 492 99393 49942.5 4994250 492 99393 49942.5 4994250 -32678 32460 4722.66 472266 -128 123 -3.1 -310 -493 101 10483 99394 1.48048 298.48048 149.98048 14998.04804 1.48048 298.48047 149.98048 14998.04809 1.48048 298.48048 149.98048000000009 14998.04800 2020-01-01 2020-01-02 2020-01-01 00:08:13 2020-01-02 03:36:34 2020-01-01 00:08:13.000 2020-01-02 03:36:34.000 493 99394 49943.5 4994350 493 99394 49943.5 4994350 -32677 32461 4723.66 472366 -127 124 -2.1 -210 -494 101 10484 99395 1.48348 298.48348 149.98348 14998.34834 1.48348 298.4835 149.98348 14998.34868 1.48348 298.48348 149.98348000000004 14998.34800 2020-01-01 2020-01-02 2020-01-01 00:08:14 2020-01-02 03:36:35 2020-01-01 00:08:14.000 2020-01-02 03:36:35.000 494 99395 49944.5 4994450 494 99395 49944.5 4994450 -32676 32462 4724.66 472466 -126 125 -1.1 -110 -495 100 10485 99396 1.48648 298.48648 149.98648 14998.64864 1.48648 298.48648 149.98648 14998.64837 1.48648 298.48648 149.98647999999986 14998.64800 2020-01-01 2020-01-02 2020-01-01 00:08:15 2020-01-02 03:36:36 2020-01-01 00:08:15.000 2020-01-02 03:36:36.000 495 99396 49945.5 4994550 495 99396 49945.5 4994550 -32675 32463 4725.66 472566 -125 126 -0.1 -10 -496 100 10486 99397 1.48948 298.48948 149.98948 14998.94894 1.48948 298.4895 149.98948 14998.94896 1.48948 298.48948 149.9894800000001 14998.94800 2020-01-01 2020-01-02 2020-01-01 00:08:16 2020-01-02 03:36:37 2020-01-01 00:08:16.000 2020-01-02 03:36:37.000 496 99397 49946.5 4994650 496 99397 49946.5 4994650 -32674 32464 4726.66 472666 -124 127 0.9 90 -497 100 10487 99398 1.49249 298.49249 149.99249 14999.24924 1.49249 298.4925 149.99249 14999.24926 1.49249 298.49249 149.99249 14999.24900 2020-01-01 2020-01-02 2020-01-01 00:08:17 2020-01-02 03:36:38 2020-01-01 00:08:17.000 2020-01-02 03:36:38.000 497 99398 49947.5 4994750 497 99398 49947.5 4994750 -32673 32465 4727.66 472766 -128 127 -0.66 -66 -498 100 10488 99399 1.49549 298.49549 149.99549 14999.54954 1.49549 298.49548 149.99549 14999.54956 1.49549 298.49549 149.99548999999996 14999.54900 2020-01-01 2020-01-02 2020-01-01 00:08:18 2020-01-02 03:36:39 2020-01-01 00:08:18.000 2020-01-02 03:36:39.000 498 99399 49948.5 4994850 498 99399 49948.5 4994850 -32672 32466 4728.66 472866 -128 123 -2.22 -222 +49 102 10039 99949 0.14714 300.14714 150.14714 15164.86186 0.14714 300.14716 150.14714 15164.86173 0.14714 300.14714 150.14713999999972 15164.86114 2020-01-01 2020-01-02 2020-01-01 00:00:49 2020-01-02 03:45:49 2020-01-01 00:00:49.000 2020-01-02 03:45:49.000 49 99949 49999 5049899 49 99949 49999 5049899 -32520 32415 4578.009900990099 462379 -128 123 -4.643564356435643 -469 +490 101 10480 99391 1.47147 298.47147 149.97147 14997.14714 1.47147 298.47147 149.97146 14997.14687 1.47147 298.47147 149.9714700000003 14997.14700 2020-01-01 2020-01-02 2020-01-01 00:08:10 2020-01-02 03:36:31 2020-01-01 00:08:10.000 2020-01-02 03:36:31.000 490 99391 49940.5 4994050 490 99391 49940.5 4994050 -32680 32458 4720.66 472066 -124 127 0.02 2 +491 101 10481 99392 1.47447 298.47447 149.97447 14997.44744 1.47447 298.4745 149.97447 14997.44749 1.47447 298.47447 149.9744699999998 14997.44700 2020-01-01 2020-01-02 2020-01-01 00:08:11 2020-01-02 03:36:32 2020-01-01 00:08:11.000 2020-01-02 03:36:32.000 491 99392 49941.5 4994150 491 99392 49941.5 4994150 -32679 32459 4721.66 472166 -128 127 -1.54 -154 +492 101 10482 99393 1.47747 298.47747 149.97747 14997.74774 1.47747 298.47748 149.97747 14997.74779 1.47747 298.47747 149.97746999999984 14997.74700 2020-01-01 2020-01-02 2020-01-01 00:08:12 2020-01-02 03:36:33 2020-01-01 00:08:12.000 2020-01-02 03:36:33.000 492 99393 49942.5 4994250 492 99393 49942.5 4994250 -32678 32460 4722.66 472266 -128 123 -3.1 -310 +493 101 10483 99394 1.48048 298.48048 149.98048 14998.04804 1.48048 298.48047 149.98048 14998.04809 1.48048 298.48048 149.98048000000014 14998.04800 2020-01-01 2020-01-02 2020-01-01 00:08:13 2020-01-02 03:36:34 2020-01-01 00:08:13.000 2020-01-02 03:36:34.000 493 99394 49943.5 4994350 493 99394 49943.5 4994350 -32677 32461 4723.66 472366 -127 124 -2.1 -210 +494 101 10484 99395 1.48348 298.48348 149.98348 14998.34834 1.48348 298.4835 149.98348 14998.34868 1.48348 298.48348 149.98348000000018 14998.34800 2020-01-01 2020-01-02 2020-01-01 00:08:14 2020-01-02 03:36:35 2020-01-01 00:08:14.000 2020-01-02 03:36:35.000 494 99395 49944.5 4994450 494 99395 49944.5 4994450 -32676 32462 4724.66 472466 -126 125 -1.1 -110 +495 100 10485 99396 1.48648 298.48648 149.98648 14998.64864 1.48648 298.48648 149.98648 14998.64837 1.48648 298.48648 149.9864799999997 14998.64800 2020-01-01 2020-01-02 2020-01-01 00:08:15 2020-01-02 03:36:36 2020-01-01 00:08:15.000 2020-01-02 03:36:36.000 495 99396 49945.5 4994550 495 99396 49945.5 4994550 -32675 32463 4725.66 472566 -125 126 -0.1 -10 +496 100 10486 99397 1.48948 298.48948 149.98948 14998.94894 1.48948 298.4895 149.98948 14998.94896 1.48948 298.48948 149.98948000000016 14998.94800 2020-01-01 2020-01-02 2020-01-01 00:08:16 2020-01-02 03:36:37 2020-01-01 00:08:16.000 2020-01-02 03:36:37.000 496 99397 49946.5 4994650 496 99397 49946.5 4994650 -32674 32464 4726.66 472666 -124 127 0.9 90 +497 100 10487 99398 1.49249 298.49249 149.99249 14999.24924 1.49249 298.4925 149.99249 14999.24926 1.49249 298.49249 149.99249000000003 14999.24900 2020-01-01 2020-01-02 2020-01-01 00:08:17 2020-01-02 03:36:38 2020-01-01 00:08:17.000 2020-01-02 03:36:38.000 497 99398 49947.5 4994750 497 99398 49947.5 4994750 -32673 32465 4727.66 472766 -128 127 -0.66 -66 +498 100 10488 99399 1.49549 298.49549 149.99549 14999.54954 1.49549 298.49548 149.99549 14999.54956 1.49549 298.49549 149.99548999999988 14999.54900 2020-01-01 2020-01-02 2020-01-01 00:08:18 2020-01-02 03:36:39 2020-01-01 00:08:18.000 2020-01-02 03:36:39.000 498 99399 49948.5 4994850 498 99399 49948.5 4994850 -32672 32466 4728.66 472866 -128 123 -2.22 -222 499 100 10489 99400 1.49849 298.49849 149.99849 14999.84984 1.49849 298.4985 149.9985 14999.85015 1.49849 298.49849 149.99848999999998 14999.84900 2020-01-01 2020-01-02 2020-01-01 00:08:19 2020-01-02 03:36:40 2020-01-01 00:08:19.000 2020-01-02 03:36:40.000 499 99400 49949.5 4994950 499 99400 49949.5 4994950 -32671 32467 4729.66 472966 -127 124 -1.22 -122 -5 102 1004 9995 0.01501 300.01501 150.01501 15151.51651 0.01501 300.015 150.01501 15151.51648 0.01501 300.01501 150.01500999999993 15151.51601 2020-01-01 2020-01-02 2020-01-01 00:00:05 2020-01-02 03:45:05 2020-01-01 00:00:05.000 2020-01-02 03:45:05.000 5 99905 49955 5045455 5 99905 49955 5045455 -32564 32371 4534.009900990099 457935 -128 123 -3.01980198019802 -305 +5 102 1004 9995 0.01501 300.01501 150.01501 15151.51651 0.01501 300.015 150.01501 15151.51648 0.01501 300.01501 150.01500999999976 15151.51601 2020-01-01 2020-01-02 2020-01-01 00:00:05 2020-01-02 03:45:05 2020-01-01 00:00:05.000 2020-01-02 03:45:05.000 5 99905 49955 5045455 5 99905 49955 5045455 -32564 32371 4534.009900990099 457935 -128 123 -3.01980198019802 -305 50 102 10040 99950 0.15015 300.15015 150.15015 15165.16516 0.15015 300.15015 150.15014 15165.16487 0.15015 300.15015 150.15015 15165.16515 2020-01-01 2020-01-02 2020-01-01 00:00:50 2020-01-02 03:45:50 2020-01-01 00:00:50.000 2020-01-02 03:45:50.000 50 99950 50000 5050000 50 99950 50000 5050000 -32519 32416 4579.009900990099 462480 -127 124 -3.6435643564356437 -368 -500 100 10490 99401 1.5015 298.5015 150.0015 15000.15015 1.5015 298.5015 150.00149 15000.14984 1.50150 298.50150 150.00150000000008 15000.15000 2020-01-01 2020-01-02 2020-01-01 00:08:20 2020-01-02 03:36:41 2020-01-01 00:08:20.000 2020-01-02 03:36:41.000 500 99401 49950.5 4995050 500 99401 49950.5 4995050 -32670 32468 4730.66 473066 -126 125 -0.22 -22 -501 100 10491 99402 1.5045 298.5045 150.0045 15000.45045 1.5045 298.50452 150.0045 15000.45043 1.50450 298.50450 150.0044999999999 15000.45000 2020-01-01 2020-01-02 2020-01-01 00:08:21 2020-01-02 03:36:42 2020-01-01 00:08:21.000 2020-01-02 03:36:42.000 501 99402 49951.5 4995150 501 99402 49951.5 4995150 -32669 32469 4731.66 473166 -125 126 0.78 78 -502 100 10492 99403 1.5075 298.5075 150.0075 15000.75075 1.5075 298.5075 150.0075 15000.75073 1.50750 298.50750 150.00749999999994 15000.75000 2020-01-01 2020-01-02 2020-01-01 00:08:22 2020-01-02 03:36:43 2020-01-01 00:08:22.000 2020-01-02 03:36:43.000 502 99403 49952.5 4995250 502 99403 49952.5 4995250 -32668 32470 4732.66 473266 -124 127 1.78 178 +500 100 10490 99401 1.5015 298.5015 150.0015 15000.15015 1.5015 298.5015 150.00149 15000.14984 1.50150 298.50150 150.0015000000002 15000.15000 2020-01-01 2020-01-02 2020-01-01 00:08:20 2020-01-02 03:36:41 2020-01-01 00:08:20.000 2020-01-02 03:36:41.000 500 99401 49950.5 4995050 500 99401 49950.5 4995050 -32670 32468 4730.66 473066 -126 125 -0.22 -22 +501 100 10491 99402 1.5045 298.5045 150.0045 15000.45045 1.5045 298.50452 150.0045 15000.45043 1.50450 298.50450 150.00449999999972 15000.45000 2020-01-01 2020-01-02 2020-01-01 00:08:21 2020-01-02 03:36:42 2020-01-01 00:08:21.000 2020-01-02 03:36:42.000 501 99402 49951.5 4995150 501 99402 49951.5 4995150 -32669 32469 4731.66 473166 -125 126 0.78 78 +502 100 10492 99403 1.5075 298.5075 150.0075 15000.75075 1.5075 298.5075 150.0075 15000.75073 1.50750 298.50750 150.00749999999982 15000.75000 2020-01-01 2020-01-02 2020-01-01 00:08:22 2020-01-02 03:36:43 2020-01-01 00:08:22.000 2020-01-02 03:36:43.000 502 99403 49952.5 4995250 502 99403 49952.5 4995250 -32668 32470 4732.66 473266 -124 127 1.78 178 503 100 10493 99404 1.51051 298.51051 150.01051 15001.05105 1.51051 298.5105 150.01051 15001.05103 1.51051 298.51051 150.01051000000004 15001.05100 2020-01-01 2020-01-02 2020-01-01 00:08:23 2020-01-02 03:36:44 2020-01-01 00:08:23.000 2020-01-02 03:36:44.000 503 99404 49953.5 4995350 503 99404 49953.5 4995350 -32667 32471 4733.66 473366 -128 127 0.22 22 -504 100 10494 99405 1.51351 298.51351 150.01351 15001.35135 1.51351 298.51352 150.01351 15001.35162 1.51351 298.51351 150.01351 15001.35100 2020-01-01 2020-01-02 2020-01-01 00:08:24 2020-01-02 03:36:45 2020-01-01 00:08:24.000 2020-01-02 03:36:45.000 504 99405 49954.5 4995450 504 99405 49954.5 4995450 -32666 32472 4734.66 473466 -128 127 -1.34 -134 -505 100 10495 99406 1.51651 298.51651 150.01651 15001.65165 1.51651 298.5165 150.01651 15001.65131 1.51651 298.51651 150.01651 15001.65100 2020-01-01 2020-01-02 2020-01-01 00:08:25 2020-01-02 03:36:46 2020-01-01 00:08:25.000 2020-01-02 03:36:46.000 505 99406 49955.5 4995550 505 99406 49955.5 4995550 -32665 32473 4735.66 473566 -128 124 -2.9 -290 +504 100 10494 99405 1.51351 298.51351 150.01351 15001.35135 1.51351 298.51352 150.01351 15001.35162 1.51351 298.51351 150.01351000000014 15001.35100 2020-01-01 2020-01-02 2020-01-01 00:08:24 2020-01-02 03:36:45 2020-01-01 00:08:24.000 2020-01-02 03:36:45.000 504 99405 49954.5 4995450 504 99405 49954.5 4995450 -32666 32472 4734.66 473466 -128 127 -1.34 -134 +505 100 10495 99406 1.51651 298.51651 150.01651 15001.65165 1.51651 298.5165 150.01651 15001.65131 1.51651 298.51651 150.01650999999998 15001.65100 2020-01-01 2020-01-02 2020-01-01 00:08:25 2020-01-02 03:36:46 2020-01-01 00:08:25.000 2020-01-02 03:36:46.000 505 99406 49955.5 4995550 505 99406 49955.5 4995550 -32665 32473 4735.66 473566 -128 124 -2.9 -290 506 100 10496 99407 1.51951 298.51951 150.01951 15001.95195 1.51951 298.51953 150.01951 15001.9519 1.51951 298.51951 150.01951000000005 15001.95100 2020-01-01 2020-01-02 2020-01-01 00:08:26 2020-01-02 03:36:47 2020-01-01 00:08:26.000 2020-01-02 03:36:47.000 506 99407 49956.5 4995650 506 99407 49956.5 4995650 -32664 32474 4736.66 473666 -127 125 -1.9 -190 -507 100 10497 99408 1.52252 298.52252 150.02252 15002.25225 1.52252 298.52252 150.02252 15002.2522 1.52252 298.52252 150.02252000000016 15002.25200 2020-01-01 2020-01-02 2020-01-01 00:08:27 2020-01-02 03:36:48 2020-01-01 00:08:27.000 2020-01-02 03:36:48.000 507 99408 49957.5 4995750 507 99408 49957.5 4995750 -32663 32475 4737.66 473766 -126 126 -0.9 -90 -508 100 10498 99409 1.52552 298.52552 150.02552 15002.55255 1.52552 298.5255 150.02552 15002.5525 1.52552 298.52552 150.02551999999994 15002.55200 2020-01-01 2020-01-02 2020-01-01 00:08:28 2020-01-02 03:36:49 2020-01-01 00:08:28.000 2020-01-02 03:36:49.000 508 99409 49958.5 4995850 508 99409 49958.5 4995850 -32662 32476 4738.66 473866 -125 127 0.1 10 -509 100 10499 99410 1.52852 298.52852 150.02852 15002.85285 1.52852 298.52853 150.02853 15002.85312 1.52852 298.52852 150.02851999999993 15002.85200 2020-01-01 2020-01-02 2020-01-01 00:08:29 2020-01-02 03:36:50 2020-01-01 00:08:29.000 2020-01-02 03:36:50.000 509 99410 49959.5 4995950 509 99410 49959.5 4995950 -32661 32477 4739.66 473966 -128 127 -1.46 -146 +507 100 10497 99408 1.52252 298.52252 150.02252 15002.25225 1.52252 298.52252 150.02252 15002.2522 1.52252 298.52252 150.02252000000033 15002.25200 2020-01-01 2020-01-02 2020-01-01 00:08:27 2020-01-02 03:36:48 2020-01-01 00:08:27.000 2020-01-02 03:36:48.000 507 99408 49957.5 4995750 507 99408 49957.5 4995750 -32663 32475 4737.66 473766 -126 126 -0.9 -90 +508 100 10498 99409 1.52552 298.52552 150.02552 15002.55255 1.52552 298.5255 150.02552 15002.5525 1.52552 298.52552 150.02551999999983 15002.55200 2020-01-01 2020-01-02 2020-01-01 00:08:28 2020-01-02 03:36:49 2020-01-01 00:08:28.000 2020-01-02 03:36:49.000 508 99409 49958.5 4995850 508 99409 49958.5 4995850 -32662 32476 4738.66 473866 -125 127 0.1 10 +509 100 10499 99410 1.52852 298.52852 150.02852 15002.85285 1.52852 298.52853 150.02853 15002.85312 1.52852 298.52852 150.02851999999987 15002.85200 2020-01-01 2020-01-02 2020-01-01 00:08:29 2020-01-02 03:36:50 2020-01-01 00:08:29.000 2020-01-02 03:36:50.000 509 99410 49959.5 4995950 509 99410 49959.5 4995950 -32661 32477 4739.66 473966 -128 127 -1.46 -146 51 102 10041 99951 0.15315 300.15315 150.15315 15165.46846 0.15315 300.15317 150.15315 15165.46863 0.15315 300.15315 150.15315000000007 15165.46815 2020-01-01 2020-01-02 2020-01-01 00:00:51 2020-01-02 03:45:51 2020-01-01 00:00:51.000 2020-01-02 03:45:51.000 51 99951 50001 5050101 51 99951 50001 5050101 -32518 32417 4580.009900990099 462581 -126 125 -2.6435643564356437 -267 -510 100 10500 99411 1.53153 298.53153 150.03153 15003.15315 1.53153 298.53152 150.03152 15003.15278 1.53153 298.53153 150.0315300000001 15003.15300 2020-01-01 2020-01-02 2020-01-01 00:08:30 2020-01-02 03:36:51 2020-01-01 00:08:30.000 2020-01-02 03:36:51.000 510 99411 49960.5 4996050 510 99411 49960.5 4996050 -32660 32478 4740.66 474066 -128 127 -3.02 -302 -511 100 10501 99412 1.53453 298.53453 150.03453 15003.45345 1.53453 298.53455 150.03453 15003.45354 1.53453 298.53453 150.03453000000005 15003.45300 2020-01-01 2020-01-02 2020-01-01 00:08:31 2020-01-02 03:36:52 2020-01-01 00:08:31.000 2020-01-02 03:36:52.000 511 99412 49961.5 4996150 511 99412 49961.5 4996150 -32659 32479 4741.66 474166 -128 123 -4.58 -458 -512 100 10502 99413 1.53753 298.53753 150.03753 15003.75375 1.53753 298.53754 150.03753 15003.75366 1.53753 298.53753 150.0375299999999 15003.75300 2020-01-01 2020-01-02 2020-01-01 00:08:32 2020-01-02 03:36:53 2020-01-01 00:08:32.000 2020-01-02 03:36:53.000 512 99413 49962.5 4996250 512 99413 49962.5 4996250 -32658 32480 4742.66 474266 -127 124 -3.58 -358 +510 100 10500 99411 1.53153 298.53153 150.03153 15003.15315 1.53153 298.53152 150.03152 15003.15278 1.53153 298.53153 150.03153000000017 15003.15300 2020-01-01 2020-01-02 2020-01-01 00:08:30 2020-01-02 03:36:51 2020-01-01 00:08:30.000 2020-01-02 03:36:51.000 510 99411 49960.5 4996050 510 99411 49960.5 4996050 -32660 32478 4740.66 474066 -128 127 -3.02 -302 +511 100 10501 99412 1.53453 298.53453 150.03453 15003.45345 1.53453 298.53455 150.03453 15003.45354 1.53453 298.53453 150.03453000000022 15003.45300 2020-01-01 2020-01-02 2020-01-01 00:08:31 2020-01-02 03:36:52 2020-01-01 00:08:31.000 2020-01-02 03:36:52.000 511 99412 49961.5 4996150 511 99412 49961.5 4996150 -32659 32479 4741.66 474166 -128 123 -4.58 -458 +512 100 10502 99413 1.53753 298.53753 150.03753 15003.75375 1.53753 298.53754 150.03753 15003.75366 1.53753 298.53753 150.03752999999972 15003.75300 2020-01-01 2020-01-02 2020-01-01 00:08:32 2020-01-02 03:36:53 2020-01-01 00:08:32.000 2020-01-02 03:36:53.000 512 99413 49962.5 4996250 512 99413 49962.5 4996250 -32658 32480 4742.66 474266 -127 124 -3.58 -358 513 100 10503 99414 1.54054 298.54054 150.04054 15004.05405 1.54054 298.54053 150.04053 15004.05397 1.54054 298.54054 150.04054 15004.05400 2020-01-01 2020-01-02 2020-01-01 00:08:33 2020-01-02 03:36:54 2020-01-01 00:08:33.000 2020-01-02 03:36:54.000 513 99414 49963.5 4996350 513 99414 49963.5 4996350 -32657 32481 4743.66 474366 -126 125 -2.58 -258 -514 100 10504 99415 1.54354 298.54354 150.04354 15004.35435 1.54354 298.54355 150.04354 15004.35459 1.54354 298.54354 150.04354 15004.35400 2020-01-01 2020-01-02 2020-01-01 00:08:34 2020-01-02 03:36:55 2020-01-01 00:08:34.000 2020-01-02 03:36:55.000 514 99415 49964.5 4996450 514 99415 49964.5 4996450 -32656 32482 4744.66 474466 -125 126 -1.58 -158 -515 100 10505 99416 1.54654 298.54654 150.04654 15004.65465 1.54654 298.54654 150.04654 15004.65425 1.54654 298.54654 150.04653999999994 15004.65400 2020-01-01 2020-01-02 2020-01-01 00:08:35 2020-01-02 03:36:56 2020-01-01 00:08:35.000 2020-01-02 03:36:56.000 515 99416 49965.5 4996550 515 99416 49965.5 4996550 -32655 32483 4745.66 474566 -124 127 -0.58 -58 -516 100 10506 99417 1.54954 298.54954 150.04954 15004.95495 1.54954 298.54956 150.04955 15004.955 1.54954 298.54954 150.04954 15004.95400 2020-01-01 2020-01-02 2020-01-01 00:08:36 2020-01-02 03:36:57 2020-01-01 00:08:36.000 2020-01-02 03:36:57.000 516 99417 49966.5 4996650 516 99417 49966.5 4996650 -32654 32484 4746.66 474666 -128 127 -2.14 -214 -517 100 10507 99418 1.55255 298.55255 150.05255 15005.25525 1.55255 298.55255 150.05255 15005.25514 1.55255 298.55255 150.05255000000005 15005.25500 2020-01-01 2020-01-02 2020-01-01 00:08:37 2020-01-02 03:36:58 2020-01-01 00:08:37.000 2020-01-02 03:36:58.000 517 99418 49967.5 4996750 517 99418 49967.5 4996750 -32653 32485 4747.66 474766 -128 123 -3.7 -370 -518 100 10508 99419 1.55555 298.55555 150.05555 15005.55555 1.55555 298.55554 150.05555 15005.55547 1.55555 298.55555 150.05554999999993 15005.55500 2020-01-01 2020-01-02 2020-01-01 00:08:38 2020-01-02 03:36:59 2020-01-01 00:08:38.000 2020-01-02 03:36:59.000 518 99419 49968.5 4996850 518 99419 49968.5 4996850 -32652 32486 4748.66 474866 -127 124 -2.7 -270 -519 100 10509 99420 1.55855 298.55855 150.05855 15005.85585 1.55855 298.55856 150.05856 15005.85607 1.55855 298.55855 150.05854999999997 15005.85500 2020-01-01 2020-01-02 2020-01-01 00:08:39 2020-01-02 03:37:00 2020-01-01 00:08:39.000 2020-01-02 03:37:00.000 519 99420 49969.5 4996950 519 99420 49969.5 4996950 -32651 32487 4749.66 474966 -126 125 -1.7 -170 -52 102 10042 99952 0.15615 300.15615 150.15615 15165.77177 0.15615 300.15616 150.15615 15165.77193 0.15615 300.15615 150.15615 15165.77115 2020-01-01 2020-01-02 2020-01-01 00:00:52 2020-01-02 03:45:52 2020-01-01 00:00:52.000 2020-01-02 03:45:52.000 52 99952 50002 5050202 52 99952 50002 5050202 -32517 32418 4581.009900990099 462682 -125 126 -1.6435643564356435 -166 +514 100 10504 99415 1.54354 298.54354 150.04354 15004.35435 1.54354 298.54355 150.04354 15004.35459 1.54354 298.54354 150.04354000000006 15004.35400 2020-01-01 2020-01-02 2020-01-01 00:08:34 2020-01-02 03:36:55 2020-01-01 00:08:34.000 2020-01-02 03:36:55.000 514 99415 49964.5 4996450 514 99415 49964.5 4996450 -32656 32482 4744.66 474466 -125 126 -1.58 -158 +515 100 10505 99416 1.54654 298.54654 150.04654 15004.65465 1.54654 298.54654 150.04654 15004.65425 1.54654 298.54654 150.04653999999988 15004.65400 2020-01-01 2020-01-02 2020-01-01 00:08:35 2020-01-02 03:36:56 2020-01-01 00:08:35.000 2020-01-02 03:36:56.000 515 99416 49965.5 4996550 515 99416 49965.5 4996550 -32655 32483 4745.66 474566 -124 127 -0.58 -58 +516 100 10506 99417 1.54954 298.54954 150.04954 15004.95495 1.54954 298.54956 150.04955 15004.955 1.54954 298.54954 150.04953999999998 15004.95400 2020-01-01 2020-01-02 2020-01-01 00:08:36 2020-01-02 03:36:57 2020-01-01 00:08:36.000 2020-01-02 03:36:57.000 516 99417 49966.5 4996650 516 99417 49966.5 4996650 -32654 32484 4746.66 474666 -128 127 -2.14 -214 +517 100 10507 99418 1.55255 298.55255 150.05255 15005.25525 1.55255 298.55255 150.05255 15005.25514 1.55255 298.55255 150.05255000000022 15005.25500 2020-01-01 2020-01-02 2020-01-01 00:08:37 2020-01-02 03:36:58 2020-01-01 00:08:37.000 2020-01-02 03:36:58.000 517 99418 49967.5 4996750 517 99418 49967.5 4996750 -32653 32485 4747.66 474766 -128 123 -3.7 -370 +518 100 10508 99419 1.55555 298.55555 150.05555 15005.55555 1.55555 298.55554 150.05555 15005.55547 1.55555 298.55555 150.05554999999973 15005.55500 2020-01-01 2020-01-02 2020-01-01 00:08:38 2020-01-02 03:36:59 2020-01-01 00:08:38.000 2020-01-02 03:36:59.000 518 99419 49968.5 4996850 518 99419 49968.5 4996850 -32652 32486 4748.66 474866 -127 124 -2.7 -270 +519 100 10509 99420 1.55855 298.55855 150.05855 15005.85585 1.55855 298.55856 150.05856 15005.85607 1.55855 298.55855 150.05854999999985 15005.85500 2020-01-01 2020-01-02 2020-01-01 00:08:39 2020-01-02 03:37:00 2020-01-01 00:08:39.000 2020-01-02 03:37:00.000 519 99420 49969.5 4996950 519 99420 49969.5 4996950 -32651 32487 4749.66 474966 -126 125 -1.7 -170 +52 102 10042 99952 0.15615 300.15615 150.15615 15165.77177 0.15615 300.15616 150.15615 15165.77193 0.15615 300.15615 150.1561500000001 15165.77115 2020-01-01 2020-01-02 2020-01-01 00:00:52 2020-01-02 03:45:52 2020-01-01 00:00:52.000 2020-01-02 03:45:52.000 52 99952 50002 5050202 52 99952 50002 5050202 -32517 32418 4581.009900990099 462682 -125 126 -1.6435643564356435 -166 520 100 10510 99421 1.56156 298.56156 150.06156 15006.15615 1.56156 298.56155 150.06155 15006.15572 1.56156 298.56156 150.06156000000007 15006.15600 2020-01-01 2020-01-02 2020-01-01 00:08:40 2020-01-02 03:37:01 2020-01-01 00:08:40.000 2020-01-02 03:37:01.000 520 99421 49970.5 4997050 520 99421 49970.5 4997050 -32650 32488 4750.66 475066 -125 126 -0.7 -70 -521 100 10511 99422 1.56456 298.56456 150.06456 15006.45645 1.56456 298.56458 150.06456 15006.45647 1.56456 298.56456 150.06456000000003 15006.45600 2020-01-01 2020-01-02 2020-01-01 00:08:41 2020-01-02 03:37:02 2020-01-01 00:08:41.000 2020-01-02 03:37:02.000 521 99422 49971.5 4997150 521 99422 49971.5 4997150 -32649 32489 4751.66 475166 -124 127 0.3 30 -522 100 10512 99423 1.56756 298.56756 150.06756 15006.75675 1.56756 298.56757 150.06756 15006.75661 1.56756 298.56756 150.06756 15006.75600 2020-01-01 2020-01-02 2020-01-01 00:08:42 2020-01-02 03:37:03 2020-01-01 00:08:42.000 2020-01-02 03:37:03.000 522 99423 49972.5 4997250 522 99423 49972.5 4997250 -32648 32490 4752.66 475266 -128 127 -1.26 -126 -523 100 10513 99424 1.57057 298.57057 150.07057 15007.05705 1.57057 298.57056 150.07056 15007.05694 1.57057 298.57057 150.0705699999999 15007.05700 2020-01-01 2020-01-02 2020-01-01 00:08:43 2020-01-02 03:37:04 2020-01-01 00:08:43.000 2020-01-02 03:37:04.000 523 99424 49973.5 4997350 523 99424 49973.5 4997350 -32647 32491 4753.66 475366 -128 123 -2.82 -282 -524 100 10514 99425 1.57357 298.57357 150.07357 15007.35735 1.57357 298.57358 150.07357 15007.35753 1.57357 298.57357 150.07357 15007.35700 2020-01-01 2020-01-02 2020-01-01 00:08:44 2020-01-02 03:37:05 2020-01-01 00:08:44.000 2020-01-02 03:37:05.000 524 99425 49974.5 4997450 524 99425 49974.5 4997450 -32646 32492 4754.66 475466 -127 124 -1.82 -182 -525 100 10515 99426 1.57657 298.57657 150.07657 15007.65765 1.57657 298.57657 150.07657 15007.65783 1.57657 298.57657 150.07656999999986 15007.65700 2020-01-01 2020-01-02 2020-01-01 00:08:45 2020-01-02 03:37:06 2020-01-01 00:08:45.000 2020-01-02 03:37:06.000 525 99426 49975.5 4997550 525 99426 49975.5 4997550 -32645 32493 4755.66 475566 -126 125 -0.82 -82 -526 100 10516 99427 1.57957 298.57957 150.07957 15007.95795 1.57957 298.5796 150.07957 15007.95795 1.57957 298.57957 150.0795699999999 15007.95700 2020-01-01 2020-01-02 2020-01-01 00:08:46 2020-01-02 03:37:07 2020-01-01 00:08:46.000 2020-01-02 03:37:07.000 526 99427 49976.5 4997650 526 99427 49976.5 4997650 -32644 32494 4756.66 475666 -125 126 0.18 18 -527 100 10517 99428 1.58258 298.58258 150.08258 15008.25825 1.58258 298.58258 150.08258 15008.25811 1.58258 298.58258 150.08258000000015 15008.25800 2020-01-01 2020-01-02 2020-01-01 00:08:47 2020-01-02 03:37:08 2020-01-01 00:08:47.000 2020-01-02 03:37:08.000 527 99428 49977.5 4997750 527 99428 49977.5 4997750 -32643 32495 4757.66 475766 -124 127 1.18 118 -528 100 10518 99429 1.58558 298.58558 150.08558 15008.55855 1.58558 298.58557 150.08558 15008.5584 1.58558 298.58558 150.08558000000025 15008.55800 2020-01-01 2020-01-02 2020-01-01 00:08:48 2020-01-02 03:37:09 2020-01-01 00:08:48.000 2020-01-02 03:37:09.000 528 99429 49978.5 4997850 528 99429 49978.5 4997850 -32642 32496 4758.66 475866 -128 127 -0.38 -38 -529 100 10519 99430 1.58858 298.58858 150.08858 15008.85885 1.58858 298.5886 150.08859 15008.859 1.58858 298.58858 150.08857999999975 15008.85800 2020-01-01 2020-01-02 2020-01-01 00:08:49 2020-01-02 03:37:10 2020-01-01 00:08:49.000 2020-01-02 03:37:10.000 529 99430 49979.5 4997950 529 99430 49979.5 4997950 -32641 32497 4759.66 475966 -128 127 -1.94 -194 +521 100 10511 99422 1.56456 298.56456 150.06456 15006.45645 1.56456 298.56458 150.06456 15006.45647 1.56456 298.56456 150.0645600000001 15006.45600 2020-01-01 2020-01-02 2020-01-01 00:08:41 2020-01-02 03:37:02 2020-01-01 00:08:41.000 2020-01-02 03:37:02.000 521 99422 49971.5 4997150 521 99422 49971.5 4997150 -32649 32489 4751.66 475166 -124 127 0.3 30 +522 100 10512 99423 1.56756 298.56756 150.06756 15006.75675 1.56756 298.56757 150.06756 15006.75661 1.56756 298.56756 150.06756000000004 15006.75600 2020-01-01 2020-01-02 2020-01-01 00:08:42 2020-01-02 03:37:03 2020-01-01 00:08:42.000 2020-01-02 03:37:03.000 522 99423 49972.5 4997250 522 99423 49972.5 4997250 -32648 32490 4752.66 475266 -128 127 -1.26 -126 +523 100 10513 99424 1.57057 298.57057 150.07057 15007.05705 1.57057 298.57056 150.07056 15007.05694 1.57057 298.57057 150.07056999999992 15007.05700 2020-01-01 2020-01-02 2020-01-01 00:08:43 2020-01-02 03:37:04 2020-01-01 00:08:43.000 2020-01-02 03:37:04.000 523 99424 49973.5 4997350 523 99424 49973.5 4997350 -32647 32491 4753.66 475366 -128 123 -2.82 -282 +524 100 10514 99425 1.57357 298.57357 150.07357 15007.35735 1.57357 298.57358 150.07357 15007.35753 1.57357 298.57357 150.07356999999996 15007.35700 2020-01-01 2020-01-02 2020-01-01 00:08:44 2020-01-02 03:37:05 2020-01-01 00:08:44.000 2020-01-02 03:37:05.000 524 99425 49974.5 4997450 524 99425 49974.5 4997450 -32646 32492 4754.66 475466 -127 124 -1.82 -182 +525 100 10515 99426 1.57657 298.57657 150.07657 15007.65765 1.57657 298.57657 150.07657 15007.65783 1.57657 298.57657 150.07656999999998 15007.65700 2020-01-01 2020-01-02 2020-01-01 00:08:45 2020-01-02 03:37:06 2020-01-01 00:08:45.000 2020-01-02 03:37:06.000 525 99426 49975.5 4997550 525 99426 49975.5 4997550 -32645 32493 4755.66 475566 -126 125 -0.82 -82 +526 100 10516 99427 1.57957 298.57957 150.07957 15007.95795 1.57957 298.5796 150.07957 15007.95795 1.57957 298.57957 150.07956999999993 15007.95700 2020-01-01 2020-01-02 2020-01-01 00:08:46 2020-01-02 03:37:07 2020-01-01 00:08:46.000 2020-01-02 03:37:07.000 526 99427 49976.5 4997650 526 99427 49976.5 4997650 -32644 32494 4756.66 475666 -125 126 0.18 18 +527 100 10517 99428 1.58258 298.58258 150.08258 15008.25825 1.58258 298.58258 150.08258 15008.25811 1.58258 298.58258 150.0825800000001 15008.25800 2020-01-01 2020-01-02 2020-01-01 00:08:47 2020-01-02 03:37:08 2020-01-01 00:08:47.000 2020-01-02 03:37:08.000 527 99428 49977.5 4997750 527 99428 49977.5 4997750 -32643 32495 4757.66 475766 -124 127 1.18 118 +528 100 10518 99429 1.58558 298.58558 150.08558 15008.55855 1.58558 298.58557 150.08558 15008.5584 1.58558 298.58558 150.08558000000005 15008.55800 2020-01-01 2020-01-02 2020-01-01 00:08:48 2020-01-02 03:37:09 2020-01-01 00:08:48.000 2020-01-02 03:37:09.000 528 99429 49978.5 4997850 528 99429 49978.5 4997850 -32642 32496 4758.66 475866 -128 127 -0.38 -38 +529 100 10519 99430 1.58858 298.58858 150.08858 15008.85885 1.58858 298.5886 150.08859 15008.859 1.58858 298.58858 150.08857999999992 15008.85800 2020-01-01 2020-01-02 2020-01-01 00:08:49 2020-01-02 03:37:10 2020-01-01 00:08:49.000 2020-01-02 03:37:10.000 529 99430 49979.5 4997950 529 99430 49979.5 4997950 -32641 32497 4759.66 475966 -128 127 -1.94 -194 53 102 10043 99953 0.15915 300.15915 150.15915 15166.07507 0.15915 300.15915 150.15915 15166.07511 0.15915 300.15915 150.15915 15166.07415 2020-01-01 2020-01-02 2020-01-01 00:00:53 2020-01-02 03:45:53 2020-01-01 00:00:53.000 2020-01-02 03:45:53.000 53 99953 50003 5050303 53 99953 50003 5050303 -32516 32419 4582.009900990099 462783 -124 127 -0.6435643564356436 -65 530 100 10520 99431 1.59159 298.59159 150.09159 15009.15915 1.59159 298.59158 150.09159 15009.15929 1.59159 298.59159 150.09159 15009.15900 2020-01-01 2020-01-02 2020-01-01 00:08:50 2020-01-02 03:37:11 2020-01-01 00:08:50.000 2020-01-02 03:37:11.000 530 99431 49980.5 4998050 530 99431 49980.5 4998050 -32640 32498 4760.66 476066 -128 124 -3.5 -350 -531 100 10521 99432 1.59459 298.59459 150.09459 15009.45945 1.59459 298.5946 150.09459 15009.45941 1.59459 298.59459 150.0945900000001 15009.45900 2020-01-01 2020-01-02 2020-01-01 00:08:51 2020-01-02 03:37:12 2020-01-01 00:08:51.000 2020-01-02 03:37:12.000 531 99432 49981.5 4998150 531 99432 49981.5 4998150 -32639 32499 4761.66 476166 -127 125 -2.5 -250 -532 100 10522 99433 1.59759 298.59759 150.09759 15009.75975 1.59759 298.5976 150.09759 15009.75958 1.59759 298.59759 150.0975899999999 15009.75900 2020-01-01 2020-01-02 2020-01-01 00:08:52 2020-01-02 03:37:13 2020-01-01 00:08:52.000 2020-01-02 03:37:13.000 532 99433 49982.5 4998250 532 99433 49982.5 4998250 -32638 32500 4762.66 476266 -126 126 -1.5 -150 -533 100 10523 99434 1.6006 298.6006 150.1006 15010.06006 1.6006 298.6006 150.10059 15010.05988 1.60060 298.60060 150.10059999999984 15010.06000 2020-01-01 2020-01-02 2020-01-01 00:08:53 2020-01-02 03:37:14 2020-01-01 00:08:53.000 2020-01-02 03:37:14.000 533 99434 49983.5 4998350 533 99434 49983.5 4998350 -32637 32501 4763.66 476366 -125 127 -0.5 -50 -534 100 10524 99435 1.6036 298.6036 150.1036 15010.36036 1.6036 298.6036 150.1036 15010.36063 1.60360 298.60360 150.10360000000026 15010.36000 2020-01-01 2020-01-02 2020-01-01 00:08:54 2020-01-02 03:37:15 2020-01-01 00:08:54.000 2020-01-02 03:37:15.000 534 99435 49984.5 4998450 534 99435 49984.5 4998450 -32636 32502 4764.66 476466 -128 127 -2.06 -206 -535 100 10525 99436 1.6066 298.6066 150.1066 15010.66066 1.6066 298.6066 150.1066 15010.66077 1.60660 298.60660 150.10659999999976 15010.66000 2020-01-01 2020-01-02 2020-01-01 00:08:55 2020-01-02 03:37:16 2020-01-01 00:08:55.000 2020-01-02 03:37:16.000 535 99436 49985.5 4998550 535 99436 49985.5 4998550 -32635 32503 4765.66 476566 -128 127 -3.62 -362 -536 100 10526 99437 1.6096 298.6096 150.1096 15010.96096 1.6096 298.60962 150.1096 15010.96092 1.60960 298.60960 150.1095999999998 15010.96000 2020-01-01 2020-01-02 2020-01-01 00:08:56 2020-01-02 03:37:17 2020-01-01 00:08:56.000 2020-01-02 03:37:17.000 536 99437 49986.5 4998650 536 99437 49986.5 4998650 -32634 32504 4766.66 476666 -128 123 -5.18 -518 -537 100 10527 99438 1.61261 298.61261 150.11261 15011.26126 1.61261 298.6126 150.11261 15011.26105 1.61261 298.61261 150.1126100000001 15011.26100 2020-01-01 2020-01-02 2020-01-01 00:08:57 2020-01-02 03:37:18 2020-01-01 00:08:57.000 2020-01-02 03:37:18.000 537 99438 49987.5 4998750 537 99438 49987.5 4998750 -32633 32505 4767.66 476766 -127 124 -4.18 -418 -538 100 10528 99439 1.61561 298.61561 150.11561 15011.56156 1.61561 298.6156 150.11561 15011.56135 1.61561 298.61561 150.11561000000015 15011.56100 2020-01-01 2020-01-02 2020-01-01 00:08:58 2020-01-02 03:37:19 2020-01-01 00:08:58.000 2020-01-02 03:37:19.000 538 99439 49988.5 4998850 538 99439 49988.5 4998850 -32632 32506 4768.66 476866 -126 125 -3.18 -318 -539 100 10529 99440 1.61861 298.61861 150.11861 15011.86186 1.61861 298.61862 150.11862 15011.8621 1.61861 298.61861 150.11860999999993 15011.86100 2020-01-01 2020-01-02 2020-01-01 00:08:59 2020-01-02 03:37:20 2020-01-01 00:08:59.000 2020-01-02 03:37:20.000 539 99440 49989.5 4998950 539 99440 49989.5 4998950 -32631 32507 4769.66 476966 -125 126 -2.18 -218 -54 102 10044 99954 0.16216 300.16216 150.16216 15166.37837 0.16216 300.16217 150.16216 15166.37822 0.16216 300.16216 150.1621599999999 15166.37816 2020-01-01 2020-01-02 2020-01-01 00:00:54 2020-01-02 03:45:54 2020-01-01 00:00:54.000 2020-01-02 03:45:54.000 54 99954 50004 5050404 54 99954 50004 5050404 -32515 32420 4583.009900990099 462884 -128 127 -2.1782178217821784 -220 +531 100 10521 99432 1.59459 298.59459 150.09459 15009.45945 1.59459 298.5946 150.09459 15009.45941 1.59459 298.59459 150.09459000000004 15009.45900 2020-01-01 2020-01-02 2020-01-01 00:08:51 2020-01-02 03:37:12 2020-01-01 00:08:51.000 2020-01-02 03:37:12.000 531 99432 49981.5 4998150 531 99432 49981.5 4998150 -32639 32499 4761.66 476166 -127 125 -2.5 -250 +532 100 10522 99433 1.59759 298.59759 150.09759 15009.75975 1.59759 298.5976 150.09759 15009.75958 1.59759 298.59759 150.09758999999997 15009.75900 2020-01-01 2020-01-02 2020-01-01 00:08:52 2020-01-02 03:37:13 2020-01-01 00:08:52.000 2020-01-02 03:37:13.000 532 99433 49982.5 4998250 532 99433 49982.5 4998250 -32638 32500 4762.66 476266 -126 126 -1.5 -150 +533 100 10523 99434 1.6006 298.6006 150.1006 15010.06006 1.6006 298.6006 150.10059 15010.05988 1.60060 298.60060 150.1005999999999 15010.06000 2020-01-01 2020-01-02 2020-01-01 00:08:53 2020-01-02 03:37:14 2020-01-01 00:08:53.000 2020-01-02 03:37:14.000 533 99434 49983.5 4998350 533 99434 49983.5 4998350 -32637 32501 4763.66 476366 -125 127 -0.5 -50 +534 100 10524 99435 1.6036 298.6036 150.1036 15010.36036 1.6036 298.6036 150.1036 15010.36063 1.60360 298.60360 150.10360000000009 15010.36000 2020-01-01 2020-01-02 2020-01-01 00:08:54 2020-01-02 03:37:15 2020-01-01 00:08:54.000 2020-01-02 03:37:15.000 534 99435 49984.5 4998450 534 99435 49984.5 4998450 -32636 32502 4764.66 476466 -128 127 -2.06 -206 +535 100 10525 99436 1.6066 298.6066 150.1066 15010.66066 1.6066 298.6066 150.1066 15010.66077 1.60660 298.60660 150.10659999999993 15010.66000 2020-01-01 2020-01-02 2020-01-01 00:08:55 2020-01-02 03:37:16 2020-01-01 00:08:55.000 2020-01-02 03:37:16.000 535 99436 49985.5 4998550 535 99436 49985.5 4998550 -32635 32503 4765.66 476566 -128 127 -3.62 -362 +536 100 10526 99437 1.6096 298.6096 150.1096 15010.96096 1.6096 298.60962 150.1096 15010.96092 1.60960 298.60960 150.1095999999999 15010.96000 2020-01-01 2020-01-02 2020-01-01 00:08:56 2020-01-02 03:37:17 2020-01-01 00:08:56.000 2020-01-02 03:37:17.000 536 99437 49986.5 4998650 536 99437 49986.5 4998650 -32634 32504 4766.66 476666 -128 123 -5.18 -518 +537 100 10527 99438 1.61261 298.61261 150.11261 15011.26126 1.61261 298.6126 150.11261 15011.26105 1.61261 298.61261 150.11261000000007 15011.26100 2020-01-01 2020-01-02 2020-01-01 00:08:57 2020-01-02 03:37:18 2020-01-01 00:08:57.000 2020-01-02 03:37:18.000 537 99438 49987.5 4998750 537 99438 49987.5 4998750 -32633 32505 4767.66 476766 -127 124 -4.18 -418 +538 100 10528 99439 1.61561 298.61561 150.11561 15011.56156 1.61561 298.6156 150.11561 15011.56135 1.61561 298.61561 150.11561000000003 15011.56100 2020-01-01 2020-01-02 2020-01-01 00:08:58 2020-01-02 03:37:19 2020-01-01 00:08:58.000 2020-01-02 03:37:19.000 538 99439 49988.5 4998850 538 99439 49988.5 4998850 -32632 32506 4768.66 476866 -126 125 -3.18 -318 +539 100 10529 99440 1.61861 298.61861 150.11861 15011.86186 1.61861 298.61862 150.11862 15011.8621 1.61861 298.61861 150.11860999999988 15011.86100 2020-01-01 2020-01-02 2020-01-01 00:08:59 2020-01-02 03:37:20 2020-01-01 00:08:59.000 2020-01-02 03:37:20.000 539 99440 49989.5 4998950 539 99440 49989.5 4998950 -32631 32507 4769.66 476966 -125 126 -2.18 -218 +54 102 10044 99954 0.16216 300.16216 150.16216 15166.37837 0.16216 300.16217 150.16216 15166.37822 0.16216 300.16216 150.16215999999994 15166.37816 2020-01-01 2020-01-02 2020-01-01 00:00:54 2020-01-02 03:45:54 2020-01-01 00:00:54.000 2020-01-02 03:45:54.000 54 99954 50004 5050404 54 99954 50004 5050404 -32515 32420 4583.009900990099 462884 -128 127 -2.1782178217821784 -220 540 100 10530 99441 1.62162 298.62162 150.12162 15012.16216 1.62162 298.6216 150.12162 15012.16224 1.62162 298.62162 150.12161999999992 15012.16200 2020-01-01 2020-01-02 2020-01-01 00:09:00 2020-01-02 03:37:21 2020-01-01 00:09:00.000 2020-01-02 03:37:21.000 540 99441 49990.5 4999050 540 99441 49990.5 4999050 -32630 32508 4770.66 477066 -124 127 -1.18 -118 541 100 10531 99442 1.62462 298.62462 150.12462 15012.46246 1.62462 298.62463 150.12462 15012.46239 1.62462 298.62462 150.12462 15012.46200 2020-01-01 2020-01-02 2020-01-01 00:09:01 2020-01-02 03:37:22 2020-01-01 00:09:01.000 2020-01-02 03:37:22.000 541 99442 49991.5 4999150 541 99442 49991.5 4999150 -32629 32509 4771.66 477166 -128 127 -2.74 -274 -542 100 10532 99443 1.62762 298.62762 150.12762 15012.76276 1.62762 298.62762 150.12762 15012.76252 1.62762 298.62762 150.1276199999999 15012.76200 2020-01-01 2020-01-02 2020-01-01 00:09:02 2020-01-02 03:37:23 2020-01-01 00:09:02.000 2020-01-02 03:37:23.000 542 99443 49992.5 4999250 542 99443 49992.5 4999250 -32628 32510 4772.66 477266 -128 123 -4.3 -430 -543 100 10533 99444 1.63063 298.63063 150.13063 15013.06306 1.63063 298.63065 150.13063 15013.06327 1.63063 298.63063 150.13062999999977 15013.06300 2020-01-01 2020-01-02 2020-01-01 00:09:03 2020-01-02 03:37:24 2020-01-01 00:09:03.000 2020-01-02 03:37:24.000 543 99444 49993.5 4999350 543 99444 49993.5 4999350 -32627 32511 4773.66 477366 -127 124 -3.3 -330 -544 100 10534 99445 1.63363 298.63363 150.13363 15013.36336 1.63363 298.63364 150.13363 15013.36358 1.63363 298.63363 150.13363000000015 15013.36300 2020-01-01 2020-01-02 2020-01-01 00:09:04 2020-01-02 03:37:25 2020-01-01 00:09:04.000 2020-01-02 03:37:25.000 544 99445 49994.5 4999450 544 99445 49994.5 4999450 -32626 32512 4774.66 477466 -126 125 -2.3 -230 -545 100 10535 99446 1.63663 298.63663 150.13663 15013.66366 1.63663 298.63663 150.13663 15013.6637 1.63663 298.63663 150.13663000000028 15013.66300 2020-01-01 2020-01-02 2020-01-01 00:09:05 2020-01-02 03:37:26 2020-01-01 00:09:05.000 2020-01-02 03:37:26.000 545 99446 49995.5 4999550 545 99446 49995.5 4999550 -32625 32513 4775.66 477566 -125 126 -1.3 -130 -546 100 10536 99447 1.63963 298.63963 150.13963 15013.96396 1.63963 298.63965 150.13963 15013.96385 1.63963 298.63963 150.13962999999978 15013.96300 2020-01-01 2020-01-02 2020-01-01 00:09:06 2020-01-02 03:37:27 2020-01-01 00:09:06.000 2020-01-02 03:37:27.000 546 99447 49996.5 4999650 546 99447 49996.5 4999650 -32624 32514 4776.66 477666 -124 127 -0.3 -30 +542 100 10532 99443 1.62762 298.62762 150.12762 15012.76276 1.62762 298.62762 150.12762 15012.76252 1.62762 298.62762 150.12761999999998 15012.76200 2020-01-01 2020-01-02 2020-01-01 00:09:02 2020-01-02 03:37:23 2020-01-01 00:09:02.000 2020-01-02 03:37:23.000 542 99443 49992.5 4999250 542 99443 49992.5 4999250 -32628 32510 4772.66 477266 -128 123 -4.3 -430 +543 100 10533 99444 1.63063 298.63063 150.13063 15013.06306 1.63063 298.63065 150.13063 15013.06327 1.63063 298.63063 150.13062999999994 15013.06300 2020-01-01 2020-01-02 2020-01-01 00:09:03 2020-01-02 03:37:24 2020-01-01 00:09:03.000 2020-01-02 03:37:24.000 543 99444 49993.5 4999350 543 99444 49993.5 4999350 -32627 32511 4773.66 477366 -127 124 -3.3 -330 +544 100 10534 99445 1.63363 298.63363 150.13363 15013.36336 1.63363 298.63364 150.13363 15013.36358 1.63363 298.63363 150.13363000000004 15013.36300 2020-01-01 2020-01-02 2020-01-01 00:09:04 2020-01-02 03:37:25 2020-01-01 00:09:04.000 2020-01-02 03:37:25.000 544 99445 49994.5 4999450 544 99445 49994.5 4999450 -32626 32512 4774.66 477466 -126 125 -2.3 -230 +545 100 10535 99446 1.63663 298.63663 150.13663 15013.66366 1.63663 298.63663 150.13663 15013.6637 1.63663 298.63663 150.13663000000008 15013.66300 2020-01-01 2020-01-02 2020-01-01 00:09:05 2020-01-02 03:37:26 2020-01-01 00:09:05.000 2020-01-02 03:37:26.000 545 99446 49995.5 4999550 545 99446 49995.5 4999550 -32625 32513 4775.66 477566 -125 126 -1.3 -130 +546 100 10536 99447 1.63963 298.63963 150.13963 15013.96396 1.63963 298.63965 150.13963 15013.96385 1.63963 298.63963 150.1396299999999 15013.96300 2020-01-01 2020-01-02 2020-01-01 00:09:06 2020-01-02 03:37:27 2020-01-01 00:09:06.000 2020-01-02 03:37:27.000 546 99447 49996.5 4999650 546 99447 49996.5 4999650 -32624 32514 4776.66 477666 -124 127 -0.3 -30 547 100 10537 99448 1.64264 298.64264 150.14264 15014.26426 1.64264 298.64264 150.14263 15014.26399 1.64264 298.64264 150.14264 15014.26400 2020-01-01 2020-01-02 2020-01-01 00:09:07 2020-01-02 03:37:28 2020-01-01 00:09:07.000 2020-01-02 03:37:28.000 547 99448 49997.5 4999750 547 99448 49997.5 4999750 -32623 32515 4777.66 477766 -128 127 -1.86 -186 -548 100 10538 99449 1.64564 298.64564 150.14564 15014.56456 1.64564 298.64566 150.14564 15014.56474 1.64564 298.64564 150.14564000000013 15014.56400 2020-01-01 2020-01-02 2020-01-01 00:09:08 2020-01-02 03:37:29 2020-01-01 00:09:08.000 2020-01-02 03:37:29.000 548 99449 49998.5 4999850 548 99449 49998.5 4999850 -32622 32516 4778.66 477866 -128 123 -3.42 -342 -549 100 10539 99450 1.64864 298.64864 150.14864 15014.86486 1.64864 298.64865 150.14865 15014.86504 1.64864 298.64864 150.14863999999994 15014.86400 2020-01-01 2020-01-02 2020-01-01 00:09:09 2020-01-02 03:37:30 2020-01-01 00:09:09.000 2020-01-02 03:37:30.000 549 99450 49999.5 4999950 549 99450 49999.5 4999950 -32621 32517 4779.66 477966 -127 124 -2.42 -242 +548 100 10538 99449 1.64564 298.64564 150.14564 15014.56456 1.64564 298.64566 150.14564 15014.56474 1.64564 298.64564 150.14564000000007 15014.56400 2020-01-01 2020-01-02 2020-01-01 00:09:08 2020-01-02 03:37:29 2020-01-01 00:09:08.000 2020-01-02 03:37:29.000 548 99449 49998.5 4999850 548 99449 49998.5 4999850 -32622 32516 4778.66 477866 -128 123 -3.42 -342 +549 100 10539 99450 1.64864 298.64864 150.14864 15014.86486 1.64864 298.64865 150.14865 15014.86504 1.64864 298.64864 150.14863999999997 15014.86400 2020-01-01 2020-01-02 2020-01-01 00:09:09 2020-01-02 03:37:30 2020-01-01 00:09:09.000 2020-01-02 03:37:30.000 549 99450 49999.5 4999950 549 99450 49999.5 4999950 -32621 32517 4779.66 477966 -127 124 -2.42 -242 55 102 10045 99955 0.16516 300.16516 150.16516 15166.68168 0.16516 300.16516 150.16516 15166.68151 0.16516 300.16516 150.16515999999996 15166.68116 2020-01-01 2020-01-02 2020-01-01 00:00:55 2020-01-02 03:45:55 2020-01-01 00:00:55.000 2020-01-02 03:45:55.000 55 99955 50005 5050505 55 99955 50005 5050505 -32514 32421 4584.009900990099 462985 -128 123 -3.712871287128713 -375 -550 100 10540 99451 1.65165 298.65165 150.15165 15015.16516 1.65165 298.65164 150.15165 15015.16521 1.65165 298.65165 150.15164999999982 15015.16500 2020-01-01 2020-01-02 2020-01-01 00:09:10 2020-01-02 03:37:31 2020-01-01 00:09:10.000 2020-01-02 03:37:31.000 550 99451 50000.5 5000050 550 99451 50000.5 5000050 -32620 32518 4780.66 478066 -126 125 -1.42 -142 -551 100 10541 99452 1.65465 298.65465 150.15465 15015.46546 1.65465 298.65466 150.15465 15015.46533 1.65465 298.65465 150.1546500000003 15015.46500 2020-01-01 2020-01-02 2020-01-01 00:09:11 2020-01-02 03:37:32 2020-01-01 00:09:11.000 2020-01-02 03:37:32.000 551 99452 50001.5 5000150 551 99452 50001.5 5000150 -32619 32519 4781.66 478166 -125 126 -0.42 -42 -552 100 10542 99453 1.65765 298.65765 150.15765 15015.76576 1.65765 298.65765 150.15765 15015.76562 1.65765 298.65765 150.1576499999998 15015.76500 2020-01-01 2020-01-02 2020-01-01 00:09:12 2020-01-02 03:37:33 2020-01-01 00:09:12.000 2020-01-02 03:37:33.000 552 99453 50002.5 5000250 552 99453 50002.5 5000250 -32618 32520 4782.66 478266 -124 127 0.58 58 -553 100 10543 99454 1.66066 298.66066 150.16066 15016.06606 1.66066 298.66068 150.16066 15016.06621 1.66066 298.66066 150.16065999999967 15016.06600 2020-01-01 2020-01-02 2020-01-01 00:09:13 2020-01-02 03:37:34 2020-01-01 00:09:13.000 2020-01-02 03:37:34.000 553 99454 50003.5 5000350 553 99454 50003.5 5000350 -32617 32521 4783.66 478366 -128 127 -0.98 -98 -554 100 10544 99455 1.66366 298.66366 150.16366 15016.36636 1.66366 298.66367 150.16366 15016.36651 1.66366 298.66366 150.16366000000014 15016.36600 2020-01-01 2020-01-02 2020-01-01 00:09:14 2020-01-02 03:37:35 2020-01-01 00:09:14.000 2020-01-02 03:37:35.000 554 99455 50004.5 5000450 554 99455 50004.5 5000450 -32616 32522 4784.66 478466 -128 127 -2.54 -254 -555 100 10545 99456 1.66666 298.66666 150.16666 15016.66666 1.66666 298.66666 150.16666 15016.66668 1.66666 298.66666 150.16666000000018 15016.66600 2020-01-01 2020-01-02 2020-01-01 00:09:15 2020-01-02 03:37:36 2020-01-01 00:09:15.000 2020-01-02 03:37:36.000 555 99456 50005.5 5000550 555 99456 50005.5 5000550 -32615 32523 4785.66 478566 -128 124 -4.1 -410 -556 100 10546 99457 1.66966 298.66966 150.16966 15016.96696 1.66966 298.66968 150.16966 15016.9668 1.66966 298.66966 150.16965999999968 15016.96600 2020-01-01 2020-01-02 2020-01-01 00:09:16 2020-01-02 03:37:37 2020-01-01 00:09:16.000 2020-01-02 03:37:37.000 556 99457 50006.5 5000650 556 99457 50006.5 5000650 -32614 32524 4786.66 478666 -127 125 -3.1 -310 +550 100 10540 99451 1.65165 298.65165 150.15165 15015.16516 1.65165 298.65164 150.15165 15015.16521 1.65165 298.65165 150.1516499999999 15015.16500 2020-01-01 2020-01-02 2020-01-01 00:09:10 2020-01-02 03:37:31 2020-01-01 00:09:10.000 2020-01-02 03:37:31.000 550 99451 50000.5 5000050 550 99451 50000.5 5000050 -32620 32518 4780.66 478066 -126 125 -1.42 -142 +551 100 10541 99452 1.65465 298.65465 150.15465 15015.46546 1.65465 298.65466 150.15465 15015.46533 1.65465 298.65465 150.15465000000012 15015.46500 2020-01-01 2020-01-02 2020-01-01 00:09:11 2020-01-02 03:37:32 2020-01-01 00:09:11.000 2020-01-02 03:37:32.000 551 99452 50001.5 5000150 551 99452 50001.5 5000150 -32619 32519 4781.66 478166 -125 126 -0.42 -42 +552 100 10542 99453 1.65765 298.65765 150.15765 15015.76576 1.65765 298.65765 150.15765 15015.76562 1.65765 298.65765 150.15764999999996 15015.76500 2020-01-01 2020-01-02 2020-01-01 00:09:12 2020-01-02 03:37:33 2020-01-01 00:09:12.000 2020-01-02 03:37:33.000 552 99453 50002.5 5000250 552 99453 50002.5 5000250 -32618 32520 4782.66 478266 -124 127 0.58 58 +553 100 10543 99454 1.66066 298.66066 150.16066 15016.06606 1.66066 298.66068 150.16066 15016.06621 1.66066 298.66066 150.16065999999984 15016.06600 2020-01-01 2020-01-02 2020-01-01 00:09:13 2020-01-02 03:37:34 2020-01-01 00:09:13.000 2020-01-02 03:37:34.000 553 99454 50003.5 5000350 553 99454 50003.5 5000350 -32617 32521 4783.66 478366 -128 127 -0.98 -98 +554 100 10544 99455 1.66366 298.66366 150.16366 15016.36636 1.66366 298.66367 150.16366 15016.36651 1.66366 298.66366 150.16366000000008 15016.36600 2020-01-01 2020-01-02 2020-01-01 00:09:14 2020-01-02 03:37:35 2020-01-01 00:09:14.000 2020-01-02 03:37:35.000 554 99455 50004.5 5000450 554 99455 50004.5 5000450 -32616 32522 4784.66 478466 -128 127 -2.54 -254 +555 100 10545 99456 1.66666 298.66666 150.16666 15016.66666 1.66666 298.66666 150.16666 15016.66668 1.66666 298.66666 150.16666000000004 15016.66600 2020-01-01 2020-01-02 2020-01-01 00:09:15 2020-01-02 03:37:36 2020-01-01 00:09:15.000 2020-01-02 03:37:36.000 555 99456 50005.5 5000550 555 99456 50005.5 5000550 -32615 32523 4785.66 478566 -128 124 -4.1 -410 +556 100 10546 99457 1.66966 298.66966 150.16966 15016.96696 1.66966 298.66968 150.16966 15016.9668 1.66966 298.66966 150.16965999999985 15016.96600 2020-01-01 2020-01-02 2020-01-01 00:09:16 2020-01-02 03:37:37 2020-01-01 00:09:16.000 2020-01-02 03:37:37.000 556 99457 50006.5 5000650 556 99457 50006.5 5000650 -32614 32524 4786.66 478666 -127 125 -3.1 -310 557 100 10547 99458 1.67267 298.67267 150.17267 15017.26726 1.67267 298.67267 150.17267 15017.26709 1.67267 298.67267 150.17266999999995 15017.26700 2020-01-01 2020-01-02 2020-01-01 00:09:17 2020-01-02 03:37:38 2020-01-01 00:09:17.000 2020-01-02 03:37:38.000 557 99458 50007.5 5000750 557 99458 50007.5 5000750 -32613 32525 4787.66 478766 -126 126 -2.1 -210 -558 100 10548 99459 1.67567 298.67567 150.17567 15017.56756 1.67567 298.6757 150.17567 15017.56769 1.67567 298.67567 150.17567000000003 15017.56700 2020-01-01 2020-01-02 2020-01-01 00:09:18 2020-01-02 03:37:39 2020-01-01 00:09:18.000 2020-01-02 03:37:39.000 558 99459 50008.5 5000850 558 99459 50008.5 5000850 -32612 32526 4788.66 478866 -125 127 -1.1 -110 -559 100 10549 99460 1.67867 298.67867 150.17867 15017.86786 1.67867 298.67868 150.17868 15017.86802 1.67867 298.67867 150.17866999999987 15017.86700 2020-01-01 2020-01-02 2020-01-01 00:09:19 2020-01-02 03:37:40 2020-01-01 00:09:19.000 2020-01-02 03:37:40.000 559 99460 50009.5 5000950 559 99460 50009.5 5000950 -32611 32527 4789.66 478966 -128 127 -2.66 -266 -56 102 10046 99956 0.16816 300.16816 150.16816 15166.98498 0.16816 300.16818 150.16816 15166.98512 0.16816 300.16816 150.16815999999986 15166.98416 2020-01-01 2020-01-02 2020-01-01 00:00:56 2020-01-02 03:45:56 2020-01-01 00:00:56.000 2020-01-02 03:45:56.000 56 99956 50006 5050606 56 99956 50006 5050606 -32513 32422 4585.009900990099 463086 -127 124 -2.712871287128713 -274 -560 100 10550 99461 1.68168 298.68168 150.18168 15018.16816 1.68168 298.68167 150.18168 15018.16815 1.68168 298.68168 150.1816799999998 15018.16800 2020-01-01 2020-01-02 2020-01-01 00:09:20 2020-01-02 03:37:41 2020-01-01 00:09:20.000 2020-01-02 03:37:41.000 560 99461 50010.5 5001050 560 99461 50010.5 5001050 -32610 32528 4790.66 479066 -128 127 -4.22 -422 -561 100 10551 99462 1.68468 298.68468 150.18468 15018.46846 1.68468 298.6847 150.18468 15018.46826 1.68468 298.68468 150.18468000000018 15018.46800 2020-01-01 2020-01-02 2020-01-01 00:09:21 2020-01-02 03:37:42 2020-01-01 00:09:21.000 2020-01-02 03:37:42.000 561 99462 50011.5 5001150 561 99462 50011.5 5001150 -32609 32529 4791.66 479166 -128 123 -5.78 -578 -562 100 10552 99463 1.68768 298.68768 150.18768 15018.76876 1.68768 298.68768 150.18768 15018.76856 1.68768 298.68768 150.18767999999972 15018.76800 2020-01-01 2020-01-02 2020-01-01 00:09:22 2020-01-02 03:37:43 2020-01-01 00:09:22.000 2020-01-02 03:37:43.000 562 99463 50012.5 5001250 562 99463 50012.5 5001250 -32608 32530 4792.66 479266 -127 124 -4.78 -478 -563 100 10553 99464 1.69069 298.69069 150.19069 15019.06906 1.69069 298.6907 150.19069 15019.06915 1.69069 298.69069 150.19068999999996 15019.06900 2020-01-01 2020-01-02 2020-01-01 00:09:23 2020-01-02 03:37:44 2020-01-01 00:09:23.000 2020-01-02 03:37:44.000 563 99464 50013.5 5001350 563 99464 50013.5 5001350 -32607 32531 4793.66 479366 -126 125 -3.78 -378 +558 100 10548 99459 1.67567 298.67567 150.17567 15017.56756 1.67567 298.6757 150.17567 15017.56769 1.67567 298.67567 150.17567 15017.56700 2020-01-01 2020-01-02 2020-01-01 00:09:18 2020-01-02 03:37:39 2020-01-01 00:09:18.000 2020-01-02 03:37:39.000 558 99459 50008.5 5000850 558 99459 50008.5 5000850 -32612 32526 4788.66 478866 -125 127 -1.1 -110 +559 100 10549 99460 1.67867 298.67867 150.17867 15017.86786 1.67867 298.67868 150.17868 15017.86802 1.67867 298.67867 150.17866999999998 15017.86700 2020-01-01 2020-01-02 2020-01-01 00:09:19 2020-01-02 03:37:40 2020-01-01 00:09:19.000 2020-01-02 03:37:40.000 559 99460 50009.5 5000950 559 99460 50009.5 5000950 -32611 32527 4789.66 478966 -128 127 -2.66 -266 +56 102 10046 99956 0.16816 300.16816 150.16816 15166.98498 0.16816 300.16818 150.16816 15166.98512 0.16816 300.16816 150.16815999999997 15166.98416 2020-01-01 2020-01-02 2020-01-01 00:00:56 2020-01-02 03:45:56 2020-01-01 00:00:56.000 2020-01-02 03:45:56.000 56 99956 50006 5050606 56 99956 50006 5050606 -32513 32422 4585.009900990099 463086 -127 124 -2.712871287128713 -274 +560 100 10550 99461 1.68168 298.68168 150.18168 15018.16816 1.68168 298.68167 150.18168 15018.16815 1.68168 298.68168 150.18167999999991 15018.16800 2020-01-01 2020-01-02 2020-01-01 00:09:20 2020-01-02 03:37:41 2020-01-01 00:09:20.000 2020-01-02 03:37:41.000 560 99461 50010.5 5001050 560 99461 50010.5 5001050 -32610 32528 4790.66 479066 -128 127 -4.22 -422 +561 100 10551 99462 1.68468 298.68468 150.18468 15018.46846 1.68468 298.6847 150.18468 15018.46826 1.68468 298.68468 150.18468000000007 15018.46800 2020-01-01 2020-01-02 2020-01-01 00:09:21 2020-01-02 03:37:42 2020-01-01 00:09:21.000 2020-01-02 03:37:42.000 561 99462 50011.5 5001150 561 99462 50011.5 5001150 -32609 32529 4791.66 479166 -128 123 -5.78 -578 +562 100 10552 99463 1.68768 298.68768 150.18768 15018.76876 1.68768 298.68768 150.18768 15018.76856 1.68768 298.68768 150.18767999999992 15018.76800 2020-01-01 2020-01-02 2020-01-01 00:09:22 2020-01-02 03:37:43 2020-01-01 00:09:22.000 2020-01-02 03:37:43.000 562 99463 50012.5 5001250 562 99463 50012.5 5001250 -32608 32530 4792.66 479266 -127 124 -4.78 -478 +563 100 10553 99464 1.69069 298.69069 150.19069 15019.06906 1.69069 298.6907 150.19069 15019.06915 1.69069 298.69069 150.19069 15019.06900 2020-01-01 2020-01-02 2020-01-01 00:09:23 2020-01-02 03:37:44 2020-01-01 00:09:23.000 2020-01-02 03:37:44.000 563 99464 50013.5 5001350 563 99464 50013.5 5001350 -32607 32531 4793.66 479366 -126 125 -3.78 -378 564 100 10554 99465 1.69369 298.69369 150.19369 15019.36936 1.69369 298.6937 150.19369 15019.36948 1.69369 298.69369 150.19369000000003 15019.36900 2020-01-01 2020-01-02 2020-01-01 00:09:24 2020-01-02 03:37:45 2020-01-01 00:09:24.000 2020-01-02 03:37:45.000 564 99465 50014.5 5001450 564 99465 50014.5 5001450 -32606 32532 4794.66 479466 -125 126 -2.78 -278 -565 100 10555 99466 1.69669 298.69669 150.19669 15019.66966 1.69669 298.6967 150.19669 15019.66962 1.69669 298.69669 150.19669000000013 15019.66900 2020-01-01 2020-01-02 2020-01-01 00:09:25 2020-01-02 03:37:46 2020-01-01 00:09:25.000 2020-01-02 03:37:46.000 565 99466 50015.5 5001550 565 99466 50015.5 5001550 -32605 32533 4795.66 479566 -124 127 -1.78 -178 -566 100 10556 99467 1.69969 298.69969 150.19969 15019.96996 1.69969 298.6997 150.1997 15019.97037 1.69969 298.69969 150.19968999999998 15019.96900 2020-01-01 2020-01-02 2020-01-01 00:09:26 2020-01-02 03:37:47 2020-01-01 00:09:26.000 2020-01-02 03:37:47.000 566 99467 50016.5 5001650 566 99467 50016.5 5001650 -32604 32534 4796.66 479666 -128 127 -3.34 -334 -567 100 10557 99468 1.7027 298.7027 150.2027 15020.27027 1.7027 298.7027 150.2027 15020.27003 1.70270 298.70270 150.20269999999985 15020.27000 2020-01-01 2020-01-02 2020-01-01 00:09:27 2020-01-02 03:37:48 2020-01-01 00:09:27.000 2020-01-02 03:37:48.000 567 99468 50017.5 5001750 567 99468 50017.5 5001750 -32603 32535 4797.66 479766 -128 123 -4.9 -490 -568 100 10558 99469 1.7057 298.7057 150.2057 15020.57057 1.7057 298.70572 150.2057 15020.57066 1.70570 298.70570 150.20570000000032 15020.57000 2020-01-01 2020-01-02 2020-01-01 00:09:28 2020-01-02 03:37:49 2020-01-01 00:09:28.000 2020-01-02 03:37:49.000 568 99469 50018.5 5001850 568 99469 50018.5 5001850 -32602 32536 4798.66 479866 -127 124 -3.9 -390 -569 100 10559 99470 1.7087 298.7087 150.2087 15020.87087 1.7087 298.7087 150.2087 15020.87095 1.70870 298.70870 150.20869999999982 15020.87000 2020-01-01 2020-01-02 2020-01-01 00:09:29 2020-01-02 03:37:50 2020-01-01 00:09:29.000 2020-01-02 03:37:50.000 569 99470 50019.5 5001950 569 99470 50019.5 5001950 -32601 32537 4799.66 479966 -126 125 -2.9 -290 -57 102 10047 99957 0.17117 300.17117 150.17117 15167.28828 0.17117 300.17117 150.17117 15167.28841 0.17117 300.17117 150.17116999999973 15167.28817 2020-01-01 2020-01-02 2020-01-01 00:00:57 2020-01-02 03:45:57 2020-01-01 00:00:57.000 2020-01-02 03:45:57.000 57 99957 50007 5050707 57 99957 50007 5050707 -32512 32423 4586.009900990099 463187 -126 125 -1.7128712871287128 -173 -570 100 10560 99471 1.71171 298.71171 150.21171 15021.17117 1.71171 298.7117 150.21171 15021.17109 1.71171 298.71171 150.2117099999997 15021.17100 2020-01-01 2020-01-02 2020-01-01 00:09:30 2020-01-02 03:37:51 2020-01-01 00:09:30.000 2020-01-02 03:37:51.000 570 99471 50020.5 5002050 570 99471 50020.5 5002050 -32600 32538 4800.66 480066 -125 126 -1.9 -190 -571 100 10561 99472 1.71471 298.71471 150.21471 15021.47147 1.71471 298.71472 150.21471 15021.47184 1.71471 298.71471 150.21471000000017 15021.47100 2020-01-01 2020-01-02 2020-01-01 00:09:31 2020-01-02 03:37:52 2020-01-01 00:09:31.000 2020-01-02 03:37:52.000 571 99472 50021.5 5002150 571 99472 50021.5 5002150 -32599 32539 4801.66 480166 -124 127 -0.9 -90 -572 100 10562 99473 1.71771 298.71771 150.21771 15021.77177 1.71771 298.7177 150.21771 15021.7715 1.71771 298.71771 150.2177100000002 15021.77100 2020-01-01 2020-01-02 2020-01-01 00:09:32 2020-01-02 03:37:53 2020-01-01 00:09:32.000 2020-01-02 03:37:53.000 572 99473 50022.5 5002250 572 99473 50022.5 5002250 -32598 32540 4802.66 480266 -128 127 -2.46 -246 -573 100 10563 99474 1.72072 298.72072 150.22072 15022.07207 1.72072 298.72073 150.22072 15022.07212 1.72072 298.72072 150.22071999999986 15022.07200 2020-01-01 2020-01-02 2020-01-01 00:09:33 2020-01-02 03:37:54 2020-01-01 00:09:33.000 2020-01-02 03:37:54.000 573 99474 50023.5 5002350 573 99474 50023.5 5002350 -32597 32541 4803.66 480366 -128 123 -4.02 -402 +565 100 10555 99466 1.69669 298.69669 150.19669 15019.66966 1.69669 298.6967 150.19669 15019.66962 1.69669 298.69669 150.19669000000002 15019.66900 2020-01-01 2020-01-02 2020-01-01 00:09:25 2020-01-02 03:37:46 2020-01-01 00:09:25.000 2020-01-02 03:37:46.000 565 99466 50015.5 5001550 565 99466 50015.5 5001550 -32605 32533 4795.66 479566 -124 127 -1.78 -178 +566 100 10556 99467 1.69969 298.69969 150.19969 15019.96996 1.69969 298.6997 150.1997 15019.97037 1.69969 298.69969 150.19969 15019.96900 2020-01-01 2020-01-02 2020-01-01 00:09:26 2020-01-02 03:37:47 2020-01-01 00:09:26.000 2020-01-02 03:37:47.000 566 99467 50016.5 5001650 566 99467 50016.5 5001650 -32604 32534 4796.66 479666 -128 127 -3.34 -334 +567 100 10557 99468 1.7027 298.7027 150.2027 15020.27027 1.7027 298.7027 150.2027 15020.27003 1.70270 298.70270 150.2026999999999 15020.27000 2020-01-01 2020-01-02 2020-01-01 00:09:27 2020-01-02 03:37:48 2020-01-01 00:09:27.000 2020-01-02 03:37:48.000 567 99468 50017.5 5001750 567 99468 50017.5 5001750 -32603 32535 4797.66 479766 -128 123 -4.9 -490 +568 100 10558 99469 1.7057 298.7057 150.2057 15020.57057 1.7057 298.70572 150.2057 15020.57066 1.70570 298.70570 150.20570000000015 15020.57000 2020-01-01 2020-01-02 2020-01-01 00:09:28 2020-01-02 03:37:49 2020-01-01 00:09:28.000 2020-01-02 03:37:49.000 568 99469 50018.5 5001850 568 99469 50018.5 5001850 -32602 32536 4798.66 479866 -127 124 -3.9 -390 +569 100 10559 99470 1.7087 298.7087 150.2087 15020.87087 1.7087 298.7087 150.2087 15020.87095 1.70870 298.70870 150.20869999999996 15020.87000 2020-01-01 2020-01-02 2020-01-01 00:09:29 2020-01-02 03:37:50 2020-01-01 00:09:29.000 2020-01-02 03:37:50.000 569 99470 50019.5 5001950 569 99470 50019.5 5001950 -32601 32537 4799.66 479966 -126 125 -2.9 -290 +57 102 10047 99957 0.17117 300.17117 150.17117 15167.28828 0.17117 300.17117 150.17117 15167.28841 0.17117 300.17117 150.1711699999999 15167.28817 2020-01-01 2020-01-02 2020-01-01 00:00:57 2020-01-02 03:45:57 2020-01-01 00:00:57.000 2020-01-02 03:45:57.000 57 99957 50007 5050707 57 99957 50007 5050707 -32512 32423 4586.009900990099 463187 -126 125 -1.7128712871287128 -173 +570 100 10560 99471 1.71171 298.71171 150.21171 15021.17117 1.71171 298.7117 150.21171 15021.17109 1.71171 298.71171 150.21170999999987 15021.17100 2020-01-01 2020-01-02 2020-01-01 00:09:30 2020-01-02 03:37:51 2020-01-01 00:09:30.000 2020-01-02 03:37:51.000 570 99471 50020.5 5002050 570 99471 50020.5 5002050 -32600 32538 4800.66 480066 -125 126 -1.9 -190 +571 100 10561 99472 1.71471 298.71471 150.21471 15021.47147 1.71471 298.71472 150.21471 15021.47184 1.71471 298.71471 150.21471000000008 15021.47100 2020-01-01 2020-01-02 2020-01-01 00:09:31 2020-01-02 03:37:52 2020-01-01 00:09:31.000 2020-01-02 03:37:52.000 571 99472 50021.5 5002150 571 99472 50021.5 5002150 -32599 32539 4801.66 480166 -124 127 -0.9 -90 +572 100 10562 99473 1.71771 298.71771 150.21771 15021.77177 1.71771 298.7177 150.21771 15021.7715 1.71771 298.71771 150.21771000000004 15021.77100 2020-01-01 2020-01-02 2020-01-01 00:09:32 2020-01-02 03:37:53 2020-01-01 00:09:32.000 2020-01-02 03:37:53.000 572 99473 50022.5 5002250 572 99473 50022.5 5002250 -32598 32540 4802.66 480266 -128 127 -2.46 -246 +573 100 10563 99474 1.72072 298.72072 150.22072 15022.07207 1.72072 298.72073 150.22072 15022.07212 1.72072 298.72072 150.22071999999991 15022.07200 2020-01-01 2020-01-02 2020-01-01 00:09:33 2020-01-02 03:37:54 2020-01-01 00:09:33.000 2020-01-02 03:37:54.000 573 99474 50023.5 5002350 573 99474 50023.5 5002350 -32597 32541 4803.66 480366 -128 123 -4.02 -402 574 100 10564 99475 1.72372 298.72372 150.22372 15022.37237 1.72372 298.72372 150.22372 15022.37243 1.72372 298.72372 150.22372 15022.37200 2020-01-01 2020-01-02 2020-01-01 00:09:34 2020-01-02 03:37:55 2020-01-01 00:09:34.000 2020-01-02 03:37:55.000 574 99475 50024.5 5002450 574 99475 50024.5 5002450 -32596 32542 4804.66 480466 -127 124 -3.02 -302 -575 100 10565 99476 1.72672 298.72672 150.22672 15022.67267 1.72672 298.7267 150.22672 15022.67272 1.72672 298.72672 150.22672000000006 15022.67200 2020-01-01 2020-01-02 2020-01-01 00:09:35 2020-01-02 03:37:56 2020-01-01 00:09:35.000 2020-01-02 03:37:56.000 575 99476 50025.5 5002550 575 99476 50025.5 5002550 -32595 32543 4805.66 480566 -126 125 -2.02 -202 -576 100 10566 99477 1.72972 298.72972 150.22972 15022.97297 1.72972 298.72974 150.22973 15022.97332 1.72972 298.72972 150.22971999999987 15022.97200 2020-01-01 2020-01-02 2020-01-01 00:09:36 2020-01-02 03:37:57 2020-01-01 00:09:36.000 2020-01-02 03:37:57.000 576 99477 50026.5 5002650 576 99477 50026.5 5002650 -32594 32544 4806.66 480666 -125 126 -1.02 -102 -577 100 10567 99478 1.73273 298.73273 150.23273 15023.27327 1.73273 298.73273 150.23272 15023.27297 1.73273 298.73273 150.23272999999983 15023.27300 2020-01-01 2020-01-02 2020-01-01 00:09:37 2020-01-02 03:37:58 2020-01-01 00:09:37.000 2020-01-02 03:37:58.000 577 99478 50027.5 5002750 577 99478 50027.5 5002750 -32593 32545 4807.66 480766 -124 127 -0.02 -2 -578 100 10568 99479 1.73573 298.73573 150.23573 15023.57357 1.73573 298.73575 150.23573 15023.57359 1.73573 298.73573 150.23573000000022 15023.57300 2020-01-01 2020-01-02 2020-01-01 00:09:38 2020-01-02 03:37:59 2020-01-01 00:09:38.000 2020-01-02 03:37:59.000 578 99479 50028.5 5002850 578 99479 50028.5 5002850 -32592 32546 4808.66 480866 -128 127 -1.58 -158 -579 100 10569 99480 1.73873 298.73873 150.23873 15023.87387 1.73873 298.73874 150.23873 15023.8739 1.73873 298.73873 150.23872999999972 15023.87300 2020-01-01 2020-01-02 2020-01-01 00:09:39 2020-01-02 03:38:00 2020-01-01 00:09:39.000 2020-01-02 03:38:00.000 579 99480 50029.5 5002950 579 99480 50029.5 5002950 -32591 32547 4809.66 480966 -128 123 -3.14 -314 -58 102 10048 99958 0.17417 300.17417 150.17417 15167.59159 0.17417 300.17416 150.17417 15167.59159 0.17417 300.17417 150.17417000000015 15167.59117 2020-01-01 2020-01-02 2020-01-01 00:00:58 2020-01-02 03:45:58 2020-01-01 00:00:58.000 2020-01-02 03:45:58.000 58 99958 50008 5050808 58 99958 50008 5050808 -32511 32424 4587.009900990099 463288 -125 126 -0.7128712871287128 -72 +575 100 10565 99476 1.72672 298.72672 150.22672 15022.67267 1.72672 298.7267 150.22672 15022.67272 1.72672 298.72672 150.22672000000003 15022.67200 2020-01-01 2020-01-02 2020-01-01 00:09:35 2020-01-02 03:37:56 2020-01-01 00:09:35.000 2020-01-02 03:37:56.000 575 99476 50025.5 5002550 575 99476 50025.5 5002550 -32595 32543 4805.66 480566 -126 125 -2.02 -202 +576 100 10566 99477 1.72972 298.72972 150.22972 15022.97297 1.72972 298.72974 150.22973 15022.97332 1.72972 298.72972 150.22971999999993 15022.97200 2020-01-01 2020-01-02 2020-01-01 00:09:36 2020-01-02 03:37:57 2020-01-01 00:09:36.000 2020-01-02 03:37:57.000 576 99477 50026.5 5002650 576 99477 50026.5 5002650 -32594 32544 4806.66 480666 -125 126 -1.02 -102 +577 100 10567 99478 1.73273 298.73273 150.23273 15023.27327 1.73273 298.73273 150.23272 15023.27297 1.73273 298.73273 150.23272999999995 15023.27300 2020-01-01 2020-01-02 2020-01-01 00:09:37 2020-01-02 03:37:58 2020-01-01 00:09:37.000 2020-01-02 03:37:58.000 577 99478 50027.5 5002750 577 99478 50027.5 5002750 -32593 32545 4807.66 480766 -124 127 -0.02 -2 +578 100 10568 99479 1.73573 298.73573 150.23573 15023.57357 1.73573 298.73575 150.23573 15023.57359 1.73573 298.73573 150.2357300000001 15023.57300 2020-01-01 2020-01-02 2020-01-01 00:09:38 2020-01-02 03:37:59 2020-01-01 00:09:38.000 2020-01-02 03:37:59.000 578 99479 50028.5 5002850 578 99479 50028.5 5002850 -32592 32546 4808.66 480866 -128 127 -1.58 -158 +579 100 10569 99480 1.73873 298.73873 150.23873 15023.87387 1.73873 298.73874 150.23873 15023.8739 1.73873 298.73873 150.23872999999992 15023.87300 2020-01-01 2020-01-02 2020-01-01 00:09:39 2020-01-02 03:38:00 2020-01-01 00:09:39.000 2020-01-02 03:38:00.000 579 99480 50029.5 5002950 579 99480 50029.5 5002950 -32591 32547 4809.66 480966 -128 123 -3.14 -314 +58 102 10048 99958 0.17417 300.17417 150.17417 15167.59159 0.17417 300.17416 150.17417 15167.59159 0.17417 300.17417 150.17417000000012 15167.59117 2020-01-01 2020-01-02 2020-01-01 00:00:58 2020-01-02 03:45:58 2020-01-01 00:00:58.000 2020-01-02 03:45:58.000 58 99958 50008 5050808 58 99958 50008 5050808 -32511 32424 4587.009900990099 463288 -125 126 -0.7128712871287128 -72 580 100 10570 99481 1.74174 298.74174 150.24174 15024.17417 1.74174 298.74173 150.24174 15024.17419 1.74174 298.74174 150.24174 15024.17400 2020-01-01 2020-01-02 2020-01-01 00:09:40 2020-01-02 03:38:01 2020-01-01 00:09:40.000 2020-01-02 03:38:01.000 580 99481 50030.5 5003050 580 99481 50030.5 5003050 -32590 32548 4810.66 481066 -127 124 -2.14 -214 581 100 10571 99482 1.74474 298.74474 150.24474 15024.47447 1.74474 298.74475 150.24474 15024.47478 1.74474 298.74474 150.24474000000006 15024.47400 2020-01-01 2020-01-02 2020-01-01 00:09:41 2020-01-02 03:38:02 2020-01-01 00:09:41.000 2020-01-02 03:38:02.000 581 99482 50031.5 5003150 581 99482 50031.5 5003150 -32589 32549 4811.66 481166 -126 125 -1.14 -114 -582 100 10572 99483 1.74774 298.74774 150.24774 15024.77477 1.74774 298.74774 150.24774 15024.77447 1.74774 298.74774 150.2477400000001 15024.77400 2020-01-01 2020-01-02 2020-01-01 00:09:42 2020-01-02 03:38:03 2020-01-01 00:09:42.000 2020-01-02 03:38:03.000 582 99483 50032.5 5003250 582 99483 50032.5 5003250 -32588 32550 4812.66 481266 -125 126 -0.14 -14 -583 100 10573 99484 1.75075 298.75075 150.25075 15025.07507 1.75075 298.75076 150.25075 15025.07507 1.75075 298.75075 150.25074999999984 15025.07500 2020-01-01 2020-01-02 2020-01-01 00:09:43 2020-01-02 03:38:04 2020-01-01 00:09:43.000 2020-01-02 03:38:04.000 583 99484 50033.5 5003350 583 99484 50033.5 5003350 -32587 32551 4813.66 481366 -124 127 0.86 86 -584 100 10574 99485 1.75375 298.75375 150.25375 15025.37537 1.75375 298.75375 150.25375 15025.37536 1.75375 298.75375 150.25374999999988 15025.37500 2020-01-01 2020-01-02 2020-01-01 00:09:44 2020-01-02 03:38:05 2020-01-01 00:09:44.000 2020-01-02 03:38:05.000 584 99485 50034.5 5003450 584 99485 50034.5 5003450 -32586 32552 4814.66 481466 -128 127 -0.7 -70 -585 100 10575 99486 1.75675 298.75675 150.25675 15025.67567 1.75675 298.75674 150.25675 15025.67566 1.75675 298.75675 150.25675000000007 15025.67500 2020-01-01 2020-01-02 2020-01-01 00:09:45 2020-01-02 03:38:06 2020-01-01 00:09:45.000 2020-01-02 03:38:06.000 585 99486 50035.5 5003550 585 99486 50035.5 5003550 -32585 32553 4815.66 481566 -128 127 -2.26 -226 -586 100 10576 99487 1.75975 298.75975 150.25975 15025.97597 1.75975 298.75977 150.25976 15025.97625 1.75975 298.75975 150.25974999999985 15025.97500 2020-01-01 2020-01-02 2020-01-01 00:09:46 2020-01-02 03:38:07 2020-01-01 00:09:46.000 2020-01-02 03:38:07.000 586 99487 50036.5 5003650 586 99487 50036.5 5003650 -32584 32554 4816.66 481666 -128 123 -3.82 -382 -587 100 10577 99488 1.76276 298.76276 150.26276 15026.27627 1.76276 298.76276 150.26275 15026.27594 1.76276 298.76276 150.26275999999973 15026.27600 2020-01-01 2020-01-02 2020-01-01 00:09:47 2020-01-02 03:38:08 2020-01-01 00:09:47.000 2020-01-02 03:38:08.000 587 99488 50037.5 5003750 587 99488 50037.5 5003750 -32583 32555 4817.66 481766 -127 124 -2.82 -282 -588 100 10578 99489 1.76576 298.76576 150.26576 15026.57657 1.76576 298.76578 150.26576 15026.57654 1.76576 298.76576 150.2657600000002 15026.57600 2020-01-01 2020-01-02 2020-01-01 00:09:48 2020-01-02 03:38:09 2020-01-01 00:09:48.000 2020-01-02 03:38:09.000 588 99489 50038.5 5003850 588 99489 50038.5 5003850 -32582 32556 4818.66 481866 -126 125 -1.82 -182 -589 100 10579 99490 1.76876 298.76876 150.26876 15026.87687 1.76876 298.76877 150.26876 15026.87683 1.76876 298.76876 150.26876000000024 15026.87600 2020-01-01 2020-01-02 2020-01-01 00:09:49 2020-01-02 03:38:10 2020-01-01 00:09:49.000 2020-01-02 03:38:10.000 589 99490 50039.5 5003950 589 99490 50039.5 5003950 -32581 32557 4819.66 481966 -125 126 -0.82 -82 -59 102 10049 99959 0.17717 300.17717 150.17717 15167.89489 0.17717 300.1772 150.17717 15167.8947 0.17717 300.17717 150.17717000000025 15167.89417 2020-01-01 2020-01-02 2020-01-01 00:00:59 2020-01-02 03:45:59 2020-01-01 00:00:59.000 2020-01-02 03:45:59.000 59 99959 50009 5050909 59 99959 50009 5050909 -32510 32425 4588.009900990099 463389 -124 127 0.2871287128712871 29 -590 100 10580 99491 1.77177 298.77177 150.27177 15027.17717 1.77177 298.77176 150.27177 15027.17713 1.77177 298.77177 150.2717699999999 15027.17700 2020-01-01 2020-01-02 2020-01-01 00:09:50 2020-01-02 03:38:11 2020-01-01 00:09:50.000 2020-01-02 03:38:11.000 590 99491 50040.5 5004050 590 99491 50040.5 5004050 -32580 32558 4820.66 482066 -124 127 0.18 18 +582 100 10572 99483 1.74774 298.74774 150.24774 15024.77477 1.74774 298.74774 150.24774 15024.77447 1.74774 298.74774 150.24774000000002 15024.77400 2020-01-01 2020-01-02 2020-01-01 00:09:42 2020-01-02 03:38:03 2020-01-01 00:09:42.000 2020-01-02 03:38:03.000 582 99483 50032.5 5003250 582 99483 50032.5 5003250 -32588 32550 4812.66 481266 -125 126 -0.14 -14 +583 100 10573 99484 1.75075 298.75075 150.25075 15025.07507 1.75075 298.75076 150.25075 15025.07507 1.75075 298.75075 150.25074999999995 15025.07500 2020-01-01 2020-01-02 2020-01-01 00:09:43 2020-01-02 03:38:04 2020-01-01 00:09:43.000 2020-01-02 03:38:04.000 583 99484 50033.5 5003350 583 99484 50033.5 5003350 -32587 32551 4813.66 481366 -124 127 0.86 86 +584 100 10574 99485 1.75375 298.75375 150.25375 15025.37537 1.75375 298.75375 150.25375 15025.37536 1.75375 298.75375 150.25374999999994 15025.37500 2020-01-01 2020-01-02 2020-01-01 00:09:44 2020-01-02 03:38:05 2020-01-01 00:09:44.000 2020-01-02 03:38:05.000 584 99485 50034.5 5003450 584 99485 50034.5 5003450 -32586 32552 4814.66 481466 -128 127 -0.7 -70 +585 100 10575 99486 1.75675 298.75675 150.25675 15025.67567 1.75675 298.75674 150.25675 15025.67566 1.75675 298.75675 150.25675000000012 15025.67500 2020-01-01 2020-01-02 2020-01-01 00:09:45 2020-01-02 03:38:06 2020-01-01 00:09:45.000 2020-01-02 03:38:06.000 585 99486 50035.5 5003550 585 99486 50035.5 5003550 -32585 32553 4815.66 481566 -128 127 -2.26 -226 +586 100 10576 99487 1.75975 298.75975 150.25975 15025.97597 1.75975 298.75977 150.25976 15025.97625 1.75975 298.75975 150.25974999999997 15025.97500 2020-01-01 2020-01-02 2020-01-01 00:09:46 2020-01-02 03:38:07 2020-01-01 00:09:46.000 2020-01-02 03:38:07.000 586 99487 50036.5 5003650 586 99487 50036.5 5003650 -32584 32554 4816.66 481666 -128 123 -3.82 -382 +587 100 10577 99488 1.76276 298.76276 150.26276 15026.27627 1.76276 298.76276 150.26275 15026.27594 1.76276 298.76276 150.2627599999999 15026.27600 2020-01-01 2020-01-02 2020-01-01 00:09:47 2020-01-02 03:38:08 2020-01-01 00:09:47.000 2020-01-02 03:38:08.000 587 99488 50037.5 5003750 587 99488 50037.5 5003750 -32583 32555 4817.66 481766 -127 124 -2.82 -282 +588 100 10578 99489 1.76576 298.76576 150.26576 15026.57657 1.76576 298.76578 150.26576 15026.57654 1.76576 298.76576 150.2657600000001 15026.57600 2020-01-01 2020-01-02 2020-01-01 00:09:48 2020-01-02 03:38:09 2020-01-01 00:09:48.000 2020-01-02 03:38:09.000 588 99489 50038.5 5003850 588 99489 50038.5 5003850 -32582 32556 4818.66 481866 -126 125 -1.82 -182 +589 100 10579 99490 1.76876 298.76876 150.26876 15026.87687 1.76876 298.76877 150.26876 15026.87683 1.76876 298.76876 150.26876000000007 15026.87600 2020-01-01 2020-01-02 2020-01-01 00:09:49 2020-01-02 03:38:10 2020-01-01 00:09:49.000 2020-01-02 03:38:10.000 589 99490 50039.5 5003950 589 99490 50039.5 5003950 -32581 32557 4819.66 481966 -125 126 -0.82 -82 +59 102 10049 99959 0.17717 300.17717 150.17717 15167.89489 0.17717 300.1772 150.17717 15167.8947 0.17717 300.17717 150.17717000000007 15167.89417 2020-01-01 2020-01-02 2020-01-01 00:00:59 2020-01-02 03:45:59 2020-01-01 00:00:59.000 2020-01-02 03:45:59.000 59 99959 50009 5050909 59 99959 50009 5050909 -32510 32425 4588.009900990099 463389 -124 127 0.2871287128712871 29 +590 100 10580 99491 1.77177 298.77177 150.27177 15027.17717 1.77177 298.77176 150.27177 15027.17713 1.77177 298.77177 150.27176999999995 15027.17700 2020-01-01 2020-01-02 2020-01-01 00:09:50 2020-01-02 03:38:11 2020-01-01 00:09:50.000 2020-01-02 03:38:11.000 590 99491 50040.5 5004050 590 99491 50040.5 5004050 -32580 32558 4820.66 482066 -124 127 0.18 18 591 100 10581 99492 1.77477 298.77477 150.27477 15027.47747 1.77477 298.77478 150.27477 15027.47775 1.77477 298.77477 150.27477 15027.47700 2020-01-01 2020-01-02 2020-01-01 00:09:51 2020-01-02 03:38:12 2020-01-01 00:09:51.000 2020-01-02 03:38:12.000 591 99492 50041.5 5004150 591 99492 50041.5 5004150 -32579 32559 4821.66 482166 -128 127 -1.38 -138 -592 100 10582 99493 1.77777 298.77777 150.27777 15027.77777 1.77777 298.77777 150.27777 15027.77742 1.77777 298.77777 150.2777700000001 15027.77700 2020-01-01 2020-01-02 2020-01-01 00:09:52 2020-01-02 03:38:13 2020-01-01 00:09:52.000 2020-01-02 03:38:13.000 592 99493 50042.5 5004250 592 99493 50042.5 5004250 -32578 32560 4822.66 482266 -128 123 -2.94 -294 -593 100 10583 99494 1.78078 298.78078 150.28078 15028.07807 1.78078 298.7808 150.28078 15028.078 1.78078 298.78078 150.28077999999974 15028.07800 2020-01-01 2020-01-02 2020-01-01 00:09:53 2020-01-02 03:38:14 2020-01-01 00:09:53.000 2020-01-02 03:38:14.000 593 99494 50043.5 5004350 593 99494 50043.5 5004350 -32577 32561 4823.66 482366 -127 124 -1.94 -194 -594 100 10584 99495 1.78378 298.78378 150.28378 15028.37837 1.78378 298.78378 150.28378 15028.3783 1.78378 298.78378 150.28377999999984 15028.37800 2020-01-01 2020-01-02 2020-01-01 00:09:54 2020-01-02 03:38:15 2020-01-01 00:09:54.000 2020-01-02 03:38:15.000 594 99495 50044.5 5004450 594 99495 50044.5 5004450 -32576 32562 4824.66 482466 -126 125 -0.94 -94 -595 100 10585 99496 1.78678 298.78678 150.28678 15028.67867 1.78678 298.78677 150.28678 15028.6786 1.78678 298.78678 150.28678000000025 15028.67800 2020-01-01 2020-01-02 2020-01-01 00:09:55 2020-01-02 03:38:16 2020-01-01 00:09:55.000 2020-01-02 03:38:16.000 595 99496 50045.5 5004550 595 99496 50045.5 5004550 -32575 32563 4825.66 482566 -125 126 0.06 6 -596 100 10586 99497 1.78978 298.78978 150.28978 15028.97897 1.78978 298.7898 150.28979 15028.97922 1.78978 298.78978 150.28977999999975 15028.97800 2020-01-01 2020-01-02 2020-01-01 00:09:56 2020-01-02 03:38:17 2020-01-01 00:09:56.000 2020-01-02 03:38:17.000 596 99497 50046.5 5004650 596 99497 50046.5 5004650 -32574 32564 4826.66 482666 -124 127 1.06 106 +592 100 10582 99493 1.77777 298.77777 150.27777 15027.77777 1.77777 298.77777 150.27777 15027.77742 1.77777 298.77777 150.27777000000003 15027.77700 2020-01-01 2020-01-02 2020-01-01 00:09:52 2020-01-02 03:38:13 2020-01-01 00:09:52.000 2020-01-02 03:38:13.000 592 99493 50042.5 5004250 592 99493 50042.5 5004250 -32578 32560 4822.66 482266 -128 123 -2.94 -294 +593 100 10583 99494 1.78078 298.78078 150.28078 15028.07807 1.78078 298.7808 150.28078 15028.078 1.78078 298.78078 150.28077999999994 15028.07800 2020-01-01 2020-01-02 2020-01-01 00:09:53 2020-01-02 03:38:14 2020-01-01 00:09:53.000 2020-01-02 03:38:14.000 593 99494 50043.5 5004350 593 99494 50043.5 5004350 -32577 32561 4823.66 482366 -127 124 -1.94 -194 +594 100 10584 99495 1.78378 298.78378 150.28378 15028.37837 1.78378 298.78378 150.28378 15028.3783 1.78378 298.78378 150.28377999999992 15028.37800 2020-01-01 2020-01-02 2020-01-01 00:09:54 2020-01-02 03:38:15 2020-01-01 00:09:54.000 2020-01-02 03:38:15.000 594 99495 50044.5 5004450 594 99495 50044.5 5004450 -32576 32562 4824.66 482466 -126 125 -0.94 -94 +595 100 10585 99496 1.78678 298.78678 150.28678 15028.67867 1.78678 298.78677 150.28678 15028.6786 1.78678 298.78678 150.28678000000008 15028.67800 2020-01-01 2020-01-02 2020-01-01 00:09:55 2020-01-02 03:38:16 2020-01-01 00:09:55.000 2020-01-02 03:38:16.000 595 99496 50045.5 5004550 595 99496 50045.5 5004550 -32575 32563 4825.66 482566 -125 126 0.06 6 +596 100 10586 99497 1.78978 298.78978 150.28978 15028.97897 1.78978 298.7898 150.28979 15028.97922 1.78978 298.78978 150.28977999999992 15028.97800 2020-01-01 2020-01-02 2020-01-01 00:09:56 2020-01-02 03:38:17 2020-01-01 00:09:56.000 2020-01-02 03:38:17.000 596 99497 50046.5 5004650 596 99497 50046.5 5004650 -32574 32564 4826.66 482666 -124 127 1.06 106 597 100 10587 99498 1.79279 298.79279 150.29279 15029.27927 1.79279 298.7928 150.29278 15029.27888 1.79279 298.79279 150.29279000000002 15029.27900 2020-01-01 2020-01-02 2020-01-01 00:09:57 2020-01-02 03:38:18 2020-01-01 00:09:57.000 2020-01-02 03:38:18.000 597 99498 50047.5 5004750 597 99498 50047.5 5004750 -32573 32565 4827.66 482766 -128 127 -0.5 -50 -598 100 10588 99499 1.79579 298.79579 150.29579 15029.57957 1.79579 298.7958 150.29579 15029.57964 1.79579 298.79579 150.2957900000001 15029.57900 2020-01-01 2020-01-02 2020-01-01 00:09:58 2020-01-02 03:38:19 2020-01-01 00:09:58.000 2020-01-02 03:38:19.000 598 99499 50048.5 5004850 598 99499 50048.5 5004850 -32572 32566 4828.66 482866 -128 123 -2.06 -206 -599 100 10589 99500 1.79879 298.79879 150.29879 15029.87987 1.79879 298.7988 150.29879 15029.87977 1.79879 298.79879 150.29879000000014 15029.87900 2020-01-01 2020-01-02 2020-01-01 00:09:59 2020-01-02 03:38:20 2020-01-01 00:09:59.000 2020-01-02 03:38:20.000 599 99500 50049.5 5004950 599 99500 50049.5 5004950 -32571 32567 4829.66 482966 -127 124 -1.06 -106 -6 102 1005 9996 0.01801 300.01801 150.01801 15151.81981 0.01801 300.018 150.01801 15151.81978 0.01801 300.01801 150.0180099999998 15151.81901 2020-01-01 2020-01-02 2020-01-01 00:00:06 2020-01-02 03:45:06 2020-01-01 00:00:06.000 2020-01-02 03:45:06.000 6 99906 49956 5045556 6 99906 49956 5045556 -32563 32372 4535.009900990099 458036 -127 124 -2.01980198019802 -204 -60 102 10050 99960 0.18018 300.18018 150.18018 15168.19819 0.18018 300.18018 150.18017 15168.198 0.18018 300.18018 150.1801799999999 15168.19818 2020-01-01 2020-01-02 2020-01-01 00:01:00 2020-01-02 03:46:00 2020-01-01 00:01:00.000 2020-01-02 03:46:00.000 60 99960 50010 5051010 60 99960 50010 5051010 -32509 32426 4589.009900990099 463490 -128 127 -1.2475247524752475 -126 -600 100 10590 99501 1.8018 298.8018 150.3018 15030.18018 1.8018 298.8018 150.3018 15030.1801 1.80180 298.80180 150.30179999999987 15030.18000 2020-01-01 2020-01-02 2020-01-01 00:10:00 2020-01-02 03:38:21 2020-01-01 00:10:00.000 2020-01-02 03:38:21.000 600 99501 50050.5 5005050 600 99501 50050.5 5005050 -32570 32568 4830.66 483066 -126 125 -0.06 -6 +598 100 10588 99499 1.79579 298.79579 150.29579 15029.57957 1.79579 298.7958 150.29579 15029.57964 1.79579 298.79579 150.29579000000007 15029.57900 2020-01-01 2020-01-02 2020-01-01 00:09:58 2020-01-02 03:38:19 2020-01-01 00:09:58.000 2020-01-02 03:38:19.000 598 99499 50048.5 5004850 598 99499 50048.5 5004850 -32572 32566 4828.66 482866 -128 123 -2.06 -206 +599 100 10589 99500 1.79879 298.79879 150.29879 15029.87987 1.79879 298.7988 150.29879 15029.87977 1.79879 298.79879 150.29879000000003 15029.87900 2020-01-01 2020-01-02 2020-01-01 00:09:59 2020-01-02 03:38:20 2020-01-01 00:09:59.000 2020-01-02 03:38:20.000 599 99500 50049.5 5004950 599 99500 50049.5 5004950 -32571 32567 4829.66 482966 -127 124 -1.06 -106 +6 102 1005 9996 0.01801 300.01801 150.01801 15151.81981 0.01801 300.018 150.01801 15151.81978 0.01801 300.01801 150.0180099999999 15151.81901 2020-01-01 2020-01-02 2020-01-01 00:00:06 2020-01-02 03:45:06 2020-01-01 00:00:06.000 2020-01-02 03:45:06.000 6 99906 49956 5045556 6 99906 49956 5045556 -32563 32372 4535.009900990099 458036 -127 124 -2.01980198019802 -204 +60 102 10050 99960 0.18018 300.18018 150.18018 15168.19819 0.18018 300.18018 150.18017 15168.198 0.18018 300.18018 150.18017999999995 15168.19818 2020-01-01 2020-01-02 2020-01-01 00:01:00 2020-01-02 03:46:00 2020-01-01 00:01:00.000 2020-01-02 03:46:00.000 60 99960 50010 5051010 60 99960 50010 5051010 -32509 32426 4589.009900990099 463490 -128 127 -1.2475247524752475 -126 +600 100 10590 99501 1.8018 298.8018 150.3018 15030.18018 1.8018 298.8018 150.3018 15030.1801 1.80180 298.80180 150.3018 15030.18000 2020-01-01 2020-01-02 2020-01-01 00:10:00 2020-01-02 03:38:21 2020-01-01 00:10:00.000 2020-01-02 03:38:21.000 600 99501 50050.5 5005050 600 99501 50050.5 5005050 -32570 32568 4830.66 483066 -126 125 -0.06 -6 601 100 10591 99502 1.8048 298.8048 150.3048 15030.48048 1.8048 298.8048 150.3048 15030.4807 1.80480 298.80480 150.30479999999991 15030.48000 2020-01-01 2020-01-02 2020-01-01 00:10:01 2020-01-02 03:38:22 2020-01-01 00:10:01.000 2020-01-02 03:38:22.000 601 99502 50051.5 5005150 601 99502 50051.5 5005150 -32569 32569 4831.66 483166 -125 126 0.94 94 602 100 10592 99503 1.8078 298.8078 150.3078 15030.78078 1.8078 298.8078 150.3078 15030.78035 1.80780 298.80780 150.3078 15030.78000 2020-01-01 2020-01-02 2020-01-01 00:10:02 2020-01-02 03:38:23 2020-01-01 00:10:02.000 2020-01-02 03:38:23.000 602 99503 50052.5 5005250 602 99503 50052.5 5005250 -32568 32570 4832.66 483266 -124 127 1.94 194 -603 100 10593 99504 1.81081 298.81081 150.31081 15031.08108 1.81081 298.81082 150.31081 15031.0811 1.81081 298.81081 150.31081000000026 15031.08100 2020-01-01 2020-01-02 2020-01-01 00:10:03 2020-01-02 03:38:24 2020-01-01 00:10:03.000 2020-01-02 03:38:24.000 603 99504 50053.5 5005350 603 99504 50053.5 5005350 -32567 32571 4833.66 483366 -128 127 0.38 38 -604 100 10594 99505 1.81381 298.81381 150.31381 15031.38138 1.81381 298.8138 150.31381 15031.38124 1.81381 298.81381 150.31380999999976 15031.38100 2020-01-01 2020-01-02 2020-01-01 00:10:04 2020-01-02 03:38:25 2020-01-01 00:10:04.000 2020-01-02 03:38:25.000 604 99505 50054.5 5005450 604 99505 50054.5 5005450 -32566 32572 4834.66 483466 -128 123 -1.18 -118 -605 100 10595 99506 1.81681 298.81681 150.31681 15031.68168 1.81681 298.8168 150.31681 15031.68157 1.81681 298.81681 150.31681000000015 15031.68100 2020-01-01 2020-01-02 2020-01-01 00:10:05 2020-01-02 03:38:26 2020-01-01 00:10:05.000 2020-01-02 03:38:26.000 605 99506 50055.5 5005550 605 99506 50055.5 5005550 -32565 32573 4835.66 483566 -127 124 -0.18 -18 -606 100 10596 99507 1.81981 298.81981 150.31981 15031.98198 1.81981 298.81982 150.31982 15031.98217 1.81981 298.81981 150.31981000000027 15031.98100 2020-01-01 2020-01-02 2020-01-01 00:10:06 2020-01-02 03:38:27 2020-01-01 00:10:06.000 2020-01-02 03:38:27.000 606 99507 50056.5 5005650 606 99507 50056.5 5005650 -32564 32574 4836.66 483666 -126 125 0.82 82 -607 100 10597 99508 1.82282 298.82282 150.32282 15032.28228 1.82282 298.8228 150.32282 15032.28246 1.82282 298.82282 150.32281999999992 15032.28200 2020-01-01 2020-01-02 2020-01-01 00:10:07 2020-01-02 03:38:28 2020-01-01 00:10:07.000 2020-01-02 03:38:28.000 607 99508 50057.5 5005750 607 99508 50057.5 5005750 -32563 32575 4837.66 483766 -125 126 1.82 182 -608 100 10598 99509 1.82582 298.82582 150.32582 15032.58258 1.82582 298.82584 150.32582 15032.58258 1.82582 298.82582 150.32582 15032.58200 2020-01-01 2020-01-02 2020-01-01 00:10:08 2020-01-02 03:38:29 2020-01-01 00:10:08.000 2020-01-02 03:38:29.000 608 99509 50058.5 5005850 608 99509 50058.5 5005850 -32562 32576 4838.66 483866 -124 127 2.82 282 -609 100 10599 99510 1.82882 298.82882 150.32882 15032.88288 1.82882 298.82883 150.32882 15032.88274 1.82882 298.82882 150.32882000000006 15032.88200 2020-01-01 2020-01-02 2020-01-01 00:10:09 2020-01-02 03:38:30 2020-01-01 00:10:09.000 2020-01-02 03:38:30.000 609 99510 50059.5 5005950 609 99510 50059.5 5005950 -32561 32577 4839.66 483966 -128 127 1.26 126 +603 100 10593 99504 1.81081 298.81081 150.31081 15031.08108 1.81081 298.81082 150.31081 15031.0811 1.81081 298.81081 150.31081000000006 15031.08100 2020-01-01 2020-01-02 2020-01-01 00:10:03 2020-01-02 03:38:24 2020-01-01 00:10:03.000 2020-01-02 03:38:24.000 603 99504 50053.5 5005350 603 99504 50053.5 5005350 -32567 32571 4833.66 483366 -128 127 0.38 38 +604 100 10594 99505 1.81381 298.81381 150.31381 15031.38138 1.81381 298.8138 150.31381 15031.38124 1.81381 298.81381 150.31380999999993 15031.38100 2020-01-01 2020-01-02 2020-01-01 00:10:04 2020-01-02 03:38:25 2020-01-01 00:10:04.000 2020-01-02 03:38:25.000 604 99505 50054.5 5005450 604 99505 50054.5 5005450 -32566 32572 4834.66 483466 -128 123 -1.18 -118 +605 100 10595 99506 1.81681 298.81681 150.31681 15031.68168 1.81681 298.8168 150.31681 15031.68157 1.81681 298.81681 150.31681000000003 15031.68100 2020-01-01 2020-01-02 2020-01-01 00:10:05 2020-01-02 03:38:26 2020-01-01 00:10:05.000 2020-01-02 03:38:26.000 605 99506 50055.5 5005550 605 99506 50055.5 5005550 -32565 32573 4835.66 483566 -127 124 -0.18 -18 +606 100 10596 99507 1.81981 298.81981 150.31981 15031.98198 1.81981 298.81982 150.31982 15031.98217 1.81981 298.81981 150.31981000000007 15031.98100 2020-01-01 2020-01-02 2020-01-01 00:10:06 2020-01-02 03:38:27 2020-01-01 00:10:06.000 2020-01-02 03:38:27.000 606 99507 50056.5 5005650 606 99507 50056.5 5005650 -32564 32574 4836.66 483666 -126 125 0.82 82 +607 100 10597 99508 1.82282 298.82282 150.32282 15032.28228 1.82282 298.8228 150.32282 15032.28246 1.82282 298.82282 150.32281999999998 15032.28200 2020-01-01 2020-01-02 2020-01-01 00:10:07 2020-01-02 03:38:28 2020-01-01 00:10:07.000 2020-01-02 03:38:28.000 607 99508 50057.5 5005750 607 99508 50057.5 5005750 -32563 32575 4837.66 483766 -125 126 1.82 182 +608 100 10598 99509 1.82582 298.82582 150.32582 15032.58258 1.82582 298.82584 150.32582 15032.58258 1.82582 298.82582 150.32582000000002 15032.58200 2020-01-01 2020-01-02 2020-01-01 00:10:08 2020-01-02 03:38:29 2020-01-01 00:10:08.000 2020-01-02 03:38:29.000 608 99509 50058.5 5005850 608 99509 50058.5 5005850 -32562 32576 4838.66 483866 -124 127 2.82 282 +609 100 10599 99510 1.82882 298.82882 150.32882 15032.88288 1.82882 298.82883 150.32882 15032.88274 1.82882 298.82882 150.32882000000012 15032.88200 2020-01-01 2020-01-02 2020-01-01 00:10:09 2020-01-02 03:38:30 2020-01-01 00:10:09.000 2020-01-02 03:38:30.000 609 99510 50059.5 5005950 609 99510 50059.5 5005950 -32561 32577 4839.66 483966 -128 127 1.26 126 61 102 10051 99961 0.18318 300.18318 150.18318 15168.5015 0.18318 300.1832 150.18318 15168.5016 0.18318 300.18318 150.18318 15168.50118 2020-01-01 2020-01-02 2020-01-01 00:01:01 2020-01-02 03:46:01 2020-01-01 00:01:01.000 2020-01-02 03:46:01.000 61 99961 50011 5051111 61 99961 50011 5051111 -32508 32427 4590.009900990099 463591 -128 123 -2.782178217821782 -281 -610 100 10600 99511 1.83183 298.83183 150.33183 15033.18318 1.83183 298.83182 150.33183 15033.18304 1.83183 298.83183 150.33182999999994 15033.18300 2020-01-01 2020-01-02 2020-01-01 00:10:10 2020-01-02 03:38:31 2020-01-01 00:10:10.000 2020-01-02 03:38:31.000 610 99511 50060.5 5006050 610 99511 50060.5 5006050 -32560 32578 4840.66 484066 -128 127 -0.3 -30 -611 100 10601 99512 1.83483 298.83483 150.33483 15033.48348 1.83483 298.83484 150.33483 15033.48363 1.83483 298.83483 150.3348299999999 15033.48300 2020-01-01 2020-01-02 2020-01-01 00:10:11 2020-01-02 03:38:32 2020-01-01 00:10:11.000 2020-01-02 03:38:32.000 611 99512 50061.5 5006150 611 99512 50061.5 5006150 -32559 32579 4841.66 484166 -128 123 -1.86 -186 -612 100 10602 99513 1.83783 298.83783 150.33783 15033.78378 1.83783 298.83783 150.33783 15033.78393 1.83783 298.83783 150.3378300000001 15033.78300 2020-01-01 2020-01-02 2020-01-01 00:10:12 2020-01-02 03:38:33 2020-01-01 00:10:12.000 2020-01-02 03:38:33.000 612 99513 50062.5 5006250 612 99513 50062.5 5006250 -32558 32580 4842.66 484266 -127 124 -0.86 -86 -613 100 10603 99514 1.84084 298.84084 150.34084 15034.08408 1.84084 298.84085 150.34084 15034.08405 1.84084 298.84084 150.34084000000004 15034.08400 2020-01-01 2020-01-02 2020-01-01 00:10:13 2020-01-02 03:38:34 2020-01-01 00:10:13.000 2020-01-02 03:38:34.000 613 99514 50063.5 5006350 613 99514 50063.5 5006350 -32557 32581 4843.66 484366 -126 125 0.14 14 -614 100 10604 99515 1.84384 298.84384 150.34384 15034.38438 1.84384 298.84384 150.34384 15034.38421 1.84384 298.84384 150.34383999999983 15034.38400 2020-01-01 2020-01-02 2020-01-01 00:10:14 2020-01-02 03:38:35 2020-01-01 00:10:14.000 2020-01-02 03:38:35.000 614 99515 50064.5 5006450 614 99515 50064.5 5006450 -32556 32582 4844.66 484466 -125 126 1.14 114 -615 100 10605 99516 1.84684 298.84684 150.34684 15034.68468 1.84684 298.84683 150.34684 15034.68452 1.84684 298.84684 150.34684000000007 15034.68400 2020-01-01 2020-01-02 2020-01-01 00:10:15 2020-01-02 03:38:36 2020-01-01 00:10:15.000 2020-01-02 03:38:36.000 615 99516 50065.5 5006550 615 99516 50065.5 5006550 -32555 32583 4845.66 484566 -124 127 2.14 214 -616 100 10606 99517 1.84984 298.84984 150.34984 15034.98498 1.84984 298.84985 150.34985 15034.98527 1.84984 298.84984 150.34984000000003 15034.98400 2020-01-01 2020-01-02 2020-01-01 00:10:16 2020-01-02 03:38:37 2020-01-01 00:10:16.000 2020-01-02 03:38:37.000 616 99517 50066.5 5006650 616 99517 50066.5 5006650 -32554 32584 4846.66 484666 -128 127 0.58 58 -617 100 10607 99518 1.85285 298.85285 150.35285 15035.28528 1.85285 298.85284 150.35285 15035.2854 1.85285 298.85285 150.35285 15035.28500 2020-01-01 2020-01-02 2020-01-01 00:10:17 2020-01-02 03:38:38 2020-01-01 00:10:17.000 2020-01-02 03:38:38.000 617 99518 50067.5 5006750 617 99518 50067.5 5006750 -32553 32585 4847.66 484766 -128 123 -0.98 -98 +610 100 10600 99511 1.83183 298.83183 150.33183 15033.18318 1.83183 298.83182 150.33183 15033.18304 1.83183 298.83183 150.33182999999977 15033.18300 2020-01-01 2020-01-02 2020-01-01 00:10:10 2020-01-02 03:38:31 2020-01-01 00:10:10.000 2020-01-02 03:38:31.000 610 99511 50060.5 5006050 610 99511 50060.5 5006050 -32560 32578 4840.66 484066 -128 127 -0.3 -30 +611 100 10601 99512 1.83483 298.83483 150.33483 15033.48348 1.83483 298.83484 150.33483 15033.48363 1.83483 298.83483 150.3348299999998 15033.48300 2020-01-01 2020-01-02 2020-01-01 00:10:11 2020-01-02 03:38:32 2020-01-01 00:10:11.000 2020-01-02 03:38:32.000 611 99512 50061.5 5006150 611 99512 50061.5 5006150 -32559 32579 4841.66 484166 -128 123 -1.86 -186 +612 100 10602 99513 1.83783 298.83783 150.33783 15033.78378 1.83783 298.83783 150.33783 15033.78393 1.83783 298.83783 150.33783000000028 15033.78300 2020-01-01 2020-01-02 2020-01-01 00:10:12 2020-01-02 03:38:33 2020-01-01 00:10:12.000 2020-01-02 03:38:33.000 612 99513 50062.5 5006250 612 99513 50062.5 5006250 -32558 32580 4842.66 484266 -127 124 -0.86 -86 +613 100 10603 99514 1.84084 298.84084 150.34084 15034.08408 1.84084 298.84085 150.34084 15034.08405 1.84084 298.84084 150.34084000000016 15034.08400 2020-01-01 2020-01-02 2020-01-01 00:10:13 2020-01-02 03:38:34 2020-01-01 00:10:13.000 2020-01-02 03:38:34.000 613 99514 50063.5 5006350 613 99514 50063.5 5006350 -32557 32581 4843.66 484366 -126 125 0.14 14 +614 100 10604 99515 1.84384 298.84384 150.34384 15034.38438 1.84384 298.84384 150.34384 15034.38421 1.84384 298.84384 150.34383999999966 15034.38400 2020-01-01 2020-01-02 2020-01-01 00:10:14 2020-01-02 03:38:35 2020-01-01 00:10:14.000 2020-01-02 03:38:35.000 614 99515 50064.5 5006450 614 99515 50064.5 5006450 -32556 32582 4844.66 484466 -125 126 1.14 114 +615 100 10605 99516 1.84684 298.84684 150.34684 15034.68468 1.84684 298.84683 150.34684 15034.68452 1.84684 298.84684 150.34684000000013 15034.68400 2020-01-01 2020-01-02 2020-01-01 00:10:15 2020-01-02 03:38:36 2020-01-01 00:10:15.000 2020-01-02 03:38:36.000 615 99516 50065.5 5006550 615 99516 50065.5 5006550 -32555 32583 4845.66 484566 -124 127 2.14 214 +616 100 10606 99517 1.84984 298.84984 150.34984 15034.98498 1.84984 298.84985 150.34985 15034.98527 1.84984 298.84984 150.34984000000017 15034.98400 2020-01-01 2020-01-02 2020-01-01 00:10:16 2020-01-02 03:38:37 2020-01-01 00:10:16.000 2020-01-02 03:38:37.000 616 99517 50066.5 5006650 616 99517 50066.5 5006650 -32554 32584 4846.66 484666 -128 127 0.58 58 +617 100 10607 99518 1.85285 298.85285 150.35285 15035.28528 1.85285 298.85284 150.35285 15035.2854 1.85285 298.85285 150.3528499999999 15035.28500 2020-01-01 2020-01-02 2020-01-01 00:10:17 2020-01-02 03:38:38 2020-01-01 00:10:17.000 2020-01-02 03:38:38.000 617 99518 50067.5 5006750 617 99518 50067.5 5006750 -32553 32585 4847.66 484766 -128 123 -0.98 -98 618 100 10608 99519 1.85585 298.85585 150.35585 15035.58558 1.85585 298.85587 150.35585 15035.58551 1.85585 298.85585 150.35584999999995 15035.58500 2020-01-01 2020-01-02 2020-01-01 00:10:18 2020-01-02 03:38:39 2020-01-01 00:10:18.000 2020-01-02 03:38:39.000 618 99519 50068.5 5006850 618 99519 50068.5 5006850 -32552 32586 4848.66 484866 -127 124 0.02 2 -619 100 10609 99520 1.85885 298.85885 150.35885 15035.88588 1.85885 298.85886 150.35885 15035.88568 1.85885 298.85885 150.35885 15035.88500 2020-01-01 2020-01-02 2020-01-01 00:10:19 2020-01-02 03:38:40 2020-01-01 00:10:19.000 2020-01-02 03:38:40.000 619 99520 50069.5 5006950 619 99520 50069.5 5006950 -32551 32587 4849.66 484966 -126 125 1.02 102 -62 102 10052 99962 0.18618 300.18618 150.18618 15168.8048 0.18618 300.1862 150.18618 15168.80494 0.18618 300.18618 150.18618000000004 15168.80418 2020-01-01 2020-01-02 2020-01-01 00:01:02 2020-01-02 03:46:02 2020-01-01 00:01:02.000 2020-01-02 03:46:02.000 62 99962 50012 5051212 62 99962 50012 5051212 -32507 32428 4591.009900990099 463692 -127 124 -1.7821782178217822 -180 -620 100 10610 99521 1.86186 298.86186 150.36186 15036.18618 1.86186 298.86185 150.36185 15036.18598 1.86186 298.86186 150.3618600000001 15036.18600 2020-01-01 2020-01-02 2020-01-01 00:10:20 2020-01-02 03:38:41 2020-01-01 00:10:20.000 2020-01-02 03:38:41.000 620 99521 50070.5 5007050 620 99521 50070.5 5007050 -32550 32588 4850.66 485066 -125 126 2.02 202 -621 100 10611 99522 1.86486 298.86486 150.36486 15036.48648 1.86486 298.86487 150.36486 15036.48673 1.86486 298.86486 150.3648599999999 15036.48600 2020-01-01 2020-01-02 2020-01-01 00:10:21 2020-01-02 03:38:42 2020-01-01 00:10:21.000 2020-01-02 03:38:42.000 621 99522 50071.5 5007150 621 99522 50071.5 5007150 -32549 32589 4851.66 485166 -124 127 3.02 302 -622 100 10612 99523 1.86786 298.86786 150.36786 15036.78678 1.86786 298.86786 150.36786 15036.78687 1.86786 298.86786 150.36786000000006 15036.78600 2020-01-01 2020-01-02 2020-01-01 00:10:22 2020-01-02 03:38:43 2020-01-01 00:10:22.000 2020-01-02 03:38:43.000 622 99523 50072.5 5007250 622 99523 50072.5 5007250 -32548 32590 4852.66 485266 -128 127 1.46 146 -623 100 10613 99524 1.87087 298.87087 150.37087 15037.08708 1.87087 298.87088 150.37087 15037.08702 1.87087 298.87087 150.37087000000008 15037.08700 2020-01-01 2020-01-02 2020-01-01 00:10:23 2020-01-02 03:38:44 2020-01-01 00:10:23.000 2020-01-02 03:38:44.000 623 99524 50073.5 5007350 623 99524 50073.5 5007350 -32547 32591 4853.66 485366 -128 123 -0.1 -10 -624 100 10614 99525 1.87387 298.87387 150.37387 15037.38738 1.87387 298.87387 150.37387 15037.38716 1.87387 298.87387 150.37386999999998 15037.38700 2020-01-01 2020-01-02 2020-01-01 00:10:24 2020-01-02 03:38:45 2020-01-01 00:10:24.000 2020-01-02 03:38:45.000 624 99525 50074.5 5007450 624 99525 50074.5 5007450 -32546 32592 4854.66 485466 -127 124 0.9 90 +619 100 10609 99520 1.85885 298.85885 150.35885 15035.88588 1.85885 298.85886 150.35885 15035.88568 1.85885 298.85885 150.35885000000002 15035.88500 2020-01-01 2020-01-02 2020-01-01 00:10:19 2020-01-02 03:38:40 2020-01-01 00:10:19.000 2020-01-02 03:38:40.000 619 99520 50069.5 5006950 619 99520 50069.5 5006950 -32551 32587 4849.66 484966 -126 125 1.02 102 +62 102 10052 99962 0.18618 300.18618 150.18618 15168.8048 0.18618 300.1862 150.18618 15168.80494 0.18618 300.18618 150.1861800000001 15168.80418 2020-01-01 2020-01-02 2020-01-01 00:01:02 2020-01-02 03:46:02 2020-01-01 00:01:02.000 2020-01-02 03:46:02.000 62 99962 50012 5051212 62 99962 50012 5051212 -32507 32428 4591.009900990099 463692 -127 124 -1.7821782178217822 -180 +620 100 10610 99521 1.86186 298.86186 150.36186 15036.18618 1.86186 298.86185 150.36185 15036.18598 1.86186 298.86186 150.36186000000026 15036.18600 2020-01-01 2020-01-02 2020-01-01 00:10:20 2020-01-02 03:38:41 2020-01-01 00:10:20.000 2020-01-02 03:38:41.000 620 99521 50070.5 5007050 620 99521 50070.5 5007050 -32550 32588 4850.66 485066 -125 126 2.02 202 +621 100 10611 99522 1.86486 298.86486 150.36486 15036.48648 1.86486 298.86487 150.36486 15036.48673 1.86486 298.86486 150.3648599999998 15036.48600 2020-01-01 2020-01-02 2020-01-01 00:10:21 2020-01-02 03:38:42 2020-01-01 00:10:21.000 2020-01-02 03:38:42.000 621 99522 50071.5 5007150 621 99522 50071.5 5007150 -32549 32589 4851.66 485166 -124 127 3.02 302 +622 100 10612 99523 1.86786 298.86786 150.36786 15036.78678 1.86786 298.86786 150.36786 15036.78687 1.86786 298.86786 150.36786000000018 15036.78600 2020-01-01 2020-01-02 2020-01-01 00:10:22 2020-01-02 03:38:43 2020-01-01 00:10:22.000 2020-01-02 03:38:43.000 622 99523 50072.5 5007250 622 99523 50072.5 5007250 -32548 32590 4852.66 485266 -128 127 1.46 146 +623 100 10613 99524 1.87087 298.87087 150.37087 15037.08708 1.87087 298.87088 150.37087 15037.08702 1.87087 298.87087 150.37087000000014 15037.08700 2020-01-01 2020-01-02 2020-01-01 00:10:23 2020-01-02 03:38:44 2020-01-01 00:10:23.000 2020-01-02 03:38:44.000 623 99524 50073.5 5007350 623 99524 50073.5 5007350 -32547 32591 4853.66 485366 -128 123 -0.1 -10 +624 100 10614 99525 1.87387 298.87387 150.37387 15037.38738 1.87387 298.87387 150.37387 15037.38716 1.87387 298.87387 150.37386999999995 15037.38700 2020-01-01 2020-01-02 2020-01-01 00:10:24 2020-01-02 03:38:45 2020-01-01 00:10:24.000 2020-01-02 03:38:45.000 624 99525 50074.5 5007450 624 99525 50074.5 5007450 -32546 32592 4854.66 485466 -127 124 0.9 90 625 100 10615 99526 1.87687 298.87687 150.37687 15037.68768 1.87687 298.8769 150.37687 15037.68791 1.87687 298.87687 150.37687000000003 15037.68700 2020-01-01 2020-01-02 2020-01-01 00:10:25 2020-01-02 03:38:46 2020-01-01 00:10:25.000 2020-01-02 03:38:46.000 625 99526 50075.5 5007550 625 99526 50075.5 5007550 -32545 32593 4855.66 485566 -126 125 1.9 190 -626 100 10616 99527 1.87987 298.87987 150.37987 15037.98798 1.87987 298.87988 150.37988 15037.9882 1.87987 298.87987 150.37987000000004 15037.98700 2020-01-01 2020-01-02 2020-01-01 00:10:26 2020-01-02 03:38:47 2020-01-01 00:10:26.000 2020-01-02 03:38:47.000 626 99527 50076.5 5007650 626 99527 50076.5 5007650 -32544 32594 4856.66 485666 -125 126 2.9 290 -627 100 10617 99528 1.88288 298.88288 150.38288 15038.28828 1.88288 298.88287 150.38288 15038.28834 1.88288 298.88288 150.38287999999997 15038.28800 2020-01-01 2020-01-02 2020-01-01 00:10:27 2020-01-02 03:38:48 2020-01-01 00:10:27.000 2020-01-02 03:38:48.000 627 99528 50077.5 5007750 627 99528 50077.5 5007750 -32543 32595 4857.66 485766 -124 127 3.9 390 -628 100 10618 99529 1.88588 298.88588 150.38588 15038.58858 1.88588 298.8859 150.38588 15038.58849 1.88588 298.88588 150.3858799999999 15038.58800 2020-01-01 2020-01-02 2020-01-01 00:10:28 2020-01-02 03:38:49 2020-01-01 00:10:28.000 2020-01-02 03:38:49.000 628 99529 50078.5 5007850 628 99529 50078.5 5007850 -32542 32596 4858.66 485866 -128 127 2.34 234 -629 100 10619 99530 1.88888 298.88888 150.38888 15038.88888 1.88888 298.8889 150.38888 15038.88862 1.88888 298.88888 150.38888000000014 15038.88800 2020-01-01 2020-01-02 2020-01-01 00:10:29 2020-01-02 03:38:50 2020-01-01 00:10:29.000 2020-01-02 03:38:50.000 629 99530 50079.5 5007950 629 99530 50079.5 5007950 -32541 32597 4859.66 485966 -128 123 0.78 78 -63 102 10053 99963 0.18918 300.18918 150.18918 15169.1081 0.18918 300.18918 150.18918 15169.10808 0.18918 300.18918 150.18917999999996 15169.10718 2020-01-01 2020-01-02 2020-01-01 00:01:03 2020-01-02 03:46:03 2020-01-01 00:01:03.000 2020-01-02 03:46:03.000 63 99963 50013 5051313 63 99963 50013 5051313 -32506 32429 4592.009900990099 463793 -126 125 -0.7821782178217822 -79 -630 100 10620 99531 1.89189 298.89189 150.39189 15039.18918 1.89189 298.8919 150.39189 15039.18937 1.89189 298.89189 150.39189000000005 15039.18900 2020-01-01 2020-01-02 2020-01-01 00:10:30 2020-01-02 03:38:51 2020-01-01 00:10:30.000 2020-01-02 03:38:51.000 630 99531 50080.5 5008050 630 99531 50080.5 5008050 -32540 32598 4860.66 486066 -127 124 1.78 178 -631 100 10621 99532 1.89489 298.89489 150.39489 15039.48948 1.89489 298.8949 150.39489 15039.48968 1.89489 298.89489 150.39488999999986 15039.48900 2020-01-01 2020-01-02 2020-01-01 00:10:31 2020-01-02 03:38:52 2020-01-01 00:10:31.000 2020-01-02 03:38:52.000 631 99532 50081.5 5008150 631 99532 50081.5 5008150 -32539 32599 4861.66 486166 -126 125 2.78 278 -632 100 10622 99533 1.89789 298.89789 150.39789 15039.78978 1.89789 298.8979 150.39789 15039.78984 1.89789 298.89789 150.3978900000001 15039.78900 2020-01-01 2020-01-02 2020-01-01 00:10:32 2020-01-02 03:38:53 2020-01-01 00:10:32.000 2020-01-02 03:38:53.000 632 99533 50082.5 5008250 632 99533 50082.5 5008250 -32538 32600 4862.66 486266 -125 126 3.78 378 -633 100 10623 99534 1.9009 298.9009 150.4009 15040.09009 1.9009 298.9009 150.40089 15040.08996 1.90090 298.90090 150.4009 15040.09000 2020-01-01 2020-01-02 2020-01-01 00:10:33 2020-01-02 03:38:54 2020-01-01 00:10:33.000 2020-01-02 03:38:54.000 633 99534 50083.5 5008350 633 99534 50083.5 5008350 -32537 32601 4863.66 486366 -124 127 4.78 478 -634 100 10624 99535 1.9039 298.9039 150.4039 15040.39039 1.9039 298.9039 150.4039 15040.39009 1.90390 298.90390 150.40389999999996 15040.39000 2020-01-01 2020-01-02 2020-01-01 00:10:34 2020-01-02 03:38:55 2020-01-01 00:10:34.000 2020-01-02 03:38:55.000 634 99535 50084.5 5008450 634 99535 50084.5 5008450 -32536 32602 4864.66 486466 -128 127 3.22 322 +626 100 10616 99527 1.87987 298.87987 150.37987 15037.98798 1.87987 298.87988 150.37988 15037.9882 1.87987 298.87987 150.37987000000012 15037.98700 2020-01-01 2020-01-02 2020-01-01 00:10:26 2020-01-02 03:38:47 2020-01-01 00:10:26.000 2020-01-02 03:38:47.000 626 99527 50076.5 5007650 626 99527 50076.5 5007650 -32544 32594 4856.66 485666 -125 126 2.9 290 +627 100 10617 99528 1.88288 298.88288 150.38288 15038.28828 1.88288 298.88287 150.38288 15038.28834 1.88288 298.88288 150.3828799999998 15038.28800 2020-01-01 2020-01-02 2020-01-01 00:10:27 2020-01-02 03:38:48 2020-01-01 00:10:27.000 2020-01-02 03:38:48.000 627 99528 50077.5 5007750 627 99528 50077.5 5007750 -32543 32595 4857.66 485766 -124 127 3.9 390 +628 100 10618 99529 1.88588 298.88588 150.38588 15038.58858 1.88588 298.8859 150.38588 15038.58849 1.88588 298.88588 150.38587999999984 15038.58800 2020-01-01 2020-01-02 2020-01-01 00:10:28 2020-01-02 03:38:49 2020-01-01 00:10:28.000 2020-01-02 03:38:49.000 628 99529 50078.5 5007850 628 99529 50078.5 5007850 -32542 32596 4858.66 485866 -128 127 2.34 234 +629 100 10619 99530 1.88888 298.88888 150.38888 15038.88888 1.88888 298.8889 150.38888 15038.88862 1.88888 298.88888 150.3888800000003 15038.88800 2020-01-01 2020-01-02 2020-01-01 00:10:29 2020-01-02 03:38:50 2020-01-01 00:10:29.000 2020-01-02 03:38:50.000 629 99530 50079.5 5007950 629 99530 50079.5 5007950 -32541 32597 4859.66 485966 -128 123 0.78 78 +63 102 10053 99963 0.18918 300.18918 150.18918 15169.1081 0.18918 300.18918 150.18918 15169.10808 0.18918 300.18918 150.1891799999999 15169.10718 2020-01-01 2020-01-02 2020-01-01 00:01:03 2020-01-02 03:46:03 2020-01-01 00:01:03.000 2020-01-02 03:46:03.000 63 99963 50013 5051313 63 99963 50013 5051313 -32506 32429 4592.009900990099 463793 -126 125 -0.7821782178217822 -79 +630 100 10620 99531 1.89189 298.89189 150.39189 15039.18918 1.89189 298.8919 150.39189 15039.18937 1.89189 298.89189 150.3918900000002 15039.18900 2020-01-01 2020-01-02 2020-01-01 00:10:30 2020-01-02 03:38:51 2020-01-01 00:10:30.000 2020-01-02 03:38:51.000 630 99531 50080.5 5008050 630 99531 50080.5 5008050 -32540 32598 4860.66 486066 -127 124 1.78 178 +631 100 10621 99532 1.89489 298.89489 150.39489 15039.48948 1.89489 298.8949 150.39489 15039.48968 1.89489 298.89489 150.3948899999997 15039.48900 2020-01-01 2020-01-02 2020-01-01 00:10:31 2020-01-02 03:38:52 2020-01-01 00:10:31.000 2020-01-02 03:38:52.000 631 99532 50081.5 5008150 631 99532 50081.5 5008150 -32539 32599 4861.66 486166 -126 125 2.78 278 +632 100 10622 99533 1.89789 298.89789 150.39789 15039.78978 1.89789 298.8979 150.39789 15039.78984 1.89789 298.89789 150.39789000000016 15039.78900 2020-01-01 2020-01-02 2020-01-01 00:10:32 2020-01-02 03:38:53 2020-01-01 00:10:32.000 2020-01-02 03:38:53.000 632 99533 50082.5 5008250 632 99533 50082.5 5008250 -32538 32600 4862.66 486266 -125 126 3.78 378 +633 100 10623 99534 1.9009 298.9009 150.4009 15040.09009 1.9009 298.9009 150.40089 15040.08996 1.90090 298.90090 150.40090000000004 15040.09000 2020-01-01 2020-01-02 2020-01-01 00:10:33 2020-01-02 03:38:54 2020-01-01 00:10:33.000 2020-01-02 03:38:54.000 633 99534 50083.5 5008350 633 99534 50083.5 5008350 -32537 32601 4863.66 486366 -124 127 4.78 478 +634 100 10624 99535 1.9039 298.9039 150.4039 15040.39039 1.9039 298.9039 150.4039 15040.39009 1.90390 298.90390 150.40389999999988 15040.39000 2020-01-01 2020-01-02 2020-01-01 00:10:34 2020-01-02 03:38:55 2020-01-01 00:10:34.000 2020-01-02 03:38:55.000 634 99535 50084.5 5008450 634 99535 50084.5 5008450 -32536 32602 4864.66 486466 -128 127 3.22 322 635 100 10625 99536 1.9069 298.9069 150.4069 15040.69069 1.9069 298.90692 150.4069 15040.69084 1.90690 298.90690 150.40689999999998 15040.69000 2020-01-01 2020-01-02 2020-01-01 00:10:35 2020-01-02 03:38:56 2020-01-01 00:10:35.000 2020-01-02 03:38:56.000 635 99536 50085.5 5008550 635 99536 50085.5 5008550 -32535 32603 4865.66 486566 -128 127 1.66 166 -636 100 10626 99537 1.9099 298.9099 150.4099 15040.99099 1.90991 298.9099 150.40991 15040.99115 1.90990 298.90990 150.40990000000002 15040.99000 2020-01-01 2020-01-02 2020-01-01 00:10:36 2020-01-02 03:38:57 2020-01-01 00:10:36.000 2020-01-02 03:38:57.000 636 99537 50086.5 5008650 636 99537 50086.5 5008650 -32534 32604 4866.66 486666 -128 124 0.1 10 -637 100 10627 99538 1.91291 298.91291 150.41291 15041.29129 1.91291 298.9129 150.41291 15041.29131 1.91291 298.91291 150.4129099999999 15041.29100 2020-01-01 2020-01-02 2020-01-01 00:10:37 2020-01-02 03:38:58 2020-01-01 00:10:37.000 2020-01-02 03:38:58.000 637 99538 50087.5 5008750 637 99538 50087.5 5008750 -32533 32605 4867.66 486766 -127 125 1.1 110 -638 100 10628 99539 1.91591 298.91591 150.41591 15041.59159 1.91591 298.91592 150.41591 15041.59143 1.91591 298.91591 150.41590999999994 15041.59100 2020-01-01 2020-01-02 2020-01-01 00:10:38 2020-01-02 03:38:59 2020-01-01 00:10:38.000 2020-01-02 03:38:59.000 638 99539 50088.5 5008850 638 99539 50088.5 5008850 -32532 32606 4868.66 486866 -126 126 2.1 210 -639 100 10629 99540 1.91891 298.91891 150.41891 15041.89189 1.91891 298.9189 150.41891 15041.89172 1.91891 298.91891 150.4189100000001 15041.89100 2020-01-01 2020-01-02 2020-01-01 00:10:39 2020-01-02 03:39:00 2020-01-01 00:10:39.000 2020-01-02 03:39:00.000 639 99540 50089.5 5008950 639 99540 50089.5 5008950 -32531 32607 4869.66 486966 -125 127 3.1 310 -64 102 10054 99964 0.19219 300.19219 150.19219 15169.41141 0.19219 300.1922 150.19219 15169.41184 0.19219 300.19219 150.19218999999993 15169.41119 2020-01-01 2020-01-02 2020-01-01 00:01:04 2020-01-02 03:46:04 2020-01-01 00:01:04.000 2020-01-02 03:46:04.000 64 99964 50014 5051414 64 99964 50014 5051414 -32505 32430 4593.009900990099 463894 -125 126 0.21782178217821782 22 -640 100 10630 99541 1.92192 298.92192 150.42192 15042.19219 1.92192 298.92194 150.42192 15042.19232 1.92192 298.92192 150.42192 15042.19200 2020-01-01 2020-01-02 2020-01-01 00:10:40 2020-01-02 03:39:01 2020-01-01 00:10:40.000 2020-01-02 03:39:01.000 640 99541 50090.5 5009050 640 99541 50090.5 5009050 -32530 32608 4870.66 487066 -128 127 1.54 154 -641 100 10631 99542 1.92492 298.92492 150.42492 15042.49249 1.92492 298.92493 150.42492 15042.49265 1.92492 298.92492 150.42492000000001 15042.49200 2020-01-01 2020-01-02 2020-01-01 00:10:41 2020-01-02 03:39:02 2020-01-01 00:10:41.000 2020-01-02 03:39:02.000 641 99542 50091.5 5009150 641 99542 50091.5 5009150 -32529 32609 4871.66 487166 -128 127 -0.02 -2 +636 100 10626 99537 1.9099 298.9099 150.4099 15040.99099 1.90991 298.9099 150.40991 15040.99115 1.90990 298.90990 150.40990000000005 15040.99000 2020-01-01 2020-01-02 2020-01-01 00:10:36 2020-01-02 03:38:57 2020-01-01 00:10:36.000 2020-01-02 03:38:57.000 636 99537 50086.5 5008650 636 99537 50086.5 5008650 -32534 32604 4866.66 486666 -128 124 0.1 10 +637 100 10627 99538 1.91291 298.91291 150.41291 15041.29129 1.91291 298.9129 150.41291 15041.29131 1.91291 298.91291 150.41290999999973 15041.29100 2020-01-01 2020-01-02 2020-01-01 00:10:37 2020-01-02 03:38:58 2020-01-01 00:10:37.000 2020-01-02 03:38:58.000 637 99538 50087.5 5008750 637 99538 50087.5 5008750 -32533 32605 4867.66 486766 -127 125 1.1 110 +638 100 10628 99539 1.91591 298.91591 150.41591 15041.59159 1.91591 298.91592 150.41591 15041.59143 1.91591 298.91591 150.41590999999983 15041.59100 2020-01-01 2020-01-02 2020-01-01 00:10:38 2020-01-02 03:38:59 2020-01-01 00:10:38.000 2020-01-02 03:38:59.000 638 99539 50088.5 5008850 638 99539 50088.5 5008850 -32532 32606 4868.66 486866 -126 126 2.1 210 +639 100 10629 99540 1.91891 298.91891 150.41891 15041.89189 1.91891 298.9189 150.41891 15041.89172 1.91891 298.91891 150.4189100000002 15041.89100 2020-01-01 2020-01-02 2020-01-01 00:10:39 2020-01-02 03:39:00 2020-01-01 00:10:39.000 2020-01-02 03:39:00.000 639 99540 50089.5 5008950 639 99540 50089.5 5008950 -32531 32607 4869.66 486966 -125 127 3.1 310 +64 102 10054 99964 0.19219 300.19219 150.19219 15169.41141 0.19219 300.1922 150.19219 15169.41184 0.19219 300.19219 150.19218999999984 15169.41119 2020-01-01 2020-01-02 2020-01-01 00:01:04 2020-01-02 03:46:04 2020-01-01 00:01:04.000 2020-01-02 03:46:04.000 64 99964 50014 5051414 64 99964 50014 5051414 -32505 32430 4593.009900990099 463894 -125 126 0.21782178217821782 22 +640 100 10630 99541 1.92192 298.92192 150.42192 15042.19219 1.92192 298.92194 150.42192 15042.19232 1.92192 298.92192 150.42192000000009 15042.19200 2020-01-01 2020-01-02 2020-01-01 00:10:40 2020-01-02 03:39:01 2020-01-01 00:10:40.000 2020-01-02 03:39:01.000 640 99541 50090.5 5009050 640 99541 50090.5 5009050 -32530 32608 4870.66 487066 -128 127 1.54 154 +641 100 10631 99542 1.92492 298.92492 150.42492 15042.49249 1.92492 298.92493 150.42492 15042.49265 1.92492 298.92492 150.42492 15042.49200 2020-01-01 2020-01-02 2020-01-01 00:10:41 2020-01-02 03:39:02 2020-01-01 00:10:41.000 2020-01-02 03:39:02.000 641 99542 50091.5 5009150 641 99542 50091.5 5009150 -32529 32609 4871.66 487166 -128 127 -0.02 -2 642 100 10632 99543 1.92792 298.92792 150.42792 15042.79279 1.92792 298.92792 150.42792 15042.79278 1.92792 298.92792 150.42792000000006 15042.79200 2020-01-01 2020-01-02 2020-01-01 00:10:42 2020-01-02 03:39:03 2020-01-01 00:10:42.000 2020-01-02 03:39:03.000 642 99543 50092.5 5009250 642 99543 50092.5 5009250 -32528 32610 4872.66 487266 -128 123 -1.58 -158 -643 100 10633 99544 1.93093 298.93093 150.43093 15043.09309 1.93093 298.93094 150.43092 15043.0929 1.93093 298.93093 150.43093000000016 15043.09300 2020-01-01 2020-01-02 2020-01-01 00:10:43 2020-01-02 03:39:04 2020-01-01 00:10:43.000 2020-01-02 03:39:04.000 643 99544 50093.5 5009350 643 99544 50093.5 5009350 -32527 32611 4873.66 487366 -127 124 -0.58 -58 -644 100 10634 99545 1.93393 298.93393 150.43393 15043.39339 1.93393 298.93393 150.43393 15043.39319 1.93393 298.93393 150.43392999999995 15043.39300 2020-01-01 2020-01-02 2020-01-01 00:10:44 2020-01-02 03:39:05 2020-01-01 00:10:44.000 2020-01-02 03:39:05.000 644 99545 50094.5 5009450 644 99545 50094.5 5009450 -32526 32612 4874.66 487466 -126 125 0.42 42 -645 100 10635 99546 1.93693 298.93693 150.43693 15043.69369 1.93693 298.93695 150.43693 15043.69379 1.93693 298.93693 150.43692999999993 15043.69300 2020-01-01 2020-01-02 2020-01-01 00:10:45 2020-01-02 03:39:06 2020-01-01 00:10:45.000 2020-01-02 03:39:06.000 645 99546 50095.5 5009550 645 99546 50095.5 5009550 -32525 32613 4875.66 487566 -125 126 1.42 142 -646 100 10636 99547 1.93993 298.93993 150.43993 15043.99399 1.93994 298.93994 150.43994 15043.99412 1.93993 298.93993 150.43993000000017 15043.99300 2020-01-01 2020-01-02 2020-01-01 00:10:46 2020-01-02 03:39:07 2020-01-01 00:10:46.000 2020-01-02 03:39:07.000 646 99547 50096.5 5009650 646 99547 50096.5 5009650 -32524 32614 4876.66 487666 -124 127 2.42 242 -647 100 10637 99548 1.94294 298.94294 150.44294 15044.29429 1.94294 298.94293 150.44294 15044.29425 1.94294 298.94294 150.44294000000005 15044.29400 2020-01-01 2020-01-02 2020-01-01 00:10:47 2020-01-02 03:39:08 2020-01-01 00:10:47.000 2020-01-02 03:39:08.000 647 99548 50097.5 5009750 647 99548 50097.5 5009750 -32523 32615 4877.66 487766 -128 127 0.86 86 -648 100 10638 99549 1.94594 298.94594 150.44594 15044.59459 1.94594 298.94595 150.44595 15044.595 1.94594 298.94594 150.4459399999999 15044.59400 2020-01-01 2020-01-02 2020-01-01 00:10:48 2020-01-02 03:39:09 2020-01-01 00:10:48.000 2020-01-02 03:39:09.000 648 99549 50098.5 5009850 648 99549 50098.5 5009850 -32522 32616 4878.66 487866 -128 123 -0.7 -70 -649 100 10639 99550 1.94894 298.94894 150.44894 15044.89489 1.94894 298.94894 150.44894 15044.89467 1.94894 298.94894 150.4489400000001 15044.89400 2020-01-01 2020-01-02 2020-01-01 00:10:49 2020-01-02 03:39:10 2020-01-01 00:10:49.000 2020-01-02 03:39:10.000 649 99550 50099.5 5009950 649 99550 50099.5 5009950 -32521 32617 4879.66 487966 -127 124 0.3 30 -65 102 10055 99965 0.19519 300.19519 150.19519 15169.71471 0.19519 300.1952 150.19519 15169.71448 0.19519 300.19519 150.19519000000008 15169.71419 2020-01-01 2020-01-02 2020-01-01 00:01:05 2020-01-02 03:46:05 2020-01-01 00:01:05.000 2020-01-02 03:46:05.000 65 99965 50015 5051515 65 99965 50015 5051515 -32504 32431 4594.009900990099 463995 -124 127 1.2178217821782178 123 -650 100 10640 99551 1.95195 298.95195 150.45195 15045.19519 1.95195 298.95197 150.45195 15045.19525 1.95195 298.95195 150.45195 15045.19500 2020-01-01 2020-01-02 2020-01-01 00:10:50 2020-01-02 03:39:11 2020-01-01 00:10:50.000 2020-01-02 03:39:11.000 650 99551 50100.5 5010050 650 99551 50100.5 5010050 -32520 32618 4880.66 488066 -126 125 1.3 130 -651 100 10641 99552 1.95495 298.95495 150.45495 15045.49549 1.95495 298.95496 150.45495 15045.49558 1.95495 298.95495 150.45494999999994 15045.49500 2020-01-01 2020-01-02 2020-01-01 00:10:51 2020-01-02 03:39:12 2020-01-01 00:10:51.000 2020-01-02 03:39:12.000 651 99552 50101.5 5010150 651 99552 50101.5 5010150 -32519 32619 4881.66 488166 -125 126 2.3 230 -652 100 10642 99553 1.95795 298.95795 150.45795 15045.79579 1.95795 298.95795 150.45795 15045.79572 1.95795 298.95795 150.45795 15045.79500 2020-01-01 2020-01-02 2020-01-01 00:10:52 2020-01-02 03:39:13 2020-01-01 00:10:52.000 2020-01-02 03:39:13.000 652 99553 50102.5 5010250 652 99553 50102.5 5010250 -32518 32620 4882.66 488266 -124 127 3.3 330 -653 100 10643 99554 1.96096 298.96096 150.46096 15046.09609 1.96096 298.96097 150.46096 15046.09647 1.96096 298.96096 150.46096000000006 15046.09600 2020-01-01 2020-01-02 2020-01-01 00:10:53 2020-01-02 03:39:14 2020-01-01 00:10:53.000 2020-01-02 03:39:14.000 653 99554 50103.5 5010350 653 99554 50103.5 5010350 -32517 32621 4883.66 488366 -128 127 1.74 174 -654 100 10644 99555 1.96396 298.96396 150.46396 15046.39639 1.96396 298.96396 150.46396 15046.39613 1.96396 298.96396 150.46395999999993 15046.39600 2020-01-01 2020-01-02 2020-01-01 00:10:54 2020-01-02 03:39:15 2020-01-01 00:10:54.000 2020-01-02 03:39:15.000 654 99555 50104.5 5010450 654 99555 50104.5 5010450 -32516 32622 4884.66 488466 -128 123 0.18 18 -655 100 10645 99556 1.96696 298.96696 150.46696 15046.69669 1.96696 298.96698 150.46696 15046.69676 1.96696 298.96696 150.46695999999991 15046.69600 2020-01-01 2020-01-02 2020-01-01 00:10:55 2020-01-02 03:39:16 2020-01-01 00:10:55.000 2020-01-02 03:39:16.000 655 99556 50105.5 5010550 655 99556 50105.5 5010550 -32515 32623 4885.66 488566 -127 124 1.18 118 -656 100 10646 99557 1.96996 298.96996 150.46996 15046.99699 1.96997 298.96997 150.46997 15046.99706 1.96996 298.96996 150.46996000000007 15046.99600 2020-01-01 2020-01-02 2020-01-01 00:10:56 2020-01-02 03:39:17 2020-01-01 00:10:56.000 2020-01-02 03:39:17.000 656 99557 50106.5 5010650 656 99557 50106.5 5010650 -32514 32624 4886.66 488666 -126 125 2.18 218 -657 100 10647 99558 1.97297 298.97297 150.47297 15047.29729 1.97297 298.97296 150.47297 15047.29735 1.97297 298.97297 150.47297000000003 15047.29700 2020-01-01 2020-01-02 2020-01-01 00:10:57 2020-01-02 03:39:18 2020-01-01 00:10:57.000 2020-01-02 03:39:18.000 657 99558 50107.5 5010750 657 99558 50107.5 5010750 -32513 32625 4887.66 488766 -125 126 3.18 318 +643 100 10633 99544 1.93093 298.93093 150.43093 15043.09309 1.93093 298.93094 150.43092 15043.0929 1.93093 298.93093 150.43093000000033 15043.09300 2020-01-01 2020-01-02 2020-01-01 00:10:43 2020-01-02 03:39:04 2020-01-01 00:10:43.000 2020-01-02 03:39:04.000 643 99544 50093.5 5009350 643 99544 50093.5 5009350 -32527 32611 4873.66 487366 -127 124 -0.58 -58 +644 100 10634 99545 1.93393 298.93393 150.43393 15043.39339 1.93393 298.93393 150.43393 15043.39319 1.93393 298.93393 150.43392999999983 15043.39300 2020-01-01 2020-01-02 2020-01-01 00:10:44 2020-01-02 03:39:05 2020-01-01 00:10:44.000 2020-01-02 03:39:05.000 644 99545 50094.5 5009450 644 99545 50094.5 5009450 -32526 32612 4874.66 487466 -126 125 0.42 42 +645 100 10635 99546 1.93693 298.93693 150.43693 15043.69369 1.93693 298.93695 150.43693 15043.69379 1.93693 298.93693 150.43692999999988 15043.69300 2020-01-01 2020-01-02 2020-01-01 00:10:45 2020-01-02 03:39:06 2020-01-01 00:10:45.000 2020-01-02 03:39:06.000 645 99546 50095.5 5009550 645 99546 50095.5 5009550 -32525 32613 4875.66 487566 -125 126 1.42 142 +646 100 10636 99547 1.93993 298.93993 150.43993 15043.99399 1.93994 298.93994 150.43994 15043.99412 1.93993 298.93993 150.43993000000023 15043.99300 2020-01-01 2020-01-02 2020-01-01 00:10:46 2020-01-02 03:39:07 2020-01-01 00:10:46.000 2020-01-02 03:39:07.000 646 99547 50096.5 5009650 646 99547 50096.5 5009650 -32524 32614 4876.66 487666 -124 127 2.42 242 +647 100 10637 99548 1.94294 298.94294 150.44294 15044.29429 1.94294 298.94293 150.44294 15044.29425 1.94294 298.94294 150.44294000000022 15044.29400 2020-01-01 2020-01-02 2020-01-01 00:10:47 2020-01-02 03:39:08 2020-01-01 00:10:47.000 2020-01-02 03:39:08.000 647 99548 50097.5 5009750 647 99548 50097.5 5009750 -32523 32615 4877.66 487766 -128 127 0.86 86 +648 100 10638 99549 1.94594 298.94594 150.44594 15044.59459 1.94594 298.94595 150.44595 15044.595 1.94594 298.94594 150.44593999999972 15044.59400 2020-01-01 2020-01-02 2020-01-01 00:10:48 2020-01-02 03:39:09 2020-01-01 00:10:48.000 2020-01-02 03:39:09.000 648 99549 50098.5 5009850 648 99549 50098.5 5009850 -32522 32616 4878.66 487866 -128 123 -0.7 -70 +649 100 10639 99550 1.94894 298.94894 150.44894 15044.89489 1.94894 298.94894 150.44894 15044.89467 1.94894 298.94894 150.4489400000002 15044.89400 2020-01-01 2020-01-02 2020-01-01 00:10:49 2020-01-02 03:39:10 2020-01-01 00:10:49.000 2020-01-02 03:39:10.000 649 99550 50099.5 5009950 649 99550 50099.5 5009950 -32521 32617 4879.66 487966 -127 124 0.3 30 +65 102 10055 99965 0.19519 300.19519 150.19519 15169.71471 0.19519 300.1952 150.19519 15169.71448 0.19519 300.19519 150.19519000000025 15169.71419 2020-01-01 2020-01-02 2020-01-01 00:01:05 2020-01-02 03:46:05 2020-01-01 00:01:05.000 2020-01-02 03:46:05.000 65 99965 50015 5051515 65 99965 50015 5051515 -32504 32431 4594.009900990099 463995 -124 127 1.2178217821782178 123 +650 100 10640 99551 1.95195 298.95195 150.45195 15045.19519 1.95195 298.95197 150.45195 15045.19525 1.95195 298.95195 150.45195000000007 15045.19500 2020-01-01 2020-01-02 2020-01-01 00:10:50 2020-01-02 03:39:11 2020-01-01 00:10:50.000 2020-01-02 03:39:11.000 650 99551 50100.5 5010050 650 99551 50100.5 5010050 -32520 32618 4880.66 488066 -126 125 1.3 130 +651 100 10641 99552 1.95495 298.95495 150.45495 15045.49549 1.95495 298.95496 150.45495 15045.49558 1.95495 298.95495 150.45494999999988 15045.49500 2020-01-01 2020-01-02 2020-01-01 00:10:51 2020-01-02 03:39:12 2020-01-01 00:10:51.000 2020-01-02 03:39:12.000 651 99552 50101.5 5010150 651 99552 50101.5 5010150 -32519 32619 4881.66 488166 -125 126 2.3 230 +652 100 10642 99553 1.95795 298.95795 150.45795 15045.79579 1.95795 298.95795 150.45795 15045.79572 1.95795 298.95795 150.45794999999998 15045.79500 2020-01-01 2020-01-02 2020-01-01 00:10:52 2020-01-02 03:39:13 2020-01-01 00:10:52.000 2020-01-02 03:39:13.000 652 99553 50102.5 5010250 652 99553 50102.5 5010250 -32518 32620 4882.66 488266 -124 127 3.3 330 +653 100 10643 99554 1.96096 298.96096 150.46096 15046.09609 1.96096 298.96097 150.46096 15046.09647 1.96096 298.96096 150.46096000000023 15046.09600 2020-01-01 2020-01-02 2020-01-01 00:10:53 2020-01-02 03:39:14 2020-01-01 00:10:53.000 2020-01-02 03:39:14.000 653 99554 50103.5 5010350 653 99554 50103.5 5010350 -32517 32621 4883.66 488366 -128 127 1.74 174 +654 100 10644 99555 1.96396 298.96396 150.46396 15046.39639 1.96396 298.96396 150.46396 15046.39613 1.96396 298.96396 150.46395999999973 15046.39600 2020-01-01 2020-01-02 2020-01-01 00:10:54 2020-01-02 03:39:15 2020-01-01 00:10:54.000 2020-01-02 03:39:15.000 654 99555 50104.5 5010450 654 99555 50104.5 5010450 -32516 32622 4884.66 488466 -128 123 0.18 18 +655 100 10645 99556 1.96696 298.96696 150.46696 15046.69669 1.96696 298.96698 150.46696 15046.69676 1.96696 298.96696 150.46695999999983 15046.69600 2020-01-01 2020-01-02 2020-01-01 00:10:55 2020-01-02 03:39:16 2020-01-01 00:10:55.000 2020-01-02 03:39:16.000 655 99556 50105.5 5010550 655 99556 50105.5 5010550 -32515 32623 4885.66 488566 -127 124 1.18 118 +656 100 10646 99557 1.96996 298.96996 150.46996 15046.99699 1.96997 298.96997 150.46997 15046.99706 1.96996 298.96996 150.46996000000024 15046.99600 2020-01-01 2020-01-02 2020-01-01 00:10:56 2020-01-02 03:39:17 2020-01-01 00:10:56.000 2020-01-02 03:39:17.000 656 99557 50106.5 5010650 656 99557 50106.5 5010650 -32514 32624 4886.66 488666 -126 125 2.18 218 +657 100 10647 99558 1.97297 298.97297 150.47297 15047.29729 1.97297 298.97296 150.47297 15047.29735 1.97297 298.97297 150.47297000000012 15047.29700 2020-01-01 2020-01-02 2020-01-01 00:10:57 2020-01-02 03:39:18 2020-01-01 00:10:57.000 2020-01-02 03:39:18.000 657 99558 50107.5 5010750 657 99558 50107.5 5010750 -32513 32625 4887.66 488766 -125 126 3.18 318 658 100 10648 99559 1.97597 298.97597 150.47597 15047.59759 1.97597 298.97598 150.47597 15047.59794 1.97597 298.97597 150.47597000000002 15047.59700 2020-01-01 2020-01-02 2020-01-01 00:10:58 2020-01-02 03:39:19 2020-01-01 00:10:58.000 2020-01-02 03:39:19.000 658 99559 50108.5 5010850 658 99559 50108.5 5010850 -32512 32626 4888.66 488866 -124 127 4.18 418 659 100 10649 99560 1.97897 298.97897 150.47897 15047.89789 1.97897 298.97897 150.47897 15047.8976 1.97897 298.97897 150.4789700000001 15047.89700 2020-01-01 2020-01-02 2020-01-01 00:10:59 2020-01-02 03:39:20 2020-01-01 00:10:59.000 2020-01-02 03:39:20.000 659 99560 50109.5 5010950 659 99560 50109.5 5010950 -32511 32627 4889.66 488966 -128 127 2.62 262 -66 102 10056 99966 0.19819 300.19819 150.19819 15170.01801 0.19819 300.1982 150.19819 15170.01808 0.19819 300.19819 150.19818999999993 15170.01719 2020-01-01 2020-01-02 2020-01-01 00:01:06 2020-01-02 03:46:06 2020-01-01 00:01:06.000 2020-01-02 03:46:06.000 66 99966 50016 5051616 66 99966 50016 5051616 -32503 32432 4595.009900990099 464096 -128 127 -0.31683168316831684 -32 +66 102 10056 99966 0.19819 300.19819 150.19819 15170.01801 0.19819 300.1982 150.19819 15170.01808 0.19819 300.19819 150.19818999999976 15170.01719 2020-01-01 2020-01-02 2020-01-01 00:01:06 2020-01-02 03:46:06 2020-01-01 00:01:06.000 2020-01-02 03:46:06.000 66 99966 50016 5051616 66 99966 50016 5051616 -32503 32432 4595.009900990099 464096 -128 127 -0.31683168316831684 -32 660 100 10650 99561 1.98198 298.98198 150.48198 15048.19819 1.98198 298.982 150.48198 15048.19822 1.98198 298.98198 150.48197999999996 15048.19800 2020-01-01 2020-01-02 2020-01-01 00:11:00 2020-01-02 03:39:21 2020-01-01 00:11:00.000 2020-01-02 03:39:21.000 660 99561 50110.5 5011050 660 99561 50110.5 5011050 -32510 32628 4890.66 489066 -128 127 1.06 106 -661 100 10651 99562 1.98498 298.98498 150.48498 15048.49849 1.98498 298.985 150.48498 15048.49853 1.98498 298.98498 150.48497999999998 15048.49800 2020-01-01 2020-01-02 2020-01-01 00:11:01 2020-01-02 03:39:22 2020-01-01 00:11:01.000 2020-01-02 03:39:22.000 661 99562 50111.5 5011150 661 99562 50111.5 5011150 -32509 32629 4891.66 489166 -128 124 -0.5 -50 +661 100 10651 99562 1.98498 298.98498 150.48498 15048.49849 1.98498 298.985 150.48498 15048.49853 1.98498 298.98498 150.48497999999987 15048.49800 2020-01-01 2020-01-02 2020-01-01 00:11:01 2020-01-02 03:39:22 2020-01-01 00:11:01.000 2020-01-02 03:39:22.000 661 99562 50111.5 5011150 661 99562 50111.5 5011150 -32509 32629 4891.66 489166 -128 124 -0.5 -50 662 100 10652 99563 1.98798 298.98798 150.48798 15048.79879 1.98798 298.98798 150.48798 15048.79882 1.98798 298.98798 150.4879799999999 15048.79800 2020-01-01 2020-01-02 2020-01-01 00:11:02 2020-01-02 03:39:23 2020-01-01 00:11:02.000 2020-01-02 03:39:23.000 662 99563 50112.5 5011250 662 99563 50112.5 5011250 -32508 32630 4892.66 489266 -127 125 0.5 50 -663 100 10653 99564 1.99099 298.99099 150.49099 15049.09909 1.99099 298.991 150.49099 15049.09942 1.99099 298.99099 150.4909900000001 15049.09900 2020-01-01 2020-01-02 2020-01-01 00:11:03 2020-01-02 03:39:24 2020-01-01 00:11:03.000 2020-01-02 03:39:24.000 663 99564 50113.5 5011350 663 99564 50113.5 5011350 -32507 32631 4893.66 489366 -126 126 1.5 150 -664 100 10654 99565 1.99399 298.99399 150.49399 15049.39939 1.99399 298.994 150.49399 15049.39911 1.99399 298.99399 150.49399000000005 15049.39900 2020-01-01 2020-01-02 2020-01-01 00:11:04 2020-01-02 03:39:25 2020-01-01 00:11:04.000 2020-01-02 03:39:25.000 664 99565 50114.5 5011450 664 99565 50114.5 5011450 -32506 32632 4894.66 489466 -125 127 2.5 250 -665 100 10655 99566 1.99699 298.99699 150.49699 15049.69969 1.99699 298.997 150.49699 15049.6997 1.99699 298.99699 150.49698999999993 15049.69900 2020-01-01 2020-01-02 2020-01-01 00:11:05 2020-01-02 03:39:26 2020-01-01 00:11:05.000 2020-01-02 03:39:26.000 665 99566 50115.5 5011550 665 99566 50115.5 5011550 -32505 32633 4895.66 489566 -128 127 0.94 94 +663 100 10653 99564 1.99099 298.99099 150.49099 15049.09909 1.99099 298.991 150.49099 15049.09942 1.99099 298.99099 150.49099000000015 15049.09900 2020-01-01 2020-01-02 2020-01-01 00:11:03 2020-01-02 03:39:24 2020-01-01 00:11:03.000 2020-01-02 03:39:24.000 663 99564 50113.5 5011350 663 99564 50113.5 5011350 -32507 32631 4893.66 489366 -126 126 1.5 150 +664 100 10654 99565 1.99399 298.99399 150.49399 15049.39939 1.99399 298.994 150.49399 15049.39911 1.99399 298.99399 150.49399000000025 15049.39900 2020-01-01 2020-01-02 2020-01-01 00:11:04 2020-01-02 03:39:25 2020-01-01 00:11:04.000 2020-01-02 03:39:25.000 664 99565 50114.5 5011450 664 99565 50114.5 5011450 -32506 32632 4894.66 489466 -125 127 2.5 250 +665 100 10655 99566 1.99699 298.99699 150.49699 15049.69969 1.99699 298.997 150.49699 15049.6997 1.99699 298.99699 150.49698999999976 15049.69900 2020-01-01 2020-01-02 2020-01-01 00:11:05 2020-01-02 03:39:26 2020-01-01 00:11:05.000 2020-01-02 03:39:26.000 665 99566 50115.5 5011550 665 99566 50115.5 5011550 -32505 32633 4895.66 489566 -128 127 0.94 94 666 100 10656 99567 2 299 150.5 15050 2 299 150.5 15050 2.00000 299.00000 150.5 15050.00000 2020-01-01 2020-01-02 2020-01-01 00:11:06 2020-01-02 03:39:27 2020-01-01 00:11:06.000 2020-01-02 03:39:27.000 666 99567 50116.5 5011650 666 99567 50116.5 5011650 -32504 32634 4896.66 489666 -128 127 -0.62 -62 -667 100 10657 99568 2.003 299.003 150.503 15050.3003 2.003 299.003 150.503 15050.30029 2.00300 299.00300 150.50300000000004 15050.30000 2020-01-01 2020-01-02 2020-01-01 00:11:07 2020-01-02 03:39:28 2020-01-01 00:11:07.000 2020-01-02 03:39:28.000 667 99568 50117.5 5011750 667 99568 50117.5 5011750 -32503 32635 4897.66 489766 -128 123 -2.18 -218 -668 100 10658 99569 2.006 299.006 150.506 15050.6006 2.006 299.006 150.506 15050.60089 2.00600 299.00600 150.50599999999997 15050.60000 2020-01-01 2020-01-02 2020-01-01 00:11:08 2020-01-02 03:39:29 2020-01-01 00:11:08.000 2020-01-02 03:39:29.000 668 99569 50118.5 5011850 668 99569 50118.5 5011850 -32502 32636 4898.66 489866 -127 124 -1.18 -118 -669 100 10659 99570 2.009 299.009 150.509 15050.9009 2.009 299.009 150.509 15050.90057 2.00900 299.00900 150.509 15050.90000 2020-01-01 2020-01-02 2020-01-01 00:11:09 2020-01-02 03:39:30 2020-01-01 00:11:09.000 2020-01-02 03:39:30.000 669 99570 50119.5 5011950 669 99570 50119.5 5011950 -32501 32637 4899.66 489966 -126 125 -0.18 -18 +667 100 10657 99568 2.003 299.003 150.503 15050.3003 2.003 299.003 150.503 15050.30029 2.00300 299.00300 150.5030000000001 15050.30000 2020-01-01 2020-01-02 2020-01-01 00:11:07 2020-01-02 03:39:28 2020-01-01 00:11:07.000 2020-01-02 03:39:28.000 667 99568 50117.5 5011750 667 99568 50117.5 5011750 -32503 32635 4897.66 489766 -128 123 -2.18 -218 +668 100 10658 99569 2.006 299.006 150.506 15050.6006 2.006 299.006 150.506 15050.60089 2.00600 299.00600 150.50599999999991 15050.60000 2020-01-01 2020-01-02 2020-01-01 00:11:08 2020-01-02 03:39:29 2020-01-01 00:11:08.000 2020-01-02 03:39:29.000 668 99569 50118.5 5011850 668 99569 50118.5 5011850 -32502 32636 4898.66 489866 -127 124 -1.18 -118 +669 100 10659 99570 2.009 299.009 150.509 15050.9009 2.009 299.009 150.509 15050.90057 2.00900 299.00900 150.50900000000001 15050.90000 2020-01-01 2020-01-02 2020-01-01 00:11:09 2020-01-02 03:39:30 2020-01-01 00:11:09.000 2020-01-02 03:39:30.000 669 99570 50119.5 5011950 669 99570 50119.5 5011950 -32501 32637 4899.66 489966 -126 125 -0.18 -18 67 102 10057 99967 0.2012 300.2012 150.2012 15170.32132 0.2012 300.2012 150.2012 15170.32142 0.20120 300.20120 150.20120000000003 15170.32120 2020-01-01 2020-01-02 2020-01-01 00:01:07 2020-01-02 03:46:07 2020-01-01 00:01:07.000 2020-01-02 03:46:07.000 67 99967 50017 5051717 67 99967 50017 5051717 -32502 32433 4596.009900990099 464197 -128 127 -1.8514851485148516 -187 -670 100 10660 99571 2.01201 299.01201 150.51201 15051.2012 2.01201 299.01202 150.51201 15051.20117 2.01201 299.01201 150.5120100000001 15051.20100 2020-01-01 2020-01-02 2020-01-01 00:11:10 2020-01-02 03:39:31 2020-01-01 00:11:10.000 2020-01-02 03:39:31.000 670 99571 50120.5 5012050 670 99571 50120.5 5012050 -32500 32638 4900.66 490066 -125 126 0.82 82 -671 100 10661 99572 2.01501 299.01501 150.51501 15051.5015 2.01501 299.015 150.51501 15051.50146 2.01501 299.01501 150.51500999999993 15051.50100 2020-01-01 2020-01-02 2020-01-01 00:11:11 2020-01-02 03:39:32 2020-01-01 00:11:11.000 2020-01-02 03:39:32.000 671 99572 50121.5 5012150 671 99572 50121.5 5012150 -32499 32639 4901.66 490166 -124 127 1.82 182 -672 100 10662 99573 2.01801 299.01801 150.51801 15051.8018 2.01801 299.018 150.51801 15051.80176 2.01801 299.01801 150.5180099999999 15051.80100 2020-01-01 2020-01-02 2020-01-01 00:11:12 2020-01-02 03:39:33 2020-01-01 00:11:12.000 2020-01-02 03:39:33.000 672 99573 50122.5 5012250 672 99573 50122.5 5012250 -32498 32640 4902.66 490266 -128 127 0.26 26 -673 100 10663 99574 2.02102 299.02102 150.52102 15052.1021 2.02102 299.02103 150.52102 15052.1024 2.02102 299.02102 150.52102000000005 15052.10200 2020-01-01 2020-01-02 2020-01-01 00:11:13 2020-01-02 03:39:34 2020-01-01 00:11:13.000 2020-01-02 03:39:34.000 673 99574 50123.5 5012350 673 99574 50123.5 5012350 -32497 32641 4903.66 490366 -128 123 -1.3 -130 -674 100 10664 99575 2.02402 299.02402 150.52402 15052.4024 2.02402 299.02402 150.52402 15052.40204 2.02402 299.02402 150.52402000000004 15052.40200 2020-01-01 2020-01-02 2020-01-01 00:11:14 2020-01-02 03:39:35 2020-01-01 00:11:14.000 2020-01-02 03:39:35.000 674 99575 50124.5 5012450 674 99575 50124.5 5012450 -32496 32642 4904.66 490466 -127 124 -0.3 -30 -675 100 10665 99576 2.02702 299.02702 150.52702 15052.7027 2.02702 299.02704 150.52702 15052.70264 2.02702 299.02702 150.52701999999982 15052.70200 2020-01-01 2020-01-02 2020-01-01 00:11:15 2020-01-02 03:39:36 2020-01-01 00:11:15.000 2020-01-02 03:39:36.000 675 99576 50125.5 5012550 675 99576 50125.5 5012550 -32495 32643 4905.66 490566 -126 125 0.7 70 +670 100 10660 99571 2.01201 299.01201 150.51201 15051.2012 2.01201 299.01202 150.51201 15051.20117 2.01201 299.01201 150.51201000000026 15051.20100 2020-01-01 2020-01-02 2020-01-01 00:11:10 2020-01-02 03:39:31 2020-01-01 00:11:10.000 2020-01-02 03:39:31.000 670 99571 50120.5 5012050 670 99571 50120.5 5012050 -32500 32638 4900.66 490066 -125 126 0.82 82 +671 100 10661 99572 2.01501 299.01501 150.51501 15051.5015 2.01501 299.015 150.51501 15051.50146 2.01501 299.01501 150.51500999999976 15051.50100 2020-01-01 2020-01-02 2020-01-01 00:11:11 2020-01-02 03:39:32 2020-01-01 00:11:11.000 2020-01-02 03:39:32.000 671 99572 50121.5 5012150 671 99572 50121.5 5012150 -32499 32639 4901.66 490166 -124 127 1.82 182 +672 100 10662 99573 2.01801 299.01801 150.51801 15051.8018 2.01801 299.018 150.51801 15051.80176 2.01801 299.01801 150.5180099999998 15051.80100 2020-01-01 2020-01-02 2020-01-01 00:11:12 2020-01-02 03:39:33 2020-01-01 00:11:12.000 2020-01-02 03:39:33.000 672 99573 50122.5 5012250 672 99573 50122.5 5012250 -32498 32640 4902.66 490266 -128 127 0.26 26 +673 100 10663 99574 2.02102 299.02102 150.52102 15052.1021 2.02102 299.02103 150.52102 15052.1024 2.02102 299.02102 150.5210200000001 15052.10200 2020-01-01 2020-01-02 2020-01-01 00:11:13 2020-01-02 03:39:34 2020-01-01 00:11:13.000 2020-01-02 03:39:34.000 673 99574 50123.5 5012350 673 99574 50123.5 5012350 -32497 32641 4903.66 490366 -128 123 -1.3 -130 +674 100 10664 99575 2.02402 299.02402 150.52402 15052.4024 2.02402 299.02402 150.52402 15052.40204 2.02402 299.02402 150.52402000000015 15052.40200 2020-01-01 2020-01-02 2020-01-01 00:11:14 2020-01-02 03:39:35 2020-01-01 00:11:14.000 2020-01-02 03:39:35.000 674 99575 50124.5 5012450 674 99575 50124.5 5012450 -32496 32642 4904.66 490466 -127 124 -0.3 -30 +675 100 10665 99576 2.02702 299.02702 150.52702 15052.7027 2.02702 299.02704 150.52702 15052.70264 2.02702 299.02702 150.52701999999977 15052.70200 2020-01-01 2020-01-02 2020-01-01 00:11:15 2020-01-02 03:39:36 2020-01-01 00:11:15.000 2020-01-02 03:39:36.000 675 99576 50125.5 5012550 675 99576 50125.5 5012550 -32495 32643 4905.66 490566 -126 125 0.7 70 676 100 10666 99577 2.03003 299.03003 150.53003 15053.003 2.03003 299.03003 150.53002 15053.00293 2.03003 299.03003 150.53002999999993 15053.00300 2020-01-01 2020-01-02 2020-01-01 00:11:16 2020-01-02 03:39:37 2020-01-01 00:11:16.000 2020-01-02 03:39:37.000 676 99577 50126.5 5012650 676 99577 50126.5 5012650 -32494 32644 4906.66 490666 -125 126 1.7 170 677 100 10667 99578 2.03303 299.03303 150.53303 15053.3033 2.03303 299.03302 150.53303 15053.30323 2.03303 299.03303 150.53303 15053.30300 2020-01-01 2020-01-02 2020-01-01 00:11:17 2020-01-02 03:39:38 2020-01-01 00:11:17.000 2020-01-02 03:39:38.000 677 99578 50127.5 5012750 677 99578 50127.5 5012750 -32493 32645 4907.66 490766 -124 127 2.7 270 -678 100 10668 99579 2.03603 299.03603 150.53603 15053.6036 2.03603 299.03604 150.53603 15053.60387 2.03603 299.03603 150.53602999999998 15053.60300 2020-01-01 2020-01-02 2020-01-01 00:11:18 2020-01-02 03:39:39 2020-01-01 00:11:18.000 2020-01-02 03:39:39.000 678 99579 50128.5 5012850 678 99579 50128.5 5012850 -32492 32646 4908.66 490866 -128 127 1.14 114 +678 100 10668 99579 2.03603 299.03603 150.53603 15053.6036 2.03603 299.03604 150.53603 15053.60387 2.03603 299.03603 150.5360299999999 15053.60300 2020-01-01 2020-01-02 2020-01-01 00:11:18 2020-01-02 03:39:39 2020-01-01 00:11:18.000 2020-01-02 03:39:39.000 678 99579 50128.5 5012850 678 99579 50128.5 5012850 -32492 32646 4908.66 490866 -128 127 1.14 114 679 100 10669 99580 2.03903 299.03903 150.53903 15053.9039 2.03903 299.03903 150.53903 15053.90351 2.03903 299.03903 150.53902999999994 15053.90300 2020-01-01 2020-01-02 2020-01-01 00:11:19 2020-01-02 03:39:40 2020-01-01 00:11:19.000 2020-01-02 03:39:40.000 679 99580 50129.5 5012950 679 99580 50129.5 5012950 -32491 32647 4909.66 490966 -128 123 -0.42 -42 -68 102 10058 99968 0.2042 300.2042 150.2042 15170.62462 0.2042 300.2042 150.2042 15170.62457 0.20420 300.20420 150.20420000000004 15170.62420 2020-01-01 2020-01-02 2020-01-01 00:01:08 2020-01-02 03:46:08 2020-01-01 00:01:08.000 2020-01-02 03:46:08.000 68 99968 50018 5051818 68 99968 50018 5051818 -32501 32434 4597.009900990099 464298 -128 124 -3.386138613861386 -342 -680 100 10670 99581 2.04204 299.04204 150.54204 15054.2042 2.04204 299.04205 150.54204 15054.20426 2.04204 299.04204 150.54204000000004 15054.20400 2020-01-01 2020-01-02 2020-01-01 00:11:20 2020-01-02 03:39:41 2020-01-01 00:11:20.000 2020-01-02 03:39:41.000 680 99581 50130.5 5013050 680 99581 50130.5 5013050 -32490 32648 4910.66 491066 -127 124 0.58 58 -681 100 10671 99582 2.04504 299.04504 150.54504 15054.5045 2.04504 299.04504 150.54504 15054.5044 2.04504 299.04504 150.54504000000009 15054.50400 2020-01-01 2020-01-02 2020-01-01 00:11:21 2020-01-02 03:39:42 2020-01-01 00:11:21.000 2020-01-02 03:39:42.000 681 99582 50131.5 5013150 681 99582 50131.5 5013150 -32489 32649 4911.66 491166 -126 125 1.58 158 -682 100 10672 99583 2.04804 299.04804 150.54804 15054.8048 2.04804 299.04803 150.54804 15054.80474 2.04804 299.04804 150.5480399999999 15054.80400 2020-01-01 2020-01-02 2020-01-01 00:11:22 2020-01-02 03:39:43 2020-01-01 00:11:22.000 2020-01-02 03:39:43.000 682 99583 50132.5 5013250 682 99583 50132.5 5013250 -32488 32650 4912.66 491266 -125 126 2.58 258 +68 102 10058 99968 0.2042 300.2042 150.2042 15170.62462 0.2042 300.2042 150.2042 15170.62457 0.20420 300.20420 150.2042000000001 15170.62420 2020-01-01 2020-01-02 2020-01-01 00:01:08 2020-01-02 03:46:08 2020-01-01 00:01:08.000 2020-01-02 03:46:08.000 68 99968 50018 5051818 68 99968 50018 5051818 -32501 32434 4597.009900990099 464298 -128 124 -3.386138613861386 -342 +680 100 10670 99581 2.04204 299.04204 150.54204 15054.2042 2.04204 299.04205 150.54204 15054.20426 2.04204 299.04204 150.54204000000016 15054.20400 2020-01-01 2020-01-02 2020-01-01 00:11:20 2020-01-02 03:39:41 2020-01-01 00:11:20.000 2020-01-02 03:39:41.000 680 99581 50130.5 5013050 680 99581 50130.5 5013050 -32490 32648 4910.66 491066 -127 124 0.58 58 +681 100 10671 99582 2.04504 299.04504 150.54504 15054.5045 2.04504 299.04504 150.54504 15054.5044 2.04504 299.04504 150.54504000000026 15054.50400 2020-01-01 2020-01-02 2020-01-01 00:11:21 2020-01-02 03:39:42 2020-01-01 00:11:21.000 2020-01-02 03:39:42.000 681 99582 50131.5 5013150 681 99582 50131.5 5013150 -32489 32649 4911.66 491166 -126 125 1.58 158 +682 100 10672 99583 2.04804 299.04804 150.54804 15054.8048 2.04804 299.04803 150.54804 15054.80474 2.04804 299.04804 150.5480399999998 15054.80400 2020-01-01 2020-01-02 2020-01-01 00:11:22 2020-01-02 03:39:43 2020-01-01 00:11:22.000 2020-01-02 03:39:43.000 682 99583 50132.5 5013250 682 99583 50132.5 5013250 -32488 32650 4912.66 491266 -125 126 2.58 258 683 100 10673 99584 2.05105 299.05105 150.55105 15055.1051 2.05105 299.05106 150.55105 15055.10533 2.05105 299.05105 150.55105 15055.10500 2020-01-01 2020-01-02 2020-01-01 00:11:23 2020-01-02 03:39:44 2020-01-01 00:11:23.000 2020-01-02 03:39:44.000 683 99584 50133.5 5013350 683 99584 50133.5 5013350 -32487 32651 4913.66 491366 -124 127 3.58 358 -684 100 10674 99585 2.05405 299.05405 150.55405 15055.4054 2.05405 299.05405 150.55404 15055.40498 2.05405 299.05405 150.55405000000007 15055.40500 2020-01-01 2020-01-02 2020-01-01 00:11:24 2020-01-02 03:39:45 2020-01-01 00:11:24.000 2020-01-02 03:39:45.000 684 99585 50134.5 5013450 684 99585 50134.5 5013450 -32486 32652 4914.66 491466 -128 127 2.02 202 -685 100 10675 99586 2.05705 299.05705 150.55705 15055.7057 2.05705 299.05707 150.55705 15055.70573 2.05705 299.05705 150.55704999999998 15055.70500 2020-01-01 2020-01-02 2020-01-01 00:11:25 2020-01-02 03:39:46 2020-01-01 00:11:25.000 2020-01-02 03:39:46.000 685 99586 50135.5 5013550 685 99586 50135.5 5013550 -32485 32653 4915.66 491566 -128 127 0.46 46 -686 100 10676 99587 2.06006 299.06006 150.56006 15056.006 2.06006 299.06006 150.56005 15056.00587 2.06006 299.06006 150.5600599999999 15056.00600 2020-01-01 2020-01-02 2020-01-01 00:11:26 2020-01-02 03:39:47 2020-01-01 00:11:26.000 2020-01-02 03:39:47.000 686 99587 50136.5 5013650 686 99587 50136.5 5013650 -32484 32654 4916.66 491666 -128 124 -1.1 -110 -687 100 10677 99588 2.06306 299.06306 150.56306 15056.3063 2.06306 299.06305 150.56306 15056.30621 2.06306 299.06306 150.56306000000012 15056.30600 2020-01-01 2020-01-02 2020-01-01 00:11:27 2020-01-02 03:39:48 2020-01-01 00:11:27.000 2020-01-02 03:39:48.000 687 99588 50137.5 5013750 687 99588 50137.5 5013750 -32483 32655 4917.66 491766 -127 125 -0.1 -10 -688 100 10678 99589 2.06606 299.06606 150.56606 15056.6066 2.06606 299.06607 150.56606 15056.60681 2.06606 299.06606 150.56605999999996 15056.60600 2020-01-01 2020-01-02 2020-01-01 00:11:28 2020-01-02 03:39:49 2020-01-01 00:11:28.000 2020-01-02 03:39:49.000 688 99589 50138.5 5013850 688 99589 50138.5 5013850 -32482 32656 4918.66 491866 -126 126 0.9 90 -689 100 10679 99590 2.06906 299.06906 150.56906 15056.9069 2.06906 299.06906 150.56907 15056.9071 2.06906 299.06906 150.5690599999999 15056.90600 2020-01-01 2020-01-02 2020-01-01 00:11:29 2020-01-02 03:39:50 2020-01-01 00:11:29.000 2020-01-02 03:39:50.000 689 99590 50139.5 5013950 689 99590 50139.5 5013950 -32481 32657 4919.66 491966 -125 127 1.9 190 -69 102 10059 99969 0.2072 300.2072 150.2072 15170.92792 0.2072 300.2072 150.20721 15170.92832 0.20720 300.20720 150.20720000000003 15170.92720 2020-01-01 2020-01-02 2020-01-01 00:01:09 2020-01-02 03:46:09 2020-01-01 00:01:09.000 2020-01-02 03:46:09.000 69 99969 50019 5051919 69 99969 50019 5051919 -32500 32435 4598.009900990099 464399 -127 125 -2.386138613861386 -241 -690 100 10680 99591 2.07207 299.07207 150.57207 15057.2072 2.07207 299.07208 150.57207 15057.2072 2.07207 299.07207 150.57207000000008 15057.20700 2020-01-01 2020-01-02 2020-01-01 00:11:30 2020-01-02 03:39:51 2020-01-01 00:11:30.000 2020-01-02 03:39:51.000 690 99591 50140.5 5014050 690 99591 50140.5 5014050 -32480 32658 4920.66 492066 -128 127 0.34 34 -691 100 10681 99592 2.07507 299.07507 150.57507 15057.5075 2.07507 299.07507 150.57507 15057.50734 2.07507 299.07507 150.57507000000004 15057.50700 2020-01-01 2020-01-02 2020-01-01 00:11:31 2020-01-02 03:39:52 2020-01-01 00:11:31.000 2020-01-02 03:39:52.000 691 99592 50141.5 5014150 691 99592 50141.5 5014150 -32479 32659 4921.66 492166 -128 127 -1.22 -122 -692 100 10682 99593 2.07807 299.07807 150.57807 15057.8078 2.07807 299.07806 150.57807 15057.80767 2.07807 299.07807 150.57806999999985 15057.80700 2020-01-01 2020-01-02 2020-01-01 00:11:32 2020-01-02 03:39:53 2020-01-01 00:11:32.000 2020-01-02 03:39:53.000 692 99593 50142.5 5014250 692 99593 50142.5 5014250 -32478 32660 4922.66 492266 -128 123 -2.78 -278 +684 100 10674 99585 2.05405 299.05405 150.55405 15055.4054 2.05405 299.05405 150.55404 15055.40498 2.05405 299.05405 150.55405000000013 15055.40500 2020-01-01 2020-01-02 2020-01-01 00:11:24 2020-01-02 03:39:45 2020-01-01 00:11:24.000 2020-01-02 03:39:45.000 684 99585 50134.5 5013450 684 99585 50134.5 5013450 -32486 32652 4914.66 491466 -128 127 2.02 202 +685 100 10675 99586 2.05705 299.05705 150.55705 15055.7057 2.05705 299.05707 150.55705 15055.70573 2.05705 299.05705 150.55704999999995 15055.70500 2020-01-01 2020-01-02 2020-01-01 00:11:25 2020-01-02 03:39:46 2020-01-01 00:11:25.000 2020-01-02 03:39:46.000 685 99586 50135.5 5013550 685 99586 50135.5 5013550 -32485 32653 4915.66 491566 -128 127 0.46 46 +686 100 10676 99587 2.06006 299.06006 150.56006 15056.006 2.06006 299.06006 150.56005 15056.00587 2.06006 299.06006 150.56005999999982 15056.00600 2020-01-01 2020-01-02 2020-01-01 00:11:26 2020-01-02 03:39:47 2020-01-01 00:11:26.000 2020-01-02 03:39:47.000 686 99587 50136.5 5013650 686 99587 50136.5 5013650 -32484 32654 4916.66 491666 -128 124 -1.1 -110 +687 100 10677 99588 2.06306 299.06306 150.56306 15056.3063 2.06306 299.06305 150.56306 15056.30621 2.06306 299.06306 150.5630600000003 15056.30600 2020-01-01 2020-01-02 2020-01-01 00:11:27 2020-01-02 03:39:48 2020-01-01 00:11:27.000 2020-01-02 03:39:48.000 687 99588 50137.5 5013750 687 99588 50137.5 5013750 -32483 32655 4917.66 491766 -127 125 -0.1 -10 +688 100 10678 99589 2.06606 299.06606 150.56606 15056.6066 2.06606 299.06607 150.56606 15056.60681 2.06606 299.06606 150.5660599999998 15056.60600 2020-01-01 2020-01-02 2020-01-01 00:11:28 2020-01-02 03:39:49 2020-01-01 00:11:28.000 2020-01-02 03:39:49.000 688 99589 50138.5 5013850 688 99589 50138.5 5013850 -32482 32656 4918.66 491866 -126 126 0.9 90 +689 100 10679 99590 2.06906 299.06906 150.56906 15056.9069 2.06906 299.06906 150.56907 15056.9071 2.06906 299.06906 150.56905999999984 15056.90600 2020-01-01 2020-01-02 2020-01-01 00:11:29 2020-01-02 03:39:50 2020-01-01 00:11:29.000 2020-01-02 03:39:50.000 689 99590 50139.5 5013950 689 99590 50139.5 5013950 -32481 32657 4919.66 491966 -125 127 1.9 190 +69 102 10059 99969 0.2072 300.2072 150.2072 15170.92792 0.2072 300.2072 150.20721 15170.92832 0.20720 300.20720 150.20720000000014 15170.92720 2020-01-01 2020-01-02 2020-01-01 00:01:09 2020-01-02 03:46:09 2020-01-01 00:01:09.000 2020-01-02 03:46:09.000 69 99969 50019 5051919 69 99969 50019 5051919 -32500 32435 4598.009900990099 464399 -127 125 -2.386138613861386 -241 +690 100 10680 99591 2.07207 299.07207 150.57207 15057.2072 2.07207 299.07208 150.57207 15057.2072 2.07207 299.07207 150.57207000000014 15057.20700 2020-01-01 2020-01-02 2020-01-01 00:11:30 2020-01-02 03:39:51 2020-01-01 00:11:30.000 2020-01-02 03:39:51.000 690 99591 50140.5 5014050 690 99591 50140.5 5014050 -32480 32658 4920.66 492066 -128 127 0.34 34 +691 100 10681 99592 2.07507 299.07507 150.57507 15057.5075 2.07507 299.07507 150.57507 15057.50734 2.07507 299.07507 150.57507000000018 15057.50700 2020-01-01 2020-01-02 2020-01-01 00:11:31 2020-01-02 03:39:52 2020-01-01 00:11:31.000 2020-01-02 03:39:52.000 691 99592 50141.5 5014150 691 99592 50141.5 5014150 -32479 32659 4921.66 492166 -128 127 -1.22 -122 +692 100 10682 99593 2.07807 299.07807 150.57807 15057.8078 2.07807 299.07806 150.57807 15057.80767 2.07807 299.07807 150.57806999999968 15057.80700 2020-01-01 2020-01-02 2020-01-01 00:11:32 2020-01-02 03:39:53 2020-01-01 00:11:32.000 2020-01-02 03:39:53.000 692 99593 50142.5 5014250 692 99593 50142.5 5014250 -32478 32660 4922.66 492266 -128 123 -2.78 -278 693 100 10683 99594 2.08108 299.08108 150.58108 15058.1081 2.08108 299.0811 150.58108 15058.10827 2.08108 299.08108 150.58107999999996 15058.10800 2020-01-01 2020-01-02 2020-01-01 00:11:33 2020-01-02 03:39:54 2020-01-01 00:11:33.000 2020-01-02 03:39:54.000 693 99594 50143.5 5014350 693 99594 50143.5 5014350 -32477 32661 4923.66 492366 -127 124 -1.78 -178 -694 100 10684 99595 2.08408 299.08408 150.58408 15058.4084 2.08408 299.08408 150.58408 15058.40857 2.08408 299.08408 150.58408 15058.40800 2020-01-01 2020-01-02 2020-01-01 00:11:34 2020-01-02 03:39:55 2020-01-01 00:11:34.000 2020-01-02 03:39:55.000 694 99595 50144.5 5014450 694 99595 50144.5 5014450 -32476 32662 4924.66 492466 -126 125 -0.78 -78 -695 100 10685 99596 2.08708 299.08708 150.58708 15058.7087 2.08708 299.0871 150.58708 15058.70867 2.08708 299.08708 150.58707999999987 15058.70800 2020-01-01 2020-01-02 2020-01-01 00:11:35 2020-01-02 03:39:56 2020-01-01 00:11:35.000 2020-01-02 03:39:56.000 695 99596 50145.5 5014550 695 99596 50145.5 5014550 -32475 32663 4925.66 492566 -125 126 0.22 22 -696 100 10686 99597 2.09009 299.09009 150.59009 15059.009 2.09009 299.0901 150.59008 15059.00885 2.09009 299.09009 150.5900899999998 15059.00900 2020-01-01 2020-01-02 2020-01-01 00:11:36 2020-01-02 03:39:57 2020-01-01 00:11:36.000 2020-01-02 03:39:57.000 696 99597 50146.5 5014650 696 99597 50146.5 5014650 -32474 32664 4926.66 492666 -124 127 1.22 122 -697 100 10687 99598 2.09309 299.09309 150.59309 15059.3093 2.09309 299.09308 150.59309 15059.30915 2.09309 299.09309 150.5930900000002 15059.30900 2020-01-01 2020-01-02 2020-01-01 00:11:37 2020-01-02 03:39:58 2020-01-01 00:11:37.000 2020-01-02 03:39:58.000 697 99598 50147.5 5014750 697 99598 50147.5 5014750 -32473 32665 4927.66 492766 -128 127 -0.34 -34 -698 100 10688 99599 2.09609 299.09609 150.59609 15059.6096 2.09609 299.0961 150.59609 15059.6099 2.09609 299.09609 150.59608999999972 15059.60900 2020-01-01 2020-01-02 2020-01-01 00:11:38 2020-01-02 03:39:59 2020-01-01 00:11:38.000 2020-01-02 03:39:59.000 698 99599 50148.5 5014850 698 99599 50148.5 5014850 -32472 32666 4928.66 492866 -128 123 -1.9 -190 -699 100 10689 99600 2.09909 299.09909 150.59909 15059.9099 2.09909 299.0991 150.5991 15059.91003 2.09909 299.09909 150.59908999999982 15059.90900 2020-01-01 2020-01-02 2020-01-01 00:11:39 2020-01-02 03:40:00 2020-01-01 00:11:39.000 2020-01-02 03:40:00.000 699 99600 50149.5 5014950 699 99600 50149.5 5014950 -32471 32667 4929.66 492966 -127 124 -0.9 -90 -7 102 1006 9997 0.02102 300.02102 150.02102 15152.12312 0.02102 300.02103 150.02102 15152.12342 0.02102 300.02102 150.0210200000001 15152.12302 2020-01-01 2020-01-02 2020-01-01 00:00:07 2020-01-02 03:45:07 2020-01-01 00:00:07.000 2020-01-02 03:45:07.000 7 99907 49957 5045657 7 99907 49957 5045657 -32562 32373 4536.009900990099 458137 -126 125 -1.0198019801980198 -103 -70 102 10060 99970 0.21021 300.21021 150.21021 15171.23123 0.21021 300.2102 150.2102 15171.23097 0.21021 300.21021 150.21020999999988 15171.23121 2020-01-01 2020-01-02 2020-01-01 00:01:10 2020-01-02 03:46:10 2020-01-01 00:01:10.000 2020-01-02 03:46:10.000 70 99970 50020 5052020 70 99970 50020 5052020 -32499 32436 4599.009900990099 464500 -126 126 -1.386138613861386 -140 +694 100 10684 99595 2.08408 299.08408 150.58408 15058.4084 2.08408 299.08408 150.58408 15058.40857 2.08408 299.08408 150.58407999999986 15058.40800 2020-01-01 2020-01-02 2020-01-01 00:11:34 2020-01-02 03:39:55 2020-01-01 00:11:34.000 2020-01-02 03:39:55.000 694 99595 50144.5 5014450 694 99595 50144.5 5014450 -32476 32662 4924.66 492466 -126 125 -0.78 -78 +695 100 10685 99596 2.08708 299.08708 150.58708 15058.7087 2.08708 299.0871 150.58708 15058.70867 2.08708 299.08708 150.58707999999996 15058.70800 2020-01-01 2020-01-02 2020-01-01 00:11:35 2020-01-02 03:39:56 2020-01-01 00:11:35.000 2020-01-02 03:39:56.000 695 99596 50145.5 5014550 695 99596 50145.5 5014550 -32475 32663 4925.66 492566 -125 126 0.22 22 +696 100 10686 99597 2.09009 299.09009 150.59009 15059.009 2.09009 299.0901 150.59008 15059.00885 2.09009 299.09009 150.59008999999992 15059.00900 2020-01-01 2020-01-02 2020-01-01 00:11:36 2020-01-02 03:39:57 2020-01-01 00:11:36.000 2020-01-02 03:39:57.000 696 99597 50146.5 5014650 696 99597 50146.5 5014650 -32474 32664 4926.66 492666 -124 127 1.22 122 +697 100 10687 99598 2.09309 299.09309 150.59309 15059.3093 2.09309 299.09308 150.59309 15059.30915 2.09309 299.09309 150.59309000000007 15059.30900 2020-01-01 2020-01-02 2020-01-01 00:11:37 2020-01-02 03:39:58 2020-01-01 00:11:37.000 2020-01-02 03:39:58.000 697 99598 50147.5 5014750 697 99598 50147.5 5014750 -32473 32665 4927.66 492766 -128 127 -0.34 -34 +698 100 10688 99599 2.09609 299.09609 150.59609 15059.6096 2.09609 299.0961 150.59609 15059.6099 2.09609 299.09609 150.59608999999992 15059.60900 2020-01-01 2020-01-02 2020-01-01 00:11:38 2020-01-02 03:39:59 2020-01-01 00:11:38.000 2020-01-02 03:39:59.000 698 99599 50148.5 5014850 698 99599 50148.5 5014850 -32472 32666 4928.66 492866 -128 123 -1.9 -190 +699 100 10689 99600 2.09909 299.09909 150.59909 15059.9099 2.09909 299.0991 150.5991 15059.91003 2.09909 299.09909 150.59908999999993 15059.90900 2020-01-01 2020-01-02 2020-01-01 00:11:39 2020-01-02 03:40:00 2020-01-01 00:11:39.000 2020-01-02 03:40:00.000 699 99600 50149.5 5014950 699 99600 50149.5 5014950 -32471 32667 4929.66 492966 -127 124 -0.9 -90 +7 102 1006 9997 0.02102 300.02102 150.02102 15152.12312 0.02102 300.02103 150.02102 15152.12342 0.02102 300.02102 150.02102000000005 15152.12302 2020-01-01 2020-01-02 2020-01-01 00:00:07 2020-01-02 03:45:07 2020-01-01 00:00:07.000 2020-01-02 03:45:07.000 7 99907 49957 5045657 7 99907 49957 5045657 -32562 32373 4536.009900990099 458137 -126 125 -1.0198019801980198 -103 +70 102 10060 99970 0.21021 300.21021 150.21021 15171.23123 0.21021 300.2102 150.2102 15171.23097 0.21021 300.21021 150.21021 15171.23121 2020-01-01 2020-01-02 2020-01-01 00:01:10 2020-01-02 03:46:10 2020-01-01 00:01:10.000 2020-01-02 03:46:10.000 70 99970 50020 5052020 70 99970 50020 5052020 -32499 32436 4599.009900990099 464500 -126 126 -1.386138613861386 -140 700 100 10690 99601 2.1021 299.1021 150.6021 15060.21021 2.1021 299.1021 150.6021 15060.21014 2.10210 299.10210 150.60210000000004 15060.21000 2020-01-01 2020-01-02 2020-01-01 00:11:40 2020-01-02 03:40:01 2020-01-01 00:11:40.000 2020-01-02 03:40:01.000 700 99601 50150.5 5015050 700 99601 50150.5 5015050 -32470 32668 4930.66 493066 -126 125 0.1 10 -701 100 10691 99602 2.1051 299.1051 150.6051 15060.51051 2.1051 299.1051 150.6051 15060.51031 2.10510 299.10510 150.60510000000014 15060.51000 2020-01-01 2020-01-02 2020-01-01 00:11:41 2020-01-02 03:40:02 2020-01-01 00:11:41.000 2020-01-02 03:40:02.000 701 99602 50151.5 5015150 701 99602 50151.5 5015150 -32469 32669 4931.66 493166 -125 126 1.1 110 -702 100 10692 99603 2.1081 299.1081 150.6081 15060.81081 2.1081 299.1081 150.6081 15060.81062 2.10810 299.10810 150.60809999999998 15060.81000 2020-01-01 2020-01-02 2020-01-01 00:11:42 2020-01-02 03:40:03 2020-01-01 00:11:42.000 2020-01-02 03:40:03.000 702 99603 50152.5 5015250 702 99603 50152.5 5015250 -32468 32670 4932.66 493266 -124 127 2.1 210 -703 100 10693 99604 2.11111 299.11111 150.61111 15061.11111 2.11111 299.1111 150.61111 15061.11137 2.11111 299.11111 150.61110999999985 15061.11100 2020-01-01 2020-01-02 2020-01-01 00:11:43 2020-01-02 03:40:04 2020-01-01 00:11:43.000 2020-01-02 03:40:04.000 703 99604 50153.5 5015350 703 99604 50153.5 5015350 -32467 32671 4933.66 493366 -128 127 0.54 54 -704 100 10694 99605 2.11411 299.11411 150.61411 15061.41141 2.11411 299.1141 150.61411 15061.41151 2.11411 299.11411 150.61411000000032 15061.41100 2020-01-01 2020-01-02 2020-01-01 00:11:44 2020-01-02 03:40:05 2020-01-01 00:11:44.000 2020-01-02 03:40:05.000 704 99605 50154.5 5015450 704 99605 50154.5 5015450 -32466 32672 4934.66 493466 -128 123 -1.02 -102 -705 100 10695 99606 2.11711 299.11711 150.61711 15061.71171 2.11711 299.11713 150.61711 15061.71165 2.11711 299.11711 150.61710999999983 15061.71100 2020-01-01 2020-01-02 2020-01-01 00:11:45 2020-01-02 03:40:06 2020-01-01 00:11:45.000 2020-01-02 03:40:06.000 705 99606 50155.5 5015550 705 99606 50155.5 5015550 -32465 32673 4935.66 493566 -127 124 -0.02 -2 -706 100 10696 99607 2.12012 299.12012 150.62012 15062.01201 2.12012 299.12012 150.62011 15062.01179 2.12012 299.12012 150.6201199999997 15062.01200 2020-01-01 2020-01-02 2020-01-01 00:11:46 2020-01-02 03:40:07 2020-01-01 00:11:46.000 2020-01-02 03:40:07.000 706 99607 50156.5 5015650 706 99607 50156.5 5015650 -32464 32674 4936.66 493666 -126 125 0.98 98 -707 100 10697 99608 2.12312 299.12312 150.62312 15062.31231 2.12312 299.1231 150.62312 15062.31208 2.12312 299.12312 150.62312000000017 15062.31200 2020-01-01 2020-01-02 2020-01-01 00:11:47 2020-01-02 03:40:08 2020-01-01 00:11:47.000 2020-01-02 03:40:08.000 707 99608 50157.5 5015750 707 99608 50157.5 5015750 -32463 32675 4937.66 493766 -125 126 1.98 198 -708 100 10698 99609 2.12612 299.12612 150.62612 15062.61261 2.12612 299.12613 150.62612 15062.61283 2.12612 299.12612 150.6261200000002 15062.61200 2020-01-01 2020-01-02 2020-01-01 00:11:48 2020-01-02 03:40:09 2020-01-01 00:11:48.000 2020-01-02 03:40:09.000 708 99609 50158.5 5015850 708 99609 50158.5 5015850 -32462 32676 4938.66 493866 -124 127 2.98 298 -709 100 10699 99610 2.12912 299.12912 150.62912 15062.91291 2.12912 299.12912 150.62912 15062.91298 2.12912 299.12912 150.62911999999972 15062.91200 2020-01-01 2020-01-02 2020-01-01 00:11:49 2020-01-02 03:40:10 2020-01-01 00:11:49.000 2020-01-02 03:40:10.000 709 99610 50159.5 5015950 709 99610 50159.5 5015950 -32461 32677 4939.66 493966 -128 127 1.42 142 +701 100 10691 99602 2.1051 299.1051 150.6051 15060.51051 2.1051 299.1051 150.6051 15060.51031 2.10510 299.10510 150.6051 15060.51000 2020-01-01 2020-01-02 2020-01-01 00:11:41 2020-01-02 03:40:02 2020-01-01 00:11:41.000 2020-01-02 03:40:02.000 701 99602 50151.5 5015150 701 99602 50151.5 5015150 -32469 32669 4931.66 493166 -125 126 1.1 110 +702 100 10692 99603 2.1081 299.1081 150.6081 15060.81081 2.1081 299.1081 150.6081 15060.81062 2.10810 299.10810 150.6081 15060.81000 2020-01-01 2020-01-02 2020-01-01 00:11:42 2020-01-02 03:40:03 2020-01-01 00:11:42.000 2020-01-02 03:40:03.000 702 99603 50152.5 5015250 702 99603 50152.5 5015250 -32468 32670 4932.66 493266 -124 127 2.1 210 +703 100 10693 99604 2.11111 299.11111 150.61111 15061.11111 2.11111 299.1111 150.61111 15061.11137 2.11111 299.11111 150.6111099999999 15061.11100 2020-01-01 2020-01-02 2020-01-01 00:11:43 2020-01-02 03:40:04 2020-01-01 00:11:43.000 2020-01-02 03:40:04.000 703 99604 50153.5 5015350 703 99604 50153.5 5015350 -32467 32671 4933.66 493366 -128 127 0.54 54 +704 100 10694 99605 2.11411 299.11411 150.61411 15061.41141 2.11411 299.1141 150.61411 15061.41151 2.11411 299.11411 150.61411000000015 15061.41100 2020-01-01 2020-01-02 2020-01-01 00:11:44 2020-01-02 03:40:05 2020-01-01 00:11:44.000 2020-01-02 03:40:05.000 704 99605 50154.5 5015450 704 99605 50154.5 5015450 -32466 32672 4934.66 493466 -128 123 -1.02 -102 +705 100 10695 99606 2.11711 299.11711 150.61711 15061.71171 2.11711 299.11713 150.61711 15061.71165 2.11711 299.11711 150.61710999999997 15061.71100 2020-01-01 2020-01-02 2020-01-01 00:11:45 2020-01-02 03:40:06 2020-01-01 00:11:45.000 2020-01-02 03:40:06.000 705 99606 50155.5 5015550 705 99606 50155.5 5015550 -32465 32673 4935.66 493566 -127 124 -0.02 -2 +706 100 10696 99607 2.12012 299.12012 150.62012 15062.01201 2.12012 299.12012 150.62011 15062.01179 2.12012 299.12012 150.62011999999987 15062.01200 2020-01-01 2020-01-02 2020-01-01 00:11:46 2020-01-02 03:40:07 2020-01-01 00:11:46.000 2020-01-02 03:40:07.000 706 99607 50156.5 5015650 706 99607 50156.5 5015650 -32464 32674 4936.66 493666 -126 125 0.98 98 +707 100 10697 99608 2.12312 299.12312 150.62312 15062.31231 2.12312 299.1231 150.62312 15062.31208 2.12312 299.12312 150.62312000000009 15062.31200 2020-01-01 2020-01-02 2020-01-01 00:11:47 2020-01-02 03:40:08 2020-01-01 00:11:47.000 2020-01-02 03:40:08.000 707 99608 50157.5 5015750 707 99608 50157.5 5015750 -32463 32675 4937.66 493766 -125 126 1.98 198 +708 100 10698 99609 2.12612 299.12612 150.62612 15062.61261 2.12612 299.12613 150.62612 15062.61283 2.12612 299.12612 150.62612000000004 15062.61200 2020-01-01 2020-01-02 2020-01-01 00:11:48 2020-01-02 03:40:09 2020-01-01 00:11:48.000 2020-01-02 03:40:09.000 708 99609 50158.5 5015850 708 99609 50158.5 5015850 -32462 32676 4938.66 493866 -124 127 2.98 298 +709 100 10699 99610 2.12912 299.12912 150.62912 15062.91291 2.12912 299.12912 150.62912 15062.91298 2.12912 299.12912 150.6291199999999 15062.91200 2020-01-01 2020-01-02 2020-01-01 00:11:49 2020-01-02 03:40:10 2020-01-01 00:11:49.000 2020-01-02 03:40:10.000 709 99610 50159.5 5015950 709 99610 50159.5 5015950 -32461 32677 4939.66 493966 -128 127 1.42 142 71 102 10061 99971 0.21321 300.21321 150.21321 15171.53453 0.21321 300.21323 150.21321 15171.5346 0.21321 300.21321 150.21320999999992 15171.53421 2020-01-01 2020-01-02 2020-01-01 00:01:11 2020-01-02 03:46:11 2020-01-01 00:01:11.000 2020-01-02 03:46:11.000 71 99971 50021 5052121 71 99971 50021 5052121 -32498 32437 4600.009900990099 464601 -125 127 -0.38613861386138615 -39 710 100 10700 99611 2.13213 299.13213 150.63213 15063.21321 2.13213 299.13214 150.63213 15063.21311 2.13213 299.13213 150.63213 15063.21300 2020-01-01 2020-01-02 2020-01-01 00:11:50 2020-01-02 03:40:11 2020-01-01 00:11:50.000 2020-01-02 03:40:11.000 710 99611 50160.5 5016050 710 99611 50160.5 5016050 -32460 32678 4940.66 494066 -128 127 -0.14 -14 -711 100 10701 99612 2.13513 299.13513 150.63513 15063.51351 2.13513 299.13513 150.63513 15063.51325 2.13513 299.13513 150.63513000000006 15063.51300 2020-01-01 2020-01-02 2020-01-01 00:11:51 2020-01-02 03:40:12 2020-01-01 00:11:51.000 2020-01-02 03:40:12.000 711 99612 50161.5 5016150 711 99612 50161.5 5016150 -32459 32679 4941.66 494166 -128 124 -1.7 -170 -712 100 10702 99613 2.13813 299.13813 150.63813 15063.81381 2.13813 299.13815 150.63814 15063.81401 2.13813 299.13813 150.63812999999988 15063.81300 2020-01-01 2020-01-02 2020-01-01 00:11:52 2020-01-02 03:40:13 2020-01-01 00:11:52.000 2020-01-02 03:40:13.000 712 99613 50162.5 5016250 712 99613 50162.5 5016250 -32458 32680 4942.66 494266 -127 125 -0.7 -70 -713 100 10703 99614 2.14114 299.14114 150.64114 15064.11411 2.14114 299.14114 150.64114 15064.11431 2.14114 299.14114 150.64113999999984 15064.11400 2020-01-01 2020-01-02 2020-01-01 00:11:53 2020-01-02 03:40:14 2020-01-01 00:11:53.000 2020-01-02 03:40:14.000 713 99614 50163.5 5016350 713 99614 50163.5 5016350 -32457 32681 4943.66 494366 -126 126 0.3 30 -714 100 10704 99615 2.14414 299.14414 150.64414 15064.41441 2.14414 299.14413 150.64414 15064.41448 2.14414 299.14414 150.64414000000022 15064.41400 2020-01-01 2020-01-02 2020-01-01 00:11:54 2020-01-02 03:40:15 2020-01-01 00:11:54.000 2020-01-02 03:40:15.000 714 99615 50164.5 5016450 714 99615 50164.5 5016450 -32456 32682 4944.66 494466 -125 127 1.3 130 -715 100 10705 99616 2.14714 299.14714 150.64714 15064.71471 2.14714 299.14716 150.64714 15064.71458 2.14714 299.14714 150.64713999999972 15064.71400 2020-01-01 2020-01-02 2020-01-01 00:11:55 2020-01-02 03:40:16 2020-01-01 00:11:55.000 2020-01-02 03:40:16.000 715 99616 50165.5 5016550 715 99616 50165.5 5016550 -32455 32683 4945.66 494566 -128 127 -0.26 -26 +711 100 10701 99612 2.13513 299.13513 150.63513 15063.51351 2.13513 299.13513 150.63513 15063.51325 2.13513 299.13513 150.63513000000003 15063.51300 2020-01-01 2020-01-02 2020-01-01 00:11:51 2020-01-02 03:40:12 2020-01-01 00:11:51.000 2020-01-02 03:40:12.000 711 99612 50161.5 5016150 711 99612 50161.5 5016150 -32459 32679 4941.66 494166 -128 124 -1.7 -170 +712 100 10702 99613 2.13813 299.13813 150.63813 15063.81381 2.13813 299.13815 150.63814 15063.81401 2.13813 299.13813 150.63812999999993 15063.81300 2020-01-01 2020-01-02 2020-01-01 00:11:52 2020-01-02 03:40:13 2020-01-01 00:11:52.000 2020-01-02 03:40:13.000 712 99613 50162.5 5016250 712 99613 50162.5 5016250 -32458 32680 4942.66 494266 -127 125 -0.7 -70 +713 100 10703 99614 2.14114 299.14114 150.64114 15064.11411 2.14114 299.14114 150.64114 15064.11431 2.14114 299.14114 150.64113999999995 15064.11400 2020-01-01 2020-01-02 2020-01-01 00:11:53 2020-01-02 03:40:14 2020-01-01 00:11:53.000 2020-01-02 03:40:14.000 713 99614 50163.5 5016350 713 99614 50163.5 5016350 -32457 32681 4943.66 494366 -126 126 0.3 30 +714 100 10704 99615 2.14414 299.14414 150.64414 15064.41441 2.14414 299.14413 150.64414 15064.41448 2.14414 299.14414 150.64414000000005 15064.41400 2020-01-01 2020-01-02 2020-01-01 00:11:54 2020-01-02 03:40:15 2020-01-01 00:11:54.000 2020-01-02 03:40:15.000 714 99615 50164.5 5016450 714 99615 50164.5 5016450 -32456 32682 4944.66 494466 -125 127 1.3 130 +715 100 10705 99616 2.14714 299.14714 150.64714 15064.71471 2.14714 299.14716 150.64714 15064.71458 2.14714 299.14714 150.64713999999992 15064.71400 2020-01-01 2020-01-02 2020-01-01 00:11:55 2020-01-02 03:40:16 2020-01-01 00:11:55.000 2020-01-02 03:40:16.000 715 99616 50165.5 5016550 715 99616 50165.5 5016550 -32455 32683 4945.66 494566 -128 127 -0.26 -26 716 100 10706 99617 2.15015 299.15015 150.65015 15065.01501 2.15015 299.15015 150.65014 15065.01472 2.15015 299.15015 150.65015 15065.01500 2020-01-01 2020-01-02 2020-01-01 00:11:56 2020-01-02 03:40:17 2020-01-01 00:11:56.000 2020-01-02 03:40:17.000 716 99617 50166.5 5016650 716 99617 50166.5 5016650 -32454 32684 4946.66 494666 -128 127 -1.82 -182 717 100 10707 99618 2.15315 299.15315 150.65315 15065.31531 2.15315 299.15317 150.65315 15065.31547 2.15315 299.15315 150.65315000000007 15065.31500 2020-01-01 2020-01-02 2020-01-01 00:11:57 2020-01-02 03:40:18 2020-01-01 00:11:57.000 2020-01-02 03:40:18.000 717 99618 50167.5 5016750 717 99618 50167.5 5016750 -32453 32685 4947.66 494766 -128 123 -3.38 -338 -718 100 10708 99619 2.15615 299.15615 150.65615 15065.61561 2.15615 299.15616 150.65615 15065.61578 2.15615 299.15615 150.6561500000001 15065.61500 2020-01-01 2020-01-02 2020-01-01 00:11:58 2020-01-02 03:40:19 2020-01-01 00:11:58.000 2020-01-02 03:40:19.000 718 99619 50168.5 5016850 718 99619 50168.5 5016850 -32452 32686 4948.66 494866 -127 124 -2.38 -238 +718 100 10708 99619 2.15615 299.15615 150.65615 15065.61561 2.15615 299.15616 150.65615 15065.61578 2.15615 299.15615 150.65615000000003 15065.61500 2020-01-01 2020-01-02 2020-01-01 00:11:58 2020-01-02 03:40:19 2020-01-01 00:11:58.000 2020-01-02 03:40:19.000 718 99619 50168.5 5016850 718 99619 50168.5 5016850 -32452 32686 4948.66 494866 -127 124 -2.38 -238 719 100 10709 99620 2.15915 299.15915 150.65915 15065.91591 2.15915 299.15915 150.65915 15065.91595 2.15915 299.15915 150.65915 15065.91500 2020-01-01 2020-01-02 2020-01-01 00:11:59 2020-01-02 03:40:20 2020-01-01 00:11:59.000 2020-01-02 03:40:20.000 719 99620 50169.5 5016950 719 99620 50169.5 5016950 -32451 32687 4949.66 494966 -126 125 -1.38 -138 72 102 10062 99972 0.21621 300.21621 150.21621 15171.83783 0.21621 300.21622 150.21621 15171.83791 0.21621 300.21621 150.21621 15171.83721 2020-01-01 2020-01-02 2020-01-01 00:01:12 2020-01-02 03:46:12 2020-01-01 00:01:12.000 2020-01-02 03:46:12.000 72 99972 50022 5052222 72 99972 50022 5052222 -32497 32438 4601.009900990099 464702 -128 127 -1.9207920792079207 -194 -720 100 10710 99621 2.16216 299.16216 150.66216 15066.21621 2.16216 299.16217 150.66216 15066.21606 2.16216 299.16216 150.6621599999999 15066.21600 2020-01-01 2020-01-02 2020-01-01 00:12:00 2020-01-02 03:40:21 2020-01-01 00:12:00.000 2020-01-02 03:40:21.000 720 99621 50170.5 5017050 720 99621 50170.5 5017050 -32450 32688 4950.66 495066 -125 126 -0.38 -38 +720 100 10710 99621 2.16216 299.16216 150.66216 15066.21621 2.16216 299.16217 150.66216 15066.21606 2.16216 299.16216 150.66215999999994 15066.21600 2020-01-01 2020-01-02 2020-01-01 00:12:00 2020-01-02 03:40:21 2020-01-01 00:12:00.000 2020-01-02 03:40:21.000 720 99621 50170.5 5017050 720 99621 50170.5 5017050 -32450 32688 4950.66 495066 -125 126 -0.38 -38 721 100 10711 99622 2.16516 299.16516 150.66516 15066.51651 2.16516 299.16516 150.66516 15066.51635 2.16516 299.16516 150.66515999999996 15066.51600 2020-01-01 2020-01-02 2020-01-01 00:12:01 2020-01-02 03:40:22 2020-01-01 00:12:01.000 2020-01-02 03:40:22.000 721 99622 50171.5 5017150 721 99622 50171.5 5017150 -32449 32689 4951.66 495166 -124 127 0.62 62 -722 100 10712 99623 2.16816 299.16816 150.66816 15066.81681 2.16816 299.16818 150.66816 15066.81695 2.16816 299.16816 150.66815999999986 15066.81600 2020-01-01 2020-01-02 2020-01-01 00:12:02 2020-01-02 03:40:23 2020-01-01 00:12:02.000 2020-01-02 03:40:23.000 722 99623 50172.5 5017250 722 99623 50172.5 5017250 -32448 32690 4952.66 495266 -128 127 -0.94 -94 -723 100 10713 99624 2.17117 299.17117 150.67117 15067.11711 2.17117 299.17117 150.67117 15067.11724 2.17117 299.17117 150.67116999999973 15067.11700 2020-01-01 2020-01-02 2020-01-01 00:12:03 2020-01-02 03:40:24 2020-01-01 00:12:03.000 2020-01-02 03:40:24.000 723 99624 50173.5 5017350 723 99624 50173.5 5017350 -32447 32691 4953.66 495366 -128 123 -2.5 -250 -724 100 10714 99625 2.17417 299.17417 150.67417 15067.41741 2.17417 299.17416 150.67417 15067.41742 2.17417 299.17417 150.67417000000015 15067.41700 2020-01-01 2020-01-02 2020-01-01 00:12:04 2020-01-02 03:40:25 2020-01-01 00:12:04.000 2020-01-02 03:40:25.000 724 99625 50174.5 5017450 724 99625 50174.5 5017450 -32446 32692 4954.66 495466 -127 124 -1.5 -150 -725 100 10715 99626 2.17717 299.17717 150.67717 15067.71771 2.17717 299.1772 150.67717 15067.71752 2.17717 299.17717 150.67717000000025 15067.71700 2020-01-01 2020-01-02 2020-01-01 00:12:05 2020-01-02 03:40:26 2020-01-01 00:12:05.000 2020-01-02 03:40:26.000 725 99626 50175.5 5017550 725 99626 50175.5 5017550 -32445 32693 4955.66 495566 -126 125 -0.5 -50 -726 100 10716 99627 2.18018 299.18018 150.68018 15068.01801 2.18018 299.18018 150.68017 15068.01782 2.18018 299.18018 150.6801799999999 15068.01800 2020-01-01 2020-01-02 2020-01-01 00:12:06 2020-01-02 03:40:27 2020-01-01 00:12:06.000 2020-01-02 03:40:27.000 726 99627 50176.5 5017650 726 99627 50176.5 5017650 -32444 32694 4956.66 495666 -125 126 0.5 50 +722 100 10712 99623 2.16816 299.16816 150.66816 15066.81681 2.16816 299.16818 150.66816 15066.81695 2.16816 299.16816 150.66815999999997 15066.81600 2020-01-01 2020-01-02 2020-01-01 00:12:02 2020-01-02 03:40:23 2020-01-01 00:12:02.000 2020-01-02 03:40:23.000 722 99623 50172.5 5017250 722 99623 50172.5 5017250 -32448 32690 4952.66 495266 -128 127 -0.94 -94 +723 100 10713 99624 2.17117 299.17117 150.67117 15067.11711 2.17117 299.17117 150.67117 15067.11724 2.17117 299.17117 150.6711699999999 15067.11700 2020-01-01 2020-01-02 2020-01-01 00:12:03 2020-01-02 03:40:24 2020-01-01 00:12:03.000 2020-01-02 03:40:24.000 723 99624 50173.5 5017350 723 99624 50173.5 5017350 -32447 32691 4953.66 495366 -128 123 -2.5 -250 +724 100 10714 99625 2.17417 299.17417 150.67417 15067.41741 2.17417 299.17416 150.67417 15067.41742 2.17417 299.17417 150.67417000000012 15067.41700 2020-01-01 2020-01-02 2020-01-01 00:12:04 2020-01-02 03:40:25 2020-01-01 00:12:04.000 2020-01-02 03:40:25.000 724 99625 50174.5 5017450 724 99625 50174.5 5017450 -32446 32692 4954.66 495466 -127 124 -1.5 -150 +725 100 10715 99626 2.17717 299.17717 150.67717 15067.71771 2.17717 299.1772 150.67717 15067.71752 2.17717 299.17717 150.67717000000007 15067.71700 2020-01-01 2020-01-02 2020-01-01 00:12:05 2020-01-02 03:40:26 2020-01-01 00:12:05.000 2020-01-02 03:40:26.000 725 99626 50175.5 5017550 725 99626 50175.5 5017550 -32445 32693 4955.66 495566 -126 125 -0.5 -50 +726 100 10716 99627 2.18018 299.18018 150.68018 15068.01801 2.18018 299.18018 150.68017 15068.01782 2.18018 299.18018 150.68017999999995 15068.01800 2020-01-01 2020-01-02 2020-01-01 00:12:06 2020-01-02 03:40:27 2020-01-01 00:12:06.000 2020-01-02 03:40:27.000 726 99627 50176.5 5017650 726 99627 50176.5 5017650 -32444 32694 4956.66 495666 -125 126 0.5 50 727 100 10717 99628 2.18318 299.18318 150.68318 15068.31831 2.18318 299.1832 150.68318 15068.31842 2.18318 299.18318 150.68318 15068.31800 2020-01-01 2020-01-02 2020-01-01 00:12:07 2020-01-02 03:40:28 2020-01-01 00:12:07.000 2020-01-02 03:40:28.000 727 99628 50177.5 5017750 727 99628 50177.5 5017750 -32443 32695 4957.66 495766 -124 127 1.5 150 -728 100 10718 99629 2.18618 299.18618 150.68618 15068.61861 2.18618 299.1862 150.68618 15068.61875 2.18618 299.18618 150.6861800000001 15068.61800 2020-01-01 2020-01-02 2020-01-01 00:12:08 2020-01-02 03:40:29 2020-01-01 00:12:08.000 2020-01-02 03:40:29.000 728 99629 50178.5 5017850 728 99629 50178.5 5017850 -32442 32696 4958.66 495866 -128 127 -0.06 -6 -729 100 10719 99630 2.18918 299.18918 150.68918 15068.91891 2.18918 299.18918 150.68918 15068.91889 2.18918 299.18918 150.6891799999999 15068.91800 2020-01-01 2020-01-02 2020-01-01 00:12:09 2020-01-02 03:40:30 2020-01-01 00:12:09.000 2020-01-02 03:40:30.000 729 99630 50179.5 5017950 729 99630 50179.5 5017950 -32441 32697 4959.66 495966 -128 123 -1.62 -162 -73 102 10063 99973 0.21921 300.21921 150.21921 15172.14114 0.21921 300.2192 150.21921 15172.14121 0.21921 300.21921 150.2192099999999 15172.14021 2020-01-01 2020-01-02 2020-01-01 00:01:13 2020-01-02 03:46:13 2020-01-01 00:01:13.000 2020-01-02 03:46:13.000 73 99973 50023 5052323 73 99973 50023 5052323 -32496 32439 4602.009900990099 464803 -128 127 -3.4554455445544554 -349 -730 100 10720 99631 2.19219 299.19219 150.69219 15069.21921 2.19219 299.1922 150.69219 15069.21965 2.19219 299.19219 150.69218999999984 15069.21900 2020-01-01 2020-01-02 2020-01-01 00:12:10 2020-01-02 03:40:31 2020-01-01 00:12:10.000 2020-01-02 03:40:31.000 730 99631 50180.5 5018050 730 99631 50180.5 5018050 -32440 32698 4960.66 496066 -127 124 -0.62 -62 -731 100 10721 99632 2.19519 299.19519 150.69519 15069.51951 2.19519 299.1952 150.69519 15069.51928 2.19519 299.19519 150.69519000000025 15069.51900 2020-01-01 2020-01-02 2020-01-01 00:12:11 2020-01-02 03:40:32 2020-01-01 00:12:11.000 2020-01-02 03:40:32.000 731 99632 50181.5 5018150 731 99632 50181.5 5018150 -32439 32699 4961.66 496166 -126 125 0.38 38 -732 100 10722 99633 2.19819 299.19819 150.69819 15069.81981 2.19819 299.1982 150.69819 15069.81988 2.19819 299.19819 150.69818999999976 15069.81900 2020-01-01 2020-01-02 2020-01-01 00:12:12 2020-01-02 03:40:33 2020-01-01 00:12:12.000 2020-01-02 03:40:33.000 732 99633 50182.5 5018250 732 99633 50182.5 5018250 -32438 32700 4962.66 496266 -125 126 1.38 138 +728 100 10718 99629 2.18618 299.18618 150.68618 15068.61861 2.18618 299.1862 150.68618 15068.61875 2.18618 299.18618 150.68618000000004 15068.61800 2020-01-01 2020-01-02 2020-01-01 00:12:08 2020-01-02 03:40:29 2020-01-01 00:12:08.000 2020-01-02 03:40:29.000 728 99629 50178.5 5017850 728 99629 50178.5 5017850 -32442 32696 4958.66 495866 -128 127 -0.06 -6 +729 100 10719 99630 2.18918 299.18918 150.68918 15068.91891 2.18918 299.18918 150.68918 15068.91889 2.18918 299.18918 150.68917999999996 15068.91800 2020-01-01 2020-01-02 2020-01-01 00:12:09 2020-01-02 03:40:30 2020-01-01 00:12:09.000 2020-01-02 03:40:30.000 729 99630 50179.5 5017950 729 99630 50179.5 5017950 -32441 32697 4959.66 495966 -128 123 -1.62 -162 +73 102 10063 99973 0.21921 300.21921 150.21921 15172.14114 0.21921 300.2192 150.21921 15172.14121 0.21921 300.21921 150.21921 15172.14021 2020-01-01 2020-01-02 2020-01-01 00:01:13 2020-01-02 03:46:13 2020-01-01 00:01:13.000 2020-01-02 03:46:13.000 73 99973 50023 5052323 73 99973 50023 5052323 -32496 32439 4602.009900990099 464803 -128 127 -3.4554455445544554 -349 +730 100 10720 99631 2.19219 299.19219 150.69219 15069.21921 2.19219 299.1922 150.69219 15069.21965 2.19219 299.19219 150.69218999999993 15069.21900 2020-01-01 2020-01-02 2020-01-01 00:12:10 2020-01-02 03:40:31 2020-01-01 00:12:10.000 2020-01-02 03:40:31.000 730 99631 50180.5 5018050 730 99631 50180.5 5018050 -32440 32698 4960.66 496066 -127 124 -0.62 -62 +731 100 10721 99632 2.19519 299.19519 150.69519 15069.51951 2.19519 299.1952 150.69519 15069.51928 2.19519 299.19519 150.69519000000008 15069.51900 2020-01-01 2020-01-02 2020-01-01 00:12:11 2020-01-02 03:40:32 2020-01-01 00:12:11.000 2020-01-02 03:40:32.000 731 99632 50181.5 5018150 731 99632 50181.5 5018150 -32439 32699 4961.66 496166 -126 125 0.38 38 +732 100 10722 99633 2.19819 299.19819 150.69819 15069.81981 2.19819 299.1982 150.69819 15069.81988 2.19819 299.19819 150.69818999999993 15069.81900 2020-01-01 2020-01-02 2020-01-01 00:12:12 2020-01-02 03:40:33 2020-01-01 00:12:12.000 2020-01-02 03:40:33.000 732 99633 50182.5 5018250 732 99633 50182.5 5018250 -32438 32700 4962.66 496266 -125 126 1.38 138 733 100 10723 99634 2.2012 299.2012 150.7012 15070.12012 2.2012 299.2012 150.7012 15070.12022 2.20120 299.20120 150.70120000000003 15070.12000 2020-01-01 2020-01-02 2020-01-01 00:12:13 2020-01-02 03:40:34 2020-01-01 00:12:13.000 2020-01-02 03:40:34.000 733 99634 50183.5 5018350 733 99634 50183.5 5018350 -32437 32701 4963.66 496366 -124 127 2.38 238 -734 100 10724 99635 2.2042 299.2042 150.7042 15070.42042 2.2042 299.2042 150.7042 15070.42036 2.20420 299.20420 150.7042000000001 15070.42000 2020-01-01 2020-01-02 2020-01-01 00:12:14 2020-01-02 03:40:35 2020-01-01 00:12:14.000 2020-01-02 03:40:35.000 734 99635 50184.5 5018450 734 99635 50184.5 5018450 -32436 32702 4964.66 496466 -128 127 0.82 82 -735 100 10725 99636 2.2072 299.2072 150.7072 15070.72072 2.2072 299.2072 150.70721 15070.72111 2.20720 299.20720 150.70720000000014 15070.72000 2020-01-01 2020-01-02 2020-01-01 00:12:15 2020-01-02 03:40:36 2020-01-01 00:12:15.000 2020-01-02 03:40:36.000 735 99636 50185.5 5018550 735 99636 50185.5 5018550 -32435 32703 4965.66 496566 -128 127 -0.74 -74 -736 100 10726 99637 2.21021 299.21021 150.71021 15071.02102 2.21021 299.2102 150.7102 15071.02076 2.21021 299.21021 150.71020999999988 15071.02100 2020-01-01 2020-01-02 2020-01-01 00:12:16 2020-01-02 03:40:37 2020-01-01 00:12:16.000 2020-01-02 03:40:37.000 736 99637 50186.5 5018650 736 99637 50186.5 5018650 -32434 32704 4966.66 496666 -128 124 -2.3 -230 +734 100 10724 99635 2.2042 299.2042 150.7042 15070.42042 2.2042 299.2042 150.7042 15070.42036 2.20420 299.20420 150.70420000000007 15070.42000 2020-01-01 2020-01-02 2020-01-01 00:12:14 2020-01-02 03:40:35 2020-01-01 00:12:14.000 2020-01-02 03:40:35.000 734 99635 50184.5 5018450 734 99635 50184.5 5018450 -32436 32702 4964.66 496466 -128 127 0.82 82 +735 100 10725 99636 2.2072 299.2072 150.7072 15070.72072 2.2072 299.2072 150.70721 15070.72111 2.20720 299.20720 150.70720000000003 15070.72000 2020-01-01 2020-01-02 2020-01-01 00:12:15 2020-01-02 03:40:36 2020-01-01 00:12:15.000 2020-01-02 03:40:36.000 735 99636 50185.5 5018550 735 99636 50185.5 5018550 -32435 32703 4965.66 496566 -128 127 -0.74 -74 +736 100 10726 99637 2.21021 299.21021 150.71021 15071.02102 2.21021 299.2102 150.7102 15071.02076 2.21021 299.21021 150.71021 15071.02100 2020-01-01 2020-01-02 2020-01-01 00:12:16 2020-01-02 03:40:37 2020-01-01 00:12:16.000 2020-01-02 03:40:37.000 736 99637 50186.5 5018650 736 99637 50186.5 5018650 -32434 32704 4966.66 496666 -128 124 -2.3 -230 737 100 10727 99638 2.21321 299.21321 150.71321 15071.32132 2.21321 299.21323 150.71321 15071.32139 2.21321 299.21321 150.71320999999992 15071.32100 2020-01-01 2020-01-02 2020-01-01 00:12:17 2020-01-02 03:40:38 2020-01-01 00:12:17.000 2020-01-02 03:40:38.000 737 99638 50187.5 5018750 737 99638 50187.5 5018750 -32433 32705 4967.66 496766 -127 125 -1.3 -130 738 100 10728 99639 2.21621 299.21621 150.71621 15071.62162 2.21621 299.21622 150.71621 15071.62169 2.21621 299.21621 150.71621 15071.62100 2020-01-01 2020-01-02 2020-01-01 00:12:18 2020-01-02 03:40:39 2020-01-01 00:12:18.000 2020-01-02 03:40:39.000 738 99639 50188.5 5018850 738 99639 50188.5 5018850 -32432 32706 4968.66 496866 -126 126 -0.3 -30 -739 100 10729 99640 2.21921 299.21921 150.71921 15071.92192 2.21921 299.2192 150.71921 15071.92199 2.21921 299.21921 150.7192099999999 15071.92100 2020-01-01 2020-01-02 2020-01-01 00:12:19 2020-01-02 03:40:40 2020-01-01 00:12:19.000 2020-01-02 03:40:40.000 739 99640 50189.5 5018950 739 99640 50189.5 5018950 -32431 32707 4969.66 496966 -125 127 0.7 70 -74 102 10064 99974 0.22222 300.22222 150.22222 15172.44444 0.22222 300.22223 150.22222 15172.4448 0.22222 300.22222 150.22221999999977 15172.44422 2020-01-01 2020-01-02 2020-01-01 00:01:14 2020-01-02 03:46:14 2020-01-01 00:01:14.000 2020-01-02 03:46:14.000 74 99974 50024 5052424 74 99974 50024 5052424 -32495 32440 4603.009900990099 464904 -128 123 -4.99009900990099 -504 -740 100 10730 99641 2.22222 299.22222 150.72222 15072.22222 2.22222 299.22223 150.72222 15072.22258 2.22222 299.22222 150.72221999999977 15072.22200 2020-01-01 2020-01-02 2020-01-01 00:12:20 2020-01-02 03:40:41 2020-01-01 00:12:20.000 2020-01-02 03:40:41.000 740 99641 50190.5 5019050 740 99641 50190.5 5019050 -32430 32708 4970.66 497066 -128 127 -0.86 -86 -741 100 10731 99642 2.22522 299.22522 150.72522 15072.52252 2.22522 299.22522 150.72522 15072.52223 2.22522 299.22522 150.72522000000015 15072.52200 2020-01-01 2020-01-02 2020-01-01 00:12:21 2020-01-02 03:40:42 2020-01-01 00:12:21.000 2020-01-02 03:40:42.000 741 99642 50191.5 5019150 741 99642 50191.5 5019150 -32429 32709 4971.66 497166 -128 127 -2.42 -242 -742 100 10732 99643 2.22822 299.22822 150.72822 15072.82282 2.22822 299.22824 150.72822 15072.82286 2.22822 299.22822 150.72822000000028 15072.82200 2020-01-01 2020-01-02 2020-01-01 00:12:22 2020-01-02 03:40:43 2020-01-01 00:12:22.000 2020-01-02 03:40:43.000 742 99643 50192.5 5019250 742 99643 50192.5 5019250 -32428 32710 4972.66 497266 -128 123 -3.98 -398 -743 100 10733 99644 2.23123 299.23123 150.73123 15073.12312 2.23123 299.23123 150.73123 15073.12316 2.23123 299.23123 150.73122999999993 15073.12300 2020-01-01 2020-01-02 2020-01-01 00:12:23 2020-01-02 03:40:44 2020-01-01 00:12:23.000 2020-01-02 03:40:44.000 743 99644 50193.5 5019350 743 99644 50193.5 5019350 -32427 32711 4973.66 497366 -127 124 -2.98 -298 -744 100 10734 99645 2.23423 299.23423 150.73423 15073.42342 2.23423 299.23422 150.73423 15073.42345 2.23423 299.23423 150.73423000000003 15073.42300 2020-01-01 2020-01-02 2020-01-01 00:12:24 2020-01-02 03:40:45 2020-01-01 00:12:24.000 2020-01-02 03:40:45.000 744 99645 50194.5 5019450 744 99645 50194.5 5019450 -32426 32712 4974.66 497466 -126 125 -1.98 -198 -745 100 10735 99646 2.23723 299.23723 150.73723 15073.72372 2.23723 299.23724 150.73724 15073.72405 2.23723 299.23723 150.73723000000012 15073.72300 2020-01-01 2020-01-02 2020-01-01 00:12:25 2020-01-02 03:40:46 2020-01-01 00:12:25.000 2020-01-02 03:40:46.000 745 99646 50195.5 5019550 745 99646 50195.5 5019550 -32425 32713 4975.66 497566 -125 126 -0.98 -98 -746 100 10736 99647 2.24024 299.24024 150.74024 15074.02402 2.24024 299.24023 150.74023 15074.02373 2.24024 299.24024 150.74023999999977 15074.02400 2020-01-01 2020-01-02 2020-01-01 00:12:26 2020-01-02 03:40:47 2020-01-01 00:12:26.000 2020-01-02 03:40:47.000 746 99647 50196.5 5019650 746 99647 50196.5 5019650 -32424 32714 4976.66 497666 -124 127 0.02 2 -747 100 10737 99648 2.24324 299.24324 150.74324 15074.32432 2.24324 299.24326 150.74324 15074.32433 2.24324 299.24324 150.74323999999982 15074.32400 2020-01-01 2020-01-02 2020-01-01 00:12:27 2020-01-02 03:40:48 2020-01-01 00:12:27.000 2020-01-02 03:40:48.000 747 99648 50197.5 5019750 747 99648 50197.5 5019750 -32423 32715 4977.66 497766 -128 127 -1.54 -154 -748 100 10738 99649 2.24624 299.24624 150.74624 15074.62462 2.24624 299.24625 150.74624 15074.62463 2.24624 299.24624 150.74624000000028 15074.62400 2020-01-01 2020-01-02 2020-01-01 00:12:28 2020-01-02 03:40:49 2020-01-01 00:12:28.000 2020-01-02 03:40:49.000 748 99649 50198.5 5019850 748 99649 50198.5 5019850 -32422 32716 4978.66 497866 -128 123 -3.1 -310 -749 100 10739 99650 2.24924 299.24924 150.74924 15074.92492 2.24924 299.24924 150.74924 15074.92492 2.24924 299.24924 150.7492399999998 15074.92400 2020-01-01 2020-01-02 2020-01-01 00:12:29 2020-01-02 03:40:50 2020-01-01 00:12:29.000 2020-01-02 03:40:50.000 749 99650 50199.5 5019950 749 99650 50199.5 5019950 -32421 32717 4979.66 497966 -127 124 -2.1 -210 -75 102 10065 99975 0.22522 300.22522 150.22522 15172.74774 0.22522 300.22522 150.22522 15172.74745 0.22522 300.22522 150.22522000000015 15172.74722 2020-01-01 2020-01-02 2020-01-01 00:01:15 2020-01-02 03:46:15 2020-01-01 00:01:15.000 2020-01-02 03:46:15.000 75 99975 50025 5052525 75 99975 50025 5052525 -32494 32441 4604.009900990099 465005 -127 124 -3.99009900990099 -403 -750 100 10740 99651 2.25225 299.25225 150.75225 15075.22522 2.25225 299.25226 150.75225 15075.22552 2.25225 299.25225 150.75224999999966 15075.22500 2020-01-01 2020-01-02 2020-01-01 00:12:30 2020-01-02 03:40:51 2020-01-01 00:12:30.000 2020-01-02 03:40:51.000 750 99651 50200.5 5020050 750 99651 50200.5 5020050 -32420 32718 4980.66 498066 -126 125 -1.1 -110 -751 100 10741 99652 2.25525 299.25525 150.75525 15075.52552 2.25525 299.25525 150.75525 15075.5252 2.25525 299.25525 150.75525000000013 15075.52500 2020-01-01 2020-01-02 2020-01-01 00:12:31 2020-01-02 03:40:52 2020-01-01 00:12:31.000 2020-01-02 03:40:52.000 751 99652 50201.5 5020150 751 99652 50201.5 5020150 -32419 32719 4981.66 498166 -125 126 -0.1 -10 -752 100 10742 99653 2.25825 299.25825 150.75825 15075.82582 2.25825 299.25827 150.75825 15075.8258 2.25825 299.25825 150.75825000000017 15075.82500 2020-01-01 2020-01-02 2020-01-01 00:12:32 2020-01-02 03:40:53 2020-01-01 00:12:32.000 2020-01-02 03:40:53.000 752 99653 50202.5 5020250 752 99653 50202.5 5020250 -32418 32720 4982.66 498266 -124 127 0.9 90 -753 100 10743 99654 2.26126 299.26126 150.76126 15076.12612 2.26126 299.26126 150.76126 15076.12609 2.26126 299.26126 150.7612599999999 15076.12600 2020-01-01 2020-01-02 2020-01-01 00:12:33 2020-01-02 03:40:54 2020-01-01 00:12:33.000 2020-01-02 03:40:54.000 753 99654 50203.5 5020350 753 99654 50203.5 5020350 -32417 32721 4983.66 498366 -128 127 -0.66 -66 +739 100 10729 99640 2.21921 299.21921 150.71921 15071.92192 2.21921 299.2192 150.71921 15071.92199 2.21921 299.21921 150.71920999999998 15071.92100 2020-01-01 2020-01-02 2020-01-01 00:12:19 2020-01-02 03:40:40 2020-01-01 00:12:19.000 2020-01-02 03:40:40.000 739 99640 50189.5 5018950 739 99640 50189.5 5018950 -32431 32707 4969.66 496966 -125 127 0.7 70 +74 102 10064 99974 0.22222 300.22222 150.22222 15172.44444 0.22222 300.22223 150.22222 15172.4448 0.22222 300.22222 150.22221999999994 15172.44422 2020-01-01 2020-01-02 2020-01-01 00:01:14 2020-01-02 03:46:14 2020-01-01 00:01:14.000 2020-01-02 03:46:14.000 74 99974 50024 5052424 74 99974 50024 5052424 -32495 32440 4603.009900990099 464904 -128 123 -4.99009900990099 -504 +740 100 10730 99641 2.22222 299.22222 150.72222 15072.22222 2.22222 299.22223 150.72222 15072.22258 2.22222 299.22222 150.72221999999994 15072.22200 2020-01-01 2020-01-02 2020-01-01 00:12:20 2020-01-02 03:40:41 2020-01-01 00:12:20.000 2020-01-02 03:40:41.000 740 99641 50190.5 5019050 740 99641 50190.5 5019050 -32430 32708 4970.66 497066 -128 127 -0.86 -86 +741 100 10731 99642 2.22522 299.22522 150.72522 15072.52252 2.22522 299.22522 150.72522 15072.52223 2.22522 299.22522 150.72522000000004 15072.52200 2020-01-01 2020-01-02 2020-01-01 00:12:21 2020-01-02 03:40:42 2020-01-01 00:12:21.000 2020-01-02 03:40:42.000 741 99642 50191.5 5019150 741 99642 50191.5 5019150 -32429 32709 4971.66 497166 -128 127 -2.42 -242 +742 100 10732 99643 2.22822 299.22822 150.72822 15072.82282 2.22822 299.22824 150.72822 15072.82286 2.22822 299.22822 150.72822000000008 15072.82200 2020-01-01 2020-01-02 2020-01-01 00:12:22 2020-01-02 03:40:43 2020-01-01 00:12:22.000 2020-01-02 03:40:43.000 742 99643 50192.5 5019250 742 99643 50192.5 5019250 -32428 32710 4972.66 497266 -128 123 -3.98 -398 +743 100 10733 99644 2.23123 299.23123 150.73123 15073.12312 2.23123 299.23123 150.73123 15073.12316 2.23123 299.23123 150.73122999999998 15073.12300 2020-01-01 2020-01-02 2020-01-01 00:12:23 2020-01-02 03:40:44 2020-01-01 00:12:23.000 2020-01-02 03:40:44.000 743 99644 50193.5 5019350 743 99644 50193.5 5019350 -32427 32711 4973.66 497366 -127 124 -2.98 -298 +744 100 10734 99645 2.23423 299.23423 150.73423 15073.42342 2.23423 299.23422 150.73423 15073.42345 2.23423 299.23423 150.73423 15073.42300 2020-01-01 2020-01-02 2020-01-01 00:12:24 2020-01-02 03:40:45 2020-01-01 00:12:24.000 2020-01-02 03:40:45.000 744 99645 50194.5 5019450 744 99645 50194.5 5019450 -32426 32712 4974.66 497466 -126 125 -1.98 -198 +745 100 10735 99646 2.23723 299.23723 150.73723 15073.72372 2.23723 299.23724 150.73724 15073.72405 2.23723 299.23723 150.73723000000007 15073.72300 2020-01-01 2020-01-02 2020-01-01 00:12:25 2020-01-02 03:40:46 2020-01-01 00:12:25.000 2020-01-02 03:40:46.000 745 99646 50195.5 5019550 745 99646 50195.5 5019550 -32425 32713 4975.66 497566 -125 126 -0.98 -98 +746 100 10736 99647 2.24024 299.24024 150.74024 15074.02402 2.24024 299.24023 150.74023 15074.02373 2.24024 299.24024 150.74023999999994 15074.02400 2020-01-01 2020-01-02 2020-01-01 00:12:26 2020-01-02 03:40:47 2020-01-01 00:12:26.000 2020-01-02 03:40:47.000 746 99647 50196.5 5019650 746 99647 50196.5 5019650 -32424 32714 4976.66 497666 -124 127 0.02 2 +747 100 10737 99648 2.24324 299.24324 150.74324 15074.32432 2.24324 299.24326 150.74324 15074.32433 2.24324 299.24324 150.7432399999999 15074.32400 2020-01-01 2020-01-02 2020-01-01 00:12:27 2020-01-02 03:40:48 2020-01-01 00:12:27.000 2020-01-02 03:40:48.000 747 99648 50197.5 5019750 747 99648 50197.5 5019750 -32423 32715 4977.66 497766 -128 127 -1.54 -154 +748 100 10738 99649 2.24624 299.24624 150.74624 15074.62462 2.24624 299.24625 150.74624 15074.62463 2.24624 299.24624 150.7462400000001 15074.62400 2020-01-01 2020-01-02 2020-01-01 00:12:28 2020-01-02 03:40:49 2020-01-01 00:12:28.000 2020-01-02 03:40:49.000 748 99649 50198.5 5019850 748 99649 50198.5 5019850 -32422 32716 4978.66 497866 -128 123 -3.1 -310 +749 100 10739 99650 2.24924 299.24924 150.74924 15074.92492 2.24924 299.24924 150.74924 15074.92492 2.24924 299.24924 150.74923999999996 15074.92400 2020-01-01 2020-01-02 2020-01-01 00:12:29 2020-01-02 03:40:50 2020-01-01 00:12:29.000 2020-01-02 03:40:50.000 749 99650 50199.5 5019950 749 99650 50199.5 5019950 -32421 32717 4979.66 497966 -127 124 -2.1 -210 +75 102 10065 99975 0.22522 300.22522 150.22522 15172.74774 0.22522 300.22522 150.22522 15172.74745 0.22522 300.22522 150.22522000000004 15172.74722 2020-01-01 2020-01-02 2020-01-01 00:01:15 2020-01-02 03:46:15 2020-01-01 00:01:15.000 2020-01-02 03:46:15.000 75 99975 50025 5052525 75 99975 50025 5052525 -32494 32441 4604.009900990099 465005 -127 124 -3.99009900990099 -403 +750 100 10740 99651 2.25225 299.25225 150.75225 15075.22522 2.25225 299.25226 150.75225 15075.22552 2.25225 299.25225 150.75224999999983 15075.22500 2020-01-01 2020-01-02 2020-01-01 00:12:30 2020-01-02 03:40:51 2020-01-01 00:12:30.000 2020-01-02 03:40:51.000 750 99651 50200.5 5020050 750 99651 50200.5 5020050 -32420 32718 4980.66 498066 -126 125 -1.1 -110 +751 100 10741 99652 2.25525 299.25525 150.75525 15075.52552 2.25525 299.25525 150.75525 15075.5252 2.25525 299.25525 150.75525000000007 15075.52500 2020-01-01 2020-01-02 2020-01-01 00:12:31 2020-01-02 03:40:52 2020-01-01 00:12:31.000 2020-01-02 03:40:52.000 751 99652 50201.5 5020150 751 99652 50201.5 5020150 -32419 32719 4981.66 498166 -125 126 -0.1 -10 +752 100 10742 99653 2.25825 299.25825 150.75825 15075.82582 2.25825 299.25827 150.75825 15075.8258 2.25825 299.25825 150.75825000000003 15075.82500 2020-01-01 2020-01-02 2020-01-01 00:12:32 2020-01-02 03:40:53 2020-01-01 00:12:32.000 2020-01-02 03:40:53.000 752 99653 50202.5 5020250 752 99653 50202.5 5020250 -32418 32720 4982.66 498266 -124 127 0.9 90 +753 100 10743 99654 2.26126 299.26126 150.76126 15076.12612 2.26126 299.26126 150.76126 15076.12609 2.26126 299.26126 150.76126 15076.12600 2020-01-01 2020-01-02 2020-01-01 00:12:33 2020-01-02 03:40:54 2020-01-01 00:12:33.000 2020-01-02 03:40:54.000 753 99654 50203.5 5020350 753 99654 50203.5 5020350 -32417 32721 4983.66 498366 -128 127 -0.66 -66 754 100 10744 99655 2.26426 299.26426 150.76426 15076.42642 2.26426 299.26425 150.76426 15076.4264 2.26426 299.26426 150.76425999999995 15076.42600 2020-01-01 2020-01-02 2020-01-01 00:12:34 2020-01-02 03:40:55 2020-01-01 00:12:34.000 2020-01-02 03:40:55.000 754 99655 50204.5 5020450 754 99655 50204.5 5020450 -32416 32722 4984.66 498466 -128 123 -2.22 -222 -755 100 10745 99656 2.26726 299.26726 150.76726 15076.72672 2.26726 299.26727 150.76727 15076.72703 2.26726 299.26726 150.76726000000002 15076.72600 2020-01-01 2020-01-02 2020-01-01 00:12:35 2020-01-02 03:40:56 2020-01-01 00:12:35.000 2020-01-02 03:40:56.000 755 99656 50205.5 5020550 755 99656 50205.5 5020550 -32415 32723 4985.66 498566 -127 124 -1.22 -122 -756 100 10746 99657 2.27027 299.27027 150.77027 15077.02702 2.27027 299.27026 150.77026 15077.02667 2.27027 299.27027 150.77027000000027 15077.02700 2020-01-01 2020-01-02 2020-01-01 00:12:36 2020-01-02 03:40:57 2020-01-01 00:12:36.000 2020-01-02 03:40:57.000 756 99657 50206.5 5020650 756 99657 50206.5 5020650 -32414 32724 4986.66 498666 -126 125 -0.22 -22 -757 100 10747 99658 2.27327 299.27327 150.77327 15077.32732 2.27327 299.2733 150.77327 15077.32727 2.27327 299.27327 150.7732699999998 15077.32700 2020-01-01 2020-01-02 2020-01-01 00:12:37 2020-01-02 03:40:58 2020-01-01 00:12:37.000 2020-01-02 03:40:58.000 757 99658 50207.5 5020750 757 99658 50207.5 5020750 -32413 32725 4987.66 498766 -125 126 0.78 78 -758 100 10748 99659 2.27627 299.27627 150.77627 15077.62762 2.27627 299.27628 150.77627 15077.62756 2.27627 299.27627 150.77627000000018 15077.62700 2020-01-01 2020-01-02 2020-01-01 00:12:38 2020-01-02 03:40:59 2020-01-01 00:12:38.000 2020-01-02 03:40:59.000 758 99659 50208.5 5020850 758 99659 50208.5 5020850 -32412 32726 4988.66 498866 -124 127 1.78 178 -759 100 10749 99660 2.27927 299.27927 150.77927 15077.92792 2.27927 299.27927 150.77927 15077.92787 2.27927 299.27927 150.7792699999997 15077.92700 2020-01-01 2020-01-02 2020-01-01 00:12:39 2020-01-02 03:41:00 2020-01-01 00:12:39.000 2020-01-02 03:41:00.000 759 99660 50209.5 5020950 759 99660 50209.5 5020950 -32411 32727 4989.66 498966 -128 127 0.22 22 -76 102 10066 99976 0.22822 300.22822 150.22822 15173.05105 0.22822 300.22824 150.22822 15173.05109 0.22822 300.22822 150.22822000000028 15173.05022 2020-01-01 2020-01-02 2020-01-01 00:01:16 2020-01-02 03:46:16 2020-01-01 00:01:16.000 2020-01-02 03:46:16.000 76 99976 50026 5052626 76 99976 50026 5052626 -32493 32442 4605.009900990099 465106 -126 125 -2.99009900990099 -302 -760 100 10750 99661 2.28228 299.28228 150.78228 15078.22822 2.28228 299.2823 150.78228 15078.2285 2.28228 299.28228 150.78227999999996 15078.22800 2020-01-01 2020-01-02 2020-01-01 00:12:40 2020-01-02 03:41:01 2020-01-01 00:12:40.000 2020-01-02 03:41:01.000 760 99661 50210.5 5021050 760 99661 50210.5 5021050 -32410 32728 4990.66 499066 -128 127 -1.34 -134 +755 100 10745 99656 2.26726 299.26726 150.76726 15076.72672 2.26726 299.26727 150.76727 15076.72703 2.26726 299.26726 150.76726 15076.72600 2020-01-01 2020-01-02 2020-01-01 00:12:35 2020-01-02 03:40:56 2020-01-01 00:12:35.000 2020-01-02 03:40:56.000 755 99656 50205.5 5020550 755 99656 50205.5 5020550 -32415 32723 4985.66 498566 -127 124 -1.22 -122 +756 100 10746 99657 2.27027 299.27027 150.77027 15077.02702 2.27027 299.27026 150.77026 15077.02667 2.27027 299.27027 150.7702700000001 15077.02700 2020-01-01 2020-01-02 2020-01-01 00:12:36 2020-01-02 03:40:57 2020-01-01 00:12:36.000 2020-01-02 03:40:57.000 756 99657 50206.5 5020650 756 99657 50206.5 5020650 -32414 32724 4986.66 498666 -126 125 -0.22 -22 +757 100 10747 99658 2.27327 299.27327 150.77327 15077.32732 2.27327 299.2733 150.77327 15077.32727 2.27327 299.27327 150.7732699999999 15077.32700 2020-01-01 2020-01-02 2020-01-01 00:12:37 2020-01-02 03:40:58 2020-01-01 00:12:37.000 2020-01-02 03:40:58.000 757 99658 50207.5 5020750 757 99658 50207.5 5020750 -32413 32725 4987.66 498766 -125 126 0.78 78 +758 100 10748 99659 2.27627 299.27627 150.77627 15077.62762 2.27627 299.27628 150.77627 15077.62756 2.27627 299.27627 150.77627000000007 15077.62700 2020-01-01 2020-01-02 2020-01-01 00:12:38 2020-01-02 03:40:59 2020-01-01 00:12:38.000 2020-01-02 03:40:59.000 758 99659 50208.5 5020850 758 99659 50208.5 5020850 -32412 32726 4988.66 498866 -124 127 1.78 178 +759 100 10749 99660 2.27927 299.27927 150.77927 15077.92792 2.27927 299.27927 150.77927 15077.92787 2.27927 299.27927 150.7792699999999 15077.92700 2020-01-01 2020-01-02 2020-01-01 00:12:39 2020-01-02 03:41:00 2020-01-01 00:12:39.000 2020-01-02 03:41:00.000 759 99660 50209.5 5020950 759 99660 50209.5 5020950 -32411 32727 4989.66 498966 -128 127 0.22 22 +76 102 10066 99976 0.22822 300.22822 150.22822 15173.05105 0.22822 300.22824 150.22822 15173.05109 0.22822 300.22822 150.22822000000008 15173.05022 2020-01-01 2020-01-02 2020-01-01 00:01:16 2020-01-02 03:46:16 2020-01-01 00:01:16.000 2020-01-02 03:46:16.000 76 99976 50026 5052626 76 99976 50026 5052626 -32493 32442 4605.009900990099 465106 -126 125 -2.99009900990099 -302 +760 100 10750 99661 2.28228 299.28228 150.78228 15078.22822 2.28228 299.2823 150.78228 15078.2285 2.28228 299.28228 150.78228 15078.22800 2020-01-01 2020-01-02 2020-01-01 00:12:40 2020-01-02 03:41:01 2020-01-01 00:12:40.000 2020-01-02 03:41:01.000 760 99661 50210.5 5021050 760 99661 50210.5 5021050 -32410 32728 4990.66 499066 -128 127 -1.34 -134 761 100 10751 99662 2.28528 299.28528 150.78528 15078.52852 2.28528 299.28528 150.78528 15078.52814 2.28528 299.28528 150.78528000000003 15078.52800 2020-01-01 2020-01-02 2020-01-01 00:12:41 2020-01-02 03:41:02 2020-01-01 00:12:41.000 2020-01-02 03:41:02.000 761 99662 50211.5 5021150 761 99662 50211.5 5021150 -32409 32729 4991.66 499166 -128 124 -2.9 -290 -762 100 10752 99663 2.28828 299.28828 150.78828 15078.82882 2.28828 299.2883 150.78828 15078.82889 2.28828 299.28828 150.78828000000013 15078.82800 2020-01-01 2020-01-02 2020-01-01 00:12:42 2020-01-02 03:41:03 2020-01-01 00:12:42.000 2020-01-02 03:41:03.000 762 99663 50212.5 5021250 762 99663 50212.5 5021250 -32408 32730 4992.66 499266 -127 125 -1.9 -190 -763 100 10753 99664 2.29129 299.29129 150.79129 15079.12912 2.29129 299.2913 150.79129 15079.12904 2.29129 299.29129 150.7912899999998 15079.12900 2020-01-01 2020-01-02 2020-01-01 00:12:43 2020-01-02 03:41:04 2020-01-01 00:12:43.000 2020-01-02 03:41:04.000 763 99664 50213.5 5021350 763 99664 50213.5 5021350 -32407 32731 4993.66 499366 -126 126 -0.9 -90 -764 100 10754 99665 2.29429 299.29429 150.79429 15079.42942 2.29429 299.29428 150.79429 15079.42933 2.29429 299.29429 150.79428999999985 15079.42900 2020-01-01 2020-01-02 2020-01-01 00:12:44 2020-01-02 03:41:05 2020-01-01 00:12:44.000 2020-01-02 03:41:05.000 764 99665 50214.5 5021450 764 99665 50214.5 5021450 -32406 32732 4994.66 499466 -125 127 0.1 10 -765 100 10755 99666 2.29729 299.29729 150.79729 15079.72972 2.29729 299.2973 150.79729 15079.72996 2.29729 299.29729 150.79729000000032 15079.72900 2020-01-01 2020-01-02 2020-01-01 00:12:45 2020-01-02 03:41:06 2020-01-01 00:12:45.000 2020-01-02 03:41:06.000 765 99666 50215.5 5021550 765 99666 50215.5 5021550 -32405 32733 4995.66 499566 -128 127 -1.46 -146 -766 100 10756 99667 2.3003 299.3003 150.8003 15080.03003 2.3003 299.3003 150.80029 15080.02961 2.30030 299.30030 150.8003000000002 15080.03000 2020-01-01 2020-01-02 2020-01-01 00:12:46 2020-01-02 03:41:07 2020-01-01 00:12:46.000 2020-01-02 03:41:07.000 766 99667 50216.5 5021650 766 99667 50216.5 5021650 -32404 32734 4996.66 499666 -128 127 -3.02 -302 -767 100 10757 99668 2.3033 299.3033 150.8033 15080.33033 2.3033 299.3033 150.8033 15080.33036 2.30330 299.30330 150.8032999999997 15080.33000 2020-01-01 2020-01-02 2020-01-01 00:12:47 2020-01-02 03:41:08 2020-01-01 00:12:47.000 2020-01-02 03:41:08.000 767 99668 50217.5 5021750 767 99668 50217.5 5021750 -32403 32735 4997.66 499766 -128 123 -4.58 -458 -768 100 10758 99669 2.3063 299.3063 150.8063 15080.63063 2.3063 299.3063 150.8063 15080.6305 2.30630 299.30630 150.80630000000016 15080.63000 2020-01-01 2020-01-02 2020-01-01 00:12:48 2020-01-02 03:41:09 2020-01-01 00:12:48.000 2020-01-02 03:41:09.000 768 99669 50218.5 5021850 768 99669 50218.5 5021850 -32402 32736 4998.66 499866 -127 124 -3.58 -358 -769 100 10759 99670 2.3093 299.3093 150.8093 15080.93093 2.3093 299.3093 150.8093 15080.93084 2.30930 299.30930 150.8093000000002 15080.93000 2020-01-01 2020-01-02 2020-01-01 00:12:49 2020-01-02 03:41:10 2020-01-01 00:12:49.000 2020-01-02 03:41:10.000 769 99670 50219.5 5021950 769 99670 50219.5 5021950 -32401 32737 4999.66 499966 -126 125 -2.58 -258 -77 102 10067 99977 0.23123 300.23123 150.23123 15173.35435 0.23123 300.23123 150.23123 15173.35439 0.23123 300.23123 150.23122999999993 15173.35423 2020-01-01 2020-01-02 2020-01-01 00:01:17 2020-01-02 03:46:17 2020-01-01 00:01:17.000 2020-01-02 03:46:17.000 77 99977 50027 5052727 77 99977 50027 5052727 -32492 32443 4606.009900990099 465207 -125 126 -1.99009900990099 -201 -770 100 10760 99671 2.31231 299.31231 150.81231 15081.23123 2.31231 299.31232 150.81231 15081.23144 2.31231 299.31231 150.81230999999988 15081.23100 2020-01-01 2020-01-02 2020-01-01 00:12:50 2020-01-02 03:41:11 2020-01-01 00:12:50.000 2020-01-02 03:41:11.000 770 99671 50220.5 5022050 770 99671 50220.5 5022050 -32400 32738 5000.66 500066 -125 126 -1.58 -158 +762 100 10752 99663 2.28828 299.28828 150.78828 15078.82882 2.28828 299.2883 150.78828 15078.82889 2.28828 299.28828 150.78828 15078.82800 2020-01-01 2020-01-02 2020-01-01 00:12:42 2020-01-02 03:41:03 2020-01-01 00:12:42.000 2020-01-02 03:41:03.000 762 99663 50212.5 5021250 762 99663 50212.5 5021250 -32408 32730 4992.66 499266 -127 125 -1.9 -190 +763 100 10753 99664 2.29129 299.29129 150.79129 15079.12912 2.29129 299.2913 150.79129 15079.12904 2.29129 299.29129 150.79128999999998 15079.12900 2020-01-01 2020-01-02 2020-01-01 00:12:43 2020-01-02 03:41:04 2020-01-01 00:12:43.000 2020-01-02 03:41:04.000 763 99664 50213.5 5021350 763 99664 50213.5 5021350 -32407 32731 4993.66 499366 -126 126 -0.9 -90 +764 100 10754 99665 2.29429 299.29429 150.79429 15079.42942 2.29429 299.29428 150.79429 15079.42933 2.29429 299.29429 150.7942899999999 15079.42900 2020-01-01 2020-01-02 2020-01-01 00:12:44 2020-01-02 03:41:05 2020-01-01 00:12:44.000 2020-01-02 03:41:05.000 764 99665 50214.5 5021450 764 99665 50214.5 5021450 -32406 32732 4994.66 499466 -125 127 0.1 10 +765 100 10755 99666 2.29729 299.29729 150.79729 15079.72972 2.29729 299.2973 150.79729 15079.72996 2.29729 299.29729 150.79729000000015 15079.72900 2020-01-01 2020-01-02 2020-01-01 00:12:45 2020-01-02 03:41:06 2020-01-01 00:12:45.000 2020-01-02 03:41:06.000 765 99666 50215.5 5021550 765 99666 50215.5 5021550 -32405 32733 4995.66 499566 -128 127 -1.46 -146 +766 100 10756 99667 2.3003 299.3003 150.8003 15080.03003 2.3003 299.3003 150.80029 15080.02961 2.30030 299.30030 150.80030000000002 15080.03000 2020-01-01 2020-01-02 2020-01-01 00:12:46 2020-01-02 03:41:07 2020-01-01 00:12:46.000 2020-01-02 03:41:07.000 766 99667 50216.5 5021650 766 99667 50216.5 5021650 -32404 32734 4996.66 499666 -128 127 -3.02 -302 +767 100 10757 99668 2.3033 299.3033 150.8033 15080.33033 2.3033 299.3033 150.8033 15080.33036 2.30330 299.30330 150.80329999999987 15080.33000 2020-01-01 2020-01-02 2020-01-01 00:12:47 2020-01-02 03:41:08 2020-01-01 00:12:47.000 2020-01-02 03:41:08.000 767 99668 50217.5 5021750 767 99668 50217.5 5021750 -32403 32735 4997.66 499766 -128 123 -4.58 -458 +768 100 10758 99669 2.3063 299.3063 150.8063 15080.63063 2.3063 299.3063 150.8063 15080.6305 2.30630 299.30630 150.8063000000001 15080.63000 2020-01-01 2020-01-02 2020-01-01 00:12:48 2020-01-02 03:41:09 2020-01-01 00:12:48.000 2020-01-02 03:41:09.000 768 99669 50218.5 5021850 768 99669 50218.5 5021850 -32402 32736 4998.66 499866 -127 124 -3.58 -358 +769 100 10759 99670 2.3093 299.3093 150.8093 15080.93093 2.3093 299.3093 150.8093 15080.93084 2.30930 299.30930 150.80930000000004 15080.93000 2020-01-01 2020-01-02 2020-01-01 00:12:49 2020-01-02 03:41:10 2020-01-01 00:12:49.000 2020-01-02 03:41:10.000 769 99670 50219.5 5021950 769 99670 50219.5 5021950 -32401 32737 4999.66 499966 -126 125 -2.58 -258 +77 102 10067 99977 0.23123 300.23123 150.23123 15173.35435 0.23123 300.23123 150.23123 15173.35439 0.23123 300.23123 150.23122999999998 15173.35423 2020-01-01 2020-01-02 2020-01-01 00:01:17 2020-01-02 03:46:17 2020-01-01 00:01:17.000 2020-01-02 03:46:17.000 77 99977 50027 5052727 77 99977 50027 5052727 -32492 32443 4606.009900990099 465207 -125 126 -1.99009900990099 -201 +770 100 10760 99671 2.31231 299.31231 150.81231 15081.23123 2.31231 299.31232 150.81231 15081.23144 2.31231 299.31231 150.81230999999997 15081.23100 2020-01-01 2020-01-02 2020-01-01 00:12:50 2020-01-02 03:41:11 2020-01-01 00:12:50.000 2020-01-02 03:41:11.000 770 99671 50220.5 5022050 770 99671 50220.5 5022050 -32400 32738 5000.66 500066 -125 126 -1.58 -158 771 100 10761 99672 2.31531 299.31531 150.81531 15081.53153 2.31531 299.3153 150.81531 15081.53173 2.31531 299.31531 150.81530999999998 15081.53100 2020-01-01 2020-01-02 2020-01-01 00:12:51 2020-01-02 03:41:12 2020-01-01 00:12:51.000 2020-01-02 03:41:12.000 771 99672 50221.5 5022150 771 99672 50221.5 5022150 -32399 32739 5001.66 500166 -124 127 -0.58 -58 -772 100 10762 99673 2.31831 299.31831 150.81831 15081.83183 2.31831 299.31833 150.81831 15081.83183 2.31831 299.31831 150.81831000000005 15081.83100 2020-01-01 2020-01-02 2020-01-01 00:12:52 2020-01-02 03:41:13 2020-01-01 00:12:52.000 2020-01-02 03:41:13.000 772 99673 50222.5 5022250 772 99673 50222.5 5022250 -32398 32740 5002.66 500266 -128 127 -2.14 -214 -773 100 10763 99674 2.32132 299.32132 150.82132 15082.13213 2.32132 299.32132 150.82131 15082.13197 2.32132 299.32132 150.82131999999973 15082.13200 2020-01-01 2020-01-02 2020-01-01 00:12:53 2020-01-02 03:41:14 2020-01-01 00:12:53.000 2020-01-02 03:41:14.000 773 99674 50223.5 5022350 773 99674 50223.5 5022350 -32397 32741 5003.66 500366 -128 123 -3.7 -370 -774 100 10764 99675 2.32432 299.32432 150.82432 15082.43243 2.32432 299.3243 150.82432 15082.43231 2.32432 299.32432 150.82431999999983 15082.43200 2020-01-01 2020-01-02 2020-01-01 00:12:54 2020-01-02 03:41:15 2020-01-01 00:12:54.000 2020-01-02 03:41:15.000 774 99675 50224.5 5022450 774 99675 50224.5 5022450 -32396 32742 5004.66 500466 -127 124 -2.7 -270 -775 100 10765 99676 2.32732 299.32732 150.82732 15082.73273 2.32732 299.32733 150.82732 15082.73291 2.32732 299.32732 150.8273200000002 15082.73200 2020-01-01 2020-01-02 2020-01-01 00:12:55 2020-01-02 03:41:16 2020-01-01 00:12:55.000 2020-01-02 03:41:16.000 775 99676 50225.5 5022550 775 99676 50225.5 5022550 -32395 32743 5005.66 500566 -126 125 -1.7 -170 -776 100 10766 99677 2.33033 299.33033 150.83033 15083.03303 2.33033 299.33032 150.83033 15083.0332 2.33033 299.33033 150.8303300000001 15083.03300 2020-01-01 2020-01-02 2020-01-01 00:12:56 2020-01-02 03:41:17 2020-01-01 00:12:56.000 2020-01-02 03:41:17.000 776 99677 50226.5 5022650 776 99677 50226.5 5022650 -32394 32744 5006.66 500666 -125 126 -0.7 -70 -777 100 10767 99678 2.33333 299.33333 150.83333 15083.33333 2.33333 299.33334 150.83333 15083.3333 2.33333 299.33333 150.83333 15083.33300 2020-01-01 2020-01-02 2020-01-01 00:12:57 2020-01-02 03:41:18 2020-01-01 00:12:57.000 2020-01-02 03:41:18.000 777 99678 50227.5 5022750 777 99678 50227.5 5022750 -32393 32745 5007.66 500766 -124 127 0.3 30 +772 100 10762 99673 2.31831 299.31831 150.81831 15081.83183 2.31831 299.31833 150.81831 15081.83183 2.31831 299.31831 150.81831000000003 15081.83100 2020-01-01 2020-01-02 2020-01-01 00:12:52 2020-01-02 03:41:13 2020-01-01 00:12:52.000 2020-01-02 03:41:13.000 772 99673 50222.5 5022250 772 99673 50222.5 5022250 -32398 32740 5002.66 500266 -128 127 -2.14 -214 +773 100 10763 99674 2.32132 299.32132 150.82132 15082.13213 2.32132 299.32132 150.82131 15082.13197 2.32132 299.32132 150.8213199999999 15082.13200 2020-01-01 2020-01-02 2020-01-01 00:12:53 2020-01-02 03:41:14 2020-01-01 00:12:53.000 2020-01-02 03:41:14.000 773 99674 50223.5 5022350 773 99674 50223.5 5022350 -32397 32741 5003.66 500366 -128 123 -3.7 -370 +774 100 10764 99675 2.32432 299.32432 150.82432 15082.43243 2.32432 299.3243 150.82432 15082.43231 2.32432 299.32432 150.82431999999994 15082.43200 2020-01-01 2020-01-02 2020-01-01 00:12:54 2020-01-02 03:41:15 2020-01-01 00:12:54.000 2020-01-02 03:41:15.000 774 99675 50224.5 5022450 774 99675 50224.5 5022450 -32396 32742 5004.66 500466 -127 124 -2.7 -270 +775 100 10765 99676 2.32732 299.32732 150.82732 15082.73273 2.32732 299.32733 150.82732 15082.73291 2.32732 299.32732 150.8273200000001 15082.73200 2020-01-01 2020-01-02 2020-01-01 00:12:55 2020-01-02 03:41:16 2020-01-01 00:12:55.000 2020-01-02 03:41:16.000 775 99676 50225.5 5022550 775 99676 50225.5 5022550 -32395 32743 5005.66 500566 -126 125 -1.7 -170 +776 100 10766 99677 2.33033 299.33033 150.83033 15083.03303 2.33033 299.33032 150.83033 15083.0332 2.33033 299.33033 150.83033 15083.03300 2020-01-01 2020-01-02 2020-01-01 00:12:56 2020-01-02 03:41:17 2020-01-01 00:12:56.000 2020-01-02 03:41:17.000 776 99677 50226.5 5022650 776 99677 50226.5 5022650 -32394 32744 5006.66 500666 -125 126 -0.7 -70 +777 100 10767 99678 2.33333 299.33333 150.83333 15083.33333 2.33333 299.33334 150.83333 15083.3333 2.33333 299.33333 150.83333000000002 15083.33300 2020-01-01 2020-01-02 2020-01-01 00:12:57 2020-01-02 03:41:18 2020-01-01 00:12:57.000 2020-01-02 03:41:18.000 777 99678 50227.5 5022750 777 99678 50227.5 5022750 -32393 32745 5007.66 500766 -124 127 0.3 30 778 100 10768 99679 2.33633 299.33633 150.83633 15083.63363 2.33633 299.33633 150.83633 15083.63348 2.33633 299.33633 150.83633000000006 15083.63300 2020-01-01 2020-01-02 2020-01-01 00:12:58 2020-01-02 03:41:19 2020-01-01 00:12:58.000 2020-01-02 03:41:19.000 778 99679 50228.5 5022850 778 99679 50228.5 5022850 -32392 32746 5008.66 500866 -128 127 -1.26 -126 -779 100 10769 99680 2.33933 299.33933 150.83933 15083.93393 2.33933 299.33932 150.83933 15083.93378 2.33933 299.33933 150.8393300000001 15083.93300 2020-01-01 2020-01-02 2020-01-01 00:12:59 2020-01-02 03:41:20 2020-01-01 00:12:59.000 2020-01-02 03:41:20.000 779 99680 50229.5 5022950 779 99680 50229.5 5022950 -32391 32747 5009.66 500966 -128 123 -2.82 -282 +779 100 10769 99680 2.33933 299.33933 150.83933 15083.93393 2.33933 299.33932 150.83933 15083.93378 2.33933 299.33933 150.83933000000002 15083.93300 2020-01-01 2020-01-02 2020-01-01 00:12:59 2020-01-02 03:41:20 2020-01-01 00:12:59.000 2020-01-02 03:41:20.000 779 99680 50229.5 5022950 779 99680 50229.5 5022950 -32391 32747 5009.66 500966 -128 123 -2.82 -282 78 102 10068 99978 0.23423 300.23423 150.23423 15173.65765 0.23423 300.23422 150.23423 15173.65769 0.23423 300.23423 150.23423 15173.65723 2020-01-01 2020-01-02 2020-01-01 00:01:18 2020-01-02 03:46:18 2020-01-01 00:01:18.000 2020-01-02 03:46:18.000 78 99978 50028 5052828 78 99978 50028 5052828 -32491 32444 4607.009900990099 465308 -124 127 -0.9900990099009901 -100 -780 100 10770 99681 2.34234 299.34234 150.84234 15084.23423 2.34234 299.34235 150.84234 15084.23437 2.34234 299.34234 150.84233999999995 15084.23400 2020-01-01 2020-01-02 2020-01-01 00:13:00 2020-01-02 03:41:21 2020-01-01 00:13:00.000 2020-01-02 03:41:21.000 780 99681 50230.5 5023050 780 99681 50230.5 5023050 -32390 32748 5010.66 501066 -127 124 -1.82 -182 -781 100 10771 99682 2.34534 299.34534 150.84534 15084.53453 2.34534 299.34534 150.84534 15084.53467 2.34534 299.34534 150.84533999999994 15084.53400 2020-01-01 2020-01-02 2020-01-01 00:13:01 2020-01-02 03:41:22 2020-01-01 00:13:01.000 2020-01-02 03:41:22.000 781 99682 50231.5 5023150 781 99682 50231.5 5023150 -32389 32749 5011.66 501166 -126 125 -0.82 -82 -782 100 10772 99683 2.34834 299.34834 150.84834 15084.83483 2.34834 299.34836 150.84834 15084.83477 2.34834 299.34834 150.84834000000018 15084.83400 2020-01-01 2020-01-02 2020-01-01 00:13:02 2020-01-02 03:41:23 2020-01-01 00:13:02.000 2020-01-02 03:41:23.000 782 99683 50232.5 5023250 782 99683 50232.5 5023250 -32388 32750 5012.66 501266 -125 126 0.18 18 -783 100 10773 99684 2.35135 299.35135 150.85135 15085.13513 2.35135 299.35135 150.85134 15085.13495 2.35135 299.35135 150.85135000000005 15085.13500 2020-01-01 2020-01-02 2020-01-01 00:13:03 2020-01-02 03:41:24 2020-01-01 00:13:03.000 2020-01-02 03:41:24.000 783 99684 50233.5 5023350 783 99684 50233.5 5023350 -32387 32751 5013.66 501366 -124 127 1.18 118 -784 100 10774 99685 2.35435 299.35435 150.85435 15085.43543 2.35435 299.35434 150.85435 15085.43525 2.35435 299.35435 150.8543499999999 15085.43500 2020-01-01 2020-01-02 2020-01-01 00:13:04 2020-01-02 03:41:25 2020-01-01 00:13:04.000 2020-01-02 03:41:25.000 784 99685 50234.5 5023450 784 99685 50234.5 5023450 -32386 32752 5014.66 501466 -128 127 -0.38 -38 -785 100 10775 99686 2.35735 299.35735 150.85735 15085.73573 2.35735 299.35736 150.85736 15085.736 2.35735 299.35735 150.8573500000001 15085.73500 2020-01-01 2020-01-02 2020-01-01 00:13:05 2020-01-02 03:41:26 2020-01-01 00:13:05.000 2020-01-02 03:41:26.000 785 99686 50235.5 5023550 785 99686 50235.5 5023550 -32385 32753 5015.66 501566 -128 127 -1.94 -194 -786 100 10776 99687 2.36036 299.36036 150.86036 15086.03603 2.36036 299.36035 150.86036 15086.03614 2.36036 299.36036 150.86036000000001 15086.03600 2020-01-01 2020-01-02 2020-01-01 00:13:06 2020-01-02 03:41:27 2020-01-01 00:13:06.000 2020-01-02 03:41:27.000 786 99687 50236.5 5023650 786 99687 50236.5 5023650 -32384 32754 5016.66 501666 -128 124 -3.5 -350 -787 100 10777 99688 2.36336 299.36336 150.86336 15086.33633 2.36336 299.36337 150.86336 15086.33628 2.36336 299.36336 150.86335999999994 15086.33600 2020-01-01 2020-01-02 2020-01-01 00:13:07 2020-01-02 03:41:28 2020-01-01 00:13:07.000 2020-01-02 03:41:28.000 787 99688 50237.5 5023750 787 99688 50237.5 5023750 -32383 32755 5017.66 501766 -127 125 -2.5 -250 +780 100 10770 99681 2.34234 299.34234 150.84234 15084.23423 2.34234 299.34235 150.84234 15084.23437 2.34234 299.34234 150.84233999999984 15084.23400 2020-01-01 2020-01-02 2020-01-01 00:13:00 2020-01-02 03:41:21 2020-01-01 00:13:00.000 2020-01-02 03:41:21.000 780 99681 50230.5 5023050 780 99681 50230.5 5023050 -32390 32748 5010.66 501066 -127 124 -1.82 -182 +781 100 10771 99682 2.34534 299.34534 150.84534 15084.53453 2.34534 299.34534 150.84534 15084.53467 2.34534 299.34534 150.84533999999988 15084.53400 2020-01-01 2020-01-02 2020-01-01 00:13:01 2020-01-02 03:41:22 2020-01-01 00:13:01.000 2020-01-02 03:41:22.000 781 99682 50231.5 5023150 781 99682 50231.5 5023150 -32389 32749 5011.66 501166 -126 125 -0.82 -82 +782 100 10772 99683 2.34834 299.34834 150.84834 15084.83483 2.34834 299.34836 150.84834 15084.83477 2.34834 299.34834 150.84834000000006 15084.83400 2020-01-01 2020-01-02 2020-01-01 00:13:02 2020-01-02 03:41:23 2020-01-01 00:13:02.000 2020-01-02 03:41:23.000 782 99683 50232.5 5023250 782 99683 50232.5 5023250 -32388 32750 5012.66 501266 -125 126 0.18 18 +783 100 10773 99684 2.35135 299.35135 150.85135 15085.13513 2.35135 299.35135 150.85134 15085.13495 2.35135 299.35135 150.85135000000022 15085.13500 2020-01-01 2020-01-02 2020-01-01 00:13:03 2020-01-02 03:41:24 2020-01-01 00:13:03.000 2020-01-02 03:41:24.000 783 99684 50233.5 5023350 783 99684 50233.5 5023350 -32387 32751 5013.66 501366 -124 127 1.18 118 +784 100 10774 99685 2.35435 299.35435 150.85435 15085.43543 2.35435 299.35434 150.85435 15085.43525 2.35435 299.35435 150.85434999999973 15085.43500 2020-01-01 2020-01-02 2020-01-01 00:13:04 2020-01-02 03:41:25 2020-01-01 00:13:04.000 2020-01-02 03:41:25.000 784 99685 50234.5 5023450 784 99685 50234.5 5023450 -32386 32752 5014.66 501466 -128 127 -0.38 -38 +785 100 10775 99686 2.35735 299.35735 150.85735 15085.73573 2.35735 299.35736 150.85736 15085.736 2.35735 299.35735 150.8573500000002 15085.73500 2020-01-01 2020-01-02 2020-01-01 00:13:05 2020-01-02 03:41:26 2020-01-01 00:13:05.000 2020-01-02 03:41:26.000 785 99686 50235.5 5023550 785 99686 50235.5 5023550 -32385 32753 5015.66 501566 -128 127 -1.94 -194 +786 100 10776 99687 2.36036 299.36036 150.86036 15086.03603 2.36036 299.36035 150.86036 15086.03614 2.36036 299.36036 150.86036000000007 15086.03600 2020-01-01 2020-01-02 2020-01-01 00:13:06 2020-01-02 03:41:27 2020-01-01 00:13:06.000 2020-01-02 03:41:27.000 786 99687 50236.5 5023650 786 99687 50236.5 5023650 -32384 32754 5016.66 501666 -128 124 -3.5 -350 +787 100 10777 99688 2.36336 299.36336 150.86336 15086.33633 2.36336 299.36337 150.86336 15086.33628 2.36336 299.36336 150.8633599999999 15086.33600 2020-01-01 2020-01-02 2020-01-01 00:13:07 2020-01-02 03:41:28 2020-01-01 00:13:07.000 2020-01-02 03:41:28.000 787 99688 50237.5 5023750 787 99688 50237.5 5023750 -32383 32755 5017.66 501766 -127 125 -2.5 -250 788 100 10778 99689 2.36636 299.36636 150.86636 15086.63663 2.36636 299.36636 150.86636 15086.63641 2.36636 299.36636 150.86636 15086.63600 2020-01-01 2020-01-02 2020-01-01 00:13:08 2020-01-02 03:41:29 2020-01-01 00:13:08.000 2020-01-02 03:41:29.000 788 99689 50238.5 5023850 788 99689 50238.5 5023850 -32382 32756 5018.66 501866 -126 126 -1.5 -150 -789 100 10779 99690 2.36936 299.36936 150.86936 15086.93693 2.36936 299.36935 150.86936 15086.93672 2.36936 299.36936 150.86936000000003 15086.93600 2020-01-01 2020-01-02 2020-01-01 00:13:09 2020-01-02 03:41:30 2020-01-01 00:13:09.000 2020-01-02 03:41:30.000 789 99690 50239.5 5023950 789 99690 50239.5 5023950 -32381 32757 5019.66 501966 -125 127 -0.5 -50 -79 102 10069 99979 0.23723 300.23723 150.23723 15173.96096 0.23723 300.23724 150.23724 15173.96129 0.23723 300.23723 150.23723000000007 15173.96023 2020-01-01 2020-01-02 2020-01-01 00:01:19 2020-01-02 03:46:19 2020-01-01 00:01:19.000 2020-01-02 03:46:19.000 79 99979 50029 5052929 79 99979 50029 5052929 -32490 32445 4608.009900990099 465409 -128 127 -2.5247524752475248 -255 -790 100 10780 99691 2.37237 299.37237 150.87237 15087.23723 2.37237 299.37238 150.87237 15087.23747 2.37237 299.37237 150.87236999999993 15087.23700 2020-01-01 2020-01-02 2020-01-01 00:13:10 2020-01-02 03:41:31 2020-01-01 00:13:10.000 2020-01-02 03:41:31.000 790 99691 50240.5 5024050 790 99691 50240.5 5024050 -32380 32758 5020.66 502066 -128 127 -2.06 -206 -791 100 10781 99692 2.37537 299.37537 150.87537 15087.53753 2.37537 299.37537 150.87537 15087.53761 2.37537 299.37537 150.87536999999992 15087.53700 2020-01-01 2020-01-02 2020-01-01 00:13:11 2020-01-02 03:41:32 2020-01-01 00:13:11.000 2020-01-02 03:41:32.000 791 99692 50241.5 5024150 791 99692 50241.5 5024150 -32379 32759 5021.66 502166 -128 127 -3.62 -362 -792 100 10782 99693 2.37837 299.37837 150.87837 15087.83783 2.37837 299.3784 150.87837 15087.83775 2.37837 299.37837 150.87837000000007 15087.83700 2020-01-01 2020-01-02 2020-01-01 00:13:12 2020-01-02 03:41:33 2020-01-01 00:13:12.000 2020-01-02 03:41:33.000 792 99693 50242.5 5024250 792 99693 50242.5 5024250 -32378 32760 5022.66 502266 -128 123 -5.18 -518 -793 100 10783 99694 2.38138 299.38138 150.88138 15088.13813 2.38138 299.38138 150.88137 15088.13789 2.38138 299.38138 150.88138 15088.13800 2020-01-01 2020-01-02 2020-01-01 00:13:13 2020-01-02 03:41:34 2020-01-01 00:13:13.000 2020-01-02 03:41:34.000 793 99694 50243.5 5024350 793 99694 50243.5 5024350 -32377 32761 5023.66 502366 -127 124 -4.18 -418 +789 100 10779 99690 2.36936 299.36936 150.86936 15086.93693 2.36936 299.36935 150.86936 15086.93672 2.36936 299.36936 150.86936000000009 15086.93600 2020-01-01 2020-01-02 2020-01-01 00:13:09 2020-01-02 03:41:30 2020-01-01 00:13:09.000 2020-01-02 03:41:30.000 789 99690 50239.5 5023950 789 99690 50239.5 5023950 -32381 32757 5019.66 501966 -125 127 -0.5 -50 +79 102 10069 99979 0.23723 300.23723 150.23723 15173.96096 0.23723 300.23724 150.23724 15173.96129 0.23723 300.23723 150.23723000000012 15173.96023 2020-01-01 2020-01-02 2020-01-01 00:01:19 2020-01-02 03:46:19 2020-01-01 00:01:19.000 2020-01-02 03:46:19.000 79 99979 50029 5052929 79 99979 50029 5052929 -32490 32445 4608.009900990099 465409 -128 127 -2.5247524752475248 -255 +790 100 10780 99691 2.37237 299.37237 150.87237 15087.23723 2.37237 299.37238 150.87237 15087.23747 2.37237 299.37237 150.87236999999973 15087.23700 2020-01-01 2020-01-02 2020-01-01 00:13:10 2020-01-02 03:41:31 2020-01-01 00:13:10.000 2020-01-02 03:41:31.000 790 99691 50240.5 5024050 790 99691 50240.5 5024050 -32380 32758 5020.66 502066 -128 127 -2.06 -206 +791 100 10781 99692 2.37537 299.37537 150.87537 15087.53753 2.37537 299.37537 150.87537 15087.53761 2.37537 299.37537 150.87536999999983 15087.53700 2020-01-01 2020-01-02 2020-01-01 00:13:11 2020-01-02 03:41:32 2020-01-01 00:13:11.000 2020-01-02 03:41:32.000 791 99692 50241.5 5024150 791 99692 50241.5 5024150 -32379 32759 5021.66 502166 -128 127 -3.62 -362 +792 100 10782 99693 2.37837 299.37837 150.87837 15087.83783 2.37837 299.3784 150.87837 15087.83775 2.37837 299.37837 150.87837000000025 15087.83700 2020-01-01 2020-01-02 2020-01-01 00:13:12 2020-01-02 03:41:33 2020-01-01 00:13:12.000 2020-01-02 03:41:33.000 792 99693 50242.5 5024250 792 99693 50242.5 5024250 -32378 32760 5022.66 502266 -128 123 -5.18 -518 +793 100 10783 99694 2.38138 299.38138 150.88138 15088.13813 2.38138 299.38138 150.88137 15088.13789 2.38138 299.38138 150.88138000000012 15088.13800 2020-01-01 2020-01-02 2020-01-01 00:13:13 2020-01-02 03:41:34 2020-01-01 00:13:13.000 2020-01-02 03:41:34.000 793 99694 50243.5 5024350 793 99694 50243.5 5024350 -32377 32761 5023.66 502366 -127 124 -4.18 -418 794 100 10784 99695 2.38438 299.38438 150.88438 15088.43843 2.38438 299.3844 150.88438 15088.43864 2.38438 299.38438 150.88438000000002 15088.43800 2020-01-01 2020-01-02 2020-01-01 00:13:14 2020-01-02 03:41:35 2020-01-01 00:13:14.000 2020-01-02 03:41:35.000 794 99695 50244.5 5024450 794 99695 50244.5 5024450 -32376 32762 5024.66 502466 -126 125 -3.18 -318 -795 100 10785 99696 2.38738 299.38738 150.88738 15088.73873 2.38738 299.3874 150.88738 15088.73894 2.38738 299.38738 150.88738000000006 15088.73800 2020-01-01 2020-01-02 2020-01-01 00:13:15 2020-01-02 03:41:36 2020-01-01 00:13:15.000 2020-01-02 03:41:36.000 795 99696 50245.5 5024550 795 99696 50245.5 5024550 -32375 32763 5025.66 502566 -125 126 -2.18 -218 +795 100 10785 99696 2.38738 299.38738 150.88738 15088.73873 2.38738 299.3874 150.88738 15088.73894 2.38738 299.38738 150.8873800000001 15088.73800 2020-01-01 2020-01-02 2020-01-01 00:13:15 2020-01-02 03:41:36 2020-01-01 00:13:15.000 2020-01-02 03:41:36.000 795 99696 50245.5 5024550 795 99696 50245.5 5024550 -32375 32763 5025.66 502566 -125 126 -2.18 -218 796 100 10786 99697 2.39039 299.39039 150.89039 15089.03903 2.39039 299.39038 150.89039 15089.03908 2.39039 299.39039 150.89038999999997 15089.03900 2020-01-01 2020-01-02 2020-01-01 00:13:16 2020-01-02 03:41:37 2020-01-01 00:13:16.000 2020-01-02 03:41:37.000 796 99697 50246.5 5024650 796 99697 50246.5 5024650 -32374 32764 5026.66 502666 -124 127 -1.18 -118 -797 100 10787 99698 2.39339 299.39339 150.89339 15089.33933 2.39339 299.3934 150.89339 15089.33921 2.39339 299.39339 150.89338999999998 15089.33900 2020-01-01 2020-01-02 2020-01-01 00:13:17 2020-01-02 03:41:38 2020-01-01 00:13:17.000 2020-01-02 03:41:38.000 797 99698 50247.5 5024750 797 99698 50247.5 5024750 -32373 32765 5027.66 502766 -128 127 -2.74 -274 +797 100 10787 99698 2.39339 299.39339 150.89339 15089.33933 2.39339 299.3934 150.89339 15089.33921 2.39339 299.39339 150.89338999999987 15089.33900 2020-01-01 2020-01-02 2020-01-01 00:13:17 2020-01-02 03:41:38 2020-01-01 00:13:17.000 2020-01-02 03:41:38.000 797 99698 50247.5 5024750 797 99698 50247.5 5024750 -32373 32765 5027.66 502766 -128 127 -2.74 -274 798 100 10788 99699 2.39639 299.39639 150.89639 15089.63963 2.39639 299.3964 150.89639 15089.63936 2.39639 299.39639 150.8963899999999 15089.63900 2020-01-01 2020-01-02 2020-01-01 00:13:18 2020-01-02 03:41:39 2020-01-01 00:13:18.000 2020-01-02 03:41:39.000 798 99699 50248.5 5024850 798 99699 50248.5 5024850 -32372 32766 5028.66 502866 -128 123 -4.3 -430 799 100 10789 99700 2.39939 299.39939 150.89939 15089.93993 2.39939 299.3994 150.8994 15089.94011 2.39939 299.39939 150.89938999999998 15089.93900 2020-01-01 2020-01-02 2020-01-01 00:13:19 2020-01-02 03:41:40 2020-01-01 00:13:19.000 2020-01-02 03:41:40.000 799 99700 50249.5 5024950 799 99700 50249.5 5024950 -32371 32767 5029.66 502966 -127 124 -3.3 -330 -8 102 1007 9998 0.02402 300.02402 150.02402 15152.42642 0.02402 300.02402 150.02402 15152.42607 0.02402 300.02402 150.02402000000004 15152.42602 2020-01-01 2020-01-02 2020-01-01 00:00:08 2020-01-02 03:45:08 2020-01-01 00:00:08.000 2020-01-02 03:45:08.000 8 99908 49958 5045758 8 99908 49958 5045758 -32561 32374 4537.009900990099 458238 -125 126 -0.019801980198019802 -2 -80 102 10070 99980 0.24024 300.24024 150.24024 15174.26426 0.24024 300.24023 150.24023 15174.26397 0.24024 300.24024 150.24023999999994 15174.26424 2020-01-01 2020-01-02 2020-01-01 00:01:20 2020-01-02 03:46:20 2020-01-01 00:01:20.000 2020-01-02 03:46:20.000 80 99980 50030 5053030 80 99980 50030 5053030 -32489 32446 4609.009900990099 465510 -128 123 -4.0594059405940595 -410 -800 100 10790 99701 2.4024 299.4024 150.9024 15090.24024 2.4024 299.4024 150.9024 15090.24041 2.40240 299.40240 150.90240000000006 15090.24000 2020-01-01 2020-01-02 2020-01-01 00:13:20 2020-01-02 03:41:41 2020-01-01 00:13:20.000 2020-01-02 03:41:41.000 800 99701 50250.5 5025050 800 99701 50250.5 5025050 -32768 32167 4375.3 437530 -126 125 -2.3 -230 -801 100 10791 99702 2.4054 299.4054 150.9054 15090.54054 2.4054 299.4054 150.9054 15090.54058 2.40540 299.40540 150.90539999999993 15090.54000 2020-01-01 2020-01-02 2020-01-01 00:13:21 2020-01-02 03:41:42 2020-01-01 00:13:21.000 2020-01-02 03:41:42.000 801 99702 50251.5 5025150 801 99702 50251.5 5025150 -32767 32168 4376.3 437630 -125 126 -1.3 -130 -802 100 10792 99703 2.4084 299.4084 150.9084 15090.84084 2.4084 299.40842 150.9084 15090.84069 2.40840 299.40840 150.90840000000003 15090.84000 2020-01-01 2020-01-02 2020-01-01 00:13:22 2020-01-02 03:41:43 2020-01-01 00:13:22.000 2020-01-02 03:41:43.000 802 99703 50252.5 5025250 802 99703 50252.5 5025250 -32766 32169 4377.3 437730 -124 127 -0.3 -30 -803 100 10793 99704 2.41141 299.41141 150.91141 15091.14114 2.41141 299.4114 150.9114 15091.14098 2.41141 299.41141 150.91141000000005 15091.14100 2020-01-01 2020-01-02 2020-01-01 00:13:23 2020-01-02 03:41:44 2020-01-01 00:13:23.000 2020-01-02 03:41:44.000 803 99704 50253.5 5025350 803 99704 50253.5 5025350 -32765 32170 4378.3 437830 -128 127 -1.86 -186 -804 100 10794 99705 2.41441 299.41441 150.91441 15091.44144 2.41441 299.41443 150.91441 15091.44158 2.41441 299.41441 150.91440999999998 15091.44100 2020-01-01 2020-01-02 2020-01-01 00:13:24 2020-01-02 03:41:45 2020-01-01 00:13:24.000 2020-01-02 03:41:45.000 804 99705 50254.5 5025450 804 99705 50254.5 5025450 -32764 32171 4379.3 437930 -128 123 -3.42 -342 -805 100 10795 99706 2.41741 299.41741 150.91741 15091.74174 2.41741 299.41742 150.91741 15091.74188 2.41741 299.41741 150.91741 15091.74100 2020-01-01 2020-01-02 2020-01-01 00:13:25 2020-01-02 03:41:46 2020-01-01 00:13:25.000 2020-01-02 03:41:46.000 805 99706 50255.5 5025550 805 99706 50255.5 5025550 -32763 32172 4380.3 438030 -127 124 -2.42 -242 -806 100 10796 99707 2.42042 299.42042 150.92042 15092.04204 2.42042 299.4204 150.92042 15092.04205 2.42042 299.42042 150.9204200000001 15092.04200 2020-01-01 2020-01-02 2020-01-01 00:13:26 2020-01-02 03:41:47 2020-01-01 00:13:26.000 2020-01-02 03:41:47.000 806 99707 50256.5 5025650 806 99707 50256.5 5025650 -32762 32173 4381.3 438130 -126 125 -1.42 -142 -807 100 10797 99708 2.42342 299.42342 150.92342 15092.34234 2.42342 299.42343 150.92342 15092.34216 2.42342 299.42342 150.92341999999994 15092.34200 2020-01-01 2020-01-02 2020-01-01 00:13:27 2020-01-02 03:41:48 2020-01-01 00:13:27.000 2020-01-02 03:41:48.000 807 99708 50257.5 5025750 807 99708 50257.5 5025750 -32761 32174 4382.3 438230 -125 126 -0.42 -42 -808 100 10798 99709 2.42642 299.42642 150.92642 15092.64264 2.42642 299.42642 150.92642 15092.64245 2.42642 299.42642 150.9264199999999 15092.64200 2020-01-01 2020-01-02 2020-01-01 00:13:28 2020-01-02 03:41:49 2020-01-01 00:13:28.000 2020-01-02 03:41:49.000 808 99709 50258.5 5025850 808 99709 50258.5 5025850 -32760 32175 4383.3 438330 -124 127 0.58 58 -809 100 10799 99710 2.42942 299.42942 150.92942 15092.94294 2.42942 299.42944 150.92943 15092.94305 2.42942 299.42942 150.9294200000001 15092.94200 2020-01-01 2020-01-02 2020-01-01 00:13:29 2020-01-02 03:41:50 2020-01-01 00:13:29.000 2020-01-02 03:41:50.000 809 99710 50259.5 5025950 809 99710 50259.5 5025950 -32759 32176 4384.3 438430 -128 127 -0.98 -98 -81 102 10071 99981 0.24324 300.24324 150.24324 15174.56756 0.24324 300.24326 150.24324 15174.56758 0.24324 300.24324 150.2432399999999 15174.56724 2020-01-01 2020-01-02 2020-01-01 00:01:21 2020-01-02 03:46:21 2020-01-01 00:01:21.000 2020-01-02 03:46:21.000 81 99981 50031 5053131 81 99981 50031 5053131 -32488 32447 4610.009900990099 465611 -127 124 -3.0594059405940595 -309 -810 100 10800 99711 2.43243 299.43243 150.93243 15093.24324 2.43243 299.43243 150.93243 15093.24338 2.43243 299.43243 150.93243000000004 15093.24300 2020-01-01 2020-01-02 2020-01-01 00:13:30 2020-01-02 03:41:51 2020-01-01 00:13:30.000 2020-01-02 03:41:51.000 810 99711 50260.5 5026050 810 99711 50260.5 5026050 -32758 32177 4385.3 438530 -128 127 -2.54 -254 -811 100 10801 99712 2.43543 299.43543 150.93543 15093.54354 2.43543 299.43542 150.93543 15093.54353 2.43543 299.43543 150.93542999999983 15093.54300 2020-01-01 2020-01-02 2020-01-01 00:13:31 2020-01-02 03:41:52 2020-01-01 00:13:31.000 2020-01-02 03:41:52.000 811 99712 50261.5 5026150 811 99712 50261.5 5026150 -32757 32178 4386.3 438630 -128 124 -4.1 -410 -812 100 10802 99713 2.43843 299.43843 150.93843 15093.84384 2.43843 299.43845 150.93844 15093.84428 2.43843 299.43843 150.93843000000007 15093.84300 2020-01-01 2020-01-02 2020-01-01 00:13:32 2020-01-02 03:41:53 2020-01-01 00:13:32.000 2020-01-02 03:41:53.000 812 99713 50262.5 5026250 812 99713 50262.5 5026250 -32756 32179 4387.3 438730 -127 125 -3.1 -310 -813 100 10803 99714 2.44144 299.44144 150.94144 15094.14414 2.44144 299.44144 150.94143 15094.14392 2.44144 299.44144 150.94143999999997 15094.14400 2020-01-01 2020-01-02 2020-01-01 00:13:33 2020-01-02 03:41:54 2020-01-01 00:13:33.000 2020-01-02 03:41:54.000 813 99714 50263.5 5026350 813 99714 50263.5 5026350 -32755 32180 4388.3 438830 -126 126 -2.1 -210 -814 100 10804 99715 2.44444 299.44444 150.94444 15094.44444 2.44444 299.44446 150.94444 15094.44452 2.44444 299.44444 150.94444 15094.44400 2020-01-01 2020-01-02 2020-01-01 00:13:34 2020-01-02 03:41:55 2020-01-01 00:13:34.000 2020-01-02 03:41:55.000 814 99715 50264.5 5026450 814 99715 50264.5 5026450 -32754 32181 4389.3 438930 -125 127 -1.1 -110 +8 102 1007 9998 0.02402 300.02402 150.02402 15152.42642 0.02402 300.02402 150.02402 15152.42607 0.02402 300.02402 150.02402000000015 15152.42602 2020-01-01 2020-01-02 2020-01-01 00:00:08 2020-01-02 03:45:08 2020-01-01 00:00:08.000 2020-01-02 03:45:08.000 8 99908 49958 5045758 8 99908 49958 5045758 -32561 32374 4537.009900990099 458238 -125 126 -0.019801980198019802 -2 +80 102 10070 99980 0.24024 300.24024 150.24024 15174.26426 0.24024 300.24023 150.24023 15174.26397 0.24024 300.24024 150.24023999999977 15174.26424 2020-01-01 2020-01-02 2020-01-01 00:01:20 2020-01-02 03:46:20 2020-01-01 00:01:20.000 2020-01-02 03:46:20.000 80 99980 50030 5053030 80 99980 50030 5053030 -32489 32446 4609.009900990099 465510 -128 123 -4.0594059405940595 -410 +800 100 10790 99701 2.4024 299.4024 150.9024 15090.24024 2.4024 299.4024 150.9024 15090.24041 2.40240 299.40240 150.90240000000026 15090.24000 2020-01-01 2020-01-02 2020-01-01 00:13:20 2020-01-02 03:41:41 2020-01-01 00:13:20.000 2020-01-02 03:41:41.000 800 99701 50250.5 5025050 800 99701 50250.5 5025050 -32768 32167 4375.3 437530 -126 125 -2.3 -230 +801 100 10791 99702 2.4054 299.4054 150.9054 15090.54054 2.4054 299.4054 150.9054 15090.54058 2.40540 299.40540 150.90539999999976 15090.54000 2020-01-01 2020-01-02 2020-01-01 00:13:21 2020-01-02 03:41:42 2020-01-01 00:13:21.000 2020-01-02 03:41:42.000 801 99702 50251.5 5025150 801 99702 50251.5 5025150 -32767 32168 4376.3 437630 -125 126 -1.3 -130 +802 100 10792 99703 2.4084 299.4084 150.9084 15090.84084 2.4084 299.40842 150.9084 15090.84069 2.40840 299.40840 150.90840000000014 15090.84000 2020-01-01 2020-01-02 2020-01-01 00:13:22 2020-01-02 03:41:43 2020-01-01 00:13:22.000 2020-01-02 03:41:43.000 802 99703 50252.5 5025250 802 99703 50252.5 5025250 -32766 32169 4377.3 437730 -124 127 -0.3 -30 +803 100 10793 99704 2.41141 299.41141 150.91141 15091.14114 2.41141 299.4114 150.9114 15091.14098 2.41141 299.41141 150.9114100000001 15091.14100 2020-01-01 2020-01-02 2020-01-01 00:13:23 2020-01-02 03:41:44 2020-01-01 00:13:23.000 2020-01-02 03:41:44.000 803 99704 50253.5 5025350 803 99704 50253.5 5025350 -32765 32170 4378.3 437830 -128 127 -1.86 -186 +804 100 10794 99705 2.41441 299.41441 150.91441 15091.44144 2.41441 299.41443 150.91441 15091.44158 2.41441 299.41441 150.91440999999992 15091.44100 2020-01-01 2020-01-02 2020-01-01 00:13:24 2020-01-02 03:41:45 2020-01-01 00:13:24.000 2020-01-02 03:41:45.000 804 99705 50254.5 5025450 804 99705 50254.5 5025450 -32764 32171 4379.3 437930 -128 123 -3.42 -342 +805 100 10795 99706 2.41741 299.41741 150.91741 15091.74174 2.41741 299.41742 150.91741 15091.74188 2.41741 299.41741 150.91741000000002 15091.74100 2020-01-01 2020-01-02 2020-01-01 00:13:25 2020-01-02 03:41:46 2020-01-01 00:13:25.000 2020-01-02 03:41:46.000 805 99706 50255.5 5025550 805 99706 50255.5 5025550 -32763 32172 4380.3 438030 -127 124 -2.42 -242 +806 100 10796 99707 2.42042 299.42042 150.92042 15092.04204 2.42042 299.4204 150.92042 15092.04205 2.42042 299.42042 150.92042000000026 15092.04200 2020-01-01 2020-01-02 2020-01-01 00:13:26 2020-01-02 03:41:47 2020-01-01 00:13:26.000 2020-01-02 03:41:47.000 806 99707 50256.5 5025650 806 99707 50256.5 5025650 -32762 32173 4381.3 438130 -126 125 -1.42 -142 +807 100 10797 99708 2.42342 299.42342 150.92342 15092.34234 2.42342 299.42343 150.92342 15092.34216 2.42342 299.42342 150.92341999999977 15092.34200 2020-01-01 2020-01-02 2020-01-01 00:13:27 2020-01-02 03:41:48 2020-01-01 00:13:27.000 2020-01-02 03:41:48.000 807 99708 50257.5 5025750 807 99708 50257.5 5025750 -32761 32174 4382.3 438230 -125 126 -0.42 -42 +808 100 10798 99709 2.42642 299.42642 150.92642 15092.64264 2.42642 299.42642 150.92642 15092.64245 2.42642 299.42642 150.9264199999998 15092.64200 2020-01-01 2020-01-02 2020-01-01 00:13:28 2020-01-02 03:41:49 2020-01-01 00:13:28.000 2020-01-02 03:41:49.000 808 99709 50258.5 5025850 808 99709 50258.5 5025850 -32760 32175 4383.3 438330 -124 127 0.58 58 +809 100 10799 99710 2.42942 299.42942 150.92942 15092.94294 2.42942 299.42944 150.92943 15092.94305 2.42942 299.42942 150.92942000000028 15092.94200 2020-01-01 2020-01-02 2020-01-01 00:13:29 2020-01-02 03:41:50 2020-01-01 00:13:29.000 2020-01-02 03:41:50.000 809 99710 50259.5 5025950 809 99710 50259.5 5025950 -32759 32176 4384.3 438430 -128 127 -0.98 -98 +81 102 10071 99981 0.24324 300.24324 150.24324 15174.56756 0.24324 300.24326 150.24324 15174.56758 0.24324 300.24324 150.24323999999982 15174.56724 2020-01-01 2020-01-02 2020-01-01 00:01:21 2020-01-02 03:46:21 2020-01-01 00:01:21.000 2020-01-02 03:46:21.000 81 99981 50031 5053131 81 99981 50031 5053131 -32488 32447 4610.009900990099 465611 -127 124 -3.0594059405940595 -309 +810 100 10800 99711 2.43243 299.43243 150.93243 15093.24324 2.43243 299.43243 150.93243 15093.24338 2.43243 299.43243 150.93243000000015 15093.24300 2020-01-01 2020-01-02 2020-01-01 00:13:30 2020-01-02 03:41:51 2020-01-01 00:13:30.000 2020-01-02 03:41:51.000 810 99711 50260.5 5026050 810 99711 50260.5 5026050 -32758 32177 4385.3 438530 -128 127 -2.54 -254 +811 100 10801 99712 2.43543 299.43543 150.93543 15093.54354 2.43543 299.43542 150.93543 15093.54353 2.43543 299.43543 150.93542999999966 15093.54300 2020-01-01 2020-01-02 2020-01-01 00:13:31 2020-01-02 03:41:52 2020-01-01 00:13:31.000 2020-01-02 03:41:52.000 811 99712 50261.5 5026150 811 99712 50261.5 5026150 -32757 32178 4386.3 438630 -128 124 -4.1 -410 +812 100 10802 99713 2.43843 299.43843 150.93843 15093.84384 2.43843 299.43845 150.93844 15093.84428 2.43843 299.43843 150.93843000000012 15093.84300 2020-01-01 2020-01-02 2020-01-01 00:13:32 2020-01-02 03:41:53 2020-01-01 00:13:32.000 2020-01-02 03:41:53.000 812 99713 50262.5 5026250 812 99713 50262.5 5026250 -32756 32179 4387.3 438730 -127 125 -3.1 -310 +813 100 10803 99714 2.44144 299.44144 150.94144 15094.14414 2.44144 299.44144 150.94143 15094.14392 2.44144 299.44144 150.94144 15094.14400 2020-01-01 2020-01-02 2020-01-01 00:13:33 2020-01-02 03:41:54 2020-01-01 00:13:33.000 2020-01-02 03:41:54.000 813 99714 50263.5 5026350 813 99714 50263.5 5026350 -32755 32180 4388.3 438830 -126 126 -2.1 -210 +814 100 10804 99715 2.44444 299.44444 150.94444 15094.44444 2.44444 299.44446 150.94444 15094.44452 2.44444 299.44444 150.9444399999999 15094.44400 2020-01-01 2020-01-02 2020-01-01 00:13:34 2020-01-02 03:41:55 2020-01-01 00:13:34.000 2020-01-02 03:41:55.000 814 99715 50264.5 5026450 814 99715 50264.5 5026450 -32754 32181 4389.3 438930 -125 127 -1.1 -110 815 100 10805 99716 2.44744 299.44744 150.94744 15094.74474 2.44744 299.44745 150.94744 15094.74485 2.44744 299.44744 150.94743999999994 15094.74400 2020-01-01 2020-01-02 2020-01-01 00:13:35 2020-01-02 03:41:56 2020-01-01 00:13:35.000 2020-01-02 03:41:56.000 815 99716 50265.5 5026550 815 99716 50265.5 5026550 -32753 32182 4390.3 439030 -128 127 -2.66 -266 -816 100 10806 99717 2.45045 299.45045 150.95045 15095.04504 2.45045 299.45044 150.95045 15095.045 2.45045 299.45045 150.95045000000005 15095.04500 2020-01-01 2020-01-02 2020-01-01 00:13:36 2020-01-02 03:41:57 2020-01-01 00:13:36.000 2020-01-02 03:41:57.000 816 99717 50266.5 5026650 816 99717 50266.5 5026650 -32752 32183 4391.3 439130 -128 127 -4.22 -422 -817 100 10807 99718 2.45345 299.45345 150.95345 15095.34534 2.45345 299.45346 150.95345 15095.34574 2.45345 299.45345 150.9534500000001 15095.34500 2020-01-01 2020-01-02 2020-01-01 00:13:37 2020-01-02 03:41:58 2020-01-01 00:13:37.000 2020-01-02 03:41:58.000 817 99718 50267.5 5026750 817 99718 50267.5 5026750 -32751 32184 4392.3 439230 -128 123 -5.78 -578 -818 100 10808 99719 2.45645 299.45645 150.95645 15095.64564 2.45645 299.45645 150.95645 15095.64539 2.45645 299.45645 150.9564499999999 15095.64500 2020-01-01 2020-01-02 2020-01-01 00:13:38 2020-01-02 03:41:59 2020-01-01 00:13:38.000 2020-01-02 03:41:59.000 818 99719 50268.5 5026850 818 99719 50268.5 5026850 -32750 32185 4393.3 439330 -127 124 -4.78 -478 -819 100 10809 99720 2.45945 299.45945 150.95945 15095.94594 2.45945 299.45947 150.95946 15095.94602 2.45945 299.45945 150.95945000000006 15095.94500 2020-01-01 2020-01-02 2020-01-01 00:13:39 2020-01-02 03:42:00 2020-01-01 00:13:39.000 2020-01-02 03:42:00.000 819 99720 50269.5 5026950 819 99720 50269.5 5026950 -32749 32186 4394.3 439430 -126 125 -3.78 -378 -82 102 10072 99982 0.24624 300.24624 150.24624 15174.87087 0.24624 300.24625 150.24624 15174.87088 0.24624 300.24624 150.2462400000001 15174.87024 2020-01-01 2020-01-02 2020-01-01 00:01:22 2020-01-02 03:46:22 2020-01-01 00:01:22.000 2020-01-02 03:46:22.000 82 99982 50032 5053232 82 99982 50032 5053232 -32487 32448 4611.009900990099 465712 -126 125 -2.0594059405940595 -208 -820 100 10810 99721 2.46246 299.46246 150.96246 15096.24624 2.46246 299.46246 150.96246 15096.24633 2.46246 299.46246 150.96246000000008 15096.24600 2020-01-01 2020-01-02 2020-01-01 00:13:40 2020-01-02 03:42:01 2020-01-01 00:13:40.000 2020-01-02 03:42:01.000 820 99721 50270.5 5027050 820 99721 50270.5 5027050 -32748 32187 4395.3 439530 -125 126 -2.78 -278 -821 100 10811 99722 2.46546 299.46546 150.96546 15096.54654 2.46546 299.46545 150.96546 15096.54646 2.46546 299.46546 150.96545999999998 15096.54600 2020-01-01 2020-01-02 2020-01-01 00:13:41 2020-01-02 03:42:02 2020-01-01 00:13:41.000 2020-01-02 03:42:02.000 821 99722 50271.5 5027150 821 99722 50271.5 5027150 -32747 32188 4396.3 439630 -124 127 -1.78 -178 +816 100 10806 99717 2.45045 299.45045 150.95045 15095.04504 2.45045 299.45044 150.95045 15095.045 2.45045 299.45045 150.95045000000016 15095.04500 2020-01-01 2020-01-02 2020-01-01 00:13:36 2020-01-02 03:41:57 2020-01-01 00:13:36.000 2020-01-02 03:41:57.000 816 99717 50266.5 5026650 816 99717 50266.5 5026650 -32752 32183 4391.3 439130 -128 127 -4.22 -422 +817 100 10807 99718 2.45345 299.45345 150.95345 15095.34534 2.45345 299.45346 150.95345 15095.34574 2.45345 299.45345 150.95345000000026 15095.34500 2020-01-01 2020-01-02 2020-01-01 00:13:37 2020-01-02 03:41:58 2020-01-01 00:13:37.000 2020-01-02 03:41:58.000 817 99718 50267.5 5026750 817 99718 50267.5 5026750 -32751 32184 4392.3 439230 -128 123 -5.78 -578 +818 100 10808 99719 2.45645 299.45645 150.95645 15095.64564 2.45645 299.45645 150.95645 15095.64539 2.45645 299.45645 150.9564499999998 15095.64500 2020-01-01 2020-01-02 2020-01-01 00:13:38 2020-01-02 03:41:59 2020-01-01 00:13:38.000 2020-01-02 03:41:59.000 818 99719 50268.5 5026850 818 99719 50268.5 5026850 -32750 32185 4393.3 439330 -127 124 -4.78 -478 +819 100 10809 99720 2.45945 299.45945 150.95945 15095.94594 2.45945 299.45947 150.95946 15095.94602 2.45945 299.45945 150.95945000000017 15095.94500 2020-01-01 2020-01-02 2020-01-01 00:13:39 2020-01-02 03:42:00 2020-01-01 00:13:39.000 2020-01-02 03:42:00.000 819 99720 50269.5 5026950 819 99720 50269.5 5026950 -32749 32186 4394.3 439430 -126 125 -3.78 -378 +82 102 10072 99982 0.24624 300.24624 150.24624 15174.87087 0.24624 300.24625 150.24624 15174.87088 0.24624 300.24624 150.24624000000028 15174.87024 2020-01-01 2020-01-02 2020-01-01 00:01:22 2020-01-02 03:46:22 2020-01-01 00:01:22.000 2020-01-02 03:46:22.000 82 99982 50032 5053232 82 99982 50032 5053232 -32487 32448 4611.009900990099 465712 -126 125 -2.0594059405940595 -208 +820 100 10810 99721 2.46246 299.46246 150.96246 15096.24624 2.46246 299.46246 150.96246 15096.24633 2.46246 299.46246 150.96246000000014 15096.24600 2020-01-01 2020-01-02 2020-01-01 00:13:40 2020-01-02 03:42:01 2020-01-01 00:13:40.000 2020-01-02 03:42:01.000 820 99721 50270.5 5027050 820 99721 50270.5 5027050 -32748 32187 4395.3 439530 -125 126 -2.78 -278 +821 100 10811 99722 2.46546 299.46546 150.96546 15096.54654 2.46546 299.46545 150.96546 15096.54646 2.46546 299.46546 150.96545999999995 15096.54600 2020-01-01 2020-01-02 2020-01-01 00:13:41 2020-01-02 03:42:02 2020-01-01 00:13:41.000 2020-01-02 03:42:02.000 821 99722 50271.5 5027150 821 99722 50271.5 5027150 -32747 32188 4396.3 439630 -124 127 -1.78 -178 822 100 10812 99723 2.46846 299.46846 150.96846 15096.84684 2.46846 299.46848 150.96847 15096.84721 2.46846 299.46846 150.96846000000002 15096.84600 2020-01-01 2020-01-02 2020-01-01 00:13:42 2020-01-02 03:42:03 2020-01-01 00:13:42.000 2020-01-02 03:42:03.000 822 99723 50272.5 5027250 822 99723 50272.5 5027250 -32746 32189 4397.3 439730 -128 127 -3.34 -334 -823 100 10813 99724 2.47147 299.47147 150.97147 15097.14714 2.47147 299.47147 150.97146 15097.14686 2.47147 299.47147 150.97147000000012 15097.14700 2020-01-01 2020-01-02 2020-01-01 00:13:43 2020-01-02 03:42:04 2020-01-01 00:13:43.000 2020-01-02 03:42:04.000 823 99724 50273.5 5027350 823 99724 50273.5 5027350 -32745 32190 4398.3 439830 -128 123 -4.9 -490 -824 100 10814 99725 2.47447 299.47447 150.97447 15097.44744 2.47447 299.4745 150.97447 15097.44749 2.47447 299.47447 150.97446999999997 15097.44700 2020-01-01 2020-01-02 2020-01-01 00:13:44 2020-01-02 03:42:05 2020-01-01 00:13:44.000 2020-01-02 03:42:05.000 824 99725 50274.5 5027450 824 99725 50274.5 5027450 -32744 32191 4399.3 439930 -127 124 -3.9 -390 -825 100 10815 99726 2.47747 299.47747 150.97747 15097.74774 2.47747 299.47748 150.97747 15097.74779 2.47747 299.47747 150.9774699999999 15097.74700 2020-01-01 2020-01-02 2020-01-01 00:13:45 2020-01-02 03:42:06 2020-01-01 00:13:45.000 2020-01-02 03:42:06.000 825 99726 50275.5 5027550 825 99726 50275.5 5027550 -32743 32192 4400.3 440030 -126 125 -2.9 -290 -826 100 10816 99727 2.48048 299.48048 150.98048 15098.04804 2.48048 299.48047 150.98048 15098.04809 2.48048 299.48048 150.98048000000009 15098.04800 2020-01-01 2020-01-02 2020-01-01 00:13:46 2020-01-02 03:42:07 2020-01-01 00:13:46.000 2020-01-02 03:42:07.000 826 99727 50276.5 5027650 826 99727 50276.5 5027650 -32742 32193 4401.3 440130 -125 126 -1.9 -190 -827 100 10817 99728 2.48348 299.48348 150.98348 15098.34834 2.48348 299.4835 150.98348 15098.34869 2.48348 299.48348 150.98348000000004 15098.34800 2020-01-01 2020-01-02 2020-01-01 00:13:47 2020-01-02 03:42:08 2020-01-01 00:13:47.000 2020-01-02 03:42:08.000 827 99728 50277.5 5027750 827 99728 50277.5 5027750 -32741 32194 4402.3 440230 -124 127 -0.9 -90 -828 100 10818 99729 2.48648 299.48648 150.98648 15098.64864 2.48648 299.48648 150.98648 15098.64837 2.48648 299.48648 150.98647999999986 15098.64800 2020-01-01 2020-01-02 2020-01-01 00:13:48 2020-01-02 03:42:09 2020-01-01 00:13:48.000 2020-01-02 03:42:09.000 828 99729 50278.5 5027850 828 99729 50278.5 5027850 -32740 32195 4403.3 440330 -128 127 -2.46 -246 -829 100 10819 99730 2.48948 299.48948 150.98948 15098.94894 2.48948 299.4895 150.98948 15098.94896 2.48948 299.48948 150.9894800000001 15098.94800 2020-01-01 2020-01-02 2020-01-01 00:13:49 2020-01-02 03:42:10 2020-01-01 00:13:49.000 2020-01-02 03:42:10.000 829 99730 50279.5 5027950 829 99730 50279.5 5027950 -32739 32196 4404.3 440430 -128 123 -4.02 -402 -83 102 10073 99983 0.24924 300.24924 150.24924 15175.17417 0.24924 300.24924 150.24924 15175.17417 0.24924 300.24924 150.24923999999996 15175.17324 2020-01-01 2020-01-02 2020-01-01 00:01:23 2020-01-02 03:46:23 2020-01-01 00:01:23.000 2020-01-02 03:46:23.000 83 99983 50033 5053333 83 99983 50033 5053333 -32486 32449 4612.009900990099 465813 -125 126 -1.0594059405940595 -107 -830 100 10820 99731 2.49249 299.49249 150.99249 15099.24924 2.49249 299.4925 150.99249 15099.24926 2.49249 299.49249 150.99249 15099.24900 2020-01-01 2020-01-02 2020-01-01 00:13:50 2020-01-02 03:42:11 2020-01-01 00:13:50.000 2020-01-02 03:42:11.000 830 99731 50280.5 5028050 830 99731 50280.5 5028050 -32738 32197 4405.3 440530 -127 124 -3.02 -302 -831 100 10821 99732 2.49549 299.49549 150.99549 15099.54954 2.49549 299.49548 150.99549 15099.54956 2.49549 299.49549 150.99548999999996 15099.54900 2020-01-01 2020-01-02 2020-01-01 00:13:51 2020-01-02 03:42:12 2020-01-01 00:13:51.000 2020-01-02 03:42:12.000 831 99732 50281.5 5028150 831 99732 50281.5 5028150 -32737 32198 4406.3 440630 -126 125 -2.02 -202 +823 100 10813 99724 2.47147 299.47147 150.97147 15097.14714 2.47147 299.47147 150.97146 15097.14686 2.47147 299.47147 150.9714700000003 15097.14700 2020-01-01 2020-01-02 2020-01-01 00:13:43 2020-01-02 03:42:04 2020-01-01 00:13:43.000 2020-01-02 03:42:04.000 823 99724 50273.5 5027350 823 99724 50273.5 5027350 -32745 32190 4398.3 439830 -128 123 -4.9 -490 +824 100 10814 99725 2.47447 299.47447 150.97447 15097.44744 2.47447 299.4745 150.97447 15097.44749 2.47447 299.47447 150.9744699999998 15097.44700 2020-01-01 2020-01-02 2020-01-01 00:13:44 2020-01-02 03:42:05 2020-01-01 00:13:44.000 2020-01-02 03:42:05.000 824 99725 50274.5 5027450 824 99725 50274.5 5027450 -32744 32191 4399.3 439930 -127 124 -3.9 -390 +825 100 10815 99726 2.47747 299.47747 150.97747 15097.74774 2.47747 299.47748 150.97747 15097.74779 2.47747 299.47747 150.97746999999984 15097.74700 2020-01-01 2020-01-02 2020-01-01 00:13:45 2020-01-02 03:42:06 2020-01-01 00:13:45.000 2020-01-02 03:42:06.000 825 99726 50275.5 5027550 825 99726 50275.5 5027550 -32743 32192 4400.3 440030 -126 125 -2.9 -290 +826 100 10816 99727 2.48048 299.48048 150.98048 15098.04804 2.48048 299.48047 150.98048 15098.04809 2.48048 299.48048 150.98048000000014 15098.04800 2020-01-01 2020-01-02 2020-01-01 00:13:46 2020-01-02 03:42:07 2020-01-01 00:13:46.000 2020-01-02 03:42:07.000 826 99727 50276.5 5027650 826 99727 50276.5 5027650 -32742 32193 4401.3 440130 -125 126 -1.9 -190 +827 100 10817 99728 2.48348 299.48348 150.98348 15098.34834 2.48348 299.4835 150.98348 15098.34869 2.48348 299.48348 150.98348000000018 15098.34800 2020-01-01 2020-01-02 2020-01-01 00:13:47 2020-01-02 03:42:08 2020-01-01 00:13:47.000 2020-01-02 03:42:08.000 827 99728 50277.5 5027750 827 99728 50277.5 5027750 -32741 32194 4402.3 440230 -124 127 -0.9 -90 +828 100 10818 99729 2.48648 299.48648 150.98648 15098.64864 2.48648 299.48648 150.98648 15098.64837 2.48648 299.48648 150.9864799999997 15098.64800 2020-01-01 2020-01-02 2020-01-01 00:13:48 2020-01-02 03:42:09 2020-01-01 00:13:48.000 2020-01-02 03:42:09.000 828 99729 50278.5 5027850 828 99729 50278.5 5027850 -32740 32195 4403.3 440330 -128 127 -2.46 -246 +829 100 10819 99730 2.48948 299.48948 150.98948 15098.94894 2.48948 299.4895 150.98948 15098.94896 2.48948 299.48948 150.98948000000016 15098.94800 2020-01-01 2020-01-02 2020-01-01 00:13:49 2020-01-02 03:42:10 2020-01-01 00:13:49.000 2020-01-02 03:42:10.000 829 99730 50279.5 5027950 829 99730 50279.5 5027950 -32739 32196 4404.3 440430 -128 123 -4.02 -402 +83 102 10073 99983 0.24924 300.24924 150.24924 15175.17417 0.24924 300.24924 150.24924 15175.17417 0.24924 300.24924 150.2492399999998 15175.17324 2020-01-01 2020-01-02 2020-01-01 00:01:23 2020-01-02 03:46:23 2020-01-01 00:01:23.000 2020-01-02 03:46:23.000 83 99983 50033 5053333 83 99983 50033 5053333 -32486 32449 4612.009900990099 465813 -125 126 -1.0594059405940595 -107 +830 100 10820 99731 2.49249 299.49249 150.99249 15099.24924 2.49249 299.4925 150.99249 15099.24926 2.49249 299.49249 150.99249000000003 15099.24900 2020-01-01 2020-01-02 2020-01-01 00:13:50 2020-01-02 03:42:11 2020-01-01 00:13:50.000 2020-01-02 03:42:11.000 830 99731 50280.5 5028050 830 99731 50280.5 5028050 -32738 32197 4405.3 440530 -127 124 -3.02 -302 +831 100 10821 99732 2.49549 299.49549 150.99549 15099.54954 2.49549 299.49548 150.99549 15099.54956 2.49549 299.49549 150.99548999999988 15099.54900 2020-01-01 2020-01-02 2020-01-01 00:13:51 2020-01-02 03:42:12 2020-01-01 00:13:51.000 2020-01-02 03:42:12.000 831 99732 50281.5 5028150 831 99732 50281.5 5028150 -32737 32198 4406.3 440630 -126 125 -2.02 -202 832 100 10822 99733 2.49849 299.49849 150.99849 15099.84984 2.49849 299.4985 150.9985 15099.85016 2.49849 299.49849 150.99848999999998 15099.84900 2020-01-01 2020-01-02 2020-01-01 00:13:52 2020-01-02 03:42:13 2020-01-01 00:13:52.000 2020-01-02 03:42:13.000 832 99733 50282.5 5028250 832 99733 50282.5 5028250 -32736 32199 4407.3 440730 -125 126 -1.02 -102 -833 100 10823 99734 2.5015 299.5015 151.0015 15100.15015 2.5015 299.5015 151.00149 15100.14983 2.50150 299.50150 151.00150000000008 15100.15000 2020-01-01 2020-01-02 2020-01-01 00:13:53 2020-01-02 03:42:14 2020-01-01 00:13:53.000 2020-01-02 03:42:14.000 833 99734 50283.5 5028350 833 99734 50283.5 5028350 -32735 32200 4408.3 440830 -124 127 -0.02 -2 -834 100 10824 99735 2.5045 299.5045 151.0045 15100.45045 2.5045 299.50452 151.0045 15100.45043 2.50450 299.50450 151.00449999999992 15100.45000 2020-01-01 2020-01-02 2020-01-01 00:13:54 2020-01-02 03:42:15 2020-01-01 00:13:54.000 2020-01-02 03:42:15.000 834 99735 50284.5 5028450 834 99735 50284.5 5028450 -32734 32201 4409.3 440930 -128 127 -1.58 -158 -835 100 10825 99736 2.5075 299.5075 151.0075 15100.75075 2.5075 299.5075 151.0075 15100.75073 2.50750 299.50750 151.00749999999994 15100.75000 2020-01-01 2020-01-02 2020-01-01 00:13:55 2020-01-02 03:42:16 2020-01-01 00:13:55.000 2020-01-02 03:42:16.000 835 99736 50285.5 5028550 835 99736 50285.5 5028550 -32733 32202 4410.3 441030 -128 123 -3.14 -314 +833 100 10823 99734 2.5015 299.5015 151.0015 15100.15015 2.5015 299.5015 151.00149 15100.14983 2.50150 299.50150 151.0015000000002 15100.15000 2020-01-01 2020-01-02 2020-01-01 00:13:53 2020-01-02 03:42:14 2020-01-01 00:13:53.000 2020-01-02 03:42:14.000 833 99734 50283.5 5028350 833 99734 50283.5 5028350 -32735 32200 4408.3 440830 -124 127 -0.02 -2 +834 100 10824 99735 2.5045 299.5045 151.0045 15100.45045 2.5045 299.50452 151.0045 15100.45043 2.50450 299.50450 151.00449999999972 15100.45000 2020-01-01 2020-01-02 2020-01-01 00:13:54 2020-01-02 03:42:15 2020-01-01 00:13:54.000 2020-01-02 03:42:15.000 834 99735 50284.5 5028450 834 99735 50284.5 5028450 -32734 32201 4409.3 440930 -128 127 -1.58 -158 +835 100 10825 99736 2.5075 299.5075 151.0075 15100.75075 2.5075 299.5075 151.0075 15100.75073 2.50750 299.50750 151.00749999999982 15100.75000 2020-01-01 2020-01-02 2020-01-01 00:13:55 2020-01-02 03:42:16 2020-01-01 00:13:55.000 2020-01-02 03:42:16.000 835 99736 50285.5 5028550 835 99736 50285.5 5028550 -32733 32202 4410.3 441030 -128 123 -3.14 -314 836 100 10826 99737 2.51051 299.51051 151.01051 15101.05105 2.51051 299.5105 151.01051 15101.05103 2.51051 299.51051 151.01051000000004 15101.05100 2020-01-01 2020-01-02 2020-01-01 00:13:56 2020-01-02 03:42:17 2020-01-01 00:13:56.000 2020-01-02 03:42:17.000 836 99737 50286.5 5028650 836 99737 50286.5 5028650 -32732 32203 4411.3 441130 -127 124 -2.14 -214 -837 100 10827 99738 2.51351 299.51351 151.01351 15101.35135 2.51351 299.51352 151.01351 15101.35162 2.51351 299.51351 151.01351 15101.35100 2020-01-01 2020-01-02 2020-01-01 00:13:57 2020-01-02 03:42:18 2020-01-01 00:13:57.000 2020-01-02 03:42:18.000 837 99738 50287.5 5028750 837 99738 50287.5 5028750 -32731 32204 4412.3 441230 -126 125 -1.14 -114 -838 100 10828 99739 2.51651 299.51651 151.01651 15101.65165 2.51651 299.5165 151.01651 15101.6513 2.51651 299.51651 151.01651 15101.65100 2020-01-01 2020-01-02 2020-01-01 00:13:58 2020-01-02 03:42:19 2020-01-01 00:13:58.000 2020-01-02 03:42:19.000 838 99739 50288.5 5028850 838 99739 50288.5 5028850 -32730 32205 4413.3 441330 -125 126 -0.14 -14 +837 100 10827 99738 2.51351 299.51351 151.01351 15101.35135 2.51351 299.51352 151.01351 15101.35162 2.51351 299.51351 151.01351000000014 15101.35100 2020-01-01 2020-01-02 2020-01-01 00:13:57 2020-01-02 03:42:18 2020-01-01 00:13:57.000 2020-01-02 03:42:18.000 837 99738 50287.5 5028750 837 99738 50287.5 5028750 -32731 32204 4412.3 441230 -126 125 -1.14 -114 +838 100 10828 99739 2.51651 299.51651 151.01651 15101.65165 2.51651 299.5165 151.01651 15101.6513 2.51651 299.51651 151.01650999999998 15101.65100 2020-01-01 2020-01-02 2020-01-01 00:13:58 2020-01-02 03:42:19 2020-01-01 00:13:58.000 2020-01-02 03:42:19.000 838 99739 50288.5 5028850 838 99739 50288.5 5028850 -32730 32205 4413.3 441330 -125 126 -0.14 -14 839 100 10829 99740 2.51951 299.51951 151.01951 15101.95195 2.51951 299.51953 151.01951 15101.9519 2.51951 299.51951 151.01951000000005 15101.95100 2020-01-01 2020-01-02 2020-01-01 00:13:59 2020-01-02 03:42:20 2020-01-01 00:13:59.000 2020-01-02 03:42:20.000 839 99740 50289.5 5028950 839 99740 50289.5 5028950 -32729 32206 4414.3 441430 -124 127 0.86 86 -84 102 10074 99984 0.25225 300.25225 150.25225 15175.47747 0.25225 300.25226 150.25225 15175.47778 0.25225 300.25225 150.25224999999986 15175.47725 2020-01-01 2020-01-02 2020-01-01 00:01:24 2020-01-02 03:46:24 2020-01-01 00:01:24.000 2020-01-02 03:46:24.000 84 99984 50034 5053434 84 99984 50034 5053434 -32485 32450 4613.009900990099 465914 -124 127 -0.0594059405940594 -6 -840 100 10830 99741 2.52252 299.52252 151.02252 15102.25225 2.52252 299.52252 151.02252 15102.2522 2.52252 299.52252 151.02252000000016 15102.25200 2020-01-01 2020-01-02 2020-01-01 00:14:00 2020-01-02 03:42:21 2020-01-01 00:14:00.000 2020-01-02 03:42:21.000 840 99741 50290.5 5029050 840 99741 50290.5 5029050 -32728 32207 4415.3 441530 -128 127 -0.7 -70 -841 100 10831 99742 2.52552 299.52552 151.02552 15102.55255 2.52552 299.5255 151.02552 15102.5525 2.52552 299.52552 151.02551999999994 15102.55200 2020-01-01 2020-01-02 2020-01-01 00:14:01 2020-01-02 03:42:22 2020-01-01 00:14:01.000 2020-01-02 03:42:22.000 841 99742 50291.5 5029150 841 99742 50291.5 5029150 -32727 32208 4416.3 441630 -128 127 -2.26 -226 -842 100 10832 99743 2.52852 299.52852 151.02852 15102.85285 2.52852 299.52853 151.02853 15102.85313 2.52852 299.52852 151.02851999999993 15102.85200 2020-01-01 2020-01-02 2020-01-01 00:14:02 2020-01-02 03:42:23 2020-01-01 00:14:02.000 2020-01-02 03:42:23.000 842 99743 50292.5 5029250 842 99743 50292.5 5029250 -32726 32209 4417.3 441730 -128 123 -3.82 -382 -843 100 10833 99744 2.53153 299.53153 151.03153 15103.15315 2.53153 299.53152 151.03152 15103.15278 2.53153 299.53153 151.0315300000001 15103.15300 2020-01-01 2020-01-02 2020-01-01 00:14:03 2020-01-02 03:42:24 2020-01-01 00:14:03.000 2020-01-02 03:42:24.000 843 99744 50293.5 5029350 843 99744 50293.5 5029350 -32725 32210 4418.3 441830 -127 124 -2.82 -282 -844 100 10834 99745 2.53453 299.53453 151.03453 15103.45345 2.53453 299.53455 151.03453 15103.45353 2.53453 299.53453 151.03453000000005 15103.45300 2020-01-01 2020-01-02 2020-01-01 00:14:04 2020-01-02 03:42:25 2020-01-01 00:14:04.000 2020-01-02 03:42:25.000 844 99745 50294.5 5029450 844 99745 50294.5 5029450 -32724 32211 4419.3 441930 -126 125 -1.82 -182 -845 100 10835 99746 2.53753 299.53753 151.03753 15103.75375 2.53753 299.53754 151.03753 15103.75366 2.53753 299.53753 151.0375299999999 15103.75300 2020-01-01 2020-01-02 2020-01-01 00:14:05 2020-01-02 03:42:26 2020-01-01 00:14:05.000 2020-01-02 03:42:26.000 845 99746 50295.5 5029550 845 99746 50295.5 5029550 -32723 32212 4420.3 442030 -125 126 -0.82 -82 +84 102 10074 99984 0.25225 300.25225 150.25225 15175.47747 0.25225 300.25226 150.25225 15175.47778 0.25225 300.25225 150.25224999999966 15175.47725 2020-01-01 2020-01-02 2020-01-01 00:01:24 2020-01-02 03:46:24 2020-01-01 00:01:24.000 2020-01-02 03:46:24.000 84 99984 50034 5053434 84 99984 50034 5053434 -32485 32450 4613.009900990099 465914 -124 127 -0.0594059405940594 -6 +840 100 10830 99741 2.52252 299.52252 151.02252 15102.25225 2.52252 299.52252 151.02252 15102.2522 2.52252 299.52252 151.02252000000033 15102.25200 2020-01-01 2020-01-02 2020-01-01 00:14:00 2020-01-02 03:42:21 2020-01-01 00:14:00.000 2020-01-02 03:42:21.000 840 99741 50290.5 5029050 840 99741 50290.5 5029050 -32728 32207 4415.3 441530 -128 127 -0.7 -70 +841 100 10831 99742 2.52552 299.52552 151.02552 15102.55255 2.52552 299.5255 151.02552 15102.5525 2.52552 299.52552 151.02551999999983 15102.55200 2020-01-01 2020-01-02 2020-01-01 00:14:01 2020-01-02 03:42:22 2020-01-01 00:14:01.000 2020-01-02 03:42:22.000 841 99742 50291.5 5029150 841 99742 50291.5 5029150 -32727 32208 4416.3 441630 -128 127 -2.26 -226 +842 100 10832 99743 2.52852 299.52852 151.02852 15102.85285 2.52852 299.52853 151.02853 15102.85313 2.52852 299.52852 151.02851999999987 15102.85200 2020-01-01 2020-01-02 2020-01-01 00:14:02 2020-01-02 03:42:23 2020-01-01 00:14:02.000 2020-01-02 03:42:23.000 842 99743 50292.5 5029250 842 99743 50292.5 5029250 -32726 32209 4417.3 441730 -128 123 -3.82 -382 +843 100 10833 99744 2.53153 299.53153 151.03153 15103.15315 2.53153 299.53152 151.03152 15103.15278 2.53153 299.53153 151.03153000000017 15103.15300 2020-01-01 2020-01-02 2020-01-01 00:14:03 2020-01-02 03:42:24 2020-01-01 00:14:03.000 2020-01-02 03:42:24.000 843 99744 50293.5 5029350 843 99744 50293.5 5029350 -32725 32210 4418.3 441830 -127 124 -2.82 -282 +844 100 10834 99745 2.53453 299.53453 151.03453 15103.45345 2.53453 299.53455 151.03453 15103.45353 2.53453 299.53453 151.03453000000022 15103.45300 2020-01-01 2020-01-02 2020-01-01 00:14:04 2020-01-02 03:42:25 2020-01-01 00:14:04.000 2020-01-02 03:42:25.000 844 99745 50294.5 5029450 844 99745 50294.5 5029450 -32724 32211 4419.3 441930 -126 125 -1.82 -182 +845 100 10835 99746 2.53753 299.53753 151.03753 15103.75375 2.53753 299.53754 151.03753 15103.75366 2.53753 299.53753 151.03752999999972 15103.75300 2020-01-01 2020-01-02 2020-01-01 00:14:05 2020-01-02 03:42:26 2020-01-01 00:14:05.000 2020-01-02 03:42:26.000 845 99746 50295.5 5029550 845 99746 50295.5 5029550 -32723 32212 4420.3 442030 -125 126 -0.82 -82 846 100 10836 99747 2.54054 299.54054 151.04054 15104.05405 2.54054 299.54053 151.04053 15104.05397 2.54054 299.54054 151.04054 15104.05400 2020-01-01 2020-01-02 2020-01-01 00:14:06 2020-01-02 03:42:27 2020-01-01 00:14:06.000 2020-01-02 03:42:27.000 846 99747 50296.5 5029650 846 99747 50296.5 5029650 -32722 32213 4421.3 442130 -124 127 0.18 18 -847 100 10837 99748 2.54354 299.54354 151.04354 15104.35435 2.54354 299.54355 151.04354 15104.3546 2.54354 299.54354 151.04354 15104.35400 2020-01-01 2020-01-02 2020-01-01 00:14:07 2020-01-02 03:42:28 2020-01-01 00:14:07.000 2020-01-02 03:42:28.000 847 99748 50297.5 5029750 847 99748 50297.5 5029750 -32721 32214 4422.3 442230 -128 127 -1.38 -138 -848 100 10838 99749 2.54654 299.54654 151.04654 15104.65465 2.54654 299.54654 151.04654 15104.65425 2.54654 299.54654 151.04653999999994 15104.65400 2020-01-01 2020-01-02 2020-01-01 00:14:08 2020-01-02 03:42:29 2020-01-01 00:14:08.000 2020-01-02 03:42:29.000 848 99749 50298.5 5029850 848 99749 50298.5 5029850 -32720 32215 4423.3 442330 -128 123 -2.94 -294 -849 100 10839 99750 2.54954 299.54954 151.04954 15104.95495 2.54954 299.54956 151.04954 15104.95499 2.54954 299.54954 151.04954 15104.95400 2020-01-01 2020-01-02 2020-01-01 00:14:09 2020-01-02 03:42:30 2020-01-01 00:14:09.000 2020-01-02 03:42:30.000 849 99750 50299.5 5029950 849 99750 50299.5 5029950 -32719 32216 4424.3 442430 -127 124 -1.94 -194 -85 102 10075 99985 0.25525 300.25525 150.25525 15175.78078 0.25525 300.25525 150.25525 15175.78046 0.25525 300.25525 150.25525000000007 15175.78025 2020-01-01 2020-01-02 2020-01-01 00:01:25 2020-01-02 03:46:25 2020-01-01 00:01:25.000 2020-01-02 03:46:25.000 85 99985 50035 5053535 85 99985 50035 5053535 -32484 32451 4614.009900990099 466015 -128 127 -1.5940594059405941 -161 -850 100 10840 99751 2.55255 299.55255 151.05255 15105.25525 2.55255 299.55255 151.05255 15105.25514 2.55255 299.55255 151.05255000000008 15105.25500 2020-01-01 2020-01-02 2020-01-01 00:14:10 2020-01-02 03:42:31 2020-01-01 00:14:10.000 2020-01-02 03:42:31.000 850 99751 50300.5 5030050 850 99751 50300.5 5030050 -32718 32217 4425.3 442530 -126 125 -0.94 -94 -851 100 10841 99752 2.55555 299.55555 151.05555 15105.55555 2.55555 299.55554 151.05555 15105.55547 2.55555 299.55555 151.05554999999993 15105.55500 2020-01-01 2020-01-02 2020-01-01 00:14:11 2020-01-02 03:42:32 2020-01-01 00:14:11.000 2020-01-02 03:42:32.000 851 99752 50301.5 5030150 851 99752 50301.5 5030150 -32717 32218 4426.3 442630 -125 126 0.06 6 -852 100 10842 99753 2.55855 299.55855 151.05855 15105.85585 2.55855 299.55856 151.05856 15105.85607 2.55855 299.55855 151.05854999999997 15105.85500 2020-01-01 2020-01-02 2020-01-01 00:14:12 2020-01-02 03:42:33 2020-01-01 00:14:12.000 2020-01-02 03:42:33.000 852 99753 50302.5 5030250 852 99753 50302.5 5030250 -32716 32219 4427.3 442730 -124 127 1.06 106 +847 100 10837 99748 2.54354 299.54354 151.04354 15104.35435 2.54354 299.54355 151.04354 15104.3546 2.54354 299.54354 151.04354000000006 15104.35400 2020-01-01 2020-01-02 2020-01-01 00:14:07 2020-01-02 03:42:28 2020-01-01 00:14:07.000 2020-01-02 03:42:28.000 847 99748 50297.5 5029750 847 99748 50297.5 5029750 -32721 32214 4422.3 442230 -128 127 -1.38 -138 +848 100 10838 99749 2.54654 299.54654 151.04654 15104.65465 2.54654 299.54654 151.04654 15104.65425 2.54654 299.54654 151.04653999999988 15104.65400 2020-01-01 2020-01-02 2020-01-01 00:14:08 2020-01-02 03:42:29 2020-01-01 00:14:08.000 2020-01-02 03:42:29.000 848 99749 50298.5 5029850 848 99749 50298.5 5029850 -32720 32215 4423.3 442330 -128 123 -2.94 -294 +849 100 10839 99750 2.54954 299.54954 151.04954 15104.95495 2.54954 299.54956 151.04954 15104.95499 2.54954 299.54954 151.04953999999998 15104.95400 2020-01-01 2020-01-02 2020-01-01 00:14:09 2020-01-02 03:42:30 2020-01-01 00:14:09.000 2020-01-02 03:42:30.000 849 99750 50299.5 5029950 849 99750 50299.5 5029950 -32719 32216 4424.3 442430 -127 124 -1.94 -194 +85 102 10075 99985 0.25525 300.25525 150.25525 15175.78078 0.25525 300.25525 150.25525 15175.78046 0.25525 300.25525 150.25525000000013 15175.78025 2020-01-01 2020-01-02 2020-01-01 00:01:25 2020-01-02 03:46:25 2020-01-01 00:01:25.000 2020-01-02 03:46:25.000 85 99985 50035 5053535 85 99985 50035 5053535 -32484 32451 4614.009900990099 466015 -128 127 -1.5940594059405941 -161 +850 100 10840 99751 2.55255 299.55255 151.05255 15105.25525 2.55255 299.55255 151.05255 15105.25514 2.55255 299.55255 151.05255000000022 15105.25500 2020-01-01 2020-01-02 2020-01-01 00:14:10 2020-01-02 03:42:31 2020-01-01 00:14:10.000 2020-01-02 03:42:31.000 850 99751 50300.5 5030050 850 99751 50300.5 5030050 -32718 32217 4425.3 442530 -126 125 -0.94 -94 +851 100 10841 99752 2.55555 299.55555 151.05555 15105.55555 2.55555 299.55554 151.05555 15105.55547 2.55555 299.55555 151.05554999999973 15105.55500 2020-01-01 2020-01-02 2020-01-01 00:14:11 2020-01-02 03:42:32 2020-01-01 00:14:11.000 2020-01-02 03:42:32.000 851 99752 50301.5 5030150 851 99752 50301.5 5030150 -32717 32218 4426.3 442630 -125 126 0.06 6 +852 100 10842 99753 2.55855 299.55855 151.05855 15105.85585 2.55855 299.55856 151.05856 15105.85607 2.55855 299.55855 151.05854999999985 15105.85500 2020-01-01 2020-01-02 2020-01-01 00:14:12 2020-01-02 03:42:33 2020-01-01 00:14:12.000 2020-01-02 03:42:33.000 852 99753 50302.5 5030250 852 99753 50302.5 5030250 -32716 32219 4427.3 442730 -124 127 1.06 106 853 100 10843 99754 2.56156 299.56156 151.06156 15106.15615 2.56156 299.56155 151.06155 15106.15571 2.56156 299.56156 151.06156000000007 15106.15600 2020-01-01 2020-01-02 2020-01-01 00:14:13 2020-01-02 03:42:34 2020-01-01 00:14:13.000 2020-01-02 03:42:34.000 853 99754 50303.5 5030350 853 99754 50303.5 5030350 -32715 32220 4428.3 442830 -128 127 -0.5 -50 -854 100 10844 99755 2.56456 299.56456 151.06456 15106.45645 2.56456 299.56458 151.06456 15106.45646 2.56456 299.56456 151.06456000000003 15106.45600 2020-01-01 2020-01-02 2020-01-01 00:14:14 2020-01-02 03:42:35 2020-01-01 00:14:14.000 2020-01-02 03:42:35.000 854 99755 50304.5 5030450 854 99755 50304.5 5030450 -32714 32221 4429.3 442930 -128 123 -2.06 -206 +854 100 10844 99755 2.56456 299.56456 151.06456 15106.45645 2.56456 299.56458 151.06456 15106.45646 2.56456 299.56456 151.0645600000001 15106.45600 2020-01-01 2020-01-02 2020-01-01 00:14:14 2020-01-02 03:42:35 2020-01-01 00:14:14.000 2020-01-02 03:42:35.000 854 99755 50304.5 5030450 854 99755 50304.5 5030450 -32714 32221 4429.3 442930 -128 123 -2.06 -206 855 100 10845 99756 2.56756 299.56756 151.06756 15106.75675 2.56756 299.56757 151.06756 15106.75661 2.56756 299.56756 151.06756000000001 15106.75600 2020-01-01 2020-01-02 2020-01-01 00:14:15 2020-01-02 03:42:36 2020-01-01 00:14:15.000 2020-01-02 03:42:36.000 855 99756 50305.5 5030550 855 99756 50305.5 5030550 -32713 32222 4430.3 443030 -127 124 -1.06 -106 -856 100 10846 99757 2.57057 299.57057 151.07057 15107.05705 2.57057 299.57056 151.07056 15107.05694 2.57057 299.57057 151.07056999999995 15107.05700 2020-01-01 2020-01-02 2020-01-01 00:14:16 2020-01-02 03:42:37 2020-01-01 00:14:16.000 2020-01-02 03:42:37.000 856 99757 50306.5 5030650 856 99757 50306.5 5030650 -32712 32223 4431.3 443130 -126 125 -0.06 -6 +856 100 10846 99757 2.57057 299.57057 151.07057 15107.05705 2.57057 299.57056 151.07056 15107.05694 2.57057 299.57057 151.0705699999999 15107.05700 2020-01-01 2020-01-02 2020-01-01 00:14:16 2020-01-02 03:42:37 2020-01-01 00:14:16.000 2020-01-02 03:42:37.000 856 99757 50306.5 5030650 856 99757 50306.5 5030650 -32712 32223 4431.3 443130 -126 125 -0.06 -6 857 100 10847 99758 2.57357 299.57357 151.07357 15107.35735 2.57357 299.57358 151.07357 15107.35754 2.57357 299.57357 151.07356999999996 15107.35700 2020-01-01 2020-01-02 2020-01-01 00:14:17 2020-01-02 03:42:38 2020-01-01 00:14:17.000 2020-01-02 03:42:38.000 857 99758 50307.5 5030750 857 99758 50307.5 5030750 -32711 32224 4432.3 443230 -125 126 0.94 94 -858 100 10848 99759 2.57657 299.57657 151.07657 15107.65765 2.57657 299.57657 151.07657 15107.65783 2.57657 299.57657 151.07656999999998 15107.65700 2020-01-01 2020-01-02 2020-01-01 00:14:18 2020-01-02 03:42:39 2020-01-01 00:14:18.000 2020-01-02 03:42:39.000 858 99759 50308.5 5030850 858 99759 50308.5 5030850 -32710 32225 4433.3 443330 -124 127 1.94 194 -859 100 10849 99760 2.57957 299.57957 151.07957 15107.95795 2.57957 299.5796 151.07957 15107.95794 2.57957 299.57957 151.07956999999993 15107.95700 2020-01-01 2020-01-02 2020-01-01 00:14:19 2020-01-02 03:42:40 2020-01-01 00:14:19.000 2020-01-02 03:42:40.000 859 99760 50309.5 5030950 859 99760 50309.5 5030950 -32709 32226 4434.3 443430 -128 127 0.38 38 -86 102 10076 99986 0.25825 300.25825 150.25825 15176.08408 0.25825 300.25827 150.25825 15176.08406 0.25825 300.25825 150.25825000000003 15176.08325 2020-01-01 2020-01-02 2020-01-01 00:01:26 2020-01-02 03:46:26 2020-01-01 00:01:26.000 2020-01-02 03:46:26.000 86 99986 50036 5053636 86 99986 50036 5053636 -32483 32452 4615.009900990099 466116 -128 123 -3.128712871287129 -316 -860 100 10850 99761 2.58258 299.58258 151.08258 15108.25825 2.58258 299.58258 151.08258 15108.25811 2.58258 299.58258 151.08258000000012 15108.25800 2020-01-01 2020-01-02 2020-01-01 00:14:20 2020-01-02 03:42:41 2020-01-01 00:14:20.000 2020-01-02 03:42:41.000 860 99761 50310.5 5031050 860 99761 50310.5 5031050 -32708 32227 4435.3 443530 -128 123 -1.18 -118 -861 100 10851 99762 2.58558 299.58558 151.08558 15108.55855 2.58558 299.58557 151.08558 15108.55841 2.58558 299.58558 151.08558000000005 15108.55800 2020-01-01 2020-01-02 2020-01-01 00:14:21 2020-01-02 03:42:42 2020-01-01 00:14:21.000 2020-01-02 03:42:42.000 861 99762 50311.5 5031150 861 99762 50311.5 5031150 -32707 32228 4436.3 443630 -127 124 -0.18 -18 -862 100 10852 99763 2.58858 299.58858 151.08858 15108.85885 2.58858 299.5886 151.08859 15108.85901 2.58858 299.58858 151.08857999999992 15108.85800 2020-01-01 2020-01-02 2020-01-01 00:14:22 2020-01-02 03:42:43 2020-01-01 00:14:22.000 2020-01-02 03:42:43.000 862 99763 50312.5 5031250 862 99763 50312.5 5031250 -32706 32229 4437.3 443730 -126 125 0.82 82 +858 100 10848 99759 2.57657 299.57657 151.07657 15107.65765 2.57657 299.57657 151.07657 15107.65783 2.57657 299.57657 151.07656999999986 15107.65700 2020-01-01 2020-01-02 2020-01-01 00:14:18 2020-01-02 03:42:39 2020-01-01 00:14:18.000 2020-01-02 03:42:39.000 858 99759 50308.5 5030850 858 99759 50308.5 5030850 -32710 32225 4433.3 443330 -124 127 1.94 194 +859 100 10849 99760 2.57957 299.57957 151.07957 15107.95795 2.57957 299.5796 151.07957 15107.95794 2.57957 299.57957 151.0795699999999 15107.95700 2020-01-01 2020-01-02 2020-01-01 00:14:19 2020-01-02 03:42:40 2020-01-01 00:14:19.000 2020-01-02 03:42:40.000 859 99760 50309.5 5030950 859 99760 50309.5 5030950 -32709 32226 4434.3 443430 -128 127 0.38 38 +86 102 10076 99986 0.25825 300.25825 150.25825 15176.08408 0.25825 300.25827 150.25825 15176.08406 0.25825 300.25825 150.25825000000017 15176.08325 2020-01-01 2020-01-02 2020-01-01 00:01:26 2020-01-02 03:46:26 2020-01-01 00:01:26.000 2020-01-02 03:46:26.000 86 99986 50036 5053636 86 99986 50036 5053636 -32483 32452 4615.009900990099 466116 -128 123 -3.128712871287129 -316 +860 100 10850 99761 2.58258 299.58258 151.08258 15108.25825 2.58258 299.58258 151.08258 15108.25811 2.58258 299.58258 151.08258000000015 15108.25800 2020-01-01 2020-01-02 2020-01-01 00:14:20 2020-01-02 03:42:41 2020-01-01 00:14:20.000 2020-01-02 03:42:41.000 860 99761 50310.5 5031050 860 99761 50310.5 5031050 -32708 32227 4435.3 443530 -128 123 -1.18 -118 +861 100 10851 99762 2.58558 299.58558 151.08558 15108.55855 2.58558 299.58557 151.08558 15108.55841 2.58558 299.58558 151.08558000000025 15108.55800 2020-01-01 2020-01-02 2020-01-01 00:14:21 2020-01-02 03:42:42 2020-01-01 00:14:21.000 2020-01-02 03:42:42.000 861 99762 50311.5 5031150 861 99762 50311.5 5031150 -32707 32228 4436.3 443630 -127 124 -0.18 -18 +862 100 10852 99763 2.58858 299.58858 151.08858 15108.85885 2.58858 299.5886 151.08859 15108.85901 2.58858 299.58858 151.08857999999975 15108.85800 2020-01-01 2020-01-02 2020-01-01 00:14:22 2020-01-02 03:42:43 2020-01-01 00:14:22.000 2020-01-02 03:42:43.000 862 99763 50312.5 5031250 862 99763 50312.5 5031250 -32706 32229 4437.3 443730 -126 125 0.82 82 863 100 10853 99764 2.59159 299.59159 151.09159 15109.15915 2.59159 299.59158 151.09159 15109.1593 2.59159 299.59159 151.09159 15109.15900 2020-01-01 2020-01-02 2020-01-01 00:14:23 2020-01-02 03:42:44 2020-01-01 00:14:23.000 2020-01-02 03:42:44.000 863 99764 50313.5 5031350 863 99764 50313.5 5031350 -32705 32230 4438.3 443830 -125 126 1.82 182 -864 100 10854 99765 2.59459 299.59459 151.09459 15109.45945 2.59459 299.5946 151.09459 15109.45941 2.59459 299.59459 151.09459000000004 15109.45900 2020-01-01 2020-01-02 2020-01-01 00:14:24 2020-01-02 03:42:45 2020-01-01 00:14:24.000 2020-01-02 03:42:45.000 864 99765 50314.5 5031450 864 99765 50314.5 5031450 -32704 32231 4439.3 443930 -124 127 2.82 282 -865 100 10855 99766 2.59759 299.59759 151.09759 15109.75975 2.59759 299.5976 151.09759 15109.75958 2.59759 299.59759 151.09759000000008 15109.75900 2020-01-01 2020-01-02 2020-01-01 00:14:25 2020-01-02 03:42:46 2020-01-01 00:14:25.000 2020-01-02 03:42:46.000 865 99766 50315.5 5031550 865 99766 50315.5 5031550 -32703 32232 4440.3 444030 -128 127 1.26 126 -866 100 10856 99767 2.6006 299.6006 151.1006 15110.06006 2.6006 299.6006 151.10059 15110.05988 2.60060 299.60060 151.10059999999984 15110.06000 2020-01-01 2020-01-02 2020-01-01 00:14:26 2020-01-02 03:42:47 2020-01-01 00:14:26.000 2020-01-02 03:42:47.000 866 99767 50316.5 5031650 866 99767 50316.5 5031650 -32702 32233 4441.3 444130 -128 127 -0.3 -30 -867 100 10857 99768 2.6036 299.6036 151.1036 15110.36036 2.6036 299.6036 151.1036 15110.36063 2.60360 299.60360 151.10360000000026 15110.36000 2020-01-01 2020-01-02 2020-01-01 00:14:27 2020-01-02 03:42:48 2020-01-01 00:14:27.000 2020-01-02 03:42:48.000 867 99768 50317.5 5031750 867 99768 50317.5 5031750 -32701 32234 4442.3 444230 -128 123 -1.86 -186 -868 100 10858 99769 2.6066 299.6066 151.1066 15110.66066 2.6066 299.6066 151.1066 15110.66078 2.60660 299.60660 151.10659999999976 15110.66000 2020-01-01 2020-01-02 2020-01-01 00:14:28 2020-01-02 03:42:49 2020-01-01 00:14:28.000 2020-01-02 03:42:49.000 868 99769 50318.5 5031850 868 99769 50318.5 5031850 -32700 32235 4443.3 444330 -127 124 -0.86 -86 -869 100 10859 99770 2.6096 299.6096 151.1096 15110.96096 2.6096 299.60962 151.1096 15110.96091 2.60960 299.60960 151.1095999999998 15110.96000 2020-01-01 2020-01-02 2020-01-01 00:14:29 2020-01-02 03:42:50 2020-01-01 00:14:29.000 2020-01-02 03:42:50.000 869 99770 50319.5 5031950 869 99770 50319.5 5031950 -32699 32236 4444.3 444430 -126 125 0.14 14 -87 102 10077 99987 0.26126 300.26126 150.26126 15176.38738 0.26126 300.26126 150.26126 15176.38736 0.26126 300.26126 150.2612599999999 15176.38726 2020-01-01 2020-01-02 2020-01-01 00:01:27 2020-01-02 03:46:27 2020-01-01 00:01:27.000 2020-01-02 03:46:27.000 87 99987 50037 5053737 87 99987 50037 5053737 -32482 32453 4616.009900990099 466217 -127 124 -2.128712871287129 -215 -870 100 10860 99771 2.61261 299.61261 151.11261 15111.26126 2.61261 299.6126 151.11261 15111.26105 2.61261 299.61261 151.1126100000001 15111.26100 2020-01-01 2020-01-02 2020-01-01 00:14:30 2020-01-02 03:42:51 2020-01-01 00:14:30.000 2020-01-02 03:42:51.000 870 99771 50320.5 5032050 870 99771 50320.5 5032050 -32698 32237 4445.3 444530 -125 126 1.14 114 -871 100 10861 99772 2.61561 299.61561 151.11561 15111.56156 2.61561 299.6156 151.11561 15111.56135 2.61561 299.61561 151.11561000000017 15111.56100 2020-01-01 2020-01-02 2020-01-01 00:14:31 2020-01-02 03:42:52 2020-01-01 00:14:31.000 2020-01-02 03:42:52.000 871 99772 50321.5 5032150 871 99772 50321.5 5032150 -32697 32238 4446.3 444630 -124 127 2.14 214 -872 100 10862 99773 2.61861 299.61861 151.11861 15111.86186 2.61861 299.61862 151.11862 15111.8621 2.61861 299.61861 151.11860999999993 15111.86100 2020-01-01 2020-01-02 2020-01-01 00:14:32 2020-01-02 03:42:53 2020-01-01 00:14:32.000 2020-01-02 03:42:53.000 872 99773 50322.5 5032250 872 99773 50322.5 5032250 -32696 32239 4447.3 444730 -128 127 0.58 58 +864 100 10854 99765 2.59459 299.59459 151.09459 15109.45945 2.59459 299.5946 151.09459 15109.45941 2.59459 299.59459 151.0945900000001 15109.45900 2020-01-01 2020-01-02 2020-01-01 00:14:24 2020-01-02 03:42:45 2020-01-01 00:14:24.000 2020-01-02 03:42:45.000 864 99765 50314.5 5031450 864 99765 50314.5 5031450 -32704 32231 4439.3 443930 -124 127 2.82 282 +865 100 10855 99766 2.59759 299.59759 151.09759 15109.75975 2.59759 299.5976 151.09759 15109.75958 2.59759 299.59759 151.09759 15109.75900 2020-01-01 2020-01-02 2020-01-01 00:14:25 2020-01-02 03:42:46 2020-01-01 00:14:25.000 2020-01-02 03:42:46.000 865 99766 50315.5 5031550 865 99766 50315.5 5031550 -32703 32232 4440.3 444030 -128 127 1.26 126 +866 100 10856 99767 2.6006 299.6006 151.1006 15110.06006 2.6006 299.6006 151.10059 15110.05988 2.60060 299.60060 151.10059999999987 15110.06000 2020-01-01 2020-01-02 2020-01-01 00:14:26 2020-01-02 03:42:47 2020-01-01 00:14:26.000 2020-01-02 03:42:47.000 866 99767 50316.5 5031650 866 99767 50316.5 5031650 -32702 32233 4441.3 444130 -128 127 -0.3 -30 +867 100 10857 99768 2.6036 299.6036 151.1036 15110.36036 2.6036 299.6036 151.1036 15110.36063 2.60360 299.60360 151.10360000000009 15110.36000 2020-01-01 2020-01-02 2020-01-01 00:14:27 2020-01-02 03:42:48 2020-01-01 00:14:27.000 2020-01-02 03:42:48.000 867 99768 50317.5 5031750 867 99768 50317.5 5031750 -32701 32234 4442.3 444230 -128 123 -1.86 -186 +868 100 10858 99769 2.6066 299.6066 151.1066 15110.66066 2.6066 299.6066 151.1066 15110.66078 2.60660 299.60660 151.10659999999993 15110.66000 2020-01-01 2020-01-02 2020-01-01 00:14:28 2020-01-02 03:42:49 2020-01-01 00:14:28.000 2020-01-02 03:42:49.000 868 99769 50318.5 5031850 868 99769 50318.5 5031850 -32700 32235 4443.3 444330 -127 124 -0.86 -86 +869 100 10859 99770 2.6096 299.6096 151.1096 15110.96096 2.6096 299.60962 151.1096 15110.96091 2.60960 299.60960 151.1095999999999 15110.96000 2020-01-01 2020-01-02 2020-01-01 00:14:29 2020-01-02 03:42:50 2020-01-01 00:14:29.000 2020-01-02 03:42:50.000 869 99770 50319.5 5031950 869 99770 50319.5 5031950 -32699 32236 4444.3 444430 -126 125 0.14 14 +87 102 10077 99987 0.26126 300.26126 150.26126 15176.38738 0.26126 300.26126 150.26126 15176.38736 0.26126 300.26126 150.26126000000002 15176.38726 2020-01-01 2020-01-02 2020-01-01 00:01:27 2020-01-02 03:46:27 2020-01-01 00:01:27.000 2020-01-02 03:46:27.000 87 99987 50037 5053737 87 99987 50037 5053737 -32482 32453 4616.009900990099 466217 -127 124 -2.128712871287129 -215 +870 100 10860 99771 2.61261 299.61261 151.11261 15111.26126 2.61261 299.6126 151.11261 15111.26105 2.61261 299.61261 151.11261000000007 15111.26100 2020-01-01 2020-01-02 2020-01-01 00:14:30 2020-01-02 03:42:51 2020-01-01 00:14:30.000 2020-01-02 03:42:51.000 870 99771 50320.5 5032050 870 99771 50320.5 5032050 -32698 32237 4445.3 444530 -125 126 1.14 114 +871 100 10861 99772 2.61561 299.61561 151.11561 15111.56156 2.61561 299.6156 151.11561 15111.56135 2.61561 299.61561 151.11561000000003 15111.56100 2020-01-01 2020-01-02 2020-01-01 00:14:31 2020-01-02 03:42:52 2020-01-01 00:14:31.000 2020-01-02 03:42:52.000 871 99772 50321.5 5032150 871 99772 50321.5 5032150 -32697 32238 4446.3 444630 -124 127 2.14 214 +872 100 10862 99773 2.61861 299.61861 151.11861 15111.86186 2.61861 299.61862 151.11862 15111.8621 2.61861 299.61861 151.11860999999982 15111.86100 2020-01-01 2020-01-02 2020-01-01 00:14:32 2020-01-02 03:42:53 2020-01-01 00:14:32.000 2020-01-02 03:42:53.000 872 99773 50322.5 5032250 872 99773 50322.5 5032250 -32696 32239 4447.3 444730 -128 127 0.58 58 873 100 10863 99774 2.62162 299.62162 151.12162 15112.16216 2.62162 299.6216 151.12162 15112.16224 2.62162 299.62162 151.12161999999992 15112.16200 2020-01-01 2020-01-02 2020-01-01 00:14:33 2020-01-02 03:42:54 2020-01-01 00:14:33.000 2020-01-02 03:42:54.000 873 99774 50323.5 5032350 873 99774 50323.5 5032350 -32695 32240 4448.3 444830 -128 123 -0.98 -98 -874 100 10864 99775 2.62462 299.62462 151.12462 15112.46246 2.62462 299.62463 151.12462 15112.46238 2.62462 299.62462 151.12462000000002 15112.46200 2020-01-01 2020-01-02 2020-01-01 00:14:34 2020-01-02 03:42:55 2020-01-01 00:14:34.000 2020-01-02 03:42:55.000 874 99775 50324.5 5032450 874 99775 50324.5 5032450 -32694 32241 4449.3 444930 -127 124 0.02 2 -875 100 10865 99776 2.62762 299.62762 151.12762 15112.76276 2.62762 299.62762 151.12762 15112.76252 2.62762 299.62762 151.12761999999987 15112.76200 2020-01-01 2020-01-02 2020-01-01 00:14:35 2020-01-02 03:42:56 2020-01-01 00:14:35.000 2020-01-02 03:42:56.000 875 99776 50325.5 5032550 875 99776 50325.5 5032550 -32693 32242 4450.3 445030 -126 125 1.02 102 -876 100 10866 99777 2.63063 299.63063 151.13063 15113.06306 2.63063 299.63065 151.13063 15113.06327 2.63063 299.63063 151.13062999999977 15113.06300 2020-01-01 2020-01-02 2020-01-01 00:14:36 2020-01-02 03:42:57 2020-01-01 00:14:36.000 2020-01-02 03:42:57.000 876 99777 50326.5 5032650 876 99777 50326.5 5032650 -32692 32243 4451.3 445130 -125 126 2.02 202 -877 100 10867 99778 2.63363 299.63363 151.13363 15113.36336 2.63363 299.63364 151.13363 15113.36358 2.63363 299.63363 151.13363000000015 15113.36300 2020-01-01 2020-01-02 2020-01-01 00:14:37 2020-01-02 03:42:58 2020-01-01 00:14:37.000 2020-01-02 03:42:58.000 877 99778 50327.5 5032750 877 99778 50327.5 5032750 -32691 32244 4452.3 445230 -124 127 3.02 302 -878 100 10868 99779 2.63663 299.63663 151.13663 15113.66366 2.63663 299.63663 151.13663 15113.66371 2.63663 299.63663 151.13663000000028 15113.66300 2020-01-01 2020-01-02 2020-01-01 00:14:38 2020-01-02 03:42:59 2020-01-01 00:14:38.000 2020-01-02 03:42:59.000 878 99779 50328.5 5032850 878 99779 50328.5 5032850 -32690 32245 4453.3 445330 -128 127 1.46 146 -879 100 10869 99780 2.63963 299.63963 151.13963 15113.96396 2.63963 299.63965 151.13963 15113.96385 2.63963 299.63963 151.13962999999978 15113.96300 2020-01-01 2020-01-02 2020-01-01 00:14:39 2020-01-02 03:43:00 2020-01-01 00:14:39.000 2020-01-02 03:43:00.000 879 99780 50329.5 5032950 879 99780 50329.5 5032950 -32689 32246 4454.3 445430 -128 123 -0.1 -10 +874 100 10864 99775 2.62462 299.62462 151.12462 15112.46246 2.62462 299.62463 151.12462 15112.46238 2.62462 299.62462 151.12461999999996 15112.46200 2020-01-01 2020-01-02 2020-01-01 00:14:34 2020-01-02 03:42:55 2020-01-01 00:14:34.000 2020-01-02 03:42:55.000 874 99775 50324.5 5032450 874 99775 50324.5 5032450 -32694 32241 4449.3 444930 -127 124 0.02 2 +875 100 10865 99776 2.62762 299.62762 151.12762 15112.76276 2.62762 299.62762 151.12762 15112.76252 2.62762 299.62762 151.12761999999998 15112.76200 2020-01-01 2020-01-02 2020-01-01 00:14:35 2020-01-02 03:42:56 2020-01-01 00:14:35.000 2020-01-02 03:42:56.000 875 99776 50325.5 5032550 875 99776 50325.5 5032550 -32693 32242 4450.3 445030 -126 125 1.02 102 +876 100 10866 99777 2.63063 299.63063 151.13063 15113.06306 2.63063 299.63065 151.13063 15113.06327 2.63063 299.63063 151.1306299999999 15113.06300 2020-01-01 2020-01-02 2020-01-01 00:14:36 2020-01-02 03:42:57 2020-01-01 00:14:36.000 2020-01-02 03:42:57.000 876 99777 50326.5 5032650 876 99777 50326.5 5032650 -32692 32243 4451.3 445130 -125 126 2.02 202 +877 100 10867 99778 2.63363 299.63363 151.13363 15113.36336 2.63363 299.63364 151.13363 15113.36358 2.63363 299.63363 151.13363000000004 15113.36300 2020-01-01 2020-01-02 2020-01-01 00:14:37 2020-01-02 03:42:58 2020-01-01 00:14:37.000 2020-01-02 03:42:58.000 877 99778 50327.5 5032750 877 99778 50327.5 5032750 -32691 32244 4452.3 445230 -124 127 3.02 302 +878 100 10868 99779 2.63663 299.63663 151.13663 15113.66366 2.63663 299.63663 151.13663 15113.66371 2.63663 299.63663 151.13663000000008 15113.66300 2020-01-01 2020-01-02 2020-01-01 00:14:38 2020-01-02 03:42:59 2020-01-01 00:14:38.000 2020-01-02 03:42:59.000 878 99779 50328.5 5032850 878 99779 50328.5 5032850 -32690 32245 4453.3 445330 -128 127 1.46 146 +879 100 10869 99780 2.63963 299.63963 151.13963 15113.96396 2.63963 299.63965 151.13963 15113.96385 2.63963 299.63963 151.1396299999999 15113.96300 2020-01-01 2020-01-02 2020-01-01 00:14:39 2020-01-02 03:43:00 2020-01-01 00:14:39.000 2020-01-02 03:43:00.000 879 99780 50329.5 5032950 879 99780 50329.5 5032950 -32689 32246 4454.3 445430 -128 123 -0.1 -10 88 102 10078 99988 0.26426 300.26426 150.26426 15176.69069 0.26426 300.26425 150.26426 15176.69066 0.26426 300.26426 150.26425999999995 15176.69026 2020-01-01 2020-01-02 2020-01-01 00:01:28 2020-01-02 03:46:28 2020-01-01 00:01:28.000 2020-01-02 03:46:28.000 88 99988 50038 5053838 88 99988 50038 5053838 -32481 32454 4617.009900990099 466318 -126 125 -1.1287128712871286 -114 880 100 10870 99781 2.64264 299.64264 151.14264 15114.26426 2.64264 299.64264 151.14263 15114.26399 2.64264 299.64264 151.14264 15114.26400 2020-01-01 2020-01-02 2020-01-01 00:14:40 2020-01-02 03:43:01 2020-01-01 00:14:40.000 2020-01-02 03:43:01.000 880 99781 50330.5 5033050 880 99781 50330.5 5033050 -32688 32247 4455.3 445530 -127 124 0.9 90 -881 100 10871 99782 2.64564 299.64564 151.14564 15114.56456 2.64564 299.64566 151.14564 15114.56474 2.64564 299.64564 151.14564000000013 15114.56400 2020-01-01 2020-01-02 2020-01-01 00:14:41 2020-01-02 03:43:02 2020-01-01 00:14:41.000 2020-01-02 03:43:02.000 881 99782 50331.5 5033150 881 99782 50331.5 5033150 -32687 32248 4456.3 445630 -126 125 1.9 190 -882 100 10872 99783 2.64864 299.64864 151.14864 15114.86486 2.64864 299.64865 151.14865 15114.86504 2.64864 299.64864 151.14863999999992 15114.86400 2020-01-01 2020-01-02 2020-01-01 00:14:42 2020-01-02 03:43:03 2020-01-01 00:14:42.000 2020-01-02 03:43:03.000 882 99783 50332.5 5033250 882 99783 50332.5 5033250 -32686 32249 4457.3 445730 -125 126 2.9 290 -883 100 10873 99784 2.65165 299.65165 151.15165 15115.16516 2.65165 299.65164 151.15165 15115.16522 2.65165 299.65165 151.15164999999982 15115.16500 2020-01-01 2020-01-02 2020-01-01 00:14:43 2020-01-02 03:43:04 2020-01-01 00:14:43.000 2020-01-02 03:43:04.000 883 99784 50333.5 5033350 883 99784 50333.5 5033350 -32685 32250 4458.3 445830 -124 127 3.9 390 -884 100 10874 99785 2.65465 299.65465 151.15465 15115.46546 2.65465 299.65466 151.15465 15115.46532 2.65465 299.65465 151.1546500000003 15115.46500 2020-01-01 2020-01-02 2020-01-01 00:14:44 2020-01-02 03:43:05 2020-01-01 00:14:44.000 2020-01-02 03:43:05.000 884 99785 50334.5 5033450 884 99785 50334.5 5033450 -32684 32251 4459.3 445930 -128 127 2.34 234 -885 100 10875 99786 2.65765 299.65765 151.15765 15115.76576 2.65765 299.65765 151.15765 15115.76562 2.65765 299.65765 151.1576499999998 15115.76500 2020-01-01 2020-01-02 2020-01-01 00:14:45 2020-01-02 03:43:06 2020-01-01 00:14:45.000 2020-01-02 03:43:06.000 885 99786 50335.5 5033550 885 99786 50335.5 5033550 -32683 32252 4460.3 446030 -128 123 0.78 78 -886 100 10876 99787 2.66066 299.66066 151.16066 15116.06606 2.66066 299.66068 151.16066 15116.06621 2.66066 299.66066 151.16065999999967 15116.06600 2020-01-01 2020-01-02 2020-01-01 00:14:46 2020-01-02 03:43:07 2020-01-01 00:14:46.000 2020-01-02 03:43:07.000 886 99787 50336.5 5033650 886 99787 50336.5 5033650 -32682 32253 4461.3 446130 -127 124 1.78 178 -887 100 10877 99788 2.66366 299.66366 151.16366 15116.36636 2.66366 299.66367 151.16366 15116.36651 2.66366 299.66366 151.16366000000014 15116.36600 2020-01-01 2020-01-02 2020-01-01 00:14:47 2020-01-02 03:43:08 2020-01-01 00:14:47.000 2020-01-02 03:43:08.000 887 99788 50337.5 5033750 887 99788 50337.5 5033750 -32681 32254 4462.3 446230 -126 125 2.78 278 -888 100 10878 99789 2.66666 299.66666 151.16666 15116.66666 2.66666 299.66666 151.16666 15116.66669 2.66666 299.66666 151.16666000000018 15116.66600 2020-01-01 2020-01-02 2020-01-01 00:14:48 2020-01-02 03:43:09 2020-01-01 00:14:48.000 2020-01-02 03:43:09.000 888 99789 50338.5 5033850 888 99789 50338.5 5033850 -32680 32255 4463.3 446330 -125 126 3.78 378 -889 100 10879 99790 2.66966 299.66966 151.16966 15116.96696 2.66966 299.66968 151.16966 15116.96679 2.66966 299.66966 151.16965999999968 15116.96600 2020-01-01 2020-01-02 2020-01-01 00:14:49 2020-01-02 03:43:10 2020-01-01 00:14:49.000 2020-01-02 03:43:10.000 889 99790 50339.5 5033950 889 99790 50339.5 5033950 -32679 32256 4464.3 446430 -124 127 4.78 478 +881 100 10871 99782 2.64564 299.64564 151.14564 15114.56456 2.64564 299.64566 151.14564 15114.56474 2.64564 299.64564 151.14564000000007 15114.56400 2020-01-01 2020-01-02 2020-01-01 00:14:41 2020-01-02 03:43:02 2020-01-01 00:14:41.000 2020-01-02 03:43:02.000 881 99782 50331.5 5033150 881 99782 50331.5 5033150 -32687 32248 4456.3 445630 -126 125 1.9 190 +882 100 10872 99783 2.64864 299.64864 151.14864 15114.86486 2.64864 299.64865 151.14865 15114.86504 2.64864 299.64864 151.14863999999997 15114.86400 2020-01-01 2020-01-02 2020-01-01 00:14:42 2020-01-02 03:43:03 2020-01-01 00:14:42.000 2020-01-02 03:43:03.000 882 99783 50332.5 5033250 882 99783 50332.5 5033250 -32686 32249 4457.3 445730 -125 126 2.9 290 +883 100 10873 99784 2.65165 299.65165 151.15165 15115.16516 2.65165 299.65164 151.15165 15115.16522 2.65165 299.65165 151.1516499999999 15115.16500 2020-01-01 2020-01-02 2020-01-01 00:14:43 2020-01-02 03:43:04 2020-01-01 00:14:43.000 2020-01-02 03:43:04.000 883 99784 50333.5 5033350 883 99784 50333.5 5033350 -32685 32250 4458.3 445830 -124 127 3.9 390 +884 100 10874 99785 2.65465 299.65465 151.15465 15115.46546 2.65465 299.65466 151.15465 15115.46532 2.65465 299.65465 151.15465000000012 15115.46500 2020-01-01 2020-01-02 2020-01-01 00:14:44 2020-01-02 03:43:05 2020-01-01 00:14:44.000 2020-01-02 03:43:05.000 884 99785 50334.5 5033450 884 99785 50334.5 5033450 -32684 32251 4459.3 445930 -128 127 2.34 234 +885 100 10875 99786 2.65765 299.65765 151.15765 15115.76576 2.65765 299.65765 151.15765 15115.76562 2.65765 299.65765 151.15764999999996 15115.76500 2020-01-01 2020-01-02 2020-01-01 00:14:45 2020-01-02 03:43:06 2020-01-01 00:14:45.000 2020-01-02 03:43:06.000 885 99786 50335.5 5033550 885 99786 50335.5 5033550 -32683 32252 4460.3 446030 -128 123 0.78 78 +886 100 10876 99787 2.66066 299.66066 151.16066 15116.06606 2.66066 299.66068 151.16066 15116.06621 2.66066 299.66066 151.16065999999984 15116.06600 2020-01-01 2020-01-02 2020-01-01 00:14:46 2020-01-02 03:43:07 2020-01-01 00:14:46.000 2020-01-02 03:43:07.000 886 99787 50336.5 5033650 886 99787 50336.5 5033650 -32682 32253 4461.3 446130 -127 124 1.78 178 +887 100 10877 99788 2.66366 299.66366 151.16366 15116.36636 2.66366 299.66367 151.16366 15116.36651 2.66366 299.66366 151.16366000000008 15116.36600 2020-01-01 2020-01-02 2020-01-01 00:14:47 2020-01-02 03:43:08 2020-01-01 00:14:47.000 2020-01-02 03:43:08.000 887 99788 50337.5 5033750 887 99788 50337.5 5033750 -32681 32254 4462.3 446230 -126 125 2.78 278 +888 100 10878 99789 2.66666 299.66666 151.16666 15116.66666 2.66666 299.66666 151.16666 15116.66669 2.66666 299.66666 151.16666000000004 15116.66600 2020-01-01 2020-01-02 2020-01-01 00:14:48 2020-01-02 03:43:09 2020-01-01 00:14:48.000 2020-01-02 03:43:09.000 888 99789 50338.5 5033850 888 99789 50338.5 5033850 -32680 32255 4463.3 446330 -125 126 3.78 378 +889 100 10879 99790 2.66966 299.66966 151.16966 15116.96696 2.66966 299.66968 151.16966 15116.96679 2.66966 299.66966 151.16965999999985 15116.96600 2020-01-01 2020-01-02 2020-01-01 00:14:49 2020-01-02 03:43:10 2020-01-01 00:14:49.000 2020-01-02 03:43:10.000 889 99790 50339.5 5033950 889 99790 50339.5 5033950 -32679 32256 4464.3 446430 -124 127 4.78 478 89 102 10079 99989 0.26726 300.26726 150.26726 15176.99399 0.26726 300.26727 150.26727 15176.9943 0.26726 300.26726 150.26726000000002 15176.99326 2020-01-01 2020-01-02 2020-01-01 00:01:29 2020-01-02 03:46:29 2020-01-01 00:01:29.000 2020-01-02 03:46:29.000 89 99989 50039 5053939 89 99989 50039 5053939 -32480 32455 4618.009900990099 466419 -125 126 -0.12871287128712872 -13 890 100 10880 99791 2.67267 299.67267 151.17267 15117.26726 2.67267 299.67267 151.17267 15117.26708 2.67267 299.67267 151.17266999999995 15117.26700 2020-01-01 2020-01-02 2020-01-01 00:14:50 2020-01-02 03:43:11 2020-01-01 00:14:50.000 2020-01-02 03:43:11.000 890 99791 50340.5 5034050 890 99791 50340.5 5034050 -32678 32257 4465.3 446530 -128 127 3.22 322 -891 100 10881 99792 2.67567 299.67567 151.17567 15117.56756 2.67567 299.6757 151.17567 15117.56768 2.67567 299.67567 151.17567000000005 15117.56700 2020-01-01 2020-01-02 2020-01-01 00:14:51 2020-01-02 03:43:12 2020-01-01 00:14:51.000 2020-01-02 03:43:12.000 891 99792 50341.5 5034150 891 99792 50341.5 5034150 -32677 32258 4466.3 446630 -128 127 1.66 166 -892 100 10882 99793 2.67867 299.67867 151.17867 15117.86786 2.67867 299.67868 151.17868 15117.86802 2.67867 299.67867 151.17866999999987 15117.86700 2020-01-01 2020-01-02 2020-01-01 00:14:52 2020-01-02 03:43:13 2020-01-01 00:14:52.000 2020-01-02 03:43:13.000 892 99793 50342.5 5034250 892 99793 50342.5 5034250 -32676 32259 4467.3 446730 -128 124 0.1 10 -893 100 10883 99794 2.68168 299.68168 151.18168 15118.16816 2.68168 299.68167 151.18168 15118.16816 2.68168 299.68168 151.1816799999998 15118.16800 2020-01-01 2020-01-02 2020-01-01 00:14:53 2020-01-02 03:43:14 2020-01-01 00:14:53.000 2020-01-02 03:43:14.000 893 99794 50343.5 5034350 893 99794 50343.5 5034350 -32675 32260 4468.3 446830 -127 125 1.1 110 -894 100 10884 99795 2.68468 299.68468 151.18468 15118.46846 2.68468 299.6847 151.18468 15118.46826 2.68468 299.68468 151.18468000000018 15118.46800 2020-01-01 2020-01-02 2020-01-01 00:14:54 2020-01-02 03:43:15 2020-01-01 00:14:54.000 2020-01-02 03:43:15.000 894 99795 50344.5 5034450 894 99795 50344.5 5034450 -32674 32261 4469.3 446930 -126 126 2.1 210 -895 100 10885 99796 2.68768 299.68768 151.18768 15118.76876 2.68768 299.68768 151.18768 15118.76855 2.68768 299.68768 151.18767999999972 15118.76800 2020-01-01 2020-01-02 2020-01-01 00:14:55 2020-01-02 03:43:16 2020-01-01 00:14:55.000 2020-01-02 03:43:16.000 895 99796 50345.5 5034550 895 99796 50345.5 5034550 -32673 32262 4470.3 447030 -125 127 3.1 310 -896 100 10886 99797 2.69069 299.69069 151.19069 15119.06906 2.69069 299.6907 151.19069 15119.06915 2.69069 299.69069 151.19068999999993 15119.06900 2020-01-01 2020-01-02 2020-01-01 00:14:56 2020-01-02 03:43:17 2020-01-01 00:14:56.000 2020-01-02 03:43:17.000 896 99797 50346.5 5034650 896 99797 50346.5 5034650 -32672 32263 4471.3 447130 -128 127 1.54 154 +891 100 10881 99792 2.67567 299.67567 151.17567 15117.56756 2.67567 299.6757 151.17567 15117.56768 2.67567 299.67567 151.17567 15117.56700 2020-01-01 2020-01-02 2020-01-01 00:14:51 2020-01-02 03:43:12 2020-01-01 00:14:51.000 2020-01-02 03:43:12.000 891 99792 50341.5 5034150 891 99792 50341.5 5034150 -32677 32258 4466.3 446630 -128 127 1.66 166 +892 100 10882 99793 2.67867 299.67867 151.17867 15117.86786 2.67867 299.67868 151.17868 15117.86802 2.67867 299.67867 151.17867 15117.86700 2020-01-01 2020-01-02 2020-01-01 00:14:52 2020-01-02 03:43:13 2020-01-01 00:14:52.000 2020-01-02 03:43:13.000 892 99793 50342.5 5034250 892 99793 50342.5 5034250 -32676 32259 4467.3 446730 -128 124 0.1 10 +893 100 10883 99794 2.68168 299.68168 151.18168 15118.16816 2.68168 299.68167 151.18168 15118.16816 2.68168 299.68168 151.18167999999991 15118.16800 2020-01-01 2020-01-02 2020-01-01 00:14:53 2020-01-02 03:43:14 2020-01-01 00:14:53.000 2020-01-02 03:43:14.000 893 99794 50343.5 5034350 893 99794 50343.5 5034350 -32675 32260 4468.3 446830 -127 125 1.1 110 +894 100 10884 99795 2.68468 299.68468 151.18468 15118.46846 2.68468 299.6847 151.18468 15118.46826 2.68468 299.68468 151.18468000000007 15118.46800 2020-01-01 2020-01-02 2020-01-01 00:14:54 2020-01-02 03:43:15 2020-01-01 00:14:54.000 2020-01-02 03:43:15.000 894 99795 50344.5 5034450 894 99795 50344.5 5034450 -32674 32261 4469.3 446930 -126 126 2.1 210 +895 100 10885 99796 2.68768 299.68768 151.18768 15118.76876 2.68768 299.68768 151.18768 15118.76855 2.68768 299.68768 151.18767999999992 15118.76800 2020-01-01 2020-01-02 2020-01-01 00:14:55 2020-01-02 03:43:16 2020-01-01 00:14:55.000 2020-01-02 03:43:16.000 895 99796 50345.5 5034550 895 99796 50345.5 5034550 -32673 32262 4470.3 447030 -125 127 3.1 310 +896 100 10886 99797 2.69069 299.69069 151.19069 15119.06906 2.69069 299.6907 151.19069 15119.06915 2.69069 299.69069 151.19069 15119.06900 2020-01-01 2020-01-02 2020-01-01 00:14:56 2020-01-02 03:43:17 2020-01-01 00:14:56.000 2020-01-02 03:43:17.000 896 99797 50346.5 5034650 896 99797 50346.5 5034650 -32672 32263 4471.3 447130 -128 127 1.54 154 897 100 10887 99798 2.69369 299.69369 151.19369 15119.36936 2.69369 299.6937 151.19369 15119.36949 2.69369 299.69369 151.19369000000003 15119.36900 2020-01-01 2020-01-02 2020-01-01 00:14:57 2020-01-02 03:43:18 2020-01-01 00:14:57.000 2020-01-02 03:43:18.000 897 99798 50347.5 5034750 897 99798 50347.5 5034750 -32671 32264 4472.3 447230 -128 127 -0.02 -2 -898 100 10888 99799 2.69669 299.69669 151.19669 15119.66966 2.69669 299.6967 151.19669 15119.66963 2.69669 299.69669 151.19669000000013 15119.66900 2020-01-01 2020-01-02 2020-01-01 00:14:58 2020-01-02 03:43:19 2020-01-01 00:14:58.000 2020-01-02 03:43:19.000 898 99799 50348.5 5034850 898 99799 50348.5 5034850 -32670 32265 4473.3 447330 -128 123 -1.58 -158 -899 100 10889 99800 2.69969 299.69969 151.19969 15119.96996 2.69969 299.6997 151.1997 15119.97038 2.69969 299.69969 151.19968999999995 15119.96900 2020-01-01 2020-01-02 2020-01-01 00:14:59 2020-01-02 03:43:20 2020-01-01 00:14:59.000 2020-01-02 03:43:20.000 899 99800 50349.5 5034950 899 99800 50349.5 5034950 -32669 32266 4474.3 447430 -127 124 -0.58 -58 -9 102 1008 9999 0.02702 300.02702 150.02702 15152.72972 0.02702 300.02704 150.02702 15152.72966 0.02702 300.02702 150.02701999999977 15152.72902 2020-01-01 2020-01-02 2020-01-01 00:00:09 2020-01-02 03:45:09 2020-01-01 00:00:09.000 2020-01-02 03:45:09.000 9 99909 49959 5045859 9 99909 49959 5045859 -32560 32375 4538.009900990099 458339 -124 127 0.9801980198019802 99 -90 102 10080 99990 0.27027 300.27027 150.27027 15177.29729 0.27027 300.27026 150.27026 15177.29694 0.27027 300.27027 150.27027000000027 15177.29727 2020-01-01 2020-01-02 2020-01-01 00:01:30 2020-01-02 03:46:30 2020-01-01 00:01:30.000 2020-01-02 03:46:30.000 90 99990 50040 5054040 90 99990 50040 5054040 -32479 32456 4619.009900990099 466520 -124 127 0.8712871287128713 88 -900 100 10890 99801 2.7027 299.7027 151.2027 15120.27027 2.7027 299.7027 151.2027 15120.27003 2.70270 299.70270 151.20269999999985 15120.27000 2020-01-01 2020-01-02 2020-01-01 00:15:00 2020-01-02 03:43:21 2020-01-01 00:15:00.000 2020-01-02 03:43:21.000 900 99801 50350.5 5035050 900 99801 50350.5 5035050 -32668 32267 4475.3 447530 -126 125 0.42 42 -901 100 10891 99802 2.7057 299.7057 151.2057 15120.57057 2.7057 299.70572 151.2057 15120.57066 2.70570 299.70570 151.20570000000032 15120.57000 2020-01-01 2020-01-02 2020-01-01 00:15:01 2020-01-02 03:43:22 2020-01-01 00:15:01.000 2020-01-02 03:43:22.000 901 99802 50351.5 5035150 901 99802 50351.5 5035150 -32667 32268 4476.3 447630 -125 126 1.42 142 -902 100 10892 99803 2.7087 299.7087 151.2087 15120.87087 2.7087 299.7087 151.2087 15120.87095 2.70870 299.70870 151.20869999999982 15120.87000 2020-01-01 2020-01-02 2020-01-01 00:15:02 2020-01-02 03:43:23 2020-01-01 00:15:02.000 2020-01-02 03:43:23.000 902 99803 50352.5 5035250 902 99803 50352.5 5035250 -32666 32269 4477.3 447730 -124 127 2.42 242 -903 100 10893 99804 2.71171 299.71171 151.21171 15121.17117 2.71171 299.7117 151.21171 15121.1711 2.71171 299.71171 151.2117099999997 15121.17100 2020-01-01 2020-01-02 2020-01-01 00:15:03 2020-01-02 03:43:24 2020-01-01 00:15:03.000 2020-01-02 03:43:24.000 903 99804 50353.5 5035350 903 99804 50353.5 5035350 -32665 32270 4478.3 447830 -128 127 0.86 86 -904 100 10894 99805 2.71471 299.71471 151.21471 15121.47147 2.71471 299.71472 151.21471 15121.47185 2.71471 299.71471 151.21471000000017 15121.47100 2020-01-01 2020-01-02 2020-01-01 00:15:04 2020-01-02 03:43:25 2020-01-01 00:15:04.000 2020-01-02 03:43:25.000 904 99805 50354.5 5035450 904 99805 50354.5 5035450 -32664 32271 4479.3 447930 -128 123 -0.7 -70 -905 100 10895 99806 2.71771 299.71771 151.21771 15121.77177 2.71771 299.7177 151.21771 15121.77149 2.71771 299.71771 151.2177100000002 15121.77100 2020-01-01 2020-01-02 2020-01-01 00:15:05 2020-01-02 03:43:26 2020-01-01 00:15:05.000 2020-01-02 03:43:26.000 905 99806 50355.5 5035550 905 99806 50355.5 5035550 -32663 32272 4480.3 448030 -127 124 0.3 30 -906 100 10896 99807 2.72072 299.72072 151.22072 15122.07207 2.72072 299.72073 151.22072 15122.07212 2.72072 299.72072 151.22071999999986 15122.07200 2020-01-01 2020-01-02 2020-01-01 00:15:06 2020-01-02 03:43:27 2020-01-01 00:15:06.000 2020-01-02 03:43:27.000 906 99807 50356.5 5035650 906 99807 50356.5 5035650 -32662 32273 4481.3 448130 -126 125 1.3 130 +898 100 10888 99799 2.69669 299.69669 151.19669 15119.66966 2.69669 299.6967 151.19669 15119.66963 2.69669 299.69669 151.19669 15119.66900 2020-01-01 2020-01-02 2020-01-01 00:14:58 2020-01-02 03:43:19 2020-01-01 00:14:58.000 2020-01-02 03:43:19.000 898 99799 50348.5 5034850 898 99799 50348.5 5034850 -32670 32265 4473.3 447330 -128 123 -1.58 -158 +899 100 10889 99800 2.69969 299.69969 151.19969 15119.96996 2.69969 299.6997 151.1997 15119.97038 2.69969 299.69969 151.19969 15119.96900 2020-01-01 2020-01-02 2020-01-01 00:14:59 2020-01-02 03:43:20 2020-01-01 00:14:59.000 2020-01-02 03:43:20.000 899 99800 50349.5 5034950 899 99800 50349.5 5034950 -32669 32266 4474.3 447430 -127 124 -0.58 -58 +9 102 1008 9999 0.02702 300.02702 150.02702 15152.72972 0.02702 300.02704 150.02702 15152.72966 0.02702 300.02702 150.02701999999985 15152.72902 2020-01-01 2020-01-02 2020-01-01 00:00:09 2020-01-02 03:45:09 2020-01-01 00:00:09.000 2020-01-02 03:45:09.000 9 99909 49959 5045859 9 99909 49959 5045859 -32560 32375 4538.009900990099 458339 -124 127 0.9801980198019802 99 +90 102 10080 99990 0.27027 300.27027 150.27027 15177.29729 0.27027 300.27026 150.27026 15177.29694 0.27027 300.27027 150.27027000000007 15177.29727 2020-01-01 2020-01-02 2020-01-01 00:01:30 2020-01-02 03:46:30 2020-01-01 00:01:30.000 2020-01-02 03:46:30.000 90 99990 50040 5054040 90 99990 50040 5054040 -32479 32456 4619.009900990099 466520 -124 127 0.8712871287128713 88 +900 100 10890 99801 2.7027 299.7027 151.2027 15120.27027 2.7027 299.7027 151.2027 15120.27003 2.70270 299.70270 151.2026999999999 15120.27000 2020-01-01 2020-01-02 2020-01-01 00:15:00 2020-01-02 03:43:21 2020-01-01 00:15:00.000 2020-01-02 03:43:21.000 900 99801 50350.5 5035050 900 99801 50350.5 5035050 -32668 32267 4475.3 447530 -126 125 0.42 42 +901 100 10891 99802 2.7057 299.7057 151.2057 15120.57057 2.7057 299.70572 151.2057 15120.57066 2.70570 299.70570 151.20570000000015 15120.57000 2020-01-01 2020-01-02 2020-01-01 00:15:01 2020-01-02 03:43:22 2020-01-01 00:15:01.000 2020-01-02 03:43:22.000 901 99802 50351.5 5035150 901 99802 50351.5 5035150 -32667 32268 4476.3 447630 -125 126 1.42 142 +902 100 10892 99803 2.7087 299.7087 151.2087 15120.87087 2.7087 299.7087 151.2087 15120.87095 2.70870 299.70870 151.20869999999996 15120.87000 2020-01-01 2020-01-02 2020-01-01 00:15:02 2020-01-02 03:43:23 2020-01-01 00:15:02.000 2020-01-02 03:43:23.000 902 99803 50352.5 5035250 902 99803 50352.5 5035250 -32666 32269 4477.3 447730 -124 127 2.42 242 +903 100 10893 99804 2.71171 299.71171 151.21171 15121.17117 2.71171 299.7117 151.21171 15121.1711 2.71171 299.71171 151.21170999999987 15121.17100 2020-01-01 2020-01-02 2020-01-01 00:15:03 2020-01-02 03:43:24 2020-01-01 00:15:03.000 2020-01-02 03:43:24.000 903 99804 50353.5 5035350 903 99804 50353.5 5035350 -32665 32270 4478.3 447830 -128 127 0.86 86 +904 100 10894 99805 2.71471 299.71471 151.21471 15121.47147 2.71471 299.71472 151.21471 15121.47185 2.71471 299.71471 151.21471000000008 15121.47100 2020-01-01 2020-01-02 2020-01-01 00:15:04 2020-01-02 03:43:25 2020-01-01 00:15:04.000 2020-01-02 03:43:25.000 904 99805 50354.5 5035450 904 99805 50354.5 5035450 -32664 32271 4479.3 447930 -128 123 -0.7 -70 +905 100 10895 99806 2.71771 299.71771 151.21771 15121.77177 2.71771 299.7177 151.21771 15121.77149 2.71771 299.71771 151.21771000000004 15121.77100 2020-01-01 2020-01-02 2020-01-01 00:15:05 2020-01-02 03:43:26 2020-01-01 00:15:05.000 2020-01-02 03:43:26.000 905 99806 50355.5 5035550 905 99806 50355.5 5035550 -32663 32272 4480.3 448030 -127 124 0.3 30 +906 100 10896 99807 2.72072 299.72072 151.22072 15122.07207 2.72072 299.72073 151.22072 15122.07212 2.72072 299.72072 151.22071999999991 15122.07200 2020-01-01 2020-01-02 2020-01-01 00:15:06 2020-01-02 03:43:27 2020-01-01 00:15:06.000 2020-01-02 03:43:27.000 906 99807 50356.5 5035650 906 99807 50356.5 5035650 -32662 32273 4481.3 448130 -126 125 1.3 130 907 100 10897 99808 2.72372 299.72372 151.22372 15122.37237 2.72372 299.72372 151.22372 15122.37243 2.72372 299.72372 151.22372 15122.37200 2020-01-01 2020-01-02 2020-01-01 00:15:07 2020-01-02 03:43:28 2020-01-01 00:15:07.000 2020-01-02 03:43:28.000 907 99808 50357.5 5035750 907 99808 50357.5 5035750 -32661 32274 4482.3 448230 -125 126 2.3 230 -908 100 10898 99809 2.72672 299.72672 151.22672 15122.67267 2.72672 299.7267 151.22672 15122.67272 2.72672 299.72672 151.22672000000009 15122.67200 2020-01-01 2020-01-02 2020-01-01 00:15:08 2020-01-02 03:43:29 2020-01-01 00:15:08.000 2020-01-02 03:43:29.000 908 99809 50358.5 5035850 908 99809 50358.5 5035850 -32660 32275 4483.3 448330 -124 127 3.3 330 -909 100 10899 99810 2.72972 299.72972 151.22972 15122.97297 2.72972 299.72974 151.22973 15122.97332 2.72972 299.72972 151.22971999999987 15122.97200 2020-01-01 2020-01-02 2020-01-01 00:15:09 2020-01-02 03:43:30 2020-01-01 00:15:09.000 2020-01-02 03:43:30.000 909 99810 50359.5 5035950 909 99810 50359.5 5035950 -32659 32276 4484.3 448430 -128 127 1.74 174 -91 102 10081 99991 0.27327 300.27327 150.27327 15177.6006 0.27327 300.2733 150.27327 15177.60054 0.27327 300.27327 150.2732699999998 15177.60027 2020-01-01 2020-01-02 2020-01-01 00:01:31 2020-01-02 03:46:31 2020-01-01 00:01:31.000 2020-01-02 03:46:31.000 91 99991 50041 5054141 91 99991 50041 5054141 -32478 32457 4620.009900990099 466621 -128 127 -0.6633663366336634 -67 -910 100 10900 99811 2.73273 299.73273 151.23273 15123.27327 2.73273 299.73273 151.23272 15123.27296 2.73273 299.73273 151.23272999999983 15123.27300 2020-01-01 2020-01-02 2020-01-01 00:15:10 2020-01-02 03:43:31 2020-01-01 00:15:10.000 2020-01-02 03:43:31.000 910 99811 50360.5 5036050 910 99811 50360.5 5036050 -32658 32277 4485.3 448530 -128 123 0.18 18 -911 100 10901 99812 2.73573 299.73573 151.23573 15123.57357 2.73573 299.73575 151.23573 15123.57359 2.73573 299.73573 151.23573000000022 15123.57300 2020-01-01 2020-01-02 2020-01-01 00:15:11 2020-01-02 03:43:32 2020-01-01 00:15:11.000 2020-01-02 03:43:32.000 911 99812 50361.5 5036150 911 99812 50361.5 5036150 -32657 32278 4486.3 448630 -127 124 1.18 118 -912 100 10902 99813 2.73873 299.73873 151.23873 15123.87387 2.73873 299.73874 151.23873 15123.8739 2.73873 299.73873 151.23872999999972 15123.87300 2020-01-01 2020-01-02 2020-01-01 00:15:12 2020-01-02 03:43:33 2020-01-01 00:15:12.000 2020-01-02 03:43:33.000 912 99813 50362.5 5036250 912 99813 50362.5 5036250 -32656 32279 4487.3 448730 -126 125 2.18 218 -913 100 10903 99814 2.74174 299.74174 151.24174 15124.17417 2.74174 299.74173 151.24174 15124.17419 2.74174 299.74174 151.24173999999996 15124.17400 2020-01-01 2020-01-02 2020-01-01 00:15:13 2020-01-02 03:43:34 2020-01-01 00:15:13.000 2020-01-02 03:43:34.000 913 99814 50363.5 5036350 913 99814 50363.5 5036350 -32655 32280 4488.3 448830 -125 126 3.18 318 +908 100 10898 99809 2.72672 299.72672 151.22672 15122.67267 2.72672 299.7267 151.22672 15122.67272 2.72672 299.72672 151.22672000000003 15122.67200 2020-01-01 2020-01-02 2020-01-01 00:15:08 2020-01-02 03:43:29 2020-01-01 00:15:08.000 2020-01-02 03:43:29.000 908 99809 50358.5 5035850 908 99809 50358.5 5035850 -32660 32275 4483.3 448330 -124 127 3.3 330 +909 100 10899 99810 2.72972 299.72972 151.22972 15122.97297 2.72972 299.72974 151.22973 15122.97332 2.72972 299.72972 151.22971999999993 15122.97200 2020-01-01 2020-01-02 2020-01-01 00:15:09 2020-01-02 03:43:30 2020-01-01 00:15:09.000 2020-01-02 03:43:30.000 909 99810 50359.5 5035950 909 99810 50359.5 5035950 -32659 32276 4484.3 448430 -128 127 1.74 174 +91 102 10081 99991 0.27327 300.27327 150.27327 15177.6006 0.27327 300.2733 150.27327 15177.60054 0.27327 300.27327 150.2732699999999 15177.60027 2020-01-01 2020-01-02 2020-01-01 00:01:31 2020-01-02 03:46:31 2020-01-01 00:01:31.000 2020-01-02 03:46:31.000 91 99991 50041 5054141 91 99991 50041 5054141 -32478 32457 4620.009900990099 466621 -128 127 -0.6633663366336634 -67 +910 100 10900 99811 2.73273 299.73273 151.23273 15123.27327 2.73273 299.73273 151.23272 15123.27296 2.73273 299.73273 151.23272999999995 15123.27300 2020-01-01 2020-01-02 2020-01-01 00:15:10 2020-01-02 03:43:31 2020-01-01 00:15:10.000 2020-01-02 03:43:31.000 910 99811 50360.5 5036050 910 99811 50360.5 5036050 -32658 32277 4485.3 448530 -128 123 0.18 18 +911 100 10901 99812 2.73573 299.73573 151.23573 15123.57357 2.73573 299.73575 151.23573 15123.57359 2.73573 299.73573 151.2357300000001 15123.57300 2020-01-01 2020-01-02 2020-01-01 00:15:11 2020-01-02 03:43:32 2020-01-01 00:15:11.000 2020-01-02 03:43:32.000 911 99812 50361.5 5036150 911 99812 50361.5 5036150 -32657 32278 4486.3 448630 -127 124 1.18 118 +912 100 10902 99813 2.73873 299.73873 151.23873 15123.87387 2.73873 299.73874 151.23873 15123.8739 2.73873 299.73873 151.23872999999992 15123.87300 2020-01-01 2020-01-02 2020-01-01 00:15:12 2020-01-02 03:43:33 2020-01-01 00:15:12.000 2020-01-02 03:43:33.000 912 99813 50362.5 5036250 912 99813 50362.5 5036250 -32656 32279 4487.3 448730 -126 125 2.18 218 +913 100 10903 99814 2.74174 299.74174 151.24174 15124.17417 2.74174 299.74173 151.24174 15124.17419 2.74174 299.74174 151.24174000000002 15124.17400 2020-01-01 2020-01-02 2020-01-01 00:15:13 2020-01-02 03:43:34 2020-01-01 00:15:13.000 2020-01-02 03:43:34.000 913 99814 50363.5 5036350 913 99814 50363.5 5036350 -32655 32280 4488.3 448830 -125 126 3.18 318 914 100 10904 99815 2.74474 299.74474 151.24474 15124.47447 2.74474 299.74475 151.24474 15124.47479 2.74474 299.74474 151.24474000000006 15124.47400 2020-01-01 2020-01-02 2020-01-01 00:15:14 2020-01-02 03:43:35 2020-01-01 00:15:14.000 2020-01-02 03:43:35.000 914 99815 50364.5 5036450 914 99815 50364.5 5036450 -32654 32281 4489.3 448930 -124 127 4.18 418 -915 100 10905 99816 2.74774 299.74774 151.24774 15124.77477 2.74774 299.74774 151.24774 15124.77447 2.74774 299.74774 151.24774000000014 15124.77400 2020-01-01 2020-01-02 2020-01-01 00:15:15 2020-01-02 03:43:36 2020-01-01 00:15:15.000 2020-01-02 03:43:36.000 915 99816 50365.5 5036550 915 99816 50365.5 5036550 -32653 32282 4490.3 449030 -128 127 2.62 262 -916 100 10906 99817 2.75075 299.75075 151.25075 15125.07507 2.75075 299.75076 151.25075 15125.07507 2.75075 299.75075 151.2507499999998 15125.07500 2020-01-01 2020-01-02 2020-01-01 00:15:16 2020-01-02 03:43:37 2020-01-01 00:15:16.000 2020-01-02 03:43:37.000 916 99817 50366.5 5036650 916 99817 50366.5 5036650 -32652 32283 4491.3 449130 -128 127 1.06 106 -917 100 10907 99818 2.75375 299.75375 151.25375 15125.37537 2.75375 299.75375 151.25375 15125.37536 2.75375 299.75375 151.25374999999988 15125.37500 2020-01-01 2020-01-02 2020-01-01 00:15:17 2020-01-02 03:43:38 2020-01-01 00:15:17.000 2020-01-02 03:43:38.000 917 99818 50367.5 5036750 917 99818 50367.5 5036750 -32651 32284 4492.3 449230 -128 124 -0.5 -50 -918 100 10908 99819 2.75675 299.75675 151.25675 15125.67567 2.75675 299.75674 151.25675 15125.67566 2.75675 299.75675 151.25675000000007 15125.67500 2020-01-01 2020-01-02 2020-01-01 00:15:18 2020-01-02 03:43:39 2020-01-01 00:15:18.000 2020-01-02 03:43:39.000 918 99819 50368.5 5036850 918 99819 50368.5 5036850 -32650 32285 4493.3 449330 -127 125 0.5 50 -919 100 10909 99820 2.75975 299.75975 151.25975 15125.97597 2.75975 299.75977 151.25976 15125.97626 2.75975 299.75975 151.25974999999983 15125.97500 2020-01-01 2020-01-02 2020-01-01 00:15:19 2020-01-02 03:43:40 2020-01-01 00:15:19.000 2020-01-02 03:43:40.000 919 99820 50369.5 5036950 919 99820 50369.5 5036950 -32649 32286 4494.3 449430 -126 126 1.5 150 -92 102 10082 99992 0.27627 300.27627 150.27627 15177.9039 0.27627 300.27628 150.27627 15177.90384 0.27627 300.27627 150.27627000000018 15177.90327 2020-01-01 2020-01-02 2020-01-01 00:01:32 2020-01-02 03:46:32 2020-01-01 00:01:32.000 2020-01-02 03:46:32.000 92 99992 50042 5054242 92 99992 50042 5054242 -32477 32458 4621.009900990099 466722 -128 123 -2.198019801980198 -222 -920 100 10910 99821 2.76276 299.76276 151.26276 15126.27627 2.76276 299.76276 151.26275 15126.27594 2.76276 299.76276 151.26275999999973 15126.27600 2020-01-01 2020-01-02 2020-01-01 00:15:20 2020-01-02 03:43:41 2020-01-01 00:15:20.000 2020-01-02 03:43:41.000 920 99821 50370.5 5037050 920 99821 50370.5 5037050 -32648 32287 4495.3 449530 -125 127 2.5 250 -921 100 10911 99822 2.76576 299.76576 151.26576 15126.57657 2.76576 299.76578 151.26576 15126.57654 2.76576 299.76576 151.2657600000002 15126.57600 2020-01-01 2020-01-02 2020-01-01 00:15:21 2020-01-02 03:43:42 2020-01-01 00:15:21.000 2020-01-02 03:43:42.000 921 99822 50371.5 5037150 921 99822 50371.5 5037150 -32647 32288 4496.3 449630 -128 127 0.94 94 -922 100 10912 99823 2.76876 299.76876 151.26876 15126.87687 2.76876 299.76877 151.26876 15126.87683 2.76876 299.76876 151.26876000000024 15126.87600 2020-01-01 2020-01-02 2020-01-01 00:15:22 2020-01-02 03:43:43 2020-01-01 00:15:22.000 2020-01-02 03:43:43.000 922 99823 50372.5 5037250 922 99823 50372.5 5037250 -32646 32289 4497.3 449730 -128 127 -0.62 -62 -923 100 10913 99824 2.77177 299.77177 151.27177 15127.17717 2.77177 299.77176 151.27177 15127.17713 2.77177 299.77177 151.2717699999999 15127.17700 2020-01-01 2020-01-02 2020-01-01 00:15:23 2020-01-02 03:43:44 2020-01-01 00:15:23.000 2020-01-02 03:43:44.000 923 99824 50373.5 5037350 923 99824 50373.5 5037350 -32645 32290 4498.3 449830 -128 123 -2.18 -218 +915 100 10905 99816 2.74774 299.74774 151.24774 15124.77477 2.74774 299.74774 151.24774 15124.77447 2.74774 299.74774 151.24774000000002 15124.77400 2020-01-01 2020-01-02 2020-01-01 00:15:15 2020-01-02 03:43:36 2020-01-01 00:15:15.000 2020-01-02 03:43:36.000 915 99816 50365.5 5036550 915 99816 50365.5 5036550 -32653 32282 4490.3 449030 -128 127 2.62 262 +916 100 10906 99817 2.75075 299.75075 151.25075 15125.07507 2.75075 299.75076 151.25075 15125.07507 2.75075 299.75075 151.25074999999995 15125.07500 2020-01-01 2020-01-02 2020-01-01 00:15:16 2020-01-02 03:43:37 2020-01-01 00:15:16.000 2020-01-02 03:43:37.000 916 99817 50366.5 5036650 916 99817 50366.5 5036650 -32652 32283 4491.3 449130 -128 127 1.06 106 +917 100 10907 99818 2.75375 299.75375 151.25375 15125.37537 2.75375 299.75375 151.25375 15125.37536 2.75375 299.75375 151.25374999999994 15125.37500 2020-01-01 2020-01-02 2020-01-01 00:15:17 2020-01-02 03:43:38 2020-01-01 00:15:17.000 2020-01-02 03:43:38.000 917 99818 50367.5 5036750 917 99818 50367.5 5036750 -32651 32284 4492.3 449230 -128 124 -0.5 -50 +918 100 10908 99819 2.75675 299.75675 151.25675 15125.67567 2.75675 299.75674 151.25675 15125.67566 2.75675 299.75675 151.25675000000018 15125.67500 2020-01-01 2020-01-02 2020-01-01 00:15:18 2020-01-02 03:43:39 2020-01-01 00:15:18.000 2020-01-02 03:43:39.000 918 99819 50368.5 5036850 918 99819 50368.5 5036850 -32650 32285 4493.3 449330 -127 125 0.5 50 +919 100 10909 99820 2.75975 299.75975 151.25975 15125.97597 2.75975 299.75977 151.25976 15125.97626 2.75975 299.75975 151.25974999999997 15125.97500 2020-01-01 2020-01-02 2020-01-01 00:15:19 2020-01-02 03:43:40 2020-01-01 00:15:19.000 2020-01-02 03:43:40.000 919 99820 50369.5 5036950 919 99820 50369.5 5036950 -32649 32286 4494.3 449430 -126 126 1.5 150 +92 102 10082 99992 0.27627 300.27627 150.27627 15177.9039 0.27627 300.27628 150.27627 15177.90384 0.27627 300.27627 150.27627000000007 15177.90327 2020-01-01 2020-01-02 2020-01-01 00:01:32 2020-01-02 03:46:32 2020-01-01 00:01:32.000 2020-01-02 03:46:32.000 92 99992 50042 5054242 92 99992 50042 5054242 -32477 32458 4621.009900990099 466722 -128 123 -2.198019801980198 -222 +920 100 10910 99821 2.76276 299.76276 151.26276 15126.27627 2.76276 299.76276 151.26275 15126.27594 2.76276 299.76276 151.2627599999999 15126.27600 2020-01-01 2020-01-02 2020-01-01 00:15:20 2020-01-02 03:43:41 2020-01-01 00:15:20.000 2020-01-02 03:43:41.000 920 99821 50370.5 5037050 920 99821 50370.5 5037050 -32648 32287 4495.3 449530 -125 127 2.5 250 +921 100 10911 99822 2.76576 299.76576 151.26576 15126.57657 2.76576 299.76578 151.26576 15126.57654 2.76576 299.76576 151.2657600000001 15126.57600 2020-01-01 2020-01-02 2020-01-01 00:15:21 2020-01-02 03:43:42 2020-01-01 00:15:21.000 2020-01-02 03:43:42.000 921 99822 50371.5 5037150 921 99822 50371.5 5037150 -32647 32288 4496.3 449630 -128 127 0.94 94 +922 100 10912 99823 2.76876 299.76876 151.26876 15126.87687 2.76876 299.76877 151.26876 15126.87683 2.76876 299.76876 151.26876000000007 15126.87600 2020-01-01 2020-01-02 2020-01-01 00:15:22 2020-01-02 03:43:43 2020-01-01 00:15:22.000 2020-01-02 03:43:43.000 922 99823 50372.5 5037250 922 99823 50372.5 5037250 -32646 32289 4497.3 449730 -128 127 -0.62 -62 +923 100 10913 99824 2.77177 299.77177 151.27177 15127.17717 2.77177 299.77176 151.27177 15127.17713 2.77177 299.77177 151.27176999999995 15127.17700 2020-01-01 2020-01-02 2020-01-01 00:15:23 2020-01-02 03:43:44 2020-01-01 00:15:23.000 2020-01-02 03:43:44.000 923 99824 50373.5 5037350 923 99824 50373.5 5037350 -32645 32290 4498.3 449830 -128 123 -2.18 -218 924 100 10914 99825 2.77477 299.77477 151.27477 15127.47747 2.77477 299.77478 151.27477 15127.47776 2.77477 299.77477 151.27477 15127.47700 2020-01-01 2020-01-02 2020-01-01 00:15:24 2020-01-02 03:43:45 2020-01-01 00:15:24.000 2020-01-02 03:43:45.000 924 99825 50374.5 5037450 924 99825 50374.5 5037450 -32644 32291 4499.3 449930 -127 124 -1.18 -118 -925 100 10915 99826 2.77777 299.77777 151.27777 15127.77777 2.77777 299.77777 151.27777 15127.77741 2.77777 299.77777 151.2777700000001 15127.77700 2020-01-01 2020-01-02 2020-01-01 00:15:25 2020-01-02 03:43:46 2020-01-01 00:15:25.000 2020-01-02 03:43:46.000 925 99826 50375.5 5037550 925 99826 50375.5 5037550 -32643 32292 4500.3 450030 -126 125 -0.18 -18 -926 100 10916 99827 2.78078 299.78078 151.28078 15128.07807 2.78078 299.7808 151.28078 15128.078 2.78078 299.78078 151.28077999999974 15128.07800 2020-01-01 2020-01-02 2020-01-01 00:15:26 2020-01-02 03:43:47 2020-01-01 00:15:26.000 2020-01-02 03:43:47.000 926 99827 50376.5 5037650 926 99827 50376.5 5037650 -32642 32293 4501.3 450130 -125 126 0.82 82 -927 100 10917 99828 2.78378 299.78378 151.28378 15128.37837 2.78378 299.78378 151.28378 15128.3783 2.78378 299.78378 151.28377999999984 15128.37800 2020-01-01 2020-01-02 2020-01-01 00:15:27 2020-01-02 03:43:48 2020-01-01 00:15:27.000 2020-01-02 03:43:48.000 927 99828 50377.5 5037750 927 99828 50377.5 5037750 -32641 32294 4502.3 450230 -124 127 1.82 182 -928 100 10918 99829 2.78678 299.78678 151.28678 15128.67867 2.78678 299.78677 151.28678 15128.6786 2.78678 299.78678 151.28678000000025 15128.67800 2020-01-01 2020-01-02 2020-01-01 00:15:28 2020-01-02 03:43:49 2020-01-01 00:15:28.000 2020-01-02 03:43:49.000 928 99829 50378.5 5037850 928 99829 50378.5 5037850 -32640 32295 4503.3 450330 -128 127 0.26 26 -929 100 10919 99830 2.78978 299.78978 151.28978 15128.97897 2.78978 299.7898 151.28979 15128.97923 2.78978 299.78978 151.28977999999975 15128.97800 2020-01-01 2020-01-02 2020-01-01 00:15:29 2020-01-02 03:43:50 2020-01-01 00:15:29.000 2020-01-02 03:43:50.000 929 99830 50379.5 5037950 929 99830 50379.5 5037950 -32639 32296 4504.3 450430 -128 123 -1.3 -130 -93 102 10083 99993 0.27927 300.27927 150.27927 15178.2072 0.27927 300.27927 150.27927 15178.20715 0.27927 300.27927 150.2792699999997 15178.20627 2020-01-01 2020-01-02 2020-01-01 00:01:33 2020-01-02 03:46:33 2020-01-01 00:01:33.000 2020-01-02 03:46:33.000 93 99993 50043 5054343 93 99993 50043 5054343 -32476 32459 4622.009900990099 466823 -127 124 -1.198019801980198 -121 -930 100 10920 99831 2.79279 299.79279 151.29279 15129.27927 2.79279 299.7928 151.29278 15129.27888 2.79279 299.79279 151.29279 15129.27900 2020-01-01 2020-01-02 2020-01-01 00:15:30 2020-01-02 03:43:51 2020-01-01 00:15:30.000 2020-01-02 03:43:51.000 930 99831 50380.5 5038050 930 99831 50380.5 5038050 -32638 32297 4505.3 450530 -127 124 -0.3 -30 -931 100 10921 99832 2.79579 299.79579 151.29579 15129.57957 2.79579 299.7958 151.29579 15129.57963 2.79579 299.79579 151.2957900000001 15129.57900 2020-01-01 2020-01-02 2020-01-01 00:15:31 2020-01-02 03:43:52 2020-01-01 00:15:31.000 2020-01-02 03:43:52.000 931 99832 50381.5 5038150 931 99832 50381.5 5038150 -32637 32298 4506.3 450630 -126 125 0.7 70 -932 100 10922 99833 2.79879 299.79879 151.29879 15129.87987 2.79879 299.7988 151.29879 15129.87977 2.79879 299.79879 151.29879000000017 15129.87900 2020-01-01 2020-01-02 2020-01-01 00:15:32 2020-01-02 03:43:53 2020-01-01 00:15:32.000 2020-01-02 03:43:53.000 932 99833 50382.5 5038250 932 99833 50382.5 5038250 -32636 32299 4507.3 450730 -125 126 1.7 170 -933 100 10923 99834 2.8018 299.8018 151.3018 15130.18018 2.8018 299.8018 151.3018 15130.18011 2.80180 299.80180 151.30179999999984 15130.18000 2020-01-01 2020-01-02 2020-01-01 00:15:33 2020-01-02 03:43:54 2020-01-01 00:15:33.000 2020-01-02 03:43:54.000 933 99834 50383.5 5038350 933 99834 50383.5 5038350 -32635 32300 4508.3 450830 -124 127 2.7 270 +925 100 10915 99826 2.77777 299.77777 151.27777 15127.77777 2.77777 299.77777 151.27777 15127.77741 2.77777 299.77777 151.27777000000003 15127.77700 2020-01-01 2020-01-02 2020-01-01 00:15:25 2020-01-02 03:43:46 2020-01-01 00:15:25.000 2020-01-02 03:43:46.000 925 99826 50375.5 5037550 925 99826 50375.5 5037550 -32643 32292 4500.3 450030 -126 125 -0.18 -18 +926 100 10916 99827 2.78078 299.78078 151.28078 15128.07807 2.78078 299.7808 151.28078 15128.078 2.78078 299.78078 151.28077999999994 15128.07800 2020-01-01 2020-01-02 2020-01-01 00:15:26 2020-01-02 03:43:47 2020-01-01 00:15:26.000 2020-01-02 03:43:47.000 926 99827 50376.5 5037650 926 99827 50376.5 5037650 -32642 32293 4501.3 450130 -125 126 0.82 82 +927 100 10917 99828 2.78378 299.78378 151.28378 15128.37837 2.78378 299.78378 151.28378 15128.3783 2.78378 299.78378 151.28377999999992 15128.37800 2020-01-01 2020-01-02 2020-01-01 00:15:27 2020-01-02 03:43:48 2020-01-01 00:15:27.000 2020-01-02 03:43:48.000 927 99828 50377.5 5037750 927 99828 50377.5 5037750 -32641 32294 4502.3 450230 -124 127 1.82 182 +928 100 10918 99829 2.78678 299.78678 151.28678 15128.67867 2.78678 299.78677 151.28678 15128.6786 2.78678 299.78678 151.28678000000008 15128.67800 2020-01-01 2020-01-02 2020-01-01 00:15:28 2020-01-02 03:43:49 2020-01-01 00:15:28.000 2020-01-02 03:43:49.000 928 99829 50378.5 5037850 928 99829 50378.5 5037850 -32640 32295 4503.3 450330 -128 127 0.26 26 +929 100 10919 99830 2.78978 299.78978 151.28978 15128.97897 2.78978 299.7898 151.28979 15128.97923 2.78978 299.78978 151.28977999999995 15128.97800 2020-01-01 2020-01-02 2020-01-01 00:15:29 2020-01-02 03:43:50 2020-01-01 00:15:29.000 2020-01-02 03:43:50.000 929 99830 50379.5 5037950 929 99830 50379.5 5037950 -32639 32296 4504.3 450430 -128 123 -1.3 -130 +93 102 10083 99993 0.27927 300.27927 150.27927 15178.2072 0.27927 300.27927 150.27927 15178.20715 0.27927 300.27927 150.2792699999999 15178.20627 2020-01-01 2020-01-02 2020-01-01 00:01:33 2020-01-02 03:46:33 2020-01-01 00:01:33.000 2020-01-02 03:46:33.000 93 99993 50043 5054343 93 99993 50043 5054343 -32476 32459 4622.009900990099 466823 -127 124 -1.198019801980198 -121 +930 100 10920 99831 2.79279 299.79279 151.29279 15129.27927 2.79279 299.7928 151.29278 15129.27888 2.79279 299.79279 151.29279000000002 15129.27900 2020-01-01 2020-01-02 2020-01-01 00:15:30 2020-01-02 03:43:51 2020-01-01 00:15:30.000 2020-01-02 03:43:51.000 930 99831 50380.5 5038050 930 99831 50380.5 5038050 -32638 32297 4505.3 450530 -127 124 -0.3 -30 +931 100 10921 99832 2.79579 299.79579 151.29579 15129.57957 2.79579 299.7958 151.29579 15129.57963 2.79579 299.79579 151.29579000000007 15129.57900 2020-01-01 2020-01-02 2020-01-01 00:15:31 2020-01-02 03:43:52 2020-01-01 00:15:31.000 2020-01-02 03:43:52.000 931 99832 50381.5 5038150 931 99832 50381.5 5038150 -32637 32298 4506.3 450630 -126 125 0.7 70 +932 100 10922 99833 2.79879 299.79879 151.29879 15129.87987 2.79879 299.7988 151.29879 15129.87977 2.79879 299.79879 151.29879000000003 15129.87900 2020-01-01 2020-01-02 2020-01-01 00:15:32 2020-01-02 03:43:53 2020-01-01 00:15:32.000 2020-01-02 03:43:53.000 932 99833 50382.5 5038250 932 99833 50382.5 5038250 -32636 32299 4507.3 450730 -125 126 1.7 170 +933 100 10923 99834 2.8018 299.8018 151.3018 15130.18018 2.8018 299.8018 151.3018 15130.18011 2.80180 299.80180 151.3018 15130.18000 2020-01-01 2020-01-02 2020-01-01 00:15:33 2020-01-02 03:43:54 2020-01-01 00:15:33.000 2020-01-02 03:43:54.000 933 99834 50383.5 5038350 933 99834 50383.5 5038350 -32635 32300 4508.3 450830 -124 127 2.7 270 934 100 10924 99835 2.8048 299.8048 151.3048 15130.48048 2.8048 299.8048 151.3048 15130.48071 2.80480 299.80480 151.30479999999991 15130.48000 2020-01-01 2020-01-02 2020-01-01 00:15:34 2020-01-02 03:43:55 2020-01-01 00:15:34.000 2020-01-02 03:43:55.000 934 99835 50384.5 5038450 934 99835 50384.5 5038450 -32634 32301 4509.3 450930 -128 127 1.14 114 -935 100 10925 99836 2.8078 299.8078 151.3078 15130.78078 2.8078 299.8078 151.3078 15130.78034 2.80780 299.80780 151.30780000000001 15130.78000 2020-01-01 2020-01-02 2020-01-01 00:15:35 2020-01-02 03:43:56 2020-01-01 00:15:35.000 2020-01-02 03:43:56.000 935 99836 50385.5 5038550 935 99836 50385.5 5038550 -32633 32302 4510.3 451030 -128 123 -0.42 -42 -936 100 10926 99837 2.81081 299.81081 151.31081 15131.08108 2.81081 299.81082 151.31081 15131.0811 2.81081 299.81081 151.31081000000026 15131.08100 2020-01-01 2020-01-02 2020-01-01 00:15:36 2020-01-02 03:43:57 2020-01-01 00:15:36.000 2020-01-02 03:43:57.000 936 99837 50386.5 5038650 936 99837 50386.5 5038650 -32632 32303 4511.3 451130 -127 124 0.58 58 -937 100 10927 99838 2.81381 299.81381 151.31381 15131.38138 2.81381 299.8138 151.31381 15131.38124 2.81381 299.81381 151.31380999999976 15131.38100 2020-01-01 2020-01-02 2020-01-01 00:15:37 2020-01-02 03:43:58 2020-01-01 00:15:37.000 2020-01-02 03:43:58.000 937 99838 50387.5 5038750 937 99838 50387.5 5038750 -32631 32304 4512.3 451230 -126 125 1.58 158 -938 100 10928 99839 2.81681 299.81681 151.31681 15131.68168 2.81681 299.8168 151.31681 15131.68157 2.81681 299.81681 151.31681000000015 15131.68100 2020-01-01 2020-01-02 2020-01-01 00:15:38 2020-01-02 03:43:59 2020-01-01 00:15:38.000 2020-01-02 03:43:59.000 938 99839 50388.5 5038850 938 99839 50388.5 5038850 -32630 32305 4513.3 451330 -125 126 2.58 258 -939 100 10929 99840 2.81981 299.81981 151.31981 15131.98198 2.81982 299.81982 151.31982 15131.98217 2.81981 299.81981 151.31981000000027 15131.98100 2020-01-01 2020-01-02 2020-01-01 00:15:39 2020-01-02 03:44:00 2020-01-01 00:15:39.000 2020-01-02 03:44:00.000 939 99840 50389.5 5038950 939 99840 50389.5 5038950 -32629 32306 4514.3 451430 -124 127 3.58 358 -94 102 10084 99994 0.28228 300.28228 150.28228 15178.51051 0.28228 300.2823 150.28228 15178.51078 0.28228 300.28228 150.28227999999996 15178.51028 2020-01-01 2020-01-02 2020-01-01 00:01:34 2020-01-02 03:46:34 2020-01-01 00:01:34.000 2020-01-02 03:46:34.000 94 99994 50044 5054444 94 99994 50044 5054444 -32475 32460 4623.009900990099 466924 -126 125 -0.19801980198019803 -20 -940 100 10930 99841 2.82282 299.82282 151.32282 15132.28228 2.82282 299.8228 151.32282 15132.28247 2.82282 299.82282 151.3228199999999 15132.28200 2020-01-01 2020-01-02 2020-01-01 00:15:40 2020-01-02 03:44:01 2020-01-01 00:15:40.000 2020-01-02 03:44:01.000 940 99841 50390.5 5039050 940 99841 50390.5 5039050 -32628 32307 4515.3 451530 -128 127 2.02 202 -941 100 10931 99842 2.82582 299.82582 151.32582 15132.58258 2.82582 299.82584 151.32582 15132.58257 2.82582 299.82582 151.32582000000002 15132.58200 2020-01-01 2020-01-02 2020-01-01 00:15:41 2020-01-02 03:44:02 2020-01-01 00:15:41.000 2020-01-02 03:44:02.000 941 99842 50391.5 5039150 941 99842 50391.5 5039150 -32627 32308 4516.3 451630 -128 127 0.46 46 -942 100 10932 99843 2.82882 299.82882 151.32882 15132.88288 2.82882 299.82883 151.32882 15132.88275 2.82882 299.82882 151.32882000000012 15132.88200 2020-01-01 2020-01-02 2020-01-01 00:15:42 2020-01-02 03:44:03 2020-01-01 00:15:42.000 2020-01-02 03:44:03.000 942 99843 50392.5 5039250 942 99843 50392.5 5039250 -32626 32309 4517.3 451730 -128 124 -1.1 -110 -943 100 10933 99844 2.83183 299.83183 151.33183 15133.18318 2.83183 299.83182 151.33183 15133.18304 2.83183 299.83183 151.33182999999977 15133.18300 2020-01-01 2020-01-02 2020-01-01 00:15:43 2020-01-02 03:44:04 2020-01-01 00:15:43.000 2020-01-02 03:44:04.000 943 99844 50393.5 5039350 943 99844 50393.5 5039350 -32625 32310 4518.3 451830 -127 125 -0.1 -10 -944 100 10934 99845 2.83483 299.83483 151.33483 15133.48348 2.83483 299.83484 151.33483 15133.48364 2.83483 299.83483 151.3348299999998 15133.48300 2020-01-01 2020-01-02 2020-01-01 00:15:44 2020-01-02 03:44:05 2020-01-01 00:15:44.000 2020-01-02 03:44:05.000 944 99845 50394.5 5039450 944 99845 50394.5 5039450 -32624 32311 4519.3 451930 -126 126 0.9 90 -945 100 10935 99846 2.83783 299.83783 151.33783 15133.78378 2.83783 299.83783 151.33783 15133.78393 2.83783 299.83783 151.33783000000028 15133.78300 2020-01-01 2020-01-02 2020-01-01 00:15:45 2020-01-02 03:44:06 2020-01-01 00:15:45.000 2020-01-02 03:44:06.000 945 99846 50395.5 5039550 945 99846 50395.5 5039550 -32623 32312 4520.3 452030 -125 127 1.9 190 -946 100 10936 99847 2.84084 299.84084 151.34084 15134.08408 2.84084 299.84085 151.34084 15134.08404 2.84084 299.84084 151.34084000000018 15134.08400 2020-01-01 2020-01-02 2020-01-01 00:15:46 2020-01-02 03:44:07 2020-01-01 00:15:46.000 2020-01-02 03:44:07.000 946 99847 50396.5 5039650 946 99847 50396.5 5039650 -32622 32313 4521.3 452130 -128 127 0.34 34 -947 100 10937 99848 2.84384 299.84384 151.34384 15134.38438 2.84384 299.84384 151.34384 15134.38421 2.84384 299.84384 151.34383999999966 15134.38400 2020-01-01 2020-01-02 2020-01-01 00:15:47 2020-01-02 03:44:08 2020-01-01 00:15:47.000 2020-01-02 03:44:08.000 947 99848 50397.5 5039750 947 99848 50397.5 5039750 -32621 32314 4522.3 452230 -128 127 -1.22 -122 -948 100 10938 99849 2.84684 299.84684 151.34684 15134.68468 2.84684 299.84683 151.34684 15134.68452 2.84684 299.84684 151.34684000000013 15134.68400 2020-01-01 2020-01-02 2020-01-01 00:15:48 2020-01-02 03:44:09 2020-01-01 00:15:48.000 2020-01-02 03:44:09.000 948 99849 50398.5 5039850 948 99849 50398.5 5039850 -32620 32315 4523.3 452330 -128 123 -2.78 -278 -949 100 10939 99850 2.84984 299.84984 151.34984 15134.98498 2.84985 299.84985 151.34985 15134.98527 2.84984 299.84984 151.34984000000017 15134.98400 2020-01-01 2020-01-02 2020-01-01 00:15:49 2020-01-02 03:44:10 2020-01-01 00:15:49.000 2020-01-02 03:44:10.000 949 99850 50399.5 5039950 949 99850 50399.5 5039950 -32619 32316 4524.3 452430 -127 124 -1.78 -178 +935 100 10925 99836 2.8078 299.8078 151.3078 15130.78078 2.8078 299.8078 151.3078 15130.78034 2.80780 299.80780 151.3078 15130.78000 2020-01-01 2020-01-02 2020-01-01 00:15:35 2020-01-02 03:43:56 2020-01-01 00:15:35.000 2020-01-02 03:43:56.000 935 99836 50385.5 5038550 935 99836 50385.5 5038550 -32633 32302 4510.3 451030 -128 123 -0.42 -42 +936 100 10926 99837 2.81081 299.81081 151.31081 15131.08108 2.81081 299.81082 151.31081 15131.0811 2.81081 299.81081 151.31081000000006 15131.08100 2020-01-01 2020-01-02 2020-01-01 00:15:36 2020-01-02 03:43:57 2020-01-01 00:15:36.000 2020-01-02 03:43:57.000 936 99837 50386.5 5038650 936 99837 50386.5 5038650 -32632 32303 4511.3 451130 -127 124 0.58 58 +937 100 10927 99838 2.81381 299.81381 151.31381 15131.38138 2.81381 299.8138 151.31381 15131.38124 2.81381 299.81381 151.31380999999993 15131.38100 2020-01-01 2020-01-02 2020-01-01 00:15:37 2020-01-02 03:43:58 2020-01-01 00:15:37.000 2020-01-02 03:43:58.000 937 99838 50387.5 5038750 937 99838 50387.5 5038750 -32631 32304 4512.3 451230 -126 125 1.58 158 +938 100 10928 99839 2.81681 299.81681 151.31681 15131.68168 2.81681 299.8168 151.31681 15131.68157 2.81681 299.81681 151.31681000000003 15131.68100 2020-01-01 2020-01-02 2020-01-01 00:15:38 2020-01-02 03:43:59 2020-01-01 00:15:38.000 2020-01-02 03:43:59.000 938 99839 50388.5 5038850 938 99839 50388.5 5038850 -32630 32305 4513.3 451330 -125 126 2.58 258 +939 100 10929 99840 2.81981 299.81981 151.31981 15131.98198 2.81982 299.81982 151.31982 15131.98217 2.81981 299.81981 151.31981000000007 15131.98100 2020-01-01 2020-01-02 2020-01-01 00:15:39 2020-01-02 03:44:00 2020-01-01 00:15:39.000 2020-01-02 03:44:00.000 939 99840 50389.5 5038950 939 99840 50389.5 5038950 -32629 32306 4514.3 451430 -124 127 3.58 358 +94 102 10084 99994 0.28228 300.28228 150.28228 15178.51051 0.28228 300.2823 150.28228 15178.51078 0.28228 300.28228 150.28228 15178.51028 2020-01-01 2020-01-02 2020-01-01 00:01:34 2020-01-02 03:46:34 2020-01-01 00:01:34.000 2020-01-02 03:46:34.000 94 99994 50044 5054444 94 99994 50044 5054444 -32475 32460 4623.009900990099 466924 -126 125 -0.19801980198019803 -20 +940 100 10930 99841 2.82282 299.82282 151.32282 15132.28228 2.82282 299.8228 151.32282 15132.28247 2.82282 299.82282 151.32281999999998 15132.28200 2020-01-01 2020-01-02 2020-01-01 00:15:40 2020-01-02 03:44:01 2020-01-01 00:15:40.000 2020-01-02 03:44:01.000 940 99841 50390.5 5039050 940 99841 50390.5 5039050 -32628 32307 4515.3 451530 -128 127 2.02 202 +941 100 10931 99842 2.82582 299.82582 151.32582 15132.58258 2.82582 299.82584 151.32582 15132.58257 2.82582 299.82582 151.32582 15132.58200 2020-01-01 2020-01-02 2020-01-01 00:15:41 2020-01-02 03:44:02 2020-01-01 00:15:41.000 2020-01-02 03:44:02.000 941 99842 50391.5 5039150 941 99842 50391.5 5039150 -32627 32308 4516.3 451630 -128 127 0.46 46 +942 100 10932 99843 2.82882 299.82882 151.32882 15132.88288 2.82882 299.82883 151.32882 15132.88275 2.82882 299.82882 151.32882000000006 15132.88200 2020-01-01 2020-01-02 2020-01-01 00:15:42 2020-01-02 03:44:03 2020-01-01 00:15:42.000 2020-01-02 03:44:03.000 942 99843 50392.5 5039250 942 99843 50392.5 5039250 -32626 32309 4517.3 451730 -128 124 -1.1 -110 +943 100 10933 99844 2.83183 299.83183 151.33183 15133.18318 2.83183 299.83182 151.33183 15133.18304 2.83183 299.83183 151.33182999999994 15133.18300 2020-01-01 2020-01-02 2020-01-01 00:15:43 2020-01-02 03:44:04 2020-01-01 00:15:43.000 2020-01-02 03:44:04.000 943 99844 50393.5 5039350 943 99844 50393.5 5039350 -32625 32310 4518.3 451830 -127 125 -0.1 -10 +944 100 10934 99845 2.83483 299.83483 151.33483 15133.48348 2.83483 299.83484 151.33483 15133.48364 2.83483 299.83483 151.3348299999999 15133.48300 2020-01-01 2020-01-02 2020-01-01 00:15:44 2020-01-02 03:44:05 2020-01-01 00:15:44.000 2020-01-02 03:44:05.000 944 99845 50394.5 5039450 944 99845 50394.5 5039450 -32624 32311 4519.3 451930 -126 126 0.9 90 +945 100 10935 99846 2.83783 299.83783 151.33783 15133.78378 2.83783 299.83783 151.33783 15133.78393 2.83783 299.83783 151.3378300000001 15133.78300 2020-01-01 2020-01-02 2020-01-01 00:15:45 2020-01-02 03:44:06 2020-01-01 00:15:45.000 2020-01-02 03:44:06.000 945 99846 50395.5 5039550 945 99846 50395.5 5039550 -32623 32312 4520.3 452030 -125 127 1.9 190 +946 100 10936 99847 2.84084 299.84084 151.34084 15134.08408 2.84084 299.84085 151.34084 15134.08404 2.84084 299.84084 151.34084000000004 15134.08400 2020-01-01 2020-01-02 2020-01-01 00:15:46 2020-01-02 03:44:07 2020-01-01 00:15:46.000 2020-01-02 03:44:07.000 946 99847 50396.5 5039650 946 99847 50396.5 5039650 -32622 32313 4521.3 452130 -128 127 0.34 34 +947 100 10937 99848 2.84384 299.84384 151.34384 15134.38438 2.84384 299.84384 151.34384 15134.38421 2.84384 299.84384 151.34383999999983 15134.38400 2020-01-01 2020-01-02 2020-01-01 00:15:47 2020-01-02 03:44:08 2020-01-01 00:15:47.000 2020-01-02 03:44:08.000 947 99848 50397.5 5039750 947 99848 50397.5 5039750 -32621 32314 4522.3 452230 -128 127 -1.22 -122 +948 100 10938 99849 2.84684 299.84684 151.34684 15134.68468 2.84684 299.84683 151.34684 15134.68452 2.84684 299.84684 151.34684000000007 15134.68400 2020-01-01 2020-01-02 2020-01-01 00:15:48 2020-01-02 03:44:09 2020-01-01 00:15:48.000 2020-01-02 03:44:09.000 948 99849 50398.5 5039850 948 99849 50398.5 5039850 -32620 32315 4523.3 452330 -128 123 -2.78 -278 +949 100 10939 99850 2.84984 299.84984 151.34984 15134.98498 2.84985 299.84985 151.34985 15134.98527 2.84984 299.84984 151.34984000000003 15134.98400 2020-01-01 2020-01-02 2020-01-01 00:15:49 2020-01-02 03:44:10 2020-01-01 00:15:49.000 2020-01-02 03:44:10.000 949 99850 50399.5 5039950 949 99850 50399.5 5039950 -32619 32316 4524.3 452430 -127 124 -1.78 -178 95 102 10085 99995 0.28528 300.28528 150.28528 15178.81381 0.28528 300.28528 150.28528 15178.81343 0.28528 300.28528 150.28528000000003 15178.81328 2020-01-01 2020-01-02 2020-01-01 00:01:35 2020-01-02 03:46:35 2020-01-01 00:01:35.000 2020-01-02 03:46:35.000 95 99995 50045 5054545 95 99995 50045 5054545 -32474 32461 4624.009900990099 467025 -125 126 0.801980198019802 81 -950 100 10940 99851 2.85285 299.85285 151.35285 15135.28528 2.85285 299.85284 151.35285 15135.28541 2.85285 299.85285 151.35284999999993 15135.28500 2020-01-01 2020-01-02 2020-01-01 00:15:50 2020-01-02 03:44:11 2020-01-01 00:15:50.000 2020-01-02 03:44:11.000 950 99851 50400.5 5040050 950 99851 50400.5 5040050 -32618 32317 4525.3 452530 -126 125 -0.78 -78 +950 100 10940 99851 2.85285 299.85285 151.35285 15135.28528 2.85285 299.85284 151.35285 15135.28541 2.85285 299.85285 151.35285000000005 15135.28500 2020-01-01 2020-01-02 2020-01-01 00:15:50 2020-01-02 03:44:11 2020-01-01 00:15:50.000 2020-01-02 03:44:11.000 950 99851 50400.5 5040050 950 99851 50400.5 5040050 -32618 32317 4525.3 452530 -126 125 -0.78 -78 951 100 10941 99852 2.85585 299.85585 151.35585 15135.58558 2.85585 299.85587 151.35585 15135.58551 2.85585 299.85585 151.35584999999995 15135.58500 2020-01-01 2020-01-02 2020-01-01 00:15:51 2020-01-02 03:44:12 2020-01-01 00:15:51.000 2020-01-02 03:44:12.000 951 99852 50401.5 5040150 951 99852 50401.5 5040150 -32617 32318 4526.3 452630 -125 126 0.22 22 -952 100 10942 99853 2.85885 299.85885 151.35885 15135.88588 2.85885 299.85886 151.35885 15135.88568 2.85885 299.85885 151.35885 15135.88500 2020-01-01 2020-01-02 2020-01-01 00:15:52 2020-01-02 03:44:13 2020-01-01 00:15:52.000 2020-01-02 03:44:13.000 952 99853 50402.5 5040250 952 99853 50402.5 5040250 -32616 32319 4527.3 452730 -124 127 1.22 122 -953 100 10943 99854 2.86186 299.86186 151.36186 15136.18618 2.86186 299.86185 151.36185 15136.18598 2.86186 299.86186 151.3618600000001 15136.18600 2020-01-01 2020-01-02 2020-01-01 00:15:53 2020-01-02 03:44:14 2020-01-01 00:15:53.000 2020-01-02 03:44:14.000 953 99854 50403.5 5040350 953 99854 50403.5 5040350 -32615 32320 4528.3 452830 -128 127 -0.34 -34 -954 100 10944 99855 2.86486 299.86486 151.36486 15136.48648 2.86486 299.86487 151.36486 15136.48674 2.86486 299.86486 151.3648599999999 15136.48600 2020-01-01 2020-01-02 2020-01-01 00:15:54 2020-01-02 03:44:15 2020-01-01 00:15:54.000 2020-01-02 03:44:15.000 954 99855 50404.5 5040450 954 99855 50404.5 5040450 -32614 32321 4529.3 452930 -128 123 -1.9 -190 -955 100 10945 99856 2.86786 299.86786 151.36786 15136.78678 2.86786 299.86786 151.36786 15136.78688 2.86786 299.86786 151.36786000000006 15136.78600 2020-01-01 2020-01-02 2020-01-01 00:15:55 2020-01-02 03:44:16 2020-01-01 00:15:55.000 2020-01-02 03:44:16.000 955 99856 50405.5 5040550 955 99856 50405.5 5040550 -32613 32322 4530.3 453030 -127 124 -0.9 -90 -956 100 10946 99857 2.87087 299.87087 151.37087 15137.08708 2.87087 299.87088 151.37087 15137.08701 2.87087 299.87087 151.37087000000008 15137.08700 2020-01-01 2020-01-02 2020-01-01 00:15:56 2020-01-02 03:44:17 2020-01-01 00:15:56.000 2020-01-02 03:44:17.000 956 99857 50406.5 5040650 956 99857 50406.5 5040650 -32612 32323 4531.3 453130 -126 125 0.1 10 -957 100 10947 99858 2.87387 299.87387 151.37387 15137.38738 2.87387 299.87387 151.37387 15137.38716 2.87387 299.87387 151.37386999999998 15137.38700 2020-01-01 2020-01-02 2020-01-01 00:15:57 2020-01-02 03:44:18 2020-01-01 00:15:57.000 2020-01-02 03:44:18.000 957 99858 50407.5 5040750 957 99858 50407.5 5040750 -32611 32324 4532.3 453230 -125 126 1.1 110 +952 100 10942 99853 2.85885 299.85885 151.35885 15135.88588 2.85885 299.85886 151.35885 15135.88568 2.85885 299.85885 151.35885000000005 15135.88500 2020-01-01 2020-01-02 2020-01-01 00:15:52 2020-01-02 03:44:13 2020-01-01 00:15:52.000 2020-01-02 03:44:13.000 952 99853 50402.5 5040250 952 99853 50402.5 5040250 -32616 32319 4527.3 452730 -124 127 1.22 122 +953 100 10943 99854 2.86186 299.86186 151.36186 15136.18618 2.86186 299.86185 151.36185 15136.18598 2.86186 299.86186 151.36186000000026 15136.18600 2020-01-01 2020-01-02 2020-01-01 00:15:53 2020-01-02 03:44:14 2020-01-01 00:15:53.000 2020-01-02 03:44:14.000 953 99854 50403.5 5040350 953 99854 50403.5 5040350 -32615 32320 4528.3 452830 -128 127 -0.34 -34 +954 100 10944 99855 2.86486 299.86486 151.36486 15136.48648 2.86486 299.86487 151.36486 15136.48674 2.86486 299.86486 151.3648599999998 15136.48600 2020-01-01 2020-01-02 2020-01-01 00:15:54 2020-01-02 03:44:15 2020-01-01 00:15:54.000 2020-01-02 03:44:15.000 954 99855 50404.5 5040450 954 99855 50404.5 5040450 -32614 32321 4529.3 452930 -128 123 -1.9 -190 +955 100 10945 99856 2.86786 299.86786 151.36786 15136.78678 2.86786 299.86786 151.36786 15136.78688 2.86786 299.86786 151.36786000000018 15136.78600 2020-01-01 2020-01-02 2020-01-01 00:15:55 2020-01-02 03:44:16 2020-01-01 00:15:55.000 2020-01-02 03:44:16.000 955 99856 50405.5 5040550 955 99856 50405.5 5040550 -32613 32322 4530.3 453030 -127 124 -0.9 -90 +956 100 10946 99857 2.87087 299.87087 151.37087 15137.08708 2.87087 299.87088 151.37087 15137.08701 2.87087 299.87087 151.37087000000014 15137.08700 2020-01-01 2020-01-02 2020-01-01 00:15:56 2020-01-02 03:44:17 2020-01-01 00:15:56.000 2020-01-02 03:44:17.000 956 99857 50406.5 5040650 956 99857 50406.5 5040650 -32612 32323 4531.3 453130 -126 125 0.1 10 +957 100 10947 99858 2.87387 299.87387 151.37387 15137.38738 2.87387 299.87387 151.37387 15137.38716 2.87387 299.87387 151.37386999999993 15137.38700 2020-01-01 2020-01-02 2020-01-01 00:15:57 2020-01-02 03:44:18 2020-01-01 00:15:57.000 2020-01-02 03:44:18.000 957 99858 50407.5 5040750 957 99858 50407.5 5040750 -32611 32324 4532.3 453230 -125 126 1.1 110 958 100 10948 99859 2.87687 299.87687 151.37687 15137.68768 2.87687 299.8769 151.37687 15137.68791 2.87687 299.87687 151.37687000000003 15137.68700 2020-01-01 2020-01-02 2020-01-01 00:15:58 2020-01-02 03:44:19 2020-01-01 00:15:58.000 2020-01-02 03:44:19.000 958 99859 50408.5 5040850 958 99859 50408.5 5040850 -32610 32325 4533.3 453330 -124 127 2.1 210 -959 100 10949 99860 2.87987 299.87987 151.37987 15137.98798 2.87988 299.87988 151.37988 15137.9882 2.87987 299.87987 151.37987000000004 15137.98700 2020-01-01 2020-01-02 2020-01-01 00:15:59 2020-01-02 03:44:20 2020-01-01 00:15:59.000 2020-01-02 03:44:20.000 959 99860 50409.5 5040950 959 99860 50409.5 5040950 -32609 32326 4534.3 453430 -128 127 0.54 54 -96 102 10086 99996 0.28828 300.28828 150.28828 15179.11711 0.28828 300.2883 150.28828 15179.11718 0.28828 300.28828 150.28828000000001 15179.11628 2020-01-01 2020-01-02 2020-01-01 00:01:36 2020-01-02 03:46:36 2020-01-01 00:01:36.000 2020-01-02 03:46:36.000 96 99996 50046 5054646 96 99996 50046 5054646 -32473 32462 4625.009900990099 467126 -124 127 1.801980198019802 182 -960 100 10950 99861 2.88288 299.88288 151.38288 15138.28828 2.88288 299.88287 151.38288 15138.28834 2.88288 299.88288 151.38287999999997 15138.28800 2020-01-01 2020-01-02 2020-01-01 00:16:00 2020-01-02 03:44:21 2020-01-01 00:16:00.000 2020-01-02 03:44:21.000 960 99861 50410.5 5041050 960 99861 50410.5 5041050 -32608 32327 4535.3 453530 -128 123 -1.02 -102 -961 100 10951 99862 2.88588 299.88588 151.38588 15138.58858 2.88588 299.8859 151.38588 15138.58848 2.88588 299.88588 151.3858799999999 15138.58800 2020-01-01 2020-01-02 2020-01-01 00:16:01 2020-01-02 03:44:22 2020-01-01 00:16:01.000 2020-01-02 03:44:22.000 961 99862 50411.5 5041150 961 99862 50411.5 5041150 -32607 32328 4536.3 453630 -127 124 -0.02 -2 -962 100 10952 99863 2.88888 299.88888 151.38888 15138.88888 2.88888 299.8889 151.38888 15138.88862 2.88888 299.88888 151.38888000000014 15138.88800 2020-01-01 2020-01-02 2020-01-01 00:16:02 2020-01-02 03:44:23 2020-01-01 00:16:02.000 2020-01-02 03:44:23.000 962 99863 50412.5 5041250 962 99863 50412.5 5041250 -32606 32329 4537.3 453730 -126 125 0.98 98 -963 100 10953 99864 2.89189 299.89189 151.39189 15139.18918 2.89189 299.8919 151.39189 15139.18937 2.89189 299.89189 151.39189000000005 15139.18900 2020-01-01 2020-01-02 2020-01-01 00:16:03 2020-01-02 03:44:24 2020-01-01 00:16:03.000 2020-01-02 03:44:24.000 963 99864 50413.5 5041350 963 99864 50413.5 5041350 -32605 32330 4538.3 453830 -125 126 1.98 198 -964 100 10954 99865 2.89489 299.89489 151.39489 15139.48948 2.89489 299.8949 151.39489 15139.48968 2.89489 299.89489 151.39488999999986 15139.48900 2020-01-01 2020-01-02 2020-01-01 00:16:04 2020-01-02 03:44:25 2020-01-01 00:16:04.000 2020-01-02 03:44:25.000 964 99865 50414.5 5041450 964 99865 50414.5 5041450 -32604 32331 4539.3 453930 -124 127 2.98 298 -965 100 10955 99866 2.89789 299.89789 151.39789 15139.78978 2.89789 299.8979 151.39789 15139.78985 2.89789 299.89789 151.3978900000001 15139.78900 2020-01-01 2020-01-02 2020-01-01 00:16:05 2020-01-02 03:44:26 2020-01-01 00:16:05.000 2020-01-02 03:44:26.000 965 99866 50415.5 5041550 965 99866 50415.5 5041550 -32603 32332 4540.3 454030 -128 127 1.42 142 -966 100 10956 99867 2.9009 299.9009 151.4009 15140.09009 2.9009 299.9009 151.40089 15140.08996 2.90090 299.90090 151.4009 15140.09000 2020-01-01 2020-01-02 2020-01-01 00:16:06 2020-01-02 03:44:27 2020-01-01 00:16:06.000 2020-01-02 03:44:27.000 966 99867 50416.5 5041650 966 99867 50416.5 5041650 -32602 32333 4541.3 454130 -128 127 -0.14 -14 -967 100 10957 99868 2.9039 299.9039 151.4039 15140.39039 2.9039 299.9039 151.4039 15140.39009 2.90390 299.90390 151.40389999999996 15140.39000 2020-01-01 2020-01-02 2020-01-01 00:16:07 2020-01-02 03:44:28 2020-01-01 00:16:07.000 2020-01-02 03:44:28.000 967 99868 50417.5 5041750 967 99868 50417.5 5041750 -32601 32334 4542.3 454230 -128 124 -1.7 -170 +959 100 10949 99860 2.87987 299.87987 151.37987 15137.98798 2.87988 299.87988 151.37988 15137.9882 2.87987 299.87987 151.37987000000012 15137.98700 2020-01-01 2020-01-02 2020-01-01 00:15:59 2020-01-02 03:44:20 2020-01-01 00:15:59.000 2020-01-02 03:44:20.000 959 99860 50409.5 5040950 959 99860 50409.5 5040950 -32609 32326 4534.3 453430 -128 127 0.54 54 +96 102 10086 99996 0.28828 300.28828 150.28828 15179.11711 0.28828 300.2883 150.28828 15179.11718 0.28828 300.28828 150.28828000000013 15179.11628 2020-01-01 2020-01-02 2020-01-01 00:01:36 2020-01-02 03:46:36 2020-01-01 00:01:36.000 2020-01-02 03:46:36.000 96 99996 50046 5054646 96 99996 50046 5054646 -32473 32462 4625.009900990099 467126 -124 127 1.801980198019802 182 +960 100 10950 99861 2.88288 299.88288 151.38288 15138.28828 2.88288 299.88287 151.38288 15138.28834 2.88288 299.88288 151.3828799999998 15138.28800 2020-01-01 2020-01-02 2020-01-01 00:16:00 2020-01-02 03:44:21 2020-01-01 00:16:00.000 2020-01-02 03:44:21.000 960 99861 50410.5 5041050 960 99861 50410.5 5041050 -32608 32327 4535.3 453530 -128 123 -1.02 -102 +961 100 10951 99862 2.88588 299.88588 151.38588 15138.58858 2.88588 299.8859 151.38588 15138.58848 2.88588 299.88588 151.38587999999984 15138.58800 2020-01-01 2020-01-02 2020-01-01 00:16:01 2020-01-02 03:44:22 2020-01-01 00:16:01.000 2020-01-02 03:44:22.000 961 99862 50411.5 5041150 961 99862 50411.5 5041150 -32607 32328 4536.3 453630 -127 124 -0.02 -2 +962 100 10952 99863 2.88888 299.88888 151.38888 15138.88888 2.88888 299.8889 151.38888 15138.88862 2.88888 299.88888 151.3888800000003 15138.88800 2020-01-01 2020-01-02 2020-01-01 00:16:02 2020-01-02 03:44:23 2020-01-01 00:16:02.000 2020-01-02 03:44:23.000 962 99863 50412.5 5041250 962 99863 50412.5 5041250 -32606 32329 4537.3 453730 -126 125 0.98 98 +963 100 10953 99864 2.89189 299.89189 151.39189 15139.18918 2.89189 299.8919 151.39189 15139.18937 2.89189 299.89189 151.3918900000002 15139.18900 2020-01-01 2020-01-02 2020-01-01 00:16:03 2020-01-02 03:44:24 2020-01-01 00:16:03.000 2020-01-02 03:44:24.000 963 99864 50413.5 5041350 963 99864 50413.5 5041350 -32605 32330 4538.3 453830 -125 126 1.98 198 +964 100 10954 99865 2.89489 299.89489 151.39489 15139.48948 2.89489 299.8949 151.39489 15139.48968 2.89489 299.89489 151.3948899999997 15139.48900 2020-01-01 2020-01-02 2020-01-01 00:16:04 2020-01-02 03:44:25 2020-01-01 00:16:04.000 2020-01-02 03:44:25.000 964 99865 50414.5 5041450 964 99865 50414.5 5041450 -32604 32331 4539.3 453930 -124 127 2.98 298 +965 100 10955 99866 2.89789 299.89789 151.39789 15139.78978 2.89789 299.8979 151.39789 15139.78985 2.89789 299.89789 151.39789000000016 15139.78900 2020-01-01 2020-01-02 2020-01-01 00:16:05 2020-01-02 03:44:26 2020-01-01 00:16:05.000 2020-01-02 03:44:26.000 965 99866 50415.5 5041550 965 99866 50415.5 5041550 -32603 32332 4540.3 454030 -128 127 1.42 142 +966 100 10956 99867 2.9009 299.9009 151.4009 15140.09009 2.9009 299.9009 151.40089 15140.08996 2.90090 299.90090 151.40090000000006 15140.09000 2020-01-01 2020-01-02 2020-01-01 00:16:06 2020-01-02 03:44:27 2020-01-01 00:16:06.000 2020-01-02 03:44:27.000 966 99867 50416.5 5041650 966 99867 50416.5 5041650 -32602 32333 4541.3 454130 -128 127 -0.14 -14 +967 100 10957 99868 2.9039 299.9039 151.4039 15140.39039 2.9039 299.9039 151.4039 15140.39009 2.90390 299.90390 151.40389999999988 15140.39000 2020-01-01 2020-01-02 2020-01-01 00:16:07 2020-01-02 03:44:28 2020-01-01 00:16:07.000 2020-01-02 03:44:28.000 967 99868 50417.5 5041750 967 99868 50417.5 5041750 -32601 32334 4542.3 454230 -128 124 -1.7 -170 968 100 10958 99869 2.9069 299.9069 151.4069 15140.69069 2.9069 299.90692 151.4069 15140.69084 2.90690 299.90690 151.40689999999998 15140.69000 2020-01-01 2020-01-02 2020-01-01 00:16:08 2020-01-02 03:44:29 2020-01-01 00:16:08.000 2020-01-02 03:44:29.000 968 99869 50418.5 5041850 968 99869 50418.5 5041850 -32600 32335 4543.3 454330 -127 125 -0.7 -70 -969 100 10959 99870 2.9099 299.9099 151.4099 15140.99099 2.90991 299.9099 151.40991 15140.99114 2.90990 299.90990 151.40990000000002 15140.99000 2020-01-01 2020-01-02 2020-01-01 00:16:09 2020-01-02 03:44:30 2020-01-01 00:16:09.000 2020-01-02 03:44:30.000 969 99870 50419.5 5041950 969 99870 50419.5 5041950 -32599 32336 4544.3 454430 -126 126 0.3 30 -97 102 10087 99997 0.29129 300.29129 150.29129 15179.42042 0.29129 300.2913 150.29129 15179.42033 0.29129 300.29129 150.29128999999998 15179.42029 2020-01-01 2020-01-02 2020-01-01 00:01:37 2020-01-02 03:46:37 2020-01-01 00:01:37.000 2020-01-02 03:46:37.000 97 99997 50047 5054747 97 99997 50047 5054747 -32472 32463 4626.009900990099 467227 -128 127 0.26732673267326734 27 -970 100 10960 99871 2.91291 299.91291 151.41291 15141.29129 2.91291 299.9129 151.41291 15141.29132 2.91291 299.91291 151.41290999999993 15141.29100 2020-01-01 2020-01-02 2020-01-01 00:16:10 2020-01-02 03:44:31 2020-01-01 00:16:10.000 2020-01-02 03:44:31.000 970 99871 50420.5 5042050 970 99871 50420.5 5042050 -32598 32337 4545.3 454530 -125 127 1.3 130 -971 100 10961 99872 2.91591 299.91591 151.41591 15141.59159 2.91591 299.91592 151.41591 15141.59142 2.91591 299.91591 151.41590999999994 15141.59100 2020-01-01 2020-01-02 2020-01-01 00:16:11 2020-01-02 03:44:32 2020-01-01 00:16:11.000 2020-01-02 03:44:32.000 971 99872 50421.5 5042150 971 99872 50421.5 5042150 -32597 32338 4546.3 454630 -128 127 -0.26 -26 -972 100 10962 99873 2.91891 299.91891 151.41891 15141.89189 2.91891 299.9189 151.41891 15141.89172 2.91891 299.91891 151.4189100000001 15141.89100 2020-01-01 2020-01-02 2020-01-01 00:16:12 2020-01-02 03:44:33 2020-01-01 00:16:12.000 2020-01-02 03:44:33.000 972 99873 50422.5 5042250 972 99873 50422.5 5042250 -32596 32339 4547.3 454730 -128 127 -1.82 -182 -973 100 10963 99874 2.92192 299.92192 151.42192 15142.19219 2.92192 299.92194 151.42192 15142.19232 2.92192 299.92192 151.42192 15142.19200 2020-01-01 2020-01-02 2020-01-01 00:16:13 2020-01-02 03:44:34 2020-01-01 00:16:13.000 2020-01-02 03:44:34.000 973 99874 50423.5 5042350 973 99874 50423.5 5042350 -32595 32340 4548.3 454830 -128 123 -3.38 -338 -974 100 10964 99875 2.92492 299.92492 151.42492 15142.49249 2.92492 299.92493 151.42492 15142.49265 2.92492 299.92492 151.42492000000001 15142.49200 2020-01-01 2020-01-02 2020-01-01 00:16:14 2020-01-02 03:44:35 2020-01-01 00:16:14.000 2020-01-02 03:44:35.000 974 99875 50424.5 5042450 974 99875 50424.5 5042450 -32594 32341 4549.3 454930 -127 124 -2.38 -238 +969 100 10959 99870 2.9099 299.9099 151.4099 15140.99099 2.90991 299.9099 151.40991 15140.99114 2.90990 299.90990 151.40990000000008 15140.99000 2020-01-01 2020-01-02 2020-01-01 00:16:09 2020-01-02 03:44:30 2020-01-01 00:16:09.000 2020-01-02 03:44:30.000 969 99870 50419.5 5041950 969 99870 50419.5 5041950 -32599 32336 4544.3 454430 -126 126 0.3 30 +97 102 10087 99997 0.29129 300.29129 150.29129 15179.42042 0.29129 300.2913 150.29129 15179.42033 0.29129 300.29129 150.2912899999998 15179.42029 2020-01-01 2020-01-02 2020-01-01 00:01:37 2020-01-02 03:46:37 2020-01-01 00:01:37.000 2020-01-02 03:46:37.000 97 99997 50047 5054747 97 99997 50047 5054747 -32472 32463 4626.009900990099 467227 -128 127 0.26732673267326734 27 +970 100 10960 99871 2.91291 299.91291 151.41291 15141.29129 2.91291 299.9129 151.41291 15141.29132 2.91291 299.91291 151.41290999999973 15141.29100 2020-01-01 2020-01-02 2020-01-01 00:16:10 2020-01-02 03:44:31 2020-01-01 00:16:10.000 2020-01-02 03:44:31.000 970 99871 50420.5 5042050 970 99871 50420.5 5042050 -32598 32337 4545.3 454530 -125 127 1.3 130 +971 100 10961 99872 2.91591 299.91591 151.41591 15141.59159 2.91591 299.91592 151.41591 15141.59142 2.91591 299.91591 151.41590999999983 15141.59100 2020-01-01 2020-01-02 2020-01-01 00:16:11 2020-01-02 03:44:32 2020-01-01 00:16:11.000 2020-01-02 03:44:32.000 971 99872 50421.5 5042150 971 99872 50421.5 5042150 -32597 32338 4546.3 454630 -128 127 -0.26 -26 +972 100 10962 99873 2.91891 299.91891 151.41891 15141.89189 2.91891 299.9189 151.41891 15141.89172 2.91891 299.91891 151.4189100000002 15141.89100 2020-01-01 2020-01-02 2020-01-01 00:16:12 2020-01-02 03:44:33 2020-01-01 00:16:12.000 2020-01-02 03:44:33.000 972 99873 50422.5 5042250 972 99873 50422.5 5042250 -32596 32339 4547.3 454730 -128 127 -1.82 -182 +973 100 10963 99874 2.92192 299.92192 151.42192 15142.19219 2.92192 299.92194 151.42192 15142.19232 2.92192 299.92192 151.4219200000001 15142.19200 2020-01-01 2020-01-02 2020-01-01 00:16:13 2020-01-02 03:44:34 2020-01-01 00:16:13.000 2020-01-02 03:44:34.000 973 99874 50423.5 5042350 973 99874 50423.5 5042350 -32595 32340 4548.3 454830 -128 123 -3.38 -338 +974 100 10964 99875 2.92492 299.92492 151.42492 15142.49249 2.92492 299.92493 151.42492 15142.49265 2.92492 299.92492 151.42491999999996 15142.49200 2020-01-01 2020-01-02 2020-01-01 00:16:14 2020-01-02 03:44:35 2020-01-01 00:16:14.000 2020-01-02 03:44:35.000 974 99875 50424.5 5042450 974 99875 50424.5 5042450 -32594 32341 4549.3 454930 -127 124 -2.38 -238 975 100 10965 99876 2.92792 299.92792 151.42792 15142.79279 2.92792 299.92792 151.42792 15142.79279 2.92792 299.92792 151.42792000000006 15142.79200 2020-01-01 2020-01-02 2020-01-01 00:16:15 2020-01-02 03:44:36 2020-01-01 00:16:15.000 2020-01-02 03:44:36.000 975 99876 50425.5 5042550 975 99876 50425.5 5042550 -32593 32342 4550.3 455030 -126 125 -1.38 -138 -976 100 10966 99877 2.93093 299.93093 151.43093 15143.09309 2.93093 299.93094 151.43092 15143.09289 2.93093 299.93093 151.43093000000016 15143.09300 2020-01-01 2020-01-02 2020-01-01 00:16:16 2020-01-02 03:44:37 2020-01-01 00:16:16.000 2020-01-02 03:44:37.000 976 99877 50426.5 5042650 976 99877 50426.5 5042650 -32592 32343 4551.3 455130 -125 126 -0.38 -38 -977 100 10967 99878 2.93393 299.93393 151.43393 15143.39339 2.93393 299.93393 151.43393 15143.39318 2.93393 299.93393 151.43392999999995 15143.39300 2020-01-01 2020-01-02 2020-01-01 00:16:17 2020-01-02 03:44:38 2020-01-01 00:16:17.000 2020-01-02 03:44:38.000 977 99878 50427.5 5042750 977 99878 50427.5 5042750 -32591 32344 4552.3 455230 -124 127 0.62 62 -978 100 10968 99879 2.93693 299.93693 151.43693 15143.69369 2.93693 299.93695 151.43693 15143.69378 2.93693 299.93693 151.43692999999993 15143.69300 2020-01-01 2020-01-02 2020-01-01 00:16:18 2020-01-02 03:44:39 2020-01-01 00:16:18.000 2020-01-02 03:44:39.000 978 99879 50428.5 5042850 978 99879 50428.5 5042850 -32590 32345 4553.3 455330 -128 127 -0.94 -94 -979 100 10969 99880 2.93993 299.93993 151.43993 15143.99399 2.93994 299.93994 151.43994 15143.99412 2.93993 299.93993 151.43993000000017 15143.99300 2020-01-01 2020-01-02 2020-01-01 00:16:19 2020-01-02 03:44:40 2020-01-01 00:16:19.000 2020-01-02 03:44:40.000 979 99880 50429.5 5042950 979 99880 50429.5 5042950 -32589 32346 4554.3 455430 -128 123 -2.5 -250 -98 102 10088 99998 0.29429 300.29429 150.29429 15179.72372 0.29429 300.29428 150.29429 15179.72363 0.29429 300.29429 150.29428999999993 15179.72329 2020-01-01 2020-01-02 2020-01-01 00:01:38 2020-01-02 03:46:38 2020-01-01 00:01:38.000 2020-01-02 03:46:38.000 98 99998 50048 5054848 98 99998 50048 5054848 -32471 32464 4627.009900990099 467328 -128 127 -1.2673267326732673 -128 -980 100 10970 99881 2.94294 299.94294 151.44294 15144.29429 2.94294 299.94293 151.44294 15144.29426 2.94294 299.94294 151.44294000000005 15144.29400 2020-01-01 2020-01-02 2020-01-01 00:16:20 2020-01-02 03:44:41 2020-01-01 00:16:20.000 2020-01-02 03:44:41.000 980 99881 50430.5 5043050 980 99881 50430.5 5043050 -32588 32347 4555.3 455530 -127 124 -1.5 -150 -981 100 10971 99882 2.94594 299.94594 151.44594 15144.59459 2.94594 299.94595 151.44595 15144.59501 2.94594 299.94594 151.4459399999999 15144.59400 2020-01-01 2020-01-02 2020-01-01 00:16:21 2020-01-02 03:44:42 2020-01-01 00:16:21.000 2020-01-02 03:44:42.000 981 99882 50431.5 5043150 981 99882 50431.5 5043150 -32587 32348 4556.3 455630 -126 125 -0.5 -50 -982 100 10972 99883 2.94894 299.94894 151.44894 15144.89489 2.94894 299.94894 151.44894 15144.89466 2.94894 299.94894 151.4489400000001 15144.89400 2020-01-01 2020-01-02 2020-01-01 00:16:22 2020-01-02 03:44:43 2020-01-01 00:16:22.000 2020-01-02 03:44:43.000 982 99883 50432.5 5043250 982 99883 50432.5 5043250 -32586 32349 4557.3 455730 -125 126 0.5 50 -983 100 10973 99884 2.95195 299.95195 151.45195 15145.19519 2.95195 299.95197 151.45195 15145.19525 2.95195 299.95195 151.45195 15145.19500 2020-01-01 2020-01-02 2020-01-01 00:16:23 2020-01-02 03:44:44 2020-01-01 00:16:23.000 2020-01-02 03:44:44.000 983 99884 50433.5 5043350 983 99884 50433.5 5043350 -32585 32350 4558.3 455830 -124 127 1.5 150 -984 100 10974 99885 2.95495 299.95495 151.45495 15145.49549 2.95495 299.95496 151.45495 15145.49559 2.95495 299.95495 151.45494999999994 15145.49500 2020-01-01 2020-01-02 2020-01-01 00:16:24 2020-01-02 03:44:45 2020-01-01 00:16:24.000 2020-01-02 03:44:45.000 984 99885 50434.5 5043450 984 99885 50434.5 5043450 -32584 32351 4559.3 455930 -128 127 -0.06 -6 -985 100 10975 99886 2.95795 299.95795 151.45795 15145.79579 2.95795 299.95795 151.45795 15145.79573 2.95795 299.95795 151.45795 15145.79500 2020-01-01 2020-01-02 2020-01-01 00:16:25 2020-01-02 03:44:46 2020-01-01 00:16:25.000 2020-01-02 03:44:46.000 985 99886 50435.5 5043550 985 99886 50435.5 5043550 -32583 32352 4560.3 456030 -128 123 -1.62 -162 -986 100 10976 99887 2.96096 299.96096 151.46096 15146.09609 2.96096 299.96097 151.46096 15146.09648 2.96096 299.96096 151.46096000000009 15146.09600 2020-01-01 2020-01-02 2020-01-01 00:16:26 2020-01-02 03:44:47 2020-01-01 00:16:26.000 2020-01-02 03:44:47.000 986 99887 50436.5 5043650 986 99887 50436.5 5043650 -32582 32353 4561.3 456130 -127 124 -0.62 -62 -987 100 10977 99888 2.96396 299.96396 151.46396 15146.39639 2.96396 299.96396 151.46396 15146.39612 2.96396 299.96396 151.46395999999993 15146.39600 2020-01-01 2020-01-02 2020-01-01 00:16:27 2020-01-02 03:44:48 2020-01-01 00:16:27.000 2020-01-02 03:44:48.000 987 99888 50437.5 5043750 987 99888 50437.5 5043750 -32581 32354 4562.3 456230 -126 125 0.38 38 -988 100 10978 99889 2.96696 299.96696 151.46696 15146.69669 2.96696 299.96698 151.46696 15146.69676 2.96696 299.96696 151.46695999999991 15146.69600 2020-01-01 2020-01-02 2020-01-01 00:16:28 2020-01-02 03:44:49 2020-01-01 00:16:28.000 2020-01-02 03:44:49.000 988 99889 50438.5 5043850 988 99889 50438.5 5043850 -32580 32355 4563.3 456330 -125 126 1.38 138 -989 100 10979 99890 2.96996 299.96996 151.46996 15146.99699 2.96997 299.96997 151.46997 15146.99706 2.96996 299.96996 151.46996000000007 15146.99600 2020-01-01 2020-01-02 2020-01-01 00:16:29 2020-01-02 03:44:50 2020-01-01 00:16:29.000 2020-01-02 03:44:50.000 989 99890 50439.5 5043950 989 99890 50439.5 5043950 -32579 32356 4564.3 456430 -124 127 2.38 238 -99 102 10089 99999 0.29729 300.29729 150.29729 15180.02702 0.29729 300.2973 150.29729 15180.02726 0.29729 300.29729 150.29729000000012 15180.02629 2020-01-01 2020-01-02 2020-01-01 00:01:39 2020-01-02 03:46:39 2020-01-01 00:01:39.000 2020-01-02 03:46:39.000 99 99999 50049 5054949 99 99999 50049 5054949 -32470 32465 4628.009900990099 467429 -128 123 -2.801980198019802 -283 -990 100 10980 99891 2.97297 299.97297 151.47297 15147.29729 2.97297 299.97296 151.47297 15147.29735 2.97297 299.97297 151.47297000000003 15147.29700 2020-01-01 2020-01-02 2020-01-01 00:16:30 2020-01-02 03:44:51 2020-01-01 00:16:30.000 2020-01-02 03:44:51.000 990 99891 50440.5 5044050 990 99891 50440.5 5044050 -32578 32357 4565.3 456530 -128 127 0.82 82 -991 100 10981 99892 2.97597 299.97597 151.47597 15147.59759 2.97597 299.97598 151.47597 15147.59795 2.97597 299.97597 151.47597000000002 15147.59700 2020-01-01 2020-01-02 2020-01-01 00:16:31 2020-01-02 03:44:52 2020-01-01 00:16:31.000 2020-01-02 03:44:52.000 991 99892 50441.5 5044150 991 99892 50441.5 5044150 -32577 32358 4566.3 456630 -128 127 -0.74 -74 +976 100 10966 99877 2.93093 299.93093 151.43093 15143.09309 2.93093 299.93094 151.43092 15143.09289 2.93093 299.93093 151.43093000000033 15143.09300 2020-01-01 2020-01-02 2020-01-01 00:16:16 2020-01-02 03:44:37 2020-01-01 00:16:16.000 2020-01-02 03:44:37.000 976 99877 50426.5 5042650 976 99877 50426.5 5042650 -32592 32343 4551.3 455130 -125 126 -0.38 -38 +977 100 10967 99878 2.93393 299.93393 151.43393 15143.39339 2.93393 299.93393 151.43393 15143.39318 2.93393 299.93393 151.4339299999998 15143.39300 2020-01-01 2020-01-02 2020-01-01 00:16:17 2020-01-02 03:44:38 2020-01-01 00:16:17.000 2020-01-02 03:44:38.000 977 99878 50427.5 5042750 977 99878 50427.5 5042750 -32591 32344 4552.3 455230 -124 127 0.62 62 +978 100 10968 99879 2.93693 299.93693 151.43693 15143.69369 2.93693 299.93695 151.43693 15143.69378 2.93693 299.93693 151.43692999999988 15143.69300 2020-01-01 2020-01-02 2020-01-01 00:16:18 2020-01-02 03:44:39 2020-01-01 00:16:18.000 2020-01-02 03:44:39.000 978 99879 50428.5 5042850 978 99879 50428.5 5042850 -32590 32345 4553.3 455330 -128 127 -0.94 -94 +979 100 10969 99880 2.93993 299.93993 151.43993 15143.99399 2.93994 299.93994 151.43994 15143.99412 2.93993 299.93993 151.43993000000023 15143.99300 2020-01-01 2020-01-02 2020-01-01 00:16:19 2020-01-02 03:44:40 2020-01-01 00:16:19.000 2020-01-02 03:44:40.000 979 99880 50429.5 5042950 979 99880 50429.5 5042950 -32589 32346 4554.3 455430 -128 123 -2.5 -250 +98 102 10088 99998 0.29429 300.29429 150.29429 15179.72372 0.29429 300.29428 150.29429 15179.72363 0.29429 300.29429 150.29428999999985 15179.72329 2020-01-01 2020-01-02 2020-01-01 00:01:38 2020-01-02 03:46:38 2020-01-01 00:01:38.000 2020-01-02 03:46:38.000 98 99998 50048 5054848 98 99998 50048 5054848 -32471 32464 4627.009900990099 467328 -128 127 -1.2673267326732673 -128 +980 100 10970 99881 2.94294 299.94294 151.44294 15144.29429 2.94294 299.94293 151.44294 15144.29426 2.94294 299.94294 151.44294000000022 15144.29400 2020-01-01 2020-01-02 2020-01-01 00:16:20 2020-01-02 03:44:41 2020-01-01 00:16:20.000 2020-01-02 03:44:41.000 980 99881 50430.5 5043050 980 99881 50430.5 5043050 -32588 32347 4555.3 455530 -127 124 -1.5 -150 +981 100 10971 99882 2.94594 299.94594 151.44594 15144.59459 2.94594 299.94595 151.44595 15144.59501 2.94594 299.94594 151.44593999999972 15144.59400 2020-01-01 2020-01-02 2020-01-01 00:16:21 2020-01-02 03:44:42 2020-01-01 00:16:21.000 2020-01-02 03:44:42.000 981 99882 50431.5 5043150 981 99882 50431.5 5043150 -32587 32348 4556.3 455630 -126 125 -0.5 -50 +982 100 10972 99883 2.94894 299.94894 151.44894 15144.89489 2.94894 299.94894 151.44894 15144.89466 2.94894 299.94894 151.4489400000002 15144.89400 2020-01-01 2020-01-02 2020-01-01 00:16:22 2020-01-02 03:44:43 2020-01-01 00:16:22.000 2020-01-02 03:44:43.000 982 99883 50432.5 5043250 982 99883 50432.5 5043250 -32586 32349 4557.3 455730 -125 126 0.5 50 +983 100 10973 99884 2.95195 299.95195 151.45195 15145.19519 2.95195 299.95197 151.45195 15145.19525 2.95195 299.95195 151.4519500000001 15145.19500 2020-01-01 2020-01-02 2020-01-01 00:16:23 2020-01-02 03:44:44 2020-01-01 00:16:23.000 2020-01-02 03:44:44.000 983 99884 50433.5 5043350 983 99884 50433.5 5043350 -32585 32350 4558.3 455830 -124 127 1.5 150 +984 100 10974 99885 2.95495 299.95495 151.45495 15145.49549 2.95495 299.95496 151.45495 15145.49559 2.95495 299.95495 151.45494999999988 15145.49500 2020-01-01 2020-01-02 2020-01-01 00:16:24 2020-01-02 03:44:45 2020-01-01 00:16:24.000 2020-01-02 03:44:45.000 984 99885 50434.5 5043450 984 99885 50434.5 5043450 -32584 32351 4559.3 455930 -128 127 -0.06 -6 +985 100 10975 99886 2.95795 299.95795 151.45795 15145.79579 2.95795 299.95795 151.45795 15145.79573 2.95795 299.95795 151.45794999999998 15145.79500 2020-01-01 2020-01-02 2020-01-01 00:16:25 2020-01-02 03:44:46 2020-01-01 00:16:25.000 2020-01-02 03:44:46.000 985 99886 50435.5 5043550 985 99886 50435.5 5043550 -32583 32352 4560.3 456030 -128 123 -1.62 -162 +986 100 10976 99887 2.96096 299.96096 151.46096 15146.09609 2.96096 299.96097 151.46096 15146.09648 2.96096 299.96096 151.46096000000023 15146.09600 2020-01-01 2020-01-02 2020-01-01 00:16:26 2020-01-02 03:44:47 2020-01-01 00:16:26.000 2020-01-02 03:44:47.000 986 99887 50436.5 5043650 986 99887 50436.5 5043650 -32582 32353 4561.3 456130 -127 124 -0.62 -62 +987 100 10977 99888 2.96396 299.96396 151.46396 15146.39639 2.96396 299.96396 151.46396 15146.39612 2.96396 299.96396 151.46395999999973 15146.39600 2020-01-01 2020-01-02 2020-01-01 00:16:27 2020-01-02 03:44:48 2020-01-01 00:16:27.000 2020-01-02 03:44:48.000 987 99888 50437.5 5043750 987 99888 50437.5 5043750 -32581 32354 4562.3 456230 -126 125 0.38 38 +988 100 10978 99889 2.96696 299.96696 151.46696 15146.69669 2.96696 299.96698 151.46696 15146.69676 2.96696 299.96696 151.46695999999983 15146.69600 2020-01-01 2020-01-02 2020-01-01 00:16:28 2020-01-02 03:44:49 2020-01-01 00:16:28.000 2020-01-02 03:44:49.000 988 99889 50438.5 5043850 988 99889 50438.5 5043850 -32580 32355 4563.3 456330 -125 126 1.38 138 +989 100 10979 99890 2.96996 299.96996 151.46996 15146.99699 2.96997 299.96997 151.46997 15146.99706 2.96996 299.96996 151.46996000000024 15146.99600 2020-01-01 2020-01-02 2020-01-01 00:16:29 2020-01-02 03:44:50 2020-01-01 00:16:29.000 2020-01-02 03:44:50.000 989 99890 50439.5 5043950 989 99890 50439.5 5043950 -32579 32356 4564.3 456430 -124 127 2.38 238 +99 102 10089 99999 0.29729 300.29729 150.29729 15180.02702 0.29729 300.2973 150.29729 15180.02726 0.29729 300.29729 150.29729000000032 15180.02629 2020-01-01 2020-01-02 2020-01-01 00:01:39 2020-01-02 03:46:39 2020-01-01 00:01:39.000 2020-01-02 03:46:39.000 99 99999 50049 5054949 99 99999 50049 5054949 -32470 32465 4628.009900990099 467429 -128 123 -2.801980198019802 -283 +990 100 10980 99891 2.97297 299.97297 151.47297 15147.29729 2.97297 299.97296 151.47297 15147.29735 2.97297 299.97297 151.47297000000015 15147.29700 2020-01-01 2020-01-02 2020-01-01 00:16:30 2020-01-02 03:44:51 2020-01-01 00:16:30.000 2020-01-02 03:44:51.000 990 99891 50440.5 5044050 990 99891 50440.5 5044050 -32578 32357 4565.3 456530 -128 127 0.82 82 +991 100 10981 99892 2.97597 299.97597 151.47597 15147.59759 2.97597 299.97598 151.47597 15147.59795 2.97597 299.97597 151.47597 15147.59700 2020-01-01 2020-01-02 2020-01-01 00:16:31 2020-01-02 03:44:52 2020-01-01 00:16:31.000 2020-01-02 03:44:52.000 991 99892 50441.5 5044150 991 99892 50441.5 5044150 -32577 32358 4566.3 456630 -128 127 -0.74 -74 992 100 10982 99893 2.97897 299.97897 151.47897 15147.89789 2.97897 299.97897 151.47897 15147.89759 2.97897 299.97897 151.4789700000001 15147.89700 2020-01-01 2020-01-02 2020-01-01 00:16:32 2020-01-02 03:44:53 2020-01-01 00:16:32.000 2020-01-02 03:44:53.000 992 99893 50442.5 5044250 992 99893 50442.5 5044250 -32576 32359 4567.3 456730 -128 124 -2.3 -230 -993 100 10983 99894 2.98198 299.98198 151.48198 15148.19819 2.98198 299.982 151.48198 15148.19823 2.98198 299.98198 151.48197999999996 15148.19800 2020-01-01 2020-01-02 2020-01-01 00:16:33 2020-01-02 03:44:54 2020-01-01 00:16:33.000 2020-01-02 03:44:54.000 993 99894 50443.5 5044350 993 99894 50443.5 5044350 -32575 32360 4568.3 456830 -127 125 -1.3 -130 -994 100 10984 99895 2.98498 299.98498 151.48498 15148.49849 2.98498 299.985 151.48498 15148.49853 2.98498 299.98498 151.48497999999998 15148.49800 2020-01-01 2020-01-02 2020-01-01 00:16:34 2020-01-02 03:44:55 2020-01-01 00:16:34.000 2020-01-02 03:44:55.000 994 99895 50444.5 5044450 994 99895 50444.5 5044450 -32574 32361 4569.3 456930 -126 126 -0.3 -30 +993 100 10983 99894 2.98198 299.98198 151.48198 15148.19819 2.98198 299.982 151.48198 15148.19823 2.98198 299.98198 151.48198 15148.19800 2020-01-01 2020-01-02 2020-01-01 00:16:33 2020-01-02 03:44:54 2020-01-01 00:16:33.000 2020-01-02 03:44:54.000 993 99894 50443.5 5044350 993 99894 50443.5 5044350 -32575 32360 4568.3 456830 -127 125 -1.3 -130 +994 100 10984 99895 2.98498 299.98498 151.48498 15148.49849 2.98498 299.985 151.48498 15148.49853 2.98498 299.98498 151.48497999999984 15148.49800 2020-01-01 2020-01-02 2020-01-01 00:16:34 2020-01-02 03:44:55 2020-01-01 00:16:34.000 2020-01-02 03:44:55.000 994 99895 50444.5 5044450 994 99895 50444.5 5044450 -32574 32361 4569.3 456930 -126 126 -0.3 -30 995 100 10985 99896 2.98798 299.98798 151.48798 15148.79879 2.98798 299.98798 151.48798 15148.79882 2.98798 299.98798 151.4879799999999 15148.79800 2020-01-01 2020-01-02 2020-01-01 00:16:35 2020-01-02 03:44:56 2020-01-01 00:16:35.000 2020-01-02 03:44:56.000 995 99896 50445.5 5044550 995 99896 50445.5 5044550 -32573 32362 4570.3 457030 -125 127 0.7 70 -996 100 10986 99897 2.99099 299.99099 151.49099 15149.09909 2.99099 299.991 151.49099 15149.09942 2.99099 299.99099 151.49099000000012 15149.09900 2020-01-01 2020-01-02 2020-01-01 00:16:36 2020-01-02 03:44:57 2020-01-01 00:16:36.000 2020-01-02 03:44:57.000 996 99897 50446.5 5044650 996 99897 50446.5 5044650 -32572 32363 4571.3 457130 -128 127 -0.86 -86 -997 100 10987 99898 2.99399 299.99399 151.49399 15149.39939 2.99399 299.994 151.49399 15149.3991 2.99399 299.99399 151.49399000000005 15149.39900 2020-01-01 2020-01-02 2020-01-01 00:16:37 2020-01-02 03:44:58 2020-01-01 00:16:37.000 2020-01-02 03:44:58.000 997 99898 50447.5 5044750 997 99898 50447.5 5044750 -32571 32364 4572.3 457230 -128 127 -2.42 -242 -998 100 10988 99899 2.99699 299.99699 151.49699 15149.69969 2.99699 299.997 151.49699 15149.6997 2.99699 299.99699 151.49698999999993 15149.69900 2020-01-01 2020-01-02 2020-01-01 00:16:38 2020-01-02 03:44:59 2020-01-01 00:16:38.000 2020-01-02 03:44:59.000 998 99899 50448.5 5044850 998 99899 50448.5 5044850 -32570 32365 4573.3 457330 -128 123 -3.98 -398 +996 100 10986 99897 2.99099 299.99099 151.49099 15149.09909 2.99099 299.991 151.49099 15149.09942 2.99099 299.99099 151.49099000000015 15149.09900 2020-01-01 2020-01-02 2020-01-01 00:16:36 2020-01-02 03:44:57 2020-01-01 00:16:36.000 2020-01-02 03:44:57.000 996 99897 50446.5 5044650 996 99897 50446.5 5044650 -32572 32363 4571.3 457130 -128 127 -0.86 -86 +997 100 10987 99898 2.99399 299.99399 151.49399 15149.39939 2.99399 299.994 151.49399 15149.3991 2.99399 299.99399 151.49399000000025 15149.39900 2020-01-01 2020-01-02 2020-01-01 00:16:37 2020-01-02 03:44:58 2020-01-01 00:16:37.000 2020-01-02 03:44:58.000 997 99898 50447.5 5044750 997 99898 50447.5 5044750 -32571 32364 4572.3 457230 -128 127 -2.42 -242 +998 100 10988 99899 2.99699 299.99699 151.49699 15149.69969 2.99699 299.997 151.49699 15149.6997 2.99699 299.99699 151.49698999999976 15149.69900 2020-01-01 2020-01-02 2020-01-01 00:16:38 2020-01-02 03:44:59 2020-01-01 00:16:38.000 2020-01-02 03:44:59.000 998 99899 50448.5 5044850 998 99899 50448.5 5044850 -32570 32365 4573.3 457330 -128 123 -3.98 -398 ---- select with states ---- -1 1 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N -2 1 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N From fcbc0fb91e459f70611ae83c82959aaf5bb5ceb6 Mon Sep 17 00:00:00 2001 From: myrrc Date: Tue, 3 Nov 2020 16:12:27 +0300 Subject: [PATCH 070/425] added specialized performance test --- tests/performance/avg_weighted.xml | 31 ++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 tests/performance/avg_weighted.xml diff --git a/tests/performance/avg_weighted.xml b/tests/performance/avg_weighted.xml new file mode 100644 index 00000000000..5682e5bbfb9 --- /dev/null +++ b/tests/performance/avg_weighted.xml @@ -0,0 +1,31 @@ + + DROP TABLE IF EXISTS perf_avg + SET allow_experimental_bigint_types=1 + + CREATE TABLE perf_avg( + num UInt64, + num_u Decimal256(75) DEFAULT toDecimal256(num / 100000, 75), + num_f Float64 DEFAULT num + ) ENGINE = MergeTree() ORDER BY tuple() + + + + INSERT INTO perf_avg(num) + SELECT number / r + FROM system.numbers + ARRAY JOIN range(1, 1000000) AS r + LIMIT 500000000 + + + SELECT avg(num) FROM perf_avg + SELECT avg(num_u) FROM perf_avg + SELECT avg(num_f) FROM perf_avg + SELECT avgWeighted(num_f, num) FROM perf_avg + SELECT avgWeighted(num_f, num_f) FROM perf_avg + SELECT avgWeighted(num_f, num_u) FROM perf_avg + SELECT avgWeighted(num_u, num_f) FROM perf_avg + SELECT avgWeighted(num_u, num) FROM perf_avg + SELECT avgWeighted(num_u, num_u) FROM perf_avg + + DROP TABLE IF EXISTS perf_avg + From ab1b7267b682a6ebb854c4f8fefaf6136427a2f5 Mon Sep 17 00:00:00 2001 From: myrrc Date: Tue, 3 Nov 2020 17:56:07 +0300 Subject: [PATCH 071/425] fixed the build, added some comments --- cmake/find/avro.cmake | 1 + cmake/find/ssl.cmake | 2 + .../AggregateFunctionAvg.cpp | 15 ++++++-- src/AggregateFunctions/AggregateFunctionAvg.h | 21 +++++++++-- .../AggregateFunctionAvgWeighted.cpp | 37 ++++++++++++++++++- .../AggregateFunctionAvgWeighted.h | 27 +++++++++++--- 6 files changed, 91 insertions(+), 12 deletions(-) diff --git a/cmake/find/avro.cmake b/cmake/find/avro.cmake index e0f73d99111..74ccda3489f 100644 --- a/cmake/find/avro.cmake +++ b/cmake/find/avro.cmake @@ -1,3 +1,4 @@ +# Needed when using Apache Avro serialization format option (ENABLE_AVRO "Enable Avro" ${ENABLE_LIBRARIES}) if (NOT ENABLE_AVRO) diff --git a/cmake/find/ssl.cmake b/cmake/find/ssl.cmake index 9058857c173..f7ac9174202 100644 --- a/cmake/find/ssl.cmake +++ b/cmake/find/ssl.cmake @@ -1,3 +1,5 @@ +# Needed when securely connecting to an external server, e.g. +# clickhouse-client --host ... --secure option(ENABLE_SSL "Enable ssl" ${ENABLE_LIBRARIES}) if(NOT ENABLE_SSL) diff --git a/src/AggregateFunctions/AggregateFunctionAvg.cpp b/src/AggregateFunctions/AggregateFunctionAvg.cpp index bec0a778c2d..0a2f9e57fac 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.cpp +++ b/src/AggregateFunctions/AggregateFunctionAvg.cpp @@ -25,11 +25,20 @@ AggregateFunctionPtr createAggregateFunctionAvg(const std::string & name, const assertNoParameters(name, parameters); assertUnary(name, argument_types); - if (!allowType(argument_types[0])) - throw Exception("Illegal type " + argument_types[0]->getName() + " of argument for aggregate function " + name, + const DataTypePtr& data_type = argument_types[0]; + + if (!allowType(data_type)) + throw Exception("Illegal type " + data_type->getName() + " of argument for aggregate function " + name, ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); - return std::make_shared(argument_types); + AggregateFunctionPtr res; + + if (isDecimal(data_type)) + res.reset(createWithDecimalType(*data_type, argument_types)); + else + res.reset(createWithNumericType(*data_type, argument_types)); + + return res; } } diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index 7c2ad3d0984..29d9d90cc5d 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -21,6 +21,13 @@ struct RationalFraction Float64 NO_SANITIZE_UNDEFINED result() const { return numerator / denominator; } }; +template constexpr bool DecimalOrExtendedInt = + IsDecimalNumber + || std::is_same_v + || std::is_same_v + || std::is_same_v + || std::is_same_v; + /** * The discussion showed that the easiest (and simplest) way is to cast both the columns of numerator and denominator * to Float64. Another way would be to write some template magic that figures out the appropriate numerator @@ -78,14 +85,22 @@ public: } }; -class AggregateFunctionAvg final : public AggregateFunctionAvgBase +template +class AggregateFunctionAvg final : public AggregateFunctionAvgBase> { public: - using AggregateFunctionAvgBase::AggregateFunctionAvgBase; + using AggregateFunctionAvgBase>::AggregateFunctionAvgBase; void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const final { - this->data(place).numerator += columns[0]->getFloat64(row_num); + if constexpr(IsDecimalNumber) + this->data(place).numerator += columns[0]->getFloat64(row_num); + else if constexpr(DecimalOrExtendedInt) + this->data(place).numerator += static_cast( + static_cast &>(*columns[0]).getData()[row_num]); + else + this->data(place).numerator += static_cast &>(*columns[0]).getData()[row_num]; + ++this->data(place).denominator; } diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp index 9045bff002a..b9499dee460 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp @@ -27,6 +27,39 @@ bool allowTypes(const DataTypePtr& left, const DataTypePtr& right) noexcept return allow(l_dt) && allow(r_dt); } +#define AT_SWITCH(LINE) \ + switch (which.idx) \ + { \ + LINE(Int8); LINE(Int16); LINE(Int32); LINE(Int64); LINE(Int128); LINE(Int256); \ + LINE(UInt8); LINE(UInt16); LINE(UInt32); LINE(UInt64); LINE(UInt128); LINE(UInt256); \ + LINE(Decimal32); LINE(Decimal64); LINE(Decimal128); LINE(Decimal256); \ + LINE(Float32); LINE(Float64); \ + default: return nullptr; \ + } + +template +static IAggregateFunction * create(const IDataType & second_type, TArgs && ... args) +{ + const WhichDataType which(second_type); + +#define LINE(Type) \ + case TypeIndex::Type: return new AggregateFunctionAvgWeighted(std::forward(args)...) + AT_SWITCH(LINE) +#undef LINE +} + +// Not using helper functions because there are no templates for binary decimal/numeric function. +template +static IAggregateFunction * create(const IDataType & first_type, const IDataType & second_type, TArgs && ... args) +{ + const WhichDataType which(first_type); + +#define LINE(Type) \ + case TypeIndex::Type: return create(second_type, std::forward(args)...) + AT_SWITCH(LINE) +#undef LINE +} + AggregateFunctionPtr createAggregateFunctionAvgWeighted(const std::string & name, const DataTypes & argument_types, const Array & parameters) { assertNoParameters(name, parameters); @@ -42,7 +75,9 @@ AggregateFunctionPtr createAggregateFunctionAvgWeighted(const std::string & name " are non-conforming as arguments for aggregate function " + name, ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); - return std::make_shared(argument_types); + AggregateFunctionPtr ptr; + ptr.reset(create(*data_type, *data_type_weight, argument_types)); + return ptr; } } diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h index ca9f0757cba..db72693fa6f 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h @@ -5,17 +5,34 @@ namespace DB { -class AggregateFunctionAvgWeighted final : public AggregateFunctionAvgBase +template +class AggregateFunctionAvgWeighted final : + public AggregateFunctionAvgBase> { public: - using AggregateFunctionAvgBase::AggregateFunctionAvgBase; + using Base = AggregateFunctionAvgBase>; + using Base::Base; void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const override { - const auto value = columns[0]->getFloat64(row_num); - const auto weight = columns[1]->getFloat64(row_num); + const Float64 value = [&columns, row_num] { + if constexpr(IsDecimalNumber) + return columns[0]->getFloat64(row_num); + else + return static_cast(static_cast&>(*columns[0]).getData()[row_num]); + }(); - this->data(place).numerator += value * weight; + using WeightRet = std::conditional_t, Float64, Weight>; + const WeightRet weight = [&columns, row_num]() -> WeightRet { + if constexpr(IsDecimalNumber) + return columns[1]->getFloat64(row_num); + else if constexpr(DecimalOrExtendedInt) + return static_cast(static_cast&>(*columns[1]).getData()[row_num]); + else + return static_cast&>(*columns[1]).getData()[row_num]; + }(); + + this->data(place).numerator += weight * value; this->data(place).denominator += weight; } From 5c6bd218adb19902657601fa60f3186de8a71ab3 Mon Sep 17 00:00:00 2001 From: myrrc Date: Tue, 3 Nov 2020 18:01:29 +0300 Subject: [PATCH 072/425] adjusted the perftest --- src/AggregateFunctions/AggregateFunctionAvgWeighted.h | 4 ++-- tests/performance/avg_weighted.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h index db72693fa6f..0c486232e52 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h @@ -24,9 +24,9 @@ public: using WeightRet = std::conditional_t, Float64, Weight>; const WeightRet weight = [&columns, row_num]() -> WeightRet { - if constexpr(IsDecimalNumber) + if constexpr(IsDecimalNumber) /// Unable to cast to double -> use the virtual method return columns[1]->getFloat64(row_num); - else if constexpr(DecimalOrExtendedInt) + else if constexpr(DecimalOrExtendedInt) /// Casting to double, otherwise += would be ambitious. return static_cast(static_cast&>(*columns[1]).getData()[row_num]); else return static_cast&>(*columns[1]).getData()[row_num]; diff --git a/tests/performance/avg_weighted.xml b/tests/performance/avg_weighted.xml index 5682e5bbfb9..bd0ab2395ff 100644 --- a/tests/performance/avg_weighted.xml +++ b/tests/performance/avg_weighted.xml @@ -13,8 +13,8 @@ INSERT INTO perf_avg(num) SELECT number / r FROM system.numbers - ARRAY JOIN range(1, 1000000) AS r - LIMIT 500000000 + ARRAY JOIN range(1, 10000) AS r + LIMIT 5000000 SELECT avg(num) FROM perf_avg From 43b2d20314b2b356780b48dc1c4d0e3382443072 Mon Sep 17 00:00:00 2001 From: myrrc Date: Wed, 4 Nov 2020 16:14:07 +0300 Subject: [PATCH 073/425] updated the decimal template magic --- .../AggregateFunctionAvg.cpp | 3 +- src/AggregateFunctions/AggregateFunctionAvg.h | 111 ++++++++++++------ .../AggregateFunctionAvgWeighted.cpp | 16 ++- .../AggregateFunctionAvgWeighted.h | 33 ++---- tests/performance/avg_weighted.xml | 7 +- 5 files changed, 110 insertions(+), 60 deletions(-) diff --git a/src/AggregateFunctions/AggregateFunctionAvg.cpp b/src/AggregateFunctions/AggregateFunctionAvg.cpp index 0a2f9e57fac..1511a9f54e5 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.cpp +++ b/src/AggregateFunctions/AggregateFunctionAvg.cpp @@ -34,7 +34,8 @@ AggregateFunctionPtr createAggregateFunctionAvg(const std::string & name, const AggregateFunctionPtr res; if (isDecimal(data_type)) - res.reset(createWithDecimalType(*data_type, argument_types)); + res.reset(createWithDecimalType( + *data_type, getDecimalScale(*data_type), argument_types)); else res.reset(createWithNumericType(*data_type, argument_types)); diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index 29d9d90cc5d..6e1ba180236 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -1,25 +1,19 @@ #pragma once +#include #include #include #include #include #include #include +#include "Core/DecimalFunctions.h" namespace DB { - -template -struct RationalFraction -{ - Float64 numerator{0}; - Denominator denominator{0}; - - /// Allow division by zero as sometimes we need to return NaN. - Float64 NO_SANITIZE_UNDEFINED result() const { return numerator / denominator; } -}; +template +using DecimalOrVectorCol = std::conditional_t, ColumnDecimal, ColumnVector>; template constexpr bool DecimalOrExtendedInt = IsDecimalNumber @@ -29,29 +23,78 @@ template constexpr bool DecimalOrExtendedInt = || std::is_same_v; /** - * The discussion showed that the easiest (and simplest) way is to cast both the columns of numerator and denominator - * to Float64. Another way would be to write some template magic that figures out the appropriate numerator - * and denominator (and the resulting type) in favour of extended integral types (UInt128 e.g.) and Decimals ( - * which are a mess themselves). The second way is also a bit useless because now Decimals are not used in functions - * like avg. - * - * The ability to explicitly specify the denominator is made for avg (it uses the integral value as the denominator is - * simply the length of the supplied list). - * + * Helper class to encapsulate values conversion for avg and avgWeighted. + */ +template +struct AvgFraction +{ + Numerator numerator{0}; + Denominator denominator{0}; + + static constexpr bool any_is_decimal = IsDecimalNumber || IsDecimalNumber; + + /// Allow division by zero as sometimes we need to return NaN. + /// Invoked only is either Numerator or Denominator are Decimal. + std::enable_if_t NO_SANITIZE_UNDEFINED divide(UInt32 scale) const + { + if constexpr (IsDecimalNumber && IsDecimalNumber) + return DecimalUtils::convertTo(numerator / denominator, scale); + + /// Numerator is always casted to Float64 to divide correctly if the denominator is not Float64. + const Float64 num_converted = [scale](Numerator n) + { + if constexpr (IsDecimalNumber) + return DecimalUtils::convertTo(n, scale); + else + return static_cast(n); /// all other types, including extended integral. + } (numerator); + + const auto denom_converted = [scale](Denominator d) -> + std::conditional_t, Float64, Denominator> + { + if constexpr (IsDecimalNumber) + return DecimalUtils::convertTo(d, scale); + else if constexpr (DecimalOrExtendedInt) + /// no way to divide Float64 and extended integral type without an explicit cast. + return static_cast(d); + else + return d; /// can divide on float, no cast required. + } (denominator); + + return num_converted / denom_converted; + } + + std::enable_if_t NO_SANITIZE_UNDEFINED divide() const + { + if constexpr (DecimalOrExtendedInt) /// if extended int + return static_cast(numerator) / static_cast(denominator); + else + return static_cast(numerator) / denominator; + } +}; + + +/** * @tparam Derived When deriving from this class, use the child class name as in CRTP, e.g. * class Self : Agg. */ -template +template class AggregateFunctionAvgBase : public - IAggregateFunctionDataHelper, Derived> + IAggregateFunctionDataHelper, Derived> { public: - using Fraction = RationalFraction; + using Fraction = AvgFraction; using Base = IAggregateFunctionDataHelper; - explicit AggregateFunctionAvgBase(const DataTypes & argument_types_): Base(argument_types_, {}) {} + /// ctor for native types + explicit AggregateFunctionAvgBase(const DataTypes & argument_types_) + : Base(argument_types_, {}), scale(0) {} - DataTypePtr getReturnType() const override { return std::make_shared>(); } + /// ctor for Decimals + AggregateFunctionAvgBase(UInt32 scale_, const DataTypes & argument_types_) + : Base(argument_types_, {}), scale(scale_) {} + + DataTypePtr getReturnType() const final { return std::make_shared>(); } void merge(AggregateDataPtr place, ConstAggregateDataPtr rhs, Arena *) const override { @@ -81,26 +124,24 @@ public: void insertResultInto(AggregateDataPtr place, IColumn & to, Arena *) const override { - static_cast &>(to).getData().push_back(this->data(place).result()); + if constexpr (IsDecimalNumber || IsDecimalNumber) + static_cast &>(to).getData().push_back(this->data(place).divide(scale)); + else + static_cast &>(to).getData().push_back(this->data(place).divide()); } +private: + UInt32 scale; }; template -class AggregateFunctionAvg final : public AggregateFunctionAvgBase> +class AggregateFunctionAvg final : public AggregateFunctionAvgBase> { public: - using AggregateFunctionAvgBase>::AggregateFunctionAvgBase; + using AggregateFunctionAvgBase>::AggregateFunctionAvgBase; void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const final { - if constexpr(IsDecimalNumber) - this->data(place).numerator += columns[0]->getFloat64(row_num); - else if constexpr(DecimalOrExtendedInt) - this->data(place).numerator += static_cast( - static_cast &>(*columns[0]).getData()[row_num]); - else - this->data(place).numerator += static_cast &>(*columns[0]).getData()[row_num]; - + this->data(place).numerator += static_cast &>(*columns[0]).getData()[row_num]; ++this->data(place).denominator; } diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp index b9499dee460..1a505bb24f1 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp @@ -76,7 +76,21 @@ AggregateFunctionPtr createAggregateFunctionAvgWeighted(const std::string & name ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); AggregateFunctionPtr ptr; - ptr.reset(create(*data_type, *data_type_weight, argument_types)); + + const bool left_decimal = isDecimal(data_type); + const bool right_decimal = isDecimal(data_type_weight); + + if (left_decimal && right_decimal) + ptr.reset(create(*data_type, *data_type_weight, + getDecimalScale((sizeof(*data_type) > sizeof(*data_type_weight)) ? *data_type : *data_type_weight), + argument_types)); + else if (left_decimal) + ptr.reset(create(*data_type, *data_type_weight, getDecimalScale(*data_type), argument_types)); + else if (right_decimal) + ptr.reset(create(*data_type, *data_type_weight, getDecimalScale(*data_type_weight), argument_types)); + else + ptr.reset(create(*data_type, *data_type_weight, argument_types)); + return ptr; } } diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h index 0c486232e52..b345d64bbfa 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h @@ -5,35 +5,28 @@ namespace DB { +template +using FieldType = std::conditional_t, + std::conditional_t, + Decimal256, Decimal128>, + NearestFieldType>; + template class AggregateFunctionAvgWeighted final : - public AggregateFunctionAvgBase> + public AggregateFunctionAvgBase, FieldType, AggregateFunctionAvgWeighted> { public: - using Base = AggregateFunctionAvgBase>; + using Base = AggregateFunctionAvgBase< + FieldType, FieldType, AggregateFunctionAvgWeighted>; using Base::Base; void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const override { - const Float64 value = [&columns, row_num] { - if constexpr(IsDecimalNumber) - return columns[0]->getFloat64(row_num); - else - return static_cast(static_cast&>(*columns[0]).getData()[row_num]); - }(); + const Value value = static_cast &>(*columns[0]).getData()[row_num]; + const Weight weight = static_cast &>(*columns[1]).getData()[row_num]; - using WeightRet = std::conditional_t, Float64, Weight>; - const WeightRet weight = [&columns, row_num]() -> WeightRet { - if constexpr(IsDecimalNumber) /// Unable to cast to double -> use the virtual method - return columns[1]->getFloat64(row_num); - else if constexpr(DecimalOrExtendedInt) /// Casting to double, otherwise += would be ambitious. - return static_cast(static_cast&>(*columns[1]).getData()[row_num]); - else - return static_cast&>(*columns[1]).getData()[row_num]; - }(); - - this->data(place).numerator += weight * value; - this->data(place).denominator += weight; + this->data(place).numerator += static_cast>(value) * weight; + this->data(place).denominator += static_cast>(weight); } String getName() const override { return "avgWeighted"; } diff --git a/tests/performance/avg_weighted.xml b/tests/performance/avg_weighted.xml index bd0ab2395ff..13bc7e58c44 100644 --- a/tests/performance/avg_weighted.xml +++ b/tests/performance/avg_weighted.xml @@ -4,7 +4,7 @@ CREATE TABLE perf_avg( num UInt64, - num_u Decimal256(75) DEFAULT toDecimal256(num / 100000, 75), + num_u Decimal256(75) DEFAULT toDecimal256(num / 400000, 75), num_f Float64 DEFAULT num ) ENGINE = MergeTree() ORDER BY tuple() @@ -13,11 +13,12 @@ INSERT INTO perf_avg(num) SELECT number / r FROM system.numbers - ARRAY JOIN range(1, 10000) AS r - LIMIT 5000000 + ARRAY JOIN range(1, 400000) AS r + LIMIT 200000000 SELECT avg(num) FROM perf_avg + SELECT avg(2 * num) FROM perf_avg SELECT avg(num_u) FROM perf_avg SELECT avg(num_f) FROM perf_avg SELECT avgWeighted(num_f, num) FROM perf_avg From 832d37c424ab059f9ff87ba25c8d05d1a40fb4ee Mon Sep 17 00:00:00 2001 From: myrrc Date: Wed, 4 Nov 2020 17:23:04 +0300 Subject: [PATCH 074/425] added some corner cases, made Decimal convertTo const --- .../AggregateFunctionAvg.cpp | 2 +- src/AggregateFunctions/AggregateFunctionAvg.h | 29 +++++++++++-------- .../AggregateFunctionAvgWeighted.cpp | 8 ++--- .../AggregateFunctionAvgWeighted.h | 21 ++++++++++---- src/Core/Types.h | 2 +- 5 files changed, 38 insertions(+), 24 deletions(-) diff --git a/src/AggregateFunctions/AggregateFunctionAvg.cpp b/src/AggregateFunctions/AggregateFunctionAvg.cpp index 1511a9f54e5..9b1c3d6cef6 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.cpp +++ b/src/AggregateFunctions/AggregateFunctionAvg.cpp @@ -35,7 +35,7 @@ AggregateFunctionPtr createAggregateFunctionAvg(const std::string & name, const if (isDecimal(data_type)) res.reset(createWithDecimalType( - *data_type, getDecimalScale(*data_type), argument_types)); + *data_type, argument_types, getDecimalScale(*data_type))); else res.reset(createWithNumericType(*data_type, argument_types)); diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index 6e1ba180236..2733327d236 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -31,18 +31,26 @@ struct AvgFraction Numerator numerator{0}; Denominator denominator{0}; - static constexpr bool any_is_decimal = IsDecimalNumber || IsDecimalNumber; - /// Allow division by zero as sometimes we need to return NaN. /// Invoked only is either Numerator or Denominator are Decimal. - std::enable_if_t NO_SANITIZE_UNDEFINED divide(UInt32 scale) const + Float64 NO_SANITIZE_UNDEFINED divideIfAnyDecimal(UInt32 scale) const { if constexpr (IsDecimalNumber && IsDecimalNumber) - return DecimalUtils::convertTo(numerator / denominator, scale); + { + if constexpr(std::is_same_v && std::is_same_v) + ///Special case as Decimal256 / Decimal128 = compile error (as Decimal128 is not parametrized by a wide + ///int), but an __int128 instead + return DecimalUtils::convertTo( + numerator / (denominator.template convertTo()), scale); + else + return DecimalUtils::convertTo(numerator / denominator, scale); + } /// Numerator is always casted to Float64 to divide correctly if the denominator is not Float64. const Float64 num_converted = [scale](Numerator n) { + (void) scale; + if constexpr (IsDecimalNumber) return DecimalUtils::convertTo(n, scale); else @@ -52,6 +60,8 @@ struct AvgFraction const auto denom_converted = [scale](Denominator d) -> std::conditional_t, Float64, Denominator> { + (void) scale; + if constexpr (IsDecimalNumber) return DecimalUtils::convertTo(d, scale); else if constexpr (DecimalOrExtendedInt) @@ -64,7 +74,7 @@ struct AvgFraction return num_converted / denom_converted; } - std::enable_if_t NO_SANITIZE_UNDEFINED divide() const + Float64 NO_SANITIZE_UNDEFINED divide() const { if constexpr (DecimalOrExtendedInt) /// if extended int return static_cast(numerator) / static_cast(denominator); @@ -86,12 +96,7 @@ public: using Fraction = AvgFraction; using Base = IAggregateFunctionDataHelper; - /// ctor for native types - explicit AggregateFunctionAvgBase(const DataTypes & argument_types_) - : Base(argument_types_, {}), scale(0) {} - - /// ctor for Decimals - AggregateFunctionAvgBase(UInt32 scale_, const DataTypes & argument_types_) + explicit AggregateFunctionAvgBase(const DataTypes & argument_types_, UInt32 scale_ = 0) : Base(argument_types_, {}), scale(scale_) {} DataTypePtr getReturnType() const final { return std::make_shared>(); } @@ -125,7 +130,7 @@ public: void insertResultInto(AggregateDataPtr place, IColumn & to, Arena *) const override { if constexpr (IsDecimalNumber || IsDecimalNumber) - static_cast &>(to).getData().push_back(this->data(place).divide(scale)); + static_cast &>(to).getData().push_back(this->data(place).divideIfAnyDecimal(scale)); else static_cast &>(to).getData().push_back(this->data(place).divide()); } diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp index 1a505bb24f1..3fc9ebb8865 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp @@ -82,12 +82,12 @@ AggregateFunctionPtr createAggregateFunctionAvgWeighted(const std::string & name if (left_decimal && right_decimal) ptr.reset(create(*data_type, *data_type_weight, - getDecimalScale((sizeof(*data_type) > sizeof(*data_type_weight)) ? *data_type : *data_type_weight), - argument_types)); + argument_types, + getDecimalScale((sizeof(*data_type) > sizeof(*data_type_weight)) ? *data_type : *data_type_weight))); else if (left_decimal) - ptr.reset(create(*data_type, *data_type_weight, getDecimalScale(*data_type), argument_types)); + ptr.reset(create(*data_type, *data_type_weight, argument_types, getDecimalScale(*data_type))); else if (right_decimal) - ptr.reset(create(*data_type, *data_type_weight, getDecimalScale(*data_type_weight), argument_types)); + ptr.reset(create(*data_type, *data_type_weight, argument_types, getDecimalScale(*data_type_weight))); else ptr.reset(create(*data_type, *data_type_weight, argument_types)); diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h index b345d64bbfa..b31fd1d0323 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h @@ -7,25 +7,34 @@ namespace DB { template using FieldType = std::conditional_t, - std::conditional_t, - Decimal256, Decimal128>, - NearestFieldType>; + std::conditional_t, Decimal256, Decimal128>, + std::conditional_t, + Float64, // no way to do UInt128 * UInt128, better cast to Float64 + NearestFieldType>>; + +template +using MaxFieldType = std::conditional_t<(sizeof(FieldType) > sizeof(FieldType)), + FieldType, FieldType>; template class AggregateFunctionAvgWeighted final : - public AggregateFunctionAvgBase, FieldType, AggregateFunctionAvgWeighted> + public AggregateFunctionAvgBase< + MaxFieldType, FieldType, AggregateFunctionAvgWeighted> { public: using Base = AggregateFunctionAvgBase< - FieldType, FieldType, AggregateFunctionAvgWeighted>; + MaxFieldType, FieldType, AggregateFunctionAvgWeighted>; using Base::Base; + using ValueT = MaxFieldType; + void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const override { const Value value = static_cast &>(*columns[0]).getData()[row_num]; const Weight weight = static_cast &>(*columns[1]).getData()[row_num]; - this->data(place).numerator += static_cast>(value) * weight; + this->data(place).numerator += static_cast(value) * static_cast(weight); + this->data(place).denominator += static_cast>(weight); } diff --git a/src/Core/Types.h b/src/Core/Types.h index 3157598adc0..28ca7146aaf 100644 --- a/src/Core/Types.h +++ b/src/Core/Types.h @@ -145,7 +145,7 @@ struct Decimal operator T () const { return value; } template - U convertTo() + U convertTo() const { /// no IsDecimalNumber defined yet if constexpr (std::is_same_v> || From 591ebcef49bd7e2b87f61448eb9a9b67ef2e3c00 Mon Sep 17 00:00:00 2001 From: myrrc Date: Wed, 4 Nov 2020 18:23:29 +0300 Subject: [PATCH 075/425] fixing test results --- src/AggregateFunctions/AggregateFunctionAvg.h | 11 +- .../AggregateFunctionAvgWeighted.h | 12 +- ...01518_nullable_aggregate_states2.reference | 3652 ++++++++--------- 3 files changed, 1840 insertions(+), 1835 deletions(-) diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index 2733327d236..3a40b4f16ab 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -37,7 +37,7 @@ struct AvgFraction { if constexpr (IsDecimalNumber && IsDecimalNumber) { - if constexpr(std::is_same_v && std::is_same_v) + if constexpr (std::is_same_v && std::is_same_v) ///Special case as Decimal256 / Decimal128 = compile error (as Decimal128 is not parametrized by a wide ///int), but an __int128 instead return DecimalUtils::convertTo( @@ -139,10 +139,15 @@ private: }; template -class AggregateFunctionAvg final : public AggregateFunctionAvgBase> +using AvgFieldType = std::conditional_t, + std::conditional_t, Decimal256, Decimal128>, + NearestFieldType>; + +template +class AggregateFunctionAvg final : public AggregateFunctionAvgBase, UInt64, AggregateFunctionAvg> { public: - using AggregateFunctionAvgBase>::AggregateFunctionAvgBase; + using AggregateFunctionAvgBase, UInt64, AggregateFunctionAvg>::AggregateFunctionAvgBase; void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const final { diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h index b31fd1d0323..43312d391fe 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h @@ -6,24 +6,24 @@ namespace DB { template -using FieldType = std::conditional_t, +using AvgWeightedFieldType = std::conditional_t, std::conditional_t, Decimal256, Decimal128>, std::conditional_t, Float64, // no way to do UInt128 * UInt128, better cast to Float64 NearestFieldType>>; template -using MaxFieldType = std::conditional_t<(sizeof(FieldType) > sizeof(FieldType)), - FieldType, FieldType>; +using MaxFieldType = std::conditional_t<(sizeof(AvgWeightedFieldType) > sizeof(AvgWeightedFieldType)), + AvgWeightedFieldType, AvgWeightedFieldType>; template class AggregateFunctionAvgWeighted final : public AggregateFunctionAvgBase< - MaxFieldType, FieldType, AggregateFunctionAvgWeighted> + MaxFieldType, AvgWeightedFieldType, AggregateFunctionAvgWeighted> { public: using Base = AggregateFunctionAvgBase< - MaxFieldType, FieldType, AggregateFunctionAvgWeighted>; + MaxFieldType, AvgWeightedFieldType, AggregateFunctionAvgWeighted>; using Base::Base; using ValueT = MaxFieldType; @@ -35,7 +35,7 @@ public: this->data(place).numerator += static_cast(value) * static_cast(weight); - this->data(place).denominator += static_cast>(weight); + this->data(place).denominator += static_cast>(weight); } String getName() const override { return "avgWeighted"; } diff --git a/tests/queries/0_stateless/01518_nullable_aggregate_states2.reference b/tests/queries/0_stateless/01518_nullable_aggregate_states2.reference index e393fd798fb..7e353902742 100644 --- a/tests/queries/0_stateless/01518_nullable_aggregate_states2.reference +++ b/tests/queries/0_stateless/01518_nullable_aggregate_states2.reference @@ -7,1004 +7,1004 @@ -4 1 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N -5 1 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N 0 102 0 99900 0 300 150 15150 0 300 150 15150 0.00000 300.00000 150 15150.00000 2020-01-01 2020-01-02 2020-01-01 00:00:00 2020-01-02 03:45:00 2020-01-01 00:00:00.000 2020-01-02 03:45:00.000 0 99900 49950 5044950 0 99900 49950 5044950 -32569 32366 4529.009900990099 457430 -127 124 -2.9504950495049505 -298 -1 102 1 9991 0.003 300.003 150.003 15150.3033 0.003 300.003 150.003 15150.30329 0.00300 300.00300 150.00300000000004 15150.30300 2020-01-01 2020-01-02 2020-01-01 00:00:01 2020-01-02 03:45:01 2020-01-01 00:00:01.000 2020-01-02 03:45:01.000 1 99901 49951 5045051 1 99901 49951 5045051 -32568 32367 4530.009900990099 457531 -126 125 -1.9504950495049505 -197 -10 102 10 99910 0.03003 300.03003 150.03003 15153.03303 0.03003 300.03003 150.03002 15153.03296 0.03003 300.03003 150.03002999999993 15153.03303 2020-01-01 2020-01-02 2020-01-01 00:00:10 2020-01-02 03:45:10 2020-01-01 00:00:10.000 2020-01-02 03:45:10.000 10 99910 49960 5045960 10 99910 49960 5045960 -32559 32376 4539.009900990099 458440 -128 127 -0.5544554455445545 -56 -100 101 100 99001 0.3003 297.3003 148.8003 14880.03003 0.3003 297.3003 148.80029 14880.02962 0.30030 297.30030 148.80030000000005 14880.03000 2020-01-01 2020-01-02 2020-01-01 00:01:40 2020-01-02 03:30:01 2020-01-01 00:01:40.000 2020-01-02 03:30:01.000 100 99001 49550.5 4955050 100 99001 49550.5 4955050 -32469 32466 4986.02 498602 -127 124 -0.86 -86 -101 101 10091 99002 0.3033 297.3033 148.8033 14880.33033 0.3033 297.3033 148.8033 14880.33035 0.30330 297.30330 148.80329999999987 14880.33000 2020-01-01 2020-01-02 2020-01-01 00:01:41 2020-01-02 03:30:02 2020-01-01 00:01:41.000 2020-01-02 03:30:02.000 101 99002 49551.5 4955150 101 99002 49551.5 4955150 -32468 32467 4987.02 498702 -126 125 0.14 14 -102 101 10092 99003 0.3063 297.3063 148.8063 14880.63063 0.3063 297.3063 148.8063 14880.6305 0.30630 297.30630 148.80630000000008 14880.63000 2020-01-01 2020-01-02 2020-01-01 00:01:42 2020-01-02 03:30:03 2020-01-01 00:01:42.000 2020-01-02 03:30:03.000 102 99003 49552.5 4955250 102 99003 49552.5 4955250 -32467 32468 4988.02 498802 -125 126 1.14 114 -103 101 10093 99004 0.3093 297.3093 148.8093 14880.93093 0.3093 297.3093 148.8093 14880.93085 0.30930 297.30930 148.80930000000006 14880.93000 2020-01-01 2020-01-02 2020-01-01 00:01:43 2020-01-02 03:30:04 2020-01-01 00:01:43.000 2020-01-02 03:30:04.000 103 99004 49553.5 4955350 103 99004 49553.5 4955350 -32466 32469 4989.02 498902 -124 127 2.14 214 -104 101 10094 99005 0.31231 297.31231 148.81231 14881.23123 0.31231 297.31232 148.81231 14881.23144 0.31231 297.31231 148.81230999999997 14881.23100 2020-01-01 2020-01-02 2020-01-01 00:01:44 2020-01-02 03:30:05 2020-01-01 00:01:44.000 2020-01-02 03:30:05.000 104 99005 49554.5 4955450 104 99005 49554.5 4955450 -32465 32470 4990.02 499002 -128 127 0.58 58 -105 101 10095 99006 0.31531 297.31531 148.81531 14881.53153 0.31531 297.3153 148.81531 14881.53174 0.31531 297.31531 148.81530999999998 14881.53100 2020-01-01 2020-01-02 2020-01-01 00:01:45 2020-01-02 03:30:06 2020-01-01 00:01:45.000 2020-01-02 03:30:06.000 105 99006 49555.5 4955550 105 99006 49555.5 4955550 -32464 32471 4991.02 499102 -128 123 -0.98 -98 -106 101 10096 99007 0.31831 297.31831 148.81831 14881.83183 0.31831 297.31833 148.81831 14881.83182 0.31831 297.31831 148.81831000000003 14881.83100 2020-01-01 2020-01-02 2020-01-01 00:01:46 2020-01-02 03:30:07 2020-01-01 00:01:46.000 2020-01-02 03:30:07.000 106 99007 49556.5 4955650 106 99007 49556.5 4955650 -32463 32472 4992.02 499202 -127 124 0.02 2 -107 101 10097 99008 0.32132 297.32132 148.82132 14882.13213 0.32132 297.32132 148.82131 14882.13197 0.32132 297.32132 148.8213199999999 14882.13200 2020-01-01 2020-01-02 2020-01-01 00:01:47 2020-01-02 03:30:08 2020-01-01 00:01:47.000 2020-01-02 03:30:08.000 107 99008 49557.5 4955750 107 99008 49557.5 4955750 -32462 32473 4993.02 499302 -126 125 1.02 102 -108 101 10098 99009 0.32432 297.32432 148.82432 14882.43243 0.32432 297.3243 148.82432 14882.43232 0.32432 297.32432 148.82431999999994 14882.43200 2020-01-01 2020-01-02 2020-01-01 00:01:48 2020-01-02 03:30:09 2020-01-01 00:01:48.000 2020-01-02 03:30:09.000 108 99009 49558.5 4955850 108 99009 49558.5 4955850 -32461 32474 4994.02 499402 -125 126 2.02 202 -109 101 10099 99010 0.32732 297.32732 148.82732 14882.73273 0.32732 297.32733 148.82732 14882.7329 0.32732 297.32732 148.8273200000001 14882.73200 2020-01-01 2020-01-02 2020-01-01 00:01:49 2020-01-02 03:30:10 2020-01-01 00:01:49.000 2020-01-02 03:30:10.000 109 99010 49559.5 4955950 109 99010 49559.5 4955950 -32460 32475 4995.02 499502 -124 127 3.02 302 +1 102 1 9991 0.003 300.003 150.003 15150.3033 0.003 300.003 150.003 15150.30329 0.00300 300.00300 150.003 15150.30300 2020-01-01 2020-01-02 2020-01-01 00:00:01 2020-01-02 03:45:01 2020-01-01 00:00:01.000 2020-01-02 03:45:01.000 1 99901 49951 5045051 1 99901 49951 5045051 -32568 32367 4530.009900990099 457531 -126 125 -1.9504950495049505 -197 +10 102 10 99910 0.03003 300.03003 150.03003 15153.03303 0.03003 300.03003 150.03002 15153.03296 0.03003 300.03003 150.03003 15153.03303 2020-01-01 2020-01-02 2020-01-01 00:00:10 2020-01-02 03:45:10 2020-01-01 00:00:10.000 2020-01-02 03:45:10.000 10 99910 49960 5045960 10 99910 49960 5045960 -32559 32376 4539.009900990099 458440 -128 127 -0.5544554455445545 -56 +100 101 100 99001 0.3003 297.3003 148.8003 14880.03003 0.3003 297.3003 148.80029 14880.02962 0.30030 297.30030 148.8003 14880.03000 2020-01-01 2020-01-02 2020-01-01 00:01:40 2020-01-02 03:30:01 2020-01-01 00:01:40.000 2020-01-02 03:30:01.000 100 99001 49550.5 4955050 100 99001 49550.5 4955050 -32469 32466 4986.02 498602 -127 124 -0.86 -86 +101 101 10091 99002 0.3033 297.3033 148.8033 14880.33033 0.3033 297.3033 148.8033 14880.33035 0.30330 297.30330 148.8033 14880.33000 2020-01-01 2020-01-02 2020-01-01 00:01:41 2020-01-02 03:30:02 2020-01-01 00:01:41.000 2020-01-02 03:30:02.000 101 99002 49551.5 4955150 101 99002 49551.5 4955150 -32468 32467 4987.02 498702 -126 125 0.14 14 +102 101 10092 99003 0.3063 297.3063 148.8063 14880.63063 0.3063 297.3063 148.8063 14880.6305 0.30630 297.30630 148.8063 14880.63000 2020-01-01 2020-01-02 2020-01-01 00:01:42 2020-01-02 03:30:03 2020-01-01 00:01:42.000 2020-01-02 03:30:03.000 102 99003 49552.5 4955250 102 99003 49552.5 4955250 -32467 32468 4988.02 498802 -125 126 1.14 114 +103 101 10093 99004 0.3093 297.3093 148.8093 14880.93093 0.3093 297.3093 148.8093 14880.93085 0.30930 297.30930 148.8093 14880.93000 2020-01-01 2020-01-02 2020-01-01 00:01:43 2020-01-02 03:30:04 2020-01-01 00:01:43.000 2020-01-02 03:30:04.000 103 99004 49553.5 4955350 103 99004 49553.5 4955350 -32466 32469 4989.02 498902 -124 127 2.14 214 +104 101 10094 99005 0.31231 297.31231 148.81231 14881.23123 0.31231 297.31232 148.81231 14881.23144 0.31231 297.31231 148.81231 14881.23100 2020-01-01 2020-01-02 2020-01-01 00:01:44 2020-01-02 03:30:05 2020-01-01 00:01:44.000 2020-01-02 03:30:05.000 104 99005 49554.5 4955450 104 99005 49554.5 4955450 -32465 32470 4990.02 499002 -128 127 0.58 58 +105 101 10095 99006 0.31531 297.31531 148.81531 14881.53153 0.31531 297.3153 148.81531 14881.53174 0.31531 297.31531 148.81531 14881.53100 2020-01-01 2020-01-02 2020-01-01 00:01:45 2020-01-02 03:30:06 2020-01-01 00:01:45.000 2020-01-02 03:30:06.000 105 99006 49555.5 4955550 105 99006 49555.5 4955550 -32464 32471 4991.02 499102 -128 123 -0.98 -98 +106 101 10096 99007 0.31831 297.31831 148.81831 14881.83183 0.31831 297.31833 148.81831 14881.83182 0.31831 297.31831 148.81831 14881.83100 2020-01-01 2020-01-02 2020-01-01 00:01:46 2020-01-02 03:30:07 2020-01-01 00:01:46.000 2020-01-02 03:30:07.000 106 99007 49556.5 4955650 106 99007 49556.5 4955650 -32463 32472 4992.02 499202 -127 124 0.02 2 +107 101 10097 99008 0.32132 297.32132 148.82132 14882.13213 0.32132 297.32132 148.82131 14882.13197 0.32132 297.32132 148.82132 14882.13200 2020-01-01 2020-01-02 2020-01-01 00:01:47 2020-01-02 03:30:08 2020-01-01 00:01:47.000 2020-01-02 03:30:08.000 107 99008 49557.5 4955750 107 99008 49557.5 4955750 -32462 32473 4993.02 499302 -126 125 1.02 102 +108 101 10098 99009 0.32432 297.32432 148.82432 14882.43243 0.32432 297.3243 148.82432 14882.43232 0.32432 297.32432 148.82432 14882.43200 2020-01-01 2020-01-02 2020-01-01 00:01:48 2020-01-02 03:30:09 2020-01-01 00:01:48.000 2020-01-02 03:30:09.000 108 99009 49558.5 4955850 108 99009 49558.5 4955850 -32461 32474 4994.02 499402 -125 126 2.02 202 +109 101 10099 99010 0.32732 297.32732 148.82732 14882.73273 0.32732 297.32733 148.82732 14882.7329 0.32732 297.32732 148.82732 14882.73200 2020-01-01 2020-01-02 2020-01-01 00:01:49 2020-01-02 03:30:10 2020-01-01 00:01:49.000 2020-01-02 03:30:10.000 109 99010 49559.5 4955950 109 99010 49559.5 4955950 -32460 32475 4995.02 499502 -124 127 3.02 302 11 102 10001 99911 0.03303 300.03303 150.03303 15153.33633 0.03303 300.03302 150.03303 15153.33627 0.03303 300.03303 150.03303 15153.33603 2020-01-01 2020-01-02 2020-01-01 00:00:11 2020-01-02 03:45:11 2020-01-01 00:00:11.000 2020-01-02 03:45:11.000 11 99911 49961 5046061 11 99911 49961 5046061 -32558 32377 4540.009900990099 458541 -128 123 -2.089108910891089 -211 110 101 10100 99011 0.33033 297.33033 148.83033 14883.03303 0.33033 297.33032 148.83033 14883.03321 0.33033 297.33033 148.83033 14883.03300 2020-01-01 2020-01-02 2020-01-01 00:01:50 2020-01-02 03:30:11 2020-01-01 00:01:50.000 2020-01-02 03:30:11.000 110 99011 49560.5 4956050 110 99011 49560.5 4956050 -32459 32476 4996.02 499602 -128 127 1.46 146 -111 101 10101 99012 0.33333 297.33333 148.83333 14883.33333 0.33333 297.33334 148.83333 14883.33329 0.33333 297.33333 148.83333 14883.33300 2020-01-01 2020-01-02 2020-01-01 00:01:51 2020-01-02 03:30:12 2020-01-01 00:01:51.000 2020-01-02 03:30:12.000 111 99012 49561.5 4956150 111 99012 49561.5 4956150 -32458 32477 4997.02 499702 -128 123 -0.1 -10 -112 101 10102 99013 0.33633 297.33633 148.83633 14883.63363 0.33633 297.33633 148.83633 14883.63348 0.33633 297.33633 148.83633000000006 14883.63300 2020-01-01 2020-01-02 2020-01-01 00:01:52 2020-01-02 03:30:13 2020-01-01 00:01:52.000 2020-01-02 03:30:13.000 112 99013 49562.5 4956250 112 99013 49562.5 4956250 -32457 32478 4998.02 499802 -127 124 0.9 90 +111 101 10101 99012 0.33333 297.33333 148.83333 14883.33333 0.33333 297.33334 148.83333 14883.33329 0.33333 297.33333 148.83333000000002 14883.33300 2020-01-01 2020-01-02 2020-01-01 00:01:51 2020-01-02 03:30:12 2020-01-01 00:01:51.000 2020-01-02 03:30:12.000 111 99012 49561.5 4956150 111 99012 49561.5 4956150 -32458 32477 4997.02 499702 -128 123 -0.1 -10 +112 101 10102 99013 0.33633 297.33633 148.83633 14883.63363 0.33633 297.33633 148.83633 14883.63348 0.33633 297.33633 148.83633 14883.63300 2020-01-01 2020-01-02 2020-01-01 00:01:52 2020-01-02 03:30:13 2020-01-01 00:01:52.000 2020-01-02 03:30:13.000 112 99013 49562.5 4956250 112 99013 49562.5 4956250 -32457 32478 4998.02 499802 -127 124 0.9 90 113 101 10103 99014 0.33933 297.33933 148.83933 14883.93393 0.33933 297.33932 148.83933 14883.9338 0.33933 297.33933 148.83933000000002 14883.93300 2020-01-01 2020-01-02 2020-01-01 00:01:53 2020-01-02 03:30:14 2020-01-01 00:01:53.000 2020-01-02 03:30:14.000 113 99014 49563.5 4956350 113 99014 49563.5 4956350 -32456 32479 4999.02 499902 -126 125 1.9 190 -114 101 10104 99015 0.34234 297.34234 148.84234 14884.23423 0.34234 297.34235 148.84234 14884.23437 0.34234 297.34234 148.84233999999998 14884.23400 2020-01-01 2020-01-02 2020-01-01 00:01:54 2020-01-02 03:30:15 2020-01-01 00:01:54.000 2020-01-02 03:30:15.000 114 99015 49564.5 4956450 114 99015 49564.5 4956450 -32455 32480 5000.02 500002 -125 126 2.9 290 -115 101 10105 99016 0.34534 297.34534 148.84534 14884.53453 0.34534 297.34534 148.84534 14884.53468 0.34534 297.34534 148.84533999999994 14884.53400 2020-01-01 2020-01-02 2020-01-01 00:01:55 2020-01-02 03:30:16 2020-01-01 00:01:55.000 2020-01-02 03:30:16.000 115 99016 49565.5 4956550 115 99016 49565.5 4956550 -32454 32481 5001.02 500102 -124 127 3.9 390 -116 101 10106 99017 0.34834 297.34834 148.84834 14884.83483 0.34834 297.34836 148.84834 14884.83476 0.34834 297.34834 148.84834000000015 14884.83400 2020-01-01 2020-01-02 2020-01-01 00:01:56 2020-01-02 03:30:17 2020-01-01 00:01:56.000 2020-01-02 03:30:17.000 116 99017 49566.5 4956650 116 99017 49566.5 4956650 -32453 32482 5002.02 500202 -128 127 2.34 234 -117 101 10107 99018 0.35135 297.35135 148.85135 14885.13513 0.35135 297.35135 148.85134 14885.13495 0.35135 297.35135 148.85135000000005 14885.13500 2020-01-01 2020-01-02 2020-01-01 00:01:57 2020-01-02 03:30:18 2020-01-01 00:01:57.000 2020-01-02 03:30:18.000 117 99018 49567.5 4956750 117 99018 49567.5 4956750 -32452 32483 5003.02 500302 -128 123 0.78 78 -118 101 10108 99019 0.35435 297.35435 148.85435 14885.43543 0.35435 297.35434 148.85435 14885.43526 0.35435 297.35435 148.8543499999999 14885.43500 2020-01-01 2020-01-02 2020-01-01 00:01:58 2020-01-02 03:30:19 2020-01-01 00:01:58.000 2020-01-02 03:30:19.000 118 99019 49568.5 4956850 118 99019 49568.5 4956850 -32451 32484 5004.02 500402 -127 124 1.78 178 -119 101 10109 99020 0.35735 297.35735 148.85735 14885.73573 0.35735 297.35736 148.85736 14885.736 0.35735 297.35735 148.8573500000001 14885.73500 2020-01-01 2020-01-02 2020-01-01 00:01:59 2020-01-02 03:30:20 2020-01-01 00:01:59.000 2020-01-02 03:30:20.000 119 99020 49569.5 4956950 119 99020 49569.5 4956950 -32450 32485 5005.02 500502 -126 125 2.78 278 +114 101 10104 99015 0.34234 297.34234 148.84234 14884.23423 0.34234 297.34235 148.84234 14884.23437 0.34234 297.34234 148.84234 14884.23400 2020-01-01 2020-01-02 2020-01-01 00:01:54 2020-01-02 03:30:15 2020-01-01 00:01:54.000 2020-01-02 03:30:15.000 114 99015 49564.5 4956450 114 99015 49564.5 4956450 -32455 32480 5000.02 500002 -125 126 2.9 290 +115 101 10105 99016 0.34534 297.34534 148.84534 14884.53453 0.34534 297.34534 148.84534 14884.53468 0.34534 297.34534 148.84534 14884.53400 2020-01-01 2020-01-02 2020-01-01 00:01:55 2020-01-02 03:30:16 2020-01-01 00:01:55.000 2020-01-02 03:30:16.000 115 99016 49565.5 4956550 115 99016 49565.5 4956550 -32454 32481 5001.02 500102 -124 127 3.9 390 +116 101 10106 99017 0.34834 297.34834 148.84834 14884.83483 0.34834 297.34836 148.84834 14884.83476 0.34834 297.34834 148.84834 14884.83400 2020-01-01 2020-01-02 2020-01-01 00:01:56 2020-01-02 03:30:17 2020-01-01 00:01:56.000 2020-01-02 03:30:17.000 116 99017 49566.5 4956650 116 99017 49566.5 4956650 -32453 32482 5002.02 500202 -128 127 2.34 234 +117 101 10107 99018 0.35135 297.35135 148.85135 14885.13513 0.35135 297.35135 148.85134 14885.13495 0.35135 297.35135 148.85135 14885.13500 2020-01-01 2020-01-02 2020-01-01 00:01:57 2020-01-02 03:30:18 2020-01-01 00:01:57.000 2020-01-02 03:30:18.000 117 99018 49567.5 4956750 117 99018 49567.5 4956750 -32452 32483 5003.02 500302 -128 123 0.78 78 +118 101 10108 99019 0.35435 297.35435 148.85435 14885.43543 0.35435 297.35434 148.85435 14885.43526 0.35435 297.35435 148.85434999999998 14885.43500 2020-01-01 2020-01-02 2020-01-01 00:01:58 2020-01-02 03:30:19 2020-01-01 00:01:58.000 2020-01-02 03:30:19.000 118 99019 49568.5 4956850 118 99019 49568.5 4956850 -32451 32484 5004.02 500402 -127 124 1.78 178 +119 101 10109 99020 0.35735 297.35735 148.85735 14885.73573 0.35735 297.35736 148.85736 14885.736 0.35735 297.35735 148.85735 14885.73500 2020-01-01 2020-01-02 2020-01-01 00:01:59 2020-01-02 03:30:20 2020-01-01 00:01:59.000 2020-01-02 03:30:20.000 119 99020 49569.5 4956950 119 99020 49569.5 4956950 -32450 32485 5005.02 500502 -126 125 2.78 278 12 102 10002 99912 0.03603 300.03603 150.03603 15153.63963 0.03603 300.03604 150.03603 15153.6399 0.03603 300.03603 150.03603 15153.63903 2020-01-01 2020-01-02 2020-01-01 00:00:12 2020-01-02 03:45:12 2020-01-01 00:00:12.000 2020-01-02 03:45:12.000 12 99912 49962 5046162 12 99912 49962 5046162 -32557 32378 4541.009900990099 458642 -127 124 -1.0891089108910892 -110 -120 101 10110 99021 0.36036 297.36036 148.86036 14886.03603 0.36036 297.36035 148.86036 14886.03615 0.36036 297.36036 148.86036000000004 14886.03600 2020-01-01 2020-01-02 2020-01-01 00:02:00 2020-01-02 03:30:21 2020-01-01 00:02:00.000 2020-01-02 03:30:21.000 120 99021 49570.5 4957050 120 99021 49570.5 4957050 -32449 32486 5006.02 500602 -125 126 3.78 378 -121 101 10111 99022 0.36336 297.36336 148.86336 14886.33633 0.36336 297.36337 148.86336 14886.33627 0.36336 297.36336 148.86335999999994 14886.33600 2020-01-01 2020-01-02 2020-01-01 00:02:01 2020-01-02 03:30:22 2020-01-01 00:02:01.000 2020-01-02 03:30:22.000 121 99022 49571.5 4957150 121 99022 49571.5 4957150 -32448 32487 5007.02 500702 -124 127 4.78 478 -122 101 10112 99023 0.36636 297.36636 148.86636 14886.63663 0.36636 297.36636 148.86636 14886.63642 0.36636 297.36636 148.86636 14886.63600 2020-01-01 2020-01-02 2020-01-01 00:02:02 2020-01-02 03:30:23 2020-01-01 00:02:02.000 2020-01-02 03:30:23.000 122 99023 49572.5 4957250 122 99023 49572.5 4957250 -32447 32488 5008.02 500802 -128 127 3.22 322 -123 101 10113 99024 0.36936 297.36936 148.86936 14886.93693 0.36936 297.36935 148.86936 14886.93673 0.36936 297.36936 148.86936000000003 14886.93600 2020-01-01 2020-01-02 2020-01-01 00:02:03 2020-01-02 03:30:24 2020-01-01 00:02:03.000 2020-01-02 03:30:24.000 123 99024 49573.5 4957350 123 99024 49573.5 4957350 -32446 32489 5009.02 500902 -128 127 1.66 166 -124 101 10114 99025 0.37237 297.37237 148.87237 14887.23723 0.37237 297.37238 148.87237 14887.23746 0.37237 297.37237 148.87236999999993 14887.23700 2020-01-01 2020-01-02 2020-01-01 00:02:04 2020-01-02 03:30:25 2020-01-01 00:02:04.000 2020-01-02 03:30:25.000 124 99025 49574.5 4957450 124 99025 49574.5 4957450 -32445 32490 5010.02 501002 -128 124 0.1 10 -125 101 10115 99026 0.37537 297.37537 148.87537 14887.53753 0.37537 297.37537 148.87537 14887.53762 0.37537 297.37537 148.87536999999992 14887.53700 2020-01-01 2020-01-02 2020-01-01 00:02:05 2020-01-02 03:30:26 2020-01-01 00:02:05.000 2020-01-02 03:30:26.000 125 99026 49575.5 4957550 125 99026 49575.5 4957550 -32444 32491 5011.02 501102 -127 125 1.1 110 -126 101 10116 99027 0.37837 297.37837 148.87837 14887.83783 0.37837 297.3784 148.87837 14887.83774 0.37837 297.37837 148.87837000000007 14887.83700 2020-01-01 2020-01-02 2020-01-01 00:02:06 2020-01-02 03:30:27 2020-01-01 00:02:06.000 2020-01-02 03:30:27.000 126 99027 49576.5 4957650 126 99027 49576.5 4957650 -32443 32492 5012.02 501202 -126 126 2.1 210 +120 101 10110 99021 0.36036 297.36036 148.86036 14886.03603 0.36036 297.36035 148.86036 14886.03615 0.36036 297.36036 148.86036000000001 14886.03600 2020-01-01 2020-01-02 2020-01-01 00:02:00 2020-01-02 03:30:21 2020-01-01 00:02:00.000 2020-01-02 03:30:21.000 120 99021 49570.5 4957050 120 99021 49570.5 4957050 -32449 32486 5006.02 500602 -125 126 3.78 378 +121 101 10111 99022 0.36336 297.36336 148.86336 14886.33633 0.36336 297.36337 148.86336 14886.33627 0.36336 297.36336 148.86336 14886.33600 2020-01-01 2020-01-02 2020-01-01 00:02:01 2020-01-02 03:30:22 2020-01-01 00:02:01.000 2020-01-02 03:30:22.000 121 99022 49571.5 4957150 121 99022 49571.5 4957150 -32448 32487 5007.02 500702 -124 127 4.78 478 +122 101 10112 99023 0.36636 297.36636 148.86636 14886.63663 0.36636 297.36636 148.86636 14886.63642 0.36636 297.36636 148.86636000000001 14886.63600 2020-01-01 2020-01-02 2020-01-01 00:02:02 2020-01-02 03:30:23 2020-01-01 00:02:02.000 2020-01-02 03:30:23.000 122 99023 49572.5 4957250 122 99023 49572.5 4957250 -32447 32488 5008.02 500802 -128 127 3.22 322 +123 101 10113 99024 0.36936 297.36936 148.86936 14886.93693 0.36936 297.36935 148.86936 14886.93673 0.36936 297.36936 148.86936 14886.93600 2020-01-01 2020-01-02 2020-01-01 00:02:03 2020-01-02 03:30:24 2020-01-01 00:02:03.000 2020-01-02 03:30:24.000 123 99024 49573.5 4957350 123 99024 49573.5 4957350 -32446 32489 5009.02 500902 -128 127 1.66 166 +124 101 10114 99025 0.37237 297.37237 148.87237 14887.23723 0.37237 297.37238 148.87237 14887.23746 0.37237 297.37237 148.87237 14887.23700 2020-01-01 2020-01-02 2020-01-01 00:02:04 2020-01-02 03:30:25 2020-01-01 00:02:04.000 2020-01-02 03:30:25.000 124 99025 49574.5 4957450 124 99025 49574.5 4957450 -32445 32490 5010.02 501002 -128 124 0.1 10 +125 101 10115 99026 0.37537 297.37537 148.87537 14887.53753 0.37537 297.37537 148.87537 14887.53762 0.37537 297.37537 148.87537 14887.53700 2020-01-01 2020-01-02 2020-01-01 00:02:05 2020-01-02 03:30:26 2020-01-01 00:02:05.000 2020-01-02 03:30:26.000 125 99026 49575.5 4957550 125 99026 49575.5 4957550 -32444 32491 5011.02 501102 -127 125 1.1 110 +126 101 10116 99027 0.37837 297.37837 148.87837 14887.83783 0.37837 297.3784 148.87837 14887.83774 0.37837 297.37837 148.87837 14887.83700 2020-01-01 2020-01-02 2020-01-01 00:02:06 2020-01-02 03:30:27 2020-01-01 00:02:06.000 2020-01-02 03:30:27.000 126 99027 49576.5 4957650 126 99027 49576.5 4957650 -32443 32492 5012.02 501202 -126 126 2.1 210 127 101 10117 99028 0.38138 297.38138 148.88138 14888.13813 0.38138 297.38138 148.88137 14888.13789 0.38138 297.38138 148.88138 14888.13800 2020-01-01 2020-01-02 2020-01-01 00:02:07 2020-01-02 03:30:28 2020-01-01 00:02:07.000 2020-01-02 03:30:28.000 127 99028 49577.5 4957750 127 99028 49577.5 4957750 -32442 32493 5013.02 501302 -125 127 3.1 310 -128 101 10118 99029 0.38438 297.38438 148.88438 14888.43843 0.38438 297.3844 148.88438 14888.43862 0.38438 297.38438 148.88438000000002 14888.43800 2020-01-01 2020-01-02 2020-01-01 00:02:08 2020-01-02 03:30:29 2020-01-01 00:02:08.000 2020-01-02 03:30:29.000 128 99029 49578.5 4957850 128 99029 49578.5 4957850 -32441 32494 5014.02 501402 -128 127 1.54 154 -129 101 10119 99030 0.38738 297.38738 148.88738 14888.73873 0.38738 297.3874 148.88738 14888.73894 0.38738 297.38738 148.88738000000006 14888.73800 2020-01-01 2020-01-02 2020-01-01 00:02:09 2020-01-02 03:30:30 2020-01-01 00:02:09.000 2020-01-02 03:30:30.000 129 99030 49579.5 4957950 129 99030 49579.5 4957950 -32440 32495 5015.02 501502 -128 127 -0.02 -2 -13 102 10003 99913 0.03903 300.03903 150.03903 15153.94294 0.03903 300.03903 150.03903 15153.94255 0.03903 300.03903 150.03902999999994 15153.94203 2020-01-01 2020-01-02 2020-01-01 00:00:13 2020-01-02 03:45:13 2020-01-01 00:00:13.000 2020-01-02 03:45:13.000 13 99913 49963 5046263 13 99913 49963 5046263 -32556 32379 4542.009900990099 458743 -126 125 -0.0891089108910891 -9 +128 101 10118 99029 0.38438 297.38438 148.88438 14888.43843 0.38438 297.3844 148.88438 14888.43862 0.38438 297.38438 148.88438 14888.43800 2020-01-01 2020-01-02 2020-01-01 00:02:08 2020-01-02 03:30:29 2020-01-01 00:02:08.000 2020-01-02 03:30:29.000 128 99029 49578.5 4957850 128 99029 49578.5 4957850 -32441 32494 5014.02 501402 -128 127 1.54 154 +129 101 10119 99030 0.38738 297.38738 148.88738 14888.73873 0.38738 297.3874 148.88738 14888.73894 0.38738 297.38738 148.88738 14888.73800 2020-01-01 2020-01-02 2020-01-01 00:02:09 2020-01-02 03:30:30 2020-01-01 00:02:09.000 2020-01-02 03:30:30.000 129 99030 49579.5 4957950 129 99030 49579.5 4957950 -32440 32495 5015.02 501502 -128 127 -0.02 -2 +13 102 10003 99913 0.03903 300.03903 150.03903 15153.94294 0.03903 300.03903 150.03903 15153.94255 0.03903 300.03903 150.03903 15153.94203 2020-01-01 2020-01-02 2020-01-01 00:00:13 2020-01-02 03:45:13 2020-01-01 00:00:13.000 2020-01-02 03:45:13.000 13 99913 49963 5046263 13 99913 49963 5046263 -32556 32379 4542.009900990099 458743 -126 125 -0.0891089108910891 -9 130 101 10120 99031 0.39039 297.39039 148.89039 14889.03903 0.39039 297.39038 148.89039 14889.03909 0.39039 297.39039 148.89039 14889.03900 2020-01-01 2020-01-02 2020-01-01 00:02:10 2020-01-02 03:30:31 2020-01-01 00:02:10.000 2020-01-02 03:30:31.000 130 99031 49580.5 4958050 130 99031 49580.5 4958050 -32439 32496 5016.02 501602 -128 123 -1.58 -158 -131 101 10121 99032 0.39339 297.39339 148.89339 14889.33933 0.39339 297.3934 148.89339 14889.33921 0.39339 297.39339 148.89338999999998 14889.33900 2020-01-01 2020-01-02 2020-01-01 00:02:11 2020-01-02 03:30:32 2020-01-01 00:02:11.000 2020-01-02 03:30:32.000 131 99032 49581.5 4958150 131 99032 49581.5 4958150 -32438 32497 5017.02 501702 -127 124 -0.58 -58 -132 101 10122 99033 0.39639 297.39639 148.89639 14889.63963 0.39639 297.3964 148.89639 14889.63936 0.39639 297.39639 148.8963899999999 14889.63900 2020-01-01 2020-01-02 2020-01-01 00:02:12 2020-01-02 03:30:33 2020-01-01 00:02:12.000 2020-01-02 03:30:33.000 132 99033 49582.5 4958250 132 99033 49582.5 4958250 -32437 32498 5018.02 501802 -126 125 0.42 42 -133 101 10123 99034 0.39939 297.39939 148.89939 14889.93993 0.39939 297.3994 148.8994 14889.94009 0.39939 297.39939 148.89938999999998 14889.93900 2020-01-01 2020-01-02 2020-01-01 00:02:13 2020-01-02 03:30:34 2020-01-01 00:02:13.000 2020-01-02 03:30:34.000 133 99034 49583.5 4958350 133 99034 49583.5 4958350 -32436 32499 5019.02 501902 -125 126 1.42 142 -134 101 10124 99035 0.4024 297.4024 148.9024 14890.24024 0.4024 297.4024 148.9024 14890.24041 0.40240 297.40240 148.90240000000009 14890.24000 2020-01-01 2020-01-02 2020-01-01 00:02:14 2020-01-02 03:30:35 2020-01-01 00:02:14.000 2020-01-02 03:30:35.000 134 99035 49584.5 4958450 134 99035 49584.5 4958450 -32435 32500 5020.02 502002 -124 127 2.42 242 -135 101 10125 99036 0.4054 297.4054 148.9054 14890.54054 0.4054 297.4054 148.9054 14890.54059 0.40540 297.40540 148.90539999999993 14890.54000 2020-01-01 2020-01-02 2020-01-01 00:02:15 2020-01-02 03:30:36 2020-01-01 00:02:15.000 2020-01-02 03:30:36.000 135 99036 49585.5 4958550 135 99036 49585.5 4958550 -32434 32501 5021.02 502102 -128 127 0.86 86 -136 101 10126 99037 0.4084 297.4084 148.9084 14890.84084 0.4084 297.40842 148.9084 14890.84068 0.40840 297.40840 148.90840000000003 14890.84000 2020-01-01 2020-01-02 2020-01-01 00:02:16 2020-01-02 03:30:37 2020-01-01 00:02:16.000 2020-01-02 03:30:37.000 136 99037 49586.5 4958650 136 99037 49586.5 4958650 -32433 32502 5022.02 502202 -128 123 -0.7 -70 -137 101 10127 99038 0.41141 297.41141 148.91141 14891.14114 0.41141 297.4114 148.9114 14891.14099 0.41141 297.41141 148.91141000000005 14891.14100 2020-01-01 2020-01-02 2020-01-01 00:02:17 2020-01-02 03:30:38 2020-01-01 00:02:17.000 2020-01-02 03:30:38.000 137 99038 49587.5 4958750 137 99038 49587.5 4958750 -32432 32503 5023.02 502302 -127 124 0.3 30 -138 101 10128 99039 0.41441 297.41441 148.91441 14891.44144 0.41441 297.41443 148.91441 14891.44157 0.41441 297.41441 148.91440999999995 14891.44100 2020-01-01 2020-01-02 2020-01-01 00:02:18 2020-01-02 03:30:39 2020-01-01 00:02:18.000 2020-01-02 03:30:39.000 138 99039 49588.5 4958850 138 99039 49588.5 4958850 -32431 32504 5024.02 502402 -126 125 1.3 130 +131 101 10121 99032 0.39339 297.39339 148.89339 14889.33933 0.39339 297.3934 148.89339 14889.33921 0.39339 297.39339 148.89339 14889.33900 2020-01-01 2020-01-02 2020-01-01 00:02:11 2020-01-02 03:30:32 2020-01-01 00:02:11.000 2020-01-02 03:30:32.000 131 99032 49581.5 4958150 131 99032 49581.5 4958150 -32438 32497 5017.02 501702 -127 124 -0.58 -58 +132 101 10122 99033 0.39639 297.39639 148.89639 14889.63963 0.39639 297.3964 148.89639 14889.63936 0.39639 297.39639 148.89639 14889.63900 2020-01-01 2020-01-02 2020-01-01 00:02:12 2020-01-02 03:30:33 2020-01-01 00:02:12.000 2020-01-02 03:30:33.000 132 99033 49582.5 4958250 132 99033 49582.5 4958250 -32437 32498 5018.02 501802 -126 125 0.42 42 +133 101 10123 99034 0.39939 297.39939 148.89939 14889.93993 0.39939 297.3994 148.8994 14889.94009 0.39939 297.39939 148.89939 14889.93900 2020-01-01 2020-01-02 2020-01-01 00:02:13 2020-01-02 03:30:34 2020-01-01 00:02:13.000 2020-01-02 03:30:34.000 133 99034 49583.5 4958350 133 99034 49583.5 4958350 -32436 32499 5019.02 501902 -125 126 1.42 142 +134 101 10124 99035 0.4024 297.4024 148.9024 14890.24024 0.4024 297.4024 148.9024 14890.24041 0.40240 297.40240 148.9024 14890.24000 2020-01-01 2020-01-02 2020-01-01 00:02:14 2020-01-02 03:30:35 2020-01-01 00:02:14.000 2020-01-02 03:30:35.000 134 99035 49584.5 4958450 134 99035 49584.5 4958450 -32435 32500 5020.02 502002 -124 127 2.42 242 +135 101 10125 99036 0.4054 297.4054 148.9054 14890.54054 0.4054 297.4054 148.9054 14890.54059 0.40540 297.40540 148.90540000000001 14890.54000 2020-01-01 2020-01-02 2020-01-01 00:02:15 2020-01-02 03:30:36 2020-01-01 00:02:15.000 2020-01-02 03:30:36.000 135 99036 49585.5 4958550 135 99036 49585.5 4958550 -32434 32501 5021.02 502102 -128 127 0.86 86 +136 101 10126 99037 0.4084 297.4084 148.9084 14890.84084 0.4084 297.40842 148.9084 14890.84068 0.40840 297.40840 148.9084 14890.84000 2020-01-01 2020-01-02 2020-01-01 00:02:16 2020-01-02 03:30:37 2020-01-01 00:02:16.000 2020-01-02 03:30:37.000 136 99037 49586.5 4958650 136 99037 49586.5 4958650 -32433 32502 5022.02 502202 -128 123 -0.7 -70 +137 101 10127 99038 0.41141 297.41141 148.91141 14891.14114 0.41141 297.4114 148.9114 14891.14099 0.41141 297.41141 148.91141 14891.14100 2020-01-01 2020-01-02 2020-01-01 00:02:17 2020-01-02 03:30:38 2020-01-01 00:02:17.000 2020-01-02 03:30:38.000 137 99038 49587.5 4958750 137 99038 49587.5 4958750 -32432 32503 5023.02 502302 -127 124 0.3 30 +138 101 10128 99039 0.41441 297.41441 148.91441 14891.44144 0.41441 297.41443 148.91441 14891.44157 0.41441 297.41441 148.91441 14891.44100 2020-01-01 2020-01-02 2020-01-01 00:02:18 2020-01-02 03:30:39 2020-01-01 00:02:18.000 2020-01-02 03:30:39.000 138 99039 49588.5 4958850 138 99039 49588.5 4958850 -32431 32504 5024.02 502402 -126 125 1.3 130 139 101 10129 99040 0.41741 297.41741 148.91741 14891.74174 0.41741 297.41742 148.91741 14891.74188 0.41741 297.41741 148.91741 14891.74100 2020-01-01 2020-01-02 2020-01-01 00:02:19 2020-01-02 03:30:40 2020-01-01 00:02:19.000 2020-01-02 03:30:40.000 139 99040 49589.5 4958950 139 99040 49589.5 4958950 -32430 32505 5025.02 502502 -125 126 2.3 230 -14 102 10004 99914 0.04204 300.04204 150.04204 15154.24624 0.04204 300.04205 150.04204 15154.2463 0.04204 300.04204 150.04204000000004 15154.24604 2020-01-01 2020-01-02 2020-01-01 00:00:14 2020-01-02 03:45:14 2020-01-01 00:00:14.000 2020-01-02 03:45:14.000 14 99914 49964 5046364 14 99914 49964 5046364 -32555 32380 4543.009900990099 458844 -125 126 0.9108910891089109 92 -140 101 10130 99041 0.42042 297.42042 148.92042 14892.04204 0.42042 297.4204 148.92042 14892.04206 0.42042 297.42042 148.9204200000001 14892.04200 2020-01-01 2020-01-02 2020-01-01 00:02:20 2020-01-02 03:30:41 2020-01-01 00:02:20.000 2020-01-02 03:30:41.000 140 99041 49590.5 4959050 140 99041 49590.5 4959050 -32429 32506 5026.02 502602 -124 127 3.3 330 -141 101 10131 99042 0.42342 297.42342 148.92342 14892.34234 0.42342 297.42343 148.92342 14892.34215 0.42342 297.42342 148.92341999999994 14892.34200 2020-01-01 2020-01-02 2020-01-01 00:02:21 2020-01-02 03:30:42 2020-01-01 00:02:21.000 2020-01-02 03:30:42.000 141 99042 49591.5 4959150 141 99042 49591.5 4959150 -32428 32507 5027.02 502702 -128 127 1.74 174 -142 101 10132 99043 0.42642 297.42642 148.92642 14892.64264 0.42642 297.42642 148.92642 14892.64246 0.42642 297.42642 148.9264199999999 14892.64200 2020-01-01 2020-01-02 2020-01-01 00:02:22 2020-01-02 03:30:43 2020-01-01 00:02:22.000 2020-01-02 03:30:43.000 142 99043 49592.5 4959250 142 99043 49592.5 4959250 -32427 32508 5028.02 502802 -128 123 0.18 18 -143 101 10133 99044 0.42942 297.42942 148.92942 14892.94294 0.42942 297.42944 148.92943 14892.94304 0.42942 297.42942 148.9294200000001 14892.94200 2020-01-01 2020-01-02 2020-01-01 00:02:23 2020-01-02 03:30:44 2020-01-01 00:02:23.000 2020-01-02 03:30:44.000 143 99044 49593.5 4959350 143 99044 49593.5 4959350 -32426 32509 5029.02 502902 -127 124 1.18 118 +14 102 10004 99914 0.04204 300.04204 150.04204 15154.24624 0.04204 300.04205 150.04204 15154.2463 0.04204 300.04204 150.04204 15154.24604 2020-01-01 2020-01-02 2020-01-01 00:00:14 2020-01-02 03:45:14 2020-01-01 00:00:14.000 2020-01-02 03:45:14.000 14 99914 49964 5046364 14 99914 49964 5046364 -32555 32380 4543.009900990099 458844 -125 126 0.9108910891089109 92 +140 101 10130 99041 0.42042 297.42042 148.92042 14892.04204 0.42042 297.4204 148.92042 14892.04206 0.42042 297.42042 148.92042 14892.04200 2020-01-01 2020-01-02 2020-01-01 00:02:20 2020-01-02 03:30:41 2020-01-01 00:02:20.000 2020-01-02 03:30:41.000 140 99041 49590.5 4959050 140 99041 49590.5 4959050 -32429 32506 5026.02 502602 -124 127 3.3 330 +141 101 10131 99042 0.42342 297.42342 148.92342 14892.34234 0.42342 297.42343 148.92342 14892.34215 0.42342 297.42342 148.92342 14892.34200 2020-01-01 2020-01-02 2020-01-01 00:02:21 2020-01-02 03:30:42 2020-01-01 00:02:21.000 2020-01-02 03:30:42.000 141 99042 49591.5 4959150 141 99042 49591.5 4959150 -32428 32507 5027.02 502702 -128 127 1.74 174 +142 101 10132 99043 0.42642 297.42642 148.92642 14892.64264 0.42642 297.42642 148.92642 14892.64246 0.42642 297.42642 148.92642 14892.64200 2020-01-01 2020-01-02 2020-01-01 00:02:22 2020-01-02 03:30:43 2020-01-01 00:02:22.000 2020-01-02 03:30:43.000 142 99043 49592.5 4959250 142 99043 49592.5 4959250 -32427 32508 5028.02 502802 -128 123 0.18 18 +143 101 10133 99044 0.42942 297.42942 148.92942 14892.94294 0.42942 297.42944 148.92943 14892.94304 0.42942 297.42942 148.92942 14892.94200 2020-01-01 2020-01-02 2020-01-01 00:02:23 2020-01-02 03:30:44 2020-01-01 00:02:23.000 2020-01-02 03:30:44.000 143 99044 49593.5 4959350 143 99044 49593.5 4959350 -32426 32509 5029.02 502902 -127 124 1.18 118 144 101 10134 99045 0.43243 297.43243 148.93243 14893.24324 0.43243 297.43243 148.93243 14893.24338 0.43243 297.43243 148.93243 14893.24300 2020-01-01 2020-01-02 2020-01-01 00:02:24 2020-01-02 03:30:45 2020-01-01 00:02:24.000 2020-01-02 03:30:45.000 144 99045 49594.5 4959450 144 99045 49594.5 4959450 -32425 32510 5030.02 503002 -126 125 2.18 218 -145 101 10135 99046 0.43543 297.43543 148.93543 14893.54354 0.43543 297.43542 148.93543 14893.54354 0.43543 297.43543 148.93542999999983 14893.54300 2020-01-01 2020-01-02 2020-01-01 00:02:25 2020-01-02 03:30:46 2020-01-01 00:02:25.000 2020-01-02 03:30:46.000 145 99046 49595.5 4959550 145 99046 49595.5 4959550 -32424 32511 5031.02 503102 -125 126 3.18 318 -146 101 10136 99047 0.43843 297.43843 148.93843 14893.84384 0.43843 297.43845 148.93844 14893.84427 0.43843 297.43843 148.93843000000007 14893.84300 2020-01-01 2020-01-02 2020-01-01 00:02:26 2020-01-02 03:30:47 2020-01-01 00:02:26.000 2020-01-02 03:30:47.000 146 99047 49596.5 4959650 146 99047 49596.5 4959650 -32423 32512 5032.02 503202 -124 127 4.18 418 +145 101 10135 99046 0.43543 297.43543 148.93543 14893.54354 0.43543 297.43542 148.93543 14893.54354 0.43543 297.43543 148.93543 14893.54300 2020-01-01 2020-01-02 2020-01-01 00:02:25 2020-01-02 03:30:46 2020-01-01 00:02:25.000 2020-01-02 03:30:46.000 145 99046 49595.5 4959550 145 99046 49595.5 4959550 -32424 32511 5031.02 503102 -125 126 3.18 318 +146 101 10136 99047 0.43843 297.43843 148.93843 14893.84384 0.43843 297.43845 148.93844 14893.84427 0.43843 297.43843 148.93843 14893.84300 2020-01-01 2020-01-02 2020-01-01 00:02:26 2020-01-02 03:30:47 2020-01-01 00:02:26.000 2020-01-02 03:30:47.000 146 99047 49596.5 4959650 146 99047 49596.5 4959650 -32423 32512 5032.02 503202 -124 127 4.18 418 147 101 10137 99048 0.44144 297.44144 148.94144 14894.14414 0.44144 297.44144 148.94143 14894.14392 0.44144 297.44144 148.94144 14894.14400 2020-01-01 2020-01-02 2020-01-01 00:02:27 2020-01-02 03:30:48 2020-01-01 00:02:27.000 2020-01-02 03:30:48.000 147 99048 49597.5 4959750 147 99048 49597.5 4959750 -32422 32513 5033.02 503302 -128 127 2.62 262 148 101 10138 99049 0.44444 297.44444 148.94444 14894.44444 0.44444 297.44446 148.94444 14894.4445 0.44444 297.44444 148.94444 14894.44400 2020-01-01 2020-01-02 2020-01-01 00:02:28 2020-01-02 03:30:49 2020-01-01 00:02:28.000 2020-01-02 03:30:49.000 148 99049 49598.5 4959850 148 99049 49598.5 4959850 -32421 32514 5034.02 503402 -128 127 1.06 106 -149 101 10139 99050 0.44744 297.44744 148.94744 14894.74474 0.44744 297.44745 148.94744 14894.74485 0.44744 297.44744 148.94743999999994 14894.74400 2020-01-01 2020-01-02 2020-01-01 00:02:29 2020-01-02 03:30:50 2020-01-01 00:02:29.000 2020-01-02 03:30:50.000 149 99050 49599.5 4959950 149 99050 49599.5 4959950 -32420 32515 5035.02 503502 -128 124 -0.5 -50 -15 102 10005 99915 0.04504 300.04504 150.04504 15154.54954 0.04504 300.04504 150.04504 15154.54945 0.04504 300.04504 150.04504000000006 15154.54904 2020-01-01 2020-01-02 2020-01-01 00:00:15 2020-01-02 03:45:15 2020-01-01 00:00:15.000 2020-01-02 03:45:15.000 15 99915 49965 5046465 15 99915 49965 5046465 -32554 32381 4544.009900990099 458945 -124 127 1.9108910891089108 193 -150 101 10140 99051 0.45045 297.45045 148.95045 14895.04504 0.45045 297.45044 148.95045 14895.04501 0.45045 297.45045 148.95045000000005 14895.04500 2020-01-01 2020-01-02 2020-01-01 00:02:30 2020-01-02 03:30:51 2020-01-01 00:02:30.000 2020-01-02 03:30:51.000 150 99051 49600.5 4960050 150 99051 49600.5 4960050 -32419 32516 5036.02 503602 -127 125 0.5 50 -151 101 10141 99052 0.45345 297.45345 148.95345 14895.34534 0.45345 297.45346 148.95345 14895.34574 0.45345 297.45345 148.9534500000001 14895.34500 2020-01-01 2020-01-02 2020-01-01 00:02:31 2020-01-02 03:30:52 2020-01-01 00:02:31.000 2020-01-02 03:30:52.000 151 99052 49601.5 4960150 151 99052 49601.5 4960150 -32418 32517 5037.02 503702 -126 126 1.5 150 -152 101 10142 99053 0.45645 297.45645 148.95645 14895.64564 0.45645 297.45645 148.95645 14895.6454 0.45645 297.45645 148.9564499999999 14895.64500 2020-01-01 2020-01-02 2020-01-01 00:02:32 2020-01-02 03:30:53 2020-01-01 00:02:32.000 2020-01-02 03:30:53.000 152 99053 49602.5 4960250 152 99053 49602.5 4960250 -32417 32518 5038.02 503802 -125 127 2.5 250 -153 101 10143 99054 0.45945 297.45945 148.95945 14895.94594 0.45945 297.45947 148.95946 14895.94601 0.45945 297.45945 148.95945000000006 14895.94500 2020-01-01 2020-01-02 2020-01-01 00:02:33 2020-01-02 03:30:54 2020-01-01 00:02:33.000 2020-01-02 03:30:54.000 153 99054 49603.5 4960350 153 99054 49603.5 4960350 -32416 32519 5039.02 503902 -128 127 0.94 94 -154 101 10144 99055 0.46246 297.46246 148.96246 14896.24624 0.46246 297.46246 148.96246 14896.24633 0.46246 297.46246 148.96246000000008 14896.24600 2020-01-01 2020-01-02 2020-01-01 00:02:34 2020-01-02 03:30:55 2020-01-01 00:02:34.000 2020-01-02 03:30:55.000 154 99055 49604.5 4960450 154 99055 49604.5 4960450 -32415 32520 5040.02 504002 -128 127 -0.62 -62 -155 101 10145 99056 0.46546 297.46546 148.96546 14896.54654 0.46546 297.46545 148.96546 14896.54647 0.46546 297.46546 148.96545999999998 14896.54600 2020-01-01 2020-01-02 2020-01-01 00:02:35 2020-01-02 03:30:56 2020-01-01 00:02:35.000 2020-01-02 03:30:56.000 155 99056 49605.5 4960550 155 99056 49605.5 4960550 -32414 32521 5041.02 504102 -128 123 -2.18 -218 -156 101 10146 99057 0.46846 297.46846 148.96846 14896.84684 0.46846 297.46848 148.96847 14896.84721 0.46846 297.46846 148.96846000000002 14896.84600 2020-01-01 2020-01-02 2020-01-01 00:02:36 2020-01-02 03:30:57 2020-01-01 00:02:36.000 2020-01-02 03:30:57.000 156 99057 49606.5 4960650 156 99057 49606.5 4960650 -32413 32522 5042.02 504202 -127 124 -1.18 -118 -157 101 10147 99058 0.47147 297.47147 148.97147 14897.14714 0.47147 297.47147 148.97146 14897.14687 0.47147 297.47147 148.97147000000012 14897.14700 2020-01-01 2020-01-02 2020-01-01 00:02:37 2020-01-02 03:30:58 2020-01-01 00:02:37.000 2020-01-02 03:30:58.000 157 99058 49607.5 4960750 157 99058 49607.5 4960750 -32412 32523 5043.02 504302 -126 125 -0.18 -18 -158 101 10148 99059 0.47447 297.47447 148.97447 14897.44744 0.47447 297.4745 148.97447 14897.44748 0.47447 297.47447 148.97446999999994 14897.44700 2020-01-01 2020-01-02 2020-01-01 00:02:38 2020-01-02 03:30:59 2020-01-01 00:02:38.000 2020-01-02 03:30:59.000 158 99059 49608.5 4960850 158 99059 49608.5 4960850 -32411 32524 5044.02 504402 -125 126 0.82 82 -159 101 10149 99060 0.47747 297.47747 148.97747 14897.74774 0.47747 297.47748 148.97747 14897.74779 0.47747 297.47747 148.97746999999993 14897.74700 2020-01-01 2020-01-02 2020-01-01 00:02:39 2020-01-02 03:31:00 2020-01-01 00:02:39.000 2020-01-02 03:31:00.000 159 99060 49609.5 4960950 159 99060 49609.5 4960950 -32410 32525 5045.02 504502 -124 127 1.82 182 -16 102 10006 99916 0.04804 300.04804 150.04804 15154.85285 0.04804 300.04803 150.04804 15154.85279 0.04804 300.04804 150.0480399999999 15154.85204 2020-01-01 2020-01-02 2020-01-01 00:00:16 2020-01-02 03:45:16 2020-01-01 00:00:16.000 2020-01-02 03:45:16.000 16 99916 49966 5046566 16 99916 49966 5046566 -32553 32382 4545.009900990099 459046 -128 127 0.37623762376237624 38 -160 101 10150 99061 0.48048 297.48048 148.98048 14898.04804 0.48048 297.48047 148.98048 14898.0481 0.48048 297.48048 148.98048000000009 14898.04800 2020-01-01 2020-01-02 2020-01-01 00:02:40 2020-01-02 03:31:01 2020-01-01 00:02:40.000 2020-01-02 03:31:01.000 160 99061 49610.5 4961050 160 99061 49610.5 4961050 -32409 32526 5046.02 504602 -128 127 0.26 26 -161 101 10151 99062 0.48348 297.48348 148.98348 14898.34834 0.48348 297.4835 148.98348 14898.34868 0.48348 297.48348 148.98348000000004 14898.34800 2020-01-01 2020-01-02 2020-01-01 00:02:41 2020-01-02 03:31:02 2020-01-01 00:02:41.000 2020-01-02 03:31:02.000 161 99062 49611.5 4961150 161 99062 49611.5 4961150 -32408 32527 5047.02 504702 -128 123 -1.3 -130 -162 101 10152 99063 0.48648 297.48648 148.98648 14898.64864 0.48648 297.48648 148.98648 14898.64837 0.48648 297.48648 148.98647999999986 14898.64800 2020-01-01 2020-01-02 2020-01-01 00:02:42 2020-01-02 03:31:03 2020-01-01 00:02:42.000 2020-01-02 03:31:03.000 162 99063 49612.5 4961250 162 99063 49612.5 4961250 -32407 32528 5048.02 504802 -127 124 -0.3 -30 -163 101 10153 99064 0.48948 297.48948 148.98948 14898.94894 0.48948 297.4895 148.98948 14898.94895 0.48948 297.48948 148.98948000000007 14898.94800 2020-01-01 2020-01-02 2020-01-01 00:02:43 2020-01-02 03:31:04 2020-01-01 00:02:43.000 2020-01-02 03:31:04.000 163 99064 49613.5 4961350 163 99064 49613.5 4961350 -32406 32529 5049.02 504902 -126 125 0.7 70 +149 101 10139 99050 0.44744 297.44744 148.94744 14894.74474 0.44744 297.44745 148.94744 14894.74485 0.44744 297.44744 148.94744 14894.74400 2020-01-01 2020-01-02 2020-01-01 00:02:29 2020-01-02 03:30:50 2020-01-01 00:02:29.000 2020-01-02 03:30:50.000 149 99050 49599.5 4959950 149 99050 49599.5 4959950 -32420 32515 5035.02 503502 -128 124 -0.5 -50 +15 102 10005 99915 0.04504 300.04504 150.04504 15154.54954 0.04504 300.04504 150.04504 15154.54945 0.04504 300.04504 150.04504 15154.54904 2020-01-01 2020-01-02 2020-01-01 00:00:15 2020-01-02 03:45:15 2020-01-01 00:00:15.000 2020-01-02 03:45:15.000 15 99915 49965 5046465 15 99915 49965 5046465 -32554 32381 4544.009900990099 458945 -124 127 1.9108910891089108 193 +150 101 10140 99051 0.45045 297.45045 148.95045 14895.04504 0.45045 297.45044 148.95045 14895.04501 0.45045 297.45045 148.95045 14895.04500 2020-01-01 2020-01-02 2020-01-01 00:02:30 2020-01-02 03:30:51 2020-01-01 00:02:30.000 2020-01-02 03:30:51.000 150 99051 49600.5 4960050 150 99051 49600.5 4960050 -32419 32516 5036.02 503602 -127 125 0.5 50 +151 101 10141 99052 0.45345 297.45345 148.95345 14895.34534 0.45345 297.45346 148.95345 14895.34574 0.45345 297.45345 148.95345 14895.34500 2020-01-01 2020-01-02 2020-01-01 00:02:31 2020-01-02 03:30:52 2020-01-01 00:02:31.000 2020-01-02 03:30:52.000 151 99052 49601.5 4960150 151 99052 49601.5 4960150 -32418 32517 5037.02 503702 -126 126 1.5 150 +152 101 10142 99053 0.45645 297.45645 148.95645 14895.64564 0.45645 297.45645 148.95645 14895.6454 0.45645 297.45645 148.95645000000002 14895.64500 2020-01-01 2020-01-02 2020-01-01 00:02:32 2020-01-02 03:30:53 2020-01-01 00:02:32.000 2020-01-02 03:30:53.000 152 99053 49602.5 4960250 152 99053 49602.5 4960250 -32417 32518 5038.02 503802 -125 127 2.5 250 +153 101 10143 99054 0.45945 297.45945 148.95945 14895.94594 0.45945 297.45947 148.95946 14895.94601 0.45945 297.45945 148.95945 14895.94500 2020-01-01 2020-01-02 2020-01-01 00:02:33 2020-01-02 03:30:54 2020-01-01 00:02:33.000 2020-01-02 03:30:54.000 153 99054 49603.5 4960350 153 99054 49603.5 4960350 -32416 32519 5039.02 503902 -128 127 0.94 94 +154 101 10144 99055 0.46246 297.46246 148.96246 14896.24624 0.46246 297.46246 148.96246 14896.24633 0.46246 297.46246 148.96246 14896.24600 2020-01-01 2020-01-02 2020-01-01 00:02:34 2020-01-02 03:30:55 2020-01-01 00:02:34.000 2020-01-02 03:30:55.000 154 99055 49604.5 4960450 154 99055 49604.5 4960450 -32415 32520 5040.02 504002 -128 127 -0.62 -62 +155 101 10145 99056 0.46546 297.46546 148.96546 14896.54654 0.46546 297.46545 148.96546 14896.54647 0.46546 297.46546 148.96546 14896.54600 2020-01-01 2020-01-02 2020-01-01 00:02:35 2020-01-02 03:30:56 2020-01-01 00:02:35.000 2020-01-02 03:30:56.000 155 99056 49605.5 4960550 155 99056 49605.5 4960550 -32414 32521 5041.02 504102 -128 123 -2.18 -218 +156 101 10146 99057 0.46846 297.46846 148.96846 14896.84684 0.46846 297.46848 148.96847 14896.84721 0.46846 297.46846 148.96846 14896.84600 2020-01-01 2020-01-02 2020-01-01 00:02:36 2020-01-02 03:30:57 2020-01-01 00:02:36.000 2020-01-02 03:30:57.000 156 99057 49606.5 4960650 156 99057 49606.5 4960650 -32413 32522 5042.02 504202 -127 124 -1.18 -118 +157 101 10147 99058 0.47147 297.47147 148.97147 14897.14714 0.47147 297.47147 148.97146 14897.14687 0.47147 297.47147 148.97147 14897.14700 2020-01-01 2020-01-02 2020-01-01 00:02:37 2020-01-02 03:30:58 2020-01-01 00:02:37.000 2020-01-02 03:30:58.000 157 99058 49607.5 4960750 157 99058 49607.5 4960750 -32412 32523 5043.02 504302 -126 125 -0.18 -18 +158 101 10148 99059 0.47447 297.47447 148.97447 14897.44744 0.47447 297.4745 148.97447 14897.44748 0.47447 297.47447 148.97447 14897.44700 2020-01-01 2020-01-02 2020-01-01 00:02:38 2020-01-02 03:30:59 2020-01-01 00:02:38.000 2020-01-02 03:30:59.000 158 99059 49608.5 4960850 158 99059 49608.5 4960850 -32411 32524 5044.02 504402 -125 126 0.82 82 +159 101 10149 99060 0.47747 297.47747 148.97747 14897.74774 0.47747 297.47748 148.97747 14897.74779 0.47747 297.47747 148.97746999999998 14897.74700 2020-01-01 2020-01-02 2020-01-01 00:02:39 2020-01-02 03:31:00 2020-01-01 00:02:39.000 2020-01-02 03:31:00.000 159 99060 49609.5 4960950 159 99060 49609.5 4960950 -32410 32525 5045.02 504502 -124 127 1.82 182 +16 102 10006 99916 0.04804 300.04804 150.04804 15154.85285 0.04804 300.04803 150.04804 15154.85279 0.04804 300.04804 150.04804 15154.85204 2020-01-01 2020-01-02 2020-01-01 00:00:16 2020-01-02 03:45:16 2020-01-01 00:00:16.000 2020-01-02 03:45:16.000 16 99916 49966 5046566 16 99916 49966 5046566 -32553 32382 4545.009900990099 459046 -128 127 0.37623762376237624 38 +160 101 10150 99061 0.48048 297.48048 148.98048 14898.04804 0.48048 297.48047 148.98048 14898.0481 0.48048 297.48048 148.98048 14898.04800 2020-01-01 2020-01-02 2020-01-01 00:02:40 2020-01-02 03:31:01 2020-01-01 00:02:40.000 2020-01-02 03:31:01.000 160 99061 49610.5 4961050 160 99061 49610.5 4961050 -32409 32526 5046.02 504602 -128 127 0.26 26 +161 101 10151 99062 0.48348 297.48348 148.98348 14898.34834 0.48348 297.4835 148.98348 14898.34868 0.48348 297.48348 148.98348 14898.34800 2020-01-01 2020-01-02 2020-01-01 00:02:41 2020-01-02 03:31:02 2020-01-01 00:02:41.000 2020-01-02 03:31:02.000 161 99062 49611.5 4961150 161 99062 49611.5 4961150 -32408 32527 5047.02 504702 -128 123 -1.3 -130 +162 101 10152 99063 0.48648 297.48648 148.98648 14898.64864 0.48648 297.48648 148.98648 14898.64837 0.48648 297.48648 148.98648 14898.64800 2020-01-01 2020-01-02 2020-01-01 00:02:42 2020-01-02 03:31:03 2020-01-01 00:02:42.000 2020-01-02 03:31:03.000 162 99063 49612.5 4961250 162 99063 49612.5 4961250 -32407 32528 5048.02 504802 -127 124 -0.3 -30 +163 101 10153 99064 0.48948 297.48948 148.98948 14898.94894 0.48948 297.4895 148.98948 14898.94895 0.48948 297.48948 148.98948000000001 14898.94800 2020-01-01 2020-01-02 2020-01-01 00:02:43 2020-01-02 03:31:04 2020-01-01 00:02:43.000 2020-01-02 03:31:04.000 163 99064 49613.5 4961350 163 99064 49613.5 4961350 -32406 32529 5049.02 504902 -126 125 0.7 70 164 101 10154 99065 0.49249 297.49249 148.99249 14899.24924 0.49249 297.4925 148.99249 14899.24926 0.49249 297.49249 148.99249 14899.24900 2020-01-01 2020-01-02 2020-01-01 00:02:44 2020-01-02 03:31:05 2020-01-01 00:02:44.000 2020-01-02 03:31:05.000 164 99065 49614.5 4961450 164 99065 49614.5 4961450 -32405 32530 5050.02 505002 -125 126 1.7 170 -165 101 10155 99066 0.49549 297.49549 148.99549 14899.54954 0.49549 297.49548 148.99549 14899.54957 0.49549 297.49549 148.99548999999996 14899.54900 2020-01-01 2020-01-02 2020-01-01 00:02:45 2020-01-02 03:31:06 2020-01-01 00:02:45.000 2020-01-02 03:31:06.000 165 99066 49615.5 4961550 165 99066 49615.5 4961550 -32404 32531 5051.02 505102 -124 127 2.7 270 -166 101 10156 99067 0.49849 297.49849 148.99849 14899.84984 0.49849 297.4985 148.9985 14899.85015 0.49849 297.49849 148.99848999999998 14899.84900 2020-01-01 2020-01-02 2020-01-01 00:02:46 2020-01-02 03:31:07 2020-01-01 00:02:46.000 2020-01-02 03:31:07.000 166 99067 49616.5 4961650 166 99067 49616.5 4961650 -32403 32532 5052.02 505202 -128 127 1.14 114 -167 101 10157 99068 0.5015 297.5015 149.0015 14900.15015 0.5015 297.5015 149.00149 14900.14984 0.50150 297.50150 149.00150000000008 14900.15000 2020-01-01 2020-01-02 2020-01-01 00:02:47 2020-01-02 03:31:08 2020-01-01 00:02:47.000 2020-01-02 03:31:08.000 167 99068 49617.5 4961750 167 99068 49617.5 4961750 -32402 32533 5053.02 505302 -128 123 -0.42 -42 -168 101 10158 99069 0.5045 297.5045 149.0045 14900.45045 0.5045 297.50452 149.0045 14900.45042 0.50450 297.50450 149.0044999999999 14900.45000 2020-01-01 2020-01-02 2020-01-01 00:02:48 2020-01-02 03:31:09 2020-01-01 00:02:48.000 2020-01-02 03:31:09.000 168 99069 49618.5 4961850 168 99069 49618.5 4961850 -32401 32534 5054.02 505402 -127 124 0.58 58 -169 101 10159 99070 0.5075 297.5075 149.0075 14900.75075 0.5075 297.5075 149.0075 14900.75073 0.50750 297.50750 149.00749999999994 14900.75000 2020-01-01 2020-01-02 2020-01-01 00:02:49 2020-01-02 03:31:10 2020-01-01 00:02:49.000 2020-01-02 03:31:10.000 169 99070 49619.5 4961950 169 99070 49619.5 4961950 -32400 32535 5055.02 505502 -126 125 1.58 158 +165 101 10155 99066 0.49549 297.49549 148.99549 14899.54954 0.49549 297.49548 148.99549 14899.54957 0.49549 297.49549 148.99549000000002 14899.54900 2020-01-01 2020-01-02 2020-01-01 00:02:45 2020-01-02 03:31:06 2020-01-01 00:02:45.000 2020-01-02 03:31:06.000 165 99066 49615.5 4961550 165 99066 49615.5 4961550 -32404 32531 5051.02 505102 -124 127 2.7 270 +166 101 10156 99067 0.49849 297.49849 148.99849 14899.84984 0.49849 297.4985 148.9985 14899.85015 0.49849 297.49849 148.99849 14899.84900 2020-01-01 2020-01-02 2020-01-01 00:02:46 2020-01-02 03:31:07 2020-01-01 00:02:46.000 2020-01-02 03:31:07.000 166 99067 49616.5 4961650 166 99067 49616.5 4961650 -32403 32532 5052.02 505202 -128 127 1.14 114 +167 101 10157 99068 0.5015 297.5015 149.0015 14900.15015 0.5015 297.5015 149.00149 14900.14984 0.50150 297.50150 149.0015 14900.15000 2020-01-01 2020-01-02 2020-01-01 00:02:47 2020-01-02 03:31:08 2020-01-01 00:02:47.000 2020-01-02 03:31:08.000 167 99068 49617.5 4961750 167 99068 49617.5 4961750 -32402 32533 5053.02 505302 -128 123 -0.42 -42 +168 101 10158 99069 0.5045 297.5045 149.0045 14900.45045 0.5045 297.50452 149.0045 14900.45042 0.50450 297.50450 149.0045 14900.45000 2020-01-01 2020-01-02 2020-01-01 00:02:48 2020-01-02 03:31:09 2020-01-01 00:02:48.000 2020-01-02 03:31:09.000 168 99069 49618.5 4961850 168 99069 49618.5 4961850 -32401 32534 5054.02 505402 -127 124 0.58 58 +169 101 10159 99070 0.5075 297.5075 149.0075 14900.75075 0.5075 297.5075 149.0075 14900.75073 0.50750 297.50750 149.0075 14900.75000 2020-01-01 2020-01-02 2020-01-01 00:02:49 2020-01-02 03:31:10 2020-01-01 00:02:49.000 2020-01-02 03:31:10.000 169 99070 49619.5 4961950 169 99070 49619.5 4961950 -32400 32535 5055.02 505502 -126 125 1.58 158 17 102 10007 99917 0.05105 300.05105 150.05105 15155.15615 0.05105 300.05106 150.05105 15155.15638 0.05105 300.05105 150.05105 15155.15605 2020-01-01 2020-01-02 2020-01-01 00:00:17 2020-01-02 03:45:17 2020-01-01 00:00:17.000 2020-01-02 03:45:17.000 17 99917 49967 5046667 17 99917 49967 5046667 -32552 32383 4546.009900990099 459147 -128 127 -1.1584158415841583 -117 -170 101 10160 99071 0.51051 297.51051 149.01051 14901.05105 0.51051 297.5105 149.01051 14901.05104 0.51051 297.51051 149.01051000000004 14901.05100 2020-01-01 2020-01-02 2020-01-01 00:02:50 2020-01-02 03:31:11 2020-01-01 00:02:50.000 2020-01-02 03:31:11.000 170 99071 49620.5 4962050 170 99071 49620.5 4962050 -32399 32536 5056.02 505602 -125 126 2.58 258 +170 101 10160 99071 0.51051 297.51051 149.01051 14901.05105 0.51051 297.5105 149.01051 14901.05104 0.51051 297.51051 149.01050999999998 14901.05100 2020-01-01 2020-01-02 2020-01-01 00:02:50 2020-01-02 03:31:11 2020-01-01 00:02:50.000 2020-01-02 03:31:11.000 170 99071 49620.5 4962050 170 99071 49620.5 4962050 -32399 32536 5056.02 505602 -125 126 2.58 258 171 101 10161 99072 0.51351 297.51351 149.01351 14901.35135 0.51351 297.51352 149.01351 14901.35162 0.51351 297.51351 149.01351 14901.35100 2020-01-01 2020-01-02 2020-01-01 00:02:51 2020-01-02 03:31:12 2020-01-01 00:02:51.000 2020-01-02 03:31:12.000 171 99072 49621.5 4962150 171 99072 49621.5 4962150 -32398 32537 5057.02 505702 -124 127 3.58 358 -172 101 10162 99073 0.51651 297.51651 149.01651 14901.65165 0.51651 297.5165 149.01651 14901.65131 0.51651 297.51651 149.01650999999998 14901.65100 2020-01-01 2020-01-02 2020-01-01 00:02:52 2020-01-02 03:31:13 2020-01-01 00:02:52.000 2020-01-02 03:31:13.000 172 99073 49622.5 4962250 172 99073 49622.5 4962250 -32397 32538 5058.02 505802 -128 127 2.02 202 -173 101 10163 99074 0.51951 297.51951 149.01951 14901.95195 0.51951 297.51953 149.01951 14901.95189 0.51951 297.51951 149.01951000000005 14901.95100 2020-01-01 2020-01-02 2020-01-01 00:02:53 2020-01-02 03:31:14 2020-01-01 00:02:53.000 2020-01-02 03:31:14.000 173 99074 49623.5 4962350 173 99074 49623.5 4962350 -32396 32539 5059.02 505902 -128 127 0.46 46 -174 101 10164 99075 0.52252 297.52252 149.02252 14902.25225 0.52252 297.52252 149.02252 14902.2522 0.52252 297.52252 149.02252000000016 14902.25200 2020-01-01 2020-01-02 2020-01-01 00:02:54 2020-01-02 03:31:15 2020-01-01 00:02:54.000 2020-01-02 03:31:15.000 174 99075 49624.5 4962450 174 99075 49624.5 4962450 -32395 32540 5060.02 506002 -128 124 -1.1 -110 -175 101 10165 99076 0.52552 297.52552 149.02552 14902.55255 0.52552 297.5255 149.02552 14902.55251 0.52552 297.52552 149.02551999999997 14902.55200 2020-01-01 2020-01-02 2020-01-01 00:02:55 2020-01-02 03:31:16 2020-01-01 00:02:55.000 2020-01-02 03:31:16.000 175 99076 49625.5 4962550 175 99076 49625.5 4962550 -32394 32541 5061.02 506102 -127 125 -0.1 -10 -176 101 10166 99077 0.52852 297.52852 149.02852 14902.85285 0.52852 297.52853 149.02853 14902.85312 0.52852 297.52852 149.02851999999993 14902.85200 2020-01-01 2020-01-02 2020-01-01 00:02:56 2020-01-02 03:31:17 2020-01-01 00:02:56.000 2020-01-02 03:31:17.000 176 99077 49626.5 4962650 176 99077 49626.5 4962650 -32393 32542 5062.02 506202 -126 126 0.9 90 -177 101 10167 99078 0.53153 297.53153 149.03153 14903.15315 0.53153 297.53152 149.03152 14903.15278 0.53153 297.53153 149.0315300000001 14903.15300 2020-01-01 2020-01-02 2020-01-01 00:02:57 2020-01-02 03:31:18 2020-01-01 00:02:57.000 2020-01-02 03:31:18.000 177 99078 49627.5 4962750 177 99078 49627.5 4962750 -32392 32543 5063.02 506302 -125 127 1.9 190 -178 101 10168 99079 0.53453 297.53453 149.03453 14903.45345 0.53453 297.53455 149.03453 14903.45352 0.53453 297.53453 149.03453000000005 14903.45300 2020-01-01 2020-01-02 2020-01-01 00:02:58 2020-01-02 03:31:19 2020-01-01 00:02:58.000 2020-01-02 03:31:19.000 178 99079 49628.5 4962850 178 99079 49628.5 4962850 -32391 32544 5064.02 506402 -128 127 0.34 34 -179 101 10169 99080 0.53753 297.53753 149.03753 14903.75375 0.53753 297.53754 149.03753 14903.75366 0.53753 297.53753 149.0375299999999 14903.75300 2020-01-01 2020-01-02 2020-01-01 00:02:59 2020-01-02 03:31:20 2020-01-01 00:02:59.000 2020-01-02 03:31:20.000 179 99080 49629.5 4962950 179 99080 49629.5 4962950 -32390 32545 5065.02 506502 -128 127 -1.22 -122 -18 102 10008 99918 0.05405 300.05405 150.05405 15155.45945 0.05405 300.05405 150.05404 15155.45903 0.05405 300.05405 150.05405000000007 15155.45905 2020-01-01 2020-01-02 2020-01-01 00:00:18 2020-01-02 03:45:18 2020-01-01 00:00:18.000 2020-01-02 03:45:18.000 18 99918 49968 5046768 18 99918 49968 5046768 -32551 32384 4547.009900990099 459248 -128 124 -2.6930693069306932 -272 +172 101 10162 99073 0.51651 297.51651 149.01651 14901.65165 0.51651 297.5165 149.01651 14901.65131 0.51651 297.51651 149.01651 14901.65100 2020-01-01 2020-01-02 2020-01-01 00:02:52 2020-01-02 03:31:13 2020-01-01 00:02:52.000 2020-01-02 03:31:13.000 172 99073 49622.5 4962250 172 99073 49622.5 4962250 -32397 32538 5058.02 505802 -128 127 2.02 202 +173 101 10163 99074 0.51951 297.51951 149.01951 14901.95195 0.51951 297.51953 149.01951 14901.95189 0.51951 297.51951 149.01951 14901.95100 2020-01-01 2020-01-02 2020-01-01 00:02:53 2020-01-02 03:31:14 2020-01-01 00:02:53.000 2020-01-02 03:31:14.000 173 99074 49623.5 4962350 173 99074 49623.5 4962350 -32396 32539 5059.02 505902 -128 127 0.46 46 +174 101 10164 99075 0.52252 297.52252 149.02252 14902.25225 0.52252 297.52252 149.02252 14902.2522 0.52252 297.52252 149.02252000000001 14902.25200 2020-01-01 2020-01-02 2020-01-01 00:02:54 2020-01-02 03:31:15 2020-01-01 00:02:54.000 2020-01-02 03:31:15.000 174 99075 49624.5 4962450 174 99075 49624.5 4962450 -32395 32540 5060.02 506002 -128 124 -1.1 -110 +175 101 10165 99076 0.52552 297.52552 149.02552 14902.55255 0.52552 297.5255 149.02552 14902.55251 0.52552 297.52552 149.02552 14902.55200 2020-01-01 2020-01-02 2020-01-01 00:02:55 2020-01-02 03:31:16 2020-01-01 00:02:55.000 2020-01-02 03:31:16.000 175 99076 49625.5 4962550 175 99076 49625.5 4962550 -32394 32541 5061.02 506102 -127 125 -0.1 -10 +176 101 10166 99077 0.52852 297.52852 149.02852 14902.85285 0.52852 297.52853 149.02853 14902.85312 0.52852 297.52852 149.02852000000001 14902.85200 2020-01-01 2020-01-02 2020-01-01 00:02:56 2020-01-02 03:31:17 2020-01-01 00:02:56.000 2020-01-02 03:31:17.000 176 99077 49626.5 4962650 176 99077 49626.5 4962650 -32393 32542 5062.02 506202 -126 126 0.9 90 +177 101 10167 99078 0.53153 297.53153 149.03153 14903.15315 0.53153 297.53152 149.03152 14903.15278 0.53153 297.53153 149.03153 14903.15300 2020-01-01 2020-01-02 2020-01-01 00:02:57 2020-01-02 03:31:18 2020-01-01 00:02:57.000 2020-01-02 03:31:18.000 177 99078 49627.5 4962750 177 99078 49627.5 4962750 -32392 32543 5063.02 506302 -125 127 1.9 190 +178 101 10168 99079 0.53453 297.53453 149.03453 14903.45345 0.53453 297.53455 149.03453 14903.45352 0.53453 297.53453 149.03453 14903.45300 2020-01-01 2020-01-02 2020-01-01 00:02:58 2020-01-02 03:31:19 2020-01-01 00:02:58.000 2020-01-02 03:31:19.000 178 99079 49628.5 4962850 178 99079 49628.5 4962850 -32391 32544 5064.02 506402 -128 127 0.34 34 +179 101 10169 99080 0.53753 297.53753 149.03753 14903.75375 0.53753 297.53754 149.03753 14903.75366 0.53753 297.53753 149.03753 14903.75300 2020-01-01 2020-01-02 2020-01-01 00:02:59 2020-01-02 03:31:20 2020-01-01 00:02:59.000 2020-01-02 03:31:20.000 179 99080 49629.5 4962950 179 99080 49629.5 4962950 -32390 32545 5065.02 506502 -128 127 -1.22 -122 +18 102 10008 99918 0.05405 300.05405 150.05405 15155.45945 0.05405 300.05405 150.05404 15155.45903 0.05405 300.05405 150.05405 15155.45905 2020-01-01 2020-01-02 2020-01-01 00:00:18 2020-01-02 03:45:18 2020-01-01 00:00:18.000 2020-01-02 03:45:18.000 18 99918 49968 5046768 18 99918 49968 5046768 -32551 32384 4547.009900990099 459248 -128 124 -2.6930693069306932 -272 180 101 10170 99081 0.54054 297.54054 149.04054 14904.05405 0.54054 297.54053 149.04053 14904.05398 0.54054 297.54054 149.04054 14904.05400 2020-01-01 2020-01-02 2020-01-01 00:03:00 2020-01-02 03:31:21 2020-01-01 00:03:00.000 2020-01-02 03:31:21.000 180 99081 49630.5 4963050 180 99081 49630.5 4963050 -32389 32546 5066.02 506602 -128 123 -2.78 -278 -181 101 10171 99082 0.54354 297.54354 149.04354 14904.35435 0.54354 297.54355 149.04354 14904.35459 0.54354 297.54354 149.04354000000004 14904.35400 2020-01-01 2020-01-02 2020-01-01 00:03:01 2020-01-02 03:31:22 2020-01-01 00:03:01.000 2020-01-02 03:31:22.000 181 99082 49631.5 4963150 181 99082 49631.5 4963150 -32388 32547 5067.02 506702 -127 124 -1.78 -178 -182 101 10172 99083 0.54654 297.54654 149.04654 14904.65465 0.54654 297.54654 149.04654 14904.65425 0.54654 297.54654 149.04653999999994 14904.65400 2020-01-01 2020-01-02 2020-01-01 00:03:02 2020-01-02 03:31:23 2020-01-01 00:03:02.000 2020-01-02 03:31:23.000 182 99083 49632.5 4963250 182 99083 49632.5 4963250 -32387 32548 5068.02 506802 -126 125 -0.78 -78 +181 101 10171 99082 0.54354 297.54354 149.04354 14904.35435 0.54354 297.54355 149.04354 14904.35459 0.54354 297.54354 149.04354 14904.35400 2020-01-01 2020-01-02 2020-01-01 00:03:01 2020-01-02 03:31:22 2020-01-01 00:03:01.000 2020-01-02 03:31:22.000 181 99082 49631.5 4963150 181 99082 49631.5 4963150 -32388 32547 5067.02 506702 -127 124 -1.78 -178 +182 101 10172 99083 0.54654 297.54654 149.04654 14904.65465 0.54654 297.54654 149.04654 14904.65425 0.54654 297.54654 149.04654 14904.65400 2020-01-01 2020-01-02 2020-01-01 00:03:02 2020-01-02 03:31:23 2020-01-01 00:03:02.000 2020-01-02 03:31:23.000 182 99083 49632.5 4963250 182 99083 49632.5 4963250 -32387 32548 5068.02 506802 -126 125 -0.78 -78 183 101 10173 99084 0.54954 297.54954 149.04954 14904.95495 0.54954 297.54956 149.04954 14904.95498 0.54954 297.54954 149.04954 14904.95400 2020-01-01 2020-01-02 2020-01-01 00:03:03 2020-01-02 03:31:24 2020-01-01 00:03:03.000 2020-01-02 03:31:24.000 183 99084 49633.5 4963350 183 99084 49633.5 4963350 -32386 32549 5069.02 506902 -125 126 0.22 22 -184 101 10174 99085 0.55255 297.55255 149.05255 14905.25525 0.55255 297.55255 149.05255 14905.25514 0.55255 297.55255 149.05255000000005 14905.25500 2020-01-01 2020-01-02 2020-01-01 00:03:04 2020-01-02 03:31:25 2020-01-01 00:03:04.000 2020-01-02 03:31:25.000 184 99085 49634.5 4963450 184 99085 49634.5 4963450 -32385 32550 5070.02 507002 -124 127 1.22 122 -185 101 10175 99086 0.55555 297.55555 149.05555 14905.55555 0.55555 297.55554 149.05555 14905.55549 0.55555 297.55555 149.05554999999993 14905.55500 2020-01-01 2020-01-02 2020-01-01 00:03:05 2020-01-02 03:31:26 2020-01-01 00:03:05.000 2020-01-02 03:31:26.000 185 99086 49635.5 4963550 185 99086 49635.5 4963550 -32384 32551 5071.02 507102 -128 127 -0.34 -34 -186 101 10176 99087 0.55855 297.55855 149.05855 14905.85585 0.55855 297.55856 149.05856 14905.85607 0.55855 297.55855 149.05854999999997 14905.85500 2020-01-01 2020-01-02 2020-01-01 00:03:06 2020-01-02 03:31:27 2020-01-01 00:03:06.000 2020-01-02 03:31:27.000 186 99087 49636.5 4963650 186 99087 49636.5 4963650 -32383 32552 5072.02 507202 -128 123 -1.9 -190 -187 101 10177 99088 0.56156 297.56156 149.06156 14906.15615 0.56156 297.56155 149.06155 14906.15572 0.56156 297.56156 149.06156000000007 14906.15600 2020-01-01 2020-01-02 2020-01-01 00:03:07 2020-01-02 03:31:28 2020-01-01 00:03:07.000 2020-01-02 03:31:28.000 187 99088 49637.5 4963750 187 99088 49637.5 4963750 -32382 32553 5073.02 507302 -127 124 -0.9 -90 +184 101 10174 99085 0.55255 297.55255 149.05255 14905.25525 0.55255 297.55255 149.05255 14905.25514 0.55255 297.55255 149.05255 14905.25500 2020-01-01 2020-01-02 2020-01-01 00:03:04 2020-01-02 03:31:25 2020-01-01 00:03:04.000 2020-01-02 03:31:25.000 184 99085 49634.5 4963450 184 99085 49634.5 4963450 -32385 32550 5070.02 507002 -124 127 1.22 122 +185 101 10175 99086 0.55555 297.55555 149.05555 14905.55555 0.55555 297.55554 149.05555 14905.55549 0.55555 297.55555 149.05555 14905.55500 2020-01-01 2020-01-02 2020-01-01 00:03:05 2020-01-02 03:31:26 2020-01-01 00:03:05.000 2020-01-02 03:31:26.000 185 99086 49635.5 4963550 185 99086 49635.5 4963550 -32384 32551 5071.02 507102 -128 127 -0.34 -34 +186 101 10176 99087 0.55855 297.55855 149.05855 14905.85585 0.55855 297.55856 149.05856 14905.85607 0.55855 297.55855 149.05855 14905.85500 2020-01-01 2020-01-02 2020-01-01 00:03:06 2020-01-02 03:31:27 2020-01-01 00:03:06.000 2020-01-02 03:31:27.000 186 99087 49636.5 4963650 186 99087 49636.5 4963650 -32383 32552 5072.02 507202 -128 123 -1.9 -190 +187 101 10177 99088 0.56156 297.56156 149.06156 14906.15615 0.56156 297.56155 149.06155 14906.15572 0.56156 297.56156 149.06156000000001 14906.15600 2020-01-01 2020-01-02 2020-01-01 00:03:07 2020-01-02 03:31:28 2020-01-01 00:03:07.000 2020-01-02 03:31:28.000 187 99088 49637.5 4963750 187 99088 49637.5 4963750 -32382 32553 5073.02 507302 -127 124 -0.9 -90 188 101 10178 99089 0.56456 297.56456 149.06456 14906.45645 0.56456 297.56458 149.06456 14906.45645 0.56456 297.56456 149.06456 14906.45600 2020-01-01 2020-01-02 2020-01-01 00:03:08 2020-01-02 03:31:29 2020-01-01 00:03:08.000 2020-01-02 03:31:29.000 188 99089 49638.5 4963850 188 99089 49638.5 4963850 -32381 32554 5074.02 507402 -126 125 0.1 10 -189 101 10179 99090 0.56756 297.56756 149.06756 14906.75675 0.56756 297.56757 149.06756 14906.75661 0.56756 297.56756 149.06756000000001 14906.75600 2020-01-01 2020-01-02 2020-01-01 00:03:09 2020-01-02 03:31:30 2020-01-01 00:03:09.000 2020-01-02 03:31:30.000 189 99090 49639.5 4963950 189 99090 49639.5 4963950 -32380 32555 5075.02 507502 -125 126 1.1 110 -19 102 10009 99919 0.05705 300.05705 150.05705 15155.76276 0.05705 300.05707 150.05705 15155.76279 0.05705 300.05705 150.05704999999998 15155.76205 2020-01-01 2020-01-02 2020-01-01 00:00:19 2020-01-02 03:45:19 2020-01-01 00:00:19.000 2020-01-02 03:45:19.000 19 99919 49969 5046869 19 99919 49969 5046869 -32550 32385 4548.009900990099 459349 -127 125 -1.693069306930693 -171 -190 101 10180 99091 0.57057 297.57057 149.07057 14907.05705 0.57057 297.57056 149.07056 14907.05695 0.57057 297.57057 149.07056999999995 14907.05700 2020-01-01 2020-01-02 2020-01-01 00:03:10 2020-01-02 03:31:31 2020-01-01 00:03:10.000 2020-01-02 03:31:31.000 190 99091 49640.5 4964050 190 99091 49640.5 4964050 -32379 32556 5076.02 507602 -124 127 2.1 210 +189 101 10179 99090 0.56756 297.56756 149.06756 14906.75675 0.56756 297.56757 149.06756 14906.75661 0.56756 297.56756 149.06756 14906.75600 2020-01-01 2020-01-02 2020-01-01 00:03:09 2020-01-02 03:31:30 2020-01-01 00:03:09.000 2020-01-02 03:31:30.000 189 99090 49639.5 4963950 189 99090 49639.5 4963950 -32380 32555 5075.02 507502 -125 126 1.1 110 +19 102 10009 99919 0.05705 300.05705 150.05705 15155.76276 0.05705 300.05707 150.05705 15155.76279 0.05705 300.05705 150.05705 15155.76205 2020-01-01 2020-01-02 2020-01-01 00:00:19 2020-01-02 03:45:19 2020-01-01 00:00:19.000 2020-01-02 03:45:19.000 19 99919 49969 5046869 19 99919 49969 5046869 -32550 32385 4548.009900990099 459349 -127 125 -1.693069306930693 -171 +190 101 10180 99091 0.57057 297.57057 149.07057 14907.05705 0.57057 297.57056 149.07056 14907.05695 0.57057 297.57057 149.07057 14907.05700 2020-01-01 2020-01-02 2020-01-01 00:03:10 2020-01-02 03:31:31 2020-01-01 00:03:10.000 2020-01-02 03:31:31.000 190 99091 49640.5 4964050 190 99091 49640.5 4964050 -32379 32556 5076.02 507602 -124 127 2.1 210 191 101 10181 99092 0.57357 297.57357 149.07357 14907.35735 0.57357 297.57358 149.07357 14907.35753 0.57357 297.57357 149.07357 14907.35700 2020-01-01 2020-01-02 2020-01-01 00:03:11 2020-01-02 03:31:32 2020-01-01 00:03:11.000 2020-01-02 03:31:32.000 191 99092 49641.5 4964150 191 99092 49641.5 4964150 -32378 32557 5077.02 507702 -128 127 0.54 54 -192 101 10182 99093 0.57657 297.57657 149.07657 14907.65765 0.57657 297.57657 149.07657 14907.65784 0.57657 297.57657 149.07656999999998 14907.65700 2020-01-01 2020-01-02 2020-01-01 00:03:12 2020-01-02 03:31:33 2020-01-01 00:03:12.000 2020-01-02 03:31:33.000 192 99093 49642.5 4964250 192 99093 49642.5 4964250 -32377 32558 5078.02 507802 -128 123 -1.02 -102 -193 101 10183 99094 0.57957 297.57957 149.07957 14907.95795 0.57957 297.5796 149.07957 14907.95793 0.57957 297.57957 149.07956999999993 14907.95700 2020-01-01 2020-01-02 2020-01-01 00:03:13 2020-01-02 03:31:34 2020-01-01 00:03:13.000 2020-01-02 03:31:34.000 193 99094 49643.5 4964350 193 99094 49643.5 4964350 -32376 32559 5079.02 507902 -127 124 -0.02 -2 -194 101 10184 99095 0.58258 297.58258 149.08258 14908.25825 0.58258 297.58258 149.08258 14908.25811 0.58258 297.58258 149.0825800000001 14908.25800 2020-01-01 2020-01-02 2020-01-01 00:03:14 2020-01-02 03:31:35 2020-01-01 00:03:14.000 2020-01-02 03:31:35.000 194 99095 49644.5 4964450 194 99095 49644.5 4964450 -32375 32560 5080.02 508002 -126 125 0.98 98 -195 101 10185 99096 0.58558 297.58558 149.08558 14908.55855 0.58558 297.58557 149.08558 14908.55842 0.58558 297.58558 149.08558000000008 14908.55800 2020-01-01 2020-01-02 2020-01-01 00:03:15 2020-01-02 03:31:36 2020-01-01 00:03:15.000 2020-01-02 03:31:36.000 195 99096 49645.5 4964550 195 99096 49645.5 4964550 -32374 32561 5081.02 508102 -125 126 1.98 198 -196 101 10186 99097 0.58858 297.58858 149.08858 14908.85885 0.58858 297.5886 149.08859 14908.859 0.58858 297.58858 149.08857999999992 14908.85800 2020-01-01 2020-01-02 2020-01-01 00:03:16 2020-01-02 03:31:37 2020-01-01 00:03:16.000 2020-01-02 03:31:37.000 196 99097 49646.5 4964650 196 99097 49646.5 4964650 -32373 32562 5082.02 508202 -124 127 2.98 298 +192 101 10182 99093 0.57657 297.57657 149.07657 14907.65765 0.57657 297.57657 149.07657 14907.65784 0.57657 297.57657 149.07657 14907.65700 2020-01-01 2020-01-02 2020-01-01 00:03:12 2020-01-02 03:31:33 2020-01-01 00:03:12.000 2020-01-02 03:31:33.000 192 99093 49642.5 4964250 192 99093 49642.5 4964250 -32377 32558 5078.02 507802 -128 123 -1.02 -102 +193 101 10183 99094 0.57957 297.57957 149.07957 14907.95795 0.57957 297.5796 149.07957 14907.95793 0.57957 297.57957 149.07957 14907.95700 2020-01-01 2020-01-02 2020-01-01 00:03:13 2020-01-02 03:31:34 2020-01-01 00:03:13.000 2020-01-02 03:31:34.000 193 99094 49643.5 4964350 193 99094 49643.5 4964350 -32376 32559 5079.02 507902 -127 124 -0.02 -2 +194 101 10184 99095 0.58258 297.58258 149.08258 14908.25825 0.58258 297.58258 149.08258 14908.25811 0.58258 297.58258 149.08258 14908.25800 2020-01-01 2020-01-02 2020-01-01 00:03:14 2020-01-02 03:31:35 2020-01-01 00:03:14.000 2020-01-02 03:31:35.000 194 99095 49644.5 4964450 194 99095 49644.5 4964450 -32375 32560 5080.02 508002 -126 125 0.98 98 +195 101 10185 99096 0.58558 297.58558 149.08558 14908.55855 0.58558 297.58557 149.08558 14908.55842 0.58558 297.58558 149.08558000000002 14908.55800 2020-01-01 2020-01-02 2020-01-01 00:03:15 2020-01-02 03:31:36 2020-01-01 00:03:15.000 2020-01-02 03:31:36.000 195 99096 49645.5 4964550 195 99096 49645.5 4964550 -32374 32561 5081.02 508102 -125 126 1.98 198 +196 101 10186 99097 0.58858 297.58858 149.08858 14908.85885 0.58858 297.5886 149.08859 14908.859 0.58858 297.58858 149.08858 14908.85800 2020-01-01 2020-01-02 2020-01-01 00:03:16 2020-01-02 03:31:37 2020-01-01 00:03:16.000 2020-01-02 03:31:37.000 196 99097 49646.5 4964650 196 99097 49646.5 4964650 -32373 32562 5082.02 508202 -124 127 2.98 298 197 101 10187 99098 0.59159 297.59159 149.09159 14909.15915 0.59159 297.59158 149.09159 14909.15931 0.59159 297.59159 149.09159 14909.15900 2020-01-01 2020-01-02 2020-01-01 00:03:17 2020-01-02 03:31:38 2020-01-01 00:03:17.000 2020-01-02 03:31:38.000 197 99098 49647.5 4964750 197 99098 49647.5 4964750 -32372 32563 5083.02 508302 -128 127 1.42 142 -198 101 10188 99099 0.59459 297.59459 149.09459 14909.45945 0.59459 297.5946 149.09459 14909.4594 0.59459 297.59459 149.09459000000004 14909.45900 2020-01-01 2020-01-02 2020-01-01 00:03:18 2020-01-02 03:31:39 2020-01-01 00:03:18.000 2020-01-02 03:31:39.000 198 99099 49648.5 4964850 198 99099 49648.5 4964850 -32371 32564 5084.02 508402 -128 127 -0.14 -14 -199 101 10189 99100 0.59759 297.59759 149.09759 14909.75975 0.59759 297.5976 149.09759 14909.75958 0.59759 297.59759 149.09758999999997 14909.75900 2020-01-01 2020-01-02 2020-01-01 00:03:19 2020-01-02 03:31:40 2020-01-01 00:03:19.000 2020-01-02 03:31:40.000 199 99100 49649.5 4964950 199 99100 49649.5 4964950 -32370 32565 5085.02 508502 -128 124 -1.7 -170 -2 102 1001 9992 0.006 300.006 150.006 15150.6066 0.006 300.006 150.006 15150.6069 0.00600 300.00600 150.00599999999997 15150.60600 2020-01-01 2020-01-02 2020-01-01 00:00:02 2020-01-02 03:45:02 2020-01-01 00:00:02.000 2020-01-02 03:45:02.000 2 99902 49952 5045152 2 99902 49952 5045152 -32567 32368 4531.009900990099 457632 -125 126 -0.9504950495049505 -96 -20 102 10010 99920 0.06006 300.06006 150.06006 15156.06606 0.06006 300.06006 150.06005 15156.06593 0.06006 300.06006 150.0600599999999 15156.06606 2020-01-01 2020-01-02 2020-01-01 00:00:20 2020-01-02 03:45:20 2020-01-01 00:00:20.000 2020-01-02 03:45:20.000 20 99920 49970 5046970 20 99920 49970 5046970 -32549 32386 4549.009900990099 459450 -126 126 -0.693069306930693 -70 -200 101 10190 99101 0.6006 297.6006 149.1006 14910.06006 0.6006 297.6006 149.10059 14910.0599 0.60060 297.60060 149.1005999999999 14910.06000 2020-01-01 2020-01-02 2020-01-01 00:03:20 2020-01-02 03:31:41 2020-01-01 00:03:20.000 2020-01-02 03:31:41.000 200 99101 49650.5 4965050 200 99101 49650.5 4965050 -32369 32566 5086.02 508602 -127 125 -0.7 -70 -201 101 10191 99102 0.6036 297.6036 149.1036 14910.36036 0.6036 297.6036 149.1036 14910.36063 0.60360 297.60360 149.10360000000009 14910.36000 2020-01-01 2020-01-02 2020-01-01 00:03:21 2020-01-02 03:31:42 2020-01-01 00:03:21.000 2020-01-02 03:31:42.000 201 99102 49651.5 4965150 201 99102 49651.5 4965150 -32368 32567 5087.02 508702 -126 126 0.3 30 -202 101 10192 99103 0.6066 297.6066 149.1066 14910.66066 0.6066 297.6066 149.1066 14910.66078 0.60660 297.60660 149.10659999999993 14910.66000 2020-01-01 2020-01-02 2020-01-01 00:03:22 2020-01-02 03:31:43 2020-01-01 00:03:22.000 2020-01-02 03:31:43.000 202 99103 49652.5 4965250 202 99103 49652.5 4965250 -32367 32568 5088.02 508802 -125 127 1.3 130 -203 101 10193 99104 0.6096 297.6096 149.1096 14910.96096 0.6096 297.60962 149.1096 14910.9609 0.60960 297.60960 149.1095999999999 14910.96000 2020-01-01 2020-01-02 2020-01-01 00:03:23 2020-01-02 03:31:44 2020-01-01 00:03:23.000 2020-01-02 03:31:44.000 203 99104 49653.5 4965350 203 99104 49653.5 4965350 -32366 32569 5089.02 508902 -128 127 -0.26 -26 -204 101 10194 99105 0.61261 297.61261 149.11261 14911.26126 0.61261 297.6126 149.11261 14911.26105 0.61261 297.61261 149.11261000000005 14911.26100 2020-01-01 2020-01-02 2020-01-01 00:03:24 2020-01-02 03:31:45 2020-01-01 00:03:24.000 2020-01-02 03:31:45.000 204 99105 49654.5 4965450 204 99105 49654.5 4965450 -32365 32570 5090.02 509002 -128 127 -1.82 -182 -205 101 10195 99106 0.61561 297.61561 149.11561 14911.56156 0.61561 297.6156 149.11561 14911.56137 0.61561 297.61561 149.11561000000003 14911.56100 2020-01-01 2020-01-02 2020-01-01 00:03:25 2020-01-02 03:31:46 2020-01-01 00:03:25.000 2020-01-02 03:31:46.000 205 99106 49655.5 4965550 205 99106 49655.5 4965550 -32364 32571 5091.02 509102 -128 123 -3.38 -338 -206 101 10196 99107 0.61861 297.61861 149.11861 14911.86186 0.61861 297.61862 149.11862 14911.8621 0.61861 297.61861 149.11860999999985 14911.86100 2020-01-01 2020-01-02 2020-01-01 00:03:26 2020-01-02 03:31:47 2020-01-01 00:03:26.000 2020-01-02 03:31:47.000 206 99107 49656.5 4965650 206 99107 49656.5 4965650 -32363 32572 5092.02 509202 -127 124 -2.38 -238 -207 101 10197 99108 0.62162 297.62162 149.12162 14912.16216 0.62162 297.6216 149.12162 14912.16225 0.62162 297.62162 149.12161999999992 14912.16200 2020-01-01 2020-01-02 2020-01-01 00:03:27 2020-01-02 03:31:48 2020-01-01 00:03:27.000 2020-01-02 03:31:48.000 207 99108 49657.5 4965750 207 99108 49657.5 4965750 -32362 32573 5093.02 509302 -126 125 -1.38 -138 +198 101 10188 99099 0.59459 297.59459 149.09459 14909.45945 0.59459 297.5946 149.09459 14909.4594 0.59459 297.59459 149.09459 14909.45900 2020-01-01 2020-01-02 2020-01-01 00:03:18 2020-01-02 03:31:39 2020-01-01 00:03:18.000 2020-01-02 03:31:39.000 198 99099 49648.5 4964850 198 99099 49648.5 4964850 -32371 32564 5084.02 508402 -128 127 -0.14 -14 +199 101 10189 99100 0.59759 297.59759 149.09759 14909.75975 0.59759 297.5976 149.09759 14909.75958 0.59759 297.59759 149.09759 14909.75900 2020-01-01 2020-01-02 2020-01-01 00:03:19 2020-01-02 03:31:40 2020-01-01 00:03:19.000 2020-01-02 03:31:40.000 199 99100 49649.5 4964950 199 99100 49649.5 4964950 -32370 32565 5085.02 508502 -128 124 -1.7 -170 +2 102 1001 9992 0.006 300.006 150.006 15150.6066 0.006 300.006 150.006 15150.6069 0.00600 300.00600 150.006 15150.60600 2020-01-01 2020-01-02 2020-01-01 00:00:02 2020-01-02 03:45:02 2020-01-01 00:00:02.000 2020-01-02 03:45:02.000 2 99902 49952 5045152 2 99902 49952 5045152 -32567 32368 4531.009900990099 457632 -125 126 -0.9504950495049505 -96 +20 102 10010 99920 0.06006 300.06006 150.06006 15156.06606 0.06006 300.06006 150.06005 15156.06593 0.06006 300.06006 150.06006 15156.06606 2020-01-01 2020-01-02 2020-01-01 00:00:20 2020-01-02 03:45:20 2020-01-01 00:00:20.000 2020-01-02 03:45:20.000 20 99920 49970 5046970 20 99920 49970 5046970 -32549 32386 4549.009900990099 459450 -126 126 -0.693069306930693 -70 +200 101 10190 99101 0.6006 297.6006 149.1006 14910.06006 0.6006 297.6006 149.10059 14910.0599 0.60060 297.60060 149.1006 14910.06000 2020-01-01 2020-01-02 2020-01-01 00:03:20 2020-01-02 03:31:41 2020-01-01 00:03:20.000 2020-01-02 03:31:41.000 200 99101 49650.5 4965050 200 99101 49650.5 4965050 -32369 32566 5086.02 508602 -127 125 -0.7 -70 +201 101 10191 99102 0.6036 297.6036 149.1036 14910.36036 0.6036 297.6036 149.1036 14910.36063 0.60360 297.60360 149.1036 14910.36000 2020-01-01 2020-01-02 2020-01-01 00:03:21 2020-01-02 03:31:42 2020-01-01 00:03:21.000 2020-01-02 03:31:42.000 201 99102 49651.5 4965150 201 99102 49651.5 4965150 -32368 32567 5087.02 508702 -126 126 0.3 30 +202 101 10192 99103 0.6066 297.6066 149.1066 14910.66066 0.6066 297.6066 149.1066 14910.66078 0.60660 297.60660 149.1066 14910.66000 2020-01-01 2020-01-02 2020-01-01 00:03:22 2020-01-02 03:31:43 2020-01-01 00:03:22.000 2020-01-02 03:31:43.000 202 99103 49652.5 4965250 202 99103 49652.5 4965250 -32367 32568 5088.02 508802 -125 127 1.3 130 +203 101 10193 99104 0.6096 297.6096 149.1096 14910.96096 0.6096 297.60962 149.1096 14910.9609 0.60960 297.60960 149.1096 14910.96000 2020-01-01 2020-01-02 2020-01-01 00:03:23 2020-01-02 03:31:44 2020-01-01 00:03:23.000 2020-01-02 03:31:44.000 203 99104 49653.5 4965350 203 99104 49653.5 4965350 -32366 32569 5089.02 508902 -128 127 -0.26 -26 +204 101 10194 99105 0.61261 297.61261 149.11261 14911.26126 0.61261 297.6126 149.11261 14911.26105 0.61261 297.61261 149.11261000000002 14911.26100 2020-01-01 2020-01-02 2020-01-01 00:03:24 2020-01-02 03:31:45 2020-01-01 00:03:24.000 2020-01-02 03:31:45.000 204 99105 49654.5 4965450 204 99105 49654.5 4965450 -32365 32570 5090.02 509002 -128 127 -1.82 -182 +205 101 10195 99106 0.61561 297.61561 149.11561 14911.56156 0.61561 297.6156 149.11561 14911.56137 0.61561 297.61561 149.11561 14911.56100 2020-01-01 2020-01-02 2020-01-01 00:03:25 2020-01-02 03:31:46 2020-01-01 00:03:25.000 2020-01-02 03:31:46.000 205 99106 49655.5 4965550 205 99106 49655.5 4965550 -32364 32571 5091.02 509102 -128 123 -3.38 -338 +206 101 10196 99107 0.61861 297.61861 149.11861 14911.86186 0.61861 297.61862 149.11862 14911.8621 0.61861 297.61861 149.11861000000002 14911.86100 2020-01-01 2020-01-02 2020-01-01 00:03:26 2020-01-02 03:31:47 2020-01-01 00:03:26.000 2020-01-02 03:31:47.000 206 99107 49656.5 4965650 206 99107 49656.5 4965650 -32363 32572 5092.02 509202 -127 124 -2.38 -238 +207 101 10197 99108 0.62162 297.62162 149.12162 14912.16216 0.62162 297.6216 149.12162 14912.16225 0.62162 297.62162 149.12162 14912.16200 2020-01-01 2020-01-02 2020-01-01 00:03:27 2020-01-02 03:31:48 2020-01-01 00:03:27.000 2020-01-02 03:31:48.000 207 99108 49657.5 4965750 207 99108 49657.5 4965750 -32362 32573 5093.02 509302 -126 125 -1.38 -138 208 101 10198 99109 0.62462 297.62462 149.12462 14912.46246 0.62462 297.62463 149.12462 14912.46237 0.62462 297.62462 149.12462 14912.46200 2020-01-01 2020-01-02 2020-01-01 00:03:28 2020-01-02 03:31:49 2020-01-01 00:03:28.000 2020-01-02 03:31:49.000 208 99109 49658.5 4965850 208 99109 49658.5 4965850 -32361 32574 5094.02 509402 -125 126 -0.38 -38 -209 101 10199 99110 0.62762 297.62762 149.12762 14912.76276 0.62762 297.62762 149.12762 14912.76253 0.62762 297.62762 149.12761999999998 14912.76200 2020-01-01 2020-01-02 2020-01-01 00:03:29 2020-01-02 03:31:50 2020-01-01 00:03:29.000 2020-01-02 03:31:50.000 209 99110 49659.5 4965950 209 99110 49659.5 4965950 -32360 32575 5095.02 509502 -124 127 0.62 62 -21 102 10011 99921 0.06306 300.06306 150.06306 15156.36936 0.06306 300.06305 150.06306 15156.36927 0.06306 300.06306 150.06306000000012 15156.36906 2020-01-01 2020-01-02 2020-01-01 00:00:21 2020-01-02 03:45:21 2020-01-01 00:00:21.000 2020-01-02 03:45:21.000 21 99921 49971 5047071 21 99921 49971 5047071 -32548 32387 4550.009900990099 459551 -125 127 0.3069306930693069 31 -210 101 10200 99111 0.63063 297.63063 149.13063 14913.06306 0.63063 297.63065 149.13063 14913.06326 0.63063 297.63063 149.13062999999994 14913.06300 2020-01-01 2020-01-02 2020-01-01 00:03:30 2020-01-02 03:31:51 2020-01-01 00:03:30.000 2020-01-02 03:31:51.000 210 99111 49660.5 4966050 210 99111 49660.5 4966050 -32359 32576 5096.02 509602 -128 127 -0.94 -94 -211 101 10201 99112 0.63363 297.63363 149.13363 14913.36336 0.63363 297.63364 149.13363 14913.36357 0.63363 297.63363 149.13363000000004 14913.36300 2020-01-01 2020-01-02 2020-01-01 00:03:31 2020-01-02 03:31:52 2020-01-01 00:03:31.000 2020-01-02 03:31:52.000 211 99112 49661.5 4966150 211 99112 49661.5 4966150 -32358 32577 5097.02 509702 -128 123 -2.5 -250 -212 101 10202 99113 0.63663 297.63663 149.13663 14913.66366 0.63663 297.63663 149.13663 14913.66372 0.63663 297.63663 149.13663000000008 14913.66300 2020-01-01 2020-01-02 2020-01-01 00:03:32 2020-01-02 03:31:53 2020-01-01 00:03:32.000 2020-01-02 03:31:53.000 212 99113 49662.5 4966250 212 99113 49662.5 4966250 -32357 32578 5098.02 509802 -127 124 -1.5 -150 -213 101 10203 99114 0.63963 297.63963 149.13963 14913.96396 0.63963 297.63965 149.13963 14913.96384 0.63963 297.63963 149.1396299999999 14913.96300 2020-01-01 2020-01-02 2020-01-01 00:03:33 2020-01-02 03:31:54 2020-01-01 00:03:33.000 2020-01-02 03:31:54.000 213 99114 49663.5 4966350 213 99114 49663.5 4966350 -32356 32579 5099.02 509902 -126 125 -0.5 -50 +209 101 10199 99110 0.62762 297.62762 149.12762 14912.76276 0.62762 297.62762 149.12762 14912.76253 0.62762 297.62762 149.12762 14912.76200 2020-01-01 2020-01-02 2020-01-01 00:03:29 2020-01-02 03:31:50 2020-01-01 00:03:29.000 2020-01-02 03:31:50.000 209 99110 49659.5 4965950 209 99110 49659.5 4965950 -32360 32575 5095.02 509502 -124 127 0.62 62 +21 102 10011 99921 0.06306 300.06306 150.06306 15156.36936 0.06306 300.06305 150.06306 15156.36927 0.06306 300.06306 150.06306 15156.36906 2020-01-01 2020-01-02 2020-01-01 00:00:21 2020-01-02 03:45:21 2020-01-01 00:00:21.000 2020-01-02 03:45:21.000 21 99921 49971 5047071 21 99921 49971 5047071 -32548 32387 4550.009900990099 459551 -125 127 0.3069306930693069 31 +210 101 10200 99111 0.63063 297.63063 149.13063 14913.06306 0.63063 297.63065 149.13063 14913.06326 0.63063 297.63063 149.13063 14913.06300 2020-01-01 2020-01-02 2020-01-01 00:03:30 2020-01-02 03:31:51 2020-01-01 00:03:30.000 2020-01-02 03:31:51.000 210 99111 49660.5 4966050 210 99111 49660.5 4966050 -32359 32576 5096.02 509602 -128 127 -0.94 -94 +211 101 10201 99112 0.63363 297.63363 149.13363 14913.36336 0.63363 297.63364 149.13363 14913.36357 0.63363 297.63363 149.13362999999998 14913.36300 2020-01-01 2020-01-02 2020-01-01 00:03:31 2020-01-02 03:31:52 2020-01-01 00:03:31.000 2020-01-02 03:31:52.000 211 99112 49661.5 4966150 211 99112 49661.5 4966150 -32358 32577 5097.02 509702 -128 123 -2.5 -250 +212 101 10202 99113 0.63663 297.63663 149.13663 14913.66366 0.63663 297.63663 149.13663 14913.66372 0.63663 297.63663 149.13663 14913.66300 2020-01-01 2020-01-02 2020-01-01 00:03:32 2020-01-02 03:31:53 2020-01-01 00:03:32.000 2020-01-02 03:31:53.000 212 99113 49662.5 4966250 212 99113 49662.5 4966250 -32357 32578 5098.02 509802 -127 124 -1.5 -150 +213 101 10203 99114 0.63963 297.63963 149.13963 14913.96396 0.63963 297.63965 149.13963 14913.96384 0.63963 297.63963 149.13963 14913.96300 2020-01-01 2020-01-02 2020-01-01 00:03:33 2020-01-02 03:31:54 2020-01-01 00:03:33.000 2020-01-02 03:31:54.000 213 99114 49663.5 4966350 213 99114 49663.5 4966350 -32356 32579 5099.02 509902 -126 125 -0.5 -50 214 101 10204 99115 0.64264 297.64264 149.14264 14914.26426 0.64264 297.64264 149.14263 14914.26399 0.64264 297.64264 149.14264 14914.26400 2020-01-01 2020-01-02 2020-01-01 00:03:34 2020-01-02 03:31:55 2020-01-01 00:03:34.000 2020-01-02 03:31:55.000 214 99115 49664.5 4966450 214 99115 49664.5 4966450 -32355 32580 5100.02 510002 -125 126 0.5 50 -215 101 10205 99116 0.64564 297.64564 149.14564 14914.56456 0.64564 297.64566 149.14564 14914.56473 0.64564 297.64564 149.14564000000007 14914.56400 2020-01-01 2020-01-02 2020-01-01 00:03:35 2020-01-02 03:31:56 2020-01-01 00:03:35.000 2020-01-02 03:31:56.000 215 99116 49665.5 4966550 215 99116 49665.5 4966550 -32354 32581 5101.02 510102 -124 127 1.5 150 -216 101 10206 99117 0.64864 297.64864 149.14864 14914.86486 0.64864 297.64865 149.14865 14914.86504 0.64864 297.64864 149.14863999999997 14914.86400 2020-01-01 2020-01-02 2020-01-01 00:03:36 2020-01-02 03:31:57 2020-01-01 00:03:36.000 2020-01-02 03:31:57.000 216 99117 49666.5 4966650 216 99117 49666.5 4966650 -32353 32582 5102.02 510202 -128 127 -0.06 -6 -217 101 10207 99118 0.65165 297.65165 149.15165 14915.16516 0.65165 297.65164 149.15165 14915.16523 0.65165 297.65165 149.1516499999999 14915.16500 2020-01-01 2020-01-02 2020-01-01 00:03:37 2020-01-02 03:31:58 2020-01-01 00:03:37.000 2020-01-02 03:31:58.000 217 99118 49667.5 4966750 217 99118 49667.5 4966750 -32352 32583 5103.02 510302 -128 123 -1.62 -162 -218 101 10208 99119 0.65465 297.65465 149.15465 14915.46546 0.65465 297.65466 149.15465 14915.46531 0.65465 297.65465 149.15465000000012 14915.46500 2020-01-01 2020-01-02 2020-01-01 00:03:38 2020-01-02 03:31:59 2020-01-01 00:03:38.000 2020-01-02 03:31:59.000 218 99119 49668.5 4966850 218 99119 49668.5 4966850 -32351 32584 5104.02 510402 -127 124 -0.62 -62 -219 101 10209 99120 0.65765 297.65765 149.15765 14915.76576 0.65765 297.65765 149.15765 14915.76562 0.65765 297.65765 149.15764999999993 14915.76500 2020-01-01 2020-01-02 2020-01-01 00:03:39 2020-01-02 03:32:00 2020-01-01 00:03:39.000 2020-01-02 03:32:00.000 219 99120 49669.5 4966950 219 99120 49669.5 4966950 -32350 32585 5105.02 510502 -126 125 0.38 38 -22 102 10012 99922 0.06606 300.06606 150.06606 15156.67267 0.06606 300.06607 150.06606 15156.67287 0.06606 300.06606 150.06605999999996 15156.67206 2020-01-01 2020-01-02 2020-01-01 00:00:22 2020-01-02 03:45:22 2020-01-01 00:00:22.000 2020-01-02 03:45:22.000 22 99922 49972 5047172 22 99922 49972 5047172 -32547 32388 4551.009900990099 459652 -128 127 -1.2277227722772277 -124 -220 101 10210 99121 0.66066 297.66066 149.16066 14916.06606 0.66066 297.66068 149.16066 14916.06619 0.66066 297.66066 149.16065999999984 14916.06600 2020-01-01 2020-01-02 2020-01-01 00:03:40 2020-01-02 03:32:01 2020-01-01 00:03:40.000 2020-01-02 03:32:01.000 220 99121 49670.5 4967050 220 99121 49670.5 4967050 -32349 32586 5106.02 510602 -125 126 1.38 138 -221 101 10211 99122 0.66366 297.66366 149.16366 14916.36636 0.66366 297.66367 149.16366 14916.36651 0.66366 297.66366 149.16366000000008 14916.36600 2020-01-01 2020-01-02 2020-01-01 00:03:41 2020-01-02 03:32:02 2020-01-01 00:03:41.000 2020-01-02 03:32:02.000 221 99122 49671.5 4967150 221 99122 49671.5 4967150 -32348 32587 5107.02 510702 -124 127 2.38 238 -222 101 10212 99123 0.66666 297.66666 149.16666 14916.66666 0.66666 297.66666 149.16666 14916.6667 0.66666 297.66666 149.16666000000004 14916.66600 2020-01-01 2020-01-02 2020-01-01 00:03:42 2020-01-02 03:32:03 2020-01-01 00:03:42.000 2020-01-02 03:32:03.000 222 99123 49672.5 4967250 222 99123 49672.5 4967250 -32347 32588 5108.02 510802 -128 127 0.82 82 -223 101 10213 99124 0.66966 297.66966 149.16966 14916.96696 0.66966 297.66968 149.16966 14916.96678 0.66966 297.66966 149.16965999999985 14916.96600 2020-01-01 2020-01-02 2020-01-01 00:03:43 2020-01-02 03:32:04 2020-01-01 00:03:43.000 2020-01-02 03:32:04.000 223 99124 49673.5 4967350 223 99124 49673.5 4967350 -32346 32589 5109.02 510902 -128 127 -0.74 -74 -224 101 10214 99125 0.67267 297.67267 149.17267 14917.26726 0.67267 297.67267 149.17267 14917.26709 0.67267 297.67267 149.17266999999995 14917.26700 2020-01-01 2020-01-02 2020-01-01 00:03:44 2020-01-02 03:32:05 2020-01-01 00:03:44.000 2020-01-02 03:32:05.000 224 99125 49674.5 4967450 224 99125 49674.5 4967450 -32345 32590 5110.02 511002 -128 124 -2.3 -230 +215 101 10205 99116 0.64564 297.64564 149.14564 14914.56456 0.64564 297.64566 149.14564 14914.56473 0.64564 297.64564 149.14564000000001 14914.56400 2020-01-01 2020-01-02 2020-01-01 00:03:35 2020-01-02 03:31:56 2020-01-01 00:03:35.000 2020-01-02 03:31:56.000 215 99116 49665.5 4966550 215 99116 49665.5 4966550 -32354 32581 5101.02 510102 -124 127 1.5 150 +216 101 10206 99117 0.64864 297.64864 149.14864 14914.86486 0.64864 297.64865 149.14865 14914.86504 0.64864 297.64864 149.14864 14914.86400 2020-01-01 2020-01-02 2020-01-01 00:03:36 2020-01-02 03:31:57 2020-01-01 00:03:36.000 2020-01-02 03:31:57.000 216 99117 49666.5 4966650 216 99117 49666.5 4966650 -32353 32582 5102.02 510202 -128 127 -0.06 -6 +217 101 10207 99118 0.65165 297.65165 149.15165 14915.16516 0.65165 297.65164 149.15165 14915.16523 0.65165 297.65165 149.15165000000002 14915.16500 2020-01-01 2020-01-02 2020-01-01 00:03:37 2020-01-02 03:31:58 2020-01-01 00:03:37.000 2020-01-02 03:31:58.000 217 99118 49667.5 4966750 217 99118 49667.5 4966750 -32352 32583 5103.02 510302 -128 123 -1.62 -162 +218 101 10208 99119 0.65465 297.65465 149.15465 14915.46546 0.65465 297.65466 149.15465 14915.46531 0.65465 297.65465 149.15465 14915.46500 2020-01-01 2020-01-02 2020-01-01 00:03:38 2020-01-02 03:31:59 2020-01-01 00:03:38.000 2020-01-02 03:31:59.000 218 99119 49668.5 4966850 218 99119 49668.5 4966850 -32351 32584 5104.02 510402 -127 124 -0.62 -62 +219 101 10209 99120 0.65765 297.65765 149.15765 14915.76576 0.65765 297.65765 149.15765 14915.76562 0.65765 297.65765 149.15765 14915.76500 2020-01-01 2020-01-02 2020-01-01 00:03:39 2020-01-02 03:32:00 2020-01-01 00:03:39.000 2020-01-02 03:32:00.000 219 99120 49669.5 4966950 219 99120 49669.5 4966950 -32350 32585 5105.02 510502 -126 125 0.38 38 +22 102 10012 99922 0.06606 300.06606 150.06606 15156.67267 0.06606 300.06607 150.06606 15156.67287 0.06606 300.06606 150.06606000000002 15156.67206 2020-01-01 2020-01-02 2020-01-01 00:00:22 2020-01-02 03:45:22 2020-01-01 00:00:22.000 2020-01-02 03:45:22.000 22 99922 49972 5047172 22 99922 49972 5047172 -32547 32388 4551.009900990099 459652 -128 127 -1.2277227722772277 -124 +220 101 10210 99121 0.66066 297.66066 149.16066 14916.06606 0.66066 297.66068 149.16066 14916.06619 0.66066 297.66066 149.16066 14916.06600 2020-01-01 2020-01-02 2020-01-01 00:03:40 2020-01-02 03:32:01 2020-01-01 00:03:40.000 2020-01-02 03:32:01.000 220 99121 49670.5 4967050 220 99121 49670.5 4967050 -32349 32586 5106.02 510602 -125 126 1.38 138 +221 101 10211 99122 0.66366 297.66366 149.16366 14916.36636 0.66366 297.66367 149.16366 14916.36651 0.66366 297.66366 149.16366 14916.36600 2020-01-01 2020-01-02 2020-01-01 00:03:41 2020-01-02 03:32:02 2020-01-01 00:03:41.000 2020-01-02 03:32:02.000 221 99122 49671.5 4967150 221 99122 49671.5 4967150 -32348 32587 5107.02 510702 -124 127 2.38 238 +222 101 10212 99123 0.66666 297.66666 149.16666 14916.66666 0.66666 297.66666 149.16666 14916.6667 0.66666 297.66666 149.16665999999998 14916.66600 2020-01-01 2020-01-02 2020-01-01 00:03:42 2020-01-02 03:32:03 2020-01-01 00:03:42.000 2020-01-02 03:32:03.000 222 99123 49672.5 4967250 222 99123 49672.5 4967250 -32347 32588 5108.02 510802 -128 127 0.82 82 +223 101 10213 99124 0.66966 297.66966 149.16966 14916.96696 0.66966 297.66968 149.16966 14916.96678 0.66966 297.66966 149.16966 14916.96600 2020-01-01 2020-01-02 2020-01-01 00:03:43 2020-01-02 03:32:04 2020-01-01 00:03:43.000 2020-01-02 03:32:04.000 223 99124 49673.5 4967350 223 99124 49673.5 4967350 -32346 32589 5109.02 510902 -128 127 -0.74 -74 +224 101 10214 99125 0.67267 297.67267 149.17267 14917.26726 0.67267 297.67267 149.17267 14917.26709 0.67267 297.67267 149.17267 14917.26700 2020-01-01 2020-01-02 2020-01-01 00:03:44 2020-01-02 03:32:05 2020-01-01 00:03:44.000 2020-01-02 03:32:05.000 224 99125 49674.5 4967450 224 99125 49674.5 4967450 -32345 32590 5110.02 511002 -128 124 -2.3 -230 225 101 10215 99126 0.67567 297.67567 149.17567 14917.56756 0.67567 297.6757 149.17567 14917.56767 0.67567 297.67567 149.17567 14917.56700 2020-01-01 2020-01-02 2020-01-01 00:03:45 2020-01-02 03:32:06 2020-01-01 00:03:45.000 2020-01-02 03:32:06.000 225 99126 49675.5 4967550 225 99126 49675.5 4967550 -32344 32591 5111.02 511102 -127 125 -1.3 -130 -226 101 10216 99127 0.67867 297.67867 149.17867 14917.86786 0.67867 297.67868 149.17868 14917.86802 0.67867 297.67867 149.17866999999998 14917.86700 2020-01-01 2020-01-02 2020-01-01 00:03:46 2020-01-02 03:32:07 2020-01-01 00:03:46.000 2020-01-02 03:32:07.000 226 99127 49676.5 4967650 226 99127 49676.5 4967650 -32343 32592 5112.02 511202 -126 126 -0.3 -30 -227 101 10217 99128 0.68168 297.68168 149.18168 14918.16816 0.68168 297.68167 149.18168 14918.16817 0.68168 297.68168 149.18167999999991 14918.16800 2020-01-01 2020-01-02 2020-01-01 00:03:47 2020-01-02 03:32:08 2020-01-01 00:03:47.000 2020-01-02 03:32:08.000 227 99128 49677.5 4967750 227 99128 49677.5 4967750 -32342 32593 5113.02 511302 -125 127 0.7 70 -228 101 10218 99129 0.68468 297.68468 149.18468 14918.46846 0.68468 297.6847 149.18468 14918.46825 0.68468 297.68468 149.18468000000007 14918.46800 2020-01-01 2020-01-02 2020-01-01 00:03:48 2020-01-02 03:32:09 2020-01-01 00:03:48.000 2020-01-02 03:32:09.000 228 99129 49678.5 4967850 228 99129 49678.5 4967850 -32341 32594 5114.02 511402 -128 127 -0.86 -86 -229 101 10219 99130 0.68768 297.68768 149.18768 14918.76876 0.68768 297.68768 149.18768 14918.76855 0.68768 297.68768 149.1876799999999 14918.76800 2020-01-01 2020-01-02 2020-01-01 00:03:49 2020-01-02 03:32:10 2020-01-01 00:03:49.000 2020-01-02 03:32:10.000 229 99130 49679.5 4967950 229 99130 49679.5 4967950 -32340 32595 5115.02 511502 -128 127 -2.42 -242 -23 102 10013 99923 0.06906 300.06906 150.06906 15156.97597 0.06906 300.06906 150.06907 15156.97617 0.06906 300.06906 150.06905999999992 15156.97506 2020-01-01 2020-01-02 2020-01-01 00:00:23 2020-01-02 03:45:23 2020-01-01 00:00:23.000 2020-01-02 03:45:23.000 23 99923 49973 5047273 23 99923 49973 5047273 -32546 32389 4552.009900990099 459753 -128 127 -2.762376237623762 -279 +226 101 10216 99127 0.67867 297.67867 149.17867 14917.86786 0.67867 297.67868 149.17868 14917.86802 0.67867 297.67867 149.17867 14917.86700 2020-01-01 2020-01-02 2020-01-01 00:03:46 2020-01-02 03:32:07 2020-01-01 00:03:46.000 2020-01-02 03:32:07.000 226 99127 49676.5 4967650 226 99127 49676.5 4967650 -32343 32592 5112.02 511202 -126 126 -0.3 -30 +227 101 10217 99128 0.68168 297.68168 149.18168 14918.16816 0.68168 297.68167 149.18168 14918.16817 0.68168 297.68168 149.18168 14918.16800 2020-01-01 2020-01-02 2020-01-01 00:03:47 2020-01-02 03:32:08 2020-01-01 00:03:47.000 2020-01-02 03:32:08.000 227 99128 49677.5 4967750 227 99128 49677.5 4967750 -32342 32593 5113.02 511302 -125 127 0.7 70 +228 101 10218 99129 0.68468 297.68468 149.18468 14918.46846 0.68468 297.6847 149.18468 14918.46825 0.68468 297.68468 149.18468000000001 14918.46800 2020-01-01 2020-01-02 2020-01-01 00:03:48 2020-01-02 03:32:09 2020-01-01 00:03:48.000 2020-01-02 03:32:09.000 228 99129 49678.5 4967850 228 99129 49678.5 4967850 -32341 32594 5114.02 511402 -128 127 -0.86 -86 +229 101 10219 99130 0.68768 297.68768 149.18768 14918.76876 0.68768 297.68768 149.18768 14918.76855 0.68768 297.68768 149.18768 14918.76800 2020-01-01 2020-01-02 2020-01-01 00:03:49 2020-01-02 03:32:10 2020-01-01 00:03:49.000 2020-01-02 03:32:10.000 229 99130 49679.5 4967950 229 99130 49679.5 4967950 -32340 32595 5115.02 511502 -128 127 -2.42 -242 +23 102 10013 99923 0.06906 300.06906 150.06906 15156.97597 0.06906 300.06906 150.06907 15156.97617 0.06906 300.06906 150.06906 15156.97506 2020-01-01 2020-01-02 2020-01-01 00:00:23 2020-01-02 03:45:23 2020-01-01 00:00:23.000 2020-01-02 03:45:23.000 23 99923 49973 5047273 23 99923 49973 5047273 -32546 32389 4552.009900990099 459753 -128 127 -2.762376237623762 -279 230 101 10220 99131 0.69069 297.69069 149.19069 14919.06906 0.69069 297.6907 149.19069 14919.06914 0.69069 297.69069 149.19069 14919.06900 2020-01-01 2020-01-02 2020-01-01 00:03:50 2020-01-02 03:32:11 2020-01-01 00:03:50.000 2020-01-02 03:32:11.000 230 99131 49680.5 4968050 230 99131 49680.5 4968050 -32339 32596 5116.02 511602 -128 123 -3.98 -398 -231 101 10221 99132 0.69369 297.69369 149.19369 14919.36936 0.69369 297.6937 149.19369 14919.36949 0.69369 297.69369 149.19369000000003 14919.36900 2020-01-01 2020-01-02 2020-01-01 00:03:51 2020-01-02 03:32:12 2020-01-01 00:03:51.000 2020-01-02 03:32:12.000 231 99132 49681.5 4968150 231 99132 49681.5 4968150 -32338 32597 5117.02 511702 -127 124 -2.98 -298 -232 101 10222 99133 0.69669 297.69669 149.19669 14919.66966 0.69669 297.6967 149.19669 14919.66964 0.69669 297.69669 149.19669000000002 14919.66900 2020-01-01 2020-01-02 2020-01-01 00:03:52 2020-01-02 03:32:13 2020-01-01 00:03:52.000 2020-01-02 03:32:13.000 232 99133 49682.5 4968250 232 99133 49682.5 4968250 -32337 32598 5118.02 511802 -126 125 -1.98 -198 -233 101 10223 99134 0.69969 297.69969 149.19969 14919.96996 0.69969 297.6997 149.1997 14919.97037 0.69969 297.69969 149.19968999999998 14919.96900 2020-01-01 2020-01-02 2020-01-01 00:03:53 2020-01-02 03:32:14 2020-01-01 00:03:53.000 2020-01-02 03:32:14.000 233 99134 49683.5 4968350 233 99134 49683.5 4968350 -32336 32599 5119.02 511902 -125 126 -0.98 -98 -234 101 10224 99135 0.7027 297.7027 149.2027 14920.27027 0.7027 297.7027 149.2027 14920.27003 0.70270 297.70270 149.2026999999999 14920.27000 2020-01-01 2020-01-02 2020-01-01 00:03:54 2020-01-02 03:32:15 2020-01-01 00:03:54.000 2020-01-02 03:32:15.000 234 99135 49684.5 4968450 234 99135 49684.5 4968450 -32335 32600 5120.02 512002 -124 127 0.02 2 -235 101 10225 99136 0.7057 297.7057 149.2057 14920.57057 0.7057 297.70572 149.2057 14920.57065 0.70570 297.70570 149.20570000000015 14920.57000 2020-01-01 2020-01-02 2020-01-01 00:03:55 2020-01-02 03:32:16 2020-01-01 00:03:55.000 2020-01-02 03:32:16.000 235 99136 49685.5 4968550 235 99136 49685.5 4968550 -32334 32601 5121.02 512102 -128 127 -1.54 -154 -236 101 10226 99137 0.7087 297.7087 149.2087 14920.87087 0.7087 297.7087 149.2087 14920.87095 0.70870 297.70870 149.20869999999996 14920.87000 2020-01-01 2020-01-02 2020-01-01 00:03:56 2020-01-02 03:32:17 2020-01-01 00:03:56.000 2020-01-02 03:32:17.000 236 99137 49686.5 4968650 236 99137 49686.5 4968650 -32333 32602 5122.02 512202 -128 123 -3.1 -310 -237 101 10227 99138 0.71171 297.71171 149.21171 14921.17117 0.71171 297.7117 149.21171 14921.17111 0.71171 297.71171 149.21170999999987 14921.17100 2020-01-01 2020-01-02 2020-01-01 00:03:57 2020-01-02 03:32:18 2020-01-01 00:03:57.000 2020-01-02 03:32:18.000 237 99138 49687.5 4968750 237 99138 49687.5 4968750 -32332 32603 5123.02 512302 -127 124 -2.1 -210 -238 101 10228 99139 0.71471 297.71471 149.21471 14921.47147 0.71471 297.71472 149.21471 14921.47184 0.71471 297.71471 149.21471000000008 14921.47100 2020-01-01 2020-01-02 2020-01-01 00:03:58 2020-01-02 03:32:19 2020-01-01 00:03:58.000 2020-01-02 03:32:19.000 238 99139 49688.5 4968850 238 99139 49688.5 4968850 -32331 32604 5124.02 512402 -126 125 -1.1 -110 -239 101 10229 99140 0.71771 297.71771 149.21771 14921.77177 0.71771 297.7177 149.21771 14921.7715 0.71771 297.71771 149.21771000000007 14921.77100 2020-01-01 2020-01-02 2020-01-01 00:03:59 2020-01-02 03:32:20 2020-01-01 00:03:59.000 2020-01-02 03:32:20.000 239 99140 49689.5 4968950 239 99140 49689.5 4968950 -32330 32605 5125.02 512502 -125 126 -0.1 -10 -24 102 10014 99924 0.07207 300.07207 150.07207 15157.27927 0.07207 300.07208 150.07207 15157.27928 0.07207 300.07207 150.07207000000008 15157.27907 2020-01-01 2020-01-02 2020-01-01 00:00:24 2020-01-02 03:45:24 2020-01-01 00:00:24.000 2020-01-02 03:45:24.000 24 99924 49974 5047374 24 99924 49974 5047374 -32545 32390 4553.009900990099 459854 -128 123 -4.297029702970297 -434 -240 101 10230 99141 0.72072 297.72072 149.22072 14922.07207 0.72072 297.72073 149.22072 14922.07211 0.72072 297.72072 149.22071999999994 14922.07200 2020-01-01 2020-01-02 2020-01-01 00:04:00 2020-01-02 03:32:21 2020-01-01 00:04:00.000 2020-01-02 03:32:21.000 240 99141 49690.5 4969050 240 99141 49690.5 4969050 -32329 32606 5126.02 512602 -124 127 0.9 90 +231 101 10221 99132 0.69369 297.69369 149.19369 14919.36936 0.69369 297.6937 149.19369 14919.36949 0.69369 297.69369 149.19369 14919.36900 2020-01-01 2020-01-02 2020-01-01 00:03:51 2020-01-02 03:32:12 2020-01-01 00:03:51.000 2020-01-02 03:32:12.000 231 99132 49681.5 4968150 231 99132 49681.5 4968150 -32338 32597 5117.02 511702 -127 124 -2.98 -298 +232 101 10222 99133 0.69669 297.69669 149.19669 14919.66966 0.69669 297.6967 149.19669 14919.66964 0.69669 297.69669 149.19669 14919.66900 2020-01-01 2020-01-02 2020-01-01 00:03:52 2020-01-02 03:32:13 2020-01-01 00:03:52.000 2020-01-02 03:32:13.000 232 99133 49682.5 4968250 232 99133 49682.5 4968250 -32337 32598 5118.02 511802 -126 125 -1.98 -198 +233 101 10223 99134 0.69969 297.69969 149.19969 14919.96996 0.69969 297.6997 149.1997 14919.97037 0.69969 297.69969 149.19969 14919.96900 2020-01-01 2020-01-02 2020-01-01 00:03:53 2020-01-02 03:32:14 2020-01-01 00:03:53.000 2020-01-02 03:32:14.000 233 99134 49683.5 4968350 233 99134 49683.5 4968350 -32336 32599 5119.02 511902 -125 126 -0.98 -98 +234 101 10224 99135 0.7027 297.7027 149.2027 14920.27027 0.7027 297.7027 149.2027 14920.27003 0.70270 297.70270 149.2027 14920.27000 2020-01-01 2020-01-02 2020-01-01 00:03:54 2020-01-02 03:32:15 2020-01-01 00:03:54.000 2020-01-02 03:32:15.000 234 99135 49684.5 4968450 234 99135 49684.5 4968450 -32335 32600 5120.02 512002 -124 127 0.02 2 +235 101 10225 99136 0.7057 297.7057 149.2057 14920.57057 0.7057 297.70572 149.2057 14920.57065 0.70570 297.70570 149.2057 14920.57000 2020-01-01 2020-01-02 2020-01-01 00:03:55 2020-01-02 03:32:16 2020-01-01 00:03:55.000 2020-01-02 03:32:16.000 235 99136 49685.5 4968550 235 99136 49685.5 4968550 -32334 32601 5121.02 512102 -128 127 -1.54 -154 +236 101 10226 99137 0.7087 297.7087 149.2087 14920.87087 0.7087 297.7087 149.2087 14920.87095 0.70870 297.70870 149.20870000000002 14920.87000 2020-01-01 2020-01-02 2020-01-01 00:03:56 2020-01-02 03:32:17 2020-01-01 00:03:56.000 2020-01-02 03:32:17.000 236 99137 49686.5 4968650 236 99137 49686.5 4968650 -32333 32602 5122.02 512202 -128 123 -3.1 -310 +237 101 10227 99138 0.71171 297.71171 149.21171 14921.17117 0.71171 297.7117 149.21171 14921.17111 0.71171 297.71171 149.21171 14921.17100 2020-01-01 2020-01-02 2020-01-01 00:03:57 2020-01-02 03:32:18 2020-01-01 00:03:57.000 2020-01-02 03:32:18.000 237 99138 49687.5 4968750 237 99138 49687.5 4968750 -32332 32603 5123.02 512302 -127 124 -2.1 -210 +238 101 10228 99139 0.71471 297.71471 149.21471 14921.47147 0.71471 297.71472 149.21471 14921.47184 0.71471 297.71471 149.21471 14921.47100 2020-01-01 2020-01-02 2020-01-01 00:03:58 2020-01-02 03:32:19 2020-01-01 00:03:58.000 2020-01-02 03:32:19.000 238 99139 49688.5 4968850 238 99139 49688.5 4968850 -32331 32604 5124.02 512402 -126 125 -1.1 -110 +239 101 10229 99140 0.71771 297.71771 149.21771 14921.77177 0.71771 297.7177 149.21771 14921.7715 0.71771 297.71771 149.21771 14921.77100 2020-01-01 2020-01-02 2020-01-01 00:03:59 2020-01-02 03:32:20 2020-01-01 00:03:59.000 2020-01-02 03:32:20.000 239 99140 49689.5 4968950 239 99140 49689.5 4968950 -32330 32605 5125.02 512502 -125 126 -0.1 -10 +24 102 10014 99924 0.07207 300.07207 150.07207 15157.27927 0.07207 300.07208 150.07207 15157.27928 0.07207 300.07207 150.07207 15157.27907 2020-01-01 2020-01-02 2020-01-01 00:00:24 2020-01-02 03:45:24 2020-01-01 00:00:24.000 2020-01-02 03:45:24.000 24 99924 49974 5047374 24 99924 49974 5047374 -32545 32390 4553.009900990099 459854 -128 123 -4.297029702970297 -434 +240 101 10230 99141 0.72072 297.72072 149.22072 14922.07207 0.72072 297.72073 149.22072 14922.07211 0.72072 297.72072 149.22072 14922.07200 2020-01-01 2020-01-02 2020-01-01 00:04:00 2020-01-02 03:32:21 2020-01-01 00:04:00.000 2020-01-02 03:32:21.000 240 99141 49690.5 4969050 240 99141 49690.5 4969050 -32329 32606 5126.02 512602 -124 127 0.9 90 241 101 10231 99142 0.72372 297.72372 149.22372 14922.37237 0.72372 297.72372 149.22372 14922.37243 0.72372 297.72372 149.22372 14922.37200 2020-01-01 2020-01-02 2020-01-01 00:04:01 2020-01-02 03:32:22 2020-01-01 00:04:01.000 2020-01-02 03:32:22.000 241 99142 49691.5 4969150 241 99142 49691.5 4969150 -32328 32607 5127.02 512702 -128 127 -0.66 -66 -242 101 10232 99143 0.72672 297.72672 149.22672 14922.67267 0.72672 297.7267 149.22672 14922.67273 0.72672 297.72672 149.22672000000003 14922.67200 2020-01-01 2020-01-02 2020-01-01 00:04:02 2020-01-02 03:32:23 2020-01-01 00:04:02.000 2020-01-02 03:32:23.000 242 99143 49692.5 4969250 242 99143 49692.5 4969250 -32327 32608 5128.02 512802 -128 123 -2.22 -222 -243 101 10233 99144 0.72972 297.72972 149.22972 14922.97297 0.72972 297.72974 149.22973 14922.97332 0.72972 297.72972 149.22971999999993 14922.97200 2020-01-01 2020-01-02 2020-01-01 00:04:03 2020-01-02 03:32:24 2020-01-01 00:04:03.000 2020-01-02 03:32:24.000 243 99144 49693.5 4969350 243 99144 49693.5 4969350 -32326 32609 5129.02 512902 -127 124 -1.22 -122 -244 101 10234 99145 0.73273 297.73273 149.23273 14923.27327 0.73273 297.73273 149.23272 14923.27297 0.73273 297.73273 149.23272999999995 14923.27300 2020-01-01 2020-01-02 2020-01-01 00:04:04 2020-01-02 03:32:25 2020-01-01 00:04:04.000 2020-01-02 03:32:25.000 244 99145 49694.5 4969450 244 99145 49694.5 4969450 -32325 32610 5130.02 513002 -126 125 -0.22 -22 -245 101 10235 99146 0.73573 297.73573 149.23573 14923.57357 0.73573 297.73575 149.23573 14923.57358 0.73573 297.73573 149.2357300000001 14923.57300 2020-01-01 2020-01-02 2020-01-01 00:04:05 2020-01-02 03:32:26 2020-01-01 00:04:05.000 2020-01-02 03:32:26.000 245 99146 49695.5 4969550 245 99146 49695.5 4969550 -32324 32611 5131.02 513102 -125 126 0.78 78 -246 101 10236 99147 0.73873 297.73873 149.23873 14923.87387 0.73873 297.73874 149.23873 14923.8739 0.73873 297.73873 149.23872999999992 14923.87300 2020-01-01 2020-01-02 2020-01-01 00:04:06 2020-01-02 03:32:27 2020-01-01 00:04:06.000 2020-01-02 03:32:27.000 246 99147 49696.5 4969650 246 99147 49696.5 4969650 -32323 32612 5132.02 513202 -124 127 1.78 178 -247 101 10237 99148 0.74174 297.74174 149.24174 14924.17417 0.74174 297.74173 149.24174 14924.1742 0.74174 297.74174 149.24174 14924.17400 2020-01-01 2020-01-02 2020-01-01 00:04:07 2020-01-02 03:32:28 2020-01-01 00:04:07.000 2020-01-02 03:32:28.000 247 99148 49697.5 4969750 247 99148 49697.5 4969750 -32322 32613 5133.02 513302 -128 127 0.22 22 -248 101 10238 99149 0.74474 297.74474 149.24474 14924.47447 0.74474 297.74475 149.24474 14924.47478 0.74474 297.74474 149.24474000000006 14924.47400 2020-01-01 2020-01-02 2020-01-01 00:04:08 2020-01-02 03:32:29 2020-01-01 00:04:08.000 2020-01-02 03:32:29.000 248 99149 49698.5 4969850 248 99149 49698.5 4969850 -32321 32614 5134.02 513402 -128 127 -1.34 -134 -249 101 10239 99150 0.74774 297.74774 149.24774 14924.77477 0.74774 297.74774 149.24774 14924.77447 0.74774 297.74774 149.24774000000002 14924.77400 2020-01-01 2020-01-02 2020-01-01 00:04:09 2020-01-02 03:32:30 2020-01-01 00:04:09.000 2020-01-02 03:32:30.000 249 99150 49699.5 4969950 249 99150 49699.5 4969950 -32320 32615 5135.02 513502 -128 124 -2.9 -290 -25 102 10015 99925 0.07507 300.07507 150.07507 15157.58258 0.07507 300.07507 150.07507 15157.58241 0.07507 300.07507 150.07507000000004 15157.58207 2020-01-01 2020-01-02 2020-01-01 00:00:25 2020-01-02 03:45:25 2020-01-01 00:00:25.000 2020-01-02 03:45:25.000 25 99925 49975 5047475 25 99925 49975 5047475 -32544 32391 4554.009900990099 459955 -127 124 -3.297029702970297 -333 -250 101 10240 99151 0.75075 297.75075 149.25075 14925.07507 0.75075 297.75076 149.25075 14925.07506 0.75075 297.75075 149.25074999999998 14925.07500 2020-01-01 2020-01-02 2020-01-01 00:04:10 2020-01-02 03:32:31 2020-01-01 00:04:10.000 2020-01-02 03:32:31.000 250 99151 49700.5 4970050 250 99151 49700.5 4970050 -32319 32616 5136.02 513602 -127 125 -1.9 -190 -251 101 10241 99152 0.75375 297.75375 149.25375 14925.37537 0.75375 297.75375 149.25375 14925.37536 0.75375 297.75375 149.25374999999994 14925.37500 2020-01-01 2020-01-02 2020-01-01 00:04:11 2020-01-02 03:32:32 2020-01-01 00:04:11.000 2020-01-02 03:32:32.000 251 99152 49701.5 4970150 251 99152 49701.5 4970150 -32318 32617 5137.02 513702 -126 126 -0.9 -90 -252 101 10242 99153 0.75675 297.75675 149.25675 14925.67567 0.75675 297.75674 149.25675 14925.67567 0.75675 297.75675 149.25675000000015 14925.67500 2020-01-01 2020-01-02 2020-01-01 00:04:12 2020-01-02 03:32:33 2020-01-01 00:04:12.000 2020-01-02 03:32:33.000 252 99153 49702.5 4970250 252 99153 49702.5 4970250 -32317 32618 5138.02 513802 -125 127 0.1 10 -253 101 10243 99154 0.75975 297.75975 149.25975 14925.97597 0.75975 297.75977 149.25976 14925.97625 0.75975 297.75975 149.25974999999997 14925.97500 2020-01-01 2020-01-02 2020-01-01 00:04:13 2020-01-02 03:32:34 2020-01-01 00:04:13.000 2020-01-02 03:32:34.000 253 99154 49703.5 4970350 253 99154 49703.5 4970350 -32316 32619 5139.02 513902 -128 127 -1.46 -146 -254 101 10244 99155 0.76276 297.76276 149.26276 14926.27627 0.76276 297.76276 149.26275 14926.27594 0.76276 297.76276 149.2627599999999 14926.27600 2020-01-01 2020-01-02 2020-01-01 00:04:14 2020-01-02 03:32:35 2020-01-01 00:04:14.000 2020-01-02 03:32:35.000 254 99155 49704.5 4970450 254 99155 49704.5 4970450 -32315 32620 5140.02 514002 -128 127 -3.02 -302 -255 101 10245 99156 0.76576 297.76576 149.26576 14926.57657 0.76576 297.76578 149.26576 14926.57652 0.76576 297.76576 149.2657600000001 14926.57600 2020-01-01 2020-01-02 2020-01-01 00:04:15 2020-01-02 03:32:36 2020-01-01 00:04:15.000 2020-01-02 03:32:36.000 255 99156 49705.5 4970550 255 99156 49705.5 4970550 -32314 32621 5141.02 514102 -128 123 -4.58 -458 -256 101 10246 99157 0.76876 297.76876 149.26876 14926.87687 0.76876 297.76877 149.26876 14926.87683 0.76876 297.76876 149.26876000000007 14926.87600 2020-01-01 2020-01-02 2020-01-01 00:04:16 2020-01-02 03:32:37 2020-01-01 00:04:16.000 2020-01-02 03:32:37.000 256 99157 49706.5 4970650 256 99157 49706.5 4970650 -32313 32622 5142.02 514202 -127 124 -3.58 -358 -257 101 10247 99158 0.77177 297.77177 149.27177 14927.17717 0.77177 297.77176 149.27177 14927.17714 0.77177 297.77177 149.27176999999995 14927.17700 2020-01-01 2020-01-02 2020-01-01 00:04:17 2020-01-02 03:32:38 2020-01-01 00:04:17.000 2020-01-02 03:32:38.000 257 99158 49707.5 4970750 257 99158 49707.5 4970750 -32312 32623 5143.02 514302 -126 125 -2.58 -258 -258 101 10248 99159 0.77477 297.77477 149.27477 14927.47747 0.77477 297.77478 149.27477 14927.47776 0.77477 297.77477 149.27477 14927.47700 2020-01-01 2020-01-02 2020-01-01 00:04:18 2020-01-02 03:32:39 2020-01-01 00:04:18.000 2020-01-02 03:32:39.000 258 99159 49708.5 4970850 258 99159 49708.5 4970850 -32311 32624 5144.02 514402 -125 126 -1.58 -158 -259 101 10249 99160 0.77777 297.77777 149.27777 14927.77777 0.77777 297.77777 149.27777 14927.77742 0.77777 297.77777 149.27777000000003 14927.77700 2020-01-01 2020-01-02 2020-01-01 00:04:19 2020-01-02 03:32:40 2020-01-01 00:04:19.000 2020-01-02 03:32:40.000 259 99160 49709.5 4970950 259 99160 49709.5 4970950 -32310 32625 5145.02 514502 -124 127 -0.58 -58 -26 102 10016 99926 0.07807 300.07807 150.07807 15157.88588 0.07807 300.07806 150.07807 15157.88575 0.07807 300.07807 150.07806999999985 15157.88507 2020-01-01 2020-01-02 2020-01-01 00:00:26 2020-01-02 03:45:26 2020-01-01 00:00:26.000 2020-01-02 03:45:26.000 26 99926 49976 5047576 26 99926 49976 5047576 -32543 32392 4555.009900990099 460056 -126 125 -2.297029702970297 -232 -260 101 10250 99161 0.78078 297.78078 149.28078 14928.07807 0.78078 297.7808 149.28077 14928.07799 0.78078 297.78078 149.2807799999999 14928.07800 2020-01-01 2020-01-02 2020-01-01 00:04:20 2020-01-02 03:32:41 2020-01-01 00:04:20.000 2020-01-02 03:32:41.000 260 99161 49710.5 4971050 260 99161 49710.5 4971050 -32309 32626 5146.02 514602 -128 127 -2.14 -214 -261 101 10251 99162 0.78378 297.78378 149.28378 14928.37837 0.78378 297.78378 149.28378 14928.3783 0.78378 297.78378 149.28377999999992 14928.37800 2020-01-01 2020-01-02 2020-01-01 00:04:21 2020-01-02 03:32:42 2020-01-01 00:04:21.000 2020-01-02 03:32:42.000 261 99162 49711.5 4971150 261 99162 49711.5 4971150 -32308 32627 5147.02 514702 -128 123 -3.7 -370 -262 101 10252 99163 0.78678 297.78678 149.28678 14928.67867 0.78678 297.78677 149.28678 14928.67861 0.78678 297.78678 149.28678000000008 14928.67800 2020-01-01 2020-01-02 2020-01-01 00:04:22 2020-01-02 03:32:43 2020-01-01 00:04:22.000 2020-01-02 03:32:43.000 262 99163 49712.5 4971250 262 99163 49712.5 4971250 -32307 32628 5148.02 514802 -127 124 -2.7 -270 -263 101 10253 99164 0.78978 297.78978 149.28978 14928.97897 0.78978 297.7898 149.28979 14928.97923 0.78978 297.78978 149.28977999999992 14928.97800 2020-01-01 2020-01-02 2020-01-01 00:04:23 2020-01-02 03:32:44 2020-01-01 00:04:23.000 2020-01-02 03:32:44.000 263 99164 49713.5 4971350 263 99164 49713.5 4971350 -32306 32629 5149.02 514902 -126 125 -1.7 -170 -264 101 10254 99165 0.79279 297.79279 149.29279 14929.27927 0.79279 297.7928 149.29278 14929.27888 0.79279 297.79279 149.29279000000002 14929.27900 2020-01-01 2020-01-02 2020-01-01 00:04:24 2020-01-02 03:32:45 2020-01-01 00:04:24.000 2020-01-02 03:32:45.000 264 99165 49714.5 4971450 264 99165 49714.5 4971450 -32305 32630 5150.02 515002 -125 126 -0.7 -70 -265 101 10255 99166 0.79579 297.79579 149.29579 14929.57957 0.79579 297.7958 149.29579 14929.57962 0.79579 297.79579 149.29579000000007 14929.57900 2020-01-01 2020-01-02 2020-01-01 00:04:25 2020-01-02 03:32:46 2020-01-01 00:04:25.000 2020-01-02 03:32:46.000 265 99166 49715.5 4971550 265 99166 49715.5 4971550 -32304 32631 5151.02 515102 -124 127 0.3 30 -266 101 10256 99167 0.79879 297.79879 149.29879 14929.87987 0.79879 297.7988 149.29879 14929.87977 0.79879 297.79879 149.29879000000003 14929.87900 2020-01-01 2020-01-02 2020-01-01 00:04:26 2020-01-02 03:32:47 2020-01-01 00:04:26.000 2020-01-02 03:32:47.000 266 99167 49716.5 4971650 266 99167 49716.5 4971650 -32303 32632 5152.02 515202 -128 127 -1.26 -126 -267 101 10257 99168 0.8018 297.8018 149.3018 14930.18018 0.8018 297.8018 149.3018 14930.18012 0.80180 297.80180 149.3018 14930.18000 2020-01-01 2020-01-02 2020-01-01 00:04:27 2020-01-02 03:32:48 2020-01-01 00:04:27.000 2020-01-02 03:32:48.000 267 99168 49717.5 4971750 267 99168 49717.5 4971750 -32302 32633 5153.02 515302 -128 123 -2.82 -282 -268 101 10258 99169 0.8048 297.8048 149.3048 14930.48048 0.8048 297.8048 149.3048 14930.4807 0.80480 297.80480 149.30479999999994 14930.48000 2020-01-01 2020-01-02 2020-01-01 00:04:28 2020-01-02 03:32:49 2020-01-01 00:04:28.000 2020-01-02 03:32:49.000 268 99169 49718.5 4971850 268 99169 49718.5 4971850 -32301 32634 5154.02 515402 -127 124 -1.82 -182 +242 101 10232 99143 0.72672 297.72672 149.22672 14922.67267 0.72672 297.7267 149.22672 14922.67273 0.72672 297.72672 149.22672 14922.67200 2020-01-01 2020-01-02 2020-01-01 00:04:02 2020-01-02 03:32:23 2020-01-01 00:04:02.000 2020-01-02 03:32:23.000 242 99143 49692.5 4969250 242 99143 49692.5 4969250 -32327 32608 5128.02 512802 -128 123 -2.22 -222 +243 101 10233 99144 0.72972 297.72972 149.22972 14922.97297 0.72972 297.72974 149.22973 14922.97332 0.72972 297.72972 149.22972 14922.97200 2020-01-01 2020-01-02 2020-01-01 00:04:03 2020-01-02 03:32:24 2020-01-01 00:04:03.000 2020-01-02 03:32:24.000 243 99144 49693.5 4969350 243 99144 49693.5 4969350 -32326 32609 5129.02 512902 -127 124 -1.22 -122 +244 101 10234 99145 0.73273 297.73273 149.23273 14923.27327 0.73273 297.73273 149.23272 14923.27297 0.73273 297.73273 149.23273 14923.27300 2020-01-01 2020-01-02 2020-01-01 00:04:04 2020-01-02 03:32:25 2020-01-01 00:04:04.000 2020-01-02 03:32:25.000 244 99145 49694.5 4969450 244 99145 49694.5 4969450 -32325 32610 5130.02 513002 -126 125 -0.22 -22 +245 101 10235 99146 0.73573 297.73573 149.23573 14923.57357 0.73573 297.73575 149.23573 14923.57358 0.73573 297.73573 149.23573 14923.57300 2020-01-01 2020-01-02 2020-01-01 00:04:05 2020-01-02 03:32:26 2020-01-01 00:04:05.000 2020-01-02 03:32:26.000 245 99146 49695.5 4969550 245 99146 49695.5 4969550 -32324 32611 5131.02 513102 -125 126 0.78 78 +246 101 10236 99147 0.73873 297.73873 149.23873 14923.87387 0.73873 297.73874 149.23873 14923.8739 0.73873 297.73873 149.23873 14923.87300 2020-01-01 2020-01-02 2020-01-01 00:04:06 2020-01-02 03:32:27 2020-01-01 00:04:06.000 2020-01-02 03:32:27.000 246 99147 49696.5 4969650 246 99147 49696.5 4969650 -32323 32612 5132.02 513202 -124 127 1.78 178 +247 101 10237 99148 0.74174 297.74174 149.24174 14924.17417 0.74174 297.74173 149.24174 14924.1742 0.74174 297.74174 149.24174000000002 14924.17400 2020-01-01 2020-01-02 2020-01-01 00:04:07 2020-01-02 03:32:28 2020-01-01 00:04:07.000 2020-01-02 03:32:28.000 247 99148 49697.5 4969750 247 99148 49697.5 4969750 -32322 32613 5133.02 513302 -128 127 0.22 22 +248 101 10238 99149 0.74474 297.74474 149.24474 14924.47447 0.74474 297.74475 149.24474 14924.47478 0.74474 297.74474 149.24474 14924.47400 2020-01-01 2020-01-02 2020-01-01 00:04:08 2020-01-02 03:32:29 2020-01-01 00:04:08.000 2020-01-02 03:32:29.000 248 99149 49698.5 4969850 248 99149 49698.5 4969850 -32321 32614 5134.02 513402 -128 127 -1.34 -134 +249 101 10239 99150 0.74774 297.74774 149.24774 14924.77477 0.74774 297.74774 149.24774 14924.77447 0.74774 297.74774 149.24774 14924.77400 2020-01-01 2020-01-02 2020-01-01 00:04:09 2020-01-02 03:32:30 2020-01-01 00:04:09.000 2020-01-02 03:32:30.000 249 99150 49699.5 4969950 249 99150 49699.5 4969950 -32320 32615 5135.02 513502 -128 124 -2.9 -290 +25 102 10015 99925 0.07507 300.07507 150.07507 15157.58258 0.07507 300.07507 150.07507 15157.58241 0.07507 300.07507 150.07507 15157.58207 2020-01-01 2020-01-02 2020-01-01 00:00:25 2020-01-02 03:45:25 2020-01-01 00:00:25.000 2020-01-02 03:45:25.000 25 99925 49975 5047475 25 99925 49975 5047475 -32544 32391 4554.009900990099 459955 -127 124 -3.297029702970297 -333 +250 101 10240 99151 0.75075 297.75075 149.25075 14925.07507 0.75075 297.75076 149.25075 14925.07506 0.75075 297.75075 149.25075 14925.07500 2020-01-01 2020-01-02 2020-01-01 00:04:10 2020-01-02 03:32:31 2020-01-01 00:04:10.000 2020-01-02 03:32:31.000 250 99151 49700.5 4970050 250 99151 49700.5 4970050 -32319 32616 5136.02 513602 -127 125 -1.9 -190 +251 101 10241 99152 0.75375 297.75375 149.25375 14925.37537 0.75375 297.75375 149.25375 14925.37536 0.75375 297.75375 149.25375 14925.37500 2020-01-01 2020-01-02 2020-01-01 00:04:11 2020-01-02 03:32:32 2020-01-01 00:04:11.000 2020-01-02 03:32:32.000 251 99152 49701.5 4970150 251 99152 49701.5 4970150 -32318 32617 5137.02 513702 -126 126 -0.9 -90 +252 101 10242 99153 0.75675 297.75675 149.25675 14925.67567 0.75675 297.75674 149.25675 14925.67567 0.75675 297.75675 149.25674999999998 14925.67500 2020-01-01 2020-01-02 2020-01-01 00:04:12 2020-01-02 03:32:33 2020-01-01 00:04:12.000 2020-01-02 03:32:33.000 252 99153 49702.5 4970250 252 99153 49702.5 4970250 -32317 32618 5138.02 513802 -125 127 0.1 10 +253 101 10243 99154 0.75975 297.75975 149.25975 14925.97597 0.75975 297.75977 149.25976 14925.97625 0.75975 297.75975 149.25975 14925.97500 2020-01-01 2020-01-02 2020-01-01 00:04:13 2020-01-02 03:32:34 2020-01-01 00:04:13.000 2020-01-02 03:32:34.000 253 99154 49703.5 4970350 253 99154 49703.5 4970350 -32316 32619 5139.02 513902 -128 127 -1.46 -146 +254 101 10244 99155 0.76276 297.76276 149.26276 14926.27627 0.76276 297.76276 149.26275 14926.27594 0.76276 297.76276 149.26276 14926.27600 2020-01-01 2020-01-02 2020-01-01 00:04:14 2020-01-02 03:32:35 2020-01-01 00:04:14.000 2020-01-02 03:32:35.000 254 99155 49704.5 4970450 254 99155 49704.5 4970450 -32315 32620 5140.02 514002 -128 127 -3.02 -302 +255 101 10245 99156 0.76576 297.76576 149.26576 14926.57657 0.76576 297.76578 149.26576 14926.57652 0.76576 297.76576 149.26576 14926.57600 2020-01-01 2020-01-02 2020-01-01 00:04:15 2020-01-02 03:32:36 2020-01-01 00:04:15.000 2020-01-02 03:32:36.000 255 99156 49705.5 4970550 255 99156 49705.5 4970550 -32314 32621 5141.02 514102 -128 123 -4.58 -458 +256 101 10246 99157 0.76876 297.76876 149.26876 14926.87687 0.76876 297.76877 149.26876 14926.87683 0.76876 297.76876 149.26876000000001 14926.87600 2020-01-01 2020-01-02 2020-01-01 00:04:16 2020-01-02 03:32:37 2020-01-01 00:04:16.000 2020-01-02 03:32:37.000 256 99157 49706.5 4970650 256 99157 49706.5 4970650 -32313 32622 5142.02 514202 -127 124 -3.58 -358 +257 101 10247 99158 0.77177 297.77177 149.27177 14927.17717 0.77177 297.77176 149.27177 14927.17714 0.77177 297.77177 149.27177 14927.17700 2020-01-01 2020-01-02 2020-01-01 00:04:17 2020-01-02 03:32:38 2020-01-01 00:04:17.000 2020-01-02 03:32:38.000 257 99158 49707.5 4970750 257 99158 49707.5 4970750 -32312 32623 5143.02 514302 -126 125 -2.58 -258 +258 101 10248 99159 0.77477 297.77477 149.27477 14927.47747 0.77477 297.77478 149.27477 14927.47776 0.77477 297.77477 149.27477000000002 14927.47700 2020-01-01 2020-01-02 2020-01-01 00:04:18 2020-01-02 03:32:39 2020-01-01 00:04:18.000 2020-01-02 03:32:39.000 258 99159 49708.5 4970850 258 99159 49708.5 4970850 -32311 32624 5144.02 514402 -125 126 -1.58 -158 +259 101 10249 99160 0.77777 297.77777 149.27777 14927.77777 0.77777 297.77777 149.27777 14927.77742 0.77777 297.77777 149.27777 14927.77700 2020-01-01 2020-01-02 2020-01-01 00:04:19 2020-01-02 03:32:40 2020-01-01 00:04:19.000 2020-01-02 03:32:40.000 259 99160 49709.5 4970950 259 99160 49709.5 4970950 -32310 32625 5145.02 514502 -124 127 -0.58 -58 +26 102 10016 99926 0.07807 300.07807 150.07807 15157.88588 0.07807 300.07806 150.07807 15157.88575 0.07807 300.07807 150.07807 15157.88507 2020-01-01 2020-01-02 2020-01-01 00:00:26 2020-01-02 03:45:26 2020-01-01 00:00:26.000 2020-01-02 03:45:26.000 26 99926 49976 5047576 26 99926 49976 5047576 -32543 32392 4555.009900990099 460056 -126 125 -2.297029702970297 -232 +260 101 10250 99161 0.78078 297.78078 149.28078 14928.07807 0.78078 297.7808 149.28077 14928.07799 0.78078 297.78078 149.28078 14928.07800 2020-01-01 2020-01-02 2020-01-01 00:04:20 2020-01-02 03:32:41 2020-01-01 00:04:20.000 2020-01-02 03:32:41.000 260 99161 49710.5 4971050 260 99161 49710.5 4971050 -32309 32626 5146.02 514602 -128 127 -2.14 -214 +261 101 10251 99162 0.78378 297.78378 149.28378 14928.37837 0.78378 297.78378 149.28378 14928.3783 0.78378 297.78378 149.28378 14928.37800 2020-01-01 2020-01-02 2020-01-01 00:04:21 2020-01-02 03:32:42 2020-01-01 00:04:21.000 2020-01-02 03:32:42.000 261 99162 49711.5 4971150 261 99162 49711.5 4971150 -32308 32627 5147.02 514702 -128 123 -3.7 -370 +262 101 10252 99163 0.78678 297.78678 149.28678 14928.67867 0.78678 297.78677 149.28678 14928.67861 0.78678 297.78678 149.28678 14928.67800 2020-01-01 2020-01-02 2020-01-01 00:04:22 2020-01-02 03:32:43 2020-01-01 00:04:22.000 2020-01-02 03:32:43.000 262 99163 49712.5 4971250 262 99163 49712.5 4971250 -32307 32628 5148.02 514802 -127 124 -2.7 -270 +263 101 10253 99164 0.78978 297.78978 149.28978 14928.97897 0.78978 297.7898 149.28979 14928.97923 0.78978 297.78978 149.28977999999998 14928.97800 2020-01-01 2020-01-02 2020-01-01 00:04:23 2020-01-02 03:32:44 2020-01-01 00:04:23.000 2020-01-02 03:32:44.000 263 99164 49713.5 4971350 263 99164 49713.5 4971350 -32306 32629 5149.02 514902 -126 125 -1.7 -170 +264 101 10254 99165 0.79279 297.79279 149.29279 14929.27927 0.79279 297.7928 149.29278 14929.27888 0.79279 297.79279 149.29279 14929.27900 2020-01-01 2020-01-02 2020-01-01 00:04:24 2020-01-02 03:32:45 2020-01-01 00:04:24.000 2020-01-02 03:32:45.000 264 99165 49714.5 4971450 264 99165 49714.5 4971450 -32305 32630 5150.02 515002 -125 126 -0.7 -70 +265 101 10255 99166 0.79579 297.79579 149.29579 14929.57957 0.79579 297.7958 149.29579 14929.57962 0.79579 297.79579 149.29579 14929.57900 2020-01-01 2020-01-02 2020-01-01 00:04:25 2020-01-02 03:32:46 2020-01-01 00:04:25.000 2020-01-02 03:32:46.000 265 99166 49715.5 4971550 265 99166 49715.5 4971550 -32304 32631 5151.02 515102 -124 127 0.3 30 +266 101 10256 99167 0.79879 297.79879 149.29879 14929.87987 0.79879 297.7988 149.29879 14929.87977 0.79879 297.79879 149.29879 14929.87900 2020-01-01 2020-01-02 2020-01-01 00:04:26 2020-01-02 03:32:47 2020-01-01 00:04:26.000 2020-01-02 03:32:47.000 266 99167 49716.5 4971650 266 99167 49716.5 4971650 -32303 32632 5152.02 515202 -128 127 -1.26 -126 +267 101 10257 99168 0.8018 297.8018 149.3018 14930.18018 0.8018 297.8018 149.3018 14930.18012 0.80180 297.80180 149.30180000000001 14930.18000 2020-01-01 2020-01-02 2020-01-01 00:04:27 2020-01-02 03:32:48 2020-01-01 00:04:27.000 2020-01-02 03:32:48.000 267 99168 49717.5 4971750 267 99168 49717.5 4971750 -32302 32633 5153.02 515302 -128 123 -2.82 -282 +268 101 10258 99169 0.8048 297.8048 149.3048 14930.48048 0.8048 297.8048 149.3048 14930.4807 0.80480 297.80480 149.3048 14930.48000 2020-01-01 2020-01-02 2020-01-01 00:04:28 2020-01-02 03:32:49 2020-01-01 00:04:28.000 2020-01-02 03:32:49.000 268 99169 49718.5 4971850 268 99169 49718.5 4971850 -32301 32634 5154.02 515402 -127 124 -1.82 -182 269 101 10259 99170 0.8078 297.8078 149.3078 14930.78078 0.8078 297.8078 149.3078 14930.78035 0.80780 297.80780 149.30780000000001 14930.78000 2020-01-01 2020-01-02 2020-01-01 00:04:29 2020-01-02 03:32:50 2020-01-01 00:04:29.000 2020-01-02 03:32:50.000 269 99170 49719.5 4971950 269 99170 49719.5 4971950 -32300 32635 5155.02 515502 -126 125 -0.82 -82 -27 102 10017 99927 0.08108 300.08108 150.08108 15158.18918 0.08108 300.0811 150.08108 15158.18936 0.08108 300.08108 150.08107999999996 15158.18908 2020-01-01 2020-01-02 2020-01-01 00:00:27 2020-01-02 03:45:27 2020-01-01 00:00:27.000 2020-01-02 03:45:27.000 27 99927 49977 5047677 27 99927 49977 5047677 -32542 32393 4556.009900990099 460157 -125 126 -1.297029702970297 -131 -270 101 10260 99171 0.81081 297.81081 149.31081 14931.08108 0.81081 297.81082 149.31081 14931.08109 0.81081 297.81081 149.31081000000023 14931.08100 2020-01-01 2020-01-02 2020-01-01 00:04:30 2020-01-02 03:32:51 2020-01-01 00:04:30.000 2020-01-02 03:32:51.000 270 99171 49720.5 4972050 270 99171 49720.5 4972050 -32299 32636 5156.02 515602 -125 126 0.18 18 -271 101 10261 99172 0.81381 297.81381 149.31381 14931.38138 0.81381 297.8138 149.31381 14931.38124 0.81381 297.81381 149.3138099999998 14931.38100 2020-01-01 2020-01-02 2020-01-01 00:04:31 2020-01-02 03:32:52 2020-01-01 00:04:31.000 2020-01-02 03:32:52.000 271 99172 49721.5 4972150 271 99172 49721.5 4972150 -32298 32637 5157.02 515702 -124 127 1.18 118 -272 101 10262 99173 0.81681 297.81681 149.31681 14931.68168 0.81681 297.8168 149.31681 14931.68159 0.81681 297.81681 149.31681000000015 14931.68100 2020-01-01 2020-01-02 2020-01-01 00:04:32 2020-01-02 03:32:53 2020-01-01 00:04:32.000 2020-01-02 03:32:53.000 272 99173 49722.5 4972250 272 99173 49722.5 4972250 -32297 32638 5158.02 515802 -128 127 -0.38 -38 -273 101 10263 99174 0.81981 297.81981 149.31981 14931.98198 0.81981 297.81982 149.31982 14931.98217 0.81981 297.81981 149.31981000000025 14931.98100 2020-01-01 2020-01-02 2020-01-01 00:04:33 2020-01-02 03:32:54 2020-01-01 00:04:33.000 2020-01-02 03:32:54.000 273 99174 49723.5 4972350 273 99174 49723.5 4972350 -32296 32639 5159.02 515902 -128 127 -1.94 -194 -274 101 10264 99175 0.82282 297.82282 149.32282 14932.28228 0.82282 297.8228 149.32282 14932.28247 0.82282 297.82282 149.3228199999999 14932.28200 2020-01-01 2020-01-02 2020-01-01 00:04:34 2020-01-02 03:32:55 2020-01-01 00:04:34.000 2020-01-02 03:32:55.000 274 99175 49724.5 4972450 274 99175 49724.5 4972450 -32295 32640 5160.02 516002 -128 124 -3.5 -350 -275 101 10265 99176 0.82582 297.82582 149.32582 14932.58258 0.82582 297.82584 149.32582 14932.58256 0.82582 297.82582 149.32582000000002 14932.58200 2020-01-01 2020-01-02 2020-01-01 00:04:35 2020-01-02 03:32:56 2020-01-01 00:04:35.000 2020-01-02 03:32:56.000 275 99176 49725.5 4972550 275 99176 49725.5 4972550 -32294 32641 5161.02 516102 -127 125 -2.5 -250 -276 101 10266 99177 0.82882 297.82882 149.32882 14932.88288 0.82882 297.82883 149.32882 14932.88275 0.82882 297.82882 149.32882000000015 14932.88200 2020-01-01 2020-01-02 2020-01-01 00:04:36 2020-01-02 03:32:57 2020-01-01 00:04:36.000 2020-01-02 03:32:57.000 276 99177 49726.5 4972650 276 99177 49726.5 4972650 -32293 32642 5162.02 516202 -126 126 -1.5 -150 -277 101 10267 99178 0.83183 297.83183 149.33183 14933.18318 0.83183 297.83182 149.33183 14933.18305 0.83183 297.83183 149.3318299999998 14933.18300 2020-01-01 2020-01-02 2020-01-01 00:04:37 2020-01-02 03:32:58 2020-01-01 00:04:37.000 2020-01-02 03:32:58.000 277 99178 49727.5 4972750 277 99178 49727.5 4972750 -32292 32643 5163.02 516302 -125 127 -0.5 -50 -278 101 10268 99179 0.83483 297.83483 149.33483 14933.48348 0.83483 297.83484 149.33483 14933.48364 0.83483 297.83483 149.3348299999998 14933.48300 2020-01-01 2020-01-02 2020-01-01 00:04:38 2020-01-02 03:32:59 2020-01-01 00:04:38.000 2020-01-02 03:32:59.000 278 99179 49728.5 4972850 278 99179 49728.5 4972850 -32291 32644 5164.02 516402 -128 127 -2.06 -206 -279 101 10269 99180 0.83783 297.83783 149.33783 14933.78378 0.83783 297.83783 149.33783 14933.78394 0.83783 297.83783 149.33783000000025 14933.78300 2020-01-01 2020-01-02 2020-01-01 00:04:39 2020-01-02 03:33:00 2020-01-01 00:04:39.000 2020-01-02 03:33:00.000 279 99180 49729.5 4972950 279 99180 49729.5 4972950 -32290 32645 5165.02 516502 -128 127 -3.62 -362 -28 102 10018 99928 0.08408 300.08408 150.08408 15158.49249 0.08408 300.08408 150.08408 15158.49265 0.08408 300.08408 150.08408000000003 15158.49208 2020-01-01 2020-01-02 2020-01-01 00:00:28 2020-01-02 03:45:28 2020-01-01 00:00:28.000 2020-01-02 03:45:28.000 28 99928 49978 5047778 28 99928 49978 5047778 -32541 32394 4557.009900990099 460258 -124 127 -0.297029702970297 -30 -280 101 10270 99181 0.84084 297.84084 149.34084 14934.08408 0.84084 297.84085 149.34084 14934.08403 0.84084 297.84084 149.34084000000016 14934.08400 2020-01-01 2020-01-02 2020-01-01 00:04:40 2020-01-02 03:33:01 2020-01-01 00:04:40.000 2020-01-02 03:33:01.000 280 99181 49730.5 4973050 280 99181 49730.5 4973050 -32289 32646 5166.02 516602 -128 123 -5.18 -518 -281 101 10271 99182 0.84384 297.84384 149.34384 14934.38438 0.84384 297.84384 149.34384 14934.38421 0.84384 297.84384 149.3438399999997 14934.38400 2020-01-01 2020-01-02 2020-01-01 00:04:41 2020-01-02 03:33:02 2020-01-01 00:04:41.000 2020-01-02 03:33:02.000 281 99182 49731.5 4973150 281 99182 49731.5 4973150 -32288 32647 5167.02 516702 -127 124 -4.18 -418 -282 101 10272 99183 0.84684 297.84684 149.34684 14934.68468 0.84684 297.84683 149.34684 14934.68453 0.84684 297.84684 149.34684000000013 14934.68400 2020-01-01 2020-01-02 2020-01-01 00:04:42 2020-01-02 03:33:03 2020-01-01 00:04:42.000 2020-01-02 03:33:03.000 282 99183 49732.5 4973250 282 99183 49732.5 4973250 -32287 32648 5168.02 516802 -126 125 -3.18 -318 -283 101 10273 99184 0.84984 297.84984 149.34984 14934.98498 0.84984 297.84985 149.34985 14934.98526 0.84984 297.84984 149.34984000000014 14934.98400 2020-01-01 2020-01-02 2020-01-01 00:04:43 2020-01-02 03:33:04 2020-01-01 00:04:43.000 2020-01-02 03:33:04.000 283 99184 49733.5 4973350 283 99184 49733.5 4973350 -32286 32649 5169.02 516902 -125 126 -2.18 -218 -284 101 10274 99185 0.85285 297.85285 149.35285 14935.28528 0.85285 297.85284 149.35285 14935.28542 0.85285 297.85285 149.3528499999999 14935.28500 2020-01-01 2020-01-02 2020-01-01 00:04:44 2020-01-02 03:33:05 2020-01-01 00:04:44.000 2020-01-02 03:33:05.000 284 99185 49734.5 4973450 284 99185 49734.5 4973450 -32285 32650 5170.02 517002 -124 127 -1.18 -118 -285 101 10275 99186 0.85585 297.85585 149.35585 14935.58558 0.85585 297.85587 149.35585 14935.5855 0.85585 297.85585 149.35584999999995 14935.58500 2020-01-01 2020-01-02 2020-01-01 00:04:45 2020-01-02 03:33:06 2020-01-01 00:04:45.000 2020-01-02 03:33:06.000 285 99186 49735.5 4973550 285 99186 49735.5 4973550 -32284 32651 5171.02 517102 -128 127 -2.74 -274 -286 101 10276 99187 0.85885 297.85885 149.35885 14935.88588 0.85885 297.85886 149.35885 14935.88568 0.85885 297.85885 149.35885000000005 14935.88500 2020-01-01 2020-01-02 2020-01-01 00:04:46 2020-01-02 03:33:07 2020-01-01 00:04:46.000 2020-01-02 03:33:07.000 286 99187 49736.5 4973650 286 99187 49736.5 4973650 -32283 32652 5172.02 517202 -128 123 -4.3 -430 -287 101 10277 99188 0.86186 297.86186 149.36186 14936.18618 0.86186 297.86185 149.36186 14936.186 0.86186 297.86186 149.36186000000026 14936.18600 2020-01-01 2020-01-02 2020-01-01 00:04:47 2020-01-02 03:33:08 2020-01-01 00:04:47.000 2020-01-02 03:33:08.000 287 99188 49737.5 4973750 287 99188 49737.5 4973750 -32282 32653 5173.02 517302 -127 124 -3.3 -330 -288 101 10278 99189 0.86486 297.86486 149.36486 14936.48648 0.86486 297.86487 149.36486 14936.48673 0.86486 297.86486 149.36485999999982 14936.48600 2020-01-01 2020-01-02 2020-01-01 00:04:48 2020-01-02 03:33:09 2020-01-01 00:04:48.000 2020-01-02 03:33:09.000 288 99189 49738.5 4973850 288 99189 49738.5 4973850 -32281 32654 5174.02 517402 -126 125 -2.3 -230 -289 101 10279 99190 0.86786 297.86786 149.36786 14936.78678 0.86786 297.86786 149.36786 14936.78688 0.86786 297.86786 149.36786000000018 14936.78600 2020-01-01 2020-01-02 2020-01-01 00:04:49 2020-01-02 03:33:10 2020-01-01 00:04:49.000 2020-01-02 03:33:10.000 289 99190 49739.5 4973950 289 99190 49739.5 4973950 -32280 32655 5175.02 517502 -125 126 -1.3 -130 -29 102 10019 99929 0.08708 300.08708 150.08708 15158.79579 0.08708 300.0871 150.08708 15158.79576 0.08708 300.08708 150.08707999999987 15158.79508 2020-01-01 2020-01-02 2020-01-01 00:00:29 2020-01-02 03:45:29 2020-01-01 00:00:29.000 2020-01-02 03:45:29.000 29 99929 49979 5047879 29 99929 49979 5047879 -32540 32395 4558.009900990099 460359 -128 127 -1.8316831683168318 -185 -290 101 10280 99191 0.87087 297.87087 149.37087 14937.08708 0.87087 297.87088 149.37087 14937.087 0.87087 297.87087 149.37087000000017 14937.08700 2020-01-01 2020-01-02 2020-01-01 00:04:50 2020-01-02 03:33:11 2020-01-01 00:04:50.000 2020-01-02 03:33:11.000 290 99191 49740.5 4974050 290 99191 49740.5 4974050 -32279 32656 5176.02 517602 -124 127 -0.3 -30 -291 101 10281 99192 0.87387 297.87387 149.37387 14937.38738 0.87387 297.87387 149.37387 14937.38716 0.87387 297.87387 149.37386999999993 14937.38700 2020-01-01 2020-01-02 2020-01-01 00:04:51 2020-01-02 03:33:12 2020-01-01 00:04:51.000 2020-01-02 03:33:12.000 291 99192 49741.5 4974150 291 99192 49741.5 4974150 -32278 32657 5177.02 517702 -128 127 -1.86 -186 -292 101 10282 99193 0.87687 297.87687 149.37687 14937.68768 0.87687 297.8769 149.37687 14937.68789 0.87687 297.87687 149.37687000000003 14937.68700 2020-01-01 2020-01-02 2020-01-01 00:04:52 2020-01-02 03:33:13 2020-01-01 00:04:52.000 2020-01-02 03:33:13.000 292 99193 49742.5 4974250 292 99193 49742.5 4974250 -32277 32658 5178.02 517802 -128 123 -3.42 -342 -293 101 10283 99194 0.87987 297.87987 149.37987 14937.98798 0.87987 297.87988 149.37988 14937.9882 0.87987 297.87987 149.37987000000012 14937.98700 2020-01-01 2020-01-02 2020-01-01 00:04:53 2020-01-02 03:33:14 2020-01-01 00:04:53.000 2020-01-02 03:33:14.000 293 99194 49743.5 4974350 293 99194 49743.5 4974350 -32276 32659 5179.02 517902 -127 124 -2.42 -242 -294 101 10284 99195 0.88288 297.88288 149.38288 14938.28828 0.88288 297.88287 149.38288 14938.28835 0.88288 297.88288 149.38287999999983 14938.28800 2020-01-01 2020-01-02 2020-01-01 00:04:54 2020-01-02 03:33:15 2020-01-01 00:04:54.000 2020-01-02 03:33:15.000 294 99195 49744.5 4974450 294 99195 49744.5 4974450 -32275 32660 5180.02 518002 -126 125 -1.42 -142 -295 101 10285 99196 0.88588 297.88588 149.38588 14938.58858 0.88588 297.8859 149.38588 14938.58847 0.88588 297.88588 149.38587999999984 14938.58800 2020-01-01 2020-01-02 2020-01-01 00:04:55 2020-01-02 03:33:16 2020-01-01 00:04:55.000 2020-01-02 03:33:16.000 295 99196 49745.5 4974550 295 99196 49745.5 4974550 -32274 32661 5181.02 518102 -125 126 -0.42 -42 -296 101 10286 99197 0.88888 297.88888 149.38888 14938.88888 0.88888 297.8889 149.38888 14938.88863 0.88888 297.88888 149.38888000000028 14938.88800 2020-01-01 2020-01-02 2020-01-01 00:04:56 2020-01-02 03:33:17 2020-01-01 00:04:56.000 2020-01-02 03:33:17.000 296 99197 49746.5 4974650 296 99197 49746.5 4974650 -32273 32662 5182.02 518202 -124 127 0.58 58 -297 101 10287 99198 0.89189 297.89189 149.39189 14939.18918 0.89189 297.8919 149.39189 14939.18936 0.89189 297.89189 149.39189000000016 14939.18900 2020-01-01 2020-01-02 2020-01-01 00:04:57 2020-01-02 03:33:18 2020-01-01 00:04:57.000 2020-01-02 03:33:18.000 297 99198 49747.5 4974750 297 99198 49747.5 4974750 -32272 32663 5183.02 518302 -128 127 -0.98 -98 -298 101 10288 99199 0.89489 297.89489 149.39489 14939.48948 0.89489 297.8949 149.39489 14939.48967 0.89489 297.89489 149.39488999999972 14939.48900 2020-01-01 2020-01-02 2020-01-01 00:04:58 2020-01-02 03:33:19 2020-01-01 00:04:58.000 2020-01-02 03:33:19.000 298 99199 49748.5 4974850 298 99199 49748.5 4974850 -32271 32664 5184.02 518402 -128 127 -2.54 -254 -299 101 10289 99200 0.89789 297.89789 149.39789 14939.78978 0.89789 297.8979 149.39789 14939.78986 0.89789 297.89789 149.39789000000016 14939.78900 2020-01-01 2020-01-02 2020-01-01 00:04:59 2020-01-02 03:33:20 2020-01-01 00:04:59.000 2020-01-02 03:33:20.000 299 99200 49749.5 4974950 299 99200 49749.5 4974950 -32270 32665 5185.02 518502 -128 124 -4.1 -410 -3 102 1002 9993 0.009 300.009 150.009 15150.9099 0.009 300.009 150.009 15150.90958 0.00900 300.00900 150.00900000000001 15150.90900 2020-01-01 2020-01-02 2020-01-01 00:00:03 2020-01-02 03:45:03 2020-01-01 00:00:03.000 2020-01-02 03:45:03.000 3 99903 49953 5045253 3 99903 49953 5045253 -32566 32369 4532.009900990099 457733 -124 127 0.04950495049504951 5 -30 102 10020 99930 0.09009 300.09009 150.09009 15159.09909 0.09009 300.0901 150.09008 15159.09894 0.09009 300.09009 150.0900899999998 15159.09909 2020-01-01 2020-01-02 2020-01-01 00:00:30 2020-01-02 03:45:30 2020-01-01 00:00:30.000 2020-01-02 03:45:30.000 30 99930 49980 5047980 30 99930 49980 5047980 -32539 32396 4559.009900990099 460460 -128 123 -3.366336633663366 -340 -300 101 10290 99201 0.9009 297.9009 149.4009 14940.09009 0.9009 297.9009 149.40089 14940.08995 0.90090 297.90090 149.40090000000006 14940.09000 2020-01-01 2020-01-02 2020-01-01 00:05:00 2020-01-02 03:33:21 2020-01-01 00:05:00.000 2020-01-02 03:33:21.000 300 99201 49750.5 4975050 300 99201 49750.5 4975050 -32269 32666 5186.02 518602 -127 125 -3.1 -310 -301 101 10291 99202 0.9039 297.9039 149.4039 14940.39039 0.9039 297.9039 149.4039 14940.39009 0.90390 297.90390 149.40389999999988 14940.39000 2020-01-01 2020-01-02 2020-01-01 00:05:01 2020-01-02 03:33:22 2020-01-01 00:05:01.000 2020-01-02 03:33:22.000 301 99202 49751.5 4975150 301 99202 49751.5 4975150 -32268 32667 5187.02 518702 -126 126 -2.1 -210 -302 101 10292 99203 0.9069 297.9069 149.4069 14940.69069 0.9069 297.90692 149.4069 14940.69083 0.90690 297.90690 149.40689999999998 14940.69000 2020-01-01 2020-01-02 2020-01-01 00:05:02 2020-01-02 03:33:23 2020-01-01 00:05:02.000 2020-01-02 03:33:23.000 302 99203 49752.5 4975250 302 99203 49752.5 4975250 -32267 32668 5188.02 518802 -125 127 -1.1 -110 -303 101 10293 99204 0.9099 297.9099 149.4099 14940.99099 0.9099 297.9099 149.40991 14940.99114 0.90990 297.90990 149.40990000000008 14940.99000 2020-01-01 2020-01-02 2020-01-01 00:05:03 2020-01-02 03:33:24 2020-01-01 00:05:03.000 2020-01-02 03:33:24.000 303 99204 49753.5 4975350 303 99204 49753.5 4975350 -32266 32669 5189.02 518902 -128 127 -2.66 -266 -304 101 10294 99205 0.91291 297.91291 149.41291 14941.29129 0.91291 297.9129 149.41291 14941.29133 0.91291 297.91291 149.41290999999973 14941.29100 2020-01-01 2020-01-02 2020-01-01 00:05:04 2020-01-02 03:33:25 2020-01-01 00:05:04.000 2020-01-02 03:33:25.000 304 99205 49754.5 4975450 304 99205 49754.5 4975450 -32265 32670 5190.02 519002 -128 127 -4.22 -422 -305 101 10295 99206 0.91591 297.91591 149.41591 14941.59159 0.91591 297.91592 149.41591 14941.59141 0.91591 297.91591 149.41590999999983 14941.59100 2020-01-01 2020-01-02 2020-01-01 00:05:05 2020-01-02 03:33:26 2020-01-01 00:05:05.000 2020-01-02 03:33:26.000 305 99206 49755.5 4975550 305 99206 49755.5 4975550 -32264 32671 5191.02 519102 -128 123 -5.78 -578 -306 101 10296 99207 0.91891 297.91891 149.41891 14941.89189 0.91891 297.9189 149.41891 14941.89172 0.91891 297.91891 149.41891000000018 14941.89100 2020-01-01 2020-01-02 2020-01-01 00:05:06 2020-01-02 03:33:27 2020-01-01 00:05:06.000 2020-01-02 03:33:27.000 306 99207 49756.5 4975650 306 99207 49756.5 4975650 -32263 32672 5192.02 519202 -127 124 -4.78 -478 -307 101 10297 99208 0.92192 297.92192 149.42192 14942.19219 0.92192 297.92194 149.42192 14942.1923 0.92192 297.92192 149.42192000000009 14942.19200 2020-01-01 2020-01-02 2020-01-01 00:05:07 2020-01-02 03:33:28 2020-01-01 00:05:07.000 2020-01-02 03:33:28.000 307 99208 49757.5 4975750 307 99208 49757.5 4975750 -32262 32673 5193.02 519302 -126 125 -3.78 -378 -308 101 10298 99209 0.92492 297.92492 149.42492 14942.49249 0.92492 297.92493 149.42492 14942.49265 0.92492 297.92492 149.42491999999996 14942.49200 2020-01-01 2020-01-02 2020-01-01 00:05:08 2020-01-02 03:33:29 2020-01-01 00:05:08.000 2020-01-02 03:33:29.000 308 99209 49758.5 4975850 308 99209 49758.5 4975850 -32261 32674 5194.02 519402 -125 126 -2.78 -278 -309 101 10299 99210 0.92792 297.92792 149.42792 14942.79279 0.92792 297.92792 149.42792 14942.7928 0.92792 297.92792 149.42792000000006 14942.79200 2020-01-01 2020-01-02 2020-01-01 00:05:09 2020-01-02 03:33:30 2020-01-01 00:05:09.000 2020-01-02 03:33:30.000 309 99210 49759.5 4975950 309 99210 49759.5 4975950 -32260 32675 5195.02 519502 -124 127 -1.78 -178 -31 102 10021 99931 0.09309 300.09309 150.09309 15159.4024 0.09309 300.09308 150.09309 15159.40224 0.09309 300.09309 150.0930900000002 15159.40209 2020-01-01 2020-01-02 2020-01-01 00:00:31 2020-01-02 03:45:31 2020-01-01 00:00:31.000 2020-01-02 03:45:31.000 31 99931 49981 5048081 31 99931 49981 5048081 -32538 32397 4560.009900990099 460561 -127 124 -2.366336633663366 -239 -310 101 10300 99211 0.93093 297.93093 149.43093 14943.09309 0.93093 297.93094 149.43092 14943.09288 0.93093 297.93093 149.4309300000003 14943.09300 2020-01-01 2020-01-02 2020-01-01 00:05:10 2020-01-02 03:33:31 2020-01-01 00:05:10.000 2020-01-02 03:33:31.000 310 99211 49760.5 4976050 310 99211 49760.5 4976050 -32259 32676 5196.02 519602 -128 127 -3.34 -334 -311 101 10301 99212 0.93393 297.93393 149.43393 14943.39339 0.93393 297.93393 149.43393 14943.39319 0.93393 297.93393 149.43392999999983 14943.39300 2020-01-01 2020-01-02 2020-01-01 00:05:11 2020-01-02 03:33:32 2020-01-01 00:05:11.000 2020-01-02 03:33:32.000 311 99212 49761.5 4976150 311 99212 49761.5 4976150 -32258 32677 5197.02 519702 -128 123 -4.9 -490 -312 101 10302 99213 0.93693 297.93693 149.43693 14943.69369 0.93693 297.93695 149.43693 14943.69377 0.93693 297.93693 149.43692999999988 14943.69300 2020-01-01 2020-01-02 2020-01-01 00:05:12 2020-01-02 03:33:33 2020-01-01 00:05:12.000 2020-01-02 03:33:33.000 312 99213 49762.5 4976250 312 99213 49762.5 4976250 -32257 32678 5198.02 519802 -127 124 -3.9 -390 -313 101 10303 99214 0.93993 297.93993 149.43993 14943.99399 0.93993 297.93994 149.43994 14943.99412 0.93993 297.93993 149.4399300000003 14943.99300 2020-01-01 2020-01-02 2020-01-01 00:05:13 2020-01-02 03:33:34 2020-01-01 00:05:13.000 2020-01-02 03:33:34.000 313 99214 49763.5 4976350 313 99214 49763.5 4976350 -32256 32679 5199.02 519902 -126 125 -2.9 -290 -314 101 10304 99215 0.94294 297.94294 149.44294 14944.29429 0.94294 297.94293 149.44294 14944.29427 0.94294 297.94294 149.4429400000002 14944.29400 2020-01-01 2020-01-02 2020-01-01 00:05:14 2020-01-02 03:33:35 2020-01-01 00:05:14.000 2020-01-02 03:33:35.000 314 99215 49764.5 4976450 314 99215 49764.5 4976450 -32255 32680 5200.02 520002 -125 126 -1.9 -190 -315 101 10305 99216 0.94594 297.94594 149.44594 14944.59459 0.94594 297.94595 149.44595 14944.595 0.94594 297.94594 149.44593999999975 14944.59400 2020-01-01 2020-01-02 2020-01-01 00:05:15 2020-01-02 03:33:36 2020-01-01 00:05:15.000 2020-01-02 03:33:36.000 315 99216 49765.5 4976550 315 99216 49765.5 4976550 -32254 32681 5201.02 520102 -124 127 -0.9 -90 -316 101 10306 99217 0.94894 297.94894 149.44894 14944.89489 0.94894 297.94894 149.44894 14944.89466 0.94894 297.94894 149.4489400000002 14944.89400 2020-01-01 2020-01-02 2020-01-01 00:05:16 2020-01-02 03:33:37 2020-01-01 00:05:16.000 2020-01-02 03:33:37.000 316 99217 49766.5 4976650 316 99217 49766.5 4976650 -32253 32682 5202.02 520202 -128 127 -2.46 -246 -317 101 10307 99218 0.95195 297.95195 149.45195 14945.19519 0.95195 297.95197 149.45195 14945.19524 0.95195 297.95195 149.4519500000001 14945.19500 2020-01-01 2020-01-02 2020-01-01 00:05:17 2020-01-02 03:33:38 2020-01-01 00:05:17.000 2020-01-02 03:33:38.000 317 99218 49767.5 4976750 317 99218 49767.5 4976750 -32252 32683 5203.02 520302 -128 123 -4.02 -402 -318 101 10308 99219 0.95495 297.95495 149.45495 14945.49549 0.95495 297.95496 149.45495 14945.49558 0.95495 297.95495 149.45494999999985 14945.49500 2020-01-01 2020-01-02 2020-01-01 00:05:18 2020-01-02 03:33:39 2020-01-01 00:05:18.000 2020-01-02 03:33:39.000 318 99219 49768.5 4976850 318 99219 49768.5 4976850 -32251 32684 5204.02 520402 -127 124 -3.02 -302 -319 101 10309 99220 0.95795 297.95795 149.45795 14945.79579 0.95795 297.95795 149.45795 14945.79574 0.95795 297.95795 149.45794999999998 14945.79500 2020-01-01 2020-01-02 2020-01-01 00:05:19 2020-01-02 03:33:40 2020-01-01 00:05:19.000 2020-01-02 03:33:40.000 319 99220 49769.5 4976950 319 99220 49769.5 4976950 -32250 32685 5205.02 520502 -126 125 -2.02 -202 -32 102 10022 99932 0.09609 300.09609 150.09609 15159.7057 0.09609 300.0961 150.09609 15159.706 0.09609 300.09609 150.09608999999972 15159.70509 2020-01-01 2020-01-02 2020-01-01 00:00:32 2020-01-02 03:45:32 2020-01-01 00:00:32.000 2020-01-02 03:45:32.000 32 99932 49982 5048182 32 99932 49982 5048182 -32537 32398 4561.009900990099 460662 -126 125 -1.3663366336633664 -138 -320 101 10310 99221 0.96096 297.96096 149.46096 14946.09609 0.96096 297.96097 149.46096 14946.09647 0.96096 297.96096 149.4609600000002 14946.09600 2020-01-01 2020-01-02 2020-01-01 00:05:20 2020-01-02 03:33:41 2020-01-01 00:05:20.000 2020-01-02 03:33:41.000 320 99221 49770.5 4977050 320 99221 49770.5 4977050 -32249 32686 5206.02 520602 -125 126 -1.02 -102 -321 101 10311 99222 0.96396 297.96396 149.46396 14946.39639 0.96396 297.96396 149.46396 14946.39613 0.96396 297.96396 149.46395999999976 14946.39600 2020-01-01 2020-01-02 2020-01-01 00:05:21 2020-01-02 03:33:42 2020-01-01 00:05:21.000 2020-01-02 03:33:42.000 321 99222 49771.5 4977150 321 99222 49771.5 4977150 -32248 32687 5207.02 520702 -124 127 -0.02 -2 -322 101 10312 99223 0.96696 297.96696 149.46696 14946.69669 0.96696 297.96698 149.46696 14946.69674 0.96696 297.96696 149.46695999999986 14946.69600 2020-01-01 2020-01-02 2020-01-01 00:05:22 2020-01-02 03:33:43 2020-01-01 00:05:22.000 2020-01-02 03:33:43.000 322 99223 49772.5 4977250 322 99223 49772.5 4977250 -32247 32688 5208.02 520802 -128 127 -1.58 -158 -323 101 10313 99224 0.96996 297.96996 149.46996 14946.99699 0.96997 297.96997 149.46997 14946.99706 0.96996 297.96996 149.4699600000002 14946.99600 2020-01-01 2020-01-02 2020-01-01 00:05:23 2020-01-02 03:33:44 2020-01-01 00:05:23.000 2020-01-02 03:33:44.000 323 99224 49773.5 4977350 323 99224 49773.5 4977350 -32246 32689 5209.02 520902 -128 123 -3.14 -314 -324 101 10314 99225 0.97297 297.97297 149.47297 14947.29729 0.97297 297.97296 149.47297 14947.29737 0.97297 297.97297 149.47297000000012 14947.29700 2020-01-01 2020-01-02 2020-01-01 00:05:24 2020-01-02 03:33:45 2020-01-01 00:05:24.000 2020-01-02 03:33:45.000 324 99225 49774.5 4977450 324 99225 49774.5 4977450 -32245 32690 5210.02 521002 -127 124 -2.14 -214 +27 102 10017 99927 0.08108 300.08108 150.08108 15158.18918 0.08108 300.0811 150.08108 15158.18936 0.08108 300.08108 150.08108000000001 15158.18908 2020-01-01 2020-01-02 2020-01-01 00:00:27 2020-01-02 03:45:27 2020-01-01 00:00:27.000 2020-01-02 03:45:27.000 27 99927 49977 5047677 27 99927 49977 5047677 -32542 32393 4556.009900990099 460157 -125 126 -1.297029702970297 -131 +270 101 10260 99171 0.81081 297.81081 149.31081 14931.08108 0.81081 297.81082 149.31081 14931.08109 0.81081 297.81081 149.31081 14931.08100 2020-01-01 2020-01-02 2020-01-01 00:04:30 2020-01-02 03:32:51 2020-01-01 00:04:30.000 2020-01-02 03:32:51.000 270 99171 49720.5 4972050 270 99171 49720.5 4972050 -32299 32636 5156.02 515602 -125 126 0.18 18 +271 101 10261 99172 0.81381 297.81381 149.31381 14931.38138 0.81381 297.8138 149.31381 14931.38124 0.81381 297.81381 149.31381 14931.38100 2020-01-01 2020-01-02 2020-01-01 00:04:31 2020-01-02 03:32:52 2020-01-01 00:04:31.000 2020-01-02 03:32:52.000 271 99172 49721.5 4972150 271 99172 49721.5 4972150 -32298 32637 5157.02 515702 -124 127 1.18 118 +272 101 10262 99173 0.81681 297.81681 149.31681 14931.68168 0.81681 297.8168 149.31681 14931.68159 0.81681 297.81681 149.31681 14931.68100 2020-01-01 2020-01-02 2020-01-01 00:04:32 2020-01-02 03:32:53 2020-01-01 00:04:32.000 2020-01-02 03:32:53.000 272 99173 49722.5 4972250 272 99173 49722.5 4972250 -32297 32638 5158.02 515802 -128 127 -0.38 -38 +273 101 10263 99174 0.81981 297.81981 149.31981 14931.98198 0.81981 297.81982 149.31982 14931.98217 0.81981 297.81981 149.31981 14931.98100 2020-01-01 2020-01-02 2020-01-01 00:04:33 2020-01-02 03:32:54 2020-01-01 00:04:33.000 2020-01-02 03:32:54.000 273 99174 49723.5 4972350 273 99174 49723.5 4972350 -32296 32639 5159.02 515902 -128 127 -1.94 -194 +274 101 10264 99175 0.82282 297.82282 149.32282 14932.28228 0.82282 297.8228 149.32282 14932.28247 0.82282 297.82282 149.32281999999998 14932.28200 2020-01-01 2020-01-02 2020-01-01 00:04:34 2020-01-02 03:32:55 2020-01-01 00:04:34.000 2020-01-02 03:32:55.000 274 99175 49724.5 4972450 274 99175 49724.5 4972450 -32295 32640 5160.02 516002 -128 124 -3.5 -350 +275 101 10265 99176 0.82582 297.82582 149.32582 14932.58258 0.82582 297.82584 149.32582 14932.58256 0.82582 297.82582 149.32582 14932.58200 2020-01-01 2020-01-02 2020-01-01 00:04:35 2020-01-02 03:32:56 2020-01-01 00:04:35.000 2020-01-02 03:32:56.000 275 99176 49725.5 4972550 275 99176 49725.5 4972550 -32294 32641 5161.02 516102 -127 125 -2.5 -250 +276 101 10266 99177 0.82882 297.82882 149.32882 14932.88288 0.82882 297.82883 149.32882 14932.88275 0.82882 297.82882 149.32882 14932.88200 2020-01-01 2020-01-02 2020-01-01 00:04:36 2020-01-02 03:32:57 2020-01-01 00:04:36.000 2020-01-02 03:32:57.000 276 99177 49726.5 4972650 276 99177 49726.5 4972650 -32293 32642 5162.02 516202 -126 126 -1.5 -150 +277 101 10267 99178 0.83183 297.83183 149.33183 14933.18318 0.83183 297.83182 149.33183 14933.18305 0.83183 297.83183 149.33183 14933.18300 2020-01-01 2020-01-02 2020-01-01 00:04:37 2020-01-02 03:32:58 2020-01-01 00:04:37.000 2020-01-02 03:32:58.000 277 99178 49727.5 4972750 277 99178 49727.5 4972750 -32292 32643 5163.02 516302 -125 127 -0.5 -50 +278 101 10268 99179 0.83483 297.83483 149.33483 14933.48348 0.83483 297.83484 149.33483 14933.48364 0.83483 297.83483 149.33483 14933.48300 2020-01-01 2020-01-02 2020-01-01 00:04:38 2020-01-02 03:32:59 2020-01-01 00:04:38.000 2020-01-02 03:32:59.000 278 99179 49728.5 4972850 278 99179 49728.5 4972850 -32291 32644 5164.02 516402 -128 127 -2.06 -206 +279 101 10269 99180 0.83783 297.83783 149.33783 14933.78378 0.83783 297.83783 149.33783 14933.78394 0.83783 297.83783 149.33783 14933.78300 2020-01-01 2020-01-02 2020-01-01 00:04:39 2020-01-02 03:33:00 2020-01-01 00:04:39.000 2020-01-02 03:33:00.000 279 99180 49729.5 4972950 279 99180 49729.5 4972950 -32290 32645 5165.02 516502 -128 127 -3.62 -362 +28 102 10018 99928 0.08408 300.08408 150.08408 15158.49249 0.08408 300.08408 150.08408 15158.49265 0.08408 300.08408 150.08408 15158.49208 2020-01-01 2020-01-02 2020-01-01 00:00:28 2020-01-02 03:45:28 2020-01-01 00:00:28.000 2020-01-02 03:45:28.000 28 99928 49978 5047778 28 99928 49978 5047778 -32541 32394 4557.009900990099 460258 -124 127 -0.297029702970297 -30 +280 101 10270 99181 0.84084 297.84084 149.34084 14934.08408 0.84084 297.84085 149.34084 14934.08403 0.84084 297.84084 149.34084000000001 14934.08400 2020-01-01 2020-01-02 2020-01-01 00:04:40 2020-01-02 03:33:01 2020-01-01 00:04:40.000 2020-01-02 03:33:01.000 280 99181 49730.5 4973050 280 99181 49730.5 4973050 -32289 32646 5166.02 516602 -128 123 -5.18 -518 +281 101 10271 99182 0.84384 297.84384 149.34384 14934.38438 0.84384 297.84384 149.34384 14934.38421 0.84384 297.84384 149.34384 14934.38400 2020-01-01 2020-01-02 2020-01-01 00:04:41 2020-01-02 03:33:02 2020-01-01 00:04:41.000 2020-01-02 03:33:02.000 281 99182 49731.5 4973150 281 99182 49731.5 4973150 -32288 32647 5167.02 516702 -127 124 -4.18 -418 +282 101 10272 99183 0.84684 297.84684 149.34684 14934.68468 0.84684 297.84683 149.34684 14934.68453 0.84684 297.84684 149.34684 14934.68400 2020-01-01 2020-01-02 2020-01-01 00:04:42 2020-01-02 03:33:03 2020-01-01 00:04:42.000 2020-01-02 03:33:03.000 282 99183 49732.5 4973250 282 99183 49732.5 4973250 -32287 32648 5168.02 516802 -126 125 -3.18 -318 +283 101 10273 99184 0.84984 297.84984 149.34984 14934.98498 0.84984 297.84985 149.34985 14934.98526 0.84984 297.84984 149.34984 14934.98400 2020-01-01 2020-01-02 2020-01-01 00:04:43 2020-01-02 03:33:04 2020-01-01 00:04:43.000 2020-01-02 03:33:04.000 283 99184 49733.5 4973350 283 99184 49733.5 4973350 -32286 32649 5169.02 516902 -125 126 -2.18 -218 +284 101 10274 99185 0.85285 297.85285 149.35285 14935.28528 0.85285 297.85284 149.35285 14935.28542 0.85285 297.85285 149.35285 14935.28500 2020-01-01 2020-01-02 2020-01-01 00:04:44 2020-01-02 03:33:05 2020-01-01 00:04:44.000 2020-01-02 03:33:05.000 284 99185 49734.5 4973450 284 99185 49734.5 4973450 -32285 32650 5170.02 517002 -124 127 -1.18 -118 +285 101 10275 99186 0.85585 297.85585 149.35585 14935.58558 0.85585 297.85587 149.35585 14935.5855 0.85585 297.85585 149.35585 14935.58500 2020-01-01 2020-01-02 2020-01-01 00:04:45 2020-01-02 03:33:06 2020-01-01 00:04:45.000 2020-01-02 03:33:06.000 285 99186 49735.5 4973550 285 99186 49735.5 4973550 -32284 32651 5171.02 517102 -128 127 -2.74 -274 +286 101 10276 99187 0.85885 297.85885 149.35885 14935.88588 0.85885 297.85886 149.35885 14935.88568 0.85885 297.85885 149.35885 14935.88500 2020-01-01 2020-01-02 2020-01-01 00:04:46 2020-01-02 03:33:07 2020-01-01 00:04:46.000 2020-01-02 03:33:07.000 286 99187 49736.5 4973650 286 99187 49736.5 4973650 -32283 32652 5172.02 517202 -128 123 -4.3 -430 +287 101 10277 99188 0.86186 297.86186 149.36186 14936.18618 0.86186 297.86185 149.36186 14936.186 0.86186 297.86186 149.36186 14936.18600 2020-01-01 2020-01-02 2020-01-01 00:04:47 2020-01-02 03:33:08 2020-01-01 00:04:47.000 2020-01-02 03:33:08.000 287 99188 49737.5 4973750 287 99188 49737.5 4973750 -32282 32653 5173.02 517302 -127 124 -3.3 -330 +288 101 10278 99189 0.86486 297.86486 149.36486 14936.48648 0.86486 297.86487 149.36486 14936.48673 0.86486 297.86486 149.36486000000002 14936.48600 2020-01-01 2020-01-02 2020-01-01 00:04:48 2020-01-02 03:33:09 2020-01-01 00:04:48.000 2020-01-02 03:33:09.000 288 99189 49738.5 4973850 288 99189 49738.5 4973850 -32281 32654 5174.02 517402 -126 125 -2.3 -230 +289 101 10279 99190 0.86786 297.86786 149.36786 14936.78678 0.86786 297.86786 149.36786 14936.78688 0.86786 297.86786 149.36786 14936.78600 2020-01-01 2020-01-02 2020-01-01 00:04:49 2020-01-02 03:33:10 2020-01-01 00:04:49.000 2020-01-02 03:33:10.000 289 99190 49739.5 4973950 289 99190 49739.5 4973950 -32280 32655 5175.02 517502 -125 126 -1.3 -130 +29 102 10019 99929 0.08708 300.08708 150.08708 15158.79579 0.08708 300.0871 150.08708 15158.79576 0.08708 300.08708 150.08708 15158.79508 2020-01-01 2020-01-02 2020-01-01 00:00:29 2020-01-02 03:45:29 2020-01-01 00:00:29.000 2020-01-02 03:45:29.000 29 99929 49979 5047879 29 99929 49979 5047879 -32540 32395 4558.009900990099 460359 -128 127 -1.8316831683168318 -185 +290 101 10280 99191 0.87087 297.87087 149.37087 14937.08708 0.87087 297.87088 149.37087 14937.087 0.87087 297.87087 149.37087 14937.08700 2020-01-01 2020-01-02 2020-01-01 00:04:50 2020-01-02 03:33:11 2020-01-01 00:04:50.000 2020-01-02 03:33:11.000 290 99191 49740.5 4974050 290 99191 49740.5 4974050 -32279 32656 5176.02 517602 -124 127 -0.3 -30 +291 101 10281 99192 0.87387 297.87387 149.37387 14937.38738 0.87387 297.87387 149.37387 14937.38716 0.87387 297.87387 149.37387 14937.38700 2020-01-01 2020-01-02 2020-01-01 00:04:51 2020-01-02 03:33:12 2020-01-01 00:04:51.000 2020-01-02 03:33:12.000 291 99192 49741.5 4974150 291 99192 49741.5 4974150 -32278 32657 5177.02 517702 -128 127 -1.86 -186 +292 101 10282 99193 0.87687 297.87687 149.37687 14937.68768 0.87687 297.8769 149.37687 14937.68789 0.87687 297.87687 149.37687 14937.68700 2020-01-01 2020-01-02 2020-01-01 00:04:52 2020-01-02 03:33:13 2020-01-01 00:04:52.000 2020-01-02 03:33:13.000 292 99193 49742.5 4974250 292 99193 49742.5 4974250 -32277 32658 5178.02 517802 -128 123 -3.42 -342 +293 101 10283 99194 0.87987 297.87987 149.37987 14937.98798 0.87987 297.87988 149.37988 14937.9882 0.87987 297.87987 149.37986999999998 14937.98700 2020-01-01 2020-01-02 2020-01-01 00:04:53 2020-01-02 03:33:14 2020-01-01 00:04:53.000 2020-01-02 03:33:14.000 293 99194 49743.5 4974350 293 99194 49743.5 4974350 -32276 32659 5179.02 517902 -127 124 -2.42 -242 +294 101 10284 99195 0.88288 297.88288 149.38288 14938.28828 0.88288 297.88287 149.38288 14938.28835 0.88288 297.88288 149.38288 14938.28800 2020-01-01 2020-01-02 2020-01-01 00:04:54 2020-01-02 03:33:15 2020-01-01 00:04:54.000 2020-01-02 03:33:15.000 294 99195 49744.5 4974450 294 99195 49744.5 4974450 -32275 32660 5180.02 518002 -126 125 -1.42 -142 +295 101 10285 99196 0.88588 297.88588 149.38588 14938.58858 0.88588 297.8859 149.38588 14938.58847 0.88588 297.88588 149.38588 14938.58800 2020-01-01 2020-01-02 2020-01-01 00:04:55 2020-01-02 03:33:16 2020-01-01 00:04:55.000 2020-01-02 03:33:16.000 295 99196 49745.5 4974550 295 99196 49745.5 4974550 -32274 32661 5181.02 518102 -125 126 -0.42 -42 +296 101 10286 99197 0.88888 297.88888 149.38888 14938.88888 0.88888 297.8889 149.38888 14938.88863 0.88888 297.88888 149.38888 14938.88800 2020-01-01 2020-01-02 2020-01-01 00:04:56 2020-01-02 03:33:17 2020-01-01 00:04:56.000 2020-01-02 03:33:17.000 296 99197 49746.5 4974650 296 99197 49746.5 4974650 -32273 32662 5182.02 518202 -124 127 0.58 58 +297 101 10287 99198 0.89189 297.89189 149.39189 14939.18918 0.89189 297.8919 149.39189 14939.18936 0.89189 297.89189 149.39189 14939.18900 2020-01-01 2020-01-02 2020-01-01 00:04:57 2020-01-02 03:33:18 2020-01-01 00:04:57.000 2020-01-02 03:33:18.000 297 99198 49747.5 4974750 297 99198 49747.5 4974750 -32272 32663 5183.02 518302 -128 127 -0.98 -98 +298 101 10288 99199 0.89489 297.89489 149.39489 14939.48948 0.89489 297.8949 149.39489 14939.48967 0.89489 297.89489 149.39489 14939.48900 2020-01-01 2020-01-02 2020-01-01 00:04:58 2020-01-02 03:33:19 2020-01-01 00:04:58.000 2020-01-02 03:33:19.000 298 99199 49748.5 4974850 298 99199 49748.5 4974850 -32271 32664 5184.02 518402 -128 127 -2.54 -254 +299 101 10289 99200 0.89789 297.89789 149.39789 14939.78978 0.89789 297.8979 149.39789 14939.78986 0.89789 297.89789 149.39789000000002 14939.78900 2020-01-01 2020-01-02 2020-01-01 00:04:59 2020-01-02 03:33:20 2020-01-01 00:04:59.000 2020-01-02 03:33:20.000 299 99200 49749.5 4974950 299 99200 49749.5 4974950 -32270 32665 5185.02 518502 -128 124 -4.1 -410 +3 102 1002 9993 0.009 300.009 150.009 15150.9099 0.009 300.009 150.009 15150.90958 0.00900 300.00900 150.009 15150.90900 2020-01-01 2020-01-02 2020-01-01 00:00:03 2020-01-02 03:45:03 2020-01-01 00:00:03.000 2020-01-02 03:45:03.000 3 99903 49953 5045253 3 99903 49953 5045253 -32566 32369 4532.009900990099 457733 -124 127 0.04950495049504951 5 +30 102 10020 99930 0.09009 300.09009 150.09009 15159.09909 0.09009 300.0901 150.09008 15159.09894 0.09009 300.09009 150.09009 15159.09909 2020-01-01 2020-01-02 2020-01-01 00:00:30 2020-01-02 03:45:30 2020-01-01 00:00:30.000 2020-01-02 03:45:30.000 30 99930 49980 5047980 30 99930 49980 5047980 -32539 32396 4559.009900990099 460460 -128 123 -3.366336633663366 -340 +300 101 10290 99201 0.9009 297.9009 149.4009 14940.09009 0.9009 297.9009 149.40089 14940.08995 0.90090 297.90090 149.4009 14940.09000 2020-01-01 2020-01-02 2020-01-01 00:05:00 2020-01-02 03:33:21 2020-01-01 00:05:00.000 2020-01-02 03:33:21.000 300 99201 49750.5 4975050 300 99201 49750.5 4975050 -32269 32666 5186.02 518602 -127 125 -3.1 -310 +301 101 10291 99202 0.9039 297.9039 149.4039 14940.39039 0.9039 297.9039 149.4039 14940.39009 0.90390 297.90390 149.4039 14940.39000 2020-01-01 2020-01-02 2020-01-01 00:05:01 2020-01-02 03:33:22 2020-01-01 00:05:01.000 2020-01-02 03:33:22.000 301 99202 49751.5 4975150 301 99202 49751.5 4975150 -32268 32667 5187.02 518702 -126 126 -2.1 -210 +302 101 10292 99203 0.9069 297.9069 149.4069 14940.69069 0.9069 297.90692 149.4069 14940.69083 0.90690 297.90690 149.4069 14940.69000 2020-01-01 2020-01-02 2020-01-01 00:05:02 2020-01-02 03:33:23 2020-01-01 00:05:02.000 2020-01-02 03:33:23.000 302 99203 49752.5 4975250 302 99203 49752.5 4975250 -32267 32668 5188.02 518802 -125 127 -1.1 -110 +303 101 10293 99204 0.9099 297.9099 149.4099 14940.99099 0.9099 297.9099 149.40991 14940.99114 0.90990 297.90990 149.4099 14940.99000 2020-01-01 2020-01-02 2020-01-01 00:05:03 2020-01-02 03:33:24 2020-01-01 00:05:03.000 2020-01-02 03:33:24.000 303 99204 49753.5 4975350 303 99204 49753.5 4975350 -32266 32669 5189.02 518902 -128 127 -2.66 -266 +304 101 10294 99205 0.91291 297.91291 149.41291 14941.29129 0.91291 297.9129 149.41291 14941.29133 0.91291 297.91291 149.41290999999998 14941.29100 2020-01-01 2020-01-02 2020-01-01 00:05:04 2020-01-02 03:33:25 2020-01-01 00:05:04.000 2020-01-02 03:33:25.000 304 99205 49754.5 4975450 304 99205 49754.5 4975450 -32265 32670 5190.02 519002 -128 127 -4.22 -422 +305 101 10295 99206 0.91591 297.91591 149.41591 14941.59159 0.91591 297.91592 149.41591 14941.59141 0.91591 297.91591 149.41591 14941.59100 2020-01-01 2020-01-02 2020-01-01 00:05:05 2020-01-02 03:33:26 2020-01-01 00:05:05.000 2020-01-02 03:33:26.000 305 99206 49755.5 4975550 305 99206 49755.5 4975550 -32264 32671 5191.02 519102 -128 123 -5.78 -578 +306 101 10296 99207 0.91891 297.91891 149.41891 14941.89189 0.91891 297.9189 149.41891 14941.89172 0.91891 297.91891 149.41890999999998 14941.89100 2020-01-01 2020-01-02 2020-01-01 00:05:06 2020-01-02 03:33:27 2020-01-01 00:05:06.000 2020-01-02 03:33:27.000 306 99207 49756.5 4975650 306 99207 49756.5 4975650 -32263 32672 5192.02 519202 -127 124 -4.78 -478 +307 101 10297 99208 0.92192 297.92192 149.42192 14942.19219 0.92192 297.92194 149.42192 14942.1923 0.92192 297.92192 149.42192 14942.19200 2020-01-01 2020-01-02 2020-01-01 00:05:07 2020-01-02 03:33:28 2020-01-01 00:05:07.000 2020-01-02 03:33:28.000 307 99208 49757.5 4975750 307 99208 49757.5 4975750 -32262 32673 5193.02 519302 -126 125 -3.78 -378 +308 101 10298 99209 0.92492 297.92492 149.42492 14942.49249 0.92492 297.92493 149.42492 14942.49265 0.92492 297.92492 149.42492000000001 14942.49200 2020-01-01 2020-01-02 2020-01-01 00:05:08 2020-01-02 03:33:29 2020-01-01 00:05:08.000 2020-01-02 03:33:29.000 308 99209 49758.5 4975850 308 99209 49758.5 4975850 -32261 32674 5194.02 519402 -125 126 -2.78 -278 +309 101 10299 99210 0.92792 297.92792 149.42792 14942.79279 0.92792 297.92792 149.42792 14942.7928 0.92792 297.92792 149.42792 14942.79200 2020-01-01 2020-01-02 2020-01-01 00:05:09 2020-01-02 03:33:30 2020-01-01 00:05:09.000 2020-01-02 03:33:30.000 309 99210 49759.5 4975950 309 99210 49759.5 4975950 -32260 32675 5195.02 519502 -124 127 -1.78 -178 +31 102 10021 99931 0.09309 300.09309 150.09309 15159.4024 0.09309 300.09308 150.09309 15159.40224 0.09309 300.09309 150.09309 15159.40209 2020-01-01 2020-01-02 2020-01-01 00:00:31 2020-01-02 03:45:31 2020-01-01 00:00:31.000 2020-01-02 03:45:31.000 31 99931 49981 5048081 31 99931 49981 5048081 -32538 32397 4560.009900990099 460561 -127 124 -2.366336633663366 -239 +310 101 10300 99211 0.93093 297.93093 149.43093 14943.09309 0.93093 297.93094 149.43092 14943.09288 0.93093 297.93093 149.43093000000002 14943.09300 2020-01-01 2020-01-02 2020-01-01 00:05:10 2020-01-02 03:33:31 2020-01-01 00:05:10.000 2020-01-02 03:33:31.000 310 99211 49760.5 4976050 310 99211 49760.5 4976050 -32259 32676 5196.02 519602 -128 127 -3.34 -334 +311 101 10301 99212 0.93393 297.93393 149.43393 14943.39339 0.93393 297.93393 149.43393 14943.39319 0.93393 297.93393 149.43393 14943.39300 2020-01-01 2020-01-02 2020-01-01 00:05:11 2020-01-02 03:33:32 2020-01-01 00:05:11.000 2020-01-02 03:33:32.000 311 99212 49761.5 4976150 311 99212 49761.5 4976150 -32258 32677 5197.02 519702 -128 123 -4.9 -490 +312 101 10302 99213 0.93693 297.93693 149.43693 14943.69369 0.93693 297.93695 149.43693 14943.69377 0.93693 297.93693 149.43693 14943.69300 2020-01-01 2020-01-02 2020-01-01 00:05:12 2020-01-02 03:33:33 2020-01-01 00:05:12.000 2020-01-02 03:33:33.000 312 99213 49762.5 4976250 312 99213 49762.5 4976250 -32257 32678 5198.02 519802 -127 124 -3.9 -390 +313 101 10303 99214 0.93993 297.93993 149.43993 14943.99399 0.93993 297.93994 149.43994 14943.99412 0.93993 297.93993 149.43993 14943.99300 2020-01-01 2020-01-02 2020-01-01 00:05:13 2020-01-02 03:33:34 2020-01-01 00:05:13.000 2020-01-02 03:33:34.000 313 99214 49763.5 4976350 313 99214 49763.5 4976350 -32256 32679 5199.02 519902 -126 125 -2.9 -290 +314 101 10304 99215 0.94294 297.94294 149.44294 14944.29429 0.94294 297.94293 149.44294 14944.29427 0.94294 297.94294 149.44294 14944.29400 2020-01-01 2020-01-02 2020-01-01 00:05:14 2020-01-02 03:33:35 2020-01-01 00:05:14.000 2020-01-02 03:33:35.000 314 99215 49764.5 4976450 314 99215 49764.5 4976450 -32255 32680 5200.02 520002 -125 126 -1.9 -190 +315 101 10305 99216 0.94594 297.94594 149.44594 14944.59459 0.94594 297.94595 149.44595 14944.595 0.94594 297.94594 149.44593999999998 14944.59400 2020-01-01 2020-01-02 2020-01-01 00:05:15 2020-01-02 03:33:36 2020-01-01 00:05:15.000 2020-01-02 03:33:36.000 315 99216 49765.5 4976550 315 99216 49765.5 4976550 -32254 32681 5201.02 520102 -124 127 -0.9 -90 +316 101 10306 99217 0.94894 297.94894 149.44894 14944.89489 0.94894 297.94894 149.44894 14944.89466 0.94894 297.94894 149.44894 14944.89400 2020-01-01 2020-01-02 2020-01-01 00:05:16 2020-01-02 03:33:37 2020-01-01 00:05:16.000 2020-01-02 03:33:37.000 316 99217 49766.5 4976650 316 99217 49766.5 4976650 -32253 32682 5202.02 520202 -128 127 -2.46 -246 +317 101 10307 99218 0.95195 297.95195 149.45195 14945.19519 0.95195 297.95197 149.45195 14945.19524 0.95195 297.95195 149.45195 14945.19500 2020-01-01 2020-01-02 2020-01-01 00:05:17 2020-01-02 03:33:38 2020-01-01 00:05:17.000 2020-01-02 03:33:38.000 317 99218 49767.5 4976750 317 99218 49767.5 4976750 -32252 32683 5203.02 520302 -128 123 -4.02 -402 +318 101 10308 99219 0.95495 297.95495 149.45495 14945.49549 0.95495 297.95496 149.45495 14945.49558 0.95495 297.95495 149.45495 14945.49500 2020-01-01 2020-01-02 2020-01-01 00:05:18 2020-01-02 03:33:39 2020-01-01 00:05:18.000 2020-01-02 03:33:39.000 318 99219 49768.5 4976850 318 99219 49768.5 4976850 -32251 32684 5204.02 520402 -127 124 -3.02 -302 +319 101 10309 99220 0.95795 297.95795 149.45795 14945.79579 0.95795 297.95795 149.45795 14945.79574 0.95795 297.95795 149.45795 14945.79500 2020-01-01 2020-01-02 2020-01-01 00:05:19 2020-01-02 03:33:40 2020-01-01 00:05:19.000 2020-01-02 03:33:40.000 319 99220 49769.5 4976950 319 99220 49769.5 4976950 -32250 32685 5205.02 520502 -126 125 -2.02 -202 +32 102 10022 99932 0.09609 300.09609 150.09609 15159.7057 0.09609 300.0961 150.09609 15159.706 0.09609 300.09609 150.09609 15159.70509 2020-01-01 2020-01-02 2020-01-01 00:00:32 2020-01-02 03:45:32 2020-01-01 00:00:32.000 2020-01-02 03:45:32.000 32 99932 49982 5048182 32 99932 49982 5048182 -32537 32398 4561.009900990099 460662 -126 125 -1.3663366336633664 -138 +320 101 10310 99221 0.96096 297.96096 149.46096 14946.09609 0.96096 297.96097 149.46096 14946.09647 0.96096 297.96096 149.46096 14946.09600 2020-01-01 2020-01-02 2020-01-01 00:05:20 2020-01-02 03:33:41 2020-01-01 00:05:20.000 2020-01-02 03:33:41.000 320 99221 49770.5 4977050 320 99221 49770.5 4977050 -32249 32686 5206.02 520602 -125 126 -1.02 -102 +321 101 10311 99222 0.96396 297.96396 149.46396 14946.39639 0.96396 297.96396 149.46396 14946.39613 0.96396 297.96396 149.46396000000001 14946.39600 2020-01-01 2020-01-02 2020-01-01 00:05:21 2020-01-02 03:33:42 2020-01-01 00:05:21.000 2020-01-02 03:33:42.000 321 99222 49771.5 4977150 321 99222 49771.5 4977150 -32248 32687 5207.02 520702 -124 127 -0.02 -2 +322 101 10312 99223 0.96696 297.96696 149.46696 14946.69669 0.96696 297.96698 149.46696 14946.69674 0.96696 297.96696 149.46696 14946.69600 2020-01-01 2020-01-02 2020-01-01 00:05:22 2020-01-02 03:33:43 2020-01-01 00:05:22.000 2020-01-02 03:33:43.000 322 99223 49772.5 4977250 322 99223 49772.5 4977250 -32247 32688 5208.02 520802 -128 127 -1.58 -158 +323 101 10313 99224 0.96996 297.96996 149.46996 14946.99699 0.96997 297.96997 149.46997 14946.99706 0.96996 297.96996 149.46996 14946.99600 2020-01-01 2020-01-02 2020-01-01 00:05:23 2020-01-02 03:33:44 2020-01-01 00:05:23.000 2020-01-02 03:33:44.000 323 99224 49773.5 4977350 323 99224 49773.5 4977350 -32246 32689 5209.02 520902 -128 123 -3.14 -314 +324 101 10314 99225 0.97297 297.97297 149.47297 14947.29729 0.97297 297.97296 149.47297 14947.29737 0.97297 297.97297 149.47297 14947.29700 2020-01-01 2020-01-02 2020-01-01 00:05:24 2020-01-02 03:33:45 2020-01-01 00:05:24.000 2020-01-02 03:33:45.000 324 99225 49774.5 4977450 324 99225 49774.5 4977450 -32245 32690 5210.02 521002 -127 124 -2.14 -214 325 101 10315 99226 0.97597 297.97597 149.47597 14947.59759 0.97597 297.97598 149.47597 14947.59794 0.97597 297.97597 149.47597 14947.59700 2020-01-01 2020-01-02 2020-01-01 00:05:25 2020-01-02 03:33:46 2020-01-01 00:05:25.000 2020-01-02 03:33:46.000 325 99226 49775.5 4977550 325 99226 49775.5 4977550 -32244 32691 5211.02 521102 -126 125 -1.14 -114 -326 101 10316 99227 0.97897 297.97897 149.47897 14947.89789 0.97897 297.97897 149.47897 14947.8976 0.97897 297.97897 149.4789700000001 14947.89700 2020-01-01 2020-01-02 2020-01-01 00:05:26 2020-01-02 03:33:47 2020-01-01 00:05:26.000 2020-01-02 03:33:47.000 326 99227 49776.5 4977650 326 99227 49776.5 4977650 -32243 32692 5212.02 521202 -125 126 -0.14 -14 +326 101 10316 99227 0.97897 297.97897 149.47897 14947.89789 0.97897 297.97897 149.47897 14947.8976 0.97897 297.97897 149.47897 14947.89700 2020-01-01 2020-01-02 2020-01-01 00:05:26 2020-01-02 03:33:47 2020-01-01 00:05:26.000 2020-01-02 03:33:47.000 326 99227 49776.5 4977650 326 99227 49776.5 4977650 -32243 32692 5212.02 521202 -125 126 -0.14 -14 327 101 10317 99228 0.98198 297.98198 149.48198 14948.19819 0.98198 297.982 149.48198 14948.19821 0.98198 297.98198 149.48198 14948.19800 2020-01-01 2020-01-02 2020-01-01 00:05:27 2020-01-02 03:33:48 2020-01-01 00:05:27.000 2020-01-02 03:33:48.000 327 99228 49777.5 4977750 327 99228 49777.5 4977750 -32242 32693 5213.02 521302 -124 127 0.86 86 -328 101 10318 99229 0.98498 297.98498 149.48498 14948.49849 0.98498 297.985 149.48498 14948.49853 0.98498 297.98498 149.48497999999987 14948.49800 2020-01-01 2020-01-02 2020-01-01 00:05:28 2020-01-02 03:33:49 2020-01-01 00:05:28.000 2020-01-02 03:33:49.000 328 99229 49778.5 4977850 328 99229 49778.5 4977850 -32241 32694 5214.02 521402 -128 127 -0.7 -70 -329 101 10319 99230 0.98798 297.98798 149.48798 14948.79879 0.98798 297.98798 149.48798 14948.79883 0.98798 297.98798 149.4879799999999 14948.79800 2020-01-01 2020-01-02 2020-01-01 00:05:29 2020-01-02 03:33:50 2020-01-01 00:05:29.000 2020-01-02 03:33:50.000 329 99230 49779.5 4977950 329 99230 49779.5 4977950 -32240 32695 5215.02 521502 -128 127 -2.26 -226 -33 102 10023 99933 0.09909 300.09909 150.09909 15160.009 0.09909 300.0991 150.0991 15160.00913 0.09909 300.09909 150.09908999999982 15160.00809 2020-01-01 2020-01-02 2020-01-01 00:00:33 2020-01-02 03:45:33 2020-01-01 00:00:33.000 2020-01-02 03:45:33.000 33 99933 49983 5048283 33 99933 49983 5048283 -32536 32399 4562.009900990099 460763 -125 126 -0.36633663366336633 -37 -330 101 10320 99231 0.99099 297.99099 149.49099 14949.09909 0.99099 297.991 149.49099 14949.09941 0.99099 297.99099 149.49099000000012 14949.09900 2020-01-01 2020-01-02 2020-01-01 00:05:30 2020-01-02 03:33:51 2020-01-01 00:05:30.000 2020-01-02 03:33:51.000 330 99231 49780.5 4978050 330 99231 49780.5 4978050 -32239 32696 5216.02 521602 -128 123 -3.82 -382 -331 101 10321 99232 0.99399 297.99399 149.49399 14949.39939 0.99399 297.994 149.49399 14949.39911 0.99399 297.99399 149.49399000000022 14949.39900 2020-01-01 2020-01-02 2020-01-01 00:05:31 2020-01-02 03:33:52 2020-01-01 00:05:31.000 2020-01-02 03:33:52.000 331 99232 49781.5 4978150 331 99232 49781.5 4978150 -32238 32697 5217.02 521702 -127 124 -2.82 -282 -332 101 10322 99233 0.99699 297.99699 149.49699 14949.69969 0.99699 297.997 149.49699 14949.69969 0.99699 297.99699 149.49698999999978 14949.69900 2020-01-01 2020-01-02 2020-01-01 00:05:32 2020-01-02 03:33:53 2020-01-01 00:05:32.000 2020-01-02 03:33:53.000 332 99233 49782.5 4978250 332 99233 49782.5 4978250 -32237 32698 5218.02 521802 -126 125 -1.82 -182 +328 101 10318 99229 0.98498 297.98498 149.48498 14948.49849 0.98498 297.985 149.48498 14948.49853 0.98498 297.98498 149.48498 14948.49800 2020-01-01 2020-01-02 2020-01-01 00:05:28 2020-01-02 03:33:49 2020-01-01 00:05:28.000 2020-01-02 03:33:49.000 328 99229 49778.5 4977850 328 99229 49778.5 4977850 -32241 32694 5214.02 521402 -128 127 -0.7 -70 +329 101 10319 99230 0.98798 297.98798 149.48798 14948.79879 0.98798 297.98798 149.48798 14948.79883 0.98798 297.98798 149.48798 14948.79800 2020-01-01 2020-01-02 2020-01-01 00:05:29 2020-01-02 03:33:50 2020-01-01 00:05:29.000 2020-01-02 03:33:50.000 329 99230 49779.5 4977950 329 99230 49779.5 4977950 -32240 32695 5215.02 521502 -128 127 -2.26 -226 +33 102 10023 99933 0.09909 300.09909 150.09909 15160.009 0.09909 300.0991 150.0991 15160.00913 0.09909 300.09909 150.09909 15160.00809 2020-01-01 2020-01-02 2020-01-01 00:00:33 2020-01-02 03:45:33 2020-01-01 00:00:33.000 2020-01-02 03:45:33.000 33 99933 49983 5048283 33 99933 49983 5048283 -32536 32399 4562.009900990099 460763 -125 126 -0.36633663366336633 -37 +330 101 10320 99231 0.99099 297.99099 149.49099 14949.09909 0.99099 297.991 149.49099 14949.09941 0.99099 297.99099 149.49099 14949.09900 2020-01-01 2020-01-02 2020-01-01 00:05:30 2020-01-02 03:33:51 2020-01-01 00:05:30.000 2020-01-02 03:33:51.000 330 99231 49780.5 4978050 330 99231 49780.5 4978050 -32239 32696 5216.02 521602 -128 123 -3.82 -382 +331 101 10321 99232 0.99399 297.99399 149.49399 14949.39939 0.99399 297.994 149.49399 14949.39911 0.99399 297.99399 149.49399 14949.39900 2020-01-01 2020-01-02 2020-01-01 00:05:31 2020-01-02 03:33:52 2020-01-01 00:05:31.000 2020-01-02 03:33:52.000 331 99232 49781.5 4978150 331 99232 49781.5 4978150 -32238 32697 5217.02 521702 -127 124 -2.82 -282 +332 101 10322 99233 0.99699 297.99699 149.49699 14949.69969 0.99699 297.997 149.49699 14949.69969 0.99699 297.99699 149.49699 14949.69900 2020-01-01 2020-01-02 2020-01-01 00:05:32 2020-01-02 03:33:53 2020-01-01 00:05:32.000 2020-01-02 03:33:53.000 332 99233 49782.5 4978250 332 99233 49782.5 4978250 -32237 32698 5218.02 521802 -126 125 -1.82 -182 333 101 10323 99234 1 298 149.5 14950 1 298 149.5 14950 1.00000 298.00000 149.5 14950.00000 2020-01-01 2020-01-02 2020-01-01 00:05:33 2020-01-02 03:33:54 2020-01-01 00:05:33.000 2020-01-02 03:33:54.000 333 99234 49783.5 4978350 333 99234 49783.5 4978350 -32236 32699 5219.02 521902 -125 126 -0.82 -82 -334 101 10324 99235 1.003 298.003 149.503 14950.3003 1.003 298.003 149.503 14950.30029 1.00300 298.00300 149.50300000000013 14950.30000 2020-01-01 2020-01-02 2020-01-01 00:05:34 2020-01-02 03:33:55 2020-01-01 00:05:34.000 2020-01-02 03:33:55.000 334 99235 49784.5 4978450 334 99235 49784.5 4978450 -32235 32700 5220.02 522002 -124 127 0.18 18 -335 101 10325 99236 1.006 298.006 149.506 14950.6006 1.006 298.006 149.506 14950.60088 1.00600 298.00600 149.5059999999999 14950.60000 2020-01-01 2020-01-02 2020-01-01 00:05:35 2020-01-02 03:33:56 2020-01-01 00:05:35.000 2020-01-02 03:33:56.000 335 99236 49785.5 4978550 335 99236 49785.5 4978550 -32234 32701 5221.02 522102 -128 127 -1.38 -138 -336 101 10326 99237 1.009 298.009 149.509 14950.9009 1.009 298.009 149.509 14950.90057 1.00900 298.00900 149.50900000000001 14950.90000 2020-01-01 2020-01-02 2020-01-01 00:05:36 2020-01-02 03:33:57 2020-01-01 00:05:36.000 2020-01-02 03:33:57.000 336 99237 49786.5 4978650 336 99237 49786.5 4978650 -32233 32702 5222.02 522202 -128 123 -2.94 -294 -337 101 10327 99238 1.01201 298.01201 149.51201 14951.2012 1.01201 298.01202 149.51201 14951.20117 1.01201 298.01201 149.51201000000023 14951.20100 2020-01-01 2020-01-02 2020-01-01 00:05:37 2020-01-02 03:33:58 2020-01-01 00:05:37.000 2020-01-02 03:33:58.000 337 99238 49787.5 4978750 337 99238 49787.5 4978750 -32232 32703 5223.02 522302 -127 124 -1.94 -194 -338 101 10328 99239 1.01501 298.01501 149.51501 14951.5015 1.01501 298.015 149.51501 14951.50146 1.01501 298.01501 149.5150099999998 14951.50100 2020-01-01 2020-01-02 2020-01-01 00:05:38 2020-01-02 03:33:59 2020-01-01 00:05:38.000 2020-01-02 03:33:59.000 338 99239 49788.5 4978850 338 99239 49788.5 4978850 -32231 32704 5224.02 522402 -126 125 -0.94 -94 -339 101 10329 99240 1.01801 298.01801 149.51801 14951.8018 1.01801 298.018 149.51801 14951.80177 1.01801 298.01801 149.5180099999998 14951.80100 2020-01-01 2020-01-02 2020-01-01 00:05:39 2020-01-02 03:34:00 2020-01-01 00:05:39.000 2020-01-02 03:34:00.000 339 99240 49789.5 4978950 339 99240 49789.5 4978950 -32230 32705 5225.02 522502 -125 126 0.06 6 -34 102 10024 99934 0.1021 300.1021 150.1021 15160.31231 0.1021 300.1021 150.1021 15160.31224 0.10210 300.10210 150.10210000000004 15160.31210 2020-01-01 2020-01-02 2020-01-01 00:00:34 2020-01-02 03:45:34 2020-01-01 00:00:34.000 2020-01-02 03:45:34.000 34 99934 49984 5048384 34 99934 49984 5048384 -32535 32400 4563.009900990099 460864 -124 127 0.6336633663366337 64 -340 101 10330 99241 1.02102 298.02102 149.52102 14952.1021 1.02102 298.02103 149.52102 14952.10239 1.02102 298.02102 149.5210200000001 14952.10200 2020-01-01 2020-01-02 2020-01-01 00:05:40 2020-01-02 03:34:01 2020-01-01 00:05:40.000 2020-01-02 03:34:01.000 340 99241 49790.5 4979050 340 99241 49790.5 4979050 -32229 32706 5226.02 522602 -124 127 1.06 106 -341 101 10331 99242 1.02402 298.02402 149.52402 14952.4024 1.02402 298.02402 149.52402 14952.40205 1.02402 298.02402 149.52402000000015 14952.40200 2020-01-01 2020-01-02 2020-01-01 00:05:41 2020-01-02 03:34:02 2020-01-01 00:05:41.000 2020-01-02 03:34:02.000 341 99242 49791.5 4979150 341 99242 49791.5 4979150 -32228 32707 5227.02 522702 -128 127 -0.5 -50 -342 101 10332 99243 1.02702 298.02702 149.52702 14952.7027 1.02702 298.02704 149.52702 14952.70264 1.02702 298.02702 149.5270199999997 14952.70200 2020-01-01 2020-01-02 2020-01-01 00:05:42 2020-01-02 03:34:03 2020-01-01 00:05:42.000 2020-01-02 03:34:03.000 342 99243 49792.5 4979250 342 99243 49792.5 4979250 -32227 32708 5228.02 522802 -128 123 -2.06 -206 -343 101 10333 99244 1.03003 298.03003 149.53003 14953.003 1.03003 298.03003 149.53002 14953.00293 1.03003 298.03003 149.53002999999993 14953.00300 2020-01-01 2020-01-02 2020-01-01 00:05:43 2020-01-02 03:34:04 2020-01-01 00:05:43.000 2020-01-02 03:34:04.000 343 99244 49793.5 4979350 343 99244 49793.5 4979350 -32226 32709 5229.02 522902 -127 124 -1.06 -106 -344 101 10334 99245 1.03303 298.03303 149.53303 14953.3033 1.03303 298.03302 149.53303 14953.30323 1.03303 298.03303 149.53303000000002 14953.30300 2020-01-01 2020-01-02 2020-01-01 00:05:44 2020-01-02 03:34:05 2020-01-01 00:05:44.000 2020-01-02 03:34:05.000 344 99245 49794.5 4979450 344 99245 49794.5 4979450 -32225 32710 5230.02 523002 -126 125 -0.06 -6 -345 101 10335 99246 1.03603 298.03603 149.53603 14953.6036 1.03603 298.03604 149.53603 14953.60386 1.03603 298.03603 149.5360299999999 14953.60300 2020-01-01 2020-01-02 2020-01-01 00:05:45 2020-01-02 03:34:06 2020-01-01 00:05:45.000 2020-01-02 03:34:06.000 345 99246 49795.5 4979550 345 99246 49795.5 4979550 -32224 32711 5231.02 523102 -125 126 0.94 94 -346 101 10336 99247 1.03903 298.03903 149.53903 14953.9039 1.03903 298.03903 149.53903 14953.90352 1.03903 298.03903 149.53902999999994 14953.90300 2020-01-01 2020-01-02 2020-01-01 00:05:46 2020-01-02 03:34:07 2020-01-01 00:05:46.000 2020-01-02 03:34:07.000 346 99247 49796.5 4979650 346 99247 49796.5 4979650 -32223 32712 5232.02 523202 -124 127 1.94 194 -347 101 10337 99248 1.04204 298.04204 149.54204 14954.2042 1.04204 298.04205 149.54204 14954.20427 1.04204 298.04204 149.54204000000016 14954.20400 2020-01-01 2020-01-02 2020-01-01 00:05:47 2020-01-02 03:34:08 2020-01-01 00:05:47.000 2020-01-02 03:34:08.000 347 99248 49797.5 4979750 347 99248 49797.5 4979750 -32222 32713 5233.02 523302 -128 127 0.38 38 -348 101 10338 99249 1.04504 298.04504 149.54504 14954.5045 1.04504 298.04504 149.54504 14954.50441 1.04504 298.04504 149.54504000000026 14954.50400 2020-01-01 2020-01-02 2020-01-01 00:05:48 2020-01-02 03:34:09 2020-01-01 00:05:48.000 2020-01-02 03:34:09.000 348 99249 49798.5 4979850 348 99249 49798.5 4979850 -32221 32714 5234.02 523402 -128 123 -1.18 -118 -349 101 10339 99250 1.04804 298.04804 149.54804 14954.8048 1.04804 298.04803 149.54804 14954.80474 1.04804 298.04804 149.54803999999982 14954.80400 2020-01-01 2020-01-02 2020-01-01 00:05:49 2020-01-02 03:34:10 2020-01-01 00:05:49.000 2020-01-02 03:34:10.000 349 99250 49799.5 4979950 349 99250 49799.5 4979950 -32220 32715 5235.02 523502 -127 124 -0.18 -18 -35 102 10025 99935 0.1051 300.1051 150.1051 15160.61561 0.1051 300.1051 150.1051 15160.61542 0.10510 300.10510 150.10510000000014 15160.61510 2020-01-01 2020-01-02 2020-01-01 00:00:35 2020-01-02 03:45:35 2020-01-01 00:00:35.000 2020-01-02 03:45:35.000 35 99935 49985 5048485 35 99935 49985 5048485 -32534 32401 4564.009900990099 460965 -128 127 -0.900990099009901 -91 +334 101 10324 99235 1.003 298.003 149.503 14950.3003 1.003 298.003 149.503 14950.30029 1.00300 298.00300 149.503 14950.30000 2020-01-01 2020-01-02 2020-01-01 00:05:34 2020-01-02 03:33:55 2020-01-01 00:05:34.000 2020-01-02 03:33:55.000 334 99235 49784.5 4978450 334 99235 49784.5 4978450 -32235 32700 5220.02 522002 -124 127 0.18 18 +335 101 10325 99236 1.006 298.006 149.506 14950.6006 1.006 298.006 149.506 14950.60088 1.00600 298.00600 149.506 14950.60000 2020-01-01 2020-01-02 2020-01-01 00:05:35 2020-01-02 03:33:56 2020-01-01 00:05:35.000 2020-01-02 03:33:56.000 335 99236 49785.5 4978550 335 99236 49785.5 4978550 -32234 32701 5221.02 522102 -128 127 -1.38 -138 +336 101 10326 99237 1.009 298.009 149.509 14950.9009 1.009 298.009 149.509 14950.90057 1.00900 298.00900 149.509 14950.90000 2020-01-01 2020-01-02 2020-01-01 00:05:36 2020-01-02 03:33:57 2020-01-01 00:05:36.000 2020-01-02 03:33:57.000 336 99237 49786.5 4978650 336 99237 49786.5 4978650 -32233 32702 5222.02 522202 -128 123 -2.94 -294 +337 101 10327 99238 1.01201 298.01201 149.51201 14951.2012 1.01201 298.01202 149.51201 14951.20117 1.01201 298.01201 149.51201 14951.20100 2020-01-01 2020-01-02 2020-01-01 00:05:37 2020-01-02 03:33:58 2020-01-01 00:05:37.000 2020-01-02 03:33:58.000 337 99238 49787.5 4978750 337 99238 49787.5 4978750 -32232 32703 5223.02 522302 -127 124 -1.94 -194 +338 101 10328 99239 1.01501 298.01501 149.51501 14951.5015 1.01501 298.015 149.51501 14951.50146 1.01501 298.01501 149.51501 14951.50100 2020-01-01 2020-01-02 2020-01-01 00:05:38 2020-01-02 03:33:59 2020-01-01 00:05:38.000 2020-01-02 03:33:59.000 338 99239 49788.5 4978850 338 99239 49788.5 4978850 -32231 32704 5224.02 522402 -126 125 -0.94 -94 +339 101 10329 99240 1.01801 298.01801 149.51801 14951.8018 1.01801 298.018 149.51801 14951.80177 1.01801 298.01801 149.51801 14951.80100 2020-01-01 2020-01-02 2020-01-01 00:05:39 2020-01-02 03:34:00 2020-01-01 00:05:39.000 2020-01-02 03:34:00.000 339 99240 49789.5 4978950 339 99240 49789.5 4978950 -32230 32705 5225.02 522502 -125 126 0.06 6 +34 102 10024 99934 0.1021 300.1021 150.1021 15160.31231 0.1021 300.1021 150.1021 15160.31224 0.10210 300.10210 150.10209999999998 15160.31210 2020-01-01 2020-01-02 2020-01-01 00:00:34 2020-01-02 03:45:34 2020-01-01 00:00:34.000 2020-01-02 03:45:34.000 34 99934 49984 5048384 34 99934 49984 5048384 -32535 32400 4563.009900990099 460864 -124 127 0.6336633663366337 64 +340 101 10330 99241 1.02102 298.02102 149.52102 14952.1021 1.02102 298.02103 149.52102 14952.10239 1.02102 298.02102 149.52102000000002 14952.10200 2020-01-01 2020-01-02 2020-01-01 00:05:40 2020-01-02 03:34:01 2020-01-01 00:05:40.000 2020-01-02 03:34:01.000 340 99241 49790.5 4979050 340 99241 49790.5 4979050 -32229 32706 5226.02 522602 -124 127 1.06 106 +341 101 10331 99242 1.02402 298.02402 149.52402 14952.4024 1.02402 298.02402 149.52402 14952.40205 1.02402 298.02402 149.52402 14952.40200 2020-01-01 2020-01-02 2020-01-01 00:05:41 2020-01-02 03:34:02 2020-01-01 00:05:41.000 2020-01-02 03:34:02.000 341 99242 49791.5 4979150 341 99242 49791.5 4979150 -32228 32707 5227.02 522702 -128 127 -0.5 -50 +342 101 10332 99243 1.02702 298.02702 149.52702 14952.7027 1.02702 298.02704 149.52702 14952.70264 1.02702 298.02702 149.52702 14952.70200 2020-01-01 2020-01-02 2020-01-01 00:05:42 2020-01-02 03:34:03 2020-01-01 00:05:42.000 2020-01-02 03:34:03.000 342 99243 49792.5 4979250 342 99243 49792.5 4979250 -32227 32708 5228.02 522802 -128 123 -2.06 -206 +343 101 10333 99244 1.03003 298.03003 149.53003 14953.003 1.03003 298.03003 149.53002 14953.00293 1.03003 298.03003 149.53003 14953.00300 2020-01-01 2020-01-02 2020-01-01 00:05:43 2020-01-02 03:34:04 2020-01-01 00:05:43.000 2020-01-02 03:34:04.000 343 99244 49793.5 4979350 343 99244 49793.5 4979350 -32226 32709 5229.02 522902 -127 124 -1.06 -106 +344 101 10334 99245 1.03303 298.03303 149.53303 14953.3033 1.03303 298.03302 149.53303 14953.30323 1.03303 298.03303 149.53303 14953.30300 2020-01-01 2020-01-02 2020-01-01 00:05:44 2020-01-02 03:34:05 2020-01-01 00:05:44.000 2020-01-02 03:34:05.000 344 99245 49794.5 4979450 344 99245 49794.5 4979450 -32225 32710 5230.02 523002 -126 125 -0.06 -6 +345 101 10335 99246 1.03603 298.03603 149.53603 14953.6036 1.03603 298.03604 149.53603 14953.60386 1.03603 298.03603 149.53602999999998 14953.60300 2020-01-01 2020-01-02 2020-01-01 00:05:45 2020-01-02 03:34:06 2020-01-01 00:05:45.000 2020-01-02 03:34:06.000 345 99246 49795.5 4979550 345 99246 49795.5 4979550 -32224 32711 5231.02 523102 -125 126 0.94 94 +346 101 10336 99247 1.03903 298.03903 149.53903 14953.9039 1.03903 298.03903 149.53903 14953.90352 1.03903 298.03903 149.53903 14953.90300 2020-01-01 2020-01-02 2020-01-01 00:05:46 2020-01-02 03:34:07 2020-01-01 00:05:46.000 2020-01-02 03:34:07.000 346 99247 49796.5 4979650 346 99247 49796.5 4979650 -32223 32712 5232.02 523202 -124 127 1.94 194 +347 101 10337 99248 1.04204 298.04204 149.54204 14954.2042 1.04204 298.04205 149.54204 14954.20427 1.04204 298.04204 149.54204 14954.20400 2020-01-01 2020-01-02 2020-01-01 00:05:47 2020-01-02 03:34:08 2020-01-01 00:05:47.000 2020-01-02 03:34:08.000 347 99248 49797.5 4979750 347 99248 49797.5 4979750 -32222 32713 5233.02 523302 -128 127 0.38 38 +348 101 10338 99249 1.04504 298.04504 149.54504 14954.5045 1.04504 298.04504 149.54504 14954.50441 1.04504 298.04504 149.54504 14954.50400 2020-01-01 2020-01-02 2020-01-01 00:05:48 2020-01-02 03:34:09 2020-01-01 00:05:48.000 2020-01-02 03:34:09.000 348 99249 49798.5 4979850 348 99249 49798.5 4979850 -32221 32714 5234.02 523402 -128 123 -1.18 -118 +349 101 10339 99250 1.04804 298.04804 149.54804 14954.8048 1.04804 298.04803 149.54804 14954.80474 1.04804 298.04804 149.54804000000001 14954.80400 2020-01-01 2020-01-02 2020-01-01 00:05:49 2020-01-02 03:34:10 2020-01-01 00:05:49.000 2020-01-02 03:34:10.000 349 99250 49799.5 4979950 349 99250 49799.5 4979950 -32220 32715 5235.02 523502 -127 124 -0.18 -18 +35 102 10025 99935 0.1051 300.1051 150.1051 15160.61561 0.1051 300.1051 150.1051 15160.61542 0.10510 300.10510 150.10510000000002 15160.61510 2020-01-01 2020-01-02 2020-01-01 00:00:35 2020-01-02 03:45:35 2020-01-01 00:00:35.000 2020-01-02 03:45:35.000 35 99935 49985 5048485 35 99935 49985 5048485 -32534 32401 4564.009900990099 460965 -128 127 -0.900990099009901 -91 350 101 10340 99251 1.05105 298.05105 149.55105 14955.1051 1.05105 298.05106 149.55105 14955.10532 1.05105 298.05105 149.55105 14955.10500 2020-01-01 2020-01-02 2020-01-01 00:05:50 2020-01-02 03:34:11 2020-01-01 00:05:50.000 2020-01-02 03:34:11.000 350 99251 49800.5 4980050 350 99251 49800.5 4980050 -32219 32716 5236.02 523602 -126 125 0.82 82 -351 101 10341 99252 1.05405 298.05405 149.55405 14955.4054 1.05405 298.05405 149.55404 14955.40499 1.05405 298.05405 149.55405000000016 14955.40500 2020-01-01 2020-01-02 2020-01-01 00:05:51 2020-01-02 03:34:12 2020-01-01 00:05:51.000 2020-01-02 03:34:12.000 351 99252 49801.5 4980150 351 99252 49801.5 4980150 -32218 32717 5237.02 523702 -125 126 1.82 182 -352 101 10342 99253 1.05705 298.05705 149.55705 14955.7057 1.05705 298.05707 149.55705 14955.70574 1.05705 298.05705 149.5570500000001 14955.70500 2020-01-01 2020-01-02 2020-01-01 00:05:52 2020-01-02 03:34:13 2020-01-01 00:05:52.000 2020-01-02 03:34:13.000 352 99253 49802.5 4980250 352 99253 49802.5 4980250 -32217 32718 5238.02 523802 -124 127 2.82 282 -353 101 10343 99254 1.06006 298.06006 149.56006 14956.006 1.06006 298.06006 149.56005 14956.00587 1.06006 298.06006 149.5600599999999 14956.00600 2020-01-01 2020-01-02 2020-01-01 00:05:53 2020-01-02 03:34:14 2020-01-01 00:05:53.000 2020-01-02 03:34:14.000 353 99254 49803.5 4980350 353 99254 49803.5 4980350 -32216 32719 5239.02 523902 -128 127 1.26 126 -354 101 10344 99255 1.06306 298.06306 149.56306 14956.3063 1.06306 298.06305 149.56306 14956.3062 1.06306 298.06306 149.56306000000012 14956.30600 2020-01-01 2020-01-02 2020-01-01 00:05:54 2020-01-02 03:34:15 2020-01-01 00:05:54.000 2020-01-02 03:34:15.000 354 99255 49804.5 4980450 354 99255 49804.5 4980450 -32215 32720 5240.02 524002 -128 127 -0.3 -30 -355 101 10345 99256 1.06606 298.06606 149.56606 14956.6066 1.06606 298.06607 149.56606 14956.6068 1.06606 298.06606 149.56605999999994 14956.60600 2020-01-01 2020-01-02 2020-01-01 00:05:55 2020-01-02 03:34:16 2020-01-01 00:05:55.000 2020-01-02 03:34:16.000 355 99256 49805.5 4980550 355 99256 49805.5 4980550 -32214 32721 5241.02 524102 -128 123 -1.86 -186 -356 101 10346 99257 1.06906 298.06906 149.56906 14956.9069 1.06906 298.06906 149.56907 14956.90709 1.06906 298.06906 149.56905999999992 14956.90600 2020-01-01 2020-01-02 2020-01-01 00:05:56 2020-01-02 03:34:17 2020-01-01 00:05:56.000 2020-01-02 03:34:17.000 356 99257 49806.5 4980650 356 99257 49806.5 4980650 -32213 32722 5242.02 524202 -127 124 -0.86 -86 -357 101 10347 99258 1.07207 298.07207 149.57207 14957.2072 1.07207 298.07208 149.57207 14957.20721 1.07207 298.07207 149.57207000000008 14957.20700 2020-01-01 2020-01-02 2020-01-01 00:05:57 2020-01-02 03:34:18 2020-01-01 00:05:57.000 2020-01-02 03:34:18.000 357 99258 49807.5 4980750 357 99258 49807.5 4980750 -32212 32723 5243.02 524302 -126 125 0.14 14 -358 101 10348 99259 1.07507 298.07507 149.57507 14957.5075 1.07507 298.07507 149.57507 14957.50734 1.07507 298.07507 149.57507000000004 14957.50700 2020-01-01 2020-01-02 2020-01-01 00:05:58 2020-01-02 03:34:19 2020-01-01 00:05:58.000 2020-01-02 03:34:19.000 358 99259 49808.5 4980850 358 99259 49808.5 4980850 -32211 32724 5244.02 524402 -125 126 1.14 114 -359 101 10349 99260 1.07807 298.07807 149.57807 14957.8078 1.07807 298.07806 149.57807 14957.80767 1.07807 298.07807 149.57806999999985 14957.80700 2020-01-01 2020-01-02 2020-01-01 00:05:59 2020-01-02 03:34:20 2020-01-01 00:05:59.000 2020-01-02 03:34:20.000 359 99260 49809.5 4980950 359 99260 49809.5 4980950 -32210 32725 5245.02 524502 -124 127 2.14 214 -36 102 10026 99936 0.1081 300.1081 150.1081 15160.91891 0.1081 300.1081 150.1081 15160.91873 0.10810 300.10810 150.10809999999998 15160.91810 2020-01-01 2020-01-02 2020-01-01 00:00:36 2020-01-02 03:45:36 2020-01-01 00:00:36.000 2020-01-02 03:45:36.000 36 99936 49986 5048586 36 99936 49986 5048586 -32533 32402 4565.009900990099 461066 -128 123 -2.4356435643564356 -246 -360 101 10350 99261 1.08108 298.08108 149.58108 14958.1081 1.08108 298.0811 149.58108 14958.10827 1.08108 298.08108 149.58107999999996 14958.10800 2020-01-01 2020-01-02 2020-01-01 00:06:00 2020-01-02 03:34:21 2020-01-01 00:06:00.000 2020-01-02 03:34:21.000 360 99261 49810.5 4981050 360 99261 49810.5 4981050 -32209 32726 5246.02 524602 -128 127 0.58 58 +351 101 10341 99252 1.05405 298.05405 149.55405 14955.4054 1.05405 298.05405 149.55404 14955.40499 1.05405 298.05405 149.55405000000002 14955.40500 2020-01-01 2020-01-02 2020-01-01 00:05:51 2020-01-02 03:34:12 2020-01-01 00:05:51.000 2020-01-02 03:34:12.000 351 99252 49801.5 4980150 351 99252 49801.5 4980150 -32218 32717 5237.02 523702 -125 126 1.82 182 +352 101 10342 99253 1.05705 298.05705 149.55705 14955.7057 1.05705 298.05707 149.55705 14955.70574 1.05705 298.05705 149.55705 14955.70500 2020-01-01 2020-01-02 2020-01-01 00:05:52 2020-01-02 03:34:13 2020-01-01 00:05:52.000 2020-01-02 03:34:13.000 352 99253 49802.5 4980250 352 99253 49802.5 4980250 -32217 32718 5238.02 523802 -124 127 2.82 282 +353 101 10343 99254 1.06006 298.06006 149.56006 14956.006 1.06006 298.06006 149.56005 14956.00587 1.06006 298.06006 149.56006 14956.00600 2020-01-01 2020-01-02 2020-01-01 00:05:53 2020-01-02 03:34:14 2020-01-01 00:05:53.000 2020-01-02 03:34:14.000 353 99254 49803.5 4980350 353 99254 49803.5 4980350 -32216 32719 5239.02 523902 -128 127 1.26 126 +354 101 10344 99255 1.06306 298.06306 149.56306 14956.3063 1.06306 298.06305 149.56306 14956.3062 1.06306 298.06306 149.56306 14956.30600 2020-01-01 2020-01-02 2020-01-01 00:05:54 2020-01-02 03:34:15 2020-01-01 00:05:54.000 2020-01-02 03:34:15.000 354 99255 49804.5 4980450 354 99255 49804.5 4980450 -32215 32720 5240.02 524002 -128 127 -0.3 -30 +355 101 10345 99256 1.06606 298.06606 149.56606 14956.6066 1.06606 298.06607 149.56606 14956.6068 1.06606 298.06606 149.56606 14956.60600 2020-01-01 2020-01-02 2020-01-01 00:05:55 2020-01-02 03:34:16 2020-01-01 00:05:55.000 2020-01-02 03:34:16.000 355 99256 49805.5 4980550 355 99256 49805.5 4980550 -32214 32721 5241.02 524102 -128 123 -1.86 -186 +356 101 10346 99257 1.06906 298.06906 149.56906 14956.9069 1.06906 298.06906 149.56907 14956.90709 1.06906 298.06906 149.56906 14956.90600 2020-01-01 2020-01-02 2020-01-01 00:05:56 2020-01-02 03:34:17 2020-01-01 00:05:56.000 2020-01-02 03:34:17.000 356 99257 49806.5 4980650 356 99257 49806.5 4980650 -32213 32722 5242.02 524202 -127 124 -0.86 -86 +357 101 10347 99258 1.07207 298.07207 149.57207 14957.2072 1.07207 298.07208 149.57207 14957.20721 1.07207 298.07207 149.57207 14957.20700 2020-01-01 2020-01-02 2020-01-01 00:05:57 2020-01-02 03:34:18 2020-01-01 00:05:57.000 2020-01-02 03:34:18.000 357 99258 49807.5 4980750 357 99258 49807.5 4980750 -32212 32723 5243.02 524302 -126 125 0.14 14 +358 101 10348 99259 1.07507 298.07507 149.57507 14957.5075 1.07507 298.07507 149.57507 14957.50734 1.07507 298.07507 149.57506999999998 14957.50700 2020-01-01 2020-01-02 2020-01-01 00:05:58 2020-01-02 03:34:19 2020-01-01 00:05:58.000 2020-01-02 03:34:19.000 358 99259 49808.5 4980850 358 99259 49808.5 4980850 -32211 32724 5244.02 524402 -125 126 1.14 114 +359 101 10349 99260 1.07807 298.07807 149.57807 14957.8078 1.07807 298.07806 149.57807 14957.80767 1.07807 298.07807 149.57807 14957.80700 2020-01-01 2020-01-02 2020-01-01 00:05:59 2020-01-02 03:34:20 2020-01-01 00:05:59.000 2020-01-02 03:34:20.000 359 99260 49809.5 4980950 359 99260 49809.5 4980950 -32210 32725 5245.02 524502 -124 127 2.14 214 +36 102 10026 99936 0.1081 300.1081 150.1081 15160.91891 0.1081 300.1081 150.1081 15160.91873 0.10810 300.10810 150.1081 15160.91810 2020-01-01 2020-01-02 2020-01-01 00:00:36 2020-01-02 03:45:36 2020-01-01 00:00:36.000 2020-01-02 03:45:36.000 36 99936 49986 5048586 36 99936 49986 5048586 -32533 32402 4565.009900990099 461066 -128 123 -2.4356435643564356 -246 +360 101 10350 99261 1.08108 298.08108 149.58108 14958.1081 1.08108 298.0811 149.58108 14958.10827 1.08108 298.08108 149.58108000000001 14958.10800 2020-01-01 2020-01-02 2020-01-01 00:06:00 2020-01-02 03:34:21 2020-01-01 00:06:00.000 2020-01-02 03:34:21.000 360 99261 49810.5 4981050 360 99261 49810.5 4981050 -32209 32726 5246.02 524602 -128 127 0.58 58 361 101 10351 99262 1.08408 298.08408 149.58408 14958.4084 1.08408 298.08408 149.58408 14958.40856 1.08408 298.08408 149.58408 14958.40800 2020-01-01 2020-01-02 2020-01-01 00:06:01 2020-01-02 03:34:22 2020-01-01 00:06:01.000 2020-01-02 03:34:22.000 361 99262 49811.5 4981150 361 99262 49811.5 4981150 -32208 32727 5247.02 524702 -128 123 -0.98 -98 -362 101 10352 99263 1.08708 298.08708 149.58708 14958.7087 1.08708 298.0871 149.58708 14958.70868 1.08708 298.08708 149.58707999999996 14958.70800 2020-01-01 2020-01-02 2020-01-01 00:06:02 2020-01-02 03:34:23 2020-01-01 00:06:02.000 2020-01-02 03:34:23.000 362 99263 49812.5 4981250 362 99263 49812.5 4981250 -32207 32728 5248.02 524802 -127 124 0.02 2 -363 101 10353 99264 1.09009 298.09009 149.59009 14959.009 1.09009 298.0901 149.59008 14959.00884 1.09009 298.09009 149.59008999999992 14959.00900 2020-01-01 2020-01-02 2020-01-01 00:06:03 2020-01-02 03:34:24 2020-01-01 00:06:03.000 2020-01-02 03:34:24.000 363 99264 49813.5 4981350 363 99264 49813.5 4981350 -32206 32729 5249.02 524902 -126 125 1.02 102 -364 101 10354 99265 1.09309 298.09309 149.59309 14959.3093 1.09309 298.09308 149.59309 14959.30915 1.09309 298.09309 149.59309000000007 14959.30900 2020-01-01 2020-01-02 2020-01-01 00:06:04 2020-01-02 03:34:25 2020-01-01 00:06:04.000 2020-01-02 03:34:25.000 364 99265 49814.5 4981450 364 99265 49814.5 4981450 -32205 32730 5250.02 525002 -125 126 2.02 202 -365 101 10355 99266 1.09609 298.09609 149.59609 14959.6096 1.09609 298.0961 149.59609 14959.6099 1.09609 298.09609 149.5960899999999 14959.60900 2020-01-01 2020-01-02 2020-01-01 00:06:05 2020-01-02 03:34:26 2020-01-01 00:06:05.000 2020-01-02 03:34:26.000 365 99266 49815.5 4981550 365 99266 49815.5 4981550 -32204 32731 5251.02 525102 -124 127 3.02 302 -366 101 10356 99267 1.09909 298.09909 149.59909 14959.9099 1.09909 298.0991 149.5991 14959.91003 1.09909 298.09909 149.59908999999993 14959.90900 2020-01-01 2020-01-02 2020-01-01 00:06:06 2020-01-02 03:34:27 2020-01-01 00:06:06.000 2020-01-02 03:34:27.000 366 99267 49816.5 4981650 366 99267 49816.5 4981650 -32203 32732 5252.02 525202 -128 127 1.46 146 -367 101 10357 99268 1.1021 298.1021 149.6021 14960.21021 1.1021 298.1021 149.6021 14960.21015 1.10210 298.10210 149.60210000000004 14960.21000 2020-01-01 2020-01-02 2020-01-01 00:06:07 2020-01-02 03:34:28 2020-01-01 00:06:07.000 2020-01-02 03:34:28.000 367 99268 49817.5 4981750 367 99268 49817.5 4981750 -32202 32733 5253.02 525302 -128 123 -0.1 -10 +362 101 10352 99263 1.08708 298.08708 149.58708 14958.7087 1.08708 298.0871 149.58708 14958.70868 1.08708 298.08708 149.58708000000001 14958.70800 2020-01-01 2020-01-02 2020-01-01 00:06:02 2020-01-02 03:34:23 2020-01-01 00:06:02.000 2020-01-02 03:34:23.000 362 99263 49812.5 4981250 362 99263 49812.5 4981250 -32207 32728 5248.02 524802 -127 124 0.02 2 +363 101 10353 99264 1.09009 298.09009 149.59009 14959.009 1.09009 298.0901 149.59008 14959.00884 1.09009 298.09009 149.59009 14959.00900 2020-01-01 2020-01-02 2020-01-01 00:06:03 2020-01-02 03:34:24 2020-01-01 00:06:03.000 2020-01-02 03:34:24.000 363 99264 49813.5 4981350 363 99264 49813.5 4981350 -32206 32729 5249.02 524902 -126 125 1.02 102 +364 101 10354 99265 1.09309 298.09309 149.59309 14959.3093 1.09309 298.09308 149.59309 14959.30915 1.09309 298.09309 149.59309 14959.30900 2020-01-01 2020-01-02 2020-01-01 00:06:04 2020-01-02 03:34:25 2020-01-01 00:06:04.000 2020-01-02 03:34:25.000 364 99265 49814.5 4981450 364 99265 49814.5 4981450 -32205 32730 5250.02 525002 -125 126 2.02 202 +365 101 10355 99266 1.09609 298.09609 149.59609 14959.6096 1.09609 298.0961 149.59609 14959.6099 1.09609 298.09609 149.59609 14959.60900 2020-01-01 2020-01-02 2020-01-01 00:06:05 2020-01-02 03:34:26 2020-01-01 00:06:05.000 2020-01-02 03:34:26.000 365 99266 49815.5 4981550 365 99266 49815.5 4981550 -32204 32731 5251.02 525102 -124 127 3.02 302 +366 101 10356 99267 1.09909 298.09909 149.59909 14959.9099 1.09909 298.0991 149.5991 14959.91003 1.09909 298.09909 149.59909 14959.90900 2020-01-01 2020-01-02 2020-01-01 00:06:06 2020-01-02 03:34:27 2020-01-01 00:06:06.000 2020-01-02 03:34:27.000 366 99267 49816.5 4981650 366 99267 49816.5 4981650 -32203 32732 5252.02 525202 -128 127 1.46 146 +367 101 10357 99268 1.1021 298.1021 149.6021 14960.21021 1.1021 298.1021 149.6021 14960.21015 1.10210 298.10210 149.60209999999998 14960.21000 2020-01-01 2020-01-02 2020-01-01 00:06:07 2020-01-02 03:34:28 2020-01-01 00:06:07.000 2020-01-02 03:34:28.000 367 99268 49817.5 4981750 367 99268 49817.5 4981750 -32202 32733 5253.02 525302 -128 123 -0.1 -10 368 101 10358 99269 1.1051 298.1051 149.6051 14960.51051 1.1051 298.1051 149.6051 14960.51031 1.10510 298.10510 149.6051 14960.51000 2020-01-01 2020-01-02 2020-01-01 00:06:08 2020-01-02 03:34:29 2020-01-01 00:06:08.000 2020-01-02 03:34:29.000 368 99269 49818.5 4981850 368 99269 49818.5 4981850 -32201 32734 5254.02 525402 -127 124 0.9 90 -369 101 10359 99270 1.1081 298.1081 149.6081 14960.81081 1.1081 298.1081 149.6081 14960.81062 1.10810 298.10810 149.60809999999998 14960.81000 2020-01-01 2020-01-02 2020-01-01 00:06:09 2020-01-02 03:34:30 2020-01-01 00:06:09.000 2020-01-02 03:34:30.000 369 99270 49819.5 4981950 369 99270 49819.5 4981950 -32200 32735 5255.02 525502 -126 125 1.9 190 -37 102 10027 99937 0.11111 300.11111 150.11111 15161.22222 0.11111 300.1111 150.11111 15161.22248 0.11111 300.11111 150.1111099999999 15161.22211 2020-01-01 2020-01-02 2020-01-01 00:00:37 2020-01-02 03:45:37 2020-01-01 00:00:37.000 2020-01-02 03:45:37.000 37 99937 49987 5048687 37 99937 49987 5048687 -32532 32403 4566.009900990099 461167 -127 124 -1.4356435643564356 -145 -370 101 10360 99271 1.11111 298.11111 149.61111 14961.11111 1.11111 298.1111 149.61111 14961.11137 1.11111 298.11111 149.6111099999999 14961.11100 2020-01-01 2020-01-02 2020-01-01 00:06:10 2020-01-02 03:34:31 2020-01-01 00:06:10.000 2020-01-02 03:34:31.000 370 99271 49820.5 4982050 370 99271 49820.5 4982050 -32199 32736 5256.02 525602 -125 126 2.9 290 -371 101 10361 99272 1.11411 298.11411 149.61411 14961.41141 1.11411 298.1141 149.61411 14961.4115 1.11411 298.11411 149.61411000000015 14961.41100 2020-01-01 2020-01-02 2020-01-01 00:06:11 2020-01-02 03:34:32 2020-01-01 00:06:11.000 2020-01-02 03:34:32.000 371 99272 49821.5 4982150 371 99272 49821.5 4982150 -32198 32737 5257.02 525702 -124 127 3.9 390 -372 101 10362 99273 1.11711 298.11711 149.61711 14961.71171 1.11711 298.11713 149.61711 14961.71165 1.11711 298.11711 149.61710999999997 14961.71100 2020-01-01 2020-01-02 2020-01-01 00:06:12 2020-01-02 03:34:33 2020-01-01 00:06:12.000 2020-01-02 03:34:33.000 372 99273 49822.5 4982250 372 99273 49822.5 4982250 -32197 32738 5258.02 525802 -128 127 2.34 234 -373 101 10363 99274 1.12012 298.12012 149.62012 14962.01201 1.12012 298.12012 149.62011 14962.01179 1.12012 298.12012 149.62011999999987 14962.01200 2020-01-01 2020-01-02 2020-01-01 00:06:13 2020-01-02 03:34:34 2020-01-01 00:06:13.000 2020-01-02 03:34:34.000 373 99274 49823.5 4982350 373 99274 49823.5 4982350 -32196 32739 5259.02 525902 -128 123 0.78 78 -374 101 10364 99275 1.12312 298.12312 149.62312 14962.31231 1.12312 298.1231 149.62312 14962.31208 1.12312 298.12312 149.62312000000009 14962.31200 2020-01-01 2020-01-02 2020-01-01 00:06:14 2020-01-02 03:34:35 2020-01-01 00:06:14.000 2020-01-02 03:34:35.000 374 99275 49824.5 4982450 374 99275 49824.5 4982450 -32195 32740 5260.02 526002 -127 124 1.78 178 -375 101 10365 99276 1.12612 298.12612 149.62612 14962.61261 1.12612 298.12613 149.62612 14962.61283 1.12612 298.12612 149.62612000000004 14962.61200 2020-01-01 2020-01-02 2020-01-01 00:06:15 2020-01-02 03:34:36 2020-01-01 00:06:15.000 2020-01-02 03:34:36.000 375 99276 49825.5 4982550 375 99276 49825.5 4982550 -32194 32741 5261.02 526102 -126 125 2.78 278 -376 101 10366 99277 1.12912 298.12912 149.62912 14962.91291 1.12912 298.12912 149.62912 14962.91297 1.12912 298.12912 149.6291199999999 14962.91200 2020-01-01 2020-01-02 2020-01-01 00:06:16 2020-01-02 03:34:37 2020-01-01 00:06:16.000 2020-01-02 03:34:37.000 376 99277 49826.5 4982650 376 99277 49826.5 4982650 -32193 32742 5262.02 526202 -125 126 3.78 378 +369 101 10359 99270 1.1081 298.1081 149.6081 14960.81081 1.1081 298.1081 149.6081 14960.81062 1.10810 298.10810 149.6081 14960.81000 2020-01-01 2020-01-02 2020-01-01 00:06:09 2020-01-02 03:34:30 2020-01-01 00:06:09.000 2020-01-02 03:34:30.000 369 99270 49819.5 4981950 369 99270 49819.5 4981950 -32200 32735 5255.02 525502 -126 125 1.9 190 +37 102 10027 99937 0.11111 300.11111 150.11111 15161.22222 0.11111 300.1111 150.11111 15161.22248 0.11111 300.11111 150.11111 15161.22211 2020-01-01 2020-01-02 2020-01-01 00:00:37 2020-01-02 03:45:37 2020-01-01 00:00:37.000 2020-01-02 03:45:37.000 37 99937 49987 5048687 37 99937 49987 5048687 -32532 32403 4566.009900990099 461167 -127 124 -1.4356435643564356 -145 +370 101 10360 99271 1.11111 298.11111 149.61111 14961.11111 1.11111 298.1111 149.61111 14961.11137 1.11111 298.11111 149.61111 14961.11100 2020-01-01 2020-01-02 2020-01-01 00:06:10 2020-01-02 03:34:31 2020-01-01 00:06:10.000 2020-01-02 03:34:31.000 370 99271 49820.5 4982050 370 99271 49820.5 4982050 -32199 32736 5256.02 525602 -125 126 2.9 290 +371 101 10361 99272 1.11411 298.11411 149.61411 14961.41141 1.11411 298.1141 149.61411 14961.4115 1.11411 298.11411 149.61411 14961.41100 2020-01-01 2020-01-02 2020-01-01 00:06:11 2020-01-02 03:34:32 2020-01-01 00:06:11.000 2020-01-02 03:34:32.000 371 99272 49821.5 4982150 371 99272 49821.5 4982150 -32198 32737 5257.02 525702 -124 127 3.9 390 +372 101 10362 99273 1.11711 298.11711 149.61711 14961.71171 1.11711 298.11713 149.61711 14961.71165 1.11711 298.11711 149.61711 14961.71100 2020-01-01 2020-01-02 2020-01-01 00:06:12 2020-01-02 03:34:33 2020-01-01 00:06:12.000 2020-01-02 03:34:33.000 372 99273 49822.5 4982250 372 99273 49822.5 4982250 -32197 32738 5258.02 525802 -128 127 2.34 234 +373 101 10363 99274 1.12012 298.12012 149.62012 14962.01201 1.12012 298.12012 149.62011 14962.01179 1.12012 298.12012 149.62012000000001 14962.01200 2020-01-01 2020-01-02 2020-01-01 00:06:13 2020-01-02 03:34:34 2020-01-01 00:06:13.000 2020-01-02 03:34:34.000 373 99274 49823.5 4982350 373 99274 49823.5 4982350 -32196 32739 5259.02 525902 -128 123 0.78 78 +374 101 10364 99275 1.12312 298.12312 149.62312 14962.31231 1.12312 298.1231 149.62312 14962.31208 1.12312 298.12312 149.62312 14962.31200 2020-01-01 2020-01-02 2020-01-01 00:06:14 2020-01-02 03:34:35 2020-01-01 00:06:14.000 2020-01-02 03:34:35.000 374 99275 49824.5 4982450 374 99275 49824.5 4982450 -32195 32740 5260.02 526002 -127 124 1.78 178 +375 101 10365 99276 1.12612 298.12612 149.62612 14962.61261 1.12612 298.12613 149.62612 14962.61283 1.12612 298.12612 149.62612 14962.61200 2020-01-01 2020-01-02 2020-01-01 00:06:15 2020-01-02 03:34:36 2020-01-01 00:06:15.000 2020-01-02 03:34:36.000 375 99276 49825.5 4982550 375 99276 49825.5 4982550 -32194 32741 5261.02 526102 -126 125 2.78 278 +376 101 10366 99277 1.12912 298.12912 149.62912 14962.91291 1.12912 298.12912 149.62912 14962.91297 1.12912 298.12912 149.62912 14962.91200 2020-01-01 2020-01-02 2020-01-01 00:06:16 2020-01-02 03:34:37 2020-01-01 00:06:16.000 2020-01-02 03:34:37.000 376 99277 49826.5 4982650 376 99277 49826.5 4982650 -32193 32742 5262.02 526202 -125 126 3.78 378 377 101 10367 99278 1.13213 298.13213 149.63213 14963.21321 1.13213 298.13214 149.63213 14963.21312 1.13213 298.13213 149.63213 14963.21300 2020-01-01 2020-01-02 2020-01-01 00:06:17 2020-01-02 03:34:38 2020-01-01 00:06:17.000 2020-01-02 03:34:38.000 377 99278 49827.5 4982750 377 99278 49827.5 4982750 -32192 32743 5263.02 526302 -124 127 4.78 478 -378 101 10368 99279 1.13513 298.13513 149.63513 14963.51351 1.13513 298.13513 149.63513 14963.51326 1.13513 298.13513 149.63513000000003 14963.51300 2020-01-01 2020-01-02 2020-01-01 00:06:18 2020-01-02 03:34:39 2020-01-01 00:06:18.000 2020-01-02 03:34:39.000 378 99279 49828.5 4982850 378 99279 49828.5 4982850 -32191 32744 5264.02 526402 -128 127 3.22 322 -379 101 10369 99280 1.13813 298.13813 149.63813 14963.81381 1.13813 298.13815 149.63814 14963.81401 1.13813 298.13813 149.63812999999993 14963.81300 2020-01-01 2020-01-02 2020-01-01 00:06:19 2020-01-02 03:34:40 2020-01-01 00:06:19.000 2020-01-02 03:34:40.000 379 99280 49829.5 4982950 379 99280 49829.5 4982950 -32190 32745 5265.02 526502 -128 127 1.66 166 -38 102 10028 99938 0.11411 300.11411 150.11411 15161.52552 0.11411 300.1141 150.11411 15161.52562 0.11411 300.11411 150.11411000000012 15161.52511 2020-01-01 2020-01-02 2020-01-01 00:00:38 2020-01-02 03:45:38 2020-01-01 00:00:38.000 2020-01-02 03:45:38.000 38 99938 49988 5048788 38 99938 49988 5048788 -32531 32404 4567.009900990099 461268 -126 125 -0.43564356435643564 -44 -380 101 10370 99281 1.14114 298.14114 149.64114 14964.11411 1.14114 298.14114 149.64114 14964.11431 1.14114 298.14114 149.64113999999995 14964.11400 2020-01-01 2020-01-02 2020-01-01 00:06:20 2020-01-02 03:34:41 2020-01-01 00:06:20.000 2020-01-02 03:34:41.000 380 99281 49830.5 4983050 380 99281 49830.5 4983050 -32189 32746 5266.02 526602 -128 124 0.1 10 -381 101 10371 99282 1.14414 298.14414 149.64414 14964.41441 1.14414 298.14413 149.64414 14964.41448 1.14414 298.14414 149.64414000000005 14964.41400 2020-01-01 2020-01-02 2020-01-01 00:06:21 2020-01-02 03:34:42 2020-01-01 00:06:21.000 2020-01-02 03:34:42.000 381 99282 49831.5 4983150 381 99282 49831.5 4983150 -32188 32747 5267.02 526702 -127 125 1.1 110 -382 101 10372 99283 1.14714 298.14714 149.64714 14964.71471 1.14714 298.14716 149.64714 14964.71459 1.14714 298.14714 149.64713999999992 14964.71400 2020-01-01 2020-01-02 2020-01-01 00:06:22 2020-01-02 03:34:43 2020-01-01 00:06:22.000 2020-01-02 03:34:43.000 382 99283 49832.5 4983250 382 99283 49832.5 4983250 -32187 32748 5268.02 526802 -126 126 2.1 210 +378 101 10368 99279 1.13513 298.13513 149.63513 14963.51351 1.13513 298.13513 149.63513 14963.51326 1.13513 298.13513 149.63513 14963.51300 2020-01-01 2020-01-02 2020-01-01 00:06:18 2020-01-02 03:34:39 2020-01-01 00:06:18.000 2020-01-02 03:34:39.000 378 99279 49828.5 4982850 378 99279 49828.5 4982850 -32191 32744 5264.02 526402 -128 127 3.22 322 +379 101 10369 99280 1.13813 298.13813 149.63813 14963.81381 1.13813 298.13815 149.63814 14963.81401 1.13813 298.13813 149.63813 14963.81300 2020-01-01 2020-01-02 2020-01-01 00:06:19 2020-01-02 03:34:40 2020-01-01 00:06:19.000 2020-01-02 03:34:40.000 379 99280 49829.5 4982950 379 99280 49829.5 4982950 -32190 32745 5265.02 526502 -128 127 1.66 166 +38 102 10028 99938 0.11411 300.11411 150.11411 15161.52552 0.11411 300.1141 150.11411 15161.52562 0.11411 300.11411 150.11411 15161.52511 2020-01-01 2020-01-02 2020-01-01 00:00:38 2020-01-02 03:45:38 2020-01-01 00:00:38.000 2020-01-02 03:45:38.000 38 99938 49988 5048788 38 99938 49988 5048788 -32531 32404 4567.009900990099 461268 -126 125 -0.43564356435643564 -44 +380 101 10370 99281 1.14114 298.14114 149.64114 14964.11411 1.14114 298.14114 149.64114 14964.11431 1.14114 298.14114 149.64114 14964.11400 2020-01-01 2020-01-02 2020-01-01 00:06:20 2020-01-02 03:34:41 2020-01-01 00:06:20.000 2020-01-02 03:34:41.000 380 99281 49830.5 4983050 380 99281 49830.5 4983050 -32189 32746 5266.02 526602 -128 124 0.1 10 +381 101 10371 99282 1.14414 298.14414 149.64414 14964.41441 1.14414 298.14413 149.64414 14964.41448 1.14414 298.14414 149.64414 14964.41400 2020-01-01 2020-01-02 2020-01-01 00:06:21 2020-01-02 03:34:42 2020-01-01 00:06:21.000 2020-01-02 03:34:42.000 381 99282 49831.5 4983150 381 99282 49831.5 4983150 -32188 32747 5267.02 526702 -127 125 1.1 110 +382 101 10372 99283 1.14714 298.14714 149.64714 14964.71471 1.14714 298.14716 149.64714 14964.71459 1.14714 298.14714 149.64714 14964.71400 2020-01-01 2020-01-02 2020-01-01 00:06:22 2020-01-02 03:34:43 2020-01-01 00:06:22.000 2020-01-02 03:34:43.000 382 99283 49832.5 4983250 382 99283 49832.5 4983250 -32187 32748 5268.02 526802 -126 126 2.1 210 383 101 10373 99284 1.15015 298.15015 149.65015 14965.01501 1.15015 298.15015 149.65014 14965.01472 1.15015 298.15015 149.65015 14965.01500 2020-01-01 2020-01-02 2020-01-01 00:06:23 2020-01-02 03:34:44 2020-01-01 00:06:23.000 2020-01-02 03:34:44.000 383 99284 49833.5 4983350 383 99284 49833.5 4983350 -32186 32749 5269.02 526902 -125 127 3.1 310 -384 101 10374 99285 1.15315 298.15315 149.65315 14965.31531 1.15315 298.15317 149.65315 14965.31547 1.15315 298.15315 149.65315000000007 14965.31500 2020-01-01 2020-01-02 2020-01-01 00:06:24 2020-01-02 03:34:45 2020-01-01 00:06:24.000 2020-01-02 03:34:45.000 384 99285 49834.5 4983450 384 99285 49834.5 4983450 -32185 32750 5270.02 527002 -128 127 1.54 154 -385 101 10375 99286 1.15615 298.15615 149.65615 14965.61561 1.15615 298.15616 149.65615 14965.61578 1.15615 298.15615 149.65615000000003 14965.61500 2020-01-01 2020-01-02 2020-01-01 00:06:25 2020-01-02 03:34:46 2020-01-01 00:06:25.000 2020-01-02 03:34:46.000 385 99286 49835.5 4983550 385 99286 49835.5 4983550 -32184 32751 5271.02 527102 -128 127 -0.02 -2 +384 101 10374 99285 1.15315 298.15315 149.65315 14965.31531 1.15315 298.15317 149.65315 14965.31547 1.15315 298.15315 149.65315 14965.31500 2020-01-01 2020-01-02 2020-01-01 00:06:24 2020-01-02 03:34:45 2020-01-01 00:06:24.000 2020-01-02 03:34:45.000 384 99285 49834.5 4983450 384 99285 49834.5 4983450 -32185 32750 5270.02 527002 -128 127 1.54 154 +385 101 10375 99286 1.15615 298.15615 149.65615 14965.61561 1.15615 298.15616 149.65615 14965.61578 1.15615 298.15615 149.65615 14965.61500 2020-01-01 2020-01-02 2020-01-01 00:06:25 2020-01-02 03:34:46 2020-01-01 00:06:25.000 2020-01-02 03:34:46.000 385 99286 49835.5 4983550 385 99286 49835.5 4983550 -32184 32751 5271.02 527102 -128 127 -0.02 -2 386 101 10376 99287 1.15915 298.15915 149.65915 14965.91591 1.15915 298.15915 149.65915 14965.91594 1.15915 298.15915 149.65915 14965.91500 2020-01-01 2020-01-02 2020-01-01 00:06:26 2020-01-02 03:34:47 2020-01-01 00:06:26.000 2020-01-02 03:34:47.000 386 99287 49836.5 4983650 386 99287 49836.5 4983650 -32183 32752 5272.02 527202 -128 123 -1.58 -158 -387 101 10377 99288 1.16216 298.16216 149.66216 14966.21621 1.16216 298.16217 149.66216 14966.21606 1.16216 298.16216 149.66215999999994 14966.21600 2020-01-01 2020-01-02 2020-01-01 00:06:27 2020-01-02 03:34:48 2020-01-01 00:06:27.000 2020-01-02 03:34:48.000 387 99288 49837.5 4983750 387 99288 49837.5 4983750 -32182 32753 5273.02 527302 -127 124 -0.58 -58 +387 101 10377 99288 1.16216 298.16216 149.66216 14966.21621 1.16216 298.16217 149.66216 14966.21606 1.16216 298.16216 149.66216 14966.21600 2020-01-01 2020-01-02 2020-01-01 00:06:27 2020-01-02 03:34:48 2020-01-01 00:06:27.000 2020-01-02 03:34:48.000 387 99288 49837.5 4983750 387 99288 49837.5 4983750 -32182 32753 5273.02 527302 -127 124 -0.58 -58 388 101 10378 99289 1.16516 298.16516 149.66516 14966.51651 1.16516 298.16516 149.66516 14966.51636 1.16516 298.16516 149.66516 14966.51600 2020-01-01 2020-01-02 2020-01-01 00:06:28 2020-01-02 03:34:49 2020-01-01 00:06:28.000 2020-01-02 03:34:49.000 388 99289 49838.5 4983850 388 99289 49838.5 4983850 -32181 32754 5274.02 527402 -126 125 0.42 42 -389 101 10379 99290 1.16816 298.16816 149.66816 14966.81681 1.16816 298.16818 149.66816 14966.81695 1.16816 298.16816 149.66815999999997 14966.81600 2020-01-01 2020-01-02 2020-01-01 00:06:29 2020-01-02 03:34:50 2020-01-01 00:06:29.000 2020-01-02 03:34:50.000 389 99290 49839.5 4983950 389 99290 49839.5 4983950 -32180 32755 5275.02 527502 -125 126 1.42 142 -39 102 10029 99939 0.11711 300.11711 150.11711 15161.82882 0.11711 300.11713 150.11711 15161.82876 0.11711 300.11711 150.11710999999997 15161.82811 2020-01-01 2020-01-02 2020-01-01 00:00:39 2020-01-02 03:45:39 2020-01-01 00:00:39.000 2020-01-02 03:45:39.000 39 99939 49989 5048889 39 99939 49989 5048889 -32530 32405 4568.009900990099 461369 -125 126 0.5643564356435643 57 -390 101 10380 99291 1.17117 298.17117 149.67117 14967.11711 1.17117 298.17117 149.67117 14967.11725 1.17117 298.17117 149.6711699999999 14967.11700 2020-01-01 2020-01-02 2020-01-01 00:06:30 2020-01-02 03:34:51 2020-01-01 00:06:30.000 2020-01-02 03:34:51.000 390 99291 49840.5 4984050 390 99291 49840.5 4984050 -32179 32756 5276.02 527602 -124 127 2.42 242 -391 101 10381 99292 1.17417 298.17417 149.67417 14967.41741 1.17417 298.17416 149.67417 14967.41741 1.17417 298.17417 149.67417000000012 14967.41700 2020-01-01 2020-01-02 2020-01-01 00:06:31 2020-01-02 03:34:52 2020-01-01 00:06:31.000 2020-01-02 03:34:52.000 391 99292 49841.5 4984150 391 99292 49841.5 4984150 -32178 32757 5277.02 527702 -128 127 0.86 86 -392 101 10382 99293 1.17717 298.17717 149.67717 14967.71771 1.17717 298.1772 149.67717 14967.71753 1.17717 298.17717 149.67717000000007 14967.71700 2020-01-01 2020-01-02 2020-01-01 00:06:32 2020-01-02 03:34:53 2020-01-01 00:06:32.000 2020-01-02 03:34:53.000 392 99293 49842.5 4984250 392 99293 49842.5 4984250 -32177 32758 5278.02 527802 -128 123 -0.7 -70 -393 101 10383 99294 1.18018 298.18018 149.68018 14968.01801 1.18018 298.18018 149.68017 14968.01782 1.18018 298.18018 149.68017999999995 14968.01800 2020-01-01 2020-01-02 2020-01-01 00:06:33 2020-01-02 03:34:54 2020-01-01 00:06:33.000 2020-01-02 03:34:54.000 393 99294 49843.5 4984350 393 99294 49843.5 4984350 -32176 32759 5279.02 527902 -127 124 0.3 30 +389 101 10379 99290 1.16816 298.16816 149.66816 14966.81681 1.16816 298.16818 149.66816 14966.81695 1.16816 298.16816 149.66816 14966.81600 2020-01-01 2020-01-02 2020-01-01 00:06:29 2020-01-02 03:34:50 2020-01-01 00:06:29.000 2020-01-02 03:34:50.000 389 99290 49839.5 4983950 389 99290 49839.5 4983950 -32180 32755 5275.02 527502 -125 126 1.42 142 +39 102 10029 99939 0.11711 300.11711 150.11711 15161.82882 0.11711 300.11713 150.11711 15161.82876 0.11711 300.11711 150.11711 15161.82811 2020-01-01 2020-01-02 2020-01-01 00:00:39 2020-01-02 03:45:39 2020-01-01 00:00:39.000 2020-01-02 03:45:39.000 39 99939 49989 5048889 39 99939 49989 5048889 -32530 32405 4568.009900990099 461369 -125 126 0.5643564356435643 57 +390 101 10380 99291 1.17117 298.17117 149.67117 14967.11711 1.17117 298.17117 149.67117 14967.11725 1.17117 298.17117 149.67117 14967.11700 2020-01-01 2020-01-02 2020-01-01 00:06:30 2020-01-02 03:34:51 2020-01-01 00:06:30.000 2020-01-02 03:34:51.000 390 99291 49840.5 4984050 390 99291 49840.5 4984050 -32179 32756 5276.02 527602 -124 127 2.42 242 +391 101 10381 99292 1.17417 298.17417 149.67417 14967.41741 1.17417 298.17416 149.67417 14967.41741 1.17417 298.17417 149.67417 14967.41700 2020-01-01 2020-01-02 2020-01-01 00:06:31 2020-01-02 03:34:52 2020-01-01 00:06:31.000 2020-01-02 03:34:52.000 391 99292 49841.5 4984150 391 99292 49841.5 4984150 -32178 32757 5277.02 527702 -128 127 0.86 86 +392 101 10382 99293 1.17717 298.17717 149.67717 14967.71771 1.17717 298.1772 149.67717 14967.71753 1.17717 298.17717 149.67717000000002 14967.71700 2020-01-01 2020-01-02 2020-01-01 00:06:32 2020-01-02 03:34:53 2020-01-01 00:06:32.000 2020-01-02 03:34:53.000 392 99293 49842.5 4984250 392 99293 49842.5 4984250 -32177 32758 5278.02 527802 -128 123 -0.7 -70 +393 101 10383 99294 1.18018 298.18018 149.68018 14968.01801 1.18018 298.18018 149.68017 14968.01782 1.18018 298.18018 149.68018 14968.01800 2020-01-01 2020-01-02 2020-01-01 00:06:33 2020-01-02 03:34:54 2020-01-01 00:06:33.000 2020-01-02 03:34:54.000 393 99294 49843.5 4984350 393 99294 49843.5 4984350 -32176 32759 5279.02 527902 -127 124 0.3 30 394 101 10384 99295 1.18318 298.18318 149.68318 14968.31831 1.18318 298.1832 149.68318 14968.31842 1.18318 298.18318 149.68318 14968.31800 2020-01-01 2020-01-02 2020-01-01 00:06:34 2020-01-02 03:34:55 2020-01-01 00:06:34.000 2020-01-02 03:34:55.000 394 99295 49844.5 4984450 394 99295 49844.5 4984450 -32175 32760 5280.02 528002 -126 125 1.3 130 -395 101 10385 99296 1.18618 298.18618 149.68618 14968.61861 1.18618 298.1862 149.68618 14968.61875 1.18618 298.18618 149.68618000000004 14968.61800 2020-01-01 2020-01-02 2020-01-01 00:06:35 2020-01-02 03:34:56 2020-01-01 00:06:35.000 2020-01-02 03:34:56.000 395 99296 49845.5 4984550 395 99296 49845.5 4984550 -32174 32761 5281.02 528102 -125 126 2.3 230 -396 101 10386 99297 1.18918 298.18918 149.68918 14968.91891 1.18918 298.18918 149.68918 14968.91889 1.18918 298.18918 149.68917999999996 14968.91800 2020-01-01 2020-01-02 2020-01-01 00:06:36 2020-01-02 03:34:57 2020-01-01 00:06:36.000 2020-01-02 03:34:57.000 396 99297 49846.5 4984650 396 99297 49846.5 4984650 -32173 32762 5282.02 528202 -124 127 3.3 330 -397 101 10387 99298 1.19219 298.19219 149.69219 14969.21921 1.19219 298.1922 149.69219 14969.21964 1.19219 298.19219 149.69218999999993 14969.21900 2020-01-01 2020-01-02 2020-01-01 00:06:37 2020-01-02 03:34:58 2020-01-01 00:06:37.000 2020-01-02 03:34:58.000 397 99298 49847.5 4984750 397 99298 49847.5 4984750 -32172 32763 5283.02 528302 -128 127 1.74 174 -398 101 10388 99299 1.19519 298.19519 149.69519 14969.51951 1.19519 298.1952 149.69519 14969.51929 1.19519 298.19519 149.69519000000008 14969.51900 2020-01-01 2020-01-02 2020-01-01 00:06:38 2020-01-02 03:34:59 2020-01-01 00:06:38.000 2020-01-02 03:34:59.000 398 99299 49848.5 4984850 398 99299 49848.5 4984850 -32171 32764 5284.02 528402 -128 123 0.18 18 -399 101 10389 99300 1.19819 298.19819 149.69819 14969.81981 1.19819 298.1982 149.69819 14969.81989 1.19819 298.19819 149.69818999999993 14969.81900 2020-01-01 2020-01-02 2020-01-01 00:06:39 2020-01-02 03:35:00 2020-01-01 00:06:39.000 2020-01-02 03:35:00.000 399 99300 49849.5 4984950 399 99300 49849.5 4984950 -32170 32765 5285.02 528502 -127 124 1.18 118 -4 102 1003 9994 0.01201 300.01201 150.01201 15151.21321 0.01201 300.01202 150.01201 15151.21318 0.01201 300.01201 150.0120100000001 15151.21301 2020-01-01 2020-01-02 2020-01-01 00:00:04 2020-01-02 03:45:04 2020-01-01 00:00:04.000 2020-01-02 03:45:04.000 4 99904 49954 5045354 4 99904 49954 5045354 -32565 32370 4533.009900990099 457834 -128 127 -1.4851485148514851 -150 -40 102 10030 99940 0.12012 300.12012 150.12012 15162.13213 0.12012 300.12012 150.12011 15162.13191 0.12012 300.12012 150.12011999999987 15162.13212 2020-01-01 2020-01-02 2020-01-01 00:00:40 2020-01-02 03:45:40 2020-01-01 00:00:40.000 2020-01-02 03:45:40.000 40 99940 49990 5048990 40 99940 49990 5048990 -32529 32406 4569.009900990099 461470 -124 127 1.5643564356435644 158 +395 101 10385 99296 1.18618 298.18618 149.68618 14968.61861 1.18618 298.1862 149.68618 14968.61875 1.18618 298.18618 149.68618 14968.61800 2020-01-01 2020-01-02 2020-01-01 00:06:35 2020-01-02 03:34:56 2020-01-01 00:06:35.000 2020-01-02 03:34:56.000 395 99296 49845.5 4984550 395 99296 49845.5 4984550 -32174 32761 5281.02 528102 -125 126 2.3 230 +396 101 10386 99297 1.18918 298.18918 149.68918 14968.91891 1.18918 298.18918 149.68918 14968.91889 1.18918 298.18918 149.68918 14968.91800 2020-01-01 2020-01-02 2020-01-01 00:06:36 2020-01-02 03:34:57 2020-01-01 00:06:36.000 2020-01-02 03:34:57.000 396 99297 49846.5 4984650 396 99297 49846.5 4984650 -32173 32762 5282.02 528202 -124 127 3.3 330 +397 101 10387 99298 1.19219 298.19219 149.69219 14969.21921 1.19219 298.1922 149.69219 14969.21964 1.19219 298.19219 149.69218999999998 14969.21900 2020-01-01 2020-01-02 2020-01-01 00:06:37 2020-01-02 03:34:58 2020-01-01 00:06:37.000 2020-01-02 03:34:58.000 397 99298 49847.5 4984750 397 99298 49847.5 4984750 -32172 32763 5283.02 528302 -128 127 1.74 174 +398 101 10388 99299 1.19519 298.19519 149.69519 14969.51951 1.19519 298.1952 149.69519 14969.51929 1.19519 298.19519 149.69519 14969.51900 2020-01-01 2020-01-02 2020-01-01 00:06:38 2020-01-02 03:34:59 2020-01-01 00:06:38.000 2020-01-02 03:34:59.000 398 99299 49848.5 4984850 398 99299 49848.5 4984850 -32171 32764 5284.02 528402 -128 123 0.18 18 +399 101 10389 99300 1.19819 298.19819 149.69819 14969.81981 1.19819 298.1982 149.69819 14969.81989 1.19819 298.19819 149.69818999999998 14969.81900 2020-01-01 2020-01-02 2020-01-01 00:06:39 2020-01-02 03:35:00 2020-01-01 00:06:39.000 2020-01-02 03:35:00.000 399 99300 49849.5 4984950 399 99300 49849.5 4984950 -32170 32765 5285.02 528502 -127 124 1.18 118 +4 102 1003 9994 0.01201 300.01201 150.01201 15151.21321 0.01201 300.01202 150.01201 15151.21318 0.01201 300.01201 150.01201 15151.21301 2020-01-01 2020-01-02 2020-01-01 00:00:04 2020-01-02 03:45:04 2020-01-01 00:00:04.000 2020-01-02 03:45:04.000 4 99904 49954 5045354 4 99904 49954 5045354 -32565 32370 4533.009900990099 457834 -128 127 -1.4851485148514851 -150 +40 102 10030 99940 0.12012 300.12012 150.12012 15162.13213 0.12012 300.12012 150.12011 15162.13191 0.12012 300.12012 150.12012000000001 15162.13212 2020-01-01 2020-01-02 2020-01-01 00:00:40 2020-01-02 03:45:40 2020-01-01 00:00:40.000 2020-01-02 03:45:40.000 40 99940 49990 5048990 40 99940 49990 5048990 -32529 32406 4569.009900990099 461470 -124 127 1.5643564356435644 158 400 101 10390 99301 1.2012 298.2012 149.7012 14970.12012 1.2012 298.2012 149.7012 14970.12022 1.20120 298.20120 149.7012 14970.12000 2020-01-01 2020-01-02 2020-01-01 00:06:40 2020-01-02 03:35:01 2020-01-01 00:06:40.000 2020-01-02 03:35:01.000 400 99301 49850.5 4985050 400 99301 49850.5 4985050 -32169 32766 5286.02 528602 -126 125 2.18 218 -401 101 10391 99302 1.2042 298.2042 149.7042 14970.42042 1.2042 298.2042 149.7042 14970.42035 1.20420 298.20420 149.70420000000004 14970.42000 2020-01-01 2020-01-02 2020-01-01 00:06:41 2020-01-02 03:35:02 2020-01-01 00:06:41.000 2020-01-02 03:35:02.000 401 99302 49851.5 4985150 401 99302 49851.5 4985150 -32168 32767 5287.02 528702 -125 126 3.18 318 -402 101 10392 99303 1.2072 298.2072 149.7072 14970.72072 1.2072 298.2072 149.70721 14970.72111 1.20720 298.20720 149.70720000000003 14970.72000 2020-01-01 2020-01-02 2020-01-01 00:06:42 2020-01-02 03:35:03 2020-01-01 00:06:42.000 2020-01-02 03:35:03.000 402 99303 49852.5 4985250 402 99303 49852.5 4985250 -32768 32370 4632.66 463266 -124 127 4.18 418 -403 101 10393 99304 1.21021 298.21021 149.71021 14971.02102 1.21021 298.2102 149.7102 14971.02077 1.21021 298.21021 149.71020999999996 14971.02100 2020-01-01 2020-01-02 2020-01-01 00:06:43 2020-01-02 03:35:04 2020-01-01 00:06:43.000 2020-01-02 03:35:04.000 403 99304 49853.5 4985350 403 99304 49853.5 4985350 -32767 32371 4633.66 463366 -128 127 2.62 262 -404 101 10394 99305 1.21321 298.21321 149.71321 14971.32132 1.21321 298.21323 149.71321 14971.32139 1.21321 298.21321 149.71320999999992 14971.32100 2020-01-01 2020-01-02 2020-01-01 00:06:44 2020-01-02 03:35:05 2020-01-01 00:06:44.000 2020-01-02 03:35:05.000 404 99305 49854.5 4985450 404 99305 49854.5 4985450 -32766 32372 4634.66 463466 -128 127 1.06 106 +401 101 10391 99302 1.2042 298.2042 149.7042 14970.42042 1.2042 298.2042 149.7042 14970.42035 1.20420 298.20420 149.70420000000001 14970.42000 2020-01-01 2020-01-02 2020-01-01 00:06:41 2020-01-02 03:35:02 2020-01-01 00:06:41.000 2020-01-02 03:35:02.000 401 99302 49851.5 4985150 401 99302 49851.5 4985150 -32168 32767 5287.02 528702 -125 126 3.18 318 +402 101 10392 99303 1.2072 298.2072 149.7072 14970.72072 1.2072 298.2072 149.70721 14970.72111 1.20720 298.20720 149.7072 14970.72000 2020-01-01 2020-01-02 2020-01-01 00:06:42 2020-01-02 03:35:03 2020-01-01 00:06:42.000 2020-01-02 03:35:03.000 402 99303 49852.5 4985250 402 99303 49852.5 4985250 -32768 32370 4632.66 463266 -124 127 4.18 418 +403 101 10393 99304 1.21021 298.21021 149.71021 14971.02102 1.21021 298.2102 149.7102 14971.02077 1.21021 298.21021 149.71021000000002 14971.02100 2020-01-01 2020-01-02 2020-01-01 00:06:43 2020-01-02 03:35:04 2020-01-01 00:06:43.000 2020-01-02 03:35:04.000 403 99304 49853.5 4985350 403 99304 49853.5 4985350 -32767 32371 4633.66 463366 -128 127 2.62 262 +404 101 10394 99305 1.21321 298.21321 149.71321 14971.32132 1.21321 298.21323 149.71321 14971.32139 1.21321 298.21321 149.71321 14971.32100 2020-01-01 2020-01-02 2020-01-01 00:06:44 2020-01-02 03:35:05 2020-01-01 00:06:44.000 2020-01-02 03:35:05.000 404 99305 49854.5 4985450 404 99305 49854.5 4985450 -32766 32372 4634.66 463466 -128 127 1.06 106 405 101 10395 99306 1.21621 298.21621 149.71621 14971.62162 1.21621 298.21622 149.71621 14971.62169 1.21621 298.21621 149.71621 14971.62100 2020-01-01 2020-01-02 2020-01-01 00:06:45 2020-01-02 03:35:06 2020-01-01 00:06:45.000 2020-01-02 03:35:06.000 405 99306 49855.5 4985550 405 99306 49855.5 4985550 -32765 32373 4635.66 463566 -128 124 -0.5 -50 -406 101 10396 99307 1.21921 298.21921 149.71921 14971.92192 1.21921 298.2192 149.71921 14971.92199 1.21921 298.21921 149.71920999999998 14971.92100 2020-01-01 2020-01-02 2020-01-01 00:06:46 2020-01-02 03:35:07 2020-01-01 00:06:46.000 2020-01-02 03:35:07.000 406 99307 49856.5 4985650 406 99307 49856.5 4985650 -32764 32374 4636.66 463666 -127 125 0.5 50 -407 101 10397 99308 1.22222 298.22222 149.72222 14972.22222 1.22222 298.22223 149.72222 14972.22257 1.22222 298.22222 149.72221999999994 14972.22200 2020-01-01 2020-01-02 2020-01-01 00:06:47 2020-01-02 03:35:08 2020-01-01 00:06:47.000 2020-01-02 03:35:08.000 407 99308 49857.5 4985750 407 99308 49857.5 4985750 -32763 32375 4637.66 463766 -126 126 1.5 150 -408 101 10398 99309 1.22522 298.22522 149.72522 14972.52252 1.22522 298.22522 149.72522 14972.52224 1.22522 298.22522 149.72522000000004 14972.52200 2020-01-01 2020-01-02 2020-01-01 00:06:48 2020-01-02 03:35:09 2020-01-01 00:06:48.000 2020-01-02 03:35:09.000 408 99309 49858.5 4985850 408 99309 49858.5 4985850 -32762 32376 4638.66 463866 -125 127 2.5 250 -409 101 10399 99310 1.22822 298.22822 149.72822 14972.82282 1.22822 298.22824 149.72822 14972.82286 1.22822 298.22822 149.7282200000001 14972.82200 2020-01-01 2020-01-02 2020-01-01 00:06:49 2020-01-02 03:35:10 2020-01-01 00:06:49.000 2020-01-02 03:35:10.000 409 99310 49859.5 4985950 409 99310 49859.5 4985950 -32761 32377 4639.66 463966 -128 127 0.94 94 -41 102 10031 99941 0.12312 300.12312 150.12312 15162.43543 0.12312 300.1231 150.12312 15162.43521 0.12312 300.12312 150.12312000000009 15162.43512 2020-01-01 2020-01-02 2020-01-01 00:00:41 2020-01-02 03:45:41 2020-01-01 00:00:41.000 2020-01-02 03:45:41.000 41 99941 49991 5049091 41 99941 49991 5049091 -32528 32407 4570.009900990099 461571 -128 127 0.0297029702970297 3 -410 101 10400 99311 1.23123 298.23123 149.73123 14973.12312 1.23123 298.23123 149.73123 14973.12316 1.23123 298.23123 149.73122999999995 14973.12300 2020-01-01 2020-01-02 2020-01-01 00:06:50 2020-01-02 03:35:11 2020-01-01 00:06:50.000 2020-01-02 03:35:11.000 410 99311 49860.5 4986050 410 99311 49860.5 4986050 -32760 32378 4640.66 464066 -128 127 -0.62 -62 +406 101 10396 99307 1.21921 298.21921 149.71921 14971.92192 1.21921 298.2192 149.71921 14971.92199 1.21921 298.21921 149.71921 14971.92100 2020-01-01 2020-01-02 2020-01-01 00:06:46 2020-01-02 03:35:07 2020-01-01 00:06:46.000 2020-01-02 03:35:07.000 406 99307 49856.5 4985650 406 99307 49856.5 4985650 -32764 32374 4636.66 463666 -127 125 0.5 50 +407 101 10397 99308 1.22222 298.22222 149.72222 14972.22222 1.22222 298.22223 149.72222 14972.22257 1.22222 298.22222 149.72222 14972.22200 2020-01-01 2020-01-02 2020-01-01 00:06:47 2020-01-02 03:35:08 2020-01-01 00:06:47.000 2020-01-02 03:35:08.000 407 99308 49857.5 4985750 407 99308 49857.5 4985750 -32763 32375 4637.66 463766 -126 126 1.5 150 +408 101 10398 99309 1.22522 298.22522 149.72522 14972.52252 1.22522 298.22522 149.72522 14972.52224 1.22522 298.22522 149.72522 14972.52200 2020-01-01 2020-01-02 2020-01-01 00:06:48 2020-01-02 03:35:09 2020-01-01 00:06:48.000 2020-01-02 03:35:09.000 408 99309 49858.5 4985850 408 99309 49858.5 4985850 -32762 32376 4638.66 463866 -125 127 2.5 250 +409 101 10399 99310 1.22822 298.22822 149.72822 14972.82282 1.22822 298.22824 149.72822 14972.82286 1.22822 298.22822 149.72822 14972.82200 2020-01-01 2020-01-02 2020-01-01 00:06:49 2020-01-02 03:35:10 2020-01-01 00:06:49.000 2020-01-02 03:35:10.000 409 99310 49859.5 4985950 409 99310 49859.5 4985950 -32761 32377 4639.66 463966 -128 127 0.94 94 +41 102 10031 99941 0.12312 300.12312 150.12312 15162.43543 0.12312 300.1231 150.12312 15162.43521 0.12312 300.12312 150.12312 15162.43512 2020-01-01 2020-01-02 2020-01-01 00:00:41 2020-01-02 03:45:41 2020-01-01 00:00:41.000 2020-01-02 03:45:41.000 41 99941 49991 5049091 41 99941 49991 5049091 -32528 32407 4570.009900990099 461571 -128 127 0.0297029702970297 3 +410 101 10400 99311 1.23123 298.23123 149.73123 14973.12312 1.23123 298.23123 149.73123 14973.12316 1.23123 298.23123 149.73122999999998 14973.12300 2020-01-01 2020-01-02 2020-01-01 00:06:50 2020-01-02 03:35:11 2020-01-01 00:06:50.000 2020-01-02 03:35:11.000 410 99311 49860.5 4986050 410 99311 49860.5 4986050 -32760 32378 4640.66 464066 -128 127 -0.62 -62 411 101 10401 99312 1.23423 298.23423 149.73423 14973.42342 1.23423 298.23422 149.73423 14973.42345 1.23423 298.23423 149.73423 14973.42300 2020-01-01 2020-01-02 2020-01-01 00:06:51 2020-01-02 03:35:12 2020-01-01 00:06:51.000 2020-01-02 03:35:12.000 411 99312 49861.5 4986150 411 99312 49861.5 4986150 -32759 32379 4641.66 464166 -128 123 -2.18 -218 -412 101 10402 99313 1.23723 298.23723 149.73723 14973.72372 1.23723 298.23724 149.73724 14973.72405 1.23723 298.23723 149.73723000000007 14973.72300 2020-01-01 2020-01-02 2020-01-01 00:06:52 2020-01-02 03:35:13 2020-01-01 00:06:52.000 2020-01-02 03:35:13.000 412 99313 49862.5 4986250 412 99313 49862.5 4986250 -32758 32380 4642.66 464266 -127 124 -1.18 -118 -413 101 10403 99314 1.24024 298.24024 149.74024 14974.02402 1.24024 298.24023 149.74023 14974.02374 1.24024 298.24024 149.74023999999991 14974.02400 2020-01-01 2020-01-02 2020-01-01 00:06:53 2020-01-02 03:35:14 2020-01-01 00:06:53.000 2020-01-02 03:35:14.000 413 99314 49863.5 4986350 413 99314 49863.5 4986350 -32757 32381 4643.66 464366 -126 125 -0.18 -18 -414 101 10404 99315 1.24324 298.24324 149.74324 14974.32432 1.24324 298.24326 149.74324 14974.32433 1.24324 298.24324 149.7432399999999 14974.32400 2020-01-01 2020-01-02 2020-01-01 00:06:54 2020-01-02 03:35:15 2020-01-01 00:06:54.000 2020-01-02 03:35:15.000 414 99315 49864.5 4986450 414 99315 49864.5 4986450 -32756 32382 4644.66 464466 -125 126 0.82 82 -415 101 10405 99316 1.24624 298.24624 149.74624 14974.62462 1.24624 298.24625 149.74624 14974.62463 1.24624 298.24624 149.7462400000001 14974.62400 2020-01-01 2020-01-02 2020-01-01 00:06:55 2020-01-02 03:35:16 2020-01-01 00:06:55.000 2020-01-02 03:35:16.000 415 99316 49865.5 4986550 415 99316 49865.5 4986550 -32755 32383 4645.66 464566 -124 127 1.82 182 -416 101 10406 99317 1.24924 298.24924 149.74924 14974.92492 1.24924 298.24924 149.74924 14974.92492 1.24924 298.24924 149.74923999999993 14974.92400 2020-01-01 2020-01-02 2020-01-01 00:06:56 2020-01-02 03:35:17 2020-01-01 00:06:56.000 2020-01-02 03:35:17.000 416 99317 49866.5 4986650 416 99317 49866.5 4986650 -32754 32384 4646.66 464666 -128 127 0.26 26 -417 101 10407 99318 1.25225 298.25225 149.75225 14975.22522 1.25225 298.25226 149.75225 14975.22552 1.25225 298.25225 149.75224999999983 14975.22500 2020-01-01 2020-01-02 2020-01-01 00:06:57 2020-01-02 03:35:18 2020-01-01 00:06:57.000 2020-01-02 03:35:18.000 417 99318 49867.5 4986750 417 99318 49867.5 4986750 -32753 32385 4647.66 464766 -128 123 -1.3 -130 -418 101 10408 99319 1.25525 298.25525 149.75525 14975.52552 1.25525 298.25525 149.75525 14975.52521 1.25525 298.25525 149.75525000000007 14975.52500 2020-01-01 2020-01-02 2020-01-01 00:06:58 2020-01-02 03:35:19 2020-01-01 00:06:58.000 2020-01-02 03:35:19.000 418 99319 49868.5 4986850 418 99319 49868.5 4986850 -32752 32386 4648.66 464866 -127 124 -0.3 -30 -419 101 10409 99320 1.25825 298.25825 149.75825 14975.82582 1.25825 298.25827 149.75825 14975.8258 1.25825 298.25825 149.75825000000006 14975.82500 2020-01-01 2020-01-02 2020-01-01 00:06:59 2020-01-02 03:35:20 2020-01-01 00:06:59.000 2020-01-02 03:35:20.000 419 99320 49869.5 4986950 419 99320 49869.5 4986950 -32751 32387 4649.66 464966 -126 125 0.7 70 -42 102 10032 99942 0.12612 300.12612 150.12612 15162.73873 0.12612 300.12613 150.12612 15162.73896 0.12612 300.12612 150.12612000000004 15162.73812 2020-01-01 2020-01-02 2020-01-01 00:00:42 2020-01-02 03:45:42 2020-01-01 00:00:42.000 2020-01-02 03:45:42.000 42 99942 49992 5049192 42 99942 49992 5049192 -32527 32408 4571.009900990099 461672 -128 127 -1.504950495049505 -152 +412 101 10402 99313 1.23723 298.23723 149.73723 14973.72372 1.23723 298.23724 149.73724 14973.72405 1.23723 298.23723 149.73723 14973.72300 2020-01-01 2020-01-02 2020-01-01 00:06:52 2020-01-02 03:35:13 2020-01-01 00:06:52.000 2020-01-02 03:35:13.000 412 99313 49862.5 4986250 412 99313 49862.5 4986250 -32758 32380 4642.66 464266 -127 124 -1.18 -118 +413 101 10403 99314 1.24024 298.24024 149.74024 14974.02402 1.24024 298.24023 149.74023 14974.02374 1.24024 298.24024 149.74024 14974.02400 2020-01-01 2020-01-02 2020-01-01 00:06:53 2020-01-02 03:35:14 2020-01-01 00:06:53.000 2020-01-02 03:35:14.000 413 99314 49863.5 4986350 413 99314 49863.5 4986350 -32757 32381 4643.66 464366 -126 125 -0.18 -18 +414 101 10404 99315 1.24324 298.24324 149.74324 14974.32432 1.24324 298.24326 149.74324 14974.32433 1.24324 298.24324 149.74324000000001 14974.32400 2020-01-01 2020-01-02 2020-01-01 00:06:54 2020-01-02 03:35:15 2020-01-01 00:06:54.000 2020-01-02 03:35:15.000 414 99315 49864.5 4986450 414 99315 49864.5 4986450 -32756 32382 4644.66 464466 -125 126 0.82 82 +415 101 10405 99316 1.24624 298.24624 149.74624 14974.62462 1.24624 298.24625 149.74624 14974.62463 1.24624 298.24624 149.74624 14974.62400 2020-01-01 2020-01-02 2020-01-01 00:06:55 2020-01-02 03:35:16 2020-01-01 00:06:55.000 2020-01-02 03:35:16.000 415 99316 49865.5 4986550 415 99316 49865.5 4986550 -32755 32383 4645.66 464566 -124 127 1.82 182 +416 101 10406 99317 1.24924 298.24924 149.74924 14974.92492 1.24924 298.24924 149.74924 14974.92492 1.24924 298.24924 149.74924000000001 14974.92400 2020-01-01 2020-01-02 2020-01-01 00:06:56 2020-01-02 03:35:17 2020-01-01 00:06:56.000 2020-01-02 03:35:17.000 416 99317 49866.5 4986650 416 99317 49866.5 4986650 -32754 32384 4646.66 464666 -128 127 0.26 26 +417 101 10407 99318 1.25225 298.25225 149.75225 14975.22522 1.25225 298.25226 149.75225 14975.22552 1.25225 298.25225 149.75225 14975.22500 2020-01-01 2020-01-02 2020-01-01 00:06:57 2020-01-02 03:35:18 2020-01-01 00:06:57.000 2020-01-02 03:35:18.000 417 99318 49867.5 4986750 417 99318 49867.5 4986750 -32753 32385 4647.66 464766 -128 123 -1.3 -130 +418 101 10408 99319 1.25525 298.25525 149.75525 14975.52552 1.25525 298.25525 149.75525 14975.52521 1.25525 298.25525 149.75525 14975.52500 2020-01-01 2020-01-02 2020-01-01 00:06:58 2020-01-02 03:35:19 2020-01-01 00:06:58.000 2020-01-02 03:35:19.000 418 99319 49868.5 4986850 418 99319 49868.5 4986850 -32752 32386 4648.66 464866 -127 124 -0.3 -30 +419 101 10409 99320 1.25825 298.25825 149.75825 14975.82582 1.25825 298.25827 149.75825 14975.8258 1.25825 298.25825 149.75825 14975.82500 2020-01-01 2020-01-02 2020-01-01 00:06:59 2020-01-02 03:35:20 2020-01-01 00:06:59.000 2020-01-02 03:35:20.000 419 99320 49869.5 4986950 419 99320 49869.5 4986950 -32751 32387 4649.66 464966 -126 125 0.7 70 +42 102 10032 99942 0.12612 300.12612 150.12612 15162.73873 0.12612 300.12613 150.12612 15162.73896 0.12612 300.12612 150.12612 15162.73812 2020-01-01 2020-01-02 2020-01-01 00:00:42 2020-01-02 03:45:42 2020-01-01 00:00:42.000 2020-01-02 03:45:42.000 42 99942 49992 5049192 42 99942 49992 5049192 -32527 32408 4571.009900990099 461672 -128 127 -1.504950495049505 -152 420 101 10410 99321 1.26126 298.26126 149.76126 14976.12612 1.26126 298.26126 149.76126 14976.12609 1.26126 298.26126 149.76126 14976.12600 2020-01-01 2020-01-02 2020-01-01 00:07:00 2020-01-02 03:35:21 2020-01-01 00:07:00.000 2020-01-02 03:35:21.000 420 99321 49870.5 4987050 420 99321 49870.5 4987050 -32750 32388 4650.66 465066 -125 126 1.7 170 -421 101 10411 99322 1.26426 298.26426 149.76426 14976.42642 1.26426 298.26425 149.76426 14976.4264 1.26426 298.26426 149.76425999999995 14976.42600 2020-01-01 2020-01-02 2020-01-01 00:07:01 2020-01-02 03:35:22 2020-01-01 00:07:01.000 2020-01-02 03:35:22.000 421 99322 49871.5 4987150 421 99322 49871.5 4987150 -32749 32389 4651.66 465166 -124 127 2.7 270 -422 101 10412 99323 1.26726 298.26726 149.76726 14976.72672 1.26726 298.26727 149.76727 14976.72702 1.26726 298.26726 149.76726000000002 14976.72600 2020-01-01 2020-01-02 2020-01-01 00:07:02 2020-01-02 03:35:23 2020-01-01 00:07:02.000 2020-01-02 03:35:23.000 422 99323 49872.5 4987250 422 99323 49872.5 4987250 -32748 32390 4652.66 465266 -128 127 1.14 114 -423 101 10413 99324 1.27027 298.27027 149.77027 14977.02702 1.27027 298.27026 149.77026 14977.02667 1.27027 298.27027 149.77027000000012 14977.02700 2020-01-01 2020-01-02 2020-01-01 00:07:03 2020-01-02 03:35:24 2020-01-01 00:07:03.000 2020-01-02 03:35:24.000 423 99324 49873.5 4987350 423 99324 49873.5 4987350 -32747 32391 4653.66 465366 -128 123 -0.42 -42 -424 101 10414 99325 1.27327 298.27327 149.77327 14977.32732 1.27327 298.2733 149.77327 14977.32727 1.27327 298.27327 149.7732699999999 14977.32700 2020-01-01 2020-01-02 2020-01-01 00:07:04 2020-01-02 03:35:25 2020-01-01 00:07:04.000 2020-01-02 03:35:25.000 424 99325 49874.5 4987450 424 99325 49874.5 4987450 -32746 32392 4654.66 465466 -127 124 0.58 58 -425 101 10415 99326 1.27627 298.27627 149.77627 14977.62762 1.27627 298.27628 149.77627 14977.62756 1.27627 298.27627 149.77627000000007 14977.62700 2020-01-01 2020-01-02 2020-01-01 00:07:05 2020-01-02 03:35:26 2020-01-01 00:07:05.000 2020-01-02 03:35:26.000 425 99326 49875.5 4987550 425 99326 49875.5 4987550 -32745 32393 4655.66 465566 -126 125 1.58 158 -426 101 10416 99327 1.27927 298.27927 149.77927 14977.92792 1.27927 298.27927 149.77927 14977.92787 1.27927 298.27927 149.77926999999988 14977.92700 2020-01-01 2020-01-02 2020-01-01 00:07:06 2020-01-02 03:35:27 2020-01-01 00:07:06.000 2020-01-02 03:35:27.000 426 99327 49876.5 4987650 426 99327 49876.5 4987650 -32744 32394 4656.66 465666 -125 126 2.58 258 -427 101 10417 99328 1.28228 298.28228 149.78228 14978.22822 1.28228 298.2823 149.78228 14978.22849 1.28228 298.28228 149.78227999999996 14978.22800 2020-01-01 2020-01-02 2020-01-01 00:07:07 2020-01-02 03:35:28 2020-01-01 00:07:07.000 2020-01-02 03:35:28.000 427 99328 49877.5 4987750 427 99328 49877.5 4987750 -32743 32395 4657.66 465766 -124 127 3.58 358 -428 101 10418 99329 1.28528 298.28528 149.78528 14978.52852 1.28528 298.28528 149.78528 14978.52815 1.28528 298.28528 149.78528000000003 14978.52800 2020-01-01 2020-01-02 2020-01-01 00:07:08 2020-01-02 03:35:29 2020-01-01 00:07:08.000 2020-01-02 03:35:29.000 428 99329 49878.5 4987850 428 99329 49878.5 4987850 -32742 32396 4658.66 465866 -128 127 2.02 202 -429 101 10419 99330 1.28828 298.28828 149.78828 14978.82882 1.28828 298.2883 149.78828 14978.8289 1.28828 298.28828 149.78828000000001 14978.82800 2020-01-01 2020-01-02 2020-01-01 00:07:09 2020-01-02 03:35:30 2020-01-01 00:07:09.000 2020-01-02 03:35:30.000 429 99330 49879.5 4987950 429 99330 49879.5 4987950 -32741 32397 4659.66 465966 -128 127 0.46 46 -43 102 10033 99943 0.12912 300.12912 150.12912 15163.04204 0.12912 300.12912 150.12912 15163.04211 0.12912 300.12912 150.1291199999999 15163.04112 2020-01-01 2020-01-02 2020-01-01 00:00:43 2020-01-02 03:45:43 2020-01-01 00:00:43.000 2020-01-02 03:45:43.000 43 99943 49993 5049293 43 99943 49993 5049293 -32526 32409 4572.009900990099 461773 -128 124 -3.0396039603960396 -307 -430 101 10420 99331 1.29129 298.29129 149.79129 14979.12912 1.29129 298.2913 149.79129 14979.12904 1.29129 298.29129 149.79128999999995 14979.12900 2020-01-01 2020-01-02 2020-01-01 00:07:10 2020-01-02 03:35:31 2020-01-01 00:07:10.000 2020-01-02 03:35:31.000 430 99331 49880.5 4988050 430 99331 49880.5 4988050 -32740 32398 4660.66 466066 -128 124 -1.1 -110 -431 101 10421 99332 1.29429 298.29429 149.79429 14979.42942 1.29429 298.29428 149.79429 14979.42933 1.29429 298.29429 149.79428999999993 14979.42900 2020-01-01 2020-01-02 2020-01-01 00:07:11 2020-01-02 03:35:32 2020-01-01 00:07:11.000 2020-01-02 03:35:32.000 431 99332 49881.5 4988150 431 99332 49881.5 4988150 -32739 32399 4661.66 466166 -127 125 -0.1 -10 -432 101 10422 99333 1.29729 298.29729 149.79729 14979.72972 1.29729 298.2973 149.79729 14979.72996 1.29729 298.29729 149.79729000000015 14979.72900 2020-01-01 2020-01-02 2020-01-01 00:07:12 2020-01-02 03:35:33 2020-01-01 00:07:12.000 2020-01-02 03:35:33.000 432 99333 49882.5 4988250 432 99333 49882.5 4988250 -32738 32400 4662.66 466266 -126 126 0.9 90 -433 101 10423 99334 1.3003 298.3003 149.8003 14980.03003 1.3003 298.3003 149.80029 14980.02962 1.30030 298.30030 149.80030000000005 14980.03000 2020-01-01 2020-01-02 2020-01-01 00:07:13 2020-01-02 03:35:34 2020-01-01 00:07:13.000 2020-01-02 03:35:34.000 433 99334 49883.5 4988350 433 99334 49883.5 4988350 -32737 32401 4663.66 466366 -125 127 1.9 190 -434 101 10424 99335 1.3033 298.3033 149.8033 14980.33033 1.3033 298.3033 149.8033 14980.33037 1.30330 298.30330 149.80329999999987 14980.33000 2020-01-01 2020-01-02 2020-01-01 00:07:14 2020-01-02 03:35:35 2020-01-01 00:07:14.000 2020-01-02 03:35:35.000 434 99335 49884.5 4988450 434 99335 49884.5 4988450 -32736 32402 4664.66 466466 -128 127 0.34 34 -435 101 10425 99336 1.3063 298.3063 149.8063 14980.63063 1.3063 298.3063 149.8063 14980.63051 1.30630 298.30630 149.80630000000008 14980.63000 2020-01-01 2020-01-02 2020-01-01 00:07:15 2020-01-02 03:35:36 2020-01-01 00:07:15.000 2020-01-02 03:35:36.000 435 99336 49885.5 4988550 435 99336 49885.5 4988550 -32735 32403 4665.66 466566 -128 127 -1.22 -122 -436 101 10426 99337 1.3093 298.3093 149.8093 14980.93093 1.3093 298.3093 149.8093 14980.93084 1.30930 298.30930 149.80930000000006 14980.93000 2020-01-01 2020-01-02 2020-01-01 00:07:16 2020-01-02 03:35:37 2020-01-01 00:07:16.000 2020-01-02 03:35:37.000 436 99337 49886.5 4988650 436 99337 49886.5 4988650 -32734 32404 4666.66 466666 -128 123 -2.78 -278 +421 101 10411 99322 1.26426 298.26426 149.76426 14976.42642 1.26426 298.26425 149.76426 14976.4264 1.26426 298.26426 149.76426 14976.42600 2020-01-01 2020-01-02 2020-01-01 00:07:01 2020-01-02 03:35:22 2020-01-01 00:07:01.000 2020-01-02 03:35:22.000 421 99322 49871.5 4987150 421 99322 49871.5 4987150 -32749 32389 4651.66 465166 -124 127 2.7 270 +422 101 10412 99323 1.26726 298.26726 149.76726 14976.72672 1.26726 298.26727 149.76727 14976.72702 1.26726 298.26726 149.76726 14976.72600 2020-01-01 2020-01-02 2020-01-01 00:07:02 2020-01-02 03:35:23 2020-01-01 00:07:02.000 2020-01-02 03:35:23.000 422 99323 49872.5 4987250 422 99323 49872.5 4987250 -32748 32390 4652.66 465266 -128 127 1.14 114 +423 101 10413 99324 1.27027 298.27027 149.77027 14977.02702 1.27027 298.27026 149.77026 14977.02667 1.27027 298.27027 149.77027 14977.02700 2020-01-01 2020-01-02 2020-01-01 00:07:03 2020-01-02 03:35:24 2020-01-01 00:07:03.000 2020-01-02 03:35:24.000 423 99324 49873.5 4987350 423 99324 49873.5 4987350 -32747 32391 4653.66 465366 -128 123 -0.42 -42 +424 101 10414 99325 1.27327 298.27327 149.77327 14977.32732 1.27327 298.2733 149.77327 14977.32727 1.27327 298.27327 149.77327 14977.32700 2020-01-01 2020-01-02 2020-01-01 00:07:04 2020-01-02 03:35:25 2020-01-01 00:07:04.000 2020-01-02 03:35:25.000 424 99325 49874.5 4987450 424 99325 49874.5 4987450 -32746 32392 4654.66 465466 -127 124 0.58 58 +425 101 10415 99326 1.27627 298.27627 149.77627 14977.62762 1.27627 298.27628 149.77627 14977.62756 1.27627 298.27627 149.77627 14977.62700 2020-01-01 2020-01-02 2020-01-01 00:07:05 2020-01-02 03:35:26 2020-01-01 00:07:05.000 2020-01-02 03:35:26.000 425 99326 49875.5 4987550 425 99326 49875.5 4987550 -32745 32393 4655.66 465566 -126 125 1.58 158 +426 101 10416 99327 1.27927 298.27927 149.77927 14977.92792 1.27927 298.27927 149.77927 14977.92787 1.27927 298.27927 149.77927 14977.92700 2020-01-01 2020-01-02 2020-01-01 00:07:06 2020-01-02 03:35:27 2020-01-01 00:07:06.000 2020-01-02 03:35:27.000 426 99327 49876.5 4987650 426 99327 49876.5 4987650 -32744 32394 4656.66 465666 -125 126 2.58 258 +427 101 10417 99328 1.28228 298.28228 149.78228 14978.22822 1.28228 298.2823 149.78228 14978.22849 1.28228 298.28228 149.78228 14978.22800 2020-01-01 2020-01-02 2020-01-01 00:07:07 2020-01-02 03:35:28 2020-01-01 00:07:07.000 2020-01-02 03:35:28.000 427 99328 49877.5 4987750 427 99328 49877.5 4987750 -32743 32395 4657.66 465766 -124 127 3.58 358 +428 101 10418 99329 1.28528 298.28528 149.78528 14978.52852 1.28528 298.28528 149.78528 14978.52815 1.28528 298.28528 149.78528 14978.52800 2020-01-01 2020-01-02 2020-01-01 00:07:08 2020-01-02 03:35:29 2020-01-01 00:07:08.000 2020-01-02 03:35:29.000 428 99329 49878.5 4987850 428 99329 49878.5 4987850 -32742 32396 4658.66 465866 -128 127 2.02 202 +429 101 10419 99330 1.28828 298.28828 149.78828 14978.82882 1.28828 298.2883 149.78828 14978.8289 1.28828 298.28828 149.78828 14978.82800 2020-01-01 2020-01-02 2020-01-01 00:07:09 2020-01-02 03:35:30 2020-01-01 00:07:09.000 2020-01-02 03:35:30.000 429 99330 49879.5 4987950 429 99330 49879.5 4987950 -32741 32397 4659.66 465966 -128 127 0.46 46 +43 102 10033 99943 0.12912 300.12912 150.12912 15163.04204 0.12912 300.12912 150.12912 15163.04211 0.12912 300.12912 150.12912 15163.04112 2020-01-01 2020-01-02 2020-01-01 00:00:43 2020-01-02 03:45:43 2020-01-01 00:00:43.000 2020-01-02 03:45:43.000 43 99943 49993 5049293 43 99943 49993 5049293 -32526 32409 4572.009900990099 461773 -128 124 -3.0396039603960396 -307 +430 101 10420 99331 1.29129 298.29129 149.79129 14979.12912 1.29129 298.2913 149.79129 14979.12904 1.29129 298.29129 149.79129 14979.12900 2020-01-01 2020-01-02 2020-01-01 00:07:10 2020-01-02 03:35:31 2020-01-01 00:07:10.000 2020-01-02 03:35:31.000 430 99331 49880.5 4988050 430 99331 49880.5 4988050 -32740 32398 4660.66 466066 -128 124 -1.1 -110 +431 101 10421 99332 1.29429 298.29429 149.79429 14979.42942 1.29429 298.29428 149.79429 14979.42933 1.29429 298.29429 149.79429 14979.42900 2020-01-01 2020-01-02 2020-01-01 00:07:11 2020-01-02 03:35:32 2020-01-01 00:07:11.000 2020-01-02 03:35:32.000 431 99332 49881.5 4988150 431 99332 49881.5 4988150 -32739 32399 4661.66 466166 -127 125 -0.1 -10 +432 101 10422 99333 1.29729 298.29729 149.79729 14979.72972 1.29729 298.2973 149.79729 14979.72996 1.29729 298.29729 149.79729 14979.72900 2020-01-01 2020-01-02 2020-01-01 00:07:12 2020-01-02 03:35:33 2020-01-01 00:07:12.000 2020-01-02 03:35:33.000 432 99333 49882.5 4988250 432 99333 49882.5 4988250 -32738 32400 4662.66 466266 -126 126 0.9 90 +433 101 10423 99334 1.3003 298.3003 149.8003 14980.03003 1.3003 298.3003 149.80029 14980.02962 1.30030 298.30030 149.8003 14980.03000 2020-01-01 2020-01-02 2020-01-01 00:07:13 2020-01-02 03:35:34 2020-01-01 00:07:13.000 2020-01-02 03:35:34.000 433 99334 49883.5 4988350 433 99334 49883.5 4988350 -32737 32401 4663.66 466366 -125 127 1.9 190 +434 101 10424 99335 1.3033 298.3033 149.8033 14980.33033 1.3033 298.3033 149.8033 14980.33037 1.30330 298.30330 149.8033 14980.33000 2020-01-01 2020-01-02 2020-01-01 00:07:14 2020-01-02 03:35:35 2020-01-01 00:07:14.000 2020-01-02 03:35:35.000 434 99335 49884.5 4988450 434 99335 49884.5 4988450 -32736 32402 4664.66 466466 -128 127 0.34 34 +435 101 10425 99336 1.3063 298.3063 149.8063 14980.63063 1.3063 298.3063 149.8063 14980.63051 1.30630 298.30630 149.8063 14980.63000 2020-01-01 2020-01-02 2020-01-01 00:07:15 2020-01-02 03:35:36 2020-01-01 00:07:15.000 2020-01-02 03:35:36.000 435 99336 49885.5 4988550 435 99336 49885.5 4988550 -32735 32403 4665.66 466566 -128 127 -1.22 -122 +436 101 10426 99337 1.3093 298.3093 149.8093 14980.93093 1.3093 298.3093 149.8093 14980.93084 1.30930 298.30930 149.8093 14980.93000 2020-01-01 2020-01-02 2020-01-01 00:07:16 2020-01-02 03:35:37 2020-01-01 00:07:16.000 2020-01-02 03:35:37.000 436 99337 49886.5 4988650 436 99337 49886.5 4988650 -32734 32404 4666.66 466666 -128 123 -2.78 -278 437 101 10427 99338 1.31231 298.31231 149.81231 14981.23123 1.31231 298.31232 149.81231 14981.23143 1.31231 298.31231 149.81231 14981.23100 2020-01-01 2020-01-02 2020-01-01 00:07:17 2020-01-02 03:35:38 2020-01-01 00:07:17.000 2020-01-02 03:35:38.000 437 99338 49887.5 4988750 437 99338 49887.5 4988750 -32733 32405 4667.66 466766 -127 124 -1.78 -178 -438 101 10428 99339 1.31531 298.31531 149.81531 14981.53153 1.31531 298.3153 149.81531 14981.53173 1.31531 298.31531 149.81530999999998 14981.53100 2020-01-01 2020-01-02 2020-01-01 00:07:18 2020-01-02 03:35:39 2020-01-01 00:07:18.000 2020-01-02 03:35:39.000 438 99339 49888.5 4988850 438 99339 49888.5 4988850 -32732 32406 4668.66 466866 -126 125 -0.78 -78 -439 101 10429 99340 1.31831 298.31831 149.81831 14981.83183 1.31831 298.31833 149.81831 14981.83184 1.31831 298.31831 149.81831000000008 14981.83100 2020-01-01 2020-01-02 2020-01-01 00:07:19 2020-01-02 03:35:40 2020-01-01 00:07:19.000 2020-01-02 03:35:40.000 439 99340 49889.5 4988950 439 99340 49889.5 4988950 -32731 32407 4669.66 466966 -125 126 0.22 22 +438 101 10428 99339 1.31531 298.31531 149.81531 14981.53153 1.31531 298.3153 149.81531 14981.53173 1.31531 298.31531 149.81531 14981.53100 2020-01-01 2020-01-02 2020-01-01 00:07:18 2020-01-02 03:35:39 2020-01-01 00:07:18.000 2020-01-02 03:35:39.000 438 99339 49888.5 4988850 438 99339 49888.5 4988850 -32732 32406 4668.66 466866 -126 125 -0.78 -78 +439 101 10429 99340 1.31831 298.31831 149.81831 14981.83183 1.31831 298.31833 149.81831 14981.83184 1.31831 298.31831 149.81831 14981.83100 2020-01-01 2020-01-02 2020-01-01 00:07:19 2020-01-02 03:35:40 2020-01-01 00:07:19.000 2020-01-02 03:35:40.000 439 99340 49889.5 4988950 439 99340 49889.5 4988950 -32731 32407 4669.66 466966 -125 126 0.22 22 44 102 10034 99944 0.13213 300.13213 150.13213 15163.34534 0.13213 300.13214 150.13213 15163.34525 0.13213 300.13213 150.13213 15163.34513 2020-01-01 2020-01-02 2020-01-01 00:00:44 2020-01-02 03:45:44 2020-01-01 00:00:44.000 2020-01-02 03:45:44.000 44 99944 49994 5049394 44 99944 49994 5049394 -32525 32410 4573.009900990099 461874 -127 125 -2.0396039603960396 -206 -440 101 10430 99341 1.32132 298.32132 149.82132 14982.13213 1.32132 298.32132 149.82131 14982.13197 1.32132 298.32132 149.82131999999973 14982.13200 2020-01-01 2020-01-02 2020-01-01 00:07:20 2020-01-02 03:35:41 2020-01-01 00:07:20.000 2020-01-02 03:35:41.000 440 99341 49890.5 4989050 440 99341 49890.5 4989050 -32730 32408 4670.66 467066 -124 127 1.22 122 -441 101 10431 99342 1.32432 298.32432 149.82432 14982.43243 1.32432 298.3243 149.82432 14982.4323 1.32432 298.32432 149.82431999999983 14982.43200 2020-01-01 2020-01-02 2020-01-01 00:07:21 2020-01-02 03:35:42 2020-01-01 00:07:21.000 2020-01-02 03:35:42.000 441 99342 49891.5 4989150 441 99342 49891.5 4989150 -32729 32409 4671.66 467166 -128 127 -0.34 -34 -442 101 10432 99343 1.32732 298.32732 149.82732 14982.73273 1.32732 298.32733 149.82732 14982.7329 1.32732 298.32732 149.82732000000019 14982.73200 2020-01-01 2020-01-02 2020-01-01 00:07:22 2020-01-02 03:35:43 2020-01-01 00:07:22.000 2020-01-02 03:35:43.000 442 99343 49892.5 4989250 442 99343 49892.5 4989250 -32728 32410 4672.66 467266 -128 123 -1.9 -190 -443 101 10433 99344 1.33033 298.33033 149.83033 14983.03303 1.33033 298.33032 149.83033 14983.03319 1.33033 298.33033 149.8303300000001 14983.03300 2020-01-01 2020-01-02 2020-01-01 00:07:23 2020-01-02 03:35:44 2020-01-01 00:07:23.000 2020-01-02 03:35:44.000 443 99344 49893.5 4989350 443 99344 49893.5 4989350 -32727 32411 4673.66 467366 -127 124 -0.9 -90 -444 101 10434 99345 1.33333 298.33333 149.83333 14983.33333 1.33333 298.33334 149.83333 14983.33331 1.33333 298.33333 149.83332999999996 14983.33300 2020-01-01 2020-01-02 2020-01-01 00:07:24 2020-01-02 03:35:45 2020-01-01 00:07:24.000 2020-01-02 03:35:45.000 444 99345 49894.5 4989450 444 99345 49894.5 4989450 -32726 32412 4674.66 467466 -126 125 0.1 10 -445 101 10435 99346 1.33633 298.33633 149.83633 14983.63363 1.33633 298.33633 149.83633 14983.63348 1.33633 298.33633 149.83633000000006 14983.63300 2020-01-01 2020-01-02 2020-01-01 00:07:25 2020-01-02 03:35:46 2020-01-01 00:07:25.000 2020-01-02 03:35:46.000 445 99346 49895.5 4989550 445 99346 49895.5 4989550 -32725 32413 4675.66 467566 -125 126 1.1 110 -446 101 10436 99347 1.33933 298.33933 149.83933 14983.93393 1.33933 298.33932 149.83933 14983.93378 1.33933 298.33933 149.8393300000001 14983.93300 2020-01-01 2020-01-02 2020-01-01 00:07:26 2020-01-02 03:35:47 2020-01-01 00:07:26.000 2020-01-02 03:35:47.000 446 99347 49896.5 4989650 446 99347 49896.5 4989650 -32724 32414 4676.66 467666 -124 127 2.1 210 -447 101 10437 99348 1.34234 298.34234 149.84234 14984.23423 1.34234 298.34235 149.84234 14984.23437 1.34234 298.34234 149.84233999999984 14984.23400 2020-01-01 2020-01-02 2020-01-01 00:07:27 2020-01-02 03:35:48 2020-01-01 00:07:27.000 2020-01-02 03:35:48.000 447 99348 49897.5 4989750 447 99348 49897.5 4989750 -32723 32415 4677.66 467766 -128 127 0.54 54 -448 101 10438 99349 1.34534 298.34534 149.84534 14984.53453 1.34534 298.34534 149.84534 14984.53466 1.34534 298.34534 149.84533999999988 14984.53400 2020-01-01 2020-01-02 2020-01-01 00:07:28 2020-01-02 03:35:49 2020-01-01 00:07:28.000 2020-01-02 03:35:49.000 448 99349 49898.5 4989850 448 99349 49898.5 4989850 -32722 32416 4678.66 467866 -128 123 -1.02 -102 -449 101 10439 99350 1.34834 298.34834 149.84834 14984.83483 1.34834 298.34836 149.84834 14984.83478 1.34834 298.34834 149.8483400000001 14984.83400 2020-01-01 2020-01-02 2020-01-01 00:07:29 2020-01-02 03:35:50 2020-01-01 00:07:29.000 2020-01-02 03:35:50.000 449 99350 49899.5 4989950 449 99350 49899.5 4989950 -32721 32417 4679.66 467966 -127 124 -0.02 -2 -45 102 10035 99945 0.13513 300.13513 150.13513 15163.64864 0.13513 300.13513 150.13513 15163.64839 0.13513 300.13513 150.13513000000006 15163.64813 2020-01-01 2020-01-02 2020-01-01 00:00:45 2020-01-02 03:45:45 2020-01-01 00:00:45.000 2020-01-02 03:45:45.000 45 99945 49995 5049495 45 99945 49995 5049495 -32524 32411 4574.009900990099 461975 -126 126 -1.0396039603960396 -105 -450 101 10440 99351 1.35135 298.35135 149.85135 14985.13513 1.35135 298.35135 149.85134 14985.13495 1.35135 298.35135 149.8513500000002 14985.13500 2020-01-01 2020-01-02 2020-01-01 00:07:30 2020-01-02 03:35:51 2020-01-01 00:07:30.000 2020-01-02 03:35:51.000 450 99351 49900.5 4990050 450 99351 49900.5 4990050 -32720 32418 4680.66 468066 -126 125 0.98 98 -451 101 10441 99352 1.35435 298.35435 149.85435 14985.43543 1.35435 298.35434 149.85435 14985.43525 1.35435 298.35435 149.85434999999976 14985.43500 2020-01-01 2020-01-02 2020-01-01 00:07:31 2020-01-02 03:35:52 2020-01-01 00:07:31.000 2020-01-02 03:35:52.000 451 99352 49901.5 4990150 451 99352 49901.5 4990150 -32719 32419 4681.66 468166 -125 126 1.98 198 -452 101 10442 99353 1.35735 298.35735 149.85735 14985.73573 1.35735 298.35736 149.85736 14985.736 1.35735 298.35735 149.8573500000002 14985.73500 2020-01-01 2020-01-02 2020-01-01 00:07:32 2020-01-02 03:35:53 2020-01-01 00:07:32.000 2020-01-02 03:35:53.000 452 99353 49902.5 4990250 452 99353 49902.5 4990250 -32718 32420 4682.66 468266 -124 127 2.98 298 -453 101 10443 99354 1.36036 298.36036 149.86036 14986.03603 1.36036 298.36035 149.86036 14986.03614 1.36036 298.36036 149.8603600000001 14986.03600 2020-01-01 2020-01-02 2020-01-01 00:07:33 2020-01-02 03:35:54 2020-01-01 00:07:33.000 2020-01-02 03:35:54.000 453 99354 49903.5 4990350 453 99354 49903.5 4990350 -32717 32421 4683.66 468366 -128 127 1.42 142 -454 101 10444 99355 1.36336 298.36336 149.86336 14986.33633 1.36336 298.36337 149.86336 14986.33629 1.36336 298.36336 149.86335999999986 14986.33600 2020-01-01 2020-01-02 2020-01-01 00:07:34 2020-01-02 03:35:55 2020-01-01 00:07:34.000 2020-01-02 03:35:55.000 454 99355 49904.5 4990450 454 99355 49904.5 4990450 -32716 32422 4684.66 468466 -128 127 -0.14 -14 -455 101 10445 99356 1.36636 298.36636 149.86636 14986.63663 1.36636 298.36636 149.86636 14986.63641 1.36636 298.36636 149.86636 14986.63600 2020-01-01 2020-01-02 2020-01-01 00:07:35 2020-01-02 03:35:56 2020-01-01 00:07:35.000 2020-01-02 03:35:56.000 455 99356 49905.5 4990550 455 99356 49905.5 4990550 -32715 32423 4685.66 468566 -128 124 -1.7 -170 -456 101 10446 99357 1.36936 298.36936 149.86936 14986.93693 1.36936 298.36935 149.86936 14986.93672 1.36936 298.36936 149.8693600000001 14986.93600 2020-01-01 2020-01-02 2020-01-01 00:07:36 2020-01-02 03:35:57 2020-01-01 00:07:36.000 2020-01-02 03:35:57.000 456 99357 49906.5 4990650 456 99357 49906.5 4990650 -32714 32424 4686.66 468666 -127 125 -0.7 -70 -457 101 10447 99358 1.37237 298.37237 149.87237 14987.23723 1.37237 298.37238 149.87237 14987.23747 1.37237 298.37237 149.87236999999976 14987.23700 2020-01-01 2020-01-02 2020-01-01 00:07:37 2020-01-02 03:35:58 2020-01-01 00:07:37.000 2020-01-02 03:35:58.000 457 99358 49907.5 4990750 457 99358 49907.5 4990750 -32713 32425 4687.66 468766 -126 126 0.3 30 -458 101 10448 99359 1.37537 298.37537 149.87537 14987.53753 1.37537 298.37537 149.87537 14987.5376 1.37537 298.37537 149.87536999999986 14987.53700 2020-01-01 2020-01-02 2020-01-01 00:07:38 2020-01-02 03:35:59 2020-01-01 00:07:38.000 2020-01-02 03:35:59.000 458 99359 49908.5 4990850 458 99359 49908.5 4990850 -32712 32426 4688.66 468866 -125 127 1.3 130 -459 101 10449 99360 1.37837 298.37837 149.87837 14987.83783 1.37837 298.3784 149.87837 14987.83775 1.37837 298.37837 149.87837000000022 14987.83700 2020-01-01 2020-01-02 2020-01-01 00:07:39 2020-01-02 03:36:00 2020-01-01 00:07:39.000 2020-01-02 03:36:00.000 459 99360 49909.5 4990950 459 99360 49909.5 4990950 -32711 32427 4689.66 468966 -128 127 -0.26 -26 -46 102 10036 99946 0.13813 300.13813 150.13813 15163.95195 0.13813 300.13815 150.13814 15163.95214 0.13813 300.13813 150.13812999999988 15163.95113 2020-01-01 2020-01-02 2020-01-01 00:00:46 2020-01-02 03:45:46 2020-01-01 00:00:46.000 2020-01-02 03:45:46.000 46 99946 49996 5049596 46 99946 49996 5049596 -32523 32412 4575.009900990099 462076 -125 127 -0.039603960396039604 -4 -460 101 10450 99361 1.38138 298.38138 149.88138 14988.13813 1.38138 298.38138 149.88137 14988.13789 1.38138 298.38138 149.88138000000012 14988.13800 2020-01-01 2020-01-02 2020-01-01 00:07:40 2020-01-02 03:36:01 2020-01-01 00:07:40.000 2020-01-02 03:36:01.000 460 99361 49910.5 4991050 460 99361 49910.5 4991050 -32710 32428 4690.66 469066 -128 127 -1.82 -182 +440 101 10430 99341 1.32132 298.32132 149.82132 14982.13213 1.32132 298.32132 149.82131 14982.13197 1.32132 298.32132 149.82132 14982.13200 2020-01-01 2020-01-02 2020-01-01 00:07:20 2020-01-02 03:35:41 2020-01-01 00:07:20.000 2020-01-02 03:35:41.000 440 99341 49890.5 4989050 440 99341 49890.5 4989050 -32730 32408 4670.66 467066 -124 127 1.22 122 +441 101 10431 99342 1.32432 298.32432 149.82432 14982.43243 1.32432 298.3243 149.82432 14982.4323 1.32432 298.32432 149.82432 14982.43200 2020-01-01 2020-01-02 2020-01-01 00:07:21 2020-01-02 03:35:42 2020-01-01 00:07:21.000 2020-01-02 03:35:42.000 441 99342 49891.5 4989150 441 99342 49891.5 4989150 -32729 32409 4671.66 467166 -128 127 -0.34 -34 +442 101 10432 99343 1.32732 298.32732 149.82732 14982.73273 1.32732 298.32733 149.82732 14982.7329 1.32732 298.32732 149.82732 14982.73200 2020-01-01 2020-01-02 2020-01-01 00:07:22 2020-01-02 03:35:43 2020-01-01 00:07:22.000 2020-01-02 03:35:43.000 442 99343 49892.5 4989250 442 99343 49892.5 4989250 -32728 32410 4672.66 467266 -128 123 -1.9 -190 +443 101 10433 99344 1.33033 298.33033 149.83033 14983.03303 1.33033 298.33032 149.83033 14983.03319 1.33033 298.33033 149.83033 14983.03300 2020-01-01 2020-01-02 2020-01-01 00:07:23 2020-01-02 03:35:44 2020-01-01 00:07:23.000 2020-01-02 03:35:44.000 443 99344 49893.5 4989350 443 99344 49893.5 4989350 -32727 32411 4673.66 467366 -127 124 -0.9 -90 +444 101 10434 99345 1.33333 298.33333 149.83333 14983.33333 1.33333 298.33334 149.83333 14983.33331 1.33333 298.33333 149.83333000000002 14983.33300 2020-01-01 2020-01-02 2020-01-01 00:07:24 2020-01-02 03:35:45 2020-01-01 00:07:24.000 2020-01-02 03:35:45.000 444 99345 49894.5 4989450 444 99345 49894.5 4989450 -32726 32412 4674.66 467466 -126 125 0.1 10 +445 101 10435 99346 1.33633 298.33633 149.83633 14983.63363 1.33633 298.33633 149.83633 14983.63348 1.33633 298.33633 149.83633 14983.63300 2020-01-01 2020-01-02 2020-01-01 00:07:25 2020-01-02 03:35:46 2020-01-01 00:07:25.000 2020-01-02 03:35:46.000 445 99346 49895.5 4989550 445 99346 49895.5 4989550 -32725 32413 4675.66 467566 -125 126 1.1 110 +446 101 10436 99347 1.33933 298.33933 149.83933 14983.93393 1.33933 298.33932 149.83933 14983.93378 1.33933 298.33933 149.83933000000002 14983.93300 2020-01-01 2020-01-02 2020-01-01 00:07:26 2020-01-02 03:35:47 2020-01-01 00:07:26.000 2020-01-02 03:35:47.000 446 99347 49896.5 4989650 446 99347 49896.5 4989650 -32724 32414 4676.66 467666 -124 127 2.1 210 +447 101 10437 99348 1.34234 298.34234 149.84234 14984.23423 1.34234 298.34235 149.84234 14984.23437 1.34234 298.34234 149.84234 14984.23400 2020-01-01 2020-01-02 2020-01-01 00:07:27 2020-01-02 03:35:48 2020-01-01 00:07:27.000 2020-01-02 03:35:48.000 447 99348 49897.5 4989750 447 99348 49897.5 4989750 -32723 32415 4677.66 467766 -128 127 0.54 54 +448 101 10438 99349 1.34534 298.34534 149.84534 14984.53453 1.34534 298.34534 149.84534 14984.53466 1.34534 298.34534 149.84534 14984.53400 2020-01-01 2020-01-02 2020-01-01 00:07:28 2020-01-02 03:35:49 2020-01-01 00:07:28.000 2020-01-02 03:35:49.000 448 99349 49898.5 4989850 448 99349 49898.5 4989850 -32722 32416 4678.66 467866 -128 123 -1.02 -102 +449 101 10439 99350 1.34834 298.34834 149.84834 14984.83483 1.34834 298.34836 149.84834 14984.83478 1.34834 298.34834 149.84834 14984.83400 2020-01-01 2020-01-02 2020-01-01 00:07:29 2020-01-02 03:35:50 2020-01-01 00:07:29.000 2020-01-02 03:35:50.000 449 99350 49899.5 4989950 449 99350 49899.5 4989950 -32721 32417 4679.66 467966 -127 124 -0.02 -2 +45 102 10035 99945 0.13513 300.13513 150.13513 15163.64864 0.13513 300.13513 150.13513 15163.64839 0.13513 300.13513 150.13513 15163.64813 2020-01-01 2020-01-02 2020-01-01 00:00:45 2020-01-02 03:45:45 2020-01-01 00:00:45.000 2020-01-02 03:45:45.000 45 99945 49995 5049495 45 99945 49995 5049495 -32524 32411 4574.009900990099 461975 -126 126 -1.0396039603960396 -105 +450 101 10440 99351 1.35135 298.35135 149.85135 14985.13513 1.35135 298.35135 149.85134 14985.13495 1.35135 298.35135 149.85135 14985.13500 2020-01-01 2020-01-02 2020-01-01 00:07:30 2020-01-02 03:35:51 2020-01-01 00:07:30.000 2020-01-02 03:35:51.000 450 99351 49900.5 4990050 450 99351 49900.5 4990050 -32720 32418 4680.66 468066 -126 125 0.98 98 +451 101 10441 99352 1.35435 298.35435 149.85435 14985.43543 1.35435 298.35434 149.85435 14985.43525 1.35435 298.35435 149.85434999999998 14985.43500 2020-01-01 2020-01-02 2020-01-01 00:07:31 2020-01-02 03:35:52 2020-01-01 00:07:31.000 2020-01-02 03:35:52.000 451 99352 49901.5 4990150 451 99352 49901.5 4990150 -32719 32419 4681.66 468166 -125 126 1.98 198 +452 101 10442 99353 1.35735 298.35735 149.85735 14985.73573 1.35735 298.35736 149.85736 14985.736 1.35735 298.35735 149.85735 14985.73500 2020-01-01 2020-01-02 2020-01-01 00:07:32 2020-01-02 03:35:53 2020-01-01 00:07:32.000 2020-01-02 03:35:53.000 452 99353 49902.5 4990250 452 99353 49902.5 4990250 -32718 32420 4682.66 468266 -124 127 2.98 298 +453 101 10443 99354 1.36036 298.36036 149.86036 14986.03603 1.36036 298.36035 149.86036 14986.03614 1.36036 298.36036 149.86036000000001 14986.03600 2020-01-01 2020-01-02 2020-01-01 00:07:33 2020-01-02 03:35:54 2020-01-01 00:07:33.000 2020-01-02 03:35:54.000 453 99354 49903.5 4990350 453 99354 49903.5 4990350 -32717 32421 4683.66 468366 -128 127 1.42 142 +454 101 10444 99355 1.36336 298.36336 149.86336 14986.33633 1.36336 298.36337 149.86336 14986.33629 1.36336 298.36336 149.86336 14986.33600 2020-01-01 2020-01-02 2020-01-01 00:07:34 2020-01-02 03:35:55 2020-01-01 00:07:34.000 2020-01-02 03:35:55.000 454 99355 49904.5 4990450 454 99355 49904.5 4990450 -32716 32422 4684.66 468466 -128 127 -0.14 -14 +455 101 10445 99356 1.36636 298.36636 149.86636 14986.63663 1.36636 298.36636 149.86636 14986.63641 1.36636 298.36636 149.86636000000001 14986.63600 2020-01-01 2020-01-02 2020-01-01 00:07:35 2020-01-02 03:35:56 2020-01-01 00:07:35.000 2020-01-02 03:35:56.000 455 99356 49905.5 4990550 455 99356 49905.5 4990550 -32715 32423 4685.66 468566 -128 124 -1.7 -170 +456 101 10446 99357 1.36936 298.36936 149.86936 14986.93693 1.36936 298.36935 149.86936 14986.93672 1.36936 298.36936 149.86936 14986.93600 2020-01-01 2020-01-02 2020-01-01 00:07:36 2020-01-02 03:35:57 2020-01-01 00:07:36.000 2020-01-02 03:35:57.000 456 99357 49906.5 4990650 456 99357 49906.5 4990650 -32714 32424 4686.66 468666 -127 125 -0.7 -70 +457 101 10447 99358 1.37237 298.37237 149.87237 14987.23723 1.37237 298.37238 149.87237 14987.23747 1.37237 298.37237 149.87237 14987.23700 2020-01-01 2020-01-02 2020-01-01 00:07:37 2020-01-02 03:35:58 2020-01-01 00:07:37.000 2020-01-02 03:35:58.000 457 99358 49907.5 4990750 457 99358 49907.5 4990750 -32713 32425 4687.66 468766 -126 126 0.3 30 +458 101 10448 99359 1.37537 298.37537 149.87537 14987.53753 1.37537 298.37537 149.87537 14987.5376 1.37537 298.37537 149.87537 14987.53700 2020-01-01 2020-01-02 2020-01-01 00:07:38 2020-01-02 03:35:59 2020-01-01 00:07:38.000 2020-01-02 03:35:59.000 458 99359 49908.5 4990850 458 99359 49908.5 4990850 -32712 32426 4688.66 468866 -125 127 1.3 130 +459 101 10449 99360 1.37837 298.37837 149.87837 14987.83783 1.37837 298.3784 149.87837 14987.83775 1.37837 298.37837 149.87837 14987.83700 2020-01-01 2020-01-02 2020-01-01 00:07:39 2020-01-02 03:36:00 2020-01-01 00:07:39.000 2020-01-02 03:36:00.000 459 99360 49909.5 4990950 459 99360 49909.5 4990950 -32711 32427 4689.66 468966 -128 127 -0.26 -26 +46 102 10036 99946 0.13813 300.13813 150.13813 15163.95195 0.13813 300.13815 150.13814 15163.95214 0.13813 300.13813 150.13813 15163.95113 2020-01-01 2020-01-02 2020-01-01 00:00:46 2020-01-02 03:45:46 2020-01-01 00:00:46.000 2020-01-02 03:45:46.000 46 99946 49996 5049596 46 99946 49996 5049596 -32523 32412 4575.009900990099 462076 -125 127 -0.039603960396039604 -4 +460 101 10450 99361 1.38138 298.38138 149.88138 14988.13813 1.38138 298.38138 149.88137 14988.13789 1.38138 298.38138 149.88138 14988.13800 2020-01-01 2020-01-02 2020-01-01 00:07:40 2020-01-02 03:36:01 2020-01-01 00:07:40.000 2020-01-02 03:36:01.000 460 99361 49910.5 4991050 460 99361 49910.5 4991050 -32710 32428 4690.66 469066 -128 127 -1.82 -182 461 101 10451 99362 1.38438 298.38438 149.88438 14988.43843 1.38438 298.3844 149.88438 14988.43864 1.38438 298.38438 149.88438 14988.43800 2020-01-01 2020-01-02 2020-01-01 00:07:41 2020-01-02 03:36:02 2020-01-01 00:07:41.000 2020-01-02 03:36:02.000 461 99362 49911.5 4991150 461 99362 49911.5 4991150 -32709 32429 4691.66 469166 -128 123 -3.38 -338 -462 101 10452 99363 1.38738 298.38738 149.88738 14988.73873 1.38738 298.3874 149.88738 14988.73894 1.38738 298.38738 149.8873800000001 14988.73800 2020-01-01 2020-01-02 2020-01-01 00:07:42 2020-01-02 03:36:03 2020-01-01 00:07:42.000 2020-01-02 03:36:03.000 462 99363 49912.5 4991250 462 99363 49912.5 4991250 -32708 32430 4692.66 469266 -127 124 -2.38 -238 +462 101 10452 99363 1.38738 298.38738 149.88738 14988.73873 1.38738 298.3874 149.88738 14988.73894 1.38738 298.38738 149.88738 14988.73800 2020-01-01 2020-01-02 2020-01-01 00:07:42 2020-01-02 03:36:03 2020-01-01 00:07:42.000 2020-01-02 03:36:03.000 462 99363 49912.5 4991250 462 99363 49912.5 4991250 -32708 32430 4692.66 469266 -127 124 -2.38 -238 463 101 10453 99364 1.39039 298.39039 149.89039 14989.03903 1.39039 298.39038 149.89039 14989.03907 1.39039 298.39039 149.89039 14989.03900 2020-01-01 2020-01-02 2020-01-01 00:07:43 2020-01-02 03:36:04 2020-01-01 00:07:43.000 2020-01-02 03:36:04.000 463 99364 49913.5 4991350 463 99364 49913.5 4991350 -32707 32431 4693.66 469366 -126 125 -1.38 -138 -464 101 10454 99365 1.39339 298.39339 149.89339 14989.33933 1.39339 298.3934 149.89339 14989.33922 1.39339 298.39339 149.89338999999987 14989.33900 2020-01-01 2020-01-02 2020-01-01 00:07:44 2020-01-02 03:36:05 2020-01-01 00:07:44.000 2020-01-02 03:36:05.000 464 99365 49914.5 4991450 464 99365 49914.5 4991450 -32706 32432 4694.66 469466 -125 126 -0.38 -38 -465 101 10455 99366 1.39639 298.39639 149.89639 14989.63963 1.39639 298.3964 149.89639 14989.63936 1.39639 298.39639 149.8963899999999 14989.63900 2020-01-01 2020-01-02 2020-01-01 00:07:45 2020-01-02 03:36:06 2020-01-01 00:07:45.000 2020-01-02 03:36:06.000 465 99366 49915.5 4991550 465 99366 49915.5 4991550 -32705 32433 4695.66 469566 -124 127 0.62 62 +464 101 10454 99365 1.39339 298.39339 149.89339 14989.33933 1.39339 298.3934 149.89339 14989.33922 1.39339 298.39339 149.89339 14989.33900 2020-01-01 2020-01-02 2020-01-01 00:07:44 2020-01-02 03:36:05 2020-01-01 00:07:44.000 2020-01-02 03:36:05.000 464 99365 49914.5 4991450 464 99365 49914.5 4991450 -32706 32432 4694.66 469466 -125 126 -0.38 -38 +465 101 10455 99366 1.39639 298.39639 149.89639 14989.63963 1.39639 298.3964 149.89639 14989.63936 1.39639 298.39639 149.89639 14989.63900 2020-01-01 2020-01-02 2020-01-01 00:07:45 2020-01-02 03:36:06 2020-01-01 00:07:45.000 2020-01-02 03:36:06.000 465 99366 49915.5 4991550 465 99366 49915.5 4991550 -32705 32433 4695.66 469566 -124 127 0.62 62 466 101 10456 99367 1.39939 298.39939 149.89939 14989.93993 1.39939 298.3994 149.8994 14989.94011 1.39939 298.39939 149.89939 14989.93900 2020-01-01 2020-01-02 2020-01-01 00:07:46 2020-01-02 03:36:07 2020-01-01 00:07:46.000 2020-01-02 03:36:07.000 466 99367 49916.5 4991650 466 99367 49916.5 4991650 -32704 32434 4696.66 469666 -128 127 -0.94 -94 -467 101 10457 99368 1.4024 298.4024 149.9024 14990.24024 1.4024 298.4024 149.9024 14990.24041 1.40240 298.40240 149.90240000000023 14990.24000 2020-01-01 2020-01-02 2020-01-01 00:07:47 2020-01-02 03:36:08 2020-01-01 00:07:47.000 2020-01-02 03:36:08.000 467 99368 49917.5 4991750 467 99368 49917.5 4991750 -32703 32435 4697.66 469766 -128 123 -2.5 -250 -468 101 10458 99369 1.4054 298.4054 149.9054 14990.54054 1.4054 298.4054 149.9054 14990.54058 1.40540 298.40540 149.9053999999998 14990.54000 2020-01-01 2020-01-02 2020-01-01 00:07:48 2020-01-02 03:36:09 2020-01-01 00:07:48.000 2020-01-02 03:36:09.000 468 99369 49918.5 4991850 468 99369 49918.5 4991850 -32702 32436 4698.66 469866 -127 124 -1.5 -150 -469 101 10459 99370 1.4084 298.4084 149.9084 14990.84084 1.4084 298.40842 149.9084 14990.8407 1.40840 298.40840 149.90840000000014 14990.84000 2020-01-01 2020-01-02 2020-01-01 00:07:49 2020-01-02 03:36:10 2020-01-01 00:07:49.000 2020-01-02 03:36:10.000 469 99370 49919.5 4991950 469 99370 49919.5 4991950 -32701 32437 4699.66 469966 -126 125 -0.5 -50 -47 102 10037 99947 0.14114 300.14114 150.14114 15164.25525 0.14114 300.14114 150.14114 15164.25545 0.14114 300.14114 150.14113999999984 15164.25514 2020-01-01 2020-01-02 2020-01-01 00:00:47 2020-01-02 03:45:47 2020-01-01 00:00:47.000 2020-01-02 03:45:47.000 47 99947 49997 5049697 47 99947 49997 5049697 -32522 32413 4576.009900990099 462177 -128 127 -1.5742574257425743 -159 -470 101 10460 99371 1.41141 298.41141 149.91141 14991.14114 1.41141 298.4114 149.9114 14991.14099 1.41141 298.41141 149.91141000000013 14991.14100 2020-01-01 2020-01-02 2020-01-01 00:07:50 2020-01-02 03:36:11 2020-01-01 00:07:50.000 2020-01-02 03:36:11.000 470 99371 49920.5 4992050 470 99371 49920.5 4992050 -32700 32438 4700.66 470066 -125 126 0.5 50 -471 101 10461 99372 1.41441 298.41441 149.91441 14991.44144 1.41441 298.41443 149.91441 14991.44159 1.41441 298.41441 149.9144099999999 14991.44100 2020-01-01 2020-01-02 2020-01-01 00:07:51 2020-01-02 03:36:12 2020-01-01 00:07:51.000 2020-01-02 03:36:12.000 471 99372 49921.5 4992150 471 99372 49921.5 4992150 -32699 32439 4701.66 470166 -124 127 1.5 150 -472 101 10462 99373 1.41741 298.41741 149.91741 14991.74174 1.41741 298.41742 149.91741 14991.74188 1.41741 298.41741 149.91741000000002 14991.74100 2020-01-01 2020-01-02 2020-01-01 00:07:52 2020-01-02 03:36:13 2020-01-01 00:07:52.000 2020-01-02 03:36:13.000 472 99373 49922.5 4992250 472 99373 49922.5 4992250 -32698 32440 4702.66 470266 -128 127 -0.06 -6 -473 101 10463 99374 1.42042 298.42042 149.92042 14992.04204 1.42042 298.4204 149.92042 14992.04204 1.42042 298.42042 149.92042000000023 14992.04200 2020-01-01 2020-01-02 2020-01-01 00:07:53 2020-01-02 03:36:14 2020-01-01 00:07:53.000 2020-01-02 03:36:14.000 473 99374 49923.5 4992350 473 99374 49923.5 4992350 -32697 32441 4703.66 470366 -128 123 -1.62 -162 -474 101 10464 99375 1.42342 298.42342 149.92342 14992.34234 1.42342 298.42343 149.92342 14992.34216 1.42342 298.42342 149.9234199999998 14992.34200 2020-01-01 2020-01-02 2020-01-01 00:07:54 2020-01-02 03:36:15 2020-01-01 00:07:54.000 2020-01-02 03:36:15.000 474 99375 49924.5 4992450 474 99375 49924.5 4992450 -32696 32442 4704.66 470466 -127 124 -0.62 -62 -475 101 10465 99376 1.42642 298.42642 149.92642 14992.64264 1.42642 298.42642 149.92642 14992.64246 1.42642 298.42642 149.9264199999998 14992.64200 2020-01-01 2020-01-02 2020-01-01 00:07:55 2020-01-02 03:36:16 2020-01-01 00:07:55.000 2020-01-02 03:36:16.000 475 99376 49925.5 4992550 475 99376 49925.5 4992550 -32695 32443 4705.66 470566 -126 125 0.38 38 -476 101 10466 99377 1.42942 298.42942 149.92942 14992.94294 1.42942 298.42944 149.92943 14992.94305 1.42942 298.42942 149.92942000000025 14992.94200 2020-01-01 2020-01-02 2020-01-01 00:07:56 2020-01-02 03:36:17 2020-01-01 00:07:56.000 2020-01-02 03:36:17.000 476 99377 49926.5 4992650 476 99377 49926.5 4992650 -32694 32444 4706.66 470666 -125 126 1.38 138 -477 101 10467 99378 1.43243 298.43243 149.93243 14993.24324 1.43243 298.43243 149.93243 14993.24338 1.43243 298.43243 149.93243000000015 14993.24300 2020-01-01 2020-01-02 2020-01-01 00:07:57 2020-01-02 03:36:18 2020-01-01 00:07:57.000 2020-01-02 03:36:18.000 477 99378 49927.5 4992750 477 99378 49927.5 4992750 -32693 32445 4707.66 470766 -124 127 2.38 238 -478 101 10468 99379 1.43543 298.43543 149.93543 14993.54354 1.43543 298.43542 149.93543 14993.54352 1.43543 298.43543 149.93542999999968 14993.54300 2020-01-01 2020-01-02 2020-01-01 00:07:58 2020-01-02 03:36:19 2020-01-01 00:07:58.000 2020-01-02 03:36:19.000 478 99379 49928.5 4992850 478 99379 49928.5 4992850 -32692 32446 4708.66 470866 -128 127 0.82 82 -479 101 10469 99380 1.43843 298.43843 149.93843 14993.84384 1.43843 298.43845 149.93844 14993.84427 1.43843 298.43843 149.93843000000012 14993.84300 2020-01-01 2020-01-02 2020-01-01 00:07:59 2020-01-02 03:36:20 2020-01-01 00:07:59.000 2020-01-02 03:36:20.000 479 99380 49929.5 4992950 479 99380 49929.5 4992950 -32691 32447 4709.66 470966 -128 127 -0.74 -74 -48 102 10038 99948 0.14414 300.14414 150.14414 15164.55855 0.14414 300.14413 150.14414 15164.55863 0.14414 300.14414 150.14414000000022 15164.55814 2020-01-01 2020-01-02 2020-01-01 00:00:48 2020-01-02 03:45:48 2020-01-01 00:00:48.000 2020-01-02 03:45:48.000 48 99948 49998 5049798 48 99948 49998 5049798 -32521 32414 4577.009900990099 462278 -128 127 -3.108910891089109 -314 -480 101 10470 99381 1.44144 298.44144 149.94144 14994.14414 1.44144 298.44144 149.94143 14994.14392 1.44144 298.44144 149.94144000000003 14994.14400 2020-01-01 2020-01-02 2020-01-01 00:08:00 2020-01-02 03:36:21 2020-01-01 00:08:00.000 2020-01-02 03:36:21.000 480 99381 49930.5 4993050 480 99381 49930.5 4993050 -32690 32448 4710.66 471066 -128 124 -2.3 -230 -481 101 10471 99382 1.44444 298.44444 149.94444 14994.44444 1.44444 298.44446 149.94444 14994.44452 1.44444 298.44444 149.9444399999999 14994.44400 2020-01-01 2020-01-02 2020-01-01 00:08:01 2020-01-02 03:36:22 2020-01-01 00:08:01.000 2020-01-02 03:36:22.000 481 99382 49931.5 4993150 481 99382 49931.5 4993150 -32689 32449 4711.66 471166 -127 125 -1.3 -130 -482 101 10472 99383 1.44744 298.44744 149.94744 14994.74474 1.44744 298.44745 149.94744 14994.74485 1.44744 298.44744 149.94743999999994 14994.74400 2020-01-01 2020-01-02 2020-01-01 00:08:02 2020-01-02 03:36:23 2020-01-01 00:08:02.000 2020-01-02 03:36:23.000 482 99383 49932.5 4993250 482 99383 49932.5 4993250 -32688 32450 4712.66 471266 -126 126 -0.3 -30 -483 101 10473 99384 1.45045 298.45045 149.95045 14995.04504 1.45045 298.45044 149.95044 14995.04499 1.45045 298.45045 149.95045000000016 14995.04500 2020-01-01 2020-01-02 2020-01-01 00:08:03 2020-01-02 03:36:24 2020-01-01 00:08:03.000 2020-01-02 03:36:24.000 483 99384 49933.5 4993350 483 99384 49933.5 4993350 -32687 32451 4713.66 471366 -125 127 0.7 70 -484 101 10474 99385 1.45345 298.45345 149.95345 14995.34534 1.45345 298.45346 149.95345 14995.34574 1.45345 298.45345 149.95345000000026 14995.34500 2020-01-01 2020-01-02 2020-01-01 00:08:04 2020-01-02 03:36:25 2020-01-01 00:08:04.000 2020-01-02 03:36:25.000 484 99385 49934.5 4993450 484 99385 49934.5 4993450 -32686 32452 4714.66 471466 -128 127 -0.86 -86 -485 101 10475 99386 1.45645 298.45645 149.95645 14995.64564 1.45645 298.45645 149.95645 14995.6454 1.45645 298.45645 149.95644999999982 14995.64500 2020-01-01 2020-01-02 2020-01-01 00:08:05 2020-01-02 03:36:26 2020-01-01 00:08:05.000 2020-01-02 03:36:26.000 485 99386 49935.5 4993550 485 99386 49935.5 4993550 -32685 32453 4715.66 471566 -128 127 -2.42 -242 -486 101 10476 99387 1.45945 298.45945 149.95945 14995.94594 1.45945 298.45947 149.95946 14995.94602 1.45945 298.45945 149.95945000000017 14995.94500 2020-01-01 2020-01-02 2020-01-01 00:08:06 2020-01-02 03:36:27 2020-01-01 00:08:06.000 2020-01-02 03:36:27.000 486 99387 49936.5 4993650 486 99387 49936.5 4993650 -32684 32454 4716.66 471666 -128 123 -3.98 -398 -487 101 10477 99388 1.46246 298.46246 149.96246 14996.24624 1.46246 298.46246 149.96246 14996.24633 1.46246 298.46246 149.96246000000014 14996.24600 2020-01-01 2020-01-02 2020-01-01 00:08:07 2020-01-02 03:36:28 2020-01-01 00:08:07.000 2020-01-02 03:36:28.000 487 99388 49937.5 4993750 487 99388 49937.5 4993750 -32683 32455 4717.66 471766 -127 124 -2.98 -298 -488 101 10478 99389 1.46546 298.46546 149.96546 14996.54654 1.46546 298.46545 149.96546 14996.54645 1.46546 298.46546 149.96545999999995 14996.54600 2020-01-01 2020-01-02 2020-01-01 00:08:08 2020-01-02 03:36:29 2020-01-01 00:08:08.000 2020-01-02 03:36:29.000 488 99389 49938.5 4993850 488 99389 49938.5 4993850 -32682 32456 4718.66 471866 -126 125 -1.98 -198 -489 101 10479 99390 1.46846 298.46846 149.96846 14996.84684 1.46846 298.46848 149.96847 14996.84721 1.46846 298.46846 149.96846000000002 14996.84600 2020-01-01 2020-01-02 2020-01-01 00:08:09 2020-01-02 03:36:30 2020-01-01 00:08:09.000 2020-01-02 03:36:30.000 489 99390 49939.5 4993950 489 99390 49939.5 4993950 -32681 32457 4719.66 471966 -125 126 -0.98 -98 -49 102 10039 99949 0.14714 300.14714 150.14714 15164.86186 0.14714 300.14716 150.14714 15164.86173 0.14714 300.14714 150.14713999999972 15164.86114 2020-01-01 2020-01-02 2020-01-01 00:00:49 2020-01-02 03:45:49 2020-01-01 00:00:49.000 2020-01-02 03:45:49.000 49 99949 49999 5049899 49 99949 49999 5049899 -32520 32415 4578.009900990099 462379 -128 123 -4.643564356435643 -469 -490 101 10480 99391 1.47147 298.47147 149.97147 14997.14714 1.47147 298.47147 149.97146 14997.14687 1.47147 298.47147 149.9714700000003 14997.14700 2020-01-01 2020-01-02 2020-01-01 00:08:10 2020-01-02 03:36:31 2020-01-01 00:08:10.000 2020-01-02 03:36:31.000 490 99391 49940.5 4994050 490 99391 49940.5 4994050 -32680 32458 4720.66 472066 -124 127 0.02 2 -491 101 10481 99392 1.47447 298.47447 149.97447 14997.44744 1.47447 298.4745 149.97447 14997.44749 1.47447 298.47447 149.9744699999998 14997.44700 2020-01-01 2020-01-02 2020-01-01 00:08:11 2020-01-02 03:36:32 2020-01-01 00:08:11.000 2020-01-02 03:36:32.000 491 99392 49941.5 4994150 491 99392 49941.5 4994150 -32679 32459 4721.66 472166 -128 127 -1.54 -154 -492 101 10482 99393 1.47747 298.47747 149.97747 14997.74774 1.47747 298.47748 149.97747 14997.74779 1.47747 298.47747 149.97746999999984 14997.74700 2020-01-01 2020-01-02 2020-01-01 00:08:12 2020-01-02 03:36:33 2020-01-01 00:08:12.000 2020-01-02 03:36:33.000 492 99393 49942.5 4994250 492 99393 49942.5 4994250 -32678 32460 4722.66 472266 -128 123 -3.1 -310 -493 101 10483 99394 1.48048 298.48048 149.98048 14998.04804 1.48048 298.48047 149.98048 14998.04809 1.48048 298.48048 149.98048000000014 14998.04800 2020-01-01 2020-01-02 2020-01-01 00:08:13 2020-01-02 03:36:34 2020-01-01 00:08:13.000 2020-01-02 03:36:34.000 493 99394 49943.5 4994350 493 99394 49943.5 4994350 -32677 32461 4723.66 472366 -127 124 -2.1 -210 -494 101 10484 99395 1.48348 298.48348 149.98348 14998.34834 1.48348 298.4835 149.98348 14998.34868 1.48348 298.48348 149.98348000000018 14998.34800 2020-01-01 2020-01-02 2020-01-01 00:08:14 2020-01-02 03:36:35 2020-01-01 00:08:14.000 2020-01-02 03:36:35.000 494 99395 49944.5 4994450 494 99395 49944.5 4994450 -32676 32462 4724.66 472466 -126 125 -1.1 -110 -495 100 10485 99396 1.48648 298.48648 149.98648 14998.64864 1.48648 298.48648 149.98648 14998.64837 1.48648 298.48648 149.9864799999997 14998.64800 2020-01-01 2020-01-02 2020-01-01 00:08:15 2020-01-02 03:36:36 2020-01-01 00:08:15.000 2020-01-02 03:36:36.000 495 99396 49945.5 4994550 495 99396 49945.5 4994550 -32675 32463 4725.66 472566 -125 126 -0.1 -10 -496 100 10486 99397 1.48948 298.48948 149.98948 14998.94894 1.48948 298.4895 149.98948 14998.94896 1.48948 298.48948 149.98948000000016 14998.94800 2020-01-01 2020-01-02 2020-01-01 00:08:16 2020-01-02 03:36:37 2020-01-01 00:08:16.000 2020-01-02 03:36:37.000 496 99397 49946.5 4994650 496 99397 49946.5 4994650 -32674 32464 4726.66 472666 -124 127 0.9 90 -497 100 10487 99398 1.49249 298.49249 149.99249 14999.24924 1.49249 298.4925 149.99249 14999.24926 1.49249 298.49249 149.99249000000003 14999.24900 2020-01-01 2020-01-02 2020-01-01 00:08:17 2020-01-02 03:36:38 2020-01-01 00:08:17.000 2020-01-02 03:36:38.000 497 99398 49947.5 4994750 497 99398 49947.5 4994750 -32673 32465 4727.66 472766 -128 127 -0.66 -66 -498 100 10488 99399 1.49549 298.49549 149.99549 14999.54954 1.49549 298.49548 149.99549 14999.54956 1.49549 298.49549 149.99548999999988 14999.54900 2020-01-01 2020-01-02 2020-01-01 00:08:18 2020-01-02 03:36:39 2020-01-01 00:08:18.000 2020-01-02 03:36:39.000 498 99399 49948.5 4994850 498 99399 49948.5 4994850 -32672 32466 4728.66 472866 -128 123 -2.22 -222 -499 100 10489 99400 1.49849 298.49849 149.99849 14999.84984 1.49849 298.4985 149.9985 14999.85015 1.49849 298.49849 149.99848999999998 14999.84900 2020-01-01 2020-01-02 2020-01-01 00:08:19 2020-01-02 03:36:40 2020-01-01 00:08:19.000 2020-01-02 03:36:40.000 499 99400 49949.5 4994950 499 99400 49949.5 4994950 -32671 32467 4729.66 472966 -127 124 -1.22 -122 -5 102 1004 9995 0.01501 300.01501 150.01501 15151.51651 0.01501 300.015 150.01501 15151.51648 0.01501 300.01501 150.01500999999976 15151.51601 2020-01-01 2020-01-02 2020-01-01 00:00:05 2020-01-02 03:45:05 2020-01-01 00:00:05.000 2020-01-02 03:45:05.000 5 99905 49955 5045455 5 99905 49955 5045455 -32564 32371 4534.009900990099 457935 -128 123 -3.01980198019802 -305 +467 101 10457 99368 1.4024 298.4024 149.9024 14990.24024 1.4024 298.4024 149.9024 14990.24041 1.40240 298.40240 149.9024 14990.24000 2020-01-01 2020-01-02 2020-01-01 00:07:47 2020-01-02 03:36:08 2020-01-01 00:07:47.000 2020-01-02 03:36:08.000 467 99368 49917.5 4991750 467 99368 49917.5 4991750 -32703 32435 4697.66 469766 -128 123 -2.5 -250 +468 101 10458 99369 1.4054 298.4054 149.9054 14990.54054 1.4054 298.4054 149.9054 14990.54058 1.40540 298.40540 149.90540000000001 14990.54000 2020-01-01 2020-01-02 2020-01-01 00:07:48 2020-01-02 03:36:09 2020-01-01 00:07:48.000 2020-01-02 03:36:09.000 468 99369 49918.5 4991850 468 99369 49918.5 4991850 -32702 32436 4698.66 469866 -127 124 -1.5 -150 +469 101 10459 99370 1.4084 298.4084 149.9084 14990.84084 1.4084 298.40842 149.9084 14990.8407 1.40840 298.40840 149.9084 14990.84000 2020-01-01 2020-01-02 2020-01-01 00:07:49 2020-01-02 03:36:10 2020-01-01 00:07:49.000 2020-01-02 03:36:10.000 469 99370 49919.5 4991950 469 99370 49919.5 4991950 -32701 32437 4699.66 469966 -126 125 -0.5 -50 +47 102 10037 99947 0.14114 300.14114 150.14114 15164.25525 0.14114 300.14114 150.14114 15164.25545 0.14114 300.14114 150.14114 15164.25514 2020-01-01 2020-01-02 2020-01-01 00:00:47 2020-01-02 03:45:47 2020-01-01 00:00:47.000 2020-01-02 03:45:47.000 47 99947 49997 5049697 47 99947 49997 5049697 -32522 32413 4576.009900990099 462177 -128 127 -1.5742574257425743 -159 +470 101 10460 99371 1.41141 298.41141 149.91141 14991.14114 1.41141 298.4114 149.9114 14991.14099 1.41141 298.41141 149.91141 14991.14100 2020-01-01 2020-01-02 2020-01-01 00:07:50 2020-01-02 03:36:11 2020-01-01 00:07:50.000 2020-01-02 03:36:11.000 470 99371 49920.5 4992050 470 99371 49920.5 4992050 -32700 32438 4700.66 470066 -125 126 0.5 50 +471 101 10461 99372 1.41441 298.41441 149.91441 14991.44144 1.41441 298.41443 149.91441 14991.44159 1.41441 298.41441 149.91441 14991.44100 2020-01-01 2020-01-02 2020-01-01 00:07:51 2020-01-02 03:36:12 2020-01-01 00:07:51.000 2020-01-02 03:36:12.000 471 99372 49921.5 4992150 471 99372 49921.5 4992150 -32699 32439 4701.66 470166 -124 127 1.5 150 +472 101 10462 99373 1.41741 298.41741 149.91741 14991.74174 1.41741 298.41742 149.91741 14991.74188 1.41741 298.41741 149.91741 14991.74100 2020-01-01 2020-01-02 2020-01-01 00:07:52 2020-01-02 03:36:13 2020-01-01 00:07:52.000 2020-01-02 03:36:13.000 472 99373 49922.5 4992250 472 99373 49922.5 4992250 -32698 32440 4702.66 470266 -128 127 -0.06 -6 +473 101 10463 99374 1.42042 298.42042 149.92042 14992.04204 1.42042 298.4204 149.92042 14992.04204 1.42042 298.42042 149.92042 14992.04200 2020-01-01 2020-01-02 2020-01-01 00:07:53 2020-01-02 03:36:14 2020-01-01 00:07:53.000 2020-01-02 03:36:14.000 473 99374 49923.5 4992350 473 99374 49923.5 4992350 -32697 32441 4703.66 470366 -128 123 -1.62 -162 +474 101 10464 99375 1.42342 298.42342 149.92342 14992.34234 1.42342 298.42343 149.92342 14992.34216 1.42342 298.42342 149.92342 14992.34200 2020-01-01 2020-01-02 2020-01-01 00:07:54 2020-01-02 03:36:15 2020-01-01 00:07:54.000 2020-01-02 03:36:15.000 474 99375 49924.5 4992450 474 99375 49924.5 4992450 -32696 32442 4704.66 470466 -127 124 -0.62 -62 +475 101 10465 99376 1.42642 298.42642 149.92642 14992.64264 1.42642 298.42642 149.92642 14992.64246 1.42642 298.42642 149.92642 14992.64200 2020-01-01 2020-01-02 2020-01-01 00:07:55 2020-01-02 03:36:16 2020-01-01 00:07:55.000 2020-01-02 03:36:16.000 475 99376 49925.5 4992550 475 99376 49925.5 4992550 -32695 32443 4705.66 470566 -126 125 0.38 38 +476 101 10466 99377 1.42942 298.42942 149.92942 14992.94294 1.42942 298.42944 149.92943 14992.94305 1.42942 298.42942 149.92942 14992.94200 2020-01-01 2020-01-02 2020-01-01 00:07:56 2020-01-02 03:36:17 2020-01-01 00:07:56.000 2020-01-02 03:36:17.000 476 99377 49926.5 4992650 476 99377 49926.5 4992650 -32694 32444 4706.66 470666 -125 126 1.38 138 +477 101 10467 99378 1.43243 298.43243 149.93243 14993.24324 1.43243 298.43243 149.93243 14993.24338 1.43243 298.43243 149.93243 14993.24300 2020-01-01 2020-01-02 2020-01-01 00:07:57 2020-01-02 03:36:18 2020-01-01 00:07:57.000 2020-01-02 03:36:18.000 477 99378 49927.5 4992750 477 99378 49927.5 4992750 -32693 32445 4707.66 470766 -124 127 2.38 238 +478 101 10468 99379 1.43543 298.43543 149.93543 14993.54354 1.43543 298.43542 149.93543 14993.54352 1.43543 298.43543 149.93543 14993.54300 2020-01-01 2020-01-02 2020-01-01 00:07:58 2020-01-02 03:36:19 2020-01-01 00:07:58.000 2020-01-02 03:36:19.000 478 99379 49928.5 4992850 478 99379 49928.5 4992850 -32692 32446 4708.66 470866 -128 127 0.82 82 +479 101 10469 99380 1.43843 298.43843 149.93843 14993.84384 1.43843 298.43845 149.93844 14993.84427 1.43843 298.43843 149.93843 14993.84300 2020-01-01 2020-01-02 2020-01-01 00:07:59 2020-01-02 03:36:20 2020-01-01 00:07:59.000 2020-01-02 03:36:20.000 479 99380 49929.5 4992950 479 99380 49929.5 4992950 -32691 32447 4709.66 470966 -128 127 -0.74 -74 +48 102 10038 99948 0.14414 300.14414 150.14414 15164.55855 0.14414 300.14413 150.14414 15164.55863 0.14414 300.14414 150.14414 15164.55814 2020-01-01 2020-01-02 2020-01-01 00:00:48 2020-01-02 03:45:48 2020-01-01 00:00:48.000 2020-01-02 03:45:48.000 48 99948 49998 5049798 48 99948 49998 5049798 -32521 32414 4577.009900990099 462278 -128 127 -3.108910891089109 -314 +480 101 10470 99381 1.44144 298.44144 149.94144 14994.14414 1.44144 298.44144 149.94143 14994.14392 1.44144 298.44144 149.94144 14994.14400 2020-01-01 2020-01-02 2020-01-01 00:08:00 2020-01-02 03:36:21 2020-01-01 00:08:00.000 2020-01-02 03:36:21.000 480 99381 49930.5 4993050 480 99381 49930.5 4993050 -32690 32448 4710.66 471066 -128 124 -2.3 -230 +481 101 10471 99382 1.44444 298.44444 149.94444 14994.44444 1.44444 298.44446 149.94444 14994.44452 1.44444 298.44444 149.94444 14994.44400 2020-01-01 2020-01-02 2020-01-01 00:08:01 2020-01-02 03:36:22 2020-01-01 00:08:01.000 2020-01-02 03:36:22.000 481 99382 49931.5 4993150 481 99382 49931.5 4993150 -32689 32449 4711.66 471166 -127 125 -1.3 -130 +482 101 10472 99383 1.44744 298.44744 149.94744 14994.74474 1.44744 298.44745 149.94744 14994.74485 1.44744 298.44744 149.94744 14994.74400 2020-01-01 2020-01-02 2020-01-01 00:08:02 2020-01-02 03:36:23 2020-01-01 00:08:02.000 2020-01-02 03:36:23.000 482 99383 49932.5 4993250 482 99383 49932.5 4993250 -32688 32450 4712.66 471266 -126 126 -0.3 -30 +483 101 10473 99384 1.45045 298.45045 149.95045 14995.04504 1.45045 298.45044 149.95044 14995.04499 1.45045 298.45045 149.95045 14995.04500 2020-01-01 2020-01-02 2020-01-01 00:08:03 2020-01-02 03:36:24 2020-01-01 00:08:03.000 2020-01-02 03:36:24.000 483 99384 49933.5 4993350 483 99384 49933.5 4993350 -32687 32451 4713.66 471366 -125 127 0.7 70 +484 101 10474 99385 1.45345 298.45345 149.95345 14995.34534 1.45345 298.45346 149.95345 14995.34574 1.45345 298.45345 149.95345 14995.34500 2020-01-01 2020-01-02 2020-01-01 00:08:04 2020-01-02 03:36:25 2020-01-01 00:08:04.000 2020-01-02 03:36:25.000 484 99385 49934.5 4993450 484 99385 49934.5 4993450 -32686 32452 4714.66 471466 -128 127 -0.86 -86 +485 101 10475 99386 1.45645 298.45645 149.95645 14995.64564 1.45645 298.45645 149.95645 14995.6454 1.45645 298.45645 149.95645000000002 14995.64500 2020-01-01 2020-01-02 2020-01-01 00:08:05 2020-01-02 03:36:26 2020-01-01 00:08:05.000 2020-01-02 03:36:26.000 485 99386 49935.5 4993550 485 99386 49935.5 4993550 -32685 32453 4715.66 471566 -128 127 -2.42 -242 +486 101 10476 99387 1.45945 298.45945 149.95945 14995.94594 1.45945 298.45947 149.95946 14995.94602 1.45945 298.45945 149.95945 14995.94500 2020-01-01 2020-01-02 2020-01-01 00:08:06 2020-01-02 03:36:27 2020-01-01 00:08:06.000 2020-01-02 03:36:27.000 486 99387 49936.5 4993650 486 99387 49936.5 4993650 -32684 32454 4716.66 471666 -128 123 -3.98 -398 +487 101 10477 99388 1.46246 298.46246 149.96246 14996.24624 1.46246 298.46246 149.96246 14996.24633 1.46246 298.46246 149.96246 14996.24600 2020-01-01 2020-01-02 2020-01-01 00:08:07 2020-01-02 03:36:28 2020-01-01 00:08:07.000 2020-01-02 03:36:28.000 487 99388 49937.5 4993750 487 99388 49937.5 4993750 -32683 32455 4717.66 471766 -127 124 -2.98 -298 +488 101 10478 99389 1.46546 298.46546 149.96546 14996.54654 1.46546 298.46545 149.96546 14996.54645 1.46546 298.46546 149.96546 14996.54600 2020-01-01 2020-01-02 2020-01-01 00:08:08 2020-01-02 03:36:29 2020-01-01 00:08:08.000 2020-01-02 03:36:29.000 488 99389 49938.5 4993850 488 99389 49938.5 4993850 -32682 32456 4718.66 471866 -126 125 -1.98 -198 +489 101 10479 99390 1.46846 298.46846 149.96846 14996.84684 1.46846 298.46848 149.96847 14996.84721 1.46846 298.46846 149.96846 14996.84600 2020-01-01 2020-01-02 2020-01-01 00:08:09 2020-01-02 03:36:30 2020-01-01 00:08:09.000 2020-01-02 03:36:30.000 489 99390 49939.5 4993950 489 99390 49939.5 4993950 -32681 32457 4719.66 471966 -125 126 -0.98 -98 +49 102 10039 99949 0.14714 300.14714 150.14714 15164.86186 0.14714 300.14716 150.14714 15164.86173 0.14714 300.14714 150.14714 15164.86114 2020-01-01 2020-01-02 2020-01-01 00:00:49 2020-01-02 03:45:49 2020-01-01 00:00:49.000 2020-01-02 03:45:49.000 49 99949 49999 5049899 49 99949 49999 5049899 -32520 32415 4578.009900990099 462379 -128 123 -4.643564356435643 -469 +490 101 10480 99391 1.47147 298.47147 149.97147 14997.14714 1.47147 298.47147 149.97146 14997.14687 1.47147 298.47147 149.97147 14997.14700 2020-01-01 2020-01-02 2020-01-01 00:08:10 2020-01-02 03:36:31 2020-01-01 00:08:10.000 2020-01-02 03:36:31.000 490 99391 49940.5 4994050 490 99391 49940.5 4994050 -32680 32458 4720.66 472066 -124 127 0.02 2 +491 101 10481 99392 1.47447 298.47447 149.97447 14997.44744 1.47447 298.4745 149.97447 14997.44749 1.47447 298.47447 149.97447 14997.44700 2020-01-01 2020-01-02 2020-01-01 00:08:11 2020-01-02 03:36:32 2020-01-01 00:08:11.000 2020-01-02 03:36:32.000 491 99392 49941.5 4994150 491 99392 49941.5 4994150 -32679 32459 4721.66 472166 -128 127 -1.54 -154 +492 101 10482 99393 1.47747 298.47747 149.97747 14997.74774 1.47747 298.47748 149.97747 14997.74779 1.47747 298.47747 149.97746999999998 14997.74700 2020-01-01 2020-01-02 2020-01-01 00:08:12 2020-01-02 03:36:33 2020-01-01 00:08:12.000 2020-01-02 03:36:33.000 492 99393 49942.5 4994250 492 99393 49942.5 4994250 -32678 32460 4722.66 472266 -128 123 -3.1 -310 +493 101 10483 99394 1.48048 298.48048 149.98048 14998.04804 1.48048 298.48047 149.98048 14998.04809 1.48048 298.48048 149.98048 14998.04800 2020-01-01 2020-01-02 2020-01-01 00:08:13 2020-01-02 03:36:34 2020-01-01 00:08:13.000 2020-01-02 03:36:34.000 493 99394 49943.5 4994350 493 99394 49943.5 4994350 -32677 32461 4723.66 472366 -127 124 -2.1 -210 +494 101 10484 99395 1.48348 298.48348 149.98348 14998.34834 1.48348 298.4835 149.98348 14998.34868 1.48348 298.48348 149.98348 14998.34800 2020-01-01 2020-01-02 2020-01-01 00:08:14 2020-01-02 03:36:35 2020-01-01 00:08:14.000 2020-01-02 03:36:35.000 494 99395 49944.5 4994450 494 99395 49944.5 4994450 -32676 32462 4724.66 472466 -126 125 -1.1 -110 +495 100 10485 99396 1.48648 298.48648 149.98648 14998.64864 1.48648 298.48648 149.98648 14998.64837 1.48648 298.48648 149.98648 14998.64800 2020-01-01 2020-01-02 2020-01-01 00:08:15 2020-01-02 03:36:36 2020-01-01 00:08:15.000 2020-01-02 03:36:36.000 495 99396 49945.5 4994550 495 99396 49945.5 4994550 -32675 32463 4725.66 472566 -125 126 -0.1 -10 +496 100 10486 99397 1.48948 298.48948 149.98948 14998.94894 1.48948 298.4895 149.98948 14998.94896 1.48948 298.48948 149.98948000000001 14998.94800 2020-01-01 2020-01-02 2020-01-01 00:08:16 2020-01-02 03:36:37 2020-01-01 00:08:16.000 2020-01-02 03:36:37.000 496 99397 49946.5 4994650 496 99397 49946.5 4994650 -32674 32464 4726.66 472666 -124 127 0.9 90 +497 100 10487 99398 1.49249 298.49249 149.99249 14999.24924 1.49249 298.4925 149.99249 14999.24926 1.49249 298.49249 149.99249 14999.24900 2020-01-01 2020-01-02 2020-01-01 00:08:17 2020-01-02 03:36:38 2020-01-01 00:08:17.000 2020-01-02 03:36:38.000 497 99398 49947.5 4994750 497 99398 49947.5 4994750 -32673 32465 4727.66 472766 -128 127 -0.66 -66 +498 100 10488 99399 1.49549 298.49549 149.99549 14999.54954 1.49549 298.49548 149.99549 14999.54956 1.49549 298.49549 149.99549000000002 14999.54900 2020-01-01 2020-01-02 2020-01-01 00:08:18 2020-01-02 03:36:39 2020-01-01 00:08:18.000 2020-01-02 03:36:39.000 498 99399 49948.5 4994850 498 99399 49948.5 4994850 -32672 32466 4728.66 472866 -128 123 -2.22 -222 +499 100 10489 99400 1.49849 298.49849 149.99849 14999.84984 1.49849 298.4985 149.9985 14999.85015 1.49849 298.49849 149.99849 14999.84900 2020-01-01 2020-01-02 2020-01-01 00:08:19 2020-01-02 03:36:40 2020-01-01 00:08:19.000 2020-01-02 03:36:40.000 499 99400 49949.5 4994950 499 99400 49949.5 4994950 -32671 32467 4729.66 472966 -127 124 -1.22 -122 +5 102 1004 9995 0.01501 300.01501 150.01501 15151.51651 0.01501 300.015 150.01501 15151.51648 0.01501 300.01501 150.01501 15151.51601 2020-01-01 2020-01-02 2020-01-01 00:00:05 2020-01-02 03:45:05 2020-01-01 00:00:05.000 2020-01-02 03:45:05.000 5 99905 49955 5045455 5 99905 49955 5045455 -32564 32371 4534.009900990099 457935 -128 123 -3.01980198019802 -305 50 102 10040 99950 0.15015 300.15015 150.15015 15165.16516 0.15015 300.15015 150.15014 15165.16487 0.15015 300.15015 150.15015 15165.16515 2020-01-01 2020-01-02 2020-01-01 00:00:50 2020-01-02 03:45:50 2020-01-01 00:00:50.000 2020-01-02 03:45:50.000 50 99950 50000 5050000 50 99950 50000 5050000 -32519 32416 4579.009900990099 462480 -127 124 -3.6435643564356437 -368 -500 100 10490 99401 1.5015 298.5015 150.0015 15000.15015 1.5015 298.5015 150.00149 15000.14984 1.50150 298.50150 150.0015000000002 15000.15000 2020-01-01 2020-01-02 2020-01-01 00:08:20 2020-01-02 03:36:41 2020-01-01 00:08:20.000 2020-01-02 03:36:41.000 500 99401 49950.5 4995050 500 99401 49950.5 4995050 -32670 32468 4730.66 473066 -126 125 -0.22 -22 -501 100 10491 99402 1.5045 298.5045 150.0045 15000.45045 1.5045 298.50452 150.0045 15000.45043 1.50450 298.50450 150.00449999999972 15000.45000 2020-01-01 2020-01-02 2020-01-01 00:08:21 2020-01-02 03:36:42 2020-01-01 00:08:21.000 2020-01-02 03:36:42.000 501 99402 49951.5 4995150 501 99402 49951.5 4995150 -32669 32469 4731.66 473166 -125 126 0.78 78 -502 100 10492 99403 1.5075 298.5075 150.0075 15000.75075 1.5075 298.5075 150.0075 15000.75073 1.50750 298.50750 150.00749999999982 15000.75000 2020-01-01 2020-01-02 2020-01-01 00:08:22 2020-01-02 03:36:43 2020-01-01 00:08:22.000 2020-01-02 03:36:43.000 502 99403 49952.5 4995250 502 99403 49952.5 4995250 -32668 32470 4732.66 473266 -124 127 1.78 178 -503 100 10493 99404 1.51051 298.51051 150.01051 15001.05105 1.51051 298.5105 150.01051 15001.05103 1.51051 298.51051 150.01051000000004 15001.05100 2020-01-01 2020-01-02 2020-01-01 00:08:23 2020-01-02 03:36:44 2020-01-01 00:08:23.000 2020-01-02 03:36:44.000 503 99404 49953.5 4995350 503 99404 49953.5 4995350 -32667 32471 4733.66 473366 -128 127 0.22 22 -504 100 10494 99405 1.51351 298.51351 150.01351 15001.35135 1.51351 298.51352 150.01351 15001.35162 1.51351 298.51351 150.01351000000014 15001.35100 2020-01-01 2020-01-02 2020-01-01 00:08:24 2020-01-02 03:36:45 2020-01-01 00:08:24.000 2020-01-02 03:36:45.000 504 99405 49954.5 4995450 504 99405 49954.5 4995450 -32666 32472 4734.66 473466 -128 127 -1.34 -134 -505 100 10495 99406 1.51651 298.51651 150.01651 15001.65165 1.51651 298.5165 150.01651 15001.65131 1.51651 298.51651 150.01650999999998 15001.65100 2020-01-01 2020-01-02 2020-01-01 00:08:25 2020-01-02 03:36:46 2020-01-01 00:08:25.000 2020-01-02 03:36:46.000 505 99406 49955.5 4995550 505 99406 49955.5 4995550 -32665 32473 4735.66 473566 -128 124 -2.9 -290 -506 100 10496 99407 1.51951 298.51951 150.01951 15001.95195 1.51951 298.51953 150.01951 15001.9519 1.51951 298.51951 150.01951000000005 15001.95100 2020-01-01 2020-01-02 2020-01-01 00:08:26 2020-01-02 03:36:47 2020-01-01 00:08:26.000 2020-01-02 03:36:47.000 506 99407 49956.5 4995650 506 99407 49956.5 4995650 -32664 32474 4736.66 473666 -127 125 -1.9 -190 -507 100 10497 99408 1.52252 298.52252 150.02252 15002.25225 1.52252 298.52252 150.02252 15002.2522 1.52252 298.52252 150.02252000000033 15002.25200 2020-01-01 2020-01-02 2020-01-01 00:08:27 2020-01-02 03:36:48 2020-01-01 00:08:27.000 2020-01-02 03:36:48.000 507 99408 49957.5 4995750 507 99408 49957.5 4995750 -32663 32475 4737.66 473766 -126 126 -0.9 -90 -508 100 10498 99409 1.52552 298.52552 150.02552 15002.55255 1.52552 298.5255 150.02552 15002.5525 1.52552 298.52552 150.02551999999983 15002.55200 2020-01-01 2020-01-02 2020-01-01 00:08:28 2020-01-02 03:36:49 2020-01-01 00:08:28.000 2020-01-02 03:36:49.000 508 99409 49958.5 4995850 508 99409 49958.5 4995850 -32662 32476 4738.66 473866 -125 127 0.1 10 -509 100 10499 99410 1.52852 298.52852 150.02852 15002.85285 1.52852 298.52853 150.02853 15002.85312 1.52852 298.52852 150.02851999999987 15002.85200 2020-01-01 2020-01-02 2020-01-01 00:08:29 2020-01-02 03:36:50 2020-01-01 00:08:29.000 2020-01-02 03:36:50.000 509 99410 49959.5 4995950 509 99410 49959.5 4995950 -32661 32477 4739.66 473966 -128 127 -1.46 -146 -51 102 10041 99951 0.15315 300.15315 150.15315 15165.46846 0.15315 300.15317 150.15315 15165.46863 0.15315 300.15315 150.15315000000007 15165.46815 2020-01-01 2020-01-02 2020-01-01 00:00:51 2020-01-02 03:45:51 2020-01-01 00:00:51.000 2020-01-02 03:45:51.000 51 99951 50001 5050101 51 99951 50001 5050101 -32518 32417 4580.009900990099 462581 -126 125 -2.6435643564356437 -267 -510 100 10500 99411 1.53153 298.53153 150.03153 15003.15315 1.53153 298.53152 150.03152 15003.15278 1.53153 298.53153 150.03153000000017 15003.15300 2020-01-01 2020-01-02 2020-01-01 00:08:30 2020-01-02 03:36:51 2020-01-01 00:08:30.000 2020-01-02 03:36:51.000 510 99411 49960.5 4996050 510 99411 49960.5 4996050 -32660 32478 4740.66 474066 -128 127 -3.02 -302 -511 100 10501 99412 1.53453 298.53453 150.03453 15003.45345 1.53453 298.53455 150.03453 15003.45354 1.53453 298.53453 150.03453000000022 15003.45300 2020-01-01 2020-01-02 2020-01-01 00:08:31 2020-01-02 03:36:52 2020-01-01 00:08:31.000 2020-01-02 03:36:52.000 511 99412 49961.5 4996150 511 99412 49961.5 4996150 -32659 32479 4741.66 474166 -128 123 -4.58 -458 -512 100 10502 99413 1.53753 298.53753 150.03753 15003.75375 1.53753 298.53754 150.03753 15003.75366 1.53753 298.53753 150.03752999999972 15003.75300 2020-01-01 2020-01-02 2020-01-01 00:08:32 2020-01-02 03:36:53 2020-01-01 00:08:32.000 2020-01-02 03:36:53.000 512 99413 49962.5 4996250 512 99413 49962.5 4996250 -32658 32480 4742.66 474266 -127 124 -3.58 -358 +500 100 10490 99401 1.5015 298.5015 150.0015 15000.15015 1.5015 298.5015 150.00149 15000.14984 1.50150 298.50150 150.0015 15000.15000 2020-01-01 2020-01-02 2020-01-01 00:08:20 2020-01-02 03:36:41 2020-01-01 00:08:20.000 2020-01-02 03:36:41.000 500 99401 49950.5 4995050 500 99401 49950.5 4995050 -32670 32468 4730.66 473066 -126 125 -0.22 -22 +501 100 10491 99402 1.5045 298.5045 150.0045 15000.45045 1.5045 298.50452 150.0045 15000.45043 1.50450 298.50450 150.0045 15000.45000 2020-01-01 2020-01-02 2020-01-01 00:08:21 2020-01-02 03:36:42 2020-01-01 00:08:21.000 2020-01-02 03:36:42.000 501 99402 49951.5 4995150 501 99402 49951.5 4995150 -32669 32469 4731.66 473166 -125 126 0.78 78 +502 100 10492 99403 1.5075 298.5075 150.0075 15000.75075 1.5075 298.5075 150.0075 15000.75073 1.50750 298.50750 150.0075 15000.75000 2020-01-01 2020-01-02 2020-01-01 00:08:22 2020-01-02 03:36:43 2020-01-01 00:08:22.000 2020-01-02 03:36:43.000 502 99403 49952.5 4995250 502 99403 49952.5 4995250 -32668 32470 4732.66 473266 -124 127 1.78 178 +503 100 10493 99404 1.51051 298.51051 150.01051 15001.05105 1.51051 298.5105 150.01051 15001.05103 1.51051 298.51051 150.01050999999998 15001.05100 2020-01-01 2020-01-02 2020-01-01 00:08:23 2020-01-02 03:36:44 2020-01-01 00:08:23.000 2020-01-02 03:36:44.000 503 99404 49953.5 4995350 503 99404 49953.5 4995350 -32667 32471 4733.66 473366 -128 127 0.22 22 +504 100 10494 99405 1.51351 298.51351 150.01351 15001.35135 1.51351 298.51352 150.01351 15001.35162 1.51351 298.51351 150.01351 15001.35100 2020-01-01 2020-01-02 2020-01-01 00:08:24 2020-01-02 03:36:45 2020-01-01 00:08:24.000 2020-01-02 03:36:45.000 504 99405 49954.5 4995450 504 99405 49954.5 4995450 -32666 32472 4734.66 473466 -128 127 -1.34 -134 +505 100 10495 99406 1.51651 298.51651 150.01651 15001.65165 1.51651 298.5165 150.01651 15001.65131 1.51651 298.51651 150.01651 15001.65100 2020-01-01 2020-01-02 2020-01-01 00:08:25 2020-01-02 03:36:46 2020-01-01 00:08:25.000 2020-01-02 03:36:46.000 505 99406 49955.5 4995550 505 99406 49955.5 4995550 -32665 32473 4735.66 473566 -128 124 -2.9 -290 +506 100 10496 99407 1.51951 298.51951 150.01951 15001.95195 1.51951 298.51953 150.01951 15001.9519 1.51951 298.51951 150.01951 15001.95100 2020-01-01 2020-01-02 2020-01-01 00:08:26 2020-01-02 03:36:47 2020-01-01 00:08:26.000 2020-01-02 03:36:47.000 506 99407 49956.5 4995650 506 99407 49956.5 4995650 -32664 32474 4736.66 473666 -127 125 -1.9 -190 +507 100 10497 99408 1.52252 298.52252 150.02252 15002.25225 1.52252 298.52252 150.02252 15002.2522 1.52252 298.52252 150.02252000000001 15002.25200 2020-01-01 2020-01-02 2020-01-01 00:08:27 2020-01-02 03:36:48 2020-01-01 00:08:27.000 2020-01-02 03:36:48.000 507 99408 49957.5 4995750 507 99408 49957.5 4995750 -32663 32475 4737.66 473766 -126 126 -0.9 -90 +508 100 10498 99409 1.52552 298.52552 150.02552 15002.55255 1.52552 298.5255 150.02552 15002.5525 1.52552 298.52552 150.02552 15002.55200 2020-01-01 2020-01-02 2020-01-01 00:08:28 2020-01-02 03:36:49 2020-01-01 00:08:28.000 2020-01-02 03:36:49.000 508 99409 49958.5 4995850 508 99409 49958.5 4995850 -32662 32476 4738.66 473866 -125 127 0.1 10 +509 100 10499 99410 1.52852 298.52852 150.02852 15002.85285 1.52852 298.52853 150.02853 15002.85312 1.52852 298.52852 150.02852000000001 15002.85200 2020-01-01 2020-01-02 2020-01-01 00:08:29 2020-01-02 03:36:50 2020-01-01 00:08:29.000 2020-01-02 03:36:50.000 509 99410 49959.5 4995950 509 99410 49959.5 4995950 -32661 32477 4739.66 473966 -128 127 -1.46 -146 +51 102 10041 99951 0.15315 300.15315 150.15315 15165.46846 0.15315 300.15317 150.15315 15165.46863 0.15315 300.15315 150.15315 15165.46815 2020-01-01 2020-01-02 2020-01-01 00:00:51 2020-01-02 03:45:51 2020-01-01 00:00:51.000 2020-01-02 03:45:51.000 51 99951 50001 5050101 51 99951 50001 5050101 -32518 32417 4580.009900990099 462581 -126 125 -2.6435643564356437 -267 +510 100 10500 99411 1.53153 298.53153 150.03153 15003.15315 1.53153 298.53152 150.03152 15003.15278 1.53153 298.53153 150.03153 15003.15300 2020-01-01 2020-01-02 2020-01-01 00:08:30 2020-01-02 03:36:51 2020-01-01 00:08:30.000 2020-01-02 03:36:51.000 510 99411 49960.5 4996050 510 99411 49960.5 4996050 -32660 32478 4740.66 474066 -128 127 -3.02 -302 +511 100 10501 99412 1.53453 298.53453 150.03453 15003.45345 1.53453 298.53455 150.03453 15003.45354 1.53453 298.53453 150.03453 15003.45300 2020-01-01 2020-01-02 2020-01-01 00:08:31 2020-01-02 03:36:52 2020-01-01 00:08:31.000 2020-01-02 03:36:52.000 511 99412 49961.5 4996150 511 99412 49961.5 4996150 -32659 32479 4741.66 474166 -128 123 -4.58 -458 +512 100 10502 99413 1.53753 298.53753 150.03753 15003.75375 1.53753 298.53754 150.03753 15003.75366 1.53753 298.53753 150.03753 15003.75300 2020-01-01 2020-01-02 2020-01-01 00:08:32 2020-01-02 03:36:53 2020-01-01 00:08:32.000 2020-01-02 03:36:53.000 512 99413 49962.5 4996250 512 99413 49962.5 4996250 -32658 32480 4742.66 474266 -127 124 -3.58 -358 513 100 10503 99414 1.54054 298.54054 150.04054 15004.05405 1.54054 298.54053 150.04053 15004.05397 1.54054 298.54054 150.04054 15004.05400 2020-01-01 2020-01-02 2020-01-01 00:08:33 2020-01-02 03:36:54 2020-01-01 00:08:33.000 2020-01-02 03:36:54.000 513 99414 49963.5 4996350 513 99414 49963.5 4996350 -32657 32481 4743.66 474366 -126 125 -2.58 -258 -514 100 10504 99415 1.54354 298.54354 150.04354 15004.35435 1.54354 298.54355 150.04354 15004.35459 1.54354 298.54354 150.04354000000006 15004.35400 2020-01-01 2020-01-02 2020-01-01 00:08:34 2020-01-02 03:36:55 2020-01-01 00:08:34.000 2020-01-02 03:36:55.000 514 99415 49964.5 4996450 514 99415 49964.5 4996450 -32656 32482 4744.66 474466 -125 126 -1.58 -158 -515 100 10505 99416 1.54654 298.54654 150.04654 15004.65465 1.54654 298.54654 150.04654 15004.65425 1.54654 298.54654 150.04653999999988 15004.65400 2020-01-01 2020-01-02 2020-01-01 00:08:35 2020-01-02 03:36:56 2020-01-01 00:08:35.000 2020-01-02 03:36:56.000 515 99416 49965.5 4996550 515 99416 49965.5 4996550 -32655 32483 4745.66 474566 -124 127 -0.58 -58 -516 100 10506 99417 1.54954 298.54954 150.04954 15004.95495 1.54954 298.54956 150.04955 15004.955 1.54954 298.54954 150.04953999999998 15004.95400 2020-01-01 2020-01-02 2020-01-01 00:08:36 2020-01-02 03:36:57 2020-01-01 00:08:36.000 2020-01-02 03:36:57.000 516 99417 49966.5 4996650 516 99417 49966.5 4996650 -32654 32484 4746.66 474666 -128 127 -2.14 -214 -517 100 10507 99418 1.55255 298.55255 150.05255 15005.25525 1.55255 298.55255 150.05255 15005.25514 1.55255 298.55255 150.05255000000022 15005.25500 2020-01-01 2020-01-02 2020-01-01 00:08:37 2020-01-02 03:36:58 2020-01-01 00:08:37.000 2020-01-02 03:36:58.000 517 99418 49967.5 4996750 517 99418 49967.5 4996750 -32653 32485 4747.66 474766 -128 123 -3.7 -370 -518 100 10508 99419 1.55555 298.55555 150.05555 15005.55555 1.55555 298.55554 150.05555 15005.55547 1.55555 298.55555 150.05554999999973 15005.55500 2020-01-01 2020-01-02 2020-01-01 00:08:38 2020-01-02 03:36:59 2020-01-01 00:08:38.000 2020-01-02 03:36:59.000 518 99419 49968.5 4996850 518 99419 49968.5 4996850 -32652 32486 4748.66 474866 -127 124 -2.7 -270 -519 100 10509 99420 1.55855 298.55855 150.05855 15005.85585 1.55855 298.55856 150.05856 15005.85607 1.55855 298.55855 150.05854999999985 15005.85500 2020-01-01 2020-01-02 2020-01-01 00:08:39 2020-01-02 03:37:00 2020-01-01 00:08:39.000 2020-01-02 03:37:00.000 519 99420 49969.5 4996950 519 99420 49969.5 4996950 -32651 32487 4749.66 474966 -126 125 -1.7 -170 -52 102 10042 99952 0.15615 300.15615 150.15615 15165.77177 0.15615 300.15616 150.15615 15165.77193 0.15615 300.15615 150.1561500000001 15165.77115 2020-01-01 2020-01-02 2020-01-01 00:00:52 2020-01-02 03:45:52 2020-01-01 00:00:52.000 2020-01-02 03:45:52.000 52 99952 50002 5050202 52 99952 50002 5050202 -32517 32418 4581.009900990099 462682 -125 126 -1.6435643564356435 -166 -520 100 10510 99421 1.56156 298.56156 150.06156 15006.15615 1.56156 298.56155 150.06155 15006.15572 1.56156 298.56156 150.06156000000007 15006.15600 2020-01-01 2020-01-02 2020-01-01 00:08:40 2020-01-02 03:37:01 2020-01-01 00:08:40.000 2020-01-02 03:37:01.000 520 99421 49970.5 4997050 520 99421 49970.5 4997050 -32650 32488 4750.66 475066 -125 126 -0.7 -70 -521 100 10511 99422 1.56456 298.56456 150.06456 15006.45645 1.56456 298.56458 150.06456 15006.45647 1.56456 298.56456 150.0645600000001 15006.45600 2020-01-01 2020-01-02 2020-01-01 00:08:41 2020-01-02 03:37:02 2020-01-01 00:08:41.000 2020-01-02 03:37:02.000 521 99422 49971.5 4997150 521 99422 49971.5 4997150 -32649 32489 4751.66 475166 -124 127 0.3 30 -522 100 10512 99423 1.56756 298.56756 150.06756 15006.75675 1.56756 298.56757 150.06756 15006.75661 1.56756 298.56756 150.06756000000004 15006.75600 2020-01-01 2020-01-02 2020-01-01 00:08:42 2020-01-02 03:37:03 2020-01-01 00:08:42.000 2020-01-02 03:37:03.000 522 99423 49972.5 4997250 522 99423 49972.5 4997250 -32648 32490 4752.66 475266 -128 127 -1.26 -126 -523 100 10513 99424 1.57057 298.57057 150.07057 15007.05705 1.57057 298.57056 150.07056 15007.05694 1.57057 298.57057 150.07056999999992 15007.05700 2020-01-01 2020-01-02 2020-01-01 00:08:43 2020-01-02 03:37:04 2020-01-01 00:08:43.000 2020-01-02 03:37:04.000 523 99424 49973.5 4997350 523 99424 49973.5 4997350 -32647 32491 4753.66 475366 -128 123 -2.82 -282 -524 100 10514 99425 1.57357 298.57357 150.07357 15007.35735 1.57357 298.57358 150.07357 15007.35753 1.57357 298.57357 150.07356999999996 15007.35700 2020-01-01 2020-01-02 2020-01-01 00:08:44 2020-01-02 03:37:05 2020-01-01 00:08:44.000 2020-01-02 03:37:05.000 524 99425 49974.5 4997450 524 99425 49974.5 4997450 -32646 32492 4754.66 475466 -127 124 -1.82 -182 -525 100 10515 99426 1.57657 298.57657 150.07657 15007.65765 1.57657 298.57657 150.07657 15007.65783 1.57657 298.57657 150.07656999999998 15007.65700 2020-01-01 2020-01-02 2020-01-01 00:08:45 2020-01-02 03:37:06 2020-01-01 00:08:45.000 2020-01-02 03:37:06.000 525 99426 49975.5 4997550 525 99426 49975.5 4997550 -32645 32493 4755.66 475566 -126 125 -0.82 -82 -526 100 10516 99427 1.57957 298.57957 150.07957 15007.95795 1.57957 298.5796 150.07957 15007.95795 1.57957 298.57957 150.07956999999993 15007.95700 2020-01-01 2020-01-02 2020-01-01 00:08:46 2020-01-02 03:37:07 2020-01-01 00:08:46.000 2020-01-02 03:37:07.000 526 99427 49976.5 4997650 526 99427 49976.5 4997650 -32644 32494 4756.66 475666 -125 126 0.18 18 -527 100 10517 99428 1.58258 298.58258 150.08258 15008.25825 1.58258 298.58258 150.08258 15008.25811 1.58258 298.58258 150.0825800000001 15008.25800 2020-01-01 2020-01-02 2020-01-01 00:08:47 2020-01-02 03:37:08 2020-01-01 00:08:47.000 2020-01-02 03:37:08.000 527 99428 49977.5 4997750 527 99428 49977.5 4997750 -32643 32495 4757.66 475766 -124 127 1.18 118 -528 100 10518 99429 1.58558 298.58558 150.08558 15008.55855 1.58558 298.58557 150.08558 15008.5584 1.58558 298.58558 150.08558000000005 15008.55800 2020-01-01 2020-01-02 2020-01-01 00:08:48 2020-01-02 03:37:09 2020-01-01 00:08:48.000 2020-01-02 03:37:09.000 528 99429 49978.5 4997850 528 99429 49978.5 4997850 -32642 32496 4758.66 475866 -128 127 -0.38 -38 -529 100 10519 99430 1.58858 298.58858 150.08858 15008.85885 1.58858 298.5886 150.08859 15008.859 1.58858 298.58858 150.08857999999992 15008.85800 2020-01-01 2020-01-02 2020-01-01 00:08:49 2020-01-02 03:37:10 2020-01-01 00:08:49.000 2020-01-02 03:37:10.000 529 99430 49979.5 4997950 529 99430 49979.5 4997950 -32641 32497 4759.66 475966 -128 127 -1.94 -194 +514 100 10504 99415 1.54354 298.54354 150.04354 15004.35435 1.54354 298.54355 150.04354 15004.35459 1.54354 298.54354 150.04354 15004.35400 2020-01-01 2020-01-02 2020-01-01 00:08:34 2020-01-02 03:36:55 2020-01-01 00:08:34.000 2020-01-02 03:36:55.000 514 99415 49964.5 4996450 514 99415 49964.5 4996450 -32656 32482 4744.66 474466 -125 126 -1.58 -158 +515 100 10505 99416 1.54654 298.54654 150.04654 15004.65465 1.54654 298.54654 150.04654 15004.65425 1.54654 298.54654 150.04654 15004.65400 2020-01-01 2020-01-02 2020-01-01 00:08:35 2020-01-02 03:36:56 2020-01-01 00:08:35.000 2020-01-02 03:36:56.000 515 99416 49965.5 4996550 515 99416 49965.5 4996550 -32655 32483 4745.66 474566 -124 127 -0.58 -58 +516 100 10506 99417 1.54954 298.54954 150.04954 15004.95495 1.54954 298.54956 150.04955 15004.955 1.54954 298.54954 150.04954 15004.95400 2020-01-01 2020-01-02 2020-01-01 00:08:36 2020-01-02 03:36:57 2020-01-01 00:08:36.000 2020-01-02 03:36:57.000 516 99417 49966.5 4996650 516 99417 49966.5 4996650 -32654 32484 4746.66 474666 -128 127 -2.14 -214 +517 100 10507 99418 1.55255 298.55255 150.05255 15005.25525 1.55255 298.55255 150.05255 15005.25514 1.55255 298.55255 150.05255 15005.25500 2020-01-01 2020-01-02 2020-01-01 00:08:37 2020-01-02 03:36:58 2020-01-01 00:08:37.000 2020-01-02 03:36:58.000 517 99418 49967.5 4996750 517 99418 49967.5 4996750 -32653 32485 4747.66 474766 -128 123 -3.7 -370 +518 100 10508 99419 1.55555 298.55555 150.05555 15005.55555 1.55555 298.55554 150.05555 15005.55547 1.55555 298.55555 150.05555 15005.55500 2020-01-01 2020-01-02 2020-01-01 00:08:38 2020-01-02 03:36:59 2020-01-01 00:08:38.000 2020-01-02 03:36:59.000 518 99419 49968.5 4996850 518 99419 49968.5 4996850 -32652 32486 4748.66 474866 -127 124 -2.7 -270 +519 100 10509 99420 1.55855 298.55855 150.05855 15005.85585 1.55855 298.55856 150.05856 15005.85607 1.55855 298.55855 150.05855 15005.85500 2020-01-01 2020-01-02 2020-01-01 00:08:39 2020-01-02 03:37:00 2020-01-01 00:08:39.000 2020-01-02 03:37:00.000 519 99420 49969.5 4996950 519 99420 49969.5 4996950 -32651 32487 4749.66 474966 -126 125 -1.7 -170 +52 102 10042 99952 0.15615 300.15615 150.15615 15165.77177 0.15615 300.15616 150.15615 15165.77193 0.15615 300.15615 150.15615 15165.77115 2020-01-01 2020-01-02 2020-01-01 00:00:52 2020-01-02 03:45:52 2020-01-01 00:00:52.000 2020-01-02 03:45:52.000 52 99952 50002 5050202 52 99952 50002 5050202 -32517 32418 4581.009900990099 462682 -125 126 -1.6435643564356435 -166 +520 100 10510 99421 1.56156 298.56156 150.06156 15006.15615 1.56156 298.56155 150.06155 15006.15572 1.56156 298.56156 150.06156000000001 15006.15600 2020-01-01 2020-01-02 2020-01-01 00:08:40 2020-01-02 03:37:01 2020-01-01 00:08:40.000 2020-01-02 03:37:01.000 520 99421 49970.5 4997050 520 99421 49970.5 4997050 -32650 32488 4750.66 475066 -125 126 -0.7 -70 +521 100 10511 99422 1.56456 298.56456 150.06456 15006.45645 1.56456 298.56458 150.06456 15006.45647 1.56456 298.56456 150.06456 15006.45600 2020-01-01 2020-01-02 2020-01-01 00:08:41 2020-01-02 03:37:02 2020-01-01 00:08:41.000 2020-01-02 03:37:02.000 521 99422 49971.5 4997150 521 99422 49971.5 4997150 -32649 32489 4751.66 475166 -124 127 0.3 30 +522 100 10512 99423 1.56756 298.56756 150.06756 15006.75675 1.56756 298.56757 150.06756 15006.75661 1.56756 298.56756 150.06756 15006.75600 2020-01-01 2020-01-02 2020-01-01 00:08:42 2020-01-02 03:37:03 2020-01-01 00:08:42.000 2020-01-02 03:37:03.000 522 99423 49972.5 4997250 522 99423 49972.5 4997250 -32648 32490 4752.66 475266 -128 127 -1.26 -126 +523 100 10513 99424 1.57057 298.57057 150.07057 15007.05705 1.57057 298.57056 150.07056 15007.05694 1.57057 298.57057 150.07057 15007.05700 2020-01-01 2020-01-02 2020-01-01 00:08:43 2020-01-02 03:37:04 2020-01-01 00:08:43.000 2020-01-02 03:37:04.000 523 99424 49973.5 4997350 523 99424 49973.5 4997350 -32647 32491 4753.66 475366 -128 123 -2.82 -282 +524 100 10514 99425 1.57357 298.57357 150.07357 15007.35735 1.57357 298.57358 150.07357 15007.35753 1.57357 298.57357 150.07357 15007.35700 2020-01-01 2020-01-02 2020-01-01 00:08:44 2020-01-02 03:37:05 2020-01-01 00:08:44.000 2020-01-02 03:37:05.000 524 99425 49974.5 4997450 524 99425 49974.5 4997450 -32646 32492 4754.66 475466 -127 124 -1.82 -182 +525 100 10515 99426 1.57657 298.57657 150.07657 15007.65765 1.57657 298.57657 150.07657 15007.65783 1.57657 298.57657 150.07657 15007.65700 2020-01-01 2020-01-02 2020-01-01 00:08:45 2020-01-02 03:37:06 2020-01-01 00:08:45.000 2020-01-02 03:37:06.000 525 99426 49975.5 4997550 525 99426 49975.5 4997550 -32645 32493 4755.66 475566 -126 125 -0.82 -82 +526 100 10516 99427 1.57957 298.57957 150.07957 15007.95795 1.57957 298.5796 150.07957 15007.95795 1.57957 298.57957 150.07957 15007.95700 2020-01-01 2020-01-02 2020-01-01 00:08:46 2020-01-02 03:37:07 2020-01-01 00:08:46.000 2020-01-02 03:37:07.000 526 99427 49976.5 4997650 526 99427 49976.5 4997650 -32644 32494 4756.66 475666 -125 126 0.18 18 +527 100 10517 99428 1.58258 298.58258 150.08258 15008.25825 1.58258 298.58258 150.08258 15008.25811 1.58258 298.58258 150.08258 15008.25800 2020-01-01 2020-01-02 2020-01-01 00:08:47 2020-01-02 03:37:08 2020-01-01 00:08:47.000 2020-01-02 03:37:08.000 527 99428 49977.5 4997750 527 99428 49977.5 4997750 -32643 32495 4757.66 475766 -124 127 1.18 118 +528 100 10518 99429 1.58558 298.58558 150.08558 15008.55855 1.58558 298.58557 150.08558 15008.5584 1.58558 298.58558 150.08558000000002 15008.55800 2020-01-01 2020-01-02 2020-01-01 00:08:48 2020-01-02 03:37:09 2020-01-01 00:08:48.000 2020-01-02 03:37:09.000 528 99429 49978.5 4997850 528 99429 49978.5 4997850 -32642 32496 4758.66 475866 -128 127 -0.38 -38 +529 100 10519 99430 1.58858 298.58858 150.08858 15008.85885 1.58858 298.5886 150.08859 15008.859 1.58858 298.58858 150.08858 15008.85800 2020-01-01 2020-01-02 2020-01-01 00:08:49 2020-01-02 03:37:10 2020-01-01 00:08:49.000 2020-01-02 03:37:10.000 529 99430 49979.5 4997950 529 99430 49979.5 4997950 -32641 32497 4759.66 475966 -128 127 -1.94 -194 53 102 10043 99953 0.15915 300.15915 150.15915 15166.07507 0.15915 300.15915 150.15915 15166.07511 0.15915 300.15915 150.15915 15166.07415 2020-01-01 2020-01-02 2020-01-01 00:00:53 2020-01-02 03:45:53 2020-01-01 00:00:53.000 2020-01-02 03:45:53.000 53 99953 50003 5050303 53 99953 50003 5050303 -32516 32419 4582.009900990099 462783 -124 127 -0.6435643564356436 -65 530 100 10520 99431 1.59159 298.59159 150.09159 15009.15915 1.59159 298.59158 150.09159 15009.15929 1.59159 298.59159 150.09159 15009.15900 2020-01-01 2020-01-02 2020-01-01 00:08:50 2020-01-02 03:37:11 2020-01-01 00:08:50.000 2020-01-02 03:37:11.000 530 99431 49980.5 4998050 530 99431 49980.5 4998050 -32640 32498 4760.66 476066 -128 124 -3.5 -350 -531 100 10521 99432 1.59459 298.59459 150.09459 15009.45945 1.59459 298.5946 150.09459 15009.45941 1.59459 298.59459 150.09459000000004 15009.45900 2020-01-01 2020-01-02 2020-01-01 00:08:51 2020-01-02 03:37:12 2020-01-01 00:08:51.000 2020-01-02 03:37:12.000 531 99432 49981.5 4998150 531 99432 49981.5 4998150 -32639 32499 4761.66 476166 -127 125 -2.5 -250 -532 100 10522 99433 1.59759 298.59759 150.09759 15009.75975 1.59759 298.5976 150.09759 15009.75958 1.59759 298.59759 150.09758999999997 15009.75900 2020-01-01 2020-01-02 2020-01-01 00:08:52 2020-01-02 03:37:13 2020-01-01 00:08:52.000 2020-01-02 03:37:13.000 532 99433 49982.5 4998250 532 99433 49982.5 4998250 -32638 32500 4762.66 476266 -126 126 -1.5 -150 -533 100 10523 99434 1.6006 298.6006 150.1006 15010.06006 1.6006 298.6006 150.10059 15010.05988 1.60060 298.60060 150.1005999999999 15010.06000 2020-01-01 2020-01-02 2020-01-01 00:08:53 2020-01-02 03:37:14 2020-01-01 00:08:53.000 2020-01-02 03:37:14.000 533 99434 49983.5 4998350 533 99434 49983.5 4998350 -32637 32501 4763.66 476366 -125 127 -0.5 -50 -534 100 10524 99435 1.6036 298.6036 150.1036 15010.36036 1.6036 298.6036 150.1036 15010.36063 1.60360 298.60360 150.10360000000009 15010.36000 2020-01-01 2020-01-02 2020-01-01 00:08:54 2020-01-02 03:37:15 2020-01-01 00:08:54.000 2020-01-02 03:37:15.000 534 99435 49984.5 4998450 534 99435 49984.5 4998450 -32636 32502 4764.66 476466 -128 127 -2.06 -206 -535 100 10525 99436 1.6066 298.6066 150.1066 15010.66066 1.6066 298.6066 150.1066 15010.66077 1.60660 298.60660 150.10659999999993 15010.66000 2020-01-01 2020-01-02 2020-01-01 00:08:55 2020-01-02 03:37:16 2020-01-01 00:08:55.000 2020-01-02 03:37:16.000 535 99436 49985.5 4998550 535 99436 49985.5 4998550 -32635 32503 4765.66 476566 -128 127 -3.62 -362 -536 100 10526 99437 1.6096 298.6096 150.1096 15010.96096 1.6096 298.60962 150.1096 15010.96092 1.60960 298.60960 150.1095999999999 15010.96000 2020-01-01 2020-01-02 2020-01-01 00:08:56 2020-01-02 03:37:17 2020-01-01 00:08:56.000 2020-01-02 03:37:17.000 536 99437 49986.5 4998650 536 99437 49986.5 4998650 -32634 32504 4766.66 476666 -128 123 -5.18 -518 -537 100 10527 99438 1.61261 298.61261 150.11261 15011.26126 1.61261 298.6126 150.11261 15011.26105 1.61261 298.61261 150.11261000000007 15011.26100 2020-01-01 2020-01-02 2020-01-01 00:08:57 2020-01-02 03:37:18 2020-01-01 00:08:57.000 2020-01-02 03:37:18.000 537 99438 49987.5 4998750 537 99438 49987.5 4998750 -32633 32505 4767.66 476766 -127 124 -4.18 -418 -538 100 10528 99439 1.61561 298.61561 150.11561 15011.56156 1.61561 298.6156 150.11561 15011.56135 1.61561 298.61561 150.11561000000003 15011.56100 2020-01-01 2020-01-02 2020-01-01 00:08:58 2020-01-02 03:37:19 2020-01-01 00:08:58.000 2020-01-02 03:37:19.000 538 99439 49988.5 4998850 538 99439 49988.5 4998850 -32632 32506 4768.66 476866 -126 125 -3.18 -318 -539 100 10529 99440 1.61861 298.61861 150.11861 15011.86186 1.61861 298.61862 150.11862 15011.8621 1.61861 298.61861 150.11860999999988 15011.86100 2020-01-01 2020-01-02 2020-01-01 00:08:59 2020-01-02 03:37:20 2020-01-01 00:08:59.000 2020-01-02 03:37:20.000 539 99440 49989.5 4998950 539 99440 49989.5 4998950 -32631 32507 4769.66 476966 -125 126 -2.18 -218 -54 102 10044 99954 0.16216 300.16216 150.16216 15166.37837 0.16216 300.16217 150.16216 15166.37822 0.16216 300.16216 150.16215999999994 15166.37816 2020-01-01 2020-01-02 2020-01-01 00:00:54 2020-01-02 03:45:54 2020-01-01 00:00:54.000 2020-01-02 03:45:54.000 54 99954 50004 5050404 54 99954 50004 5050404 -32515 32420 4583.009900990099 462884 -128 127 -2.1782178217821784 -220 -540 100 10530 99441 1.62162 298.62162 150.12162 15012.16216 1.62162 298.6216 150.12162 15012.16224 1.62162 298.62162 150.12161999999992 15012.16200 2020-01-01 2020-01-02 2020-01-01 00:09:00 2020-01-02 03:37:21 2020-01-01 00:09:00.000 2020-01-02 03:37:21.000 540 99441 49990.5 4999050 540 99441 49990.5 4999050 -32630 32508 4770.66 477066 -124 127 -1.18 -118 +531 100 10521 99432 1.59459 298.59459 150.09459 15009.45945 1.59459 298.5946 150.09459 15009.45941 1.59459 298.59459 150.09459 15009.45900 2020-01-01 2020-01-02 2020-01-01 00:08:51 2020-01-02 03:37:12 2020-01-01 00:08:51.000 2020-01-02 03:37:12.000 531 99432 49981.5 4998150 531 99432 49981.5 4998150 -32639 32499 4761.66 476166 -127 125 -2.5 -250 +532 100 10522 99433 1.59759 298.59759 150.09759 15009.75975 1.59759 298.5976 150.09759 15009.75958 1.59759 298.59759 150.09759 15009.75900 2020-01-01 2020-01-02 2020-01-01 00:08:52 2020-01-02 03:37:13 2020-01-01 00:08:52.000 2020-01-02 03:37:13.000 532 99433 49982.5 4998250 532 99433 49982.5 4998250 -32638 32500 4762.66 476266 -126 126 -1.5 -150 +533 100 10523 99434 1.6006 298.6006 150.1006 15010.06006 1.6006 298.6006 150.10059 15010.05988 1.60060 298.60060 150.1006 15010.06000 2020-01-01 2020-01-02 2020-01-01 00:08:53 2020-01-02 03:37:14 2020-01-01 00:08:53.000 2020-01-02 03:37:14.000 533 99434 49983.5 4998350 533 99434 49983.5 4998350 -32637 32501 4763.66 476366 -125 127 -0.5 -50 +534 100 10524 99435 1.6036 298.6036 150.1036 15010.36036 1.6036 298.6036 150.1036 15010.36063 1.60360 298.60360 150.1036 15010.36000 2020-01-01 2020-01-02 2020-01-01 00:08:54 2020-01-02 03:37:15 2020-01-01 00:08:54.000 2020-01-02 03:37:15.000 534 99435 49984.5 4998450 534 99435 49984.5 4998450 -32636 32502 4764.66 476466 -128 127 -2.06 -206 +535 100 10525 99436 1.6066 298.6066 150.1066 15010.66066 1.6066 298.6066 150.1066 15010.66077 1.60660 298.60660 150.1066 15010.66000 2020-01-01 2020-01-02 2020-01-01 00:08:55 2020-01-02 03:37:16 2020-01-01 00:08:55.000 2020-01-02 03:37:16.000 535 99436 49985.5 4998550 535 99436 49985.5 4998550 -32635 32503 4765.66 476566 -128 127 -3.62 -362 +536 100 10526 99437 1.6096 298.6096 150.1096 15010.96096 1.6096 298.60962 150.1096 15010.96092 1.60960 298.60960 150.1096 15010.96000 2020-01-01 2020-01-02 2020-01-01 00:08:56 2020-01-02 03:37:17 2020-01-01 00:08:56.000 2020-01-02 03:37:17.000 536 99437 49986.5 4998650 536 99437 49986.5 4998650 -32634 32504 4766.66 476666 -128 123 -5.18 -518 +537 100 10527 99438 1.61261 298.61261 150.11261 15011.26126 1.61261 298.6126 150.11261 15011.26105 1.61261 298.61261 150.11261000000002 15011.26100 2020-01-01 2020-01-02 2020-01-01 00:08:57 2020-01-02 03:37:18 2020-01-01 00:08:57.000 2020-01-02 03:37:18.000 537 99438 49987.5 4998750 537 99438 49987.5 4998750 -32633 32505 4767.66 476766 -127 124 -4.18 -418 +538 100 10528 99439 1.61561 298.61561 150.11561 15011.56156 1.61561 298.6156 150.11561 15011.56135 1.61561 298.61561 150.11561 15011.56100 2020-01-01 2020-01-02 2020-01-01 00:08:58 2020-01-02 03:37:19 2020-01-01 00:08:58.000 2020-01-02 03:37:19.000 538 99439 49988.5 4998850 538 99439 49988.5 4998850 -32632 32506 4768.66 476866 -126 125 -3.18 -318 +539 100 10529 99440 1.61861 298.61861 150.11861 15011.86186 1.61861 298.61862 150.11862 15011.8621 1.61861 298.61861 150.11861000000002 15011.86100 2020-01-01 2020-01-02 2020-01-01 00:08:59 2020-01-02 03:37:20 2020-01-01 00:08:59.000 2020-01-02 03:37:20.000 539 99440 49989.5 4998950 539 99440 49989.5 4998950 -32631 32507 4769.66 476966 -125 126 -2.18 -218 +54 102 10044 99954 0.16216 300.16216 150.16216 15166.37837 0.16216 300.16217 150.16216 15166.37822 0.16216 300.16216 150.16216 15166.37816 2020-01-01 2020-01-02 2020-01-01 00:00:54 2020-01-02 03:45:54 2020-01-01 00:00:54.000 2020-01-02 03:45:54.000 54 99954 50004 5050404 54 99954 50004 5050404 -32515 32420 4583.009900990099 462884 -128 127 -2.1782178217821784 -220 +540 100 10530 99441 1.62162 298.62162 150.12162 15012.16216 1.62162 298.6216 150.12162 15012.16224 1.62162 298.62162 150.12162 15012.16200 2020-01-01 2020-01-02 2020-01-01 00:09:00 2020-01-02 03:37:21 2020-01-01 00:09:00.000 2020-01-02 03:37:21.000 540 99441 49990.5 4999050 540 99441 49990.5 4999050 -32630 32508 4770.66 477066 -124 127 -1.18 -118 541 100 10531 99442 1.62462 298.62462 150.12462 15012.46246 1.62462 298.62463 150.12462 15012.46239 1.62462 298.62462 150.12462 15012.46200 2020-01-01 2020-01-02 2020-01-01 00:09:01 2020-01-02 03:37:22 2020-01-01 00:09:01.000 2020-01-02 03:37:22.000 541 99442 49991.5 4999150 541 99442 49991.5 4999150 -32629 32509 4771.66 477166 -128 127 -2.74 -274 -542 100 10532 99443 1.62762 298.62762 150.12762 15012.76276 1.62762 298.62762 150.12762 15012.76252 1.62762 298.62762 150.12761999999998 15012.76200 2020-01-01 2020-01-02 2020-01-01 00:09:02 2020-01-02 03:37:23 2020-01-01 00:09:02.000 2020-01-02 03:37:23.000 542 99443 49992.5 4999250 542 99443 49992.5 4999250 -32628 32510 4772.66 477266 -128 123 -4.3 -430 -543 100 10533 99444 1.63063 298.63063 150.13063 15013.06306 1.63063 298.63065 150.13063 15013.06327 1.63063 298.63063 150.13062999999994 15013.06300 2020-01-01 2020-01-02 2020-01-01 00:09:03 2020-01-02 03:37:24 2020-01-01 00:09:03.000 2020-01-02 03:37:24.000 543 99444 49993.5 4999350 543 99444 49993.5 4999350 -32627 32511 4773.66 477366 -127 124 -3.3 -330 -544 100 10534 99445 1.63363 298.63363 150.13363 15013.36336 1.63363 298.63364 150.13363 15013.36358 1.63363 298.63363 150.13363000000004 15013.36300 2020-01-01 2020-01-02 2020-01-01 00:09:04 2020-01-02 03:37:25 2020-01-01 00:09:04.000 2020-01-02 03:37:25.000 544 99445 49994.5 4999450 544 99445 49994.5 4999450 -32626 32512 4774.66 477466 -126 125 -2.3 -230 -545 100 10535 99446 1.63663 298.63663 150.13663 15013.66366 1.63663 298.63663 150.13663 15013.6637 1.63663 298.63663 150.13663000000008 15013.66300 2020-01-01 2020-01-02 2020-01-01 00:09:05 2020-01-02 03:37:26 2020-01-01 00:09:05.000 2020-01-02 03:37:26.000 545 99446 49995.5 4999550 545 99446 49995.5 4999550 -32625 32513 4775.66 477566 -125 126 -1.3 -130 -546 100 10536 99447 1.63963 298.63963 150.13963 15013.96396 1.63963 298.63965 150.13963 15013.96385 1.63963 298.63963 150.1396299999999 15013.96300 2020-01-01 2020-01-02 2020-01-01 00:09:06 2020-01-02 03:37:27 2020-01-01 00:09:06.000 2020-01-02 03:37:27.000 546 99447 49996.5 4999650 546 99447 49996.5 4999650 -32624 32514 4776.66 477666 -124 127 -0.3 -30 +542 100 10532 99443 1.62762 298.62762 150.12762 15012.76276 1.62762 298.62762 150.12762 15012.76252 1.62762 298.62762 150.12762 15012.76200 2020-01-01 2020-01-02 2020-01-01 00:09:02 2020-01-02 03:37:23 2020-01-01 00:09:02.000 2020-01-02 03:37:23.000 542 99443 49992.5 4999250 542 99443 49992.5 4999250 -32628 32510 4772.66 477266 -128 123 -4.3 -430 +543 100 10533 99444 1.63063 298.63063 150.13063 15013.06306 1.63063 298.63065 150.13063 15013.06327 1.63063 298.63063 150.13063 15013.06300 2020-01-01 2020-01-02 2020-01-01 00:09:03 2020-01-02 03:37:24 2020-01-01 00:09:03.000 2020-01-02 03:37:24.000 543 99444 49993.5 4999350 543 99444 49993.5 4999350 -32627 32511 4773.66 477366 -127 124 -3.3 -330 +544 100 10534 99445 1.63363 298.63363 150.13363 15013.36336 1.63363 298.63364 150.13363 15013.36358 1.63363 298.63363 150.13362999999998 15013.36300 2020-01-01 2020-01-02 2020-01-01 00:09:04 2020-01-02 03:37:25 2020-01-01 00:09:04.000 2020-01-02 03:37:25.000 544 99445 49994.5 4999450 544 99445 49994.5 4999450 -32626 32512 4774.66 477466 -126 125 -2.3 -230 +545 100 10535 99446 1.63663 298.63663 150.13663 15013.66366 1.63663 298.63663 150.13663 15013.6637 1.63663 298.63663 150.13663 15013.66300 2020-01-01 2020-01-02 2020-01-01 00:09:05 2020-01-02 03:37:26 2020-01-01 00:09:05.000 2020-01-02 03:37:26.000 545 99446 49995.5 4999550 545 99446 49995.5 4999550 -32625 32513 4775.66 477566 -125 126 -1.3 -130 +546 100 10536 99447 1.63963 298.63963 150.13963 15013.96396 1.63963 298.63965 150.13963 15013.96385 1.63963 298.63963 150.13963 15013.96300 2020-01-01 2020-01-02 2020-01-01 00:09:06 2020-01-02 03:37:27 2020-01-01 00:09:06.000 2020-01-02 03:37:27.000 546 99447 49996.5 4999650 546 99447 49996.5 4999650 -32624 32514 4776.66 477666 -124 127 -0.3 -30 547 100 10537 99448 1.64264 298.64264 150.14264 15014.26426 1.64264 298.64264 150.14263 15014.26399 1.64264 298.64264 150.14264 15014.26400 2020-01-01 2020-01-02 2020-01-01 00:09:07 2020-01-02 03:37:28 2020-01-01 00:09:07.000 2020-01-02 03:37:28.000 547 99448 49997.5 4999750 547 99448 49997.5 4999750 -32623 32515 4777.66 477766 -128 127 -1.86 -186 -548 100 10538 99449 1.64564 298.64564 150.14564 15014.56456 1.64564 298.64566 150.14564 15014.56474 1.64564 298.64564 150.14564000000007 15014.56400 2020-01-01 2020-01-02 2020-01-01 00:09:08 2020-01-02 03:37:29 2020-01-01 00:09:08.000 2020-01-02 03:37:29.000 548 99449 49998.5 4999850 548 99449 49998.5 4999850 -32622 32516 4778.66 477866 -128 123 -3.42 -342 -549 100 10539 99450 1.64864 298.64864 150.14864 15014.86486 1.64864 298.64865 150.14865 15014.86504 1.64864 298.64864 150.14863999999997 15014.86400 2020-01-01 2020-01-02 2020-01-01 00:09:09 2020-01-02 03:37:30 2020-01-01 00:09:09.000 2020-01-02 03:37:30.000 549 99450 49999.5 4999950 549 99450 49999.5 4999950 -32621 32517 4779.66 477966 -127 124 -2.42 -242 -55 102 10045 99955 0.16516 300.16516 150.16516 15166.68168 0.16516 300.16516 150.16516 15166.68151 0.16516 300.16516 150.16515999999996 15166.68116 2020-01-01 2020-01-02 2020-01-01 00:00:55 2020-01-02 03:45:55 2020-01-01 00:00:55.000 2020-01-02 03:45:55.000 55 99955 50005 5050505 55 99955 50005 5050505 -32514 32421 4584.009900990099 462985 -128 123 -3.712871287128713 -375 -550 100 10540 99451 1.65165 298.65165 150.15165 15015.16516 1.65165 298.65164 150.15165 15015.16521 1.65165 298.65165 150.1516499999999 15015.16500 2020-01-01 2020-01-02 2020-01-01 00:09:10 2020-01-02 03:37:31 2020-01-01 00:09:10.000 2020-01-02 03:37:31.000 550 99451 50000.5 5000050 550 99451 50000.5 5000050 -32620 32518 4780.66 478066 -126 125 -1.42 -142 -551 100 10541 99452 1.65465 298.65465 150.15465 15015.46546 1.65465 298.65466 150.15465 15015.46533 1.65465 298.65465 150.15465000000012 15015.46500 2020-01-01 2020-01-02 2020-01-01 00:09:11 2020-01-02 03:37:32 2020-01-01 00:09:11.000 2020-01-02 03:37:32.000 551 99452 50001.5 5000150 551 99452 50001.5 5000150 -32619 32519 4781.66 478166 -125 126 -0.42 -42 -552 100 10542 99453 1.65765 298.65765 150.15765 15015.76576 1.65765 298.65765 150.15765 15015.76562 1.65765 298.65765 150.15764999999996 15015.76500 2020-01-01 2020-01-02 2020-01-01 00:09:12 2020-01-02 03:37:33 2020-01-01 00:09:12.000 2020-01-02 03:37:33.000 552 99453 50002.5 5000250 552 99453 50002.5 5000250 -32618 32520 4782.66 478266 -124 127 0.58 58 -553 100 10543 99454 1.66066 298.66066 150.16066 15016.06606 1.66066 298.66068 150.16066 15016.06621 1.66066 298.66066 150.16065999999984 15016.06600 2020-01-01 2020-01-02 2020-01-01 00:09:13 2020-01-02 03:37:34 2020-01-01 00:09:13.000 2020-01-02 03:37:34.000 553 99454 50003.5 5000350 553 99454 50003.5 5000350 -32617 32521 4783.66 478366 -128 127 -0.98 -98 -554 100 10544 99455 1.66366 298.66366 150.16366 15016.36636 1.66366 298.66367 150.16366 15016.36651 1.66366 298.66366 150.16366000000008 15016.36600 2020-01-01 2020-01-02 2020-01-01 00:09:14 2020-01-02 03:37:35 2020-01-01 00:09:14.000 2020-01-02 03:37:35.000 554 99455 50004.5 5000450 554 99455 50004.5 5000450 -32616 32522 4784.66 478466 -128 127 -2.54 -254 -555 100 10545 99456 1.66666 298.66666 150.16666 15016.66666 1.66666 298.66666 150.16666 15016.66668 1.66666 298.66666 150.16666000000004 15016.66600 2020-01-01 2020-01-02 2020-01-01 00:09:15 2020-01-02 03:37:36 2020-01-01 00:09:15.000 2020-01-02 03:37:36.000 555 99456 50005.5 5000550 555 99456 50005.5 5000550 -32615 32523 4785.66 478566 -128 124 -4.1 -410 -556 100 10546 99457 1.66966 298.66966 150.16966 15016.96696 1.66966 298.66968 150.16966 15016.9668 1.66966 298.66966 150.16965999999985 15016.96600 2020-01-01 2020-01-02 2020-01-01 00:09:16 2020-01-02 03:37:37 2020-01-01 00:09:16.000 2020-01-02 03:37:37.000 556 99457 50006.5 5000650 556 99457 50006.5 5000650 -32614 32524 4786.66 478666 -127 125 -3.1 -310 -557 100 10547 99458 1.67267 298.67267 150.17267 15017.26726 1.67267 298.67267 150.17267 15017.26709 1.67267 298.67267 150.17266999999995 15017.26700 2020-01-01 2020-01-02 2020-01-01 00:09:17 2020-01-02 03:37:38 2020-01-01 00:09:17.000 2020-01-02 03:37:38.000 557 99458 50007.5 5000750 557 99458 50007.5 5000750 -32613 32525 4787.66 478766 -126 126 -2.1 -210 +548 100 10538 99449 1.64564 298.64564 150.14564 15014.56456 1.64564 298.64566 150.14564 15014.56474 1.64564 298.64564 150.14564000000001 15014.56400 2020-01-01 2020-01-02 2020-01-01 00:09:08 2020-01-02 03:37:29 2020-01-01 00:09:08.000 2020-01-02 03:37:29.000 548 99449 49998.5 4999850 548 99449 49998.5 4999850 -32622 32516 4778.66 477866 -128 123 -3.42 -342 +549 100 10539 99450 1.64864 298.64864 150.14864 15014.86486 1.64864 298.64865 150.14865 15014.86504 1.64864 298.64864 150.14864 15014.86400 2020-01-01 2020-01-02 2020-01-01 00:09:09 2020-01-02 03:37:30 2020-01-01 00:09:09.000 2020-01-02 03:37:30.000 549 99450 49999.5 4999950 549 99450 49999.5 4999950 -32621 32517 4779.66 477966 -127 124 -2.42 -242 +55 102 10045 99955 0.16516 300.16516 150.16516 15166.68168 0.16516 300.16516 150.16516 15166.68151 0.16516 300.16516 150.16516000000001 15166.68116 2020-01-01 2020-01-02 2020-01-01 00:00:55 2020-01-02 03:45:55 2020-01-01 00:00:55.000 2020-01-02 03:45:55.000 55 99955 50005 5050505 55 99955 50005 5050505 -32514 32421 4584.009900990099 462985 -128 123 -3.712871287128713 -375 +550 100 10540 99451 1.65165 298.65165 150.15165 15015.16516 1.65165 298.65164 150.15165 15015.16521 1.65165 298.65165 150.15165000000002 15015.16500 2020-01-01 2020-01-02 2020-01-01 00:09:10 2020-01-02 03:37:31 2020-01-01 00:09:10.000 2020-01-02 03:37:31.000 550 99451 50000.5 5000050 550 99451 50000.5 5000050 -32620 32518 4780.66 478066 -126 125 -1.42 -142 +551 100 10541 99452 1.65465 298.65465 150.15465 15015.46546 1.65465 298.65466 150.15465 15015.46533 1.65465 298.65465 150.15465 15015.46500 2020-01-01 2020-01-02 2020-01-01 00:09:11 2020-01-02 03:37:32 2020-01-01 00:09:11.000 2020-01-02 03:37:32.000 551 99452 50001.5 5000150 551 99452 50001.5 5000150 -32619 32519 4781.66 478166 -125 126 -0.42 -42 +552 100 10542 99453 1.65765 298.65765 150.15765 15015.76576 1.65765 298.65765 150.15765 15015.76562 1.65765 298.65765 150.15765 15015.76500 2020-01-01 2020-01-02 2020-01-01 00:09:12 2020-01-02 03:37:33 2020-01-01 00:09:12.000 2020-01-02 03:37:33.000 552 99453 50002.5 5000250 552 99453 50002.5 5000250 -32618 32520 4782.66 478266 -124 127 0.58 58 +553 100 10543 99454 1.66066 298.66066 150.16066 15016.06606 1.66066 298.66068 150.16066 15016.06621 1.66066 298.66066 150.16066 15016.06600 2020-01-01 2020-01-02 2020-01-01 00:09:13 2020-01-02 03:37:34 2020-01-01 00:09:13.000 2020-01-02 03:37:34.000 553 99454 50003.5 5000350 553 99454 50003.5 5000350 -32617 32521 4783.66 478366 -128 127 -0.98 -98 +554 100 10544 99455 1.66366 298.66366 150.16366 15016.36636 1.66366 298.66367 150.16366 15016.36651 1.66366 298.66366 150.16366 15016.36600 2020-01-01 2020-01-02 2020-01-01 00:09:14 2020-01-02 03:37:35 2020-01-01 00:09:14.000 2020-01-02 03:37:35.000 554 99455 50004.5 5000450 554 99455 50004.5 5000450 -32616 32522 4784.66 478466 -128 127 -2.54 -254 +555 100 10545 99456 1.66666 298.66666 150.16666 15016.66666 1.66666 298.66666 150.16666 15016.66668 1.66666 298.66666 150.16665999999998 15016.66600 2020-01-01 2020-01-02 2020-01-01 00:09:15 2020-01-02 03:37:36 2020-01-01 00:09:15.000 2020-01-02 03:37:36.000 555 99456 50005.5 5000550 555 99456 50005.5 5000550 -32615 32523 4785.66 478566 -128 124 -4.1 -410 +556 100 10546 99457 1.66966 298.66966 150.16966 15016.96696 1.66966 298.66968 150.16966 15016.9668 1.66966 298.66966 150.16966 15016.96600 2020-01-01 2020-01-02 2020-01-01 00:09:16 2020-01-02 03:37:37 2020-01-01 00:09:16.000 2020-01-02 03:37:37.000 556 99457 50006.5 5000650 556 99457 50006.5 5000650 -32614 32524 4786.66 478666 -127 125 -3.1 -310 +557 100 10547 99458 1.67267 298.67267 150.17267 15017.26726 1.67267 298.67267 150.17267 15017.26709 1.67267 298.67267 150.17267 15017.26700 2020-01-01 2020-01-02 2020-01-01 00:09:17 2020-01-02 03:37:38 2020-01-01 00:09:17.000 2020-01-02 03:37:38.000 557 99458 50007.5 5000750 557 99458 50007.5 5000750 -32613 32525 4787.66 478766 -126 126 -2.1 -210 558 100 10548 99459 1.67567 298.67567 150.17567 15017.56756 1.67567 298.6757 150.17567 15017.56769 1.67567 298.67567 150.17567 15017.56700 2020-01-01 2020-01-02 2020-01-01 00:09:18 2020-01-02 03:37:39 2020-01-01 00:09:18.000 2020-01-02 03:37:39.000 558 99459 50008.5 5000850 558 99459 50008.5 5000850 -32612 32526 4788.66 478866 -125 127 -1.1 -110 -559 100 10549 99460 1.67867 298.67867 150.17867 15017.86786 1.67867 298.67868 150.17868 15017.86802 1.67867 298.67867 150.17866999999998 15017.86700 2020-01-01 2020-01-02 2020-01-01 00:09:19 2020-01-02 03:37:40 2020-01-01 00:09:19.000 2020-01-02 03:37:40.000 559 99460 50009.5 5000950 559 99460 50009.5 5000950 -32611 32527 4789.66 478966 -128 127 -2.66 -266 -56 102 10046 99956 0.16816 300.16816 150.16816 15166.98498 0.16816 300.16818 150.16816 15166.98512 0.16816 300.16816 150.16815999999997 15166.98416 2020-01-01 2020-01-02 2020-01-01 00:00:56 2020-01-02 03:45:56 2020-01-01 00:00:56.000 2020-01-02 03:45:56.000 56 99956 50006 5050606 56 99956 50006 5050606 -32513 32422 4585.009900990099 463086 -127 124 -2.712871287128713 -274 -560 100 10550 99461 1.68168 298.68168 150.18168 15018.16816 1.68168 298.68167 150.18168 15018.16815 1.68168 298.68168 150.18167999999991 15018.16800 2020-01-01 2020-01-02 2020-01-01 00:09:20 2020-01-02 03:37:41 2020-01-01 00:09:20.000 2020-01-02 03:37:41.000 560 99461 50010.5 5001050 560 99461 50010.5 5001050 -32610 32528 4790.66 479066 -128 127 -4.22 -422 -561 100 10551 99462 1.68468 298.68468 150.18468 15018.46846 1.68468 298.6847 150.18468 15018.46826 1.68468 298.68468 150.18468000000007 15018.46800 2020-01-01 2020-01-02 2020-01-01 00:09:21 2020-01-02 03:37:42 2020-01-01 00:09:21.000 2020-01-02 03:37:42.000 561 99462 50011.5 5001150 561 99462 50011.5 5001150 -32609 32529 4791.66 479166 -128 123 -5.78 -578 -562 100 10552 99463 1.68768 298.68768 150.18768 15018.76876 1.68768 298.68768 150.18768 15018.76856 1.68768 298.68768 150.18767999999992 15018.76800 2020-01-01 2020-01-02 2020-01-01 00:09:22 2020-01-02 03:37:43 2020-01-01 00:09:22.000 2020-01-02 03:37:43.000 562 99463 50012.5 5001250 562 99463 50012.5 5001250 -32608 32530 4792.66 479266 -127 124 -4.78 -478 +559 100 10549 99460 1.67867 298.67867 150.17867 15017.86786 1.67867 298.67868 150.17868 15017.86802 1.67867 298.67867 150.17867 15017.86700 2020-01-01 2020-01-02 2020-01-01 00:09:19 2020-01-02 03:37:40 2020-01-01 00:09:19.000 2020-01-02 03:37:40.000 559 99460 50009.5 5000950 559 99460 50009.5 5000950 -32611 32527 4789.66 478966 -128 127 -2.66 -266 +56 102 10046 99956 0.16816 300.16816 150.16816 15166.98498 0.16816 300.16818 150.16816 15166.98512 0.16816 300.16816 150.16816 15166.98416 2020-01-01 2020-01-02 2020-01-01 00:00:56 2020-01-02 03:45:56 2020-01-01 00:00:56.000 2020-01-02 03:45:56.000 56 99956 50006 5050606 56 99956 50006 5050606 -32513 32422 4585.009900990099 463086 -127 124 -2.712871287128713 -274 +560 100 10550 99461 1.68168 298.68168 150.18168 15018.16816 1.68168 298.68167 150.18168 15018.16815 1.68168 298.68168 150.18168 15018.16800 2020-01-01 2020-01-02 2020-01-01 00:09:20 2020-01-02 03:37:41 2020-01-01 00:09:20.000 2020-01-02 03:37:41.000 560 99461 50010.5 5001050 560 99461 50010.5 5001050 -32610 32528 4790.66 479066 -128 127 -4.22 -422 +561 100 10551 99462 1.68468 298.68468 150.18468 15018.46846 1.68468 298.6847 150.18468 15018.46826 1.68468 298.68468 150.18468000000001 15018.46800 2020-01-01 2020-01-02 2020-01-01 00:09:21 2020-01-02 03:37:42 2020-01-01 00:09:21.000 2020-01-02 03:37:42.000 561 99462 50011.5 5001150 561 99462 50011.5 5001150 -32609 32529 4791.66 479166 -128 123 -5.78 -578 +562 100 10552 99463 1.68768 298.68768 150.18768 15018.76876 1.68768 298.68768 150.18768 15018.76856 1.68768 298.68768 150.18768 15018.76800 2020-01-01 2020-01-02 2020-01-01 00:09:22 2020-01-02 03:37:43 2020-01-01 00:09:22.000 2020-01-02 03:37:43.000 562 99463 50012.5 5001250 562 99463 50012.5 5001250 -32608 32530 4792.66 479266 -127 124 -4.78 -478 563 100 10553 99464 1.69069 298.69069 150.19069 15019.06906 1.69069 298.6907 150.19069 15019.06915 1.69069 298.69069 150.19069 15019.06900 2020-01-01 2020-01-02 2020-01-01 00:09:23 2020-01-02 03:37:44 2020-01-01 00:09:23.000 2020-01-02 03:37:44.000 563 99464 50013.5 5001350 563 99464 50013.5 5001350 -32607 32531 4793.66 479366 -126 125 -3.78 -378 -564 100 10554 99465 1.69369 298.69369 150.19369 15019.36936 1.69369 298.6937 150.19369 15019.36948 1.69369 298.69369 150.19369000000003 15019.36900 2020-01-01 2020-01-02 2020-01-01 00:09:24 2020-01-02 03:37:45 2020-01-01 00:09:24.000 2020-01-02 03:37:45.000 564 99465 50014.5 5001450 564 99465 50014.5 5001450 -32606 32532 4794.66 479466 -125 126 -2.78 -278 -565 100 10555 99466 1.69669 298.69669 150.19669 15019.66966 1.69669 298.6967 150.19669 15019.66962 1.69669 298.69669 150.19669000000002 15019.66900 2020-01-01 2020-01-02 2020-01-01 00:09:25 2020-01-02 03:37:46 2020-01-01 00:09:25.000 2020-01-02 03:37:46.000 565 99466 50015.5 5001550 565 99466 50015.5 5001550 -32605 32533 4795.66 479566 -124 127 -1.78 -178 +564 100 10554 99465 1.69369 298.69369 150.19369 15019.36936 1.69369 298.6937 150.19369 15019.36948 1.69369 298.69369 150.19369 15019.36900 2020-01-01 2020-01-02 2020-01-01 00:09:24 2020-01-02 03:37:45 2020-01-01 00:09:24.000 2020-01-02 03:37:45.000 564 99465 50014.5 5001450 564 99465 50014.5 5001450 -32606 32532 4794.66 479466 -125 126 -2.78 -278 +565 100 10555 99466 1.69669 298.69669 150.19669 15019.66966 1.69669 298.6967 150.19669 15019.66962 1.69669 298.69669 150.19669 15019.66900 2020-01-01 2020-01-02 2020-01-01 00:09:25 2020-01-02 03:37:46 2020-01-01 00:09:25.000 2020-01-02 03:37:46.000 565 99466 50015.5 5001550 565 99466 50015.5 5001550 -32605 32533 4795.66 479566 -124 127 -1.78 -178 566 100 10556 99467 1.69969 298.69969 150.19969 15019.96996 1.69969 298.6997 150.1997 15019.97037 1.69969 298.69969 150.19969 15019.96900 2020-01-01 2020-01-02 2020-01-01 00:09:26 2020-01-02 03:37:47 2020-01-01 00:09:26.000 2020-01-02 03:37:47.000 566 99467 50016.5 5001650 566 99467 50016.5 5001650 -32604 32534 4796.66 479666 -128 127 -3.34 -334 -567 100 10557 99468 1.7027 298.7027 150.2027 15020.27027 1.7027 298.7027 150.2027 15020.27003 1.70270 298.70270 150.2026999999999 15020.27000 2020-01-01 2020-01-02 2020-01-01 00:09:27 2020-01-02 03:37:48 2020-01-01 00:09:27.000 2020-01-02 03:37:48.000 567 99468 50017.5 5001750 567 99468 50017.5 5001750 -32603 32535 4797.66 479766 -128 123 -4.9 -490 -568 100 10558 99469 1.7057 298.7057 150.2057 15020.57057 1.7057 298.70572 150.2057 15020.57066 1.70570 298.70570 150.20570000000015 15020.57000 2020-01-01 2020-01-02 2020-01-01 00:09:28 2020-01-02 03:37:49 2020-01-01 00:09:28.000 2020-01-02 03:37:49.000 568 99469 50018.5 5001850 568 99469 50018.5 5001850 -32602 32536 4798.66 479866 -127 124 -3.9 -390 -569 100 10559 99470 1.7087 298.7087 150.2087 15020.87087 1.7087 298.7087 150.2087 15020.87095 1.70870 298.70870 150.20869999999996 15020.87000 2020-01-01 2020-01-02 2020-01-01 00:09:29 2020-01-02 03:37:50 2020-01-01 00:09:29.000 2020-01-02 03:37:50.000 569 99470 50019.5 5001950 569 99470 50019.5 5001950 -32601 32537 4799.66 479966 -126 125 -2.9 -290 -57 102 10047 99957 0.17117 300.17117 150.17117 15167.28828 0.17117 300.17117 150.17117 15167.28841 0.17117 300.17117 150.1711699999999 15167.28817 2020-01-01 2020-01-02 2020-01-01 00:00:57 2020-01-02 03:45:57 2020-01-01 00:00:57.000 2020-01-02 03:45:57.000 57 99957 50007 5050707 57 99957 50007 5050707 -32512 32423 4586.009900990099 463187 -126 125 -1.7128712871287128 -173 -570 100 10560 99471 1.71171 298.71171 150.21171 15021.17117 1.71171 298.7117 150.21171 15021.17109 1.71171 298.71171 150.21170999999987 15021.17100 2020-01-01 2020-01-02 2020-01-01 00:09:30 2020-01-02 03:37:51 2020-01-01 00:09:30.000 2020-01-02 03:37:51.000 570 99471 50020.5 5002050 570 99471 50020.5 5002050 -32600 32538 4800.66 480066 -125 126 -1.9 -190 -571 100 10561 99472 1.71471 298.71471 150.21471 15021.47147 1.71471 298.71472 150.21471 15021.47184 1.71471 298.71471 150.21471000000008 15021.47100 2020-01-01 2020-01-02 2020-01-01 00:09:31 2020-01-02 03:37:52 2020-01-01 00:09:31.000 2020-01-02 03:37:52.000 571 99472 50021.5 5002150 571 99472 50021.5 5002150 -32599 32539 4801.66 480166 -124 127 -0.9 -90 -572 100 10562 99473 1.71771 298.71771 150.21771 15021.77177 1.71771 298.7177 150.21771 15021.7715 1.71771 298.71771 150.21771000000004 15021.77100 2020-01-01 2020-01-02 2020-01-01 00:09:32 2020-01-02 03:37:53 2020-01-01 00:09:32.000 2020-01-02 03:37:53.000 572 99473 50022.5 5002250 572 99473 50022.5 5002250 -32598 32540 4802.66 480266 -128 127 -2.46 -246 -573 100 10563 99474 1.72072 298.72072 150.22072 15022.07207 1.72072 298.72073 150.22072 15022.07212 1.72072 298.72072 150.22071999999991 15022.07200 2020-01-01 2020-01-02 2020-01-01 00:09:33 2020-01-02 03:37:54 2020-01-01 00:09:33.000 2020-01-02 03:37:54.000 573 99474 50023.5 5002350 573 99474 50023.5 5002350 -32597 32541 4803.66 480366 -128 123 -4.02 -402 +567 100 10557 99468 1.7027 298.7027 150.2027 15020.27027 1.7027 298.7027 150.2027 15020.27003 1.70270 298.70270 150.2027 15020.27000 2020-01-01 2020-01-02 2020-01-01 00:09:27 2020-01-02 03:37:48 2020-01-01 00:09:27.000 2020-01-02 03:37:48.000 567 99468 50017.5 5001750 567 99468 50017.5 5001750 -32603 32535 4797.66 479766 -128 123 -4.9 -490 +568 100 10558 99469 1.7057 298.7057 150.2057 15020.57057 1.7057 298.70572 150.2057 15020.57066 1.70570 298.70570 150.2057 15020.57000 2020-01-01 2020-01-02 2020-01-01 00:09:28 2020-01-02 03:37:49 2020-01-01 00:09:28.000 2020-01-02 03:37:49.000 568 99469 50018.5 5001850 568 99469 50018.5 5001850 -32602 32536 4798.66 479866 -127 124 -3.9 -390 +569 100 10559 99470 1.7087 298.7087 150.2087 15020.87087 1.7087 298.7087 150.2087 15020.87095 1.70870 298.70870 150.20870000000002 15020.87000 2020-01-01 2020-01-02 2020-01-01 00:09:29 2020-01-02 03:37:50 2020-01-01 00:09:29.000 2020-01-02 03:37:50.000 569 99470 50019.5 5001950 569 99470 50019.5 5001950 -32601 32537 4799.66 479966 -126 125 -2.9 -290 +57 102 10047 99957 0.17117 300.17117 150.17117 15167.28828 0.17117 300.17117 150.17117 15167.28841 0.17117 300.17117 150.17117 15167.28817 2020-01-01 2020-01-02 2020-01-01 00:00:57 2020-01-02 03:45:57 2020-01-01 00:00:57.000 2020-01-02 03:45:57.000 57 99957 50007 5050707 57 99957 50007 5050707 -32512 32423 4586.009900990099 463187 -126 125 -1.7128712871287128 -173 +570 100 10560 99471 1.71171 298.71171 150.21171 15021.17117 1.71171 298.7117 150.21171 15021.17109 1.71171 298.71171 150.21171 15021.17100 2020-01-01 2020-01-02 2020-01-01 00:09:30 2020-01-02 03:37:51 2020-01-01 00:09:30.000 2020-01-02 03:37:51.000 570 99471 50020.5 5002050 570 99471 50020.5 5002050 -32600 32538 4800.66 480066 -125 126 -1.9 -190 +571 100 10561 99472 1.71471 298.71471 150.21471 15021.47147 1.71471 298.71472 150.21471 15021.47184 1.71471 298.71471 150.21471 15021.47100 2020-01-01 2020-01-02 2020-01-01 00:09:31 2020-01-02 03:37:52 2020-01-01 00:09:31.000 2020-01-02 03:37:52.000 571 99472 50021.5 5002150 571 99472 50021.5 5002150 -32599 32539 4801.66 480166 -124 127 -0.9 -90 +572 100 10562 99473 1.71771 298.71771 150.21771 15021.77177 1.71771 298.7177 150.21771 15021.7715 1.71771 298.71771 150.21771 15021.77100 2020-01-01 2020-01-02 2020-01-01 00:09:32 2020-01-02 03:37:53 2020-01-01 00:09:32.000 2020-01-02 03:37:53.000 572 99473 50022.5 5002250 572 99473 50022.5 5002250 -32598 32540 4802.66 480266 -128 127 -2.46 -246 +573 100 10563 99474 1.72072 298.72072 150.22072 15022.07207 1.72072 298.72073 150.22072 15022.07212 1.72072 298.72072 150.22072 15022.07200 2020-01-01 2020-01-02 2020-01-01 00:09:33 2020-01-02 03:37:54 2020-01-01 00:09:33.000 2020-01-02 03:37:54.000 573 99474 50023.5 5002350 573 99474 50023.5 5002350 -32597 32541 4803.66 480366 -128 123 -4.02 -402 574 100 10564 99475 1.72372 298.72372 150.22372 15022.37237 1.72372 298.72372 150.22372 15022.37243 1.72372 298.72372 150.22372 15022.37200 2020-01-01 2020-01-02 2020-01-01 00:09:34 2020-01-02 03:37:55 2020-01-01 00:09:34.000 2020-01-02 03:37:55.000 574 99475 50024.5 5002450 574 99475 50024.5 5002450 -32596 32542 4804.66 480466 -127 124 -3.02 -302 -575 100 10565 99476 1.72672 298.72672 150.22672 15022.67267 1.72672 298.7267 150.22672 15022.67272 1.72672 298.72672 150.22672000000003 15022.67200 2020-01-01 2020-01-02 2020-01-01 00:09:35 2020-01-02 03:37:56 2020-01-01 00:09:35.000 2020-01-02 03:37:56.000 575 99476 50025.5 5002550 575 99476 50025.5 5002550 -32595 32543 4805.66 480566 -126 125 -2.02 -202 -576 100 10566 99477 1.72972 298.72972 150.22972 15022.97297 1.72972 298.72974 150.22973 15022.97332 1.72972 298.72972 150.22971999999993 15022.97200 2020-01-01 2020-01-02 2020-01-01 00:09:36 2020-01-02 03:37:57 2020-01-01 00:09:36.000 2020-01-02 03:37:57.000 576 99477 50026.5 5002650 576 99477 50026.5 5002650 -32594 32544 4806.66 480666 -125 126 -1.02 -102 -577 100 10567 99478 1.73273 298.73273 150.23273 15023.27327 1.73273 298.73273 150.23272 15023.27297 1.73273 298.73273 150.23272999999995 15023.27300 2020-01-01 2020-01-02 2020-01-01 00:09:37 2020-01-02 03:37:58 2020-01-01 00:09:37.000 2020-01-02 03:37:58.000 577 99478 50027.5 5002750 577 99478 50027.5 5002750 -32593 32545 4807.66 480766 -124 127 -0.02 -2 -578 100 10568 99479 1.73573 298.73573 150.23573 15023.57357 1.73573 298.73575 150.23573 15023.57359 1.73573 298.73573 150.2357300000001 15023.57300 2020-01-01 2020-01-02 2020-01-01 00:09:38 2020-01-02 03:37:59 2020-01-01 00:09:38.000 2020-01-02 03:37:59.000 578 99479 50028.5 5002850 578 99479 50028.5 5002850 -32592 32546 4808.66 480866 -128 127 -1.58 -158 -579 100 10569 99480 1.73873 298.73873 150.23873 15023.87387 1.73873 298.73874 150.23873 15023.8739 1.73873 298.73873 150.23872999999992 15023.87300 2020-01-01 2020-01-02 2020-01-01 00:09:39 2020-01-02 03:38:00 2020-01-01 00:09:39.000 2020-01-02 03:38:00.000 579 99480 50029.5 5002950 579 99480 50029.5 5002950 -32591 32547 4809.66 480966 -128 123 -3.14 -314 -58 102 10048 99958 0.17417 300.17417 150.17417 15167.59159 0.17417 300.17416 150.17417 15167.59159 0.17417 300.17417 150.17417000000012 15167.59117 2020-01-01 2020-01-02 2020-01-01 00:00:58 2020-01-02 03:45:58 2020-01-01 00:00:58.000 2020-01-02 03:45:58.000 58 99958 50008 5050808 58 99958 50008 5050808 -32511 32424 4587.009900990099 463288 -125 126 -0.7128712871287128 -72 -580 100 10570 99481 1.74174 298.74174 150.24174 15024.17417 1.74174 298.74173 150.24174 15024.17419 1.74174 298.74174 150.24174 15024.17400 2020-01-01 2020-01-02 2020-01-01 00:09:40 2020-01-02 03:38:01 2020-01-01 00:09:40.000 2020-01-02 03:38:01.000 580 99481 50030.5 5003050 580 99481 50030.5 5003050 -32590 32548 4810.66 481066 -127 124 -2.14 -214 -581 100 10571 99482 1.74474 298.74474 150.24474 15024.47447 1.74474 298.74475 150.24474 15024.47478 1.74474 298.74474 150.24474000000006 15024.47400 2020-01-01 2020-01-02 2020-01-01 00:09:41 2020-01-02 03:38:02 2020-01-01 00:09:41.000 2020-01-02 03:38:02.000 581 99482 50031.5 5003150 581 99482 50031.5 5003150 -32589 32549 4811.66 481166 -126 125 -1.14 -114 -582 100 10572 99483 1.74774 298.74774 150.24774 15024.77477 1.74774 298.74774 150.24774 15024.77447 1.74774 298.74774 150.24774000000002 15024.77400 2020-01-01 2020-01-02 2020-01-01 00:09:42 2020-01-02 03:38:03 2020-01-01 00:09:42.000 2020-01-02 03:38:03.000 582 99483 50032.5 5003250 582 99483 50032.5 5003250 -32588 32550 4812.66 481266 -125 126 -0.14 -14 -583 100 10573 99484 1.75075 298.75075 150.25075 15025.07507 1.75075 298.75076 150.25075 15025.07507 1.75075 298.75075 150.25074999999995 15025.07500 2020-01-01 2020-01-02 2020-01-01 00:09:43 2020-01-02 03:38:04 2020-01-01 00:09:43.000 2020-01-02 03:38:04.000 583 99484 50033.5 5003350 583 99484 50033.5 5003350 -32587 32551 4813.66 481366 -124 127 0.86 86 -584 100 10574 99485 1.75375 298.75375 150.25375 15025.37537 1.75375 298.75375 150.25375 15025.37536 1.75375 298.75375 150.25374999999994 15025.37500 2020-01-01 2020-01-02 2020-01-01 00:09:44 2020-01-02 03:38:05 2020-01-01 00:09:44.000 2020-01-02 03:38:05.000 584 99485 50034.5 5003450 584 99485 50034.5 5003450 -32586 32552 4814.66 481466 -128 127 -0.7 -70 -585 100 10575 99486 1.75675 298.75675 150.25675 15025.67567 1.75675 298.75674 150.25675 15025.67566 1.75675 298.75675 150.25675000000012 15025.67500 2020-01-01 2020-01-02 2020-01-01 00:09:45 2020-01-02 03:38:06 2020-01-01 00:09:45.000 2020-01-02 03:38:06.000 585 99486 50035.5 5003550 585 99486 50035.5 5003550 -32585 32553 4815.66 481566 -128 127 -2.26 -226 -586 100 10576 99487 1.75975 298.75975 150.25975 15025.97597 1.75975 298.75977 150.25976 15025.97625 1.75975 298.75975 150.25974999999997 15025.97500 2020-01-01 2020-01-02 2020-01-01 00:09:46 2020-01-02 03:38:07 2020-01-01 00:09:46.000 2020-01-02 03:38:07.000 586 99487 50036.5 5003650 586 99487 50036.5 5003650 -32584 32554 4816.66 481666 -128 123 -3.82 -382 -587 100 10577 99488 1.76276 298.76276 150.26276 15026.27627 1.76276 298.76276 150.26275 15026.27594 1.76276 298.76276 150.2627599999999 15026.27600 2020-01-01 2020-01-02 2020-01-01 00:09:47 2020-01-02 03:38:08 2020-01-01 00:09:47.000 2020-01-02 03:38:08.000 587 99488 50037.5 5003750 587 99488 50037.5 5003750 -32583 32555 4817.66 481766 -127 124 -2.82 -282 -588 100 10578 99489 1.76576 298.76576 150.26576 15026.57657 1.76576 298.76578 150.26576 15026.57654 1.76576 298.76576 150.2657600000001 15026.57600 2020-01-01 2020-01-02 2020-01-01 00:09:48 2020-01-02 03:38:09 2020-01-01 00:09:48.000 2020-01-02 03:38:09.000 588 99489 50038.5 5003850 588 99489 50038.5 5003850 -32582 32556 4818.66 481866 -126 125 -1.82 -182 -589 100 10579 99490 1.76876 298.76876 150.26876 15026.87687 1.76876 298.76877 150.26876 15026.87683 1.76876 298.76876 150.26876000000007 15026.87600 2020-01-01 2020-01-02 2020-01-01 00:09:49 2020-01-02 03:38:10 2020-01-01 00:09:49.000 2020-01-02 03:38:10.000 589 99490 50039.5 5003950 589 99490 50039.5 5003950 -32581 32557 4819.66 481966 -125 126 -0.82 -82 -59 102 10049 99959 0.17717 300.17717 150.17717 15167.89489 0.17717 300.1772 150.17717 15167.8947 0.17717 300.17717 150.17717000000007 15167.89417 2020-01-01 2020-01-02 2020-01-01 00:00:59 2020-01-02 03:45:59 2020-01-01 00:00:59.000 2020-01-02 03:45:59.000 59 99959 50009 5050909 59 99959 50009 5050909 -32510 32425 4588.009900990099 463389 -124 127 0.2871287128712871 29 -590 100 10580 99491 1.77177 298.77177 150.27177 15027.17717 1.77177 298.77176 150.27177 15027.17713 1.77177 298.77177 150.27176999999995 15027.17700 2020-01-01 2020-01-02 2020-01-01 00:09:50 2020-01-02 03:38:11 2020-01-01 00:09:50.000 2020-01-02 03:38:11.000 590 99491 50040.5 5004050 590 99491 50040.5 5004050 -32580 32558 4820.66 482066 -124 127 0.18 18 -591 100 10581 99492 1.77477 298.77477 150.27477 15027.47747 1.77477 298.77478 150.27477 15027.47775 1.77477 298.77477 150.27477 15027.47700 2020-01-01 2020-01-02 2020-01-01 00:09:51 2020-01-02 03:38:12 2020-01-01 00:09:51.000 2020-01-02 03:38:12.000 591 99492 50041.5 5004150 591 99492 50041.5 5004150 -32579 32559 4821.66 482166 -128 127 -1.38 -138 -592 100 10582 99493 1.77777 298.77777 150.27777 15027.77777 1.77777 298.77777 150.27777 15027.77742 1.77777 298.77777 150.27777000000003 15027.77700 2020-01-01 2020-01-02 2020-01-01 00:09:52 2020-01-02 03:38:13 2020-01-01 00:09:52.000 2020-01-02 03:38:13.000 592 99493 50042.5 5004250 592 99493 50042.5 5004250 -32578 32560 4822.66 482266 -128 123 -2.94 -294 -593 100 10583 99494 1.78078 298.78078 150.28078 15028.07807 1.78078 298.7808 150.28078 15028.078 1.78078 298.78078 150.28077999999994 15028.07800 2020-01-01 2020-01-02 2020-01-01 00:09:53 2020-01-02 03:38:14 2020-01-01 00:09:53.000 2020-01-02 03:38:14.000 593 99494 50043.5 5004350 593 99494 50043.5 5004350 -32577 32561 4823.66 482366 -127 124 -1.94 -194 -594 100 10584 99495 1.78378 298.78378 150.28378 15028.37837 1.78378 298.78378 150.28378 15028.3783 1.78378 298.78378 150.28377999999992 15028.37800 2020-01-01 2020-01-02 2020-01-01 00:09:54 2020-01-02 03:38:15 2020-01-01 00:09:54.000 2020-01-02 03:38:15.000 594 99495 50044.5 5004450 594 99495 50044.5 5004450 -32576 32562 4824.66 482466 -126 125 -0.94 -94 -595 100 10585 99496 1.78678 298.78678 150.28678 15028.67867 1.78678 298.78677 150.28678 15028.6786 1.78678 298.78678 150.28678000000008 15028.67800 2020-01-01 2020-01-02 2020-01-01 00:09:55 2020-01-02 03:38:16 2020-01-01 00:09:55.000 2020-01-02 03:38:16.000 595 99496 50045.5 5004550 595 99496 50045.5 5004550 -32575 32563 4825.66 482566 -125 126 0.06 6 -596 100 10586 99497 1.78978 298.78978 150.28978 15028.97897 1.78978 298.7898 150.28979 15028.97922 1.78978 298.78978 150.28977999999992 15028.97800 2020-01-01 2020-01-02 2020-01-01 00:09:56 2020-01-02 03:38:17 2020-01-01 00:09:56.000 2020-01-02 03:38:17.000 596 99497 50046.5 5004650 596 99497 50046.5 5004650 -32574 32564 4826.66 482666 -124 127 1.06 106 -597 100 10587 99498 1.79279 298.79279 150.29279 15029.27927 1.79279 298.7928 150.29278 15029.27888 1.79279 298.79279 150.29279000000002 15029.27900 2020-01-01 2020-01-02 2020-01-01 00:09:57 2020-01-02 03:38:18 2020-01-01 00:09:57.000 2020-01-02 03:38:18.000 597 99498 50047.5 5004750 597 99498 50047.5 5004750 -32573 32565 4827.66 482766 -128 127 -0.5 -50 -598 100 10588 99499 1.79579 298.79579 150.29579 15029.57957 1.79579 298.7958 150.29579 15029.57964 1.79579 298.79579 150.29579000000007 15029.57900 2020-01-01 2020-01-02 2020-01-01 00:09:58 2020-01-02 03:38:19 2020-01-01 00:09:58.000 2020-01-02 03:38:19.000 598 99499 50048.5 5004850 598 99499 50048.5 5004850 -32572 32566 4828.66 482866 -128 123 -2.06 -206 -599 100 10589 99500 1.79879 298.79879 150.29879 15029.87987 1.79879 298.7988 150.29879 15029.87977 1.79879 298.79879 150.29879000000003 15029.87900 2020-01-01 2020-01-02 2020-01-01 00:09:59 2020-01-02 03:38:20 2020-01-01 00:09:59.000 2020-01-02 03:38:20.000 599 99500 50049.5 5004950 599 99500 50049.5 5004950 -32571 32567 4829.66 482966 -127 124 -1.06 -106 -6 102 1005 9996 0.01801 300.01801 150.01801 15151.81981 0.01801 300.018 150.01801 15151.81978 0.01801 300.01801 150.0180099999999 15151.81901 2020-01-01 2020-01-02 2020-01-01 00:00:06 2020-01-02 03:45:06 2020-01-01 00:00:06.000 2020-01-02 03:45:06.000 6 99906 49956 5045556 6 99906 49956 5045556 -32563 32372 4535.009900990099 458036 -127 124 -2.01980198019802 -204 -60 102 10050 99960 0.18018 300.18018 150.18018 15168.19819 0.18018 300.18018 150.18017 15168.198 0.18018 300.18018 150.18017999999995 15168.19818 2020-01-01 2020-01-02 2020-01-01 00:01:00 2020-01-02 03:46:00 2020-01-01 00:01:00.000 2020-01-02 03:46:00.000 60 99960 50010 5051010 60 99960 50010 5051010 -32509 32426 4589.009900990099 463490 -128 127 -1.2475247524752475 -126 -600 100 10590 99501 1.8018 298.8018 150.3018 15030.18018 1.8018 298.8018 150.3018 15030.1801 1.80180 298.80180 150.3018 15030.18000 2020-01-01 2020-01-02 2020-01-01 00:10:00 2020-01-02 03:38:21 2020-01-01 00:10:00.000 2020-01-02 03:38:21.000 600 99501 50050.5 5005050 600 99501 50050.5 5005050 -32570 32568 4830.66 483066 -126 125 -0.06 -6 -601 100 10591 99502 1.8048 298.8048 150.3048 15030.48048 1.8048 298.8048 150.3048 15030.4807 1.80480 298.80480 150.30479999999991 15030.48000 2020-01-01 2020-01-02 2020-01-01 00:10:01 2020-01-02 03:38:22 2020-01-01 00:10:01.000 2020-01-02 03:38:22.000 601 99502 50051.5 5005150 601 99502 50051.5 5005150 -32569 32569 4831.66 483166 -125 126 0.94 94 -602 100 10592 99503 1.8078 298.8078 150.3078 15030.78078 1.8078 298.8078 150.3078 15030.78035 1.80780 298.80780 150.3078 15030.78000 2020-01-01 2020-01-02 2020-01-01 00:10:02 2020-01-02 03:38:23 2020-01-01 00:10:02.000 2020-01-02 03:38:23.000 602 99503 50052.5 5005250 602 99503 50052.5 5005250 -32568 32570 4832.66 483266 -124 127 1.94 194 -603 100 10593 99504 1.81081 298.81081 150.31081 15031.08108 1.81081 298.81082 150.31081 15031.0811 1.81081 298.81081 150.31081000000006 15031.08100 2020-01-01 2020-01-02 2020-01-01 00:10:03 2020-01-02 03:38:24 2020-01-01 00:10:03.000 2020-01-02 03:38:24.000 603 99504 50053.5 5005350 603 99504 50053.5 5005350 -32567 32571 4833.66 483366 -128 127 0.38 38 -604 100 10594 99505 1.81381 298.81381 150.31381 15031.38138 1.81381 298.8138 150.31381 15031.38124 1.81381 298.81381 150.31380999999993 15031.38100 2020-01-01 2020-01-02 2020-01-01 00:10:04 2020-01-02 03:38:25 2020-01-01 00:10:04.000 2020-01-02 03:38:25.000 604 99505 50054.5 5005450 604 99505 50054.5 5005450 -32566 32572 4834.66 483466 -128 123 -1.18 -118 -605 100 10595 99506 1.81681 298.81681 150.31681 15031.68168 1.81681 298.8168 150.31681 15031.68157 1.81681 298.81681 150.31681000000003 15031.68100 2020-01-01 2020-01-02 2020-01-01 00:10:05 2020-01-02 03:38:26 2020-01-01 00:10:05.000 2020-01-02 03:38:26.000 605 99506 50055.5 5005550 605 99506 50055.5 5005550 -32565 32573 4835.66 483566 -127 124 -0.18 -18 -606 100 10596 99507 1.81981 298.81981 150.31981 15031.98198 1.81981 298.81982 150.31982 15031.98217 1.81981 298.81981 150.31981000000007 15031.98100 2020-01-01 2020-01-02 2020-01-01 00:10:06 2020-01-02 03:38:27 2020-01-01 00:10:06.000 2020-01-02 03:38:27.000 606 99507 50056.5 5005650 606 99507 50056.5 5005650 -32564 32574 4836.66 483666 -126 125 0.82 82 +575 100 10565 99476 1.72672 298.72672 150.22672 15022.67267 1.72672 298.7267 150.22672 15022.67272 1.72672 298.72672 150.22672 15022.67200 2020-01-01 2020-01-02 2020-01-01 00:09:35 2020-01-02 03:37:56 2020-01-01 00:09:35.000 2020-01-02 03:37:56.000 575 99476 50025.5 5002550 575 99476 50025.5 5002550 -32595 32543 4805.66 480566 -126 125 -2.02 -202 +576 100 10566 99477 1.72972 298.72972 150.22972 15022.97297 1.72972 298.72974 150.22973 15022.97332 1.72972 298.72972 150.22972 15022.97200 2020-01-01 2020-01-02 2020-01-01 00:09:36 2020-01-02 03:37:57 2020-01-01 00:09:36.000 2020-01-02 03:37:57.000 576 99477 50026.5 5002650 576 99477 50026.5 5002650 -32594 32544 4806.66 480666 -125 126 -1.02 -102 +577 100 10567 99478 1.73273 298.73273 150.23273 15023.27327 1.73273 298.73273 150.23272 15023.27297 1.73273 298.73273 150.23273 15023.27300 2020-01-01 2020-01-02 2020-01-01 00:09:37 2020-01-02 03:37:58 2020-01-01 00:09:37.000 2020-01-02 03:37:58.000 577 99478 50027.5 5002750 577 99478 50027.5 5002750 -32593 32545 4807.66 480766 -124 127 -0.02 -2 +578 100 10568 99479 1.73573 298.73573 150.23573 15023.57357 1.73573 298.73575 150.23573 15023.57359 1.73573 298.73573 150.23573 15023.57300 2020-01-01 2020-01-02 2020-01-01 00:09:38 2020-01-02 03:37:59 2020-01-01 00:09:38.000 2020-01-02 03:37:59.000 578 99479 50028.5 5002850 578 99479 50028.5 5002850 -32592 32546 4808.66 480866 -128 127 -1.58 -158 +579 100 10569 99480 1.73873 298.73873 150.23873 15023.87387 1.73873 298.73874 150.23873 15023.8739 1.73873 298.73873 150.23873 15023.87300 2020-01-01 2020-01-02 2020-01-01 00:09:39 2020-01-02 03:38:00 2020-01-01 00:09:39.000 2020-01-02 03:38:00.000 579 99480 50029.5 5002950 579 99480 50029.5 5002950 -32591 32547 4809.66 480966 -128 123 -3.14 -314 +58 102 10048 99958 0.17417 300.17417 150.17417 15167.59159 0.17417 300.17416 150.17417 15167.59159 0.17417 300.17417 150.17417 15167.59117 2020-01-01 2020-01-02 2020-01-01 00:00:58 2020-01-02 03:45:58 2020-01-01 00:00:58.000 2020-01-02 03:45:58.000 58 99958 50008 5050808 58 99958 50008 5050808 -32511 32424 4587.009900990099 463288 -125 126 -0.7128712871287128 -72 +580 100 10570 99481 1.74174 298.74174 150.24174 15024.17417 1.74174 298.74173 150.24174 15024.17419 1.74174 298.74174 150.24174000000002 15024.17400 2020-01-01 2020-01-02 2020-01-01 00:09:40 2020-01-02 03:38:01 2020-01-01 00:09:40.000 2020-01-02 03:38:01.000 580 99481 50030.5 5003050 580 99481 50030.5 5003050 -32590 32548 4810.66 481066 -127 124 -2.14 -214 +581 100 10571 99482 1.74474 298.74474 150.24474 15024.47447 1.74474 298.74475 150.24474 15024.47478 1.74474 298.74474 150.24474 15024.47400 2020-01-01 2020-01-02 2020-01-01 00:09:41 2020-01-02 03:38:02 2020-01-01 00:09:41.000 2020-01-02 03:38:02.000 581 99482 50031.5 5003150 581 99482 50031.5 5003150 -32589 32549 4811.66 481166 -126 125 -1.14 -114 +582 100 10572 99483 1.74774 298.74774 150.24774 15024.77477 1.74774 298.74774 150.24774 15024.77447 1.74774 298.74774 150.24774 15024.77400 2020-01-01 2020-01-02 2020-01-01 00:09:42 2020-01-02 03:38:03 2020-01-01 00:09:42.000 2020-01-02 03:38:03.000 582 99483 50032.5 5003250 582 99483 50032.5 5003250 -32588 32550 4812.66 481266 -125 126 -0.14 -14 +583 100 10573 99484 1.75075 298.75075 150.25075 15025.07507 1.75075 298.75076 150.25075 15025.07507 1.75075 298.75075 150.25075 15025.07500 2020-01-01 2020-01-02 2020-01-01 00:09:43 2020-01-02 03:38:04 2020-01-01 00:09:43.000 2020-01-02 03:38:04.000 583 99484 50033.5 5003350 583 99484 50033.5 5003350 -32587 32551 4813.66 481366 -124 127 0.86 86 +584 100 10574 99485 1.75375 298.75375 150.25375 15025.37537 1.75375 298.75375 150.25375 15025.37536 1.75375 298.75375 150.25375 15025.37500 2020-01-01 2020-01-02 2020-01-01 00:09:44 2020-01-02 03:38:05 2020-01-01 00:09:44.000 2020-01-02 03:38:05.000 584 99485 50034.5 5003450 584 99485 50034.5 5003450 -32586 32552 4814.66 481466 -128 127 -0.7 -70 +585 100 10575 99486 1.75675 298.75675 150.25675 15025.67567 1.75675 298.75674 150.25675 15025.67566 1.75675 298.75675 150.25674999999998 15025.67500 2020-01-01 2020-01-02 2020-01-01 00:09:45 2020-01-02 03:38:06 2020-01-01 00:09:45.000 2020-01-02 03:38:06.000 585 99486 50035.5 5003550 585 99486 50035.5 5003550 -32585 32553 4815.66 481566 -128 127 -2.26 -226 +586 100 10576 99487 1.75975 298.75975 150.25975 15025.97597 1.75975 298.75977 150.25976 15025.97625 1.75975 298.75975 150.25975 15025.97500 2020-01-01 2020-01-02 2020-01-01 00:09:46 2020-01-02 03:38:07 2020-01-01 00:09:46.000 2020-01-02 03:38:07.000 586 99487 50036.5 5003650 586 99487 50036.5 5003650 -32584 32554 4816.66 481666 -128 123 -3.82 -382 +587 100 10577 99488 1.76276 298.76276 150.26276 15026.27627 1.76276 298.76276 150.26275 15026.27594 1.76276 298.76276 150.26276 15026.27600 2020-01-01 2020-01-02 2020-01-01 00:09:47 2020-01-02 03:38:08 2020-01-01 00:09:47.000 2020-01-02 03:38:08.000 587 99488 50037.5 5003750 587 99488 50037.5 5003750 -32583 32555 4817.66 481766 -127 124 -2.82 -282 +588 100 10578 99489 1.76576 298.76576 150.26576 15026.57657 1.76576 298.76578 150.26576 15026.57654 1.76576 298.76576 150.26576 15026.57600 2020-01-01 2020-01-02 2020-01-01 00:09:48 2020-01-02 03:38:09 2020-01-01 00:09:48.000 2020-01-02 03:38:09.000 588 99489 50038.5 5003850 588 99489 50038.5 5003850 -32582 32556 4818.66 481866 -126 125 -1.82 -182 +589 100 10579 99490 1.76876 298.76876 150.26876 15026.87687 1.76876 298.76877 150.26876 15026.87683 1.76876 298.76876 150.26876000000001 15026.87600 2020-01-01 2020-01-02 2020-01-01 00:09:49 2020-01-02 03:38:10 2020-01-01 00:09:49.000 2020-01-02 03:38:10.000 589 99490 50039.5 5003950 589 99490 50039.5 5003950 -32581 32557 4819.66 481966 -125 126 -0.82 -82 +59 102 10049 99959 0.17717 300.17717 150.17717 15167.89489 0.17717 300.1772 150.17717 15167.8947 0.17717 300.17717 150.17717 15167.89417 2020-01-01 2020-01-02 2020-01-01 00:00:59 2020-01-02 03:45:59 2020-01-01 00:00:59.000 2020-01-02 03:45:59.000 59 99959 50009 5050909 59 99959 50009 5050909 -32510 32425 4588.009900990099 463389 -124 127 0.2871287128712871 29 +590 100 10580 99491 1.77177 298.77177 150.27177 15027.17717 1.77177 298.77176 150.27177 15027.17713 1.77177 298.77177 150.27177 15027.17700 2020-01-01 2020-01-02 2020-01-01 00:09:50 2020-01-02 03:38:11 2020-01-01 00:09:50.000 2020-01-02 03:38:11.000 590 99491 50040.5 5004050 590 99491 50040.5 5004050 -32580 32558 4820.66 482066 -124 127 0.18 18 +591 100 10581 99492 1.77477 298.77477 150.27477 15027.47747 1.77477 298.77478 150.27477 15027.47775 1.77477 298.77477 150.27477000000002 15027.47700 2020-01-01 2020-01-02 2020-01-01 00:09:51 2020-01-02 03:38:12 2020-01-01 00:09:51.000 2020-01-02 03:38:12.000 591 99492 50041.5 5004150 591 99492 50041.5 5004150 -32579 32559 4821.66 482166 -128 127 -1.38 -138 +592 100 10582 99493 1.77777 298.77777 150.27777 15027.77777 1.77777 298.77777 150.27777 15027.77742 1.77777 298.77777 150.27777 15027.77700 2020-01-01 2020-01-02 2020-01-01 00:09:52 2020-01-02 03:38:13 2020-01-01 00:09:52.000 2020-01-02 03:38:13.000 592 99493 50042.5 5004250 592 99493 50042.5 5004250 -32578 32560 4822.66 482266 -128 123 -2.94 -294 +593 100 10583 99494 1.78078 298.78078 150.28078 15028.07807 1.78078 298.7808 150.28078 15028.078 1.78078 298.78078 150.28078 15028.07800 2020-01-01 2020-01-02 2020-01-01 00:09:53 2020-01-02 03:38:14 2020-01-01 00:09:53.000 2020-01-02 03:38:14.000 593 99494 50043.5 5004350 593 99494 50043.5 5004350 -32577 32561 4823.66 482366 -127 124 -1.94 -194 +594 100 10584 99495 1.78378 298.78378 150.28378 15028.37837 1.78378 298.78378 150.28378 15028.3783 1.78378 298.78378 150.28378 15028.37800 2020-01-01 2020-01-02 2020-01-01 00:09:54 2020-01-02 03:38:15 2020-01-01 00:09:54.000 2020-01-02 03:38:15.000 594 99495 50044.5 5004450 594 99495 50044.5 5004450 -32576 32562 4824.66 482466 -126 125 -0.94 -94 +595 100 10585 99496 1.78678 298.78678 150.28678 15028.67867 1.78678 298.78677 150.28678 15028.6786 1.78678 298.78678 150.28678 15028.67800 2020-01-01 2020-01-02 2020-01-01 00:09:55 2020-01-02 03:38:16 2020-01-01 00:09:55.000 2020-01-02 03:38:16.000 595 99496 50045.5 5004550 595 99496 50045.5 5004550 -32575 32563 4825.66 482566 -125 126 0.06 6 +596 100 10586 99497 1.78978 298.78978 150.28978 15028.97897 1.78978 298.7898 150.28979 15028.97922 1.78978 298.78978 150.28977999999998 15028.97800 2020-01-01 2020-01-02 2020-01-01 00:09:56 2020-01-02 03:38:17 2020-01-01 00:09:56.000 2020-01-02 03:38:17.000 596 99497 50046.5 5004650 596 99497 50046.5 5004650 -32574 32564 4826.66 482666 -124 127 1.06 106 +597 100 10587 99498 1.79279 298.79279 150.29279 15029.27927 1.79279 298.7928 150.29278 15029.27888 1.79279 298.79279 150.29279 15029.27900 2020-01-01 2020-01-02 2020-01-01 00:09:57 2020-01-02 03:38:18 2020-01-01 00:09:57.000 2020-01-02 03:38:18.000 597 99498 50047.5 5004750 597 99498 50047.5 5004750 -32573 32565 4827.66 482766 -128 127 -0.5 -50 +598 100 10588 99499 1.79579 298.79579 150.29579 15029.57957 1.79579 298.7958 150.29579 15029.57964 1.79579 298.79579 150.29579 15029.57900 2020-01-01 2020-01-02 2020-01-01 00:09:58 2020-01-02 03:38:19 2020-01-01 00:09:58.000 2020-01-02 03:38:19.000 598 99499 50048.5 5004850 598 99499 50048.5 5004850 -32572 32566 4828.66 482866 -128 123 -2.06 -206 +599 100 10589 99500 1.79879 298.79879 150.29879 15029.87987 1.79879 298.7988 150.29879 15029.87977 1.79879 298.79879 150.29879 15029.87900 2020-01-01 2020-01-02 2020-01-01 00:09:59 2020-01-02 03:38:20 2020-01-01 00:09:59.000 2020-01-02 03:38:20.000 599 99500 50049.5 5004950 599 99500 50049.5 5004950 -32571 32567 4829.66 482966 -127 124 -1.06 -106 +6 102 1005 9996 0.01801 300.01801 150.01801 15151.81981 0.01801 300.018 150.01801 15151.81978 0.01801 300.01801 150.01801 15151.81901 2020-01-01 2020-01-02 2020-01-01 00:00:06 2020-01-02 03:45:06 2020-01-01 00:00:06.000 2020-01-02 03:45:06.000 6 99906 49956 5045556 6 99906 49956 5045556 -32563 32372 4535.009900990099 458036 -127 124 -2.01980198019802 -204 +60 102 10050 99960 0.18018 300.18018 150.18018 15168.19819 0.18018 300.18018 150.18017 15168.198 0.18018 300.18018 150.18018 15168.19818 2020-01-01 2020-01-02 2020-01-01 00:01:00 2020-01-02 03:46:00 2020-01-01 00:01:00.000 2020-01-02 03:46:00.000 60 99960 50010 5051010 60 99960 50010 5051010 -32509 32426 4589.009900990099 463490 -128 127 -1.2475247524752475 -126 +600 100 10590 99501 1.8018 298.8018 150.3018 15030.18018 1.8018 298.8018 150.3018 15030.1801 1.80180 298.80180 150.30180000000001 15030.18000 2020-01-01 2020-01-02 2020-01-01 00:10:00 2020-01-02 03:38:21 2020-01-01 00:10:00.000 2020-01-02 03:38:21.000 600 99501 50050.5 5005050 600 99501 50050.5 5005050 -32570 32568 4830.66 483066 -126 125 -0.06 -6 +601 100 10591 99502 1.8048 298.8048 150.3048 15030.48048 1.8048 298.8048 150.3048 15030.4807 1.80480 298.80480 150.3048 15030.48000 2020-01-01 2020-01-02 2020-01-01 00:10:01 2020-01-02 03:38:22 2020-01-01 00:10:01.000 2020-01-02 03:38:22.000 601 99502 50051.5 5005150 601 99502 50051.5 5005150 -32569 32569 4831.66 483166 -125 126 0.94 94 +602 100 10592 99503 1.8078 298.8078 150.3078 15030.78078 1.8078 298.8078 150.3078 15030.78035 1.80780 298.80780 150.30780000000001 15030.78000 2020-01-01 2020-01-02 2020-01-01 00:10:02 2020-01-02 03:38:23 2020-01-01 00:10:02.000 2020-01-02 03:38:23.000 602 99503 50052.5 5005250 602 99503 50052.5 5005250 -32568 32570 4832.66 483266 -124 127 1.94 194 +603 100 10593 99504 1.81081 298.81081 150.31081 15031.08108 1.81081 298.81082 150.31081 15031.0811 1.81081 298.81081 150.31081 15031.08100 2020-01-01 2020-01-02 2020-01-01 00:10:03 2020-01-02 03:38:24 2020-01-01 00:10:03.000 2020-01-02 03:38:24.000 603 99504 50053.5 5005350 603 99504 50053.5 5005350 -32567 32571 4833.66 483366 -128 127 0.38 38 +604 100 10594 99505 1.81381 298.81381 150.31381 15031.38138 1.81381 298.8138 150.31381 15031.38124 1.81381 298.81381 150.31381 15031.38100 2020-01-01 2020-01-02 2020-01-01 00:10:04 2020-01-02 03:38:25 2020-01-01 00:10:04.000 2020-01-02 03:38:25.000 604 99505 50054.5 5005450 604 99505 50054.5 5005450 -32566 32572 4834.66 483466 -128 123 -1.18 -118 +605 100 10595 99506 1.81681 298.81681 150.31681 15031.68168 1.81681 298.8168 150.31681 15031.68157 1.81681 298.81681 150.31681 15031.68100 2020-01-01 2020-01-02 2020-01-01 00:10:05 2020-01-02 03:38:26 2020-01-01 00:10:05.000 2020-01-02 03:38:26.000 605 99506 50055.5 5005550 605 99506 50055.5 5005550 -32565 32573 4835.66 483566 -127 124 -0.18 -18 +606 100 10596 99507 1.81981 298.81981 150.31981 15031.98198 1.81981 298.81982 150.31982 15031.98217 1.81981 298.81981 150.31981 15031.98100 2020-01-01 2020-01-02 2020-01-01 00:10:06 2020-01-02 03:38:27 2020-01-01 00:10:06.000 2020-01-02 03:38:27.000 606 99507 50056.5 5005650 606 99507 50056.5 5005650 -32564 32574 4836.66 483666 -126 125 0.82 82 607 100 10597 99508 1.82282 298.82282 150.32282 15032.28228 1.82282 298.8228 150.32282 15032.28246 1.82282 298.82282 150.32281999999998 15032.28200 2020-01-01 2020-01-02 2020-01-01 00:10:07 2020-01-02 03:38:28 2020-01-01 00:10:07.000 2020-01-02 03:38:28.000 607 99508 50057.5 5005750 607 99508 50057.5 5005750 -32563 32575 4837.66 483766 -125 126 1.82 182 -608 100 10598 99509 1.82582 298.82582 150.32582 15032.58258 1.82582 298.82584 150.32582 15032.58258 1.82582 298.82582 150.32582000000002 15032.58200 2020-01-01 2020-01-02 2020-01-01 00:10:08 2020-01-02 03:38:29 2020-01-01 00:10:08.000 2020-01-02 03:38:29.000 608 99509 50058.5 5005850 608 99509 50058.5 5005850 -32562 32576 4838.66 483866 -124 127 2.82 282 -609 100 10599 99510 1.82882 298.82882 150.32882 15032.88288 1.82882 298.82883 150.32882 15032.88274 1.82882 298.82882 150.32882000000012 15032.88200 2020-01-01 2020-01-02 2020-01-01 00:10:09 2020-01-02 03:38:30 2020-01-01 00:10:09.000 2020-01-02 03:38:30.000 609 99510 50059.5 5005950 609 99510 50059.5 5005950 -32561 32577 4839.66 483966 -128 127 1.26 126 +608 100 10598 99509 1.82582 298.82582 150.32582 15032.58258 1.82582 298.82584 150.32582 15032.58258 1.82582 298.82582 150.32582 15032.58200 2020-01-01 2020-01-02 2020-01-01 00:10:08 2020-01-02 03:38:29 2020-01-01 00:10:08.000 2020-01-02 03:38:29.000 608 99509 50058.5 5005850 608 99509 50058.5 5005850 -32562 32576 4838.66 483866 -124 127 2.82 282 +609 100 10599 99510 1.82882 298.82882 150.32882 15032.88288 1.82882 298.82883 150.32882 15032.88274 1.82882 298.82882 150.32882 15032.88200 2020-01-01 2020-01-02 2020-01-01 00:10:09 2020-01-02 03:38:30 2020-01-01 00:10:09.000 2020-01-02 03:38:30.000 609 99510 50059.5 5005950 609 99510 50059.5 5005950 -32561 32577 4839.66 483966 -128 127 1.26 126 61 102 10051 99961 0.18318 300.18318 150.18318 15168.5015 0.18318 300.1832 150.18318 15168.5016 0.18318 300.18318 150.18318 15168.50118 2020-01-01 2020-01-02 2020-01-01 00:01:01 2020-01-02 03:46:01 2020-01-01 00:01:01.000 2020-01-02 03:46:01.000 61 99961 50011 5051111 61 99961 50011 5051111 -32508 32427 4590.009900990099 463591 -128 123 -2.782178217821782 -281 -610 100 10600 99511 1.83183 298.83183 150.33183 15033.18318 1.83183 298.83182 150.33183 15033.18304 1.83183 298.83183 150.33182999999977 15033.18300 2020-01-01 2020-01-02 2020-01-01 00:10:10 2020-01-02 03:38:31 2020-01-01 00:10:10.000 2020-01-02 03:38:31.000 610 99511 50060.5 5006050 610 99511 50060.5 5006050 -32560 32578 4840.66 484066 -128 127 -0.3 -30 -611 100 10601 99512 1.83483 298.83483 150.33483 15033.48348 1.83483 298.83484 150.33483 15033.48363 1.83483 298.83483 150.3348299999998 15033.48300 2020-01-01 2020-01-02 2020-01-01 00:10:11 2020-01-02 03:38:32 2020-01-01 00:10:11.000 2020-01-02 03:38:32.000 611 99512 50061.5 5006150 611 99512 50061.5 5006150 -32559 32579 4841.66 484166 -128 123 -1.86 -186 -612 100 10602 99513 1.83783 298.83783 150.33783 15033.78378 1.83783 298.83783 150.33783 15033.78393 1.83783 298.83783 150.33783000000028 15033.78300 2020-01-01 2020-01-02 2020-01-01 00:10:12 2020-01-02 03:38:33 2020-01-01 00:10:12.000 2020-01-02 03:38:33.000 612 99513 50062.5 5006250 612 99513 50062.5 5006250 -32558 32580 4842.66 484266 -127 124 -0.86 -86 -613 100 10603 99514 1.84084 298.84084 150.34084 15034.08408 1.84084 298.84085 150.34084 15034.08405 1.84084 298.84084 150.34084000000016 15034.08400 2020-01-01 2020-01-02 2020-01-01 00:10:13 2020-01-02 03:38:34 2020-01-01 00:10:13.000 2020-01-02 03:38:34.000 613 99514 50063.5 5006350 613 99514 50063.5 5006350 -32557 32581 4843.66 484366 -126 125 0.14 14 -614 100 10604 99515 1.84384 298.84384 150.34384 15034.38438 1.84384 298.84384 150.34384 15034.38421 1.84384 298.84384 150.34383999999966 15034.38400 2020-01-01 2020-01-02 2020-01-01 00:10:14 2020-01-02 03:38:35 2020-01-01 00:10:14.000 2020-01-02 03:38:35.000 614 99515 50064.5 5006450 614 99515 50064.5 5006450 -32556 32582 4844.66 484466 -125 126 1.14 114 -615 100 10605 99516 1.84684 298.84684 150.34684 15034.68468 1.84684 298.84683 150.34684 15034.68452 1.84684 298.84684 150.34684000000013 15034.68400 2020-01-01 2020-01-02 2020-01-01 00:10:15 2020-01-02 03:38:36 2020-01-01 00:10:15.000 2020-01-02 03:38:36.000 615 99516 50065.5 5006550 615 99516 50065.5 5006550 -32555 32583 4845.66 484566 -124 127 2.14 214 -616 100 10606 99517 1.84984 298.84984 150.34984 15034.98498 1.84984 298.84985 150.34985 15034.98527 1.84984 298.84984 150.34984000000017 15034.98400 2020-01-01 2020-01-02 2020-01-01 00:10:16 2020-01-02 03:38:37 2020-01-01 00:10:16.000 2020-01-02 03:38:37.000 616 99517 50066.5 5006650 616 99517 50066.5 5006650 -32554 32584 4846.66 484666 -128 127 0.58 58 -617 100 10607 99518 1.85285 298.85285 150.35285 15035.28528 1.85285 298.85284 150.35285 15035.2854 1.85285 298.85285 150.3528499999999 15035.28500 2020-01-01 2020-01-02 2020-01-01 00:10:17 2020-01-02 03:38:38 2020-01-01 00:10:17.000 2020-01-02 03:38:38.000 617 99518 50067.5 5006750 617 99518 50067.5 5006750 -32553 32585 4847.66 484766 -128 123 -0.98 -98 -618 100 10608 99519 1.85585 298.85585 150.35585 15035.58558 1.85585 298.85587 150.35585 15035.58551 1.85585 298.85585 150.35584999999995 15035.58500 2020-01-01 2020-01-02 2020-01-01 00:10:18 2020-01-02 03:38:39 2020-01-01 00:10:18.000 2020-01-02 03:38:39.000 618 99519 50068.5 5006850 618 99519 50068.5 5006850 -32552 32586 4848.66 484866 -127 124 0.02 2 -619 100 10609 99520 1.85885 298.85885 150.35885 15035.88588 1.85885 298.85886 150.35885 15035.88568 1.85885 298.85885 150.35885000000002 15035.88500 2020-01-01 2020-01-02 2020-01-01 00:10:19 2020-01-02 03:38:40 2020-01-01 00:10:19.000 2020-01-02 03:38:40.000 619 99520 50069.5 5006950 619 99520 50069.5 5006950 -32551 32587 4849.66 484966 -126 125 1.02 102 -62 102 10052 99962 0.18618 300.18618 150.18618 15168.8048 0.18618 300.1862 150.18618 15168.80494 0.18618 300.18618 150.1861800000001 15168.80418 2020-01-01 2020-01-02 2020-01-01 00:01:02 2020-01-02 03:46:02 2020-01-01 00:01:02.000 2020-01-02 03:46:02.000 62 99962 50012 5051212 62 99962 50012 5051212 -32507 32428 4591.009900990099 463692 -127 124 -1.7821782178217822 -180 -620 100 10610 99521 1.86186 298.86186 150.36186 15036.18618 1.86186 298.86185 150.36185 15036.18598 1.86186 298.86186 150.36186000000026 15036.18600 2020-01-01 2020-01-02 2020-01-01 00:10:20 2020-01-02 03:38:41 2020-01-01 00:10:20.000 2020-01-02 03:38:41.000 620 99521 50070.5 5007050 620 99521 50070.5 5007050 -32550 32588 4850.66 485066 -125 126 2.02 202 -621 100 10611 99522 1.86486 298.86486 150.36486 15036.48648 1.86486 298.86487 150.36486 15036.48673 1.86486 298.86486 150.3648599999998 15036.48600 2020-01-01 2020-01-02 2020-01-01 00:10:21 2020-01-02 03:38:42 2020-01-01 00:10:21.000 2020-01-02 03:38:42.000 621 99522 50071.5 5007150 621 99522 50071.5 5007150 -32549 32589 4851.66 485166 -124 127 3.02 302 -622 100 10612 99523 1.86786 298.86786 150.36786 15036.78678 1.86786 298.86786 150.36786 15036.78687 1.86786 298.86786 150.36786000000018 15036.78600 2020-01-01 2020-01-02 2020-01-01 00:10:22 2020-01-02 03:38:43 2020-01-01 00:10:22.000 2020-01-02 03:38:43.000 622 99523 50072.5 5007250 622 99523 50072.5 5007250 -32548 32590 4852.66 485266 -128 127 1.46 146 -623 100 10613 99524 1.87087 298.87087 150.37087 15037.08708 1.87087 298.87088 150.37087 15037.08702 1.87087 298.87087 150.37087000000014 15037.08700 2020-01-01 2020-01-02 2020-01-01 00:10:23 2020-01-02 03:38:44 2020-01-01 00:10:23.000 2020-01-02 03:38:44.000 623 99524 50073.5 5007350 623 99524 50073.5 5007350 -32547 32591 4853.66 485366 -128 123 -0.1 -10 -624 100 10614 99525 1.87387 298.87387 150.37387 15037.38738 1.87387 298.87387 150.37387 15037.38716 1.87387 298.87387 150.37386999999995 15037.38700 2020-01-01 2020-01-02 2020-01-01 00:10:24 2020-01-02 03:38:45 2020-01-01 00:10:24.000 2020-01-02 03:38:45.000 624 99525 50074.5 5007450 624 99525 50074.5 5007450 -32546 32592 4854.66 485466 -127 124 0.9 90 -625 100 10615 99526 1.87687 298.87687 150.37687 15037.68768 1.87687 298.8769 150.37687 15037.68791 1.87687 298.87687 150.37687000000003 15037.68700 2020-01-01 2020-01-02 2020-01-01 00:10:25 2020-01-02 03:38:46 2020-01-01 00:10:25.000 2020-01-02 03:38:46.000 625 99526 50075.5 5007550 625 99526 50075.5 5007550 -32545 32593 4855.66 485566 -126 125 1.9 190 -626 100 10616 99527 1.87987 298.87987 150.37987 15037.98798 1.87987 298.87988 150.37988 15037.9882 1.87987 298.87987 150.37987000000012 15037.98700 2020-01-01 2020-01-02 2020-01-01 00:10:26 2020-01-02 03:38:47 2020-01-01 00:10:26.000 2020-01-02 03:38:47.000 626 99527 50076.5 5007650 626 99527 50076.5 5007650 -32544 32594 4856.66 485666 -125 126 2.9 290 -627 100 10617 99528 1.88288 298.88288 150.38288 15038.28828 1.88288 298.88287 150.38288 15038.28834 1.88288 298.88288 150.3828799999998 15038.28800 2020-01-01 2020-01-02 2020-01-01 00:10:27 2020-01-02 03:38:48 2020-01-01 00:10:27.000 2020-01-02 03:38:48.000 627 99528 50077.5 5007750 627 99528 50077.5 5007750 -32543 32595 4857.66 485766 -124 127 3.9 390 -628 100 10618 99529 1.88588 298.88588 150.38588 15038.58858 1.88588 298.8859 150.38588 15038.58849 1.88588 298.88588 150.38587999999984 15038.58800 2020-01-01 2020-01-02 2020-01-01 00:10:28 2020-01-02 03:38:49 2020-01-01 00:10:28.000 2020-01-02 03:38:49.000 628 99529 50078.5 5007850 628 99529 50078.5 5007850 -32542 32596 4858.66 485866 -128 127 2.34 234 -629 100 10619 99530 1.88888 298.88888 150.38888 15038.88888 1.88888 298.8889 150.38888 15038.88862 1.88888 298.88888 150.3888800000003 15038.88800 2020-01-01 2020-01-02 2020-01-01 00:10:29 2020-01-02 03:38:50 2020-01-01 00:10:29.000 2020-01-02 03:38:50.000 629 99530 50079.5 5007950 629 99530 50079.5 5007950 -32541 32597 4859.66 485966 -128 123 0.78 78 -63 102 10053 99963 0.18918 300.18918 150.18918 15169.1081 0.18918 300.18918 150.18918 15169.10808 0.18918 300.18918 150.1891799999999 15169.10718 2020-01-01 2020-01-02 2020-01-01 00:01:03 2020-01-02 03:46:03 2020-01-01 00:01:03.000 2020-01-02 03:46:03.000 63 99963 50013 5051313 63 99963 50013 5051313 -32506 32429 4592.009900990099 463793 -126 125 -0.7821782178217822 -79 -630 100 10620 99531 1.89189 298.89189 150.39189 15039.18918 1.89189 298.8919 150.39189 15039.18937 1.89189 298.89189 150.3918900000002 15039.18900 2020-01-01 2020-01-02 2020-01-01 00:10:30 2020-01-02 03:38:51 2020-01-01 00:10:30.000 2020-01-02 03:38:51.000 630 99531 50080.5 5008050 630 99531 50080.5 5008050 -32540 32598 4860.66 486066 -127 124 1.78 178 -631 100 10621 99532 1.89489 298.89489 150.39489 15039.48948 1.89489 298.8949 150.39489 15039.48968 1.89489 298.89489 150.3948899999997 15039.48900 2020-01-01 2020-01-02 2020-01-01 00:10:31 2020-01-02 03:38:52 2020-01-01 00:10:31.000 2020-01-02 03:38:52.000 631 99532 50081.5 5008150 631 99532 50081.5 5008150 -32539 32599 4861.66 486166 -126 125 2.78 278 -632 100 10622 99533 1.89789 298.89789 150.39789 15039.78978 1.89789 298.8979 150.39789 15039.78984 1.89789 298.89789 150.39789000000016 15039.78900 2020-01-01 2020-01-02 2020-01-01 00:10:32 2020-01-02 03:38:53 2020-01-01 00:10:32.000 2020-01-02 03:38:53.000 632 99533 50082.5 5008250 632 99533 50082.5 5008250 -32538 32600 4862.66 486266 -125 126 3.78 378 -633 100 10623 99534 1.9009 298.9009 150.4009 15040.09009 1.9009 298.9009 150.40089 15040.08996 1.90090 298.90090 150.40090000000004 15040.09000 2020-01-01 2020-01-02 2020-01-01 00:10:33 2020-01-02 03:38:54 2020-01-01 00:10:33.000 2020-01-02 03:38:54.000 633 99534 50083.5 5008350 633 99534 50083.5 5008350 -32537 32601 4863.66 486366 -124 127 4.78 478 -634 100 10624 99535 1.9039 298.9039 150.4039 15040.39039 1.9039 298.9039 150.4039 15040.39009 1.90390 298.90390 150.40389999999988 15040.39000 2020-01-01 2020-01-02 2020-01-01 00:10:34 2020-01-02 03:38:55 2020-01-01 00:10:34.000 2020-01-02 03:38:55.000 634 99535 50084.5 5008450 634 99535 50084.5 5008450 -32536 32602 4864.66 486466 -128 127 3.22 322 -635 100 10625 99536 1.9069 298.9069 150.4069 15040.69069 1.9069 298.90692 150.4069 15040.69084 1.90690 298.90690 150.40689999999998 15040.69000 2020-01-01 2020-01-02 2020-01-01 00:10:35 2020-01-02 03:38:56 2020-01-01 00:10:35.000 2020-01-02 03:38:56.000 635 99536 50085.5 5008550 635 99536 50085.5 5008550 -32535 32603 4865.66 486566 -128 127 1.66 166 -636 100 10626 99537 1.9099 298.9099 150.4099 15040.99099 1.90991 298.9099 150.40991 15040.99115 1.90990 298.90990 150.40990000000005 15040.99000 2020-01-01 2020-01-02 2020-01-01 00:10:36 2020-01-02 03:38:57 2020-01-01 00:10:36.000 2020-01-02 03:38:57.000 636 99537 50086.5 5008650 636 99537 50086.5 5008650 -32534 32604 4866.66 486666 -128 124 0.1 10 -637 100 10627 99538 1.91291 298.91291 150.41291 15041.29129 1.91291 298.9129 150.41291 15041.29131 1.91291 298.91291 150.41290999999973 15041.29100 2020-01-01 2020-01-02 2020-01-01 00:10:37 2020-01-02 03:38:58 2020-01-01 00:10:37.000 2020-01-02 03:38:58.000 637 99538 50087.5 5008750 637 99538 50087.5 5008750 -32533 32605 4867.66 486766 -127 125 1.1 110 -638 100 10628 99539 1.91591 298.91591 150.41591 15041.59159 1.91591 298.91592 150.41591 15041.59143 1.91591 298.91591 150.41590999999983 15041.59100 2020-01-01 2020-01-02 2020-01-01 00:10:38 2020-01-02 03:38:59 2020-01-01 00:10:38.000 2020-01-02 03:38:59.000 638 99539 50088.5 5008850 638 99539 50088.5 5008850 -32532 32606 4868.66 486866 -126 126 2.1 210 -639 100 10629 99540 1.91891 298.91891 150.41891 15041.89189 1.91891 298.9189 150.41891 15041.89172 1.91891 298.91891 150.4189100000002 15041.89100 2020-01-01 2020-01-02 2020-01-01 00:10:39 2020-01-02 03:39:00 2020-01-01 00:10:39.000 2020-01-02 03:39:00.000 639 99540 50089.5 5008950 639 99540 50089.5 5008950 -32531 32607 4869.66 486966 -125 127 3.1 310 -64 102 10054 99964 0.19219 300.19219 150.19219 15169.41141 0.19219 300.1922 150.19219 15169.41184 0.19219 300.19219 150.19218999999984 15169.41119 2020-01-01 2020-01-02 2020-01-01 00:01:04 2020-01-02 03:46:04 2020-01-01 00:01:04.000 2020-01-02 03:46:04.000 64 99964 50014 5051414 64 99964 50014 5051414 -32505 32430 4593.009900990099 463894 -125 126 0.21782178217821782 22 -640 100 10630 99541 1.92192 298.92192 150.42192 15042.19219 1.92192 298.92194 150.42192 15042.19232 1.92192 298.92192 150.42192000000009 15042.19200 2020-01-01 2020-01-02 2020-01-01 00:10:40 2020-01-02 03:39:01 2020-01-01 00:10:40.000 2020-01-02 03:39:01.000 640 99541 50090.5 5009050 640 99541 50090.5 5009050 -32530 32608 4870.66 487066 -128 127 1.54 154 -641 100 10631 99542 1.92492 298.92492 150.42492 15042.49249 1.92492 298.92493 150.42492 15042.49265 1.92492 298.92492 150.42492 15042.49200 2020-01-01 2020-01-02 2020-01-01 00:10:41 2020-01-02 03:39:02 2020-01-01 00:10:41.000 2020-01-02 03:39:02.000 641 99542 50091.5 5009150 641 99542 50091.5 5009150 -32529 32609 4871.66 487166 -128 127 -0.02 -2 -642 100 10632 99543 1.92792 298.92792 150.42792 15042.79279 1.92792 298.92792 150.42792 15042.79278 1.92792 298.92792 150.42792000000006 15042.79200 2020-01-01 2020-01-02 2020-01-01 00:10:42 2020-01-02 03:39:03 2020-01-01 00:10:42.000 2020-01-02 03:39:03.000 642 99543 50092.5 5009250 642 99543 50092.5 5009250 -32528 32610 4872.66 487266 -128 123 -1.58 -158 -643 100 10633 99544 1.93093 298.93093 150.43093 15043.09309 1.93093 298.93094 150.43092 15043.0929 1.93093 298.93093 150.43093000000033 15043.09300 2020-01-01 2020-01-02 2020-01-01 00:10:43 2020-01-02 03:39:04 2020-01-01 00:10:43.000 2020-01-02 03:39:04.000 643 99544 50093.5 5009350 643 99544 50093.5 5009350 -32527 32611 4873.66 487366 -127 124 -0.58 -58 -644 100 10634 99545 1.93393 298.93393 150.43393 15043.39339 1.93393 298.93393 150.43393 15043.39319 1.93393 298.93393 150.43392999999983 15043.39300 2020-01-01 2020-01-02 2020-01-01 00:10:44 2020-01-02 03:39:05 2020-01-01 00:10:44.000 2020-01-02 03:39:05.000 644 99545 50094.5 5009450 644 99545 50094.5 5009450 -32526 32612 4874.66 487466 -126 125 0.42 42 -645 100 10635 99546 1.93693 298.93693 150.43693 15043.69369 1.93693 298.93695 150.43693 15043.69379 1.93693 298.93693 150.43692999999988 15043.69300 2020-01-01 2020-01-02 2020-01-01 00:10:45 2020-01-02 03:39:06 2020-01-01 00:10:45.000 2020-01-02 03:39:06.000 645 99546 50095.5 5009550 645 99546 50095.5 5009550 -32525 32613 4875.66 487566 -125 126 1.42 142 -646 100 10636 99547 1.93993 298.93993 150.43993 15043.99399 1.93994 298.93994 150.43994 15043.99412 1.93993 298.93993 150.43993000000023 15043.99300 2020-01-01 2020-01-02 2020-01-01 00:10:46 2020-01-02 03:39:07 2020-01-01 00:10:46.000 2020-01-02 03:39:07.000 646 99547 50096.5 5009650 646 99547 50096.5 5009650 -32524 32614 4876.66 487666 -124 127 2.42 242 -647 100 10637 99548 1.94294 298.94294 150.44294 15044.29429 1.94294 298.94293 150.44294 15044.29425 1.94294 298.94294 150.44294000000022 15044.29400 2020-01-01 2020-01-02 2020-01-01 00:10:47 2020-01-02 03:39:08 2020-01-01 00:10:47.000 2020-01-02 03:39:08.000 647 99548 50097.5 5009750 647 99548 50097.5 5009750 -32523 32615 4877.66 487766 -128 127 0.86 86 -648 100 10638 99549 1.94594 298.94594 150.44594 15044.59459 1.94594 298.94595 150.44595 15044.595 1.94594 298.94594 150.44593999999972 15044.59400 2020-01-01 2020-01-02 2020-01-01 00:10:48 2020-01-02 03:39:09 2020-01-01 00:10:48.000 2020-01-02 03:39:09.000 648 99549 50098.5 5009850 648 99549 50098.5 5009850 -32522 32616 4878.66 487866 -128 123 -0.7 -70 -649 100 10639 99550 1.94894 298.94894 150.44894 15044.89489 1.94894 298.94894 150.44894 15044.89467 1.94894 298.94894 150.4489400000002 15044.89400 2020-01-01 2020-01-02 2020-01-01 00:10:49 2020-01-02 03:39:10 2020-01-01 00:10:49.000 2020-01-02 03:39:10.000 649 99550 50099.5 5009950 649 99550 50099.5 5009950 -32521 32617 4879.66 487966 -127 124 0.3 30 -65 102 10055 99965 0.19519 300.19519 150.19519 15169.71471 0.19519 300.1952 150.19519 15169.71448 0.19519 300.19519 150.19519000000025 15169.71419 2020-01-01 2020-01-02 2020-01-01 00:01:05 2020-01-02 03:46:05 2020-01-01 00:01:05.000 2020-01-02 03:46:05.000 65 99965 50015 5051515 65 99965 50015 5051515 -32504 32431 4594.009900990099 463995 -124 127 1.2178217821782178 123 -650 100 10640 99551 1.95195 298.95195 150.45195 15045.19519 1.95195 298.95197 150.45195 15045.19525 1.95195 298.95195 150.45195000000007 15045.19500 2020-01-01 2020-01-02 2020-01-01 00:10:50 2020-01-02 03:39:11 2020-01-01 00:10:50.000 2020-01-02 03:39:11.000 650 99551 50100.5 5010050 650 99551 50100.5 5010050 -32520 32618 4880.66 488066 -126 125 1.3 130 -651 100 10641 99552 1.95495 298.95495 150.45495 15045.49549 1.95495 298.95496 150.45495 15045.49558 1.95495 298.95495 150.45494999999988 15045.49500 2020-01-01 2020-01-02 2020-01-01 00:10:51 2020-01-02 03:39:12 2020-01-01 00:10:51.000 2020-01-02 03:39:12.000 651 99552 50101.5 5010150 651 99552 50101.5 5010150 -32519 32619 4881.66 488166 -125 126 2.3 230 -652 100 10642 99553 1.95795 298.95795 150.45795 15045.79579 1.95795 298.95795 150.45795 15045.79572 1.95795 298.95795 150.45794999999998 15045.79500 2020-01-01 2020-01-02 2020-01-01 00:10:52 2020-01-02 03:39:13 2020-01-01 00:10:52.000 2020-01-02 03:39:13.000 652 99553 50102.5 5010250 652 99553 50102.5 5010250 -32518 32620 4882.66 488266 -124 127 3.3 330 -653 100 10643 99554 1.96096 298.96096 150.46096 15046.09609 1.96096 298.96097 150.46096 15046.09647 1.96096 298.96096 150.46096000000023 15046.09600 2020-01-01 2020-01-02 2020-01-01 00:10:53 2020-01-02 03:39:14 2020-01-01 00:10:53.000 2020-01-02 03:39:14.000 653 99554 50103.5 5010350 653 99554 50103.5 5010350 -32517 32621 4883.66 488366 -128 127 1.74 174 -654 100 10644 99555 1.96396 298.96396 150.46396 15046.39639 1.96396 298.96396 150.46396 15046.39613 1.96396 298.96396 150.46395999999973 15046.39600 2020-01-01 2020-01-02 2020-01-01 00:10:54 2020-01-02 03:39:15 2020-01-01 00:10:54.000 2020-01-02 03:39:15.000 654 99555 50104.5 5010450 654 99555 50104.5 5010450 -32516 32622 4884.66 488466 -128 123 0.18 18 -655 100 10645 99556 1.96696 298.96696 150.46696 15046.69669 1.96696 298.96698 150.46696 15046.69676 1.96696 298.96696 150.46695999999983 15046.69600 2020-01-01 2020-01-02 2020-01-01 00:10:55 2020-01-02 03:39:16 2020-01-01 00:10:55.000 2020-01-02 03:39:16.000 655 99556 50105.5 5010550 655 99556 50105.5 5010550 -32515 32623 4885.66 488566 -127 124 1.18 118 -656 100 10646 99557 1.96996 298.96996 150.46996 15046.99699 1.96997 298.96997 150.46997 15046.99706 1.96996 298.96996 150.46996000000024 15046.99600 2020-01-01 2020-01-02 2020-01-01 00:10:56 2020-01-02 03:39:17 2020-01-01 00:10:56.000 2020-01-02 03:39:17.000 656 99557 50106.5 5010650 656 99557 50106.5 5010650 -32514 32624 4886.66 488666 -126 125 2.18 218 -657 100 10647 99558 1.97297 298.97297 150.47297 15047.29729 1.97297 298.97296 150.47297 15047.29735 1.97297 298.97297 150.47297000000012 15047.29700 2020-01-01 2020-01-02 2020-01-01 00:10:57 2020-01-02 03:39:18 2020-01-01 00:10:57.000 2020-01-02 03:39:18.000 657 99558 50107.5 5010750 657 99558 50107.5 5010750 -32513 32625 4887.66 488766 -125 126 3.18 318 -658 100 10648 99559 1.97597 298.97597 150.47597 15047.59759 1.97597 298.97598 150.47597 15047.59794 1.97597 298.97597 150.47597000000002 15047.59700 2020-01-01 2020-01-02 2020-01-01 00:10:58 2020-01-02 03:39:19 2020-01-01 00:10:58.000 2020-01-02 03:39:19.000 658 99559 50108.5 5010850 658 99559 50108.5 5010850 -32512 32626 4888.66 488866 -124 127 4.18 418 -659 100 10649 99560 1.97897 298.97897 150.47897 15047.89789 1.97897 298.97897 150.47897 15047.8976 1.97897 298.97897 150.4789700000001 15047.89700 2020-01-01 2020-01-02 2020-01-01 00:10:59 2020-01-02 03:39:20 2020-01-01 00:10:59.000 2020-01-02 03:39:20.000 659 99560 50109.5 5010950 659 99560 50109.5 5010950 -32511 32627 4889.66 488966 -128 127 2.62 262 -66 102 10056 99966 0.19819 300.19819 150.19819 15170.01801 0.19819 300.1982 150.19819 15170.01808 0.19819 300.19819 150.19818999999976 15170.01719 2020-01-01 2020-01-02 2020-01-01 00:01:06 2020-01-02 03:46:06 2020-01-01 00:01:06.000 2020-01-02 03:46:06.000 66 99966 50016 5051616 66 99966 50016 5051616 -32503 32432 4595.009900990099 464096 -128 127 -0.31683168316831684 -32 -660 100 10650 99561 1.98198 298.98198 150.48198 15048.19819 1.98198 298.982 150.48198 15048.19822 1.98198 298.98198 150.48197999999996 15048.19800 2020-01-01 2020-01-02 2020-01-01 00:11:00 2020-01-02 03:39:21 2020-01-01 00:11:00.000 2020-01-02 03:39:21.000 660 99561 50110.5 5011050 660 99561 50110.5 5011050 -32510 32628 4890.66 489066 -128 127 1.06 106 -661 100 10651 99562 1.98498 298.98498 150.48498 15048.49849 1.98498 298.985 150.48498 15048.49853 1.98498 298.98498 150.48497999999987 15048.49800 2020-01-01 2020-01-02 2020-01-01 00:11:01 2020-01-02 03:39:22 2020-01-01 00:11:01.000 2020-01-02 03:39:22.000 661 99562 50111.5 5011150 661 99562 50111.5 5011150 -32509 32629 4891.66 489166 -128 124 -0.5 -50 -662 100 10652 99563 1.98798 298.98798 150.48798 15048.79879 1.98798 298.98798 150.48798 15048.79882 1.98798 298.98798 150.4879799999999 15048.79800 2020-01-01 2020-01-02 2020-01-01 00:11:02 2020-01-02 03:39:23 2020-01-01 00:11:02.000 2020-01-02 03:39:23.000 662 99563 50112.5 5011250 662 99563 50112.5 5011250 -32508 32630 4892.66 489266 -127 125 0.5 50 -663 100 10653 99564 1.99099 298.99099 150.49099 15049.09909 1.99099 298.991 150.49099 15049.09942 1.99099 298.99099 150.49099000000015 15049.09900 2020-01-01 2020-01-02 2020-01-01 00:11:03 2020-01-02 03:39:24 2020-01-01 00:11:03.000 2020-01-02 03:39:24.000 663 99564 50113.5 5011350 663 99564 50113.5 5011350 -32507 32631 4893.66 489366 -126 126 1.5 150 -664 100 10654 99565 1.99399 298.99399 150.49399 15049.39939 1.99399 298.994 150.49399 15049.39911 1.99399 298.99399 150.49399000000025 15049.39900 2020-01-01 2020-01-02 2020-01-01 00:11:04 2020-01-02 03:39:25 2020-01-01 00:11:04.000 2020-01-02 03:39:25.000 664 99565 50114.5 5011450 664 99565 50114.5 5011450 -32506 32632 4894.66 489466 -125 127 2.5 250 -665 100 10655 99566 1.99699 298.99699 150.49699 15049.69969 1.99699 298.997 150.49699 15049.6997 1.99699 298.99699 150.49698999999976 15049.69900 2020-01-01 2020-01-02 2020-01-01 00:11:05 2020-01-02 03:39:26 2020-01-01 00:11:05.000 2020-01-02 03:39:26.000 665 99566 50115.5 5011550 665 99566 50115.5 5011550 -32505 32633 4895.66 489566 -128 127 0.94 94 +610 100 10600 99511 1.83183 298.83183 150.33183 15033.18318 1.83183 298.83182 150.33183 15033.18304 1.83183 298.83183 150.33183 15033.18300 2020-01-01 2020-01-02 2020-01-01 00:10:10 2020-01-02 03:38:31 2020-01-01 00:10:10.000 2020-01-02 03:38:31.000 610 99511 50060.5 5006050 610 99511 50060.5 5006050 -32560 32578 4840.66 484066 -128 127 -0.3 -30 +611 100 10601 99512 1.83483 298.83483 150.33483 15033.48348 1.83483 298.83484 150.33483 15033.48363 1.83483 298.83483 150.33483 15033.48300 2020-01-01 2020-01-02 2020-01-01 00:10:11 2020-01-02 03:38:32 2020-01-01 00:10:11.000 2020-01-02 03:38:32.000 611 99512 50061.5 5006150 611 99512 50061.5 5006150 -32559 32579 4841.66 484166 -128 123 -1.86 -186 +612 100 10602 99513 1.83783 298.83783 150.33783 15033.78378 1.83783 298.83783 150.33783 15033.78393 1.83783 298.83783 150.33783 15033.78300 2020-01-01 2020-01-02 2020-01-01 00:10:12 2020-01-02 03:38:33 2020-01-01 00:10:12.000 2020-01-02 03:38:33.000 612 99513 50062.5 5006250 612 99513 50062.5 5006250 -32558 32580 4842.66 484266 -127 124 -0.86 -86 +613 100 10603 99514 1.84084 298.84084 150.34084 15034.08408 1.84084 298.84085 150.34084 15034.08405 1.84084 298.84084 150.34084000000001 15034.08400 2020-01-01 2020-01-02 2020-01-01 00:10:13 2020-01-02 03:38:34 2020-01-01 00:10:13.000 2020-01-02 03:38:34.000 613 99514 50063.5 5006350 613 99514 50063.5 5006350 -32557 32581 4843.66 484366 -126 125 0.14 14 +614 100 10604 99515 1.84384 298.84384 150.34384 15034.38438 1.84384 298.84384 150.34384 15034.38421 1.84384 298.84384 150.34384 15034.38400 2020-01-01 2020-01-02 2020-01-01 00:10:14 2020-01-02 03:38:35 2020-01-01 00:10:14.000 2020-01-02 03:38:35.000 614 99515 50064.5 5006450 614 99515 50064.5 5006450 -32556 32582 4844.66 484466 -125 126 1.14 114 +615 100 10605 99516 1.84684 298.84684 150.34684 15034.68468 1.84684 298.84683 150.34684 15034.68452 1.84684 298.84684 150.34684 15034.68400 2020-01-01 2020-01-02 2020-01-01 00:10:15 2020-01-02 03:38:36 2020-01-01 00:10:15.000 2020-01-02 03:38:36.000 615 99516 50065.5 5006550 615 99516 50065.5 5006550 -32555 32583 4845.66 484566 -124 127 2.14 214 +616 100 10606 99517 1.84984 298.84984 150.34984 15034.98498 1.84984 298.84985 150.34985 15034.98527 1.84984 298.84984 150.34984 15034.98400 2020-01-01 2020-01-02 2020-01-01 00:10:16 2020-01-02 03:38:37 2020-01-01 00:10:16.000 2020-01-02 03:38:37.000 616 99517 50066.5 5006650 616 99517 50066.5 5006650 -32554 32584 4846.66 484666 -128 127 0.58 58 +617 100 10607 99518 1.85285 298.85285 150.35285 15035.28528 1.85285 298.85284 150.35285 15035.2854 1.85285 298.85285 150.35285 15035.28500 2020-01-01 2020-01-02 2020-01-01 00:10:17 2020-01-02 03:38:38 2020-01-01 00:10:17.000 2020-01-02 03:38:38.000 617 99518 50067.5 5006750 617 99518 50067.5 5006750 -32553 32585 4847.66 484766 -128 123 -0.98 -98 +618 100 10608 99519 1.85585 298.85585 150.35585 15035.58558 1.85585 298.85587 150.35585 15035.58551 1.85585 298.85585 150.35585 15035.58500 2020-01-01 2020-01-02 2020-01-01 00:10:18 2020-01-02 03:38:39 2020-01-01 00:10:18.000 2020-01-02 03:38:39.000 618 99519 50068.5 5006850 618 99519 50068.5 5006850 -32552 32586 4848.66 484866 -127 124 0.02 2 +619 100 10609 99520 1.85885 298.85885 150.35885 15035.88588 1.85885 298.85886 150.35885 15035.88568 1.85885 298.85885 150.35885 15035.88500 2020-01-01 2020-01-02 2020-01-01 00:10:19 2020-01-02 03:38:40 2020-01-01 00:10:19.000 2020-01-02 03:38:40.000 619 99520 50069.5 5006950 619 99520 50069.5 5006950 -32551 32587 4849.66 484966 -126 125 1.02 102 +62 102 10052 99962 0.18618 300.18618 150.18618 15168.8048 0.18618 300.1862 150.18618 15168.80494 0.18618 300.18618 150.18617999999998 15168.80418 2020-01-01 2020-01-02 2020-01-01 00:01:02 2020-01-02 03:46:02 2020-01-01 00:01:02.000 2020-01-02 03:46:02.000 62 99962 50012 5051212 62 99962 50012 5051212 -32507 32428 4591.009900990099 463692 -127 124 -1.7821782178217822 -180 +620 100 10610 99521 1.86186 298.86186 150.36186 15036.18618 1.86186 298.86185 150.36185 15036.18598 1.86186 298.86186 150.36186 15036.18600 2020-01-01 2020-01-02 2020-01-01 00:10:20 2020-01-02 03:38:41 2020-01-01 00:10:20.000 2020-01-02 03:38:41.000 620 99521 50070.5 5007050 620 99521 50070.5 5007050 -32550 32588 4850.66 485066 -125 126 2.02 202 +621 100 10611 99522 1.86486 298.86486 150.36486 15036.48648 1.86486 298.86487 150.36486 15036.48673 1.86486 298.86486 150.36486000000002 15036.48600 2020-01-01 2020-01-02 2020-01-01 00:10:21 2020-01-02 03:38:42 2020-01-01 00:10:21.000 2020-01-02 03:38:42.000 621 99522 50071.5 5007150 621 99522 50071.5 5007150 -32549 32589 4851.66 485166 -124 127 3.02 302 +622 100 10612 99523 1.86786 298.86786 150.36786 15036.78678 1.86786 298.86786 150.36786 15036.78687 1.86786 298.86786 150.36786 15036.78600 2020-01-01 2020-01-02 2020-01-01 00:10:22 2020-01-02 03:38:43 2020-01-01 00:10:22.000 2020-01-02 03:38:43.000 622 99523 50072.5 5007250 622 99523 50072.5 5007250 -32548 32590 4852.66 485266 -128 127 1.46 146 +623 100 10613 99524 1.87087 298.87087 150.37087 15037.08708 1.87087 298.87088 150.37087 15037.08702 1.87087 298.87087 150.37087 15037.08700 2020-01-01 2020-01-02 2020-01-01 00:10:23 2020-01-02 03:38:44 2020-01-01 00:10:23.000 2020-01-02 03:38:44.000 623 99524 50073.5 5007350 623 99524 50073.5 5007350 -32547 32591 4853.66 485366 -128 123 -0.1 -10 +624 100 10614 99525 1.87387 298.87387 150.37387 15037.38738 1.87387 298.87387 150.37387 15037.38716 1.87387 298.87387 150.37387 15037.38700 2020-01-01 2020-01-02 2020-01-01 00:10:24 2020-01-02 03:38:45 2020-01-01 00:10:24.000 2020-01-02 03:38:45.000 624 99525 50074.5 5007450 624 99525 50074.5 5007450 -32546 32592 4854.66 485466 -127 124 0.9 90 +625 100 10615 99526 1.87687 298.87687 150.37687 15037.68768 1.87687 298.8769 150.37687 15037.68791 1.87687 298.87687 150.37687 15037.68700 2020-01-01 2020-01-02 2020-01-01 00:10:25 2020-01-02 03:38:46 2020-01-01 00:10:25.000 2020-01-02 03:38:46.000 625 99526 50075.5 5007550 625 99526 50075.5 5007550 -32545 32593 4855.66 485566 -126 125 1.9 190 +626 100 10616 99527 1.87987 298.87987 150.37987 15037.98798 1.87987 298.87988 150.37988 15037.9882 1.87987 298.87987 150.37986999999998 15037.98700 2020-01-01 2020-01-02 2020-01-01 00:10:26 2020-01-02 03:38:47 2020-01-01 00:10:26.000 2020-01-02 03:38:47.000 626 99527 50076.5 5007650 626 99527 50076.5 5007650 -32544 32594 4856.66 485666 -125 126 2.9 290 +627 100 10617 99528 1.88288 298.88288 150.38288 15038.28828 1.88288 298.88287 150.38288 15038.28834 1.88288 298.88288 150.38288 15038.28800 2020-01-01 2020-01-02 2020-01-01 00:10:27 2020-01-02 03:38:48 2020-01-01 00:10:27.000 2020-01-02 03:38:48.000 627 99528 50077.5 5007750 627 99528 50077.5 5007750 -32543 32595 4857.66 485766 -124 127 3.9 390 +628 100 10618 99529 1.88588 298.88588 150.38588 15038.58858 1.88588 298.8859 150.38588 15038.58849 1.88588 298.88588 150.38588 15038.58800 2020-01-01 2020-01-02 2020-01-01 00:10:28 2020-01-02 03:38:49 2020-01-01 00:10:28.000 2020-01-02 03:38:49.000 628 99529 50078.5 5007850 628 99529 50078.5 5007850 -32542 32596 4858.66 485866 -128 127 2.34 234 +629 100 10619 99530 1.88888 298.88888 150.38888 15038.88888 1.88888 298.8889 150.38888 15038.88862 1.88888 298.88888 150.38888 15038.88800 2020-01-01 2020-01-02 2020-01-01 00:10:29 2020-01-02 03:38:50 2020-01-01 00:10:29.000 2020-01-02 03:38:50.000 629 99530 50079.5 5007950 629 99530 50079.5 5007950 -32541 32597 4859.66 485966 -128 123 0.78 78 +63 102 10053 99963 0.18918 300.18918 150.18918 15169.1081 0.18918 300.18918 150.18918 15169.10808 0.18918 300.18918 150.18918000000002 15169.10718 2020-01-01 2020-01-02 2020-01-01 00:01:03 2020-01-02 03:46:03 2020-01-01 00:01:03.000 2020-01-02 03:46:03.000 63 99963 50013 5051313 63 99963 50013 5051313 -32506 32429 4592.009900990099 463793 -126 125 -0.7821782178217822 -79 +630 100 10620 99531 1.89189 298.89189 150.39189 15039.18918 1.89189 298.8919 150.39189 15039.18937 1.89189 298.89189 150.39189 15039.18900 2020-01-01 2020-01-02 2020-01-01 00:10:30 2020-01-02 03:38:51 2020-01-01 00:10:30.000 2020-01-02 03:38:51.000 630 99531 50080.5 5008050 630 99531 50080.5 5008050 -32540 32598 4860.66 486066 -127 124 1.78 178 +631 100 10621 99532 1.89489 298.89489 150.39489 15039.48948 1.89489 298.8949 150.39489 15039.48968 1.89489 298.89489 150.39489 15039.48900 2020-01-01 2020-01-02 2020-01-01 00:10:31 2020-01-02 03:38:52 2020-01-01 00:10:31.000 2020-01-02 03:38:52.000 631 99532 50081.5 5008150 631 99532 50081.5 5008150 -32539 32599 4861.66 486166 -126 125 2.78 278 +632 100 10622 99533 1.89789 298.89789 150.39789 15039.78978 1.89789 298.8979 150.39789 15039.78984 1.89789 298.89789 150.39789000000002 15039.78900 2020-01-01 2020-01-02 2020-01-01 00:10:32 2020-01-02 03:38:53 2020-01-01 00:10:32.000 2020-01-02 03:38:53.000 632 99533 50082.5 5008250 632 99533 50082.5 5008250 -32538 32600 4862.66 486266 -125 126 3.78 378 +633 100 10623 99534 1.9009 298.9009 150.4009 15040.09009 1.9009 298.9009 150.40089 15040.08996 1.90090 298.90090 150.4009 15040.09000 2020-01-01 2020-01-02 2020-01-01 00:10:33 2020-01-02 03:38:54 2020-01-01 00:10:33.000 2020-01-02 03:38:54.000 633 99534 50083.5 5008350 633 99534 50083.5 5008350 -32537 32601 4863.66 486366 -124 127 4.78 478 +634 100 10624 99535 1.9039 298.9039 150.4039 15040.39039 1.9039 298.9039 150.4039 15040.39009 1.90390 298.90390 150.4039 15040.39000 2020-01-01 2020-01-02 2020-01-01 00:10:34 2020-01-02 03:38:55 2020-01-01 00:10:34.000 2020-01-02 03:38:55.000 634 99535 50084.5 5008450 634 99535 50084.5 5008450 -32536 32602 4864.66 486466 -128 127 3.22 322 +635 100 10625 99536 1.9069 298.9069 150.4069 15040.69069 1.9069 298.90692 150.4069 15040.69084 1.90690 298.90690 150.4069 15040.69000 2020-01-01 2020-01-02 2020-01-01 00:10:35 2020-01-02 03:38:56 2020-01-01 00:10:35.000 2020-01-02 03:38:56.000 635 99536 50085.5 5008550 635 99536 50085.5 5008550 -32535 32603 4865.66 486566 -128 127 1.66 166 +636 100 10626 99537 1.9099 298.9099 150.4099 15040.99099 1.90991 298.9099 150.40991 15040.99115 1.90990 298.90990 150.4099 15040.99000 2020-01-01 2020-01-02 2020-01-01 00:10:36 2020-01-02 03:38:57 2020-01-01 00:10:36.000 2020-01-02 03:38:57.000 636 99537 50086.5 5008650 636 99537 50086.5 5008650 -32534 32604 4866.66 486666 -128 124 0.1 10 +637 100 10627 99538 1.91291 298.91291 150.41291 15041.29129 1.91291 298.9129 150.41291 15041.29131 1.91291 298.91291 150.41290999999998 15041.29100 2020-01-01 2020-01-02 2020-01-01 00:10:37 2020-01-02 03:38:58 2020-01-01 00:10:37.000 2020-01-02 03:38:58.000 637 99538 50087.5 5008750 637 99538 50087.5 5008750 -32533 32605 4867.66 486766 -127 125 1.1 110 +638 100 10628 99539 1.91591 298.91591 150.41591 15041.59159 1.91591 298.91592 150.41591 15041.59143 1.91591 298.91591 150.41591 15041.59100 2020-01-01 2020-01-02 2020-01-01 00:10:38 2020-01-02 03:38:59 2020-01-01 00:10:38.000 2020-01-02 03:38:59.000 638 99539 50088.5 5008850 638 99539 50088.5 5008850 -32532 32606 4868.66 486866 -126 126 2.1 210 +639 100 10629 99540 1.91891 298.91891 150.41891 15041.89189 1.91891 298.9189 150.41891 15041.89172 1.91891 298.91891 150.41890999999998 15041.89100 2020-01-01 2020-01-02 2020-01-01 00:10:39 2020-01-02 03:39:00 2020-01-01 00:10:39.000 2020-01-02 03:39:00.000 639 99540 50089.5 5008950 639 99540 50089.5 5008950 -32531 32607 4869.66 486966 -125 127 3.1 310 +64 102 10054 99964 0.19219 300.19219 150.19219 15169.41141 0.19219 300.1922 150.19219 15169.41184 0.19219 300.19219 150.19219 15169.41119 2020-01-01 2020-01-02 2020-01-01 00:01:04 2020-01-02 03:46:04 2020-01-01 00:01:04.000 2020-01-02 03:46:04.000 64 99964 50014 5051414 64 99964 50014 5051414 -32505 32430 4593.009900990099 463894 -125 126 0.21782178217821782 22 +640 100 10630 99541 1.92192 298.92192 150.42192 15042.19219 1.92192 298.92194 150.42192 15042.19232 1.92192 298.92192 150.42192 15042.19200 2020-01-01 2020-01-02 2020-01-01 00:10:40 2020-01-02 03:39:01 2020-01-01 00:10:40.000 2020-01-02 03:39:01.000 640 99541 50090.5 5009050 640 99541 50090.5 5009050 -32530 32608 4870.66 487066 -128 127 1.54 154 +641 100 10631 99542 1.92492 298.92492 150.42492 15042.49249 1.92492 298.92493 150.42492 15042.49265 1.92492 298.92492 150.42492000000001 15042.49200 2020-01-01 2020-01-02 2020-01-01 00:10:41 2020-01-02 03:39:02 2020-01-01 00:10:41.000 2020-01-02 03:39:02.000 641 99542 50091.5 5009150 641 99542 50091.5 5009150 -32529 32609 4871.66 487166 -128 127 -0.02 -2 +642 100 10632 99543 1.92792 298.92792 150.42792 15042.79279 1.92792 298.92792 150.42792 15042.79278 1.92792 298.92792 150.42792 15042.79200 2020-01-01 2020-01-02 2020-01-01 00:10:42 2020-01-02 03:39:03 2020-01-01 00:10:42.000 2020-01-02 03:39:03.000 642 99543 50092.5 5009250 642 99543 50092.5 5009250 -32528 32610 4872.66 487266 -128 123 -1.58 -158 +643 100 10633 99544 1.93093 298.93093 150.43093 15043.09309 1.93093 298.93094 150.43092 15043.0929 1.93093 298.93093 150.43093000000002 15043.09300 2020-01-01 2020-01-02 2020-01-01 00:10:43 2020-01-02 03:39:04 2020-01-01 00:10:43.000 2020-01-02 03:39:04.000 643 99544 50093.5 5009350 643 99544 50093.5 5009350 -32527 32611 4873.66 487366 -127 124 -0.58 -58 +644 100 10634 99545 1.93393 298.93393 150.43393 15043.39339 1.93393 298.93393 150.43393 15043.39319 1.93393 298.93393 150.43393 15043.39300 2020-01-01 2020-01-02 2020-01-01 00:10:44 2020-01-02 03:39:05 2020-01-01 00:10:44.000 2020-01-02 03:39:05.000 644 99545 50094.5 5009450 644 99545 50094.5 5009450 -32526 32612 4874.66 487466 -126 125 0.42 42 +645 100 10635 99546 1.93693 298.93693 150.43693 15043.69369 1.93693 298.93695 150.43693 15043.69379 1.93693 298.93693 150.43693 15043.69300 2020-01-01 2020-01-02 2020-01-01 00:10:45 2020-01-02 03:39:06 2020-01-01 00:10:45.000 2020-01-02 03:39:06.000 645 99546 50095.5 5009550 645 99546 50095.5 5009550 -32525 32613 4875.66 487566 -125 126 1.42 142 +646 100 10636 99547 1.93993 298.93993 150.43993 15043.99399 1.93994 298.93994 150.43994 15043.99412 1.93993 298.93993 150.43993 15043.99300 2020-01-01 2020-01-02 2020-01-01 00:10:46 2020-01-02 03:39:07 2020-01-01 00:10:46.000 2020-01-02 03:39:07.000 646 99547 50096.5 5009650 646 99547 50096.5 5009650 -32524 32614 4876.66 487666 -124 127 2.42 242 +647 100 10637 99548 1.94294 298.94294 150.44294 15044.29429 1.94294 298.94293 150.44294 15044.29425 1.94294 298.94294 150.44294 15044.29400 2020-01-01 2020-01-02 2020-01-01 00:10:47 2020-01-02 03:39:08 2020-01-01 00:10:47.000 2020-01-02 03:39:08.000 647 99548 50097.5 5009750 647 99548 50097.5 5009750 -32523 32615 4877.66 487766 -128 127 0.86 86 +648 100 10638 99549 1.94594 298.94594 150.44594 15044.59459 1.94594 298.94595 150.44595 15044.595 1.94594 298.94594 150.44593999999998 15044.59400 2020-01-01 2020-01-02 2020-01-01 00:10:48 2020-01-02 03:39:09 2020-01-01 00:10:48.000 2020-01-02 03:39:09.000 648 99549 50098.5 5009850 648 99549 50098.5 5009850 -32522 32616 4878.66 487866 -128 123 -0.7 -70 +649 100 10639 99550 1.94894 298.94894 150.44894 15044.89489 1.94894 298.94894 150.44894 15044.89467 1.94894 298.94894 150.44894 15044.89400 2020-01-01 2020-01-02 2020-01-01 00:10:49 2020-01-02 03:39:10 2020-01-01 00:10:49.000 2020-01-02 03:39:10.000 649 99550 50099.5 5009950 649 99550 50099.5 5009950 -32521 32617 4879.66 487966 -127 124 0.3 30 +65 102 10055 99965 0.19519 300.19519 150.19519 15169.71471 0.19519 300.1952 150.19519 15169.71448 0.19519 300.19519 150.19519 15169.71419 2020-01-01 2020-01-02 2020-01-01 00:01:05 2020-01-02 03:46:05 2020-01-01 00:01:05.000 2020-01-02 03:46:05.000 65 99965 50015 5051515 65 99965 50015 5051515 -32504 32431 4594.009900990099 463995 -124 127 1.2178217821782178 123 +650 100 10640 99551 1.95195 298.95195 150.45195 15045.19519 1.95195 298.95197 150.45195 15045.19525 1.95195 298.95195 150.45195 15045.19500 2020-01-01 2020-01-02 2020-01-01 00:10:50 2020-01-02 03:39:11 2020-01-01 00:10:50.000 2020-01-02 03:39:11.000 650 99551 50100.5 5010050 650 99551 50100.5 5010050 -32520 32618 4880.66 488066 -126 125 1.3 130 +651 100 10641 99552 1.95495 298.95495 150.45495 15045.49549 1.95495 298.95496 150.45495 15045.49558 1.95495 298.95495 150.45495 15045.49500 2020-01-01 2020-01-02 2020-01-01 00:10:51 2020-01-02 03:39:12 2020-01-01 00:10:51.000 2020-01-02 03:39:12.000 651 99552 50101.5 5010150 651 99552 50101.5 5010150 -32519 32619 4881.66 488166 -125 126 2.3 230 +652 100 10642 99553 1.95795 298.95795 150.45795 15045.79579 1.95795 298.95795 150.45795 15045.79572 1.95795 298.95795 150.45795 15045.79500 2020-01-01 2020-01-02 2020-01-01 00:10:52 2020-01-02 03:39:13 2020-01-01 00:10:52.000 2020-01-02 03:39:13.000 652 99553 50102.5 5010250 652 99553 50102.5 5010250 -32518 32620 4882.66 488266 -124 127 3.3 330 +653 100 10643 99554 1.96096 298.96096 150.46096 15046.09609 1.96096 298.96097 150.46096 15046.09647 1.96096 298.96096 150.46096 15046.09600 2020-01-01 2020-01-02 2020-01-01 00:10:53 2020-01-02 03:39:14 2020-01-01 00:10:53.000 2020-01-02 03:39:14.000 653 99554 50103.5 5010350 653 99554 50103.5 5010350 -32517 32621 4883.66 488366 -128 127 1.74 174 +654 100 10644 99555 1.96396 298.96396 150.46396 15046.39639 1.96396 298.96396 150.46396 15046.39613 1.96396 298.96396 150.46396000000001 15046.39600 2020-01-01 2020-01-02 2020-01-01 00:10:54 2020-01-02 03:39:15 2020-01-01 00:10:54.000 2020-01-02 03:39:15.000 654 99555 50104.5 5010450 654 99555 50104.5 5010450 -32516 32622 4884.66 488466 -128 123 0.18 18 +655 100 10645 99556 1.96696 298.96696 150.46696 15046.69669 1.96696 298.96698 150.46696 15046.69676 1.96696 298.96696 150.46696 15046.69600 2020-01-01 2020-01-02 2020-01-01 00:10:55 2020-01-02 03:39:16 2020-01-01 00:10:55.000 2020-01-02 03:39:16.000 655 99556 50105.5 5010550 655 99556 50105.5 5010550 -32515 32623 4885.66 488566 -127 124 1.18 118 +656 100 10646 99557 1.96996 298.96996 150.46996 15046.99699 1.96997 298.96997 150.46997 15046.99706 1.96996 298.96996 150.46996 15046.99600 2020-01-01 2020-01-02 2020-01-01 00:10:56 2020-01-02 03:39:17 2020-01-01 00:10:56.000 2020-01-02 03:39:17.000 656 99557 50106.5 5010650 656 99557 50106.5 5010650 -32514 32624 4886.66 488666 -126 125 2.18 218 +657 100 10647 99558 1.97297 298.97297 150.47297 15047.29729 1.97297 298.97296 150.47297 15047.29735 1.97297 298.97297 150.47297 15047.29700 2020-01-01 2020-01-02 2020-01-01 00:10:57 2020-01-02 03:39:18 2020-01-01 00:10:57.000 2020-01-02 03:39:18.000 657 99558 50107.5 5010750 657 99558 50107.5 5010750 -32513 32625 4887.66 488766 -125 126 3.18 318 +658 100 10648 99559 1.97597 298.97597 150.47597 15047.59759 1.97597 298.97598 150.47597 15047.59794 1.97597 298.97597 150.47597 15047.59700 2020-01-01 2020-01-02 2020-01-01 00:10:58 2020-01-02 03:39:19 2020-01-01 00:10:58.000 2020-01-02 03:39:19.000 658 99559 50108.5 5010850 658 99559 50108.5 5010850 -32512 32626 4888.66 488866 -124 127 4.18 418 +659 100 10649 99560 1.97897 298.97897 150.47897 15047.89789 1.97897 298.97897 150.47897 15047.8976 1.97897 298.97897 150.47897 15047.89700 2020-01-01 2020-01-02 2020-01-01 00:10:59 2020-01-02 03:39:20 2020-01-01 00:10:59.000 2020-01-02 03:39:20.000 659 99560 50109.5 5010950 659 99560 50109.5 5010950 -32511 32627 4889.66 488966 -128 127 2.62 262 +66 102 10056 99966 0.19819 300.19819 150.19819 15170.01801 0.19819 300.1982 150.19819 15170.01808 0.19819 300.19819 150.19819 15170.01719 2020-01-01 2020-01-02 2020-01-01 00:01:06 2020-01-02 03:46:06 2020-01-01 00:01:06.000 2020-01-02 03:46:06.000 66 99966 50016 5051616 66 99966 50016 5051616 -32503 32432 4595.009900990099 464096 -128 127 -0.31683168316831684 -32 +660 100 10650 99561 1.98198 298.98198 150.48198 15048.19819 1.98198 298.982 150.48198 15048.19822 1.98198 298.98198 150.48198 15048.19800 2020-01-01 2020-01-02 2020-01-01 00:11:00 2020-01-02 03:39:21 2020-01-01 00:11:00.000 2020-01-02 03:39:21.000 660 99561 50110.5 5011050 660 99561 50110.5 5011050 -32510 32628 4890.66 489066 -128 127 1.06 106 +661 100 10651 99562 1.98498 298.98498 150.48498 15048.49849 1.98498 298.985 150.48498 15048.49853 1.98498 298.98498 150.48498 15048.49800 2020-01-01 2020-01-02 2020-01-01 00:11:01 2020-01-02 03:39:22 2020-01-01 00:11:01.000 2020-01-02 03:39:22.000 661 99562 50111.5 5011150 661 99562 50111.5 5011150 -32509 32629 4891.66 489166 -128 124 -0.5 -50 +662 100 10652 99563 1.98798 298.98798 150.48798 15048.79879 1.98798 298.98798 150.48798 15048.79882 1.98798 298.98798 150.48798 15048.79800 2020-01-01 2020-01-02 2020-01-01 00:11:02 2020-01-02 03:39:23 2020-01-01 00:11:02.000 2020-01-02 03:39:23.000 662 99563 50112.5 5011250 662 99563 50112.5 5011250 -32508 32630 4892.66 489266 -127 125 0.5 50 +663 100 10653 99564 1.99099 298.99099 150.49099 15049.09909 1.99099 298.991 150.49099 15049.09942 1.99099 298.99099 150.49099 15049.09900 2020-01-01 2020-01-02 2020-01-01 00:11:03 2020-01-02 03:39:24 2020-01-01 00:11:03.000 2020-01-02 03:39:24.000 663 99564 50113.5 5011350 663 99564 50113.5 5011350 -32507 32631 4893.66 489366 -126 126 1.5 150 +664 100 10654 99565 1.99399 298.99399 150.49399 15049.39939 1.99399 298.994 150.49399 15049.39911 1.99399 298.99399 150.49399 15049.39900 2020-01-01 2020-01-02 2020-01-01 00:11:04 2020-01-02 03:39:25 2020-01-01 00:11:04.000 2020-01-02 03:39:25.000 664 99565 50114.5 5011450 664 99565 50114.5 5011450 -32506 32632 4894.66 489466 -125 127 2.5 250 +665 100 10655 99566 1.99699 298.99699 150.49699 15049.69969 1.99699 298.997 150.49699 15049.6997 1.99699 298.99699 150.49699 15049.69900 2020-01-01 2020-01-02 2020-01-01 00:11:05 2020-01-02 03:39:26 2020-01-01 00:11:05.000 2020-01-02 03:39:26.000 665 99566 50115.5 5011550 665 99566 50115.5 5011550 -32505 32633 4895.66 489566 -128 127 0.94 94 666 100 10656 99567 2 299 150.5 15050 2 299 150.5 15050 2.00000 299.00000 150.5 15050.00000 2020-01-01 2020-01-02 2020-01-01 00:11:06 2020-01-02 03:39:27 2020-01-01 00:11:06.000 2020-01-02 03:39:27.000 666 99567 50116.5 5011650 666 99567 50116.5 5011650 -32504 32634 4896.66 489666 -128 127 -0.62 -62 -667 100 10657 99568 2.003 299.003 150.503 15050.3003 2.003 299.003 150.503 15050.30029 2.00300 299.00300 150.5030000000001 15050.30000 2020-01-01 2020-01-02 2020-01-01 00:11:07 2020-01-02 03:39:28 2020-01-01 00:11:07.000 2020-01-02 03:39:28.000 667 99568 50117.5 5011750 667 99568 50117.5 5011750 -32503 32635 4897.66 489766 -128 123 -2.18 -218 -668 100 10658 99569 2.006 299.006 150.506 15050.6006 2.006 299.006 150.506 15050.60089 2.00600 299.00600 150.50599999999991 15050.60000 2020-01-01 2020-01-02 2020-01-01 00:11:08 2020-01-02 03:39:29 2020-01-01 00:11:08.000 2020-01-02 03:39:29.000 668 99569 50118.5 5011850 668 99569 50118.5 5011850 -32502 32636 4898.66 489866 -127 124 -1.18 -118 -669 100 10659 99570 2.009 299.009 150.509 15050.9009 2.009 299.009 150.509 15050.90057 2.00900 299.00900 150.50900000000001 15050.90000 2020-01-01 2020-01-02 2020-01-01 00:11:09 2020-01-02 03:39:30 2020-01-01 00:11:09.000 2020-01-02 03:39:30.000 669 99570 50119.5 5011950 669 99570 50119.5 5011950 -32501 32637 4899.66 489966 -126 125 -0.18 -18 -67 102 10057 99967 0.2012 300.2012 150.2012 15170.32132 0.2012 300.2012 150.2012 15170.32142 0.20120 300.20120 150.20120000000003 15170.32120 2020-01-01 2020-01-02 2020-01-01 00:01:07 2020-01-02 03:46:07 2020-01-01 00:01:07.000 2020-01-02 03:46:07.000 67 99967 50017 5051717 67 99967 50017 5051717 -32502 32433 4596.009900990099 464197 -128 127 -1.8514851485148516 -187 -670 100 10660 99571 2.01201 299.01201 150.51201 15051.2012 2.01201 299.01202 150.51201 15051.20117 2.01201 299.01201 150.51201000000026 15051.20100 2020-01-01 2020-01-02 2020-01-01 00:11:10 2020-01-02 03:39:31 2020-01-01 00:11:10.000 2020-01-02 03:39:31.000 670 99571 50120.5 5012050 670 99571 50120.5 5012050 -32500 32638 4900.66 490066 -125 126 0.82 82 -671 100 10661 99572 2.01501 299.01501 150.51501 15051.5015 2.01501 299.015 150.51501 15051.50146 2.01501 299.01501 150.51500999999976 15051.50100 2020-01-01 2020-01-02 2020-01-01 00:11:11 2020-01-02 03:39:32 2020-01-01 00:11:11.000 2020-01-02 03:39:32.000 671 99572 50121.5 5012150 671 99572 50121.5 5012150 -32499 32639 4901.66 490166 -124 127 1.82 182 -672 100 10662 99573 2.01801 299.01801 150.51801 15051.8018 2.01801 299.018 150.51801 15051.80176 2.01801 299.01801 150.5180099999998 15051.80100 2020-01-01 2020-01-02 2020-01-01 00:11:12 2020-01-02 03:39:33 2020-01-01 00:11:12.000 2020-01-02 03:39:33.000 672 99573 50122.5 5012250 672 99573 50122.5 5012250 -32498 32640 4902.66 490266 -128 127 0.26 26 -673 100 10663 99574 2.02102 299.02102 150.52102 15052.1021 2.02102 299.02103 150.52102 15052.1024 2.02102 299.02102 150.5210200000001 15052.10200 2020-01-01 2020-01-02 2020-01-01 00:11:13 2020-01-02 03:39:34 2020-01-01 00:11:13.000 2020-01-02 03:39:34.000 673 99574 50123.5 5012350 673 99574 50123.5 5012350 -32497 32641 4903.66 490366 -128 123 -1.3 -130 -674 100 10664 99575 2.02402 299.02402 150.52402 15052.4024 2.02402 299.02402 150.52402 15052.40204 2.02402 299.02402 150.52402000000015 15052.40200 2020-01-01 2020-01-02 2020-01-01 00:11:14 2020-01-02 03:39:35 2020-01-01 00:11:14.000 2020-01-02 03:39:35.000 674 99575 50124.5 5012450 674 99575 50124.5 5012450 -32496 32642 4904.66 490466 -127 124 -0.3 -30 -675 100 10665 99576 2.02702 299.02702 150.52702 15052.7027 2.02702 299.02704 150.52702 15052.70264 2.02702 299.02702 150.52701999999977 15052.70200 2020-01-01 2020-01-02 2020-01-01 00:11:15 2020-01-02 03:39:36 2020-01-01 00:11:15.000 2020-01-02 03:39:36.000 675 99576 50125.5 5012550 675 99576 50125.5 5012550 -32495 32643 4905.66 490566 -126 125 0.7 70 -676 100 10666 99577 2.03003 299.03003 150.53003 15053.003 2.03003 299.03003 150.53002 15053.00293 2.03003 299.03003 150.53002999999993 15053.00300 2020-01-01 2020-01-02 2020-01-01 00:11:16 2020-01-02 03:39:37 2020-01-01 00:11:16.000 2020-01-02 03:39:37.000 676 99577 50126.5 5012650 676 99577 50126.5 5012650 -32494 32644 4906.66 490666 -125 126 1.7 170 +667 100 10657 99568 2.003 299.003 150.503 15050.3003 2.003 299.003 150.503 15050.30029 2.00300 299.00300 150.503 15050.30000 2020-01-01 2020-01-02 2020-01-01 00:11:07 2020-01-02 03:39:28 2020-01-01 00:11:07.000 2020-01-02 03:39:28.000 667 99568 50117.5 5011750 667 99568 50117.5 5011750 -32503 32635 4897.66 489766 -128 123 -2.18 -218 +668 100 10658 99569 2.006 299.006 150.506 15050.6006 2.006 299.006 150.506 15050.60089 2.00600 299.00600 150.506 15050.60000 2020-01-01 2020-01-02 2020-01-01 00:11:08 2020-01-02 03:39:29 2020-01-01 00:11:08.000 2020-01-02 03:39:29.000 668 99569 50118.5 5011850 668 99569 50118.5 5011850 -32502 32636 4898.66 489866 -127 124 -1.18 -118 +669 100 10659 99570 2.009 299.009 150.509 15050.9009 2.009 299.009 150.509 15050.90057 2.00900 299.00900 150.509 15050.90000 2020-01-01 2020-01-02 2020-01-01 00:11:09 2020-01-02 03:39:30 2020-01-01 00:11:09.000 2020-01-02 03:39:30.000 669 99570 50119.5 5011950 669 99570 50119.5 5011950 -32501 32637 4899.66 489966 -126 125 -0.18 -18 +67 102 10057 99967 0.2012 300.2012 150.2012 15170.32132 0.2012 300.2012 150.2012 15170.32142 0.20120 300.20120 150.2012 15170.32120 2020-01-01 2020-01-02 2020-01-01 00:01:07 2020-01-02 03:46:07 2020-01-01 00:01:07.000 2020-01-02 03:46:07.000 67 99967 50017 5051717 67 99967 50017 5051717 -32502 32433 4596.009900990099 464197 -128 127 -1.8514851485148516 -187 +670 100 10660 99571 2.01201 299.01201 150.51201 15051.2012 2.01201 299.01202 150.51201 15051.20117 2.01201 299.01201 150.51201 15051.20100 2020-01-01 2020-01-02 2020-01-01 00:11:10 2020-01-02 03:39:31 2020-01-01 00:11:10.000 2020-01-02 03:39:31.000 670 99571 50120.5 5012050 670 99571 50120.5 5012050 -32500 32638 4900.66 490066 -125 126 0.82 82 +671 100 10661 99572 2.01501 299.01501 150.51501 15051.5015 2.01501 299.015 150.51501 15051.50146 2.01501 299.01501 150.51501 15051.50100 2020-01-01 2020-01-02 2020-01-01 00:11:11 2020-01-02 03:39:32 2020-01-01 00:11:11.000 2020-01-02 03:39:32.000 671 99572 50121.5 5012150 671 99572 50121.5 5012150 -32499 32639 4901.66 490166 -124 127 1.82 182 +672 100 10662 99573 2.01801 299.01801 150.51801 15051.8018 2.01801 299.018 150.51801 15051.80176 2.01801 299.01801 150.51801 15051.80100 2020-01-01 2020-01-02 2020-01-01 00:11:12 2020-01-02 03:39:33 2020-01-01 00:11:12.000 2020-01-02 03:39:33.000 672 99573 50122.5 5012250 672 99573 50122.5 5012250 -32498 32640 4902.66 490266 -128 127 0.26 26 +673 100 10663 99574 2.02102 299.02102 150.52102 15052.1021 2.02102 299.02103 150.52102 15052.1024 2.02102 299.02102 150.52102000000002 15052.10200 2020-01-01 2020-01-02 2020-01-01 00:11:13 2020-01-02 03:39:34 2020-01-01 00:11:13.000 2020-01-02 03:39:34.000 673 99574 50123.5 5012350 673 99574 50123.5 5012350 -32497 32641 4903.66 490366 -128 123 -1.3 -130 +674 100 10664 99575 2.02402 299.02402 150.52402 15052.4024 2.02402 299.02402 150.52402 15052.40204 2.02402 299.02402 150.52402 15052.40200 2020-01-01 2020-01-02 2020-01-01 00:11:14 2020-01-02 03:39:35 2020-01-01 00:11:14.000 2020-01-02 03:39:35.000 674 99575 50124.5 5012450 674 99575 50124.5 5012450 -32496 32642 4904.66 490466 -127 124 -0.3 -30 +675 100 10665 99576 2.02702 299.02702 150.52702 15052.7027 2.02702 299.02704 150.52702 15052.70264 2.02702 299.02702 150.52702 15052.70200 2020-01-01 2020-01-02 2020-01-01 00:11:15 2020-01-02 03:39:36 2020-01-01 00:11:15.000 2020-01-02 03:39:36.000 675 99576 50125.5 5012550 675 99576 50125.5 5012550 -32495 32643 4905.66 490566 -126 125 0.7 70 +676 100 10666 99577 2.03003 299.03003 150.53003 15053.003 2.03003 299.03003 150.53002 15053.00293 2.03003 299.03003 150.53003 15053.00300 2020-01-01 2020-01-02 2020-01-01 00:11:16 2020-01-02 03:39:37 2020-01-01 00:11:16.000 2020-01-02 03:39:37.000 676 99577 50126.5 5012650 676 99577 50126.5 5012650 -32494 32644 4906.66 490666 -125 126 1.7 170 677 100 10667 99578 2.03303 299.03303 150.53303 15053.3033 2.03303 299.03302 150.53303 15053.30323 2.03303 299.03303 150.53303 15053.30300 2020-01-01 2020-01-02 2020-01-01 00:11:17 2020-01-02 03:39:38 2020-01-01 00:11:17.000 2020-01-02 03:39:38.000 677 99578 50127.5 5012750 677 99578 50127.5 5012750 -32493 32645 4907.66 490766 -124 127 2.7 270 -678 100 10668 99579 2.03603 299.03603 150.53603 15053.6036 2.03603 299.03604 150.53603 15053.60387 2.03603 299.03603 150.5360299999999 15053.60300 2020-01-01 2020-01-02 2020-01-01 00:11:18 2020-01-02 03:39:39 2020-01-01 00:11:18.000 2020-01-02 03:39:39.000 678 99579 50128.5 5012850 678 99579 50128.5 5012850 -32492 32646 4908.66 490866 -128 127 1.14 114 -679 100 10669 99580 2.03903 299.03903 150.53903 15053.9039 2.03903 299.03903 150.53903 15053.90351 2.03903 299.03903 150.53902999999994 15053.90300 2020-01-01 2020-01-02 2020-01-01 00:11:19 2020-01-02 03:39:40 2020-01-01 00:11:19.000 2020-01-02 03:39:40.000 679 99580 50129.5 5012950 679 99580 50129.5 5012950 -32491 32647 4909.66 490966 -128 123 -0.42 -42 -68 102 10058 99968 0.2042 300.2042 150.2042 15170.62462 0.2042 300.2042 150.2042 15170.62457 0.20420 300.20420 150.2042000000001 15170.62420 2020-01-01 2020-01-02 2020-01-01 00:01:08 2020-01-02 03:46:08 2020-01-01 00:01:08.000 2020-01-02 03:46:08.000 68 99968 50018 5051818 68 99968 50018 5051818 -32501 32434 4597.009900990099 464298 -128 124 -3.386138613861386 -342 -680 100 10670 99581 2.04204 299.04204 150.54204 15054.2042 2.04204 299.04205 150.54204 15054.20426 2.04204 299.04204 150.54204000000016 15054.20400 2020-01-01 2020-01-02 2020-01-01 00:11:20 2020-01-02 03:39:41 2020-01-01 00:11:20.000 2020-01-02 03:39:41.000 680 99581 50130.5 5013050 680 99581 50130.5 5013050 -32490 32648 4910.66 491066 -127 124 0.58 58 -681 100 10671 99582 2.04504 299.04504 150.54504 15054.5045 2.04504 299.04504 150.54504 15054.5044 2.04504 299.04504 150.54504000000026 15054.50400 2020-01-01 2020-01-02 2020-01-01 00:11:21 2020-01-02 03:39:42 2020-01-01 00:11:21.000 2020-01-02 03:39:42.000 681 99582 50131.5 5013150 681 99582 50131.5 5013150 -32489 32649 4911.66 491166 -126 125 1.58 158 -682 100 10672 99583 2.04804 299.04804 150.54804 15054.8048 2.04804 299.04803 150.54804 15054.80474 2.04804 299.04804 150.5480399999998 15054.80400 2020-01-01 2020-01-02 2020-01-01 00:11:22 2020-01-02 03:39:43 2020-01-01 00:11:22.000 2020-01-02 03:39:43.000 682 99583 50132.5 5013250 682 99583 50132.5 5013250 -32488 32650 4912.66 491266 -125 126 2.58 258 +678 100 10668 99579 2.03603 299.03603 150.53603 15053.6036 2.03603 299.03604 150.53603 15053.60387 2.03603 299.03603 150.53602999999998 15053.60300 2020-01-01 2020-01-02 2020-01-01 00:11:18 2020-01-02 03:39:39 2020-01-01 00:11:18.000 2020-01-02 03:39:39.000 678 99579 50128.5 5012850 678 99579 50128.5 5012850 -32492 32646 4908.66 490866 -128 127 1.14 114 +679 100 10669 99580 2.03903 299.03903 150.53903 15053.9039 2.03903 299.03903 150.53903 15053.90351 2.03903 299.03903 150.53903 15053.90300 2020-01-01 2020-01-02 2020-01-01 00:11:19 2020-01-02 03:39:40 2020-01-01 00:11:19.000 2020-01-02 03:39:40.000 679 99580 50129.5 5012950 679 99580 50129.5 5012950 -32491 32647 4909.66 490966 -128 123 -0.42 -42 +68 102 10058 99968 0.2042 300.2042 150.2042 15170.62462 0.2042 300.2042 150.2042 15170.62457 0.20420 300.20420 150.20420000000001 15170.62420 2020-01-01 2020-01-02 2020-01-01 00:01:08 2020-01-02 03:46:08 2020-01-01 00:01:08.000 2020-01-02 03:46:08.000 68 99968 50018 5051818 68 99968 50018 5051818 -32501 32434 4597.009900990099 464298 -128 124 -3.386138613861386 -342 +680 100 10670 99581 2.04204 299.04204 150.54204 15054.2042 2.04204 299.04205 150.54204 15054.20426 2.04204 299.04204 150.54204 15054.20400 2020-01-01 2020-01-02 2020-01-01 00:11:20 2020-01-02 03:39:41 2020-01-01 00:11:20.000 2020-01-02 03:39:41.000 680 99581 50130.5 5013050 680 99581 50130.5 5013050 -32490 32648 4910.66 491066 -127 124 0.58 58 +681 100 10671 99582 2.04504 299.04504 150.54504 15054.5045 2.04504 299.04504 150.54504 15054.5044 2.04504 299.04504 150.54504 15054.50400 2020-01-01 2020-01-02 2020-01-01 00:11:21 2020-01-02 03:39:42 2020-01-01 00:11:21.000 2020-01-02 03:39:42.000 681 99582 50131.5 5013150 681 99582 50131.5 5013150 -32489 32649 4911.66 491166 -126 125 1.58 158 +682 100 10672 99583 2.04804 299.04804 150.54804 15054.8048 2.04804 299.04803 150.54804 15054.80474 2.04804 299.04804 150.54804000000001 15054.80400 2020-01-01 2020-01-02 2020-01-01 00:11:22 2020-01-02 03:39:43 2020-01-01 00:11:22.000 2020-01-02 03:39:43.000 682 99583 50132.5 5013250 682 99583 50132.5 5013250 -32488 32650 4912.66 491266 -125 126 2.58 258 683 100 10673 99584 2.05105 299.05105 150.55105 15055.1051 2.05105 299.05106 150.55105 15055.10533 2.05105 299.05105 150.55105 15055.10500 2020-01-01 2020-01-02 2020-01-01 00:11:23 2020-01-02 03:39:44 2020-01-01 00:11:23.000 2020-01-02 03:39:44.000 683 99584 50133.5 5013350 683 99584 50133.5 5013350 -32487 32651 4913.66 491366 -124 127 3.58 358 -684 100 10674 99585 2.05405 299.05405 150.55405 15055.4054 2.05405 299.05405 150.55404 15055.40498 2.05405 299.05405 150.55405000000013 15055.40500 2020-01-01 2020-01-02 2020-01-01 00:11:24 2020-01-02 03:39:45 2020-01-01 00:11:24.000 2020-01-02 03:39:45.000 684 99585 50134.5 5013450 684 99585 50134.5 5013450 -32486 32652 4914.66 491466 -128 127 2.02 202 -685 100 10675 99586 2.05705 299.05705 150.55705 15055.7057 2.05705 299.05707 150.55705 15055.70573 2.05705 299.05705 150.55704999999995 15055.70500 2020-01-01 2020-01-02 2020-01-01 00:11:25 2020-01-02 03:39:46 2020-01-01 00:11:25.000 2020-01-02 03:39:46.000 685 99586 50135.5 5013550 685 99586 50135.5 5013550 -32485 32653 4915.66 491566 -128 127 0.46 46 -686 100 10676 99587 2.06006 299.06006 150.56006 15056.006 2.06006 299.06006 150.56005 15056.00587 2.06006 299.06006 150.56005999999982 15056.00600 2020-01-01 2020-01-02 2020-01-01 00:11:26 2020-01-02 03:39:47 2020-01-01 00:11:26.000 2020-01-02 03:39:47.000 686 99587 50136.5 5013650 686 99587 50136.5 5013650 -32484 32654 4916.66 491666 -128 124 -1.1 -110 -687 100 10677 99588 2.06306 299.06306 150.56306 15056.3063 2.06306 299.06305 150.56306 15056.30621 2.06306 299.06306 150.5630600000003 15056.30600 2020-01-01 2020-01-02 2020-01-01 00:11:27 2020-01-02 03:39:48 2020-01-01 00:11:27.000 2020-01-02 03:39:48.000 687 99588 50137.5 5013750 687 99588 50137.5 5013750 -32483 32655 4917.66 491766 -127 125 -0.1 -10 -688 100 10678 99589 2.06606 299.06606 150.56606 15056.6066 2.06606 299.06607 150.56606 15056.60681 2.06606 299.06606 150.5660599999998 15056.60600 2020-01-01 2020-01-02 2020-01-01 00:11:28 2020-01-02 03:39:49 2020-01-01 00:11:28.000 2020-01-02 03:39:49.000 688 99589 50138.5 5013850 688 99589 50138.5 5013850 -32482 32656 4918.66 491866 -126 126 0.9 90 -689 100 10679 99590 2.06906 299.06906 150.56906 15056.9069 2.06906 299.06906 150.56907 15056.9071 2.06906 299.06906 150.56905999999984 15056.90600 2020-01-01 2020-01-02 2020-01-01 00:11:29 2020-01-02 03:39:50 2020-01-01 00:11:29.000 2020-01-02 03:39:50.000 689 99590 50139.5 5013950 689 99590 50139.5 5013950 -32481 32657 4919.66 491966 -125 127 1.9 190 -69 102 10059 99969 0.2072 300.2072 150.2072 15170.92792 0.2072 300.2072 150.20721 15170.92832 0.20720 300.20720 150.20720000000014 15170.92720 2020-01-01 2020-01-02 2020-01-01 00:01:09 2020-01-02 03:46:09 2020-01-01 00:01:09.000 2020-01-02 03:46:09.000 69 99969 50019 5051919 69 99969 50019 5051919 -32500 32435 4598.009900990099 464399 -127 125 -2.386138613861386 -241 -690 100 10680 99591 2.07207 299.07207 150.57207 15057.2072 2.07207 299.07208 150.57207 15057.2072 2.07207 299.07207 150.57207000000014 15057.20700 2020-01-01 2020-01-02 2020-01-01 00:11:30 2020-01-02 03:39:51 2020-01-01 00:11:30.000 2020-01-02 03:39:51.000 690 99591 50140.5 5014050 690 99591 50140.5 5014050 -32480 32658 4920.66 492066 -128 127 0.34 34 -691 100 10681 99592 2.07507 299.07507 150.57507 15057.5075 2.07507 299.07507 150.57507 15057.50734 2.07507 299.07507 150.57507000000018 15057.50700 2020-01-01 2020-01-02 2020-01-01 00:11:31 2020-01-02 03:39:52 2020-01-01 00:11:31.000 2020-01-02 03:39:52.000 691 99592 50141.5 5014150 691 99592 50141.5 5014150 -32479 32659 4921.66 492166 -128 127 -1.22 -122 -692 100 10682 99593 2.07807 299.07807 150.57807 15057.8078 2.07807 299.07806 150.57807 15057.80767 2.07807 299.07807 150.57806999999968 15057.80700 2020-01-01 2020-01-02 2020-01-01 00:11:32 2020-01-02 03:39:53 2020-01-01 00:11:32.000 2020-01-02 03:39:53.000 692 99593 50142.5 5014250 692 99593 50142.5 5014250 -32478 32660 4922.66 492266 -128 123 -2.78 -278 -693 100 10683 99594 2.08108 299.08108 150.58108 15058.1081 2.08108 299.0811 150.58108 15058.10827 2.08108 299.08108 150.58107999999996 15058.10800 2020-01-01 2020-01-02 2020-01-01 00:11:33 2020-01-02 03:39:54 2020-01-01 00:11:33.000 2020-01-02 03:39:54.000 693 99594 50143.5 5014350 693 99594 50143.5 5014350 -32477 32661 4923.66 492366 -127 124 -1.78 -178 -694 100 10684 99595 2.08408 299.08408 150.58408 15058.4084 2.08408 299.08408 150.58408 15058.40857 2.08408 299.08408 150.58407999999986 15058.40800 2020-01-01 2020-01-02 2020-01-01 00:11:34 2020-01-02 03:39:55 2020-01-01 00:11:34.000 2020-01-02 03:39:55.000 694 99595 50144.5 5014450 694 99595 50144.5 5014450 -32476 32662 4924.66 492466 -126 125 -0.78 -78 -695 100 10685 99596 2.08708 299.08708 150.58708 15058.7087 2.08708 299.0871 150.58708 15058.70867 2.08708 299.08708 150.58707999999996 15058.70800 2020-01-01 2020-01-02 2020-01-01 00:11:35 2020-01-02 03:39:56 2020-01-01 00:11:35.000 2020-01-02 03:39:56.000 695 99596 50145.5 5014550 695 99596 50145.5 5014550 -32475 32663 4925.66 492566 -125 126 0.22 22 -696 100 10686 99597 2.09009 299.09009 150.59009 15059.009 2.09009 299.0901 150.59008 15059.00885 2.09009 299.09009 150.59008999999992 15059.00900 2020-01-01 2020-01-02 2020-01-01 00:11:36 2020-01-02 03:39:57 2020-01-01 00:11:36.000 2020-01-02 03:39:57.000 696 99597 50146.5 5014650 696 99597 50146.5 5014650 -32474 32664 4926.66 492666 -124 127 1.22 122 -697 100 10687 99598 2.09309 299.09309 150.59309 15059.3093 2.09309 299.09308 150.59309 15059.30915 2.09309 299.09309 150.59309000000007 15059.30900 2020-01-01 2020-01-02 2020-01-01 00:11:37 2020-01-02 03:39:58 2020-01-01 00:11:37.000 2020-01-02 03:39:58.000 697 99598 50147.5 5014750 697 99598 50147.5 5014750 -32473 32665 4927.66 492766 -128 127 -0.34 -34 -698 100 10688 99599 2.09609 299.09609 150.59609 15059.6096 2.09609 299.0961 150.59609 15059.6099 2.09609 299.09609 150.59608999999992 15059.60900 2020-01-01 2020-01-02 2020-01-01 00:11:38 2020-01-02 03:39:59 2020-01-01 00:11:38.000 2020-01-02 03:39:59.000 698 99599 50148.5 5014850 698 99599 50148.5 5014850 -32472 32666 4928.66 492866 -128 123 -1.9 -190 -699 100 10689 99600 2.09909 299.09909 150.59909 15059.9099 2.09909 299.0991 150.5991 15059.91003 2.09909 299.09909 150.59908999999993 15059.90900 2020-01-01 2020-01-02 2020-01-01 00:11:39 2020-01-02 03:40:00 2020-01-01 00:11:39.000 2020-01-02 03:40:00.000 699 99600 50149.5 5014950 699 99600 50149.5 5014950 -32471 32667 4929.66 492966 -127 124 -0.9 -90 -7 102 1006 9997 0.02102 300.02102 150.02102 15152.12312 0.02102 300.02103 150.02102 15152.12342 0.02102 300.02102 150.02102000000005 15152.12302 2020-01-01 2020-01-02 2020-01-01 00:00:07 2020-01-02 03:45:07 2020-01-01 00:00:07.000 2020-01-02 03:45:07.000 7 99907 49957 5045657 7 99907 49957 5045657 -32562 32373 4536.009900990099 458137 -126 125 -1.0198019801980198 -103 +684 100 10674 99585 2.05405 299.05405 150.55405 15055.4054 2.05405 299.05405 150.55404 15055.40498 2.05405 299.05405 150.55405000000002 15055.40500 2020-01-01 2020-01-02 2020-01-01 00:11:24 2020-01-02 03:39:45 2020-01-01 00:11:24.000 2020-01-02 03:39:45.000 684 99585 50134.5 5013450 684 99585 50134.5 5013450 -32486 32652 4914.66 491466 -128 127 2.02 202 +685 100 10675 99586 2.05705 299.05705 150.55705 15055.7057 2.05705 299.05707 150.55705 15055.70573 2.05705 299.05705 150.55705 15055.70500 2020-01-01 2020-01-02 2020-01-01 00:11:25 2020-01-02 03:39:46 2020-01-01 00:11:25.000 2020-01-02 03:39:46.000 685 99586 50135.5 5013550 685 99586 50135.5 5013550 -32485 32653 4915.66 491566 -128 127 0.46 46 +686 100 10676 99587 2.06006 299.06006 150.56006 15056.006 2.06006 299.06006 150.56005 15056.00587 2.06006 299.06006 150.56006 15056.00600 2020-01-01 2020-01-02 2020-01-01 00:11:26 2020-01-02 03:39:47 2020-01-01 00:11:26.000 2020-01-02 03:39:47.000 686 99587 50136.5 5013650 686 99587 50136.5 5013650 -32484 32654 4916.66 491666 -128 124 -1.1 -110 +687 100 10677 99588 2.06306 299.06306 150.56306 15056.3063 2.06306 299.06305 150.56306 15056.30621 2.06306 299.06306 150.56306 15056.30600 2020-01-01 2020-01-02 2020-01-01 00:11:27 2020-01-02 03:39:48 2020-01-01 00:11:27.000 2020-01-02 03:39:48.000 687 99588 50137.5 5013750 687 99588 50137.5 5013750 -32483 32655 4917.66 491766 -127 125 -0.1 -10 +688 100 10678 99589 2.06606 299.06606 150.56606 15056.6066 2.06606 299.06607 150.56606 15056.60681 2.06606 299.06606 150.56606 15056.60600 2020-01-01 2020-01-02 2020-01-01 00:11:28 2020-01-02 03:39:49 2020-01-01 00:11:28.000 2020-01-02 03:39:49.000 688 99589 50138.5 5013850 688 99589 50138.5 5013850 -32482 32656 4918.66 491866 -126 126 0.9 90 +689 100 10679 99590 2.06906 299.06906 150.56906 15056.9069 2.06906 299.06906 150.56907 15056.9071 2.06906 299.06906 150.56906 15056.90600 2020-01-01 2020-01-02 2020-01-01 00:11:29 2020-01-02 03:39:50 2020-01-01 00:11:29.000 2020-01-02 03:39:50.000 689 99590 50139.5 5013950 689 99590 50139.5 5013950 -32481 32657 4919.66 491966 -125 127 1.9 190 +69 102 10059 99969 0.2072 300.2072 150.2072 15170.92792 0.2072 300.2072 150.20721 15170.92832 0.20720 300.20720 150.2072 15170.92720 2020-01-01 2020-01-02 2020-01-01 00:01:09 2020-01-02 03:46:09 2020-01-01 00:01:09.000 2020-01-02 03:46:09.000 69 99969 50019 5051919 69 99969 50019 5051919 -32500 32435 4598.009900990099 464399 -127 125 -2.386138613861386 -241 +690 100 10680 99591 2.07207 299.07207 150.57207 15057.2072 2.07207 299.07208 150.57207 15057.2072 2.07207 299.07207 150.57207 15057.20700 2020-01-01 2020-01-02 2020-01-01 00:11:30 2020-01-02 03:39:51 2020-01-01 00:11:30.000 2020-01-02 03:39:51.000 690 99591 50140.5 5014050 690 99591 50140.5 5014050 -32480 32658 4920.66 492066 -128 127 0.34 34 +691 100 10681 99592 2.07507 299.07507 150.57507 15057.5075 2.07507 299.07507 150.57507 15057.50734 2.07507 299.07507 150.57506999999998 15057.50700 2020-01-01 2020-01-02 2020-01-01 00:11:31 2020-01-02 03:39:52 2020-01-01 00:11:31.000 2020-01-02 03:39:52.000 691 99592 50141.5 5014150 691 99592 50141.5 5014150 -32479 32659 4921.66 492166 -128 127 -1.22 -122 +692 100 10682 99593 2.07807 299.07807 150.57807 15057.8078 2.07807 299.07806 150.57807 15057.80767 2.07807 299.07807 150.57807 15057.80700 2020-01-01 2020-01-02 2020-01-01 00:11:32 2020-01-02 03:39:53 2020-01-01 00:11:32.000 2020-01-02 03:39:53.000 692 99593 50142.5 5014250 692 99593 50142.5 5014250 -32478 32660 4922.66 492266 -128 123 -2.78 -278 +693 100 10683 99594 2.08108 299.08108 150.58108 15058.1081 2.08108 299.0811 150.58108 15058.10827 2.08108 299.08108 150.58108000000001 15058.10800 2020-01-01 2020-01-02 2020-01-01 00:11:33 2020-01-02 03:39:54 2020-01-01 00:11:33.000 2020-01-02 03:39:54.000 693 99594 50143.5 5014350 693 99594 50143.5 5014350 -32477 32661 4923.66 492366 -127 124 -1.78 -178 +694 100 10684 99595 2.08408 299.08408 150.58408 15058.4084 2.08408 299.08408 150.58408 15058.40857 2.08408 299.08408 150.58408 15058.40800 2020-01-01 2020-01-02 2020-01-01 00:11:34 2020-01-02 03:39:55 2020-01-01 00:11:34.000 2020-01-02 03:39:55.000 694 99595 50144.5 5014450 694 99595 50144.5 5014450 -32476 32662 4924.66 492466 -126 125 -0.78 -78 +695 100 10685 99596 2.08708 299.08708 150.58708 15058.7087 2.08708 299.0871 150.58708 15058.70867 2.08708 299.08708 150.58708000000001 15058.70800 2020-01-01 2020-01-02 2020-01-01 00:11:35 2020-01-02 03:39:56 2020-01-01 00:11:35.000 2020-01-02 03:39:56.000 695 99596 50145.5 5014550 695 99596 50145.5 5014550 -32475 32663 4925.66 492566 -125 126 0.22 22 +696 100 10686 99597 2.09009 299.09009 150.59009 15059.009 2.09009 299.0901 150.59008 15059.00885 2.09009 299.09009 150.59009 15059.00900 2020-01-01 2020-01-02 2020-01-01 00:11:36 2020-01-02 03:39:57 2020-01-01 00:11:36.000 2020-01-02 03:39:57.000 696 99597 50146.5 5014650 696 99597 50146.5 5014650 -32474 32664 4926.66 492666 -124 127 1.22 122 +697 100 10687 99598 2.09309 299.09309 150.59309 15059.3093 2.09309 299.09308 150.59309 15059.30915 2.09309 299.09309 150.59309 15059.30900 2020-01-01 2020-01-02 2020-01-01 00:11:37 2020-01-02 03:39:58 2020-01-01 00:11:37.000 2020-01-02 03:39:58.000 697 99598 50147.5 5014750 697 99598 50147.5 5014750 -32473 32665 4927.66 492766 -128 127 -0.34 -34 +698 100 10688 99599 2.09609 299.09609 150.59609 15059.6096 2.09609 299.0961 150.59609 15059.6099 2.09609 299.09609 150.59609 15059.60900 2020-01-01 2020-01-02 2020-01-01 00:11:38 2020-01-02 03:39:59 2020-01-01 00:11:38.000 2020-01-02 03:39:59.000 698 99599 50148.5 5014850 698 99599 50148.5 5014850 -32472 32666 4928.66 492866 -128 123 -1.9 -190 +699 100 10689 99600 2.09909 299.09909 150.59909 15059.9099 2.09909 299.0991 150.5991 15059.91003 2.09909 299.09909 150.59909 15059.90900 2020-01-01 2020-01-02 2020-01-01 00:11:39 2020-01-02 03:40:00 2020-01-01 00:11:39.000 2020-01-02 03:40:00.000 699 99600 50149.5 5014950 699 99600 50149.5 5014950 -32471 32667 4929.66 492966 -127 124 -0.9 -90 +7 102 1006 9997 0.02102 300.02102 150.02102 15152.12312 0.02102 300.02103 150.02102 15152.12342 0.02102 300.02102 150.02102000000002 15152.12302 2020-01-01 2020-01-02 2020-01-01 00:00:07 2020-01-02 03:45:07 2020-01-01 00:00:07.000 2020-01-02 03:45:07.000 7 99907 49957 5045657 7 99907 49957 5045657 -32562 32373 4536.009900990099 458137 -126 125 -1.0198019801980198 -103 70 102 10060 99970 0.21021 300.21021 150.21021 15171.23123 0.21021 300.2102 150.2102 15171.23097 0.21021 300.21021 150.21021 15171.23121 2020-01-01 2020-01-02 2020-01-01 00:01:10 2020-01-02 03:46:10 2020-01-01 00:01:10.000 2020-01-02 03:46:10.000 70 99970 50020 5052020 70 99970 50020 5052020 -32499 32436 4599.009900990099 464500 -126 126 -1.386138613861386 -140 -700 100 10690 99601 2.1021 299.1021 150.6021 15060.21021 2.1021 299.1021 150.6021 15060.21014 2.10210 299.10210 150.60210000000004 15060.21000 2020-01-01 2020-01-02 2020-01-01 00:11:40 2020-01-02 03:40:01 2020-01-01 00:11:40.000 2020-01-02 03:40:01.000 700 99601 50150.5 5015050 700 99601 50150.5 5015050 -32470 32668 4930.66 493066 -126 125 0.1 10 +700 100 10690 99601 2.1021 299.1021 150.6021 15060.21021 2.1021 299.1021 150.6021 15060.21014 2.10210 299.10210 150.60209999999998 15060.21000 2020-01-01 2020-01-02 2020-01-01 00:11:40 2020-01-02 03:40:01 2020-01-01 00:11:40.000 2020-01-02 03:40:01.000 700 99601 50150.5 5015050 700 99601 50150.5 5015050 -32470 32668 4930.66 493066 -126 125 0.1 10 701 100 10691 99602 2.1051 299.1051 150.6051 15060.51051 2.1051 299.1051 150.6051 15060.51031 2.10510 299.10510 150.6051 15060.51000 2020-01-01 2020-01-02 2020-01-01 00:11:41 2020-01-02 03:40:02 2020-01-01 00:11:41.000 2020-01-02 03:40:02.000 701 99602 50151.5 5015150 701 99602 50151.5 5015150 -32469 32669 4931.66 493166 -125 126 1.1 110 702 100 10692 99603 2.1081 299.1081 150.6081 15060.81081 2.1081 299.1081 150.6081 15060.81062 2.10810 299.10810 150.6081 15060.81000 2020-01-01 2020-01-02 2020-01-01 00:11:42 2020-01-02 03:40:03 2020-01-01 00:11:42.000 2020-01-02 03:40:03.000 702 99603 50152.5 5015250 702 99603 50152.5 5015250 -32468 32670 4932.66 493266 -124 127 2.1 210 -703 100 10693 99604 2.11111 299.11111 150.61111 15061.11111 2.11111 299.1111 150.61111 15061.11137 2.11111 299.11111 150.6111099999999 15061.11100 2020-01-01 2020-01-02 2020-01-01 00:11:43 2020-01-02 03:40:04 2020-01-01 00:11:43.000 2020-01-02 03:40:04.000 703 99604 50153.5 5015350 703 99604 50153.5 5015350 -32467 32671 4933.66 493366 -128 127 0.54 54 -704 100 10694 99605 2.11411 299.11411 150.61411 15061.41141 2.11411 299.1141 150.61411 15061.41151 2.11411 299.11411 150.61411000000015 15061.41100 2020-01-01 2020-01-02 2020-01-01 00:11:44 2020-01-02 03:40:05 2020-01-01 00:11:44.000 2020-01-02 03:40:05.000 704 99605 50154.5 5015450 704 99605 50154.5 5015450 -32466 32672 4934.66 493466 -128 123 -1.02 -102 -705 100 10695 99606 2.11711 299.11711 150.61711 15061.71171 2.11711 299.11713 150.61711 15061.71165 2.11711 299.11711 150.61710999999997 15061.71100 2020-01-01 2020-01-02 2020-01-01 00:11:45 2020-01-02 03:40:06 2020-01-01 00:11:45.000 2020-01-02 03:40:06.000 705 99606 50155.5 5015550 705 99606 50155.5 5015550 -32465 32673 4935.66 493566 -127 124 -0.02 -2 -706 100 10696 99607 2.12012 299.12012 150.62012 15062.01201 2.12012 299.12012 150.62011 15062.01179 2.12012 299.12012 150.62011999999987 15062.01200 2020-01-01 2020-01-02 2020-01-01 00:11:46 2020-01-02 03:40:07 2020-01-01 00:11:46.000 2020-01-02 03:40:07.000 706 99607 50156.5 5015650 706 99607 50156.5 5015650 -32464 32674 4936.66 493666 -126 125 0.98 98 -707 100 10697 99608 2.12312 299.12312 150.62312 15062.31231 2.12312 299.1231 150.62312 15062.31208 2.12312 299.12312 150.62312000000009 15062.31200 2020-01-01 2020-01-02 2020-01-01 00:11:47 2020-01-02 03:40:08 2020-01-01 00:11:47.000 2020-01-02 03:40:08.000 707 99608 50157.5 5015750 707 99608 50157.5 5015750 -32463 32675 4937.66 493766 -125 126 1.98 198 -708 100 10698 99609 2.12612 299.12612 150.62612 15062.61261 2.12612 299.12613 150.62612 15062.61283 2.12612 299.12612 150.62612000000004 15062.61200 2020-01-01 2020-01-02 2020-01-01 00:11:48 2020-01-02 03:40:09 2020-01-01 00:11:48.000 2020-01-02 03:40:09.000 708 99609 50158.5 5015850 708 99609 50158.5 5015850 -32462 32676 4938.66 493866 -124 127 2.98 298 -709 100 10699 99610 2.12912 299.12912 150.62912 15062.91291 2.12912 299.12912 150.62912 15062.91298 2.12912 299.12912 150.6291199999999 15062.91200 2020-01-01 2020-01-02 2020-01-01 00:11:49 2020-01-02 03:40:10 2020-01-01 00:11:49.000 2020-01-02 03:40:10.000 709 99610 50159.5 5015950 709 99610 50159.5 5015950 -32461 32677 4939.66 493966 -128 127 1.42 142 -71 102 10061 99971 0.21321 300.21321 150.21321 15171.53453 0.21321 300.21323 150.21321 15171.5346 0.21321 300.21321 150.21320999999992 15171.53421 2020-01-01 2020-01-02 2020-01-01 00:01:11 2020-01-02 03:46:11 2020-01-01 00:01:11.000 2020-01-02 03:46:11.000 71 99971 50021 5052121 71 99971 50021 5052121 -32498 32437 4600.009900990099 464601 -125 127 -0.38613861386138615 -39 +703 100 10693 99604 2.11111 299.11111 150.61111 15061.11111 2.11111 299.1111 150.61111 15061.11137 2.11111 299.11111 150.61111 15061.11100 2020-01-01 2020-01-02 2020-01-01 00:11:43 2020-01-02 03:40:04 2020-01-01 00:11:43.000 2020-01-02 03:40:04.000 703 99604 50153.5 5015350 703 99604 50153.5 5015350 -32467 32671 4933.66 493366 -128 127 0.54 54 +704 100 10694 99605 2.11411 299.11411 150.61411 15061.41141 2.11411 299.1141 150.61411 15061.41151 2.11411 299.11411 150.61411 15061.41100 2020-01-01 2020-01-02 2020-01-01 00:11:44 2020-01-02 03:40:05 2020-01-01 00:11:44.000 2020-01-02 03:40:05.000 704 99605 50154.5 5015450 704 99605 50154.5 5015450 -32466 32672 4934.66 493466 -128 123 -1.02 -102 +705 100 10695 99606 2.11711 299.11711 150.61711 15061.71171 2.11711 299.11713 150.61711 15061.71165 2.11711 299.11711 150.61711 15061.71100 2020-01-01 2020-01-02 2020-01-01 00:11:45 2020-01-02 03:40:06 2020-01-01 00:11:45.000 2020-01-02 03:40:06.000 705 99606 50155.5 5015550 705 99606 50155.5 5015550 -32465 32673 4935.66 493566 -127 124 -0.02 -2 +706 100 10696 99607 2.12012 299.12012 150.62012 15062.01201 2.12012 299.12012 150.62011 15062.01179 2.12012 299.12012 150.62012000000001 15062.01200 2020-01-01 2020-01-02 2020-01-01 00:11:46 2020-01-02 03:40:07 2020-01-01 00:11:46.000 2020-01-02 03:40:07.000 706 99607 50156.5 5015650 706 99607 50156.5 5015650 -32464 32674 4936.66 493666 -126 125 0.98 98 +707 100 10697 99608 2.12312 299.12312 150.62312 15062.31231 2.12312 299.1231 150.62312 15062.31208 2.12312 299.12312 150.62312 15062.31200 2020-01-01 2020-01-02 2020-01-01 00:11:47 2020-01-02 03:40:08 2020-01-01 00:11:47.000 2020-01-02 03:40:08.000 707 99608 50157.5 5015750 707 99608 50157.5 5015750 -32463 32675 4937.66 493766 -125 126 1.98 198 +708 100 10698 99609 2.12612 299.12612 150.62612 15062.61261 2.12612 299.12613 150.62612 15062.61283 2.12612 299.12612 150.62612 15062.61200 2020-01-01 2020-01-02 2020-01-01 00:11:48 2020-01-02 03:40:09 2020-01-01 00:11:48.000 2020-01-02 03:40:09.000 708 99609 50158.5 5015850 708 99609 50158.5 5015850 -32462 32676 4938.66 493866 -124 127 2.98 298 +709 100 10699 99610 2.12912 299.12912 150.62912 15062.91291 2.12912 299.12912 150.62912 15062.91298 2.12912 299.12912 150.62912 15062.91200 2020-01-01 2020-01-02 2020-01-01 00:11:49 2020-01-02 03:40:10 2020-01-01 00:11:49.000 2020-01-02 03:40:10.000 709 99610 50159.5 5015950 709 99610 50159.5 5015950 -32461 32677 4939.66 493966 -128 127 1.42 142 +71 102 10061 99971 0.21321 300.21321 150.21321 15171.53453 0.21321 300.21323 150.21321 15171.5346 0.21321 300.21321 150.21321 15171.53421 2020-01-01 2020-01-02 2020-01-01 00:01:11 2020-01-02 03:46:11 2020-01-01 00:01:11.000 2020-01-02 03:46:11.000 71 99971 50021 5052121 71 99971 50021 5052121 -32498 32437 4600.009900990099 464601 -125 127 -0.38613861386138615 -39 710 100 10700 99611 2.13213 299.13213 150.63213 15063.21321 2.13213 299.13214 150.63213 15063.21311 2.13213 299.13213 150.63213 15063.21300 2020-01-01 2020-01-02 2020-01-01 00:11:50 2020-01-02 03:40:11 2020-01-01 00:11:50.000 2020-01-02 03:40:11.000 710 99611 50160.5 5016050 710 99611 50160.5 5016050 -32460 32678 4940.66 494066 -128 127 -0.14 -14 -711 100 10701 99612 2.13513 299.13513 150.63513 15063.51351 2.13513 299.13513 150.63513 15063.51325 2.13513 299.13513 150.63513000000003 15063.51300 2020-01-01 2020-01-02 2020-01-01 00:11:51 2020-01-02 03:40:12 2020-01-01 00:11:51.000 2020-01-02 03:40:12.000 711 99612 50161.5 5016150 711 99612 50161.5 5016150 -32459 32679 4941.66 494166 -128 124 -1.7 -170 -712 100 10702 99613 2.13813 299.13813 150.63813 15063.81381 2.13813 299.13815 150.63814 15063.81401 2.13813 299.13813 150.63812999999993 15063.81300 2020-01-01 2020-01-02 2020-01-01 00:11:52 2020-01-02 03:40:13 2020-01-01 00:11:52.000 2020-01-02 03:40:13.000 712 99613 50162.5 5016250 712 99613 50162.5 5016250 -32458 32680 4942.66 494266 -127 125 -0.7 -70 -713 100 10703 99614 2.14114 299.14114 150.64114 15064.11411 2.14114 299.14114 150.64114 15064.11431 2.14114 299.14114 150.64113999999995 15064.11400 2020-01-01 2020-01-02 2020-01-01 00:11:53 2020-01-02 03:40:14 2020-01-01 00:11:53.000 2020-01-02 03:40:14.000 713 99614 50163.5 5016350 713 99614 50163.5 5016350 -32457 32681 4943.66 494366 -126 126 0.3 30 -714 100 10704 99615 2.14414 299.14414 150.64414 15064.41441 2.14414 299.14413 150.64414 15064.41448 2.14414 299.14414 150.64414000000005 15064.41400 2020-01-01 2020-01-02 2020-01-01 00:11:54 2020-01-02 03:40:15 2020-01-01 00:11:54.000 2020-01-02 03:40:15.000 714 99615 50164.5 5016450 714 99615 50164.5 5016450 -32456 32682 4944.66 494466 -125 127 1.3 130 -715 100 10705 99616 2.14714 299.14714 150.64714 15064.71471 2.14714 299.14716 150.64714 15064.71458 2.14714 299.14714 150.64713999999992 15064.71400 2020-01-01 2020-01-02 2020-01-01 00:11:55 2020-01-02 03:40:16 2020-01-01 00:11:55.000 2020-01-02 03:40:16.000 715 99616 50165.5 5016550 715 99616 50165.5 5016550 -32455 32683 4945.66 494566 -128 127 -0.26 -26 +711 100 10701 99612 2.13513 299.13513 150.63513 15063.51351 2.13513 299.13513 150.63513 15063.51325 2.13513 299.13513 150.63513 15063.51300 2020-01-01 2020-01-02 2020-01-01 00:11:51 2020-01-02 03:40:12 2020-01-01 00:11:51.000 2020-01-02 03:40:12.000 711 99612 50161.5 5016150 711 99612 50161.5 5016150 -32459 32679 4941.66 494166 -128 124 -1.7 -170 +712 100 10702 99613 2.13813 299.13813 150.63813 15063.81381 2.13813 299.13815 150.63814 15063.81401 2.13813 299.13813 150.63813 15063.81300 2020-01-01 2020-01-02 2020-01-01 00:11:52 2020-01-02 03:40:13 2020-01-01 00:11:52.000 2020-01-02 03:40:13.000 712 99613 50162.5 5016250 712 99613 50162.5 5016250 -32458 32680 4942.66 494266 -127 125 -0.7 -70 +713 100 10703 99614 2.14114 299.14114 150.64114 15064.11411 2.14114 299.14114 150.64114 15064.11431 2.14114 299.14114 150.64114 15064.11400 2020-01-01 2020-01-02 2020-01-01 00:11:53 2020-01-02 03:40:14 2020-01-01 00:11:53.000 2020-01-02 03:40:14.000 713 99614 50163.5 5016350 713 99614 50163.5 5016350 -32457 32681 4943.66 494366 -126 126 0.3 30 +714 100 10704 99615 2.14414 299.14414 150.64414 15064.41441 2.14414 299.14413 150.64414 15064.41448 2.14414 299.14414 150.64414 15064.41400 2020-01-01 2020-01-02 2020-01-01 00:11:54 2020-01-02 03:40:15 2020-01-01 00:11:54.000 2020-01-02 03:40:15.000 714 99615 50164.5 5016450 714 99615 50164.5 5016450 -32456 32682 4944.66 494466 -125 127 1.3 130 +715 100 10705 99616 2.14714 299.14714 150.64714 15064.71471 2.14714 299.14716 150.64714 15064.71458 2.14714 299.14714 150.64714 15064.71400 2020-01-01 2020-01-02 2020-01-01 00:11:55 2020-01-02 03:40:16 2020-01-01 00:11:55.000 2020-01-02 03:40:16.000 715 99616 50165.5 5016550 715 99616 50165.5 5016550 -32455 32683 4945.66 494566 -128 127 -0.26 -26 716 100 10706 99617 2.15015 299.15015 150.65015 15065.01501 2.15015 299.15015 150.65014 15065.01472 2.15015 299.15015 150.65015 15065.01500 2020-01-01 2020-01-02 2020-01-01 00:11:56 2020-01-02 03:40:17 2020-01-01 00:11:56.000 2020-01-02 03:40:17.000 716 99617 50166.5 5016650 716 99617 50166.5 5016650 -32454 32684 4946.66 494666 -128 127 -1.82 -182 -717 100 10707 99618 2.15315 299.15315 150.65315 15065.31531 2.15315 299.15317 150.65315 15065.31547 2.15315 299.15315 150.65315000000007 15065.31500 2020-01-01 2020-01-02 2020-01-01 00:11:57 2020-01-02 03:40:18 2020-01-01 00:11:57.000 2020-01-02 03:40:18.000 717 99618 50167.5 5016750 717 99618 50167.5 5016750 -32453 32685 4947.66 494766 -128 123 -3.38 -338 -718 100 10708 99619 2.15615 299.15615 150.65615 15065.61561 2.15615 299.15616 150.65615 15065.61578 2.15615 299.15615 150.65615000000003 15065.61500 2020-01-01 2020-01-02 2020-01-01 00:11:58 2020-01-02 03:40:19 2020-01-01 00:11:58.000 2020-01-02 03:40:19.000 718 99619 50168.5 5016850 718 99619 50168.5 5016850 -32452 32686 4948.66 494866 -127 124 -2.38 -238 +717 100 10707 99618 2.15315 299.15315 150.65315 15065.31531 2.15315 299.15317 150.65315 15065.31547 2.15315 299.15315 150.65315 15065.31500 2020-01-01 2020-01-02 2020-01-01 00:11:57 2020-01-02 03:40:18 2020-01-01 00:11:57.000 2020-01-02 03:40:18.000 717 99618 50167.5 5016750 717 99618 50167.5 5016750 -32453 32685 4947.66 494766 -128 123 -3.38 -338 +718 100 10708 99619 2.15615 299.15615 150.65615 15065.61561 2.15615 299.15616 150.65615 15065.61578 2.15615 299.15615 150.65615 15065.61500 2020-01-01 2020-01-02 2020-01-01 00:11:58 2020-01-02 03:40:19 2020-01-01 00:11:58.000 2020-01-02 03:40:19.000 718 99619 50168.5 5016850 718 99619 50168.5 5016850 -32452 32686 4948.66 494866 -127 124 -2.38 -238 719 100 10709 99620 2.15915 299.15915 150.65915 15065.91591 2.15915 299.15915 150.65915 15065.91595 2.15915 299.15915 150.65915 15065.91500 2020-01-01 2020-01-02 2020-01-01 00:11:59 2020-01-02 03:40:20 2020-01-01 00:11:59.000 2020-01-02 03:40:20.000 719 99620 50169.5 5016950 719 99620 50169.5 5016950 -32451 32687 4949.66 494966 -126 125 -1.38 -138 72 102 10062 99972 0.21621 300.21621 150.21621 15171.83783 0.21621 300.21622 150.21621 15171.83791 0.21621 300.21621 150.21621 15171.83721 2020-01-01 2020-01-02 2020-01-01 00:01:12 2020-01-02 03:46:12 2020-01-01 00:01:12.000 2020-01-02 03:46:12.000 72 99972 50022 5052222 72 99972 50022 5052222 -32497 32438 4601.009900990099 464702 -128 127 -1.9207920792079207 -194 -720 100 10710 99621 2.16216 299.16216 150.66216 15066.21621 2.16216 299.16217 150.66216 15066.21606 2.16216 299.16216 150.66215999999994 15066.21600 2020-01-01 2020-01-02 2020-01-01 00:12:00 2020-01-02 03:40:21 2020-01-01 00:12:00.000 2020-01-02 03:40:21.000 720 99621 50170.5 5017050 720 99621 50170.5 5017050 -32450 32688 4950.66 495066 -125 126 -0.38 -38 -721 100 10711 99622 2.16516 299.16516 150.66516 15066.51651 2.16516 299.16516 150.66516 15066.51635 2.16516 299.16516 150.66515999999996 15066.51600 2020-01-01 2020-01-02 2020-01-01 00:12:01 2020-01-02 03:40:22 2020-01-01 00:12:01.000 2020-01-02 03:40:22.000 721 99622 50171.5 5017150 721 99622 50171.5 5017150 -32449 32689 4951.66 495166 -124 127 0.62 62 -722 100 10712 99623 2.16816 299.16816 150.66816 15066.81681 2.16816 299.16818 150.66816 15066.81695 2.16816 299.16816 150.66815999999997 15066.81600 2020-01-01 2020-01-02 2020-01-01 00:12:02 2020-01-02 03:40:23 2020-01-01 00:12:02.000 2020-01-02 03:40:23.000 722 99623 50172.5 5017250 722 99623 50172.5 5017250 -32448 32690 4952.66 495266 -128 127 -0.94 -94 -723 100 10713 99624 2.17117 299.17117 150.67117 15067.11711 2.17117 299.17117 150.67117 15067.11724 2.17117 299.17117 150.6711699999999 15067.11700 2020-01-01 2020-01-02 2020-01-01 00:12:03 2020-01-02 03:40:24 2020-01-01 00:12:03.000 2020-01-02 03:40:24.000 723 99624 50173.5 5017350 723 99624 50173.5 5017350 -32447 32691 4953.66 495366 -128 123 -2.5 -250 -724 100 10714 99625 2.17417 299.17417 150.67417 15067.41741 2.17417 299.17416 150.67417 15067.41742 2.17417 299.17417 150.67417000000012 15067.41700 2020-01-01 2020-01-02 2020-01-01 00:12:04 2020-01-02 03:40:25 2020-01-01 00:12:04.000 2020-01-02 03:40:25.000 724 99625 50174.5 5017450 724 99625 50174.5 5017450 -32446 32692 4954.66 495466 -127 124 -1.5 -150 -725 100 10715 99626 2.17717 299.17717 150.67717 15067.71771 2.17717 299.1772 150.67717 15067.71752 2.17717 299.17717 150.67717000000007 15067.71700 2020-01-01 2020-01-02 2020-01-01 00:12:05 2020-01-02 03:40:26 2020-01-01 00:12:05.000 2020-01-02 03:40:26.000 725 99626 50175.5 5017550 725 99626 50175.5 5017550 -32445 32693 4955.66 495566 -126 125 -0.5 -50 -726 100 10716 99627 2.18018 299.18018 150.68018 15068.01801 2.18018 299.18018 150.68017 15068.01782 2.18018 299.18018 150.68017999999995 15068.01800 2020-01-01 2020-01-02 2020-01-01 00:12:06 2020-01-02 03:40:27 2020-01-01 00:12:06.000 2020-01-02 03:40:27.000 726 99627 50176.5 5017650 726 99627 50176.5 5017650 -32444 32694 4956.66 495666 -125 126 0.5 50 +720 100 10710 99621 2.16216 299.16216 150.66216 15066.21621 2.16216 299.16217 150.66216 15066.21606 2.16216 299.16216 150.66216 15066.21600 2020-01-01 2020-01-02 2020-01-01 00:12:00 2020-01-02 03:40:21 2020-01-01 00:12:00.000 2020-01-02 03:40:21.000 720 99621 50170.5 5017050 720 99621 50170.5 5017050 -32450 32688 4950.66 495066 -125 126 -0.38 -38 +721 100 10711 99622 2.16516 299.16516 150.66516 15066.51651 2.16516 299.16516 150.66516 15066.51635 2.16516 299.16516 150.66516 15066.51600 2020-01-01 2020-01-02 2020-01-01 00:12:01 2020-01-02 03:40:22 2020-01-01 00:12:01.000 2020-01-02 03:40:22.000 721 99622 50171.5 5017150 721 99622 50171.5 5017150 -32449 32689 4951.66 495166 -124 127 0.62 62 +722 100 10712 99623 2.16816 299.16816 150.66816 15066.81681 2.16816 299.16818 150.66816 15066.81695 2.16816 299.16816 150.66816 15066.81600 2020-01-01 2020-01-02 2020-01-01 00:12:02 2020-01-02 03:40:23 2020-01-01 00:12:02.000 2020-01-02 03:40:23.000 722 99623 50172.5 5017250 722 99623 50172.5 5017250 -32448 32690 4952.66 495266 -128 127 -0.94 -94 +723 100 10713 99624 2.17117 299.17117 150.67117 15067.11711 2.17117 299.17117 150.67117 15067.11724 2.17117 299.17117 150.67117 15067.11700 2020-01-01 2020-01-02 2020-01-01 00:12:03 2020-01-02 03:40:24 2020-01-01 00:12:03.000 2020-01-02 03:40:24.000 723 99624 50173.5 5017350 723 99624 50173.5 5017350 -32447 32691 4953.66 495366 -128 123 -2.5 -250 +724 100 10714 99625 2.17417 299.17417 150.67417 15067.41741 2.17417 299.17416 150.67417 15067.41742 2.17417 299.17417 150.67417 15067.41700 2020-01-01 2020-01-02 2020-01-01 00:12:04 2020-01-02 03:40:25 2020-01-01 00:12:04.000 2020-01-02 03:40:25.000 724 99625 50174.5 5017450 724 99625 50174.5 5017450 -32446 32692 4954.66 495466 -127 124 -1.5 -150 +725 100 10715 99626 2.17717 299.17717 150.67717 15067.71771 2.17717 299.1772 150.67717 15067.71752 2.17717 299.17717 150.67717000000002 15067.71700 2020-01-01 2020-01-02 2020-01-01 00:12:05 2020-01-02 03:40:26 2020-01-01 00:12:05.000 2020-01-02 03:40:26.000 725 99626 50175.5 5017550 725 99626 50175.5 5017550 -32445 32693 4955.66 495566 -126 125 -0.5 -50 +726 100 10716 99627 2.18018 299.18018 150.68018 15068.01801 2.18018 299.18018 150.68017 15068.01782 2.18018 299.18018 150.68018 15068.01800 2020-01-01 2020-01-02 2020-01-01 00:12:06 2020-01-02 03:40:27 2020-01-01 00:12:06.000 2020-01-02 03:40:27.000 726 99627 50176.5 5017650 726 99627 50176.5 5017650 -32444 32694 4956.66 495666 -125 126 0.5 50 727 100 10717 99628 2.18318 299.18318 150.68318 15068.31831 2.18318 299.1832 150.68318 15068.31842 2.18318 299.18318 150.68318 15068.31800 2020-01-01 2020-01-02 2020-01-01 00:12:07 2020-01-02 03:40:28 2020-01-01 00:12:07.000 2020-01-02 03:40:28.000 727 99628 50177.5 5017750 727 99628 50177.5 5017750 -32443 32695 4957.66 495766 -124 127 1.5 150 -728 100 10718 99629 2.18618 299.18618 150.68618 15068.61861 2.18618 299.1862 150.68618 15068.61875 2.18618 299.18618 150.68618000000004 15068.61800 2020-01-01 2020-01-02 2020-01-01 00:12:08 2020-01-02 03:40:29 2020-01-01 00:12:08.000 2020-01-02 03:40:29.000 728 99629 50178.5 5017850 728 99629 50178.5 5017850 -32442 32696 4958.66 495866 -128 127 -0.06 -6 -729 100 10719 99630 2.18918 299.18918 150.68918 15068.91891 2.18918 299.18918 150.68918 15068.91889 2.18918 299.18918 150.68917999999996 15068.91800 2020-01-01 2020-01-02 2020-01-01 00:12:09 2020-01-02 03:40:30 2020-01-01 00:12:09.000 2020-01-02 03:40:30.000 729 99630 50179.5 5017950 729 99630 50179.5 5017950 -32441 32697 4959.66 495966 -128 123 -1.62 -162 +728 100 10718 99629 2.18618 299.18618 150.68618 15068.61861 2.18618 299.1862 150.68618 15068.61875 2.18618 299.18618 150.68618 15068.61800 2020-01-01 2020-01-02 2020-01-01 00:12:08 2020-01-02 03:40:29 2020-01-01 00:12:08.000 2020-01-02 03:40:29.000 728 99629 50178.5 5017850 728 99629 50178.5 5017850 -32442 32696 4958.66 495866 -128 127 -0.06 -6 +729 100 10719 99630 2.18918 299.18918 150.68918 15068.91891 2.18918 299.18918 150.68918 15068.91889 2.18918 299.18918 150.68918 15068.91800 2020-01-01 2020-01-02 2020-01-01 00:12:09 2020-01-02 03:40:30 2020-01-01 00:12:09.000 2020-01-02 03:40:30.000 729 99630 50179.5 5017950 729 99630 50179.5 5017950 -32441 32697 4959.66 495966 -128 123 -1.62 -162 73 102 10063 99973 0.21921 300.21921 150.21921 15172.14114 0.21921 300.2192 150.21921 15172.14121 0.21921 300.21921 150.21921 15172.14021 2020-01-01 2020-01-02 2020-01-01 00:01:13 2020-01-02 03:46:13 2020-01-01 00:01:13.000 2020-01-02 03:46:13.000 73 99973 50023 5052323 73 99973 50023 5052323 -32496 32439 4602.009900990099 464803 -128 127 -3.4554455445544554 -349 -730 100 10720 99631 2.19219 299.19219 150.69219 15069.21921 2.19219 299.1922 150.69219 15069.21965 2.19219 299.19219 150.69218999999993 15069.21900 2020-01-01 2020-01-02 2020-01-01 00:12:10 2020-01-02 03:40:31 2020-01-01 00:12:10.000 2020-01-02 03:40:31.000 730 99631 50180.5 5018050 730 99631 50180.5 5018050 -32440 32698 4960.66 496066 -127 124 -0.62 -62 -731 100 10721 99632 2.19519 299.19519 150.69519 15069.51951 2.19519 299.1952 150.69519 15069.51928 2.19519 299.19519 150.69519000000008 15069.51900 2020-01-01 2020-01-02 2020-01-01 00:12:11 2020-01-02 03:40:32 2020-01-01 00:12:11.000 2020-01-02 03:40:32.000 731 99632 50181.5 5018150 731 99632 50181.5 5018150 -32439 32699 4961.66 496166 -126 125 0.38 38 -732 100 10722 99633 2.19819 299.19819 150.69819 15069.81981 2.19819 299.1982 150.69819 15069.81988 2.19819 299.19819 150.69818999999993 15069.81900 2020-01-01 2020-01-02 2020-01-01 00:12:12 2020-01-02 03:40:33 2020-01-01 00:12:12.000 2020-01-02 03:40:33.000 732 99633 50182.5 5018250 732 99633 50182.5 5018250 -32438 32700 4962.66 496266 -125 126 1.38 138 -733 100 10723 99634 2.2012 299.2012 150.7012 15070.12012 2.2012 299.2012 150.7012 15070.12022 2.20120 299.20120 150.70120000000003 15070.12000 2020-01-01 2020-01-02 2020-01-01 00:12:13 2020-01-02 03:40:34 2020-01-01 00:12:13.000 2020-01-02 03:40:34.000 733 99634 50183.5 5018350 733 99634 50183.5 5018350 -32437 32701 4963.66 496366 -124 127 2.38 238 -734 100 10724 99635 2.2042 299.2042 150.7042 15070.42042 2.2042 299.2042 150.7042 15070.42036 2.20420 299.20420 150.70420000000007 15070.42000 2020-01-01 2020-01-02 2020-01-01 00:12:14 2020-01-02 03:40:35 2020-01-01 00:12:14.000 2020-01-02 03:40:35.000 734 99635 50184.5 5018450 734 99635 50184.5 5018450 -32436 32702 4964.66 496466 -128 127 0.82 82 -735 100 10725 99636 2.2072 299.2072 150.7072 15070.72072 2.2072 299.2072 150.70721 15070.72111 2.20720 299.20720 150.70720000000003 15070.72000 2020-01-01 2020-01-02 2020-01-01 00:12:15 2020-01-02 03:40:36 2020-01-01 00:12:15.000 2020-01-02 03:40:36.000 735 99636 50185.5 5018550 735 99636 50185.5 5018550 -32435 32703 4965.66 496566 -128 127 -0.74 -74 -736 100 10726 99637 2.21021 299.21021 150.71021 15071.02102 2.21021 299.2102 150.7102 15071.02076 2.21021 299.21021 150.71021 15071.02100 2020-01-01 2020-01-02 2020-01-01 00:12:16 2020-01-02 03:40:37 2020-01-01 00:12:16.000 2020-01-02 03:40:37.000 736 99637 50186.5 5018650 736 99637 50186.5 5018650 -32434 32704 4966.66 496666 -128 124 -2.3 -230 -737 100 10727 99638 2.21321 299.21321 150.71321 15071.32132 2.21321 299.21323 150.71321 15071.32139 2.21321 299.21321 150.71320999999992 15071.32100 2020-01-01 2020-01-02 2020-01-01 00:12:17 2020-01-02 03:40:38 2020-01-01 00:12:17.000 2020-01-02 03:40:38.000 737 99638 50187.5 5018750 737 99638 50187.5 5018750 -32433 32705 4967.66 496766 -127 125 -1.3 -130 +730 100 10720 99631 2.19219 299.19219 150.69219 15069.21921 2.19219 299.1922 150.69219 15069.21965 2.19219 299.19219 150.69218999999998 15069.21900 2020-01-01 2020-01-02 2020-01-01 00:12:10 2020-01-02 03:40:31 2020-01-01 00:12:10.000 2020-01-02 03:40:31.000 730 99631 50180.5 5018050 730 99631 50180.5 5018050 -32440 32698 4960.66 496066 -127 124 -0.62 -62 +731 100 10721 99632 2.19519 299.19519 150.69519 15069.51951 2.19519 299.1952 150.69519 15069.51928 2.19519 299.19519 150.69519 15069.51900 2020-01-01 2020-01-02 2020-01-01 00:12:11 2020-01-02 03:40:32 2020-01-01 00:12:11.000 2020-01-02 03:40:32.000 731 99632 50181.5 5018150 731 99632 50181.5 5018150 -32439 32699 4961.66 496166 -126 125 0.38 38 +732 100 10722 99633 2.19819 299.19819 150.69819 15069.81981 2.19819 299.1982 150.69819 15069.81988 2.19819 299.19819 150.69818999999998 15069.81900 2020-01-01 2020-01-02 2020-01-01 00:12:12 2020-01-02 03:40:33 2020-01-01 00:12:12.000 2020-01-02 03:40:33.000 732 99633 50182.5 5018250 732 99633 50182.5 5018250 -32438 32700 4962.66 496266 -125 126 1.38 138 +733 100 10723 99634 2.2012 299.2012 150.7012 15070.12012 2.2012 299.2012 150.7012 15070.12022 2.20120 299.20120 150.7012 15070.12000 2020-01-01 2020-01-02 2020-01-01 00:12:13 2020-01-02 03:40:34 2020-01-01 00:12:13.000 2020-01-02 03:40:34.000 733 99634 50183.5 5018350 733 99634 50183.5 5018350 -32437 32701 4963.66 496366 -124 127 2.38 238 +734 100 10724 99635 2.2042 299.2042 150.7042 15070.42042 2.2042 299.2042 150.7042 15070.42036 2.20420 299.20420 150.70420000000001 15070.42000 2020-01-01 2020-01-02 2020-01-01 00:12:14 2020-01-02 03:40:35 2020-01-01 00:12:14.000 2020-01-02 03:40:35.000 734 99635 50184.5 5018450 734 99635 50184.5 5018450 -32436 32702 4964.66 496466 -128 127 0.82 82 +735 100 10725 99636 2.2072 299.2072 150.7072 15070.72072 2.2072 299.2072 150.70721 15070.72111 2.20720 299.20720 150.7072 15070.72000 2020-01-01 2020-01-02 2020-01-01 00:12:15 2020-01-02 03:40:36 2020-01-01 00:12:15.000 2020-01-02 03:40:36.000 735 99636 50185.5 5018550 735 99636 50185.5 5018550 -32435 32703 4965.66 496566 -128 127 -0.74 -74 +736 100 10726 99637 2.21021 299.21021 150.71021 15071.02102 2.21021 299.2102 150.7102 15071.02076 2.21021 299.21021 150.71021000000002 15071.02100 2020-01-01 2020-01-02 2020-01-01 00:12:16 2020-01-02 03:40:37 2020-01-01 00:12:16.000 2020-01-02 03:40:37.000 736 99637 50186.5 5018650 736 99637 50186.5 5018650 -32434 32704 4966.66 496666 -128 124 -2.3 -230 +737 100 10727 99638 2.21321 299.21321 150.71321 15071.32132 2.21321 299.21323 150.71321 15071.32139 2.21321 299.21321 150.71321 15071.32100 2020-01-01 2020-01-02 2020-01-01 00:12:17 2020-01-02 03:40:38 2020-01-01 00:12:17.000 2020-01-02 03:40:38.000 737 99638 50187.5 5018750 737 99638 50187.5 5018750 -32433 32705 4967.66 496766 -127 125 -1.3 -130 738 100 10728 99639 2.21621 299.21621 150.71621 15071.62162 2.21621 299.21622 150.71621 15071.62169 2.21621 299.21621 150.71621 15071.62100 2020-01-01 2020-01-02 2020-01-01 00:12:18 2020-01-02 03:40:39 2020-01-01 00:12:18.000 2020-01-02 03:40:39.000 738 99639 50188.5 5018850 738 99639 50188.5 5018850 -32432 32706 4968.66 496866 -126 126 -0.3 -30 -739 100 10729 99640 2.21921 299.21921 150.71921 15071.92192 2.21921 299.2192 150.71921 15071.92199 2.21921 299.21921 150.71920999999998 15071.92100 2020-01-01 2020-01-02 2020-01-01 00:12:19 2020-01-02 03:40:40 2020-01-01 00:12:19.000 2020-01-02 03:40:40.000 739 99640 50189.5 5018950 739 99640 50189.5 5018950 -32431 32707 4969.66 496966 -125 127 0.7 70 -74 102 10064 99974 0.22222 300.22222 150.22222 15172.44444 0.22222 300.22223 150.22222 15172.4448 0.22222 300.22222 150.22221999999994 15172.44422 2020-01-01 2020-01-02 2020-01-01 00:01:14 2020-01-02 03:46:14 2020-01-01 00:01:14.000 2020-01-02 03:46:14.000 74 99974 50024 5052424 74 99974 50024 5052424 -32495 32440 4603.009900990099 464904 -128 123 -4.99009900990099 -504 -740 100 10730 99641 2.22222 299.22222 150.72222 15072.22222 2.22222 299.22223 150.72222 15072.22258 2.22222 299.22222 150.72221999999994 15072.22200 2020-01-01 2020-01-02 2020-01-01 00:12:20 2020-01-02 03:40:41 2020-01-01 00:12:20.000 2020-01-02 03:40:41.000 740 99641 50190.5 5019050 740 99641 50190.5 5019050 -32430 32708 4970.66 497066 -128 127 -0.86 -86 -741 100 10731 99642 2.22522 299.22522 150.72522 15072.52252 2.22522 299.22522 150.72522 15072.52223 2.22522 299.22522 150.72522000000004 15072.52200 2020-01-01 2020-01-02 2020-01-01 00:12:21 2020-01-02 03:40:42 2020-01-01 00:12:21.000 2020-01-02 03:40:42.000 741 99642 50191.5 5019150 741 99642 50191.5 5019150 -32429 32709 4971.66 497166 -128 127 -2.42 -242 -742 100 10732 99643 2.22822 299.22822 150.72822 15072.82282 2.22822 299.22824 150.72822 15072.82286 2.22822 299.22822 150.72822000000008 15072.82200 2020-01-01 2020-01-02 2020-01-01 00:12:22 2020-01-02 03:40:43 2020-01-01 00:12:22.000 2020-01-02 03:40:43.000 742 99643 50192.5 5019250 742 99643 50192.5 5019250 -32428 32710 4972.66 497266 -128 123 -3.98 -398 +739 100 10729 99640 2.21921 299.21921 150.71921 15071.92192 2.21921 299.2192 150.71921 15071.92199 2.21921 299.21921 150.71921 15071.92100 2020-01-01 2020-01-02 2020-01-01 00:12:19 2020-01-02 03:40:40 2020-01-01 00:12:19.000 2020-01-02 03:40:40.000 739 99640 50189.5 5018950 739 99640 50189.5 5018950 -32431 32707 4969.66 496966 -125 127 0.7 70 +74 102 10064 99974 0.22222 300.22222 150.22222 15172.44444 0.22222 300.22223 150.22222 15172.4448 0.22222 300.22222 150.22222 15172.44422 2020-01-01 2020-01-02 2020-01-01 00:01:14 2020-01-02 03:46:14 2020-01-01 00:01:14.000 2020-01-02 03:46:14.000 74 99974 50024 5052424 74 99974 50024 5052424 -32495 32440 4603.009900990099 464904 -128 123 -4.99009900990099 -504 +740 100 10730 99641 2.22222 299.22222 150.72222 15072.22222 2.22222 299.22223 150.72222 15072.22258 2.22222 299.22222 150.72222 15072.22200 2020-01-01 2020-01-02 2020-01-01 00:12:20 2020-01-02 03:40:41 2020-01-01 00:12:20.000 2020-01-02 03:40:41.000 740 99641 50190.5 5019050 740 99641 50190.5 5019050 -32430 32708 4970.66 497066 -128 127 -0.86 -86 +741 100 10731 99642 2.22522 299.22522 150.72522 15072.52252 2.22522 299.22522 150.72522 15072.52223 2.22522 299.22522 150.72522 15072.52200 2020-01-01 2020-01-02 2020-01-01 00:12:21 2020-01-02 03:40:42 2020-01-01 00:12:21.000 2020-01-02 03:40:42.000 741 99642 50191.5 5019150 741 99642 50191.5 5019150 -32429 32709 4971.66 497166 -128 127 -2.42 -242 +742 100 10732 99643 2.22822 299.22822 150.72822 15072.82282 2.22822 299.22824 150.72822 15072.82286 2.22822 299.22822 150.72822 15072.82200 2020-01-01 2020-01-02 2020-01-01 00:12:22 2020-01-02 03:40:43 2020-01-01 00:12:22.000 2020-01-02 03:40:43.000 742 99643 50192.5 5019250 742 99643 50192.5 5019250 -32428 32710 4972.66 497266 -128 123 -3.98 -398 743 100 10733 99644 2.23123 299.23123 150.73123 15073.12312 2.23123 299.23123 150.73123 15073.12316 2.23123 299.23123 150.73122999999998 15073.12300 2020-01-01 2020-01-02 2020-01-01 00:12:23 2020-01-02 03:40:44 2020-01-01 00:12:23.000 2020-01-02 03:40:44.000 743 99644 50193.5 5019350 743 99644 50193.5 5019350 -32427 32711 4973.66 497366 -127 124 -2.98 -298 744 100 10734 99645 2.23423 299.23423 150.73423 15073.42342 2.23423 299.23422 150.73423 15073.42345 2.23423 299.23423 150.73423 15073.42300 2020-01-01 2020-01-02 2020-01-01 00:12:24 2020-01-02 03:40:45 2020-01-01 00:12:24.000 2020-01-02 03:40:45.000 744 99645 50194.5 5019450 744 99645 50194.5 5019450 -32426 32712 4974.66 497466 -126 125 -1.98 -198 -745 100 10735 99646 2.23723 299.23723 150.73723 15073.72372 2.23723 299.23724 150.73724 15073.72405 2.23723 299.23723 150.73723000000007 15073.72300 2020-01-01 2020-01-02 2020-01-01 00:12:25 2020-01-02 03:40:46 2020-01-01 00:12:25.000 2020-01-02 03:40:46.000 745 99646 50195.5 5019550 745 99646 50195.5 5019550 -32425 32713 4975.66 497566 -125 126 -0.98 -98 -746 100 10736 99647 2.24024 299.24024 150.74024 15074.02402 2.24024 299.24023 150.74023 15074.02373 2.24024 299.24024 150.74023999999994 15074.02400 2020-01-01 2020-01-02 2020-01-01 00:12:26 2020-01-02 03:40:47 2020-01-01 00:12:26.000 2020-01-02 03:40:47.000 746 99647 50196.5 5019650 746 99647 50196.5 5019650 -32424 32714 4976.66 497666 -124 127 0.02 2 -747 100 10737 99648 2.24324 299.24324 150.74324 15074.32432 2.24324 299.24326 150.74324 15074.32433 2.24324 299.24324 150.7432399999999 15074.32400 2020-01-01 2020-01-02 2020-01-01 00:12:27 2020-01-02 03:40:48 2020-01-01 00:12:27.000 2020-01-02 03:40:48.000 747 99648 50197.5 5019750 747 99648 50197.5 5019750 -32423 32715 4977.66 497766 -128 127 -1.54 -154 -748 100 10738 99649 2.24624 299.24624 150.74624 15074.62462 2.24624 299.24625 150.74624 15074.62463 2.24624 299.24624 150.7462400000001 15074.62400 2020-01-01 2020-01-02 2020-01-01 00:12:28 2020-01-02 03:40:49 2020-01-01 00:12:28.000 2020-01-02 03:40:49.000 748 99649 50198.5 5019850 748 99649 50198.5 5019850 -32422 32716 4978.66 497866 -128 123 -3.1 -310 -749 100 10739 99650 2.24924 299.24924 150.74924 15074.92492 2.24924 299.24924 150.74924 15074.92492 2.24924 299.24924 150.74923999999996 15074.92400 2020-01-01 2020-01-02 2020-01-01 00:12:29 2020-01-02 03:40:50 2020-01-01 00:12:29.000 2020-01-02 03:40:50.000 749 99650 50199.5 5019950 749 99650 50199.5 5019950 -32421 32717 4979.66 497966 -127 124 -2.1 -210 -75 102 10065 99975 0.22522 300.22522 150.22522 15172.74774 0.22522 300.22522 150.22522 15172.74745 0.22522 300.22522 150.22522000000004 15172.74722 2020-01-01 2020-01-02 2020-01-01 00:01:15 2020-01-02 03:46:15 2020-01-01 00:01:15.000 2020-01-02 03:46:15.000 75 99975 50025 5052525 75 99975 50025 5052525 -32494 32441 4604.009900990099 465005 -127 124 -3.99009900990099 -403 -750 100 10740 99651 2.25225 299.25225 150.75225 15075.22522 2.25225 299.25226 150.75225 15075.22552 2.25225 299.25225 150.75224999999983 15075.22500 2020-01-01 2020-01-02 2020-01-01 00:12:30 2020-01-02 03:40:51 2020-01-01 00:12:30.000 2020-01-02 03:40:51.000 750 99651 50200.5 5020050 750 99651 50200.5 5020050 -32420 32718 4980.66 498066 -126 125 -1.1 -110 -751 100 10741 99652 2.25525 299.25525 150.75525 15075.52552 2.25525 299.25525 150.75525 15075.5252 2.25525 299.25525 150.75525000000007 15075.52500 2020-01-01 2020-01-02 2020-01-01 00:12:31 2020-01-02 03:40:52 2020-01-01 00:12:31.000 2020-01-02 03:40:52.000 751 99652 50201.5 5020150 751 99652 50201.5 5020150 -32419 32719 4981.66 498166 -125 126 -0.1 -10 -752 100 10742 99653 2.25825 299.25825 150.75825 15075.82582 2.25825 299.25827 150.75825 15075.8258 2.25825 299.25825 150.75825000000003 15075.82500 2020-01-01 2020-01-02 2020-01-01 00:12:32 2020-01-02 03:40:53 2020-01-01 00:12:32.000 2020-01-02 03:40:53.000 752 99653 50202.5 5020250 752 99653 50202.5 5020250 -32418 32720 4982.66 498266 -124 127 0.9 90 +745 100 10735 99646 2.23723 299.23723 150.73723 15073.72372 2.23723 299.23724 150.73724 15073.72405 2.23723 299.23723 150.73723 15073.72300 2020-01-01 2020-01-02 2020-01-01 00:12:25 2020-01-02 03:40:46 2020-01-01 00:12:25.000 2020-01-02 03:40:46.000 745 99646 50195.5 5019550 745 99646 50195.5 5019550 -32425 32713 4975.66 497566 -125 126 -0.98 -98 +746 100 10736 99647 2.24024 299.24024 150.74024 15074.02402 2.24024 299.24023 150.74023 15074.02373 2.24024 299.24024 150.74024 15074.02400 2020-01-01 2020-01-02 2020-01-01 00:12:26 2020-01-02 03:40:47 2020-01-01 00:12:26.000 2020-01-02 03:40:47.000 746 99647 50196.5 5019650 746 99647 50196.5 5019650 -32424 32714 4976.66 497666 -124 127 0.02 2 +747 100 10737 99648 2.24324 299.24324 150.74324 15074.32432 2.24324 299.24326 150.74324 15074.32433 2.24324 299.24324 150.74324000000001 15074.32400 2020-01-01 2020-01-02 2020-01-01 00:12:27 2020-01-02 03:40:48 2020-01-01 00:12:27.000 2020-01-02 03:40:48.000 747 99648 50197.5 5019750 747 99648 50197.5 5019750 -32423 32715 4977.66 497766 -128 127 -1.54 -154 +748 100 10738 99649 2.24624 299.24624 150.74624 15074.62462 2.24624 299.24625 150.74624 15074.62463 2.24624 299.24624 150.74624 15074.62400 2020-01-01 2020-01-02 2020-01-01 00:12:28 2020-01-02 03:40:49 2020-01-01 00:12:28.000 2020-01-02 03:40:49.000 748 99649 50198.5 5019850 748 99649 50198.5 5019850 -32422 32716 4978.66 497866 -128 123 -3.1 -310 +749 100 10739 99650 2.24924 299.24924 150.74924 15074.92492 2.24924 299.24924 150.74924 15074.92492 2.24924 299.24924 150.74924000000001 15074.92400 2020-01-01 2020-01-02 2020-01-01 00:12:29 2020-01-02 03:40:50 2020-01-01 00:12:29.000 2020-01-02 03:40:50.000 749 99650 50199.5 5019950 749 99650 50199.5 5019950 -32421 32717 4979.66 497966 -127 124 -2.1 -210 +75 102 10065 99975 0.22522 300.22522 150.22522 15172.74774 0.22522 300.22522 150.22522 15172.74745 0.22522 300.22522 150.22521999999998 15172.74722 2020-01-01 2020-01-02 2020-01-01 00:01:15 2020-01-02 03:46:15 2020-01-01 00:01:15.000 2020-01-02 03:46:15.000 75 99975 50025 5052525 75 99975 50025 5052525 -32494 32441 4604.009900990099 465005 -127 124 -3.99009900990099 -403 +750 100 10740 99651 2.25225 299.25225 150.75225 15075.22522 2.25225 299.25226 150.75225 15075.22552 2.25225 299.25225 150.75225 15075.22500 2020-01-01 2020-01-02 2020-01-01 00:12:30 2020-01-02 03:40:51 2020-01-01 00:12:30.000 2020-01-02 03:40:51.000 750 99651 50200.5 5020050 750 99651 50200.5 5020050 -32420 32718 4980.66 498066 -126 125 -1.1 -110 +751 100 10741 99652 2.25525 299.25525 150.75525 15075.52552 2.25525 299.25525 150.75525 15075.5252 2.25525 299.25525 150.75525 15075.52500 2020-01-01 2020-01-02 2020-01-01 00:12:31 2020-01-02 03:40:52 2020-01-01 00:12:31.000 2020-01-02 03:40:52.000 751 99652 50201.5 5020150 751 99652 50201.5 5020150 -32419 32719 4981.66 498166 -125 126 -0.1 -10 +752 100 10742 99653 2.25825 299.25825 150.75825 15075.82582 2.25825 299.25827 150.75825 15075.8258 2.25825 299.25825 150.75825 15075.82500 2020-01-01 2020-01-02 2020-01-01 00:12:32 2020-01-02 03:40:53 2020-01-01 00:12:32.000 2020-01-02 03:40:53.000 752 99653 50202.5 5020250 752 99653 50202.5 5020250 -32418 32720 4982.66 498266 -124 127 0.9 90 753 100 10743 99654 2.26126 299.26126 150.76126 15076.12612 2.26126 299.26126 150.76126 15076.12609 2.26126 299.26126 150.76126 15076.12600 2020-01-01 2020-01-02 2020-01-01 00:12:33 2020-01-02 03:40:54 2020-01-01 00:12:33.000 2020-01-02 03:40:54.000 753 99654 50203.5 5020350 753 99654 50203.5 5020350 -32417 32721 4983.66 498366 -128 127 -0.66 -66 -754 100 10744 99655 2.26426 299.26426 150.76426 15076.42642 2.26426 299.26425 150.76426 15076.4264 2.26426 299.26426 150.76425999999995 15076.42600 2020-01-01 2020-01-02 2020-01-01 00:12:34 2020-01-02 03:40:55 2020-01-01 00:12:34.000 2020-01-02 03:40:55.000 754 99655 50204.5 5020450 754 99655 50204.5 5020450 -32416 32722 4984.66 498466 -128 123 -2.22 -222 +754 100 10744 99655 2.26426 299.26426 150.76426 15076.42642 2.26426 299.26425 150.76426 15076.4264 2.26426 299.26426 150.76426 15076.42600 2020-01-01 2020-01-02 2020-01-01 00:12:34 2020-01-02 03:40:55 2020-01-01 00:12:34.000 2020-01-02 03:40:55.000 754 99655 50204.5 5020450 754 99655 50204.5 5020450 -32416 32722 4984.66 498466 -128 123 -2.22 -222 755 100 10745 99656 2.26726 299.26726 150.76726 15076.72672 2.26726 299.26727 150.76727 15076.72703 2.26726 299.26726 150.76726 15076.72600 2020-01-01 2020-01-02 2020-01-01 00:12:35 2020-01-02 03:40:56 2020-01-01 00:12:35.000 2020-01-02 03:40:56.000 755 99656 50205.5 5020550 755 99656 50205.5 5020550 -32415 32723 4985.66 498566 -127 124 -1.22 -122 -756 100 10746 99657 2.27027 299.27027 150.77027 15077.02702 2.27027 299.27026 150.77026 15077.02667 2.27027 299.27027 150.7702700000001 15077.02700 2020-01-01 2020-01-02 2020-01-01 00:12:36 2020-01-02 03:40:57 2020-01-01 00:12:36.000 2020-01-02 03:40:57.000 756 99657 50206.5 5020650 756 99657 50206.5 5020650 -32414 32724 4986.66 498666 -126 125 -0.22 -22 -757 100 10747 99658 2.27327 299.27327 150.77327 15077.32732 2.27327 299.2733 150.77327 15077.32727 2.27327 299.27327 150.7732699999999 15077.32700 2020-01-01 2020-01-02 2020-01-01 00:12:37 2020-01-02 03:40:58 2020-01-01 00:12:37.000 2020-01-02 03:40:58.000 757 99658 50207.5 5020750 757 99658 50207.5 5020750 -32413 32725 4987.66 498766 -125 126 0.78 78 -758 100 10748 99659 2.27627 299.27627 150.77627 15077.62762 2.27627 299.27628 150.77627 15077.62756 2.27627 299.27627 150.77627000000007 15077.62700 2020-01-01 2020-01-02 2020-01-01 00:12:38 2020-01-02 03:40:59 2020-01-01 00:12:38.000 2020-01-02 03:40:59.000 758 99659 50208.5 5020850 758 99659 50208.5 5020850 -32412 32726 4988.66 498866 -124 127 1.78 178 -759 100 10749 99660 2.27927 299.27927 150.77927 15077.92792 2.27927 299.27927 150.77927 15077.92787 2.27927 299.27927 150.7792699999999 15077.92700 2020-01-01 2020-01-02 2020-01-01 00:12:39 2020-01-02 03:41:00 2020-01-01 00:12:39.000 2020-01-02 03:41:00.000 759 99660 50209.5 5020950 759 99660 50209.5 5020950 -32411 32727 4989.66 498966 -128 127 0.22 22 -76 102 10066 99976 0.22822 300.22822 150.22822 15173.05105 0.22822 300.22824 150.22822 15173.05109 0.22822 300.22822 150.22822000000008 15173.05022 2020-01-01 2020-01-02 2020-01-01 00:01:16 2020-01-02 03:46:16 2020-01-01 00:01:16.000 2020-01-02 03:46:16.000 76 99976 50026 5052626 76 99976 50026 5052626 -32493 32442 4605.009900990099 465106 -126 125 -2.99009900990099 -302 +756 100 10746 99657 2.27027 299.27027 150.77027 15077.02702 2.27027 299.27026 150.77026 15077.02667 2.27027 299.27027 150.77027 15077.02700 2020-01-01 2020-01-02 2020-01-01 00:12:36 2020-01-02 03:40:57 2020-01-01 00:12:36.000 2020-01-02 03:40:57.000 756 99657 50206.5 5020650 756 99657 50206.5 5020650 -32414 32724 4986.66 498666 -126 125 -0.22 -22 +757 100 10747 99658 2.27327 299.27327 150.77327 15077.32732 2.27327 299.2733 150.77327 15077.32727 2.27327 299.27327 150.77327 15077.32700 2020-01-01 2020-01-02 2020-01-01 00:12:37 2020-01-02 03:40:58 2020-01-01 00:12:37.000 2020-01-02 03:40:58.000 757 99658 50207.5 5020750 757 99658 50207.5 5020750 -32413 32725 4987.66 498766 -125 126 0.78 78 +758 100 10748 99659 2.27627 299.27627 150.77627 15077.62762 2.27627 299.27628 150.77627 15077.62756 2.27627 299.27627 150.77627 15077.62700 2020-01-01 2020-01-02 2020-01-01 00:12:38 2020-01-02 03:40:59 2020-01-01 00:12:38.000 2020-01-02 03:40:59.000 758 99659 50208.5 5020850 758 99659 50208.5 5020850 -32412 32726 4988.66 498866 -124 127 1.78 178 +759 100 10749 99660 2.27927 299.27927 150.77927 15077.92792 2.27927 299.27927 150.77927 15077.92787 2.27927 299.27927 150.77927 15077.92700 2020-01-01 2020-01-02 2020-01-01 00:12:39 2020-01-02 03:41:00 2020-01-01 00:12:39.000 2020-01-02 03:41:00.000 759 99660 50209.5 5020950 759 99660 50209.5 5020950 -32411 32727 4989.66 498966 -128 127 0.22 22 +76 102 10066 99976 0.22822 300.22822 150.22822 15173.05105 0.22822 300.22824 150.22822 15173.05109 0.22822 300.22822 150.22822 15173.05022 2020-01-01 2020-01-02 2020-01-01 00:01:16 2020-01-02 03:46:16 2020-01-01 00:01:16.000 2020-01-02 03:46:16.000 76 99976 50026 5052626 76 99976 50026 5052626 -32493 32442 4605.009900990099 465106 -126 125 -2.99009900990099 -302 760 100 10750 99661 2.28228 299.28228 150.78228 15078.22822 2.28228 299.2823 150.78228 15078.2285 2.28228 299.28228 150.78228 15078.22800 2020-01-01 2020-01-02 2020-01-01 00:12:40 2020-01-02 03:41:01 2020-01-01 00:12:40.000 2020-01-02 03:41:01.000 760 99661 50210.5 5021050 760 99661 50210.5 5021050 -32410 32728 4990.66 499066 -128 127 -1.34 -134 -761 100 10751 99662 2.28528 299.28528 150.78528 15078.52852 2.28528 299.28528 150.78528 15078.52814 2.28528 299.28528 150.78528000000003 15078.52800 2020-01-01 2020-01-02 2020-01-01 00:12:41 2020-01-02 03:41:02 2020-01-01 00:12:41.000 2020-01-02 03:41:02.000 761 99662 50211.5 5021150 761 99662 50211.5 5021150 -32409 32729 4991.66 499166 -128 124 -2.9 -290 +761 100 10751 99662 2.28528 299.28528 150.78528 15078.52852 2.28528 299.28528 150.78528 15078.52814 2.28528 299.28528 150.78528 15078.52800 2020-01-01 2020-01-02 2020-01-01 00:12:41 2020-01-02 03:41:02 2020-01-01 00:12:41.000 2020-01-02 03:41:02.000 761 99662 50211.5 5021150 761 99662 50211.5 5021150 -32409 32729 4991.66 499166 -128 124 -2.9 -290 762 100 10752 99663 2.28828 299.28828 150.78828 15078.82882 2.28828 299.2883 150.78828 15078.82889 2.28828 299.28828 150.78828 15078.82800 2020-01-01 2020-01-02 2020-01-01 00:12:42 2020-01-02 03:41:03 2020-01-01 00:12:42.000 2020-01-02 03:41:03.000 762 99663 50212.5 5021250 762 99663 50212.5 5021250 -32408 32730 4992.66 499266 -127 125 -1.9 -190 -763 100 10753 99664 2.29129 299.29129 150.79129 15079.12912 2.29129 299.2913 150.79129 15079.12904 2.29129 299.29129 150.79128999999998 15079.12900 2020-01-01 2020-01-02 2020-01-01 00:12:43 2020-01-02 03:41:04 2020-01-01 00:12:43.000 2020-01-02 03:41:04.000 763 99664 50213.5 5021350 763 99664 50213.5 5021350 -32407 32731 4993.66 499366 -126 126 -0.9 -90 -764 100 10754 99665 2.29429 299.29429 150.79429 15079.42942 2.29429 299.29428 150.79429 15079.42933 2.29429 299.29429 150.7942899999999 15079.42900 2020-01-01 2020-01-02 2020-01-01 00:12:44 2020-01-02 03:41:05 2020-01-01 00:12:44.000 2020-01-02 03:41:05.000 764 99665 50214.5 5021450 764 99665 50214.5 5021450 -32406 32732 4994.66 499466 -125 127 0.1 10 -765 100 10755 99666 2.29729 299.29729 150.79729 15079.72972 2.29729 299.2973 150.79729 15079.72996 2.29729 299.29729 150.79729000000015 15079.72900 2020-01-01 2020-01-02 2020-01-01 00:12:45 2020-01-02 03:41:06 2020-01-01 00:12:45.000 2020-01-02 03:41:06.000 765 99666 50215.5 5021550 765 99666 50215.5 5021550 -32405 32733 4995.66 499566 -128 127 -1.46 -146 -766 100 10756 99667 2.3003 299.3003 150.8003 15080.03003 2.3003 299.3003 150.80029 15080.02961 2.30030 299.30030 150.80030000000002 15080.03000 2020-01-01 2020-01-02 2020-01-01 00:12:46 2020-01-02 03:41:07 2020-01-01 00:12:46.000 2020-01-02 03:41:07.000 766 99667 50216.5 5021650 766 99667 50216.5 5021650 -32404 32734 4996.66 499666 -128 127 -3.02 -302 -767 100 10757 99668 2.3033 299.3033 150.8033 15080.33033 2.3033 299.3033 150.8033 15080.33036 2.30330 299.30330 150.80329999999987 15080.33000 2020-01-01 2020-01-02 2020-01-01 00:12:47 2020-01-02 03:41:08 2020-01-01 00:12:47.000 2020-01-02 03:41:08.000 767 99668 50217.5 5021750 767 99668 50217.5 5021750 -32403 32735 4997.66 499766 -128 123 -4.58 -458 -768 100 10758 99669 2.3063 299.3063 150.8063 15080.63063 2.3063 299.3063 150.8063 15080.6305 2.30630 299.30630 150.8063000000001 15080.63000 2020-01-01 2020-01-02 2020-01-01 00:12:48 2020-01-02 03:41:09 2020-01-01 00:12:48.000 2020-01-02 03:41:09.000 768 99669 50218.5 5021850 768 99669 50218.5 5021850 -32402 32736 4998.66 499866 -127 124 -3.58 -358 -769 100 10759 99670 2.3093 299.3093 150.8093 15080.93093 2.3093 299.3093 150.8093 15080.93084 2.30930 299.30930 150.80930000000004 15080.93000 2020-01-01 2020-01-02 2020-01-01 00:12:49 2020-01-02 03:41:10 2020-01-01 00:12:49.000 2020-01-02 03:41:10.000 769 99670 50219.5 5021950 769 99670 50219.5 5021950 -32401 32737 4999.66 499966 -126 125 -2.58 -258 -77 102 10067 99977 0.23123 300.23123 150.23123 15173.35435 0.23123 300.23123 150.23123 15173.35439 0.23123 300.23123 150.23122999999998 15173.35423 2020-01-01 2020-01-02 2020-01-01 00:01:17 2020-01-02 03:46:17 2020-01-01 00:01:17.000 2020-01-02 03:46:17.000 77 99977 50027 5052727 77 99977 50027 5052727 -32492 32443 4606.009900990099 465207 -125 126 -1.99009900990099 -201 -770 100 10760 99671 2.31231 299.31231 150.81231 15081.23123 2.31231 299.31232 150.81231 15081.23144 2.31231 299.31231 150.81230999999997 15081.23100 2020-01-01 2020-01-02 2020-01-01 00:12:50 2020-01-02 03:41:11 2020-01-01 00:12:50.000 2020-01-02 03:41:11.000 770 99671 50220.5 5022050 770 99671 50220.5 5022050 -32400 32738 5000.66 500066 -125 126 -1.58 -158 -771 100 10761 99672 2.31531 299.31531 150.81531 15081.53153 2.31531 299.3153 150.81531 15081.53173 2.31531 299.31531 150.81530999999998 15081.53100 2020-01-01 2020-01-02 2020-01-01 00:12:51 2020-01-02 03:41:12 2020-01-01 00:12:51.000 2020-01-02 03:41:12.000 771 99672 50221.5 5022150 771 99672 50221.5 5022150 -32399 32739 5001.66 500166 -124 127 -0.58 -58 -772 100 10762 99673 2.31831 299.31831 150.81831 15081.83183 2.31831 299.31833 150.81831 15081.83183 2.31831 299.31831 150.81831000000003 15081.83100 2020-01-01 2020-01-02 2020-01-01 00:12:52 2020-01-02 03:41:13 2020-01-01 00:12:52.000 2020-01-02 03:41:13.000 772 99673 50222.5 5022250 772 99673 50222.5 5022250 -32398 32740 5002.66 500266 -128 127 -2.14 -214 -773 100 10763 99674 2.32132 299.32132 150.82132 15082.13213 2.32132 299.32132 150.82131 15082.13197 2.32132 299.32132 150.8213199999999 15082.13200 2020-01-01 2020-01-02 2020-01-01 00:12:53 2020-01-02 03:41:14 2020-01-01 00:12:53.000 2020-01-02 03:41:14.000 773 99674 50223.5 5022350 773 99674 50223.5 5022350 -32397 32741 5003.66 500366 -128 123 -3.7 -370 -774 100 10764 99675 2.32432 299.32432 150.82432 15082.43243 2.32432 299.3243 150.82432 15082.43231 2.32432 299.32432 150.82431999999994 15082.43200 2020-01-01 2020-01-02 2020-01-01 00:12:54 2020-01-02 03:41:15 2020-01-01 00:12:54.000 2020-01-02 03:41:15.000 774 99675 50224.5 5022450 774 99675 50224.5 5022450 -32396 32742 5004.66 500466 -127 124 -2.7 -270 -775 100 10765 99676 2.32732 299.32732 150.82732 15082.73273 2.32732 299.32733 150.82732 15082.73291 2.32732 299.32732 150.8273200000001 15082.73200 2020-01-01 2020-01-02 2020-01-01 00:12:55 2020-01-02 03:41:16 2020-01-01 00:12:55.000 2020-01-02 03:41:16.000 775 99676 50225.5 5022550 775 99676 50225.5 5022550 -32395 32743 5005.66 500566 -126 125 -1.7 -170 +763 100 10753 99664 2.29129 299.29129 150.79129 15079.12912 2.29129 299.2913 150.79129 15079.12904 2.29129 299.29129 150.79129 15079.12900 2020-01-01 2020-01-02 2020-01-01 00:12:43 2020-01-02 03:41:04 2020-01-01 00:12:43.000 2020-01-02 03:41:04.000 763 99664 50213.5 5021350 763 99664 50213.5 5021350 -32407 32731 4993.66 499366 -126 126 -0.9 -90 +764 100 10754 99665 2.29429 299.29429 150.79429 15079.42942 2.29429 299.29428 150.79429 15079.42933 2.29429 299.29429 150.79429 15079.42900 2020-01-01 2020-01-02 2020-01-01 00:12:44 2020-01-02 03:41:05 2020-01-01 00:12:44.000 2020-01-02 03:41:05.000 764 99665 50214.5 5021450 764 99665 50214.5 5021450 -32406 32732 4994.66 499466 -125 127 0.1 10 +765 100 10755 99666 2.29729 299.29729 150.79729 15079.72972 2.29729 299.2973 150.79729 15079.72996 2.29729 299.29729 150.79729 15079.72900 2020-01-01 2020-01-02 2020-01-01 00:12:45 2020-01-02 03:41:06 2020-01-01 00:12:45.000 2020-01-02 03:41:06.000 765 99666 50215.5 5021550 765 99666 50215.5 5021550 -32405 32733 4995.66 499566 -128 127 -1.46 -146 +766 100 10756 99667 2.3003 299.3003 150.8003 15080.03003 2.3003 299.3003 150.80029 15080.02961 2.30030 299.30030 150.8003 15080.03000 2020-01-01 2020-01-02 2020-01-01 00:12:46 2020-01-02 03:41:07 2020-01-01 00:12:46.000 2020-01-02 03:41:07.000 766 99667 50216.5 5021650 766 99667 50216.5 5021650 -32404 32734 4996.66 499666 -128 127 -3.02 -302 +767 100 10757 99668 2.3033 299.3033 150.8033 15080.33033 2.3033 299.3033 150.8033 15080.33036 2.30330 299.30330 150.8033 15080.33000 2020-01-01 2020-01-02 2020-01-01 00:12:47 2020-01-02 03:41:08 2020-01-01 00:12:47.000 2020-01-02 03:41:08.000 767 99668 50217.5 5021750 767 99668 50217.5 5021750 -32403 32735 4997.66 499766 -128 123 -4.58 -458 +768 100 10758 99669 2.3063 299.3063 150.8063 15080.63063 2.3063 299.3063 150.8063 15080.6305 2.30630 299.30630 150.8063 15080.63000 2020-01-01 2020-01-02 2020-01-01 00:12:48 2020-01-02 03:41:09 2020-01-01 00:12:48.000 2020-01-02 03:41:09.000 768 99669 50218.5 5021850 768 99669 50218.5 5021850 -32402 32736 4998.66 499866 -127 124 -3.58 -358 +769 100 10759 99670 2.3093 299.3093 150.8093 15080.93093 2.3093 299.3093 150.8093 15080.93084 2.30930 299.30930 150.8093 15080.93000 2020-01-01 2020-01-02 2020-01-01 00:12:49 2020-01-02 03:41:10 2020-01-01 00:12:49.000 2020-01-02 03:41:10.000 769 99670 50219.5 5021950 769 99670 50219.5 5021950 -32401 32737 4999.66 499966 -126 125 -2.58 -258 +77 102 10067 99977 0.23123 300.23123 150.23123 15173.35435 0.23123 300.23123 150.23123 15173.35439 0.23123 300.23123 150.23123 15173.35423 2020-01-01 2020-01-02 2020-01-01 00:01:17 2020-01-02 03:46:17 2020-01-01 00:01:17.000 2020-01-02 03:46:17.000 77 99977 50027 5052727 77 99977 50027 5052727 -32492 32443 4606.009900990099 465207 -125 126 -1.99009900990099 -201 +770 100 10760 99671 2.31231 299.31231 150.81231 15081.23123 2.31231 299.31232 150.81231 15081.23144 2.31231 299.31231 150.81231 15081.23100 2020-01-01 2020-01-02 2020-01-01 00:12:50 2020-01-02 03:41:11 2020-01-01 00:12:50.000 2020-01-02 03:41:11.000 770 99671 50220.5 5022050 770 99671 50220.5 5022050 -32400 32738 5000.66 500066 -125 126 -1.58 -158 +771 100 10761 99672 2.31531 299.31531 150.81531 15081.53153 2.31531 299.3153 150.81531 15081.53173 2.31531 299.31531 150.81531 15081.53100 2020-01-01 2020-01-02 2020-01-01 00:12:51 2020-01-02 03:41:12 2020-01-01 00:12:51.000 2020-01-02 03:41:12.000 771 99672 50221.5 5022150 771 99672 50221.5 5022150 -32399 32739 5001.66 500166 -124 127 -0.58 -58 +772 100 10762 99673 2.31831 299.31831 150.81831 15081.83183 2.31831 299.31833 150.81831 15081.83183 2.31831 299.31831 150.81831 15081.83100 2020-01-01 2020-01-02 2020-01-01 00:12:52 2020-01-02 03:41:13 2020-01-01 00:12:52.000 2020-01-02 03:41:13.000 772 99673 50222.5 5022250 772 99673 50222.5 5022250 -32398 32740 5002.66 500266 -128 127 -2.14 -214 +773 100 10763 99674 2.32132 299.32132 150.82132 15082.13213 2.32132 299.32132 150.82131 15082.13197 2.32132 299.32132 150.82132 15082.13200 2020-01-01 2020-01-02 2020-01-01 00:12:53 2020-01-02 03:41:14 2020-01-01 00:12:53.000 2020-01-02 03:41:14.000 773 99674 50223.5 5022350 773 99674 50223.5 5022350 -32397 32741 5003.66 500366 -128 123 -3.7 -370 +774 100 10764 99675 2.32432 299.32432 150.82432 15082.43243 2.32432 299.3243 150.82432 15082.43231 2.32432 299.32432 150.82432 15082.43200 2020-01-01 2020-01-02 2020-01-01 00:12:54 2020-01-02 03:41:15 2020-01-01 00:12:54.000 2020-01-02 03:41:15.000 774 99675 50224.5 5022450 774 99675 50224.5 5022450 -32396 32742 5004.66 500466 -127 124 -2.7 -270 +775 100 10765 99676 2.32732 299.32732 150.82732 15082.73273 2.32732 299.32733 150.82732 15082.73291 2.32732 299.32732 150.82732 15082.73200 2020-01-01 2020-01-02 2020-01-01 00:12:55 2020-01-02 03:41:16 2020-01-01 00:12:55.000 2020-01-02 03:41:16.000 775 99676 50225.5 5022550 775 99676 50225.5 5022550 -32395 32743 5005.66 500566 -126 125 -1.7 -170 776 100 10766 99677 2.33033 299.33033 150.83033 15083.03303 2.33033 299.33032 150.83033 15083.0332 2.33033 299.33033 150.83033 15083.03300 2020-01-01 2020-01-02 2020-01-01 00:12:56 2020-01-02 03:41:17 2020-01-01 00:12:56.000 2020-01-02 03:41:17.000 776 99677 50226.5 5022650 776 99677 50226.5 5022650 -32394 32744 5006.66 500666 -125 126 -0.7 -70 777 100 10767 99678 2.33333 299.33333 150.83333 15083.33333 2.33333 299.33334 150.83333 15083.3333 2.33333 299.33333 150.83333000000002 15083.33300 2020-01-01 2020-01-02 2020-01-01 00:12:57 2020-01-02 03:41:18 2020-01-01 00:12:57.000 2020-01-02 03:41:18.000 777 99678 50227.5 5022750 777 99678 50227.5 5022750 -32393 32745 5007.66 500766 -124 127 0.3 30 -778 100 10768 99679 2.33633 299.33633 150.83633 15083.63363 2.33633 299.33633 150.83633 15083.63348 2.33633 299.33633 150.83633000000006 15083.63300 2020-01-01 2020-01-02 2020-01-01 00:12:58 2020-01-02 03:41:19 2020-01-01 00:12:58.000 2020-01-02 03:41:19.000 778 99679 50228.5 5022850 778 99679 50228.5 5022850 -32392 32746 5008.66 500866 -128 127 -1.26 -126 +778 100 10768 99679 2.33633 299.33633 150.83633 15083.63363 2.33633 299.33633 150.83633 15083.63348 2.33633 299.33633 150.83633 15083.63300 2020-01-01 2020-01-02 2020-01-01 00:12:58 2020-01-02 03:41:19 2020-01-01 00:12:58.000 2020-01-02 03:41:19.000 778 99679 50228.5 5022850 778 99679 50228.5 5022850 -32392 32746 5008.66 500866 -128 127 -1.26 -126 779 100 10769 99680 2.33933 299.33933 150.83933 15083.93393 2.33933 299.33932 150.83933 15083.93378 2.33933 299.33933 150.83933000000002 15083.93300 2020-01-01 2020-01-02 2020-01-01 00:12:59 2020-01-02 03:41:20 2020-01-01 00:12:59.000 2020-01-02 03:41:20.000 779 99680 50229.5 5022950 779 99680 50229.5 5022950 -32391 32747 5009.66 500966 -128 123 -2.82 -282 78 102 10068 99978 0.23423 300.23423 150.23423 15173.65765 0.23423 300.23422 150.23423 15173.65769 0.23423 300.23423 150.23423 15173.65723 2020-01-01 2020-01-02 2020-01-01 00:01:18 2020-01-02 03:46:18 2020-01-01 00:01:18.000 2020-01-02 03:46:18.000 78 99978 50028 5052828 78 99978 50028 5052828 -32491 32444 4607.009900990099 465308 -124 127 -0.9900990099009901 -100 -780 100 10770 99681 2.34234 299.34234 150.84234 15084.23423 2.34234 299.34235 150.84234 15084.23437 2.34234 299.34234 150.84233999999984 15084.23400 2020-01-01 2020-01-02 2020-01-01 00:13:00 2020-01-02 03:41:21 2020-01-01 00:13:00.000 2020-01-02 03:41:21.000 780 99681 50230.5 5023050 780 99681 50230.5 5023050 -32390 32748 5010.66 501066 -127 124 -1.82 -182 -781 100 10771 99682 2.34534 299.34534 150.84534 15084.53453 2.34534 299.34534 150.84534 15084.53467 2.34534 299.34534 150.84533999999988 15084.53400 2020-01-01 2020-01-02 2020-01-01 00:13:01 2020-01-02 03:41:22 2020-01-01 00:13:01.000 2020-01-02 03:41:22.000 781 99682 50231.5 5023150 781 99682 50231.5 5023150 -32389 32749 5011.66 501166 -126 125 -0.82 -82 -782 100 10772 99683 2.34834 299.34834 150.84834 15084.83483 2.34834 299.34836 150.84834 15084.83477 2.34834 299.34834 150.84834000000006 15084.83400 2020-01-01 2020-01-02 2020-01-01 00:13:02 2020-01-02 03:41:23 2020-01-01 00:13:02.000 2020-01-02 03:41:23.000 782 99683 50232.5 5023250 782 99683 50232.5 5023250 -32388 32750 5012.66 501266 -125 126 0.18 18 -783 100 10773 99684 2.35135 299.35135 150.85135 15085.13513 2.35135 299.35135 150.85134 15085.13495 2.35135 299.35135 150.85135000000022 15085.13500 2020-01-01 2020-01-02 2020-01-01 00:13:03 2020-01-02 03:41:24 2020-01-01 00:13:03.000 2020-01-02 03:41:24.000 783 99684 50233.5 5023350 783 99684 50233.5 5023350 -32387 32751 5013.66 501366 -124 127 1.18 118 -784 100 10774 99685 2.35435 299.35435 150.85435 15085.43543 2.35435 299.35434 150.85435 15085.43525 2.35435 299.35435 150.85434999999973 15085.43500 2020-01-01 2020-01-02 2020-01-01 00:13:04 2020-01-02 03:41:25 2020-01-01 00:13:04.000 2020-01-02 03:41:25.000 784 99685 50234.5 5023450 784 99685 50234.5 5023450 -32386 32752 5014.66 501466 -128 127 -0.38 -38 -785 100 10775 99686 2.35735 299.35735 150.85735 15085.73573 2.35735 299.35736 150.85736 15085.736 2.35735 299.35735 150.8573500000002 15085.73500 2020-01-01 2020-01-02 2020-01-01 00:13:05 2020-01-02 03:41:26 2020-01-01 00:13:05.000 2020-01-02 03:41:26.000 785 99686 50235.5 5023550 785 99686 50235.5 5023550 -32385 32753 5015.66 501566 -128 127 -1.94 -194 -786 100 10776 99687 2.36036 299.36036 150.86036 15086.03603 2.36036 299.36035 150.86036 15086.03614 2.36036 299.36036 150.86036000000007 15086.03600 2020-01-01 2020-01-02 2020-01-01 00:13:06 2020-01-02 03:41:27 2020-01-01 00:13:06.000 2020-01-02 03:41:27.000 786 99687 50236.5 5023650 786 99687 50236.5 5023650 -32384 32754 5016.66 501666 -128 124 -3.5 -350 -787 100 10777 99688 2.36336 299.36336 150.86336 15086.33633 2.36336 299.36337 150.86336 15086.33628 2.36336 299.36336 150.8633599999999 15086.33600 2020-01-01 2020-01-02 2020-01-01 00:13:07 2020-01-02 03:41:28 2020-01-01 00:13:07.000 2020-01-02 03:41:28.000 787 99688 50237.5 5023750 787 99688 50237.5 5023750 -32383 32755 5017.66 501766 -127 125 -2.5 -250 -788 100 10778 99689 2.36636 299.36636 150.86636 15086.63663 2.36636 299.36636 150.86636 15086.63641 2.36636 299.36636 150.86636 15086.63600 2020-01-01 2020-01-02 2020-01-01 00:13:08 2020-01-02 03:41:29 2020-01-01 00:13:08.000 2020-01-02 03:41:29.000 788 99689 50238.5 5023850 788 99689 50238.5 5023850 -32382 32756 5018.66 501866 -126 126 -1.5 -150 -789 100 10779 99690 2.36936 299.36936 150.86936 15086.93693 2.36936 299.36935 150.86936 15086.93672 2.36936 299.36936 150.86936000000009 15086.93600 2020-01-01 2020-01-02 2020-01-01 00:13:09 2020-01-02 03:41:30 2020-01-01 00:13:09.000 2020-01-02 03:41:30.000 789 99690 50239.5 5023950 789 99690 50239.5 5023950 -32381 32757 5019.66 501966 -125 127 -0.5 -50 -79 102 10069 99979 0.23723 300.23723 150.23723 15173.96096 0.23723 300.23724 150.23724 15173.96129 0.23723 300.23723 150.23723000000012 15173.96023 2020-01-01 2020-01-02 2020-01-01 00:01:19 2020-01-02 03:46:19 2020-01-01 00:01:19.000 2020-01-02 03:46:19.000 79 99979 50029 5052929 79 99979 50029 5052929 -32490 32445 4608.009900990099 465409 -128 127 -2.5247524752475248 -255 -790 100 10780 99691 2.37237 299.37237 150.87237 15087.23723 2.37237 299.37238 150.87237 15087.23747 2.37237 299.37237 150.87236999999973 15087.23700 2020-01-01 2020-01-02 2020-01-01 00:13:10 2020-01-02 03:41:31 2020-01-01 00:13:10.000 2020-01-02 03:41:31.000 790 99691 50240.5 5024050 790 99691 50240.5 5024050 -32380 32758 5020.66 502066 -128 127 -2.06 -206 -791 100 10781 99692 2.37537 299.37537 150.87537 15087.53753 2.37537 299.37537 150.87537 15087.53761 2.37537 299.37537 150.87536999999983 15087.53700 2020-01-01 2020-01-02 2020-01-01 00:13:11 2020-01-02 03:41:32 2020-01-01 00:13:11.000 2020-01-02 03:41:32.000 791 99692 50241.5 5024150 791 99692 50241.5 5024150 -32379 32759 5021.66 502166 -128 127 -3.62 -362 -792 100 10782 99693 2.37837 299.37837 150.87837 15087.83783 2.37837 299.3784 150.87837 15087.83775 2.37837 299.37837 150.87837000000025 15087.83700 2020-01-01 2020-01-02 2020-01-01 00:13:12 2020-01-02 03:41:33 2020-01-01 00:13:12.000 2020-01-02 03:41:33.000 792 99693 50242.5 5024250 792 99693 50242.5 5024250 -32378 32760 5022.66 502266 -128 123 -5.18 -518 -793 100 10783 99694 2.38138 299.38138 150.88138 15088.13813 2.38138 299.38138 150.88137 15088.13789 2.38138 299.38138 150.88138000000012 15088.13800 2020-01-01 2020-01-02 2020-01-01 00:13:13 2020-01-02 03:41:34 2020-01-01 00:13:13.000 2020-01-02 03:41:34.000 793 99694 50243.5 5024350 793 99694 50243.5 5024350 -32377 32761 5023.66 502366 -127 124 -4.18 -418 -794 100 10784 99695 2.38438 299.38438 150.88438 15088.43843 2.38438 299.3844 150.88438 15088.43864 2.38438 299.38438 150.88438000000002 15088.43800 2020-01-01 2020-01-02 2020-01-01 00:13:14 2020-01-02 03:41:35 2020-01-01 00:13:14.000 2020-01-02 03:41:35.000 794 99695 50244.5 5024450 794 99695 50244.5 5024450 -32376 32762 5024.66 502466 -126 125 -3.18 -318 -795 100 10785 99696 2.38738 299.38738 150.88738 15088.73873 2.38738 299.3874 150.88738 15088.73894 2.38738 299.38738 150.8873800000001 15088.73800 2020-01-01 2020-01-02 2020-01-01 00:13:15 2020-01-02 03:41:36 2020-01-01 00:13:15.000 2020-01-02 03:41:36.000 795 99696 50245.5 5024550 795 99696 50245.5 5024550 -32375 32763 5025.66 502566 -125 126 -2.18 -218 -796 100 10786 99697 2.39039 299.39039 150.89039 15089.03903 2.39039 299.39038 150.89039 15089.03908 2.39039 299.39039 150.89038999999997 15089.03900 2020-01-01 2020-01-02 2020-01-01 00:13:16 2020-01-02 03:41:37 2020-01-01 00:13:16.000 2020-01-02 03:41:37.000 796 99697 50246.5 5024650 796 99697 50246.5 5024650 -32374 32764 5026.66 502666 -124 127 -1.18 -118 -797 100 10787 99698 2.39339 299.39339 150.89339 15089.33933 2.39339 299.3934 150.89339 15089.33921 2.39339 299.39339 150.89338999999987 15089.33900 2020-01-01 2020-01-02 2020-01-01 00:13:17 2020-01-02 03:41:38 2020-01-01 00:13:17.000 2020-01-02 03:41:38.000 797 99698 50247.5 5024750 797 99698 50247.5 5024750 -32373 32765 5027.66 502766 -128 127 -2.74 -274 -798 100 10788 99699 2.39639 299.39639 150.89639 15089.63963 2.39639 299.3964 150.89639 15089.63936 2.39639 299.39639 150.8963899999999 15089.63900 2020-01-01 2020-01-02 2020-01-01 00:13:18 2020-01-02 03:41:39 2020-01-01 00:13:18.000 2020-01-02 03:41:39.000 798 99699 50248.5 5024850 798 99699 50248.5 5024850 -32372 32766 5028.66 502866 -128 123 -4.3 -430 -799 100 10789 99700 2.39939 299.39939 150.89939 15089.93993 2.39939 299.3994 150.8994 15089.94011 2.39939 299.39939 150.89938999999998 15089.93900 2020-01-01 2020-01-02 2020-01-01 00:13:19 2020-01-02 03:41:40 2020-01-01 00:13:19.000 2020-01-02 03:41:40.000 799 99700 50249.5 5024950 799 99700 50249.5 5024950 -32371 32767 5029.66 502966 -127 124 -3.3 -330 -8 102 1007 9998 0.02402 300.02402 150.02402 15152.42642 0.02402 300.02402 150.02402 15152.42607 0.02402 300.02402 150.02402000000015 15152.42602 2020-01-01 2020-01-02 2020-01-01 00:00:08 2020-01-02 03:45:08 2020-01-01 00:00:08.000 2020-01-02 03:45:08.000 8 99908 49958 5045758 8 99908 49958 5045758 -32561 32374 4537.009900990099 458238 -125 126 -0.019801980198019802 -2 -80 102 10070 99980 0.24024 300.24024 150.24024 15174.26426 0.24024 300.24023 150.24023 15174.26397 0.24024 300.24024 150.24023999999977 15174.26424 2020-01-01 2020-01-02 2020-01-01 00:01:20 2020-01-02 03:46:20 2020-01-01 00:01:20.000 2020-01-02 03:46:20.000 80 99980 50030 5053030 80 99980 50030 5053030 -32489 32446 4609.009900990099 465510 -128 123 -4.0594059405940595 -410 -800 100 10790 99701 2.4024 299.4024 150.9024 15090.24024 2.4024 299.4024 150.9024 15090.24041 2.40240 299.40240 150.90240000000026 15090.24000 2020-01-01 2020-01-02 2020-01-01 00:13:20 2020-01-02 03:41:41 2020-01-01 00:13:20.000 2020-01-02 03:41:41.000 800 99701 50250.5 5025050 800 99701 50250.5 5025050 -32768 32167 4375.3 437530 -126 125 -2.3 -230 -801 100 10791 99702 2.4054 299.4054 150.9054 15090.54054 2.4054 299.4054 150.9054 15090.54058 2.40540 299.40540 150.90539999999976 15090.54000 2020-01-01 2020-01-02 2020-01-01 00:13:21 2020-01-02 03:41:42 2020-01-01 00:13:21.000 2020-01-02 03:41:42.000 801 99702 50251.5 5025150 801 99702 50251.5 5025150 -32767 32168 4376.3 437630 -125 126 -1.3 -130 -802 100 10792 99703 2.4084 299.4084 150.9084 15090.84084 2.4084 299.40842 150.9084 15090.84069 2.40840 299.40840 150.90840000000014 15090.84000 2020-01-01 2020-01-02 2020-01-01 00:13:22 2020-01-02 03:41:43 2020-01-01 00:13:22.000 2020-01-02 03:41:43.000 802 99703 50252.5 5025250 802 99703 50252.5 5025250 -32766 32169 4377.3 437730 -124 127 -0.3 -30 -803 100 10793 99704 2.41141 299.41141 150.91141 15091.14114 2.41141 299.4114 150.9114 15091.14098 2.41141 299.41141 150.9114100000001 15091.14100 2020-01-01 2020-01-02 2020-01-01 00:13:23 2020-01-02 03:41:44 2020-01-01 00:13:23.000 2020-01-02 03:41:44.000 803 99704 50253.5 5025350 803 99704 50253.5 5025350 -32765 32170 4378.3 437830 -128 127 -1.86 -186 -804 100 10794 99705 2.41441 299.41441 150.91441 15091.44144 2.41441 299.41443 150.91441 15091.44158 2.41441 299.41441 150.91440999999992 15091.44100 2020-01-01 2020-01-02 2020-01-01 00:13:24 2020-01-02 03:41:45 2020-01-01 00:13:24.000 2020-01-02 03:41:45.000 804 99705 50254.5 5025450 804 99705 50254.5 5025450 -32764 32171 4379.3 437930 -128 123 -3.42 -342 -805 100 10795 99706 2.41741 299.41741 150.91741 15091.74174 2.41741 299.41742 150.91741 15091.74188 2.41741 299.41741 150.91741000000002 15091.74100 2020-01-01 2020-01-02 2020-01-01 00:13:25 2020-01-02 03:41:46 2020-01-01 00:13:25.000 2020-01-02 03:41:46.000 805 99706 50255.5 5025550 805 99706 50255.5 5025550 -32763 32172 4380.3 438030 -127 124 -2.42 -242 -806 100 10796 99707 2.42042 299.42042 150.92042 15092.04204 2.42042 299.4204 150.92042 15092.04205 2.42042 299.42042 150.92042000000026 15092.04200 2020-01-01 2020-01-02 2020-01-01 00:13:26 2020-01-02 03:41:47 2020-01-01 00:13:26.000 2020-01-02 03:41:47.000 806 99707 50256.5 5025650 806 99707 50256.5 5025650 -32762 32173 4381.3 438130 -126 125 -1.42 -142 -807 100 10797 99708 2.42342 299.42342 150.92342 15092.34234 2.42342 299.42343 150.92342 15092.34216 2.42342 299.42342 150.92341999999977 15092.34200 2020-01-01 2020-01-02 2020-01-01 00:13:27 2020-01-02 03:41:48 2020-01-01 00:13:27.000 2020-01-02 03:41:48.000 807 99708 50257.5 5025750 807 99708 50257.5 5025750 -32761 32174 4382.3 438230 -125 126 -0.42 -42 -808 100 10798 99709 2.42642 299.42642 150.92642 15092.64264 2.42642 299.42642 150.92642 15092.64245 2.42642 299.42642 150.9264199999998 15092.64200 2020-01-01 2020-01-02 2020-01-01 00:13:28 2020-01-02 03:41:49 2020-01-01 00:13:28.000 2020-01-02 03:41:49.000 808 99709 50258.5 5025850 808 99709 50258.5 5025850 -32760 32175 4383.3 438330 -124 127 0.58 58 -809 100 10799 99710 2.42942 299.42942 150.92942 15092.94294 2.42942 299.42944 150.92943 15092.94305 2.42942 299.42942 150.92942000000028 15092.94200 2020-01-01 2020-01-02 2020-01-01 00:13:29 2020-01-02 03:41:50 2020-01-01 00:13:29.000 2020-01-02 03:41:50.000 809 99710 50259.5 5025950 809 99710 50259.5 5025950 -32759 32176 4384.3 438430 -128 127 -0.98 -98 -81 102 10071 99981 0.24324 300.24324 150.24324 15174.56756 0.24324 300.24326 150.24324 15174.56758 0.24324 300.24324 150.24323999999982 15174.56724 2020-01-01 2020-01-02 2020-01-01 00:01:21 2020-01-02 03:46:21 2020-01-01 00:01:21.000 2020-01-02 03:46:21.000 81 99981 50031 5053131 81 99981 50031 5053131 -32488 32447 4610.009900990099 465611 -127 124 -3.0594059405940595 -309 -810 100 10800 99711 2.43243 299.43243 150.93243 15093.24324 2.43243 299.43243 150.93243 15093.24338 2.43243 299.43243 150.93243000000015 15093.24300 2020-01-01 2020-01-02 2020-01-01 00:13:30 2020-01-02 03:41:51 2020-01-01 00:13:30.000 2020-01-02 03:41:51.000 810 99711 50260.5 5026050 810 99711 50260.5 5026050 -32758 32177 4385.3 438530 -128 127 -2.54 -254 -811 100 10801 99712 2.43543 299.43543 150.93543 15093.54354 2.43543 299.43542 150.93543 15093.54353 2.43543 299.43543 150.93542999999966 15093.54300 2020-01-01 2020-01-02 2020-01-01 00:13:31 2020-01-02 03:41:52 2020-01-01 00:13:31.000 2020-01-02 03:41:52.000 811 99712 50261.5 5026150 811 99712 50261.5 5026150 -32757 32178 4386.3 438630 -128 124 -4.1 -410 -812 100 10802 99713 2.43843 299.43843 150.93843 15093.84384 2.43843 299.43845 150.93844 15093.84428 2.43843 299.43843 150.93843000000012 15093.84300 2020-01-01 2020-01-02 2020-01-01 00:13:32 2020-01-02 03:41:53 2020-01-01 00:13:32.000 2020-01-02 03:41:53.000 812 99713 50262.5 5026250 812 99713 50262.5 5026250 -32756 32179 4387.3 438730 -127 125 -3.1 -310 +780 100 10770 99681 2.34234 299.34234 150.84234 15084.23423 2.34234 299.34235 150.84234 15084.23437 2.34234 299.34234 150.84234 15084.23400 2020-01-01 2020-01-02 2020-01-01 00:13:00 2020-01-02 03:41:21 2020-01-01 00:13:00.000 2020-01-02 03:41:21.000 780 99681 50230.5 5023050 780 99681 50230.5 5023050 -32390 32748 5010.66 501066 -127 124 -1.82 -182 +781 100 10771 99682 2.34534 299.34534 150.84534 15084.53453 2.34534 299.34534 150.84534 15084.53467 2.34534 299.34534 150.84534 15084.53400 2020-01-01 2020-01-02 2020-01-01 00:13:01 2020-01-02 03:41:22 2020-01-01 00:13:01.000 2020-01-02 03:41:22.000 781 99682 50231.5 5023150 781 99682 50231.5 5023150 -32389 32749 5011.66 501166 -126 125 -0.82 -82 +782 100 10772 99683 2.34834 299.34834 150.84834 15084.83483 2.34834 299.34836 150.84834 15084.83477 2.34834 299.34834 150.84834 15084.83400 2020-01-01 2020-01-02 2020-01-01 00:13:02 2020-01-02 03:41:23 2020-01-01 00:13:02.000 2020-01-02 03:41:23.000 782 99683 50232.5 5023250 782 99683 50232.5 5023250 -32388 32750 5012.66 501266 -125 126 0.18 18 +783 100 10773 99684 2.35135 299.35135 150.85135 15085.13513 2.35135 299.35135 150.85134 15085.13495 2.35135 299.35135 150.85135 15085.13500 2020-01-01 2020-01-02 2020-01-01 00:13:03 2020-01-02 03:41:24 2020-01-01 00:13:03.000 2020-01-02 03:41:24.000 783 99684 50233.5 5023350 783 99684 50233.5 5023350 -32387 32751 5013.66 501366 -124 127 1.18 118 +784 100 10774 99685 2.35435 299.35435 150.85435 15085.43543 2.35435 299.35434 150.85435 15085.43525 2.35435 299.35435 150.85434999999998 15085.43500 2020-01-01 2020-01-02 2020-01-01 00:13:04 2020-01-02 03:41:25 2020-01-01 00:13:04.000 2020-01-02 03:41:25.000 784 99685 50234.5 5023450 784 99685 50234.5 5023450 -32386 32752 5014.66 501466 -128 127 -0.38 -38 +785 100 10775 99686 2.35735 299.35735 150.85735 15085.73573 2.35735 299.35736 150.85736 15085.736 2.35735 299.35735 150.85735 15085.73500 2020-01-01 2020-01-02 2020-01-01 00:13:05 2020-01-02 03:41:26 2020-01-01 00:13:05.000 2020-01-02 03:41:26.000 785 99686 50235.5 5023550 785 99686 50235.5 5023550 -32385 32753 5015.66 501566 -128 127 -1.94 -194 +786 100 10776 99687 2.36036 299.36036 150.86036 15086.03603 2.36036 299.36035 150.86036 15086.03614 2.36036 299.36036 150.86036000000001 15086.03600 2020-01-01 2020-01-02 2020-01-01 00:13:06 2020-01-02 03:41:27 2020-01-01 00:13:06.000 2020-01-02 03:41:27.000 786 99687 50236.5 5023650 786 99687 50236.5 5023650 -32384 32754 5016.66 501666 -128 124 -3.5 -350 +787 100 10777 99688 2.36336 299.36336 150.86336 15086.33633 2.36336 299.36337 150.86336 15086.33628 2.36336 299.36336 150.86336 15086.33600 2020-01-01 2020-01-02 2020-01-01 00:13:07 2020-01-02 03:41:28 2020-01-01 00:13:07.000 2020-01-02 03:41:28.000 787 99688 50237.5 5023750 787 99688 50237.5 5023750 -32383 32755 5017.66 501766 -127 125 -2.5 -250 +788 100 10778 99689 2.36636 299.36636 150.86636 15086.63663 2.36636 299.36636 150.86636 15086.63641 2.36636 299.36636 150.86636000000001 15086.63600 2020-01-01 2020-01-02 2020-01-01 00:13:08 2020-01-02 03:41:29 2020-01-01 00:13:08.000 2020-01-02 03:41:29.000 788 99689 50238.5 5023850 788 99689 50238.5 5023850 -32382 32756 5018.66 501866 -126 126 -1.5 -150 +789 100 10779 99690 2.36936 299.36936 150.86936 15086.93693 2.36936 299.36935 150.86936 15086.93672 2.36936 299.36936 150.86936 15086.93600 2020-01-01 2020-01-02 2020-01-01 00:13:09 2020-01-02 03:41:30 2020-01-01 00:13:09.000 2020-01-02 03:41:30.000 789 99690 50239.5 5023950 789 99690 50239.5 5023950 -32381 32757 5019.66 501966 -125 127 -0.5 -50 +79 102 10069 99979 0.23723 300.23723 150.23723 15173.96096 0.23723 300.23724 150.23724 15173.96129 0.23723 300.23723 150.23723 15173.96023 2020-01-01 2020-01-02 2020-01-01 00:01:19 2020-01-02 03:46:19 2020-01-01 00:01:19.000 2020-01-02 03:46:19.000 79 99979 50029 5052929 79 99979 50029 5052929 -32490 32445 4608.009900990099 465409 -128 127 -2.5247524752475248 -255 +790 100 10780 99691 2.37237 299.37237 150.87237 15087.23723 2.37237 299.37238 150.87237 15087.23747 2.37237 299.37237 150.87237 15087.23700 2020-01-01 2020-01-02 2020-01-01 00:13:10 2020-01-02 03:41:31 2020-01-01 00:13:10.000 2020-01-02 03:41:31.000 790 99691 50240.5 5024050 790 99691 50240.5 5024050 -32380 32758 5020.66 502066 -128 127 -2.06 -206 +791 100 10781 99692 2.37537 299.37537 150.87537 15087.53753 2.37537 299.37537 150.87537 15087.53761 2.37537 299.37537 150.87537 15087.53700 2020-01-01 2020-01-02 2020-01-01 00:13:11 2020-01-02 03:41:32 2020-01-01 00:13:11.000 2020-01-02 03:41:32.000 791 99692 50241.5 5024150 791 99692 50241.5 5024150 -32379 32759 5021.66 502166 -128 127 -3.62 -362 +792 100 10782 99693 2.37837 299.37837 150.87837 15087.83783 2.37837 299.3784 150.87837 15087.83775 2.37837 299.37837 150.87837 15087.83700 2020-01-01 2020-01-02 2020-01-01 00:13:12 2020-01-02 03:41:33 2020-01-01 00:13:12.000 2020-01-02 03:41:33.000 792 99693 50242.5 5024250 792 99693 50242.5 5024250 -32378 32760 5022.66 502266 -128 123 -5.18 -518 +793 100 10783 99694 2.38138 299.38138 150.88138 15088.13813 2.38138 299.38138 150.88137 15088.13789 2.38138 299.38138 150.88138 15088.13800 2020-01-01 2020-01-02 2020-01-01 00:13:13 2020-01-02 03:41:34 2020-01-01 00:13:13.000 2020-01-02 03:41:34.000 793 99694 50243.5 5024350 793 99694 50243.5 5024350 -32377 32761 5023.66 502366 -127 124 -4.18 -418 +794 100 10784 99695 2.38438 299.38438 150.88438 15088.43843 2.38438 299.3844 150.88438 15088.43864 2.38438 299.38438 150.88438 15088.43800 2020-01-01 2020-01-02 2020-01-01 00:13:14 2020-01-02 03:41:35 2020-01-01 00:13:14.000 2020-01-02 03:41:35.000 794 99695 50244.5 5024450 794 99695 50244.5 5024450 -32376 32762 5024.66 502466 -126 125 -3.18 -318 +795 100 10785 99696 2.38738 299.38738 150.88738 15088.73873 2.38738 299.3874 150.88738 15088.73894 2.38738 299.38738 150.88738 15088.73800 2020-01-01 2020-01-02 2020-01-01 00:13:15 2020-01-02 03:41:36 2020-01-01 00:13:15.000 2020-01-02 03:41:36.000 795 99696 50245.5 5024550 795 99696 50245.5 5024550 -32375 32763 5025.66 502566 -125 126 -2.18 -218 +796 100 10786 99697 2.39039 299.39039 150.89039 15089.03903 2.39039 299.39038 150.89039 15089.03908 2.39039 299.39039 150.89039 15089.03900 2020-01-01 2020-01-02 2020-01-01 00:13:16 2020-01-02 03:41:37 2020-01-01 00:13:16.000 2020-01-02 03:41:37.000 796 99697 50246.5 5024650 796 99697 50246.5 5024650 -32374 32764 5026.66 502666 -124 127 -1.18 -118 +797 100 10787 99698 2.39339 299.39339 150.89339 15089.33933 2.39339 299.3934 150.89339 15089.33921 2.39339 299.39339 150.89339 15089.33900 2020-01-01 2020-01-02 2020-01-01 00:13:17 2020-01-02 03:41:38 2020-01-01 00:13:17.000 2020-01-02 03:41:38.000 797 99698 50247.5 5024750 797 99698 50247.5 5024750 -32373 32765 5027.66 502766 -128 127 -2.74 -274 +798 100 10788 99699 2.39639 299.39639 150.89639 15089.63963 2.39639 299.3964 150.89639 15089.63936 2.39639 299.39639 150.89639 15089.63900 2020-01-01 2020-01-02 2020-01-01 00:13:18 2020-01-02 03:41:39 2020-01-01 00:13:18.000 2020-01-02 03:41:39.000 798 99699 50248.5 5024850 798 99699 50248.5 5024850 -32372 32766 5028.66 502866 -128 123 -4.3 -430 +799 100 10789 99700 2.39939 299.39939 150.89939 15089.93993 2.39939 299.3994 150.8994 15089.94011 2.39939 299.39939 150.89939 15089.93900 2020-01-01 2020-01-02 2020-01-01 00:13:19 2020-01-02 03:41:40 2020-01-01 00:13:19.000 2020-01-02 03:41:40.000 799 99700 50249.5 5024950 799 99700 50249.5 5024950 -32371 32767 5029.66 502966 -127 124 -3.3 -330 +8 102 1007 9998 0.02402 300.02402 150.02402 15152.42642 0.02402 300.02402 150.02402 15152.42607 0.02402 300.02402 150.02402 15152.42602 2020-01-01 2020-01-02 2020-01-01 00:00:08 2020-01-02 03:45:08 2020-01-01 00:00:08.000 2020-01-02 03:45:08.000 8 99908 49958 5045758 8 99908 49958 5045758 -32561 32374 4537.009900990099 458238 -125 126 -0.019801980198019802 -2 +80 102 10070 99980 0.24024 300.24024 150.24024 15174.26426 0.24024 300.24023 150.24023 15174.26397 0.24024 300.24024 150.24024 15174.26424 2020-01-01 2020-01-02 2020-01-01 00:01:20 2020-01-02 03:46:20 2020-01-01 00:01:20.000 2020-01-02 03:46:20.000 80 99980 50030 5053030 80 99980 50030 5053030 -32489 32446 4609.009900990099 465510 -128 123 -4.0594059405940595 -410 +800 100 10790 99701 2.4024 299.4024 150.9024 15090.24024 2.4024 299.4024 150.9024 15090.24041 2.40240 299.40240 150.9024 15090.24000 2020-01-01 2020-01-02 2020-01-01 00:13:20 2020-01-02 03:41:41 2020-01-01 00:13:20.000 2020-01-02 03:41:41.000 800 99701 50250.5 5025050 800 99701 50250.5 5025050 -32768 32167 4375.3 437530 -126 125 -2.3 -230 +801 100 10791 99702 2.4054 299.4054 150.9054 15090.54054 2.4054 299.4054 150.9054 15090.54058 2.40540 299.40540 150.90540000000001 15090.54000 2020-01-01 2020-01-02 2020-01-01 00:13:21 2020-01-02 03:41:42 2020-01-01 00:13:21.000 2020-01-02 03:41:42.000 801 99702 50251.5 5025150 801 99702 50251.5 5025150 -32767 32168 4376.3 437630 -125 126 -1.3 -130 +802 100 10792 99703 2.4084 299.4084 150.9084 15090.84084 2.4084 299.40842 150.9084 15090.84069 2.40840 299.40840 150.9084 15090.84000 2020-01-01 2020-01-02 2020-01-01 00:13:22 2020-01-02 03:41:43 2020-01-01 00:13:22.000 2020-01-02 03:41:43.000 802 99703 50252.5 5025250 802 99703 50252.5 5025250 -32766 32169 4377.3 437730 -124 127 -0.3 -30 +803 100 10793 99704 2.41141 299.41141 150.91141 15091.14114 2.41141 299.4114 150.9114 15091.14098 2.41141 299.41141 150.91141 15091.14100 2020-01-01 2020-01-02 2020-01-01 00:13:23 2020-01-02 03:41:44 2020-01-01 00:13:23.000 2020-01-02 03:41:44.000 803 99704 50253.5 5025350 803 99704 50253.5 5025350 -32765 32170 4378.3 437830 -128 127 -1.86 -186 +804 100 10794 99705 2.41441 299.41441 150.91441 15091.44144 2.41441 299.41443 150.91441 15091.44158 2.41441 299.41441 150.91441 15091.44100 2020-01-01 2020-01-02 2020-01-01 00:13:24 2020-01-02 03:41:45 2020-01-01 00:13:24.000 2020-01-02 03:41:45.000 804 99705 50254.5 5025450 804 99705 50254.5 5025450 -32764 32171 4379.3 437930 -128 123 -3.42 -342 +805 100 10795 99706 2.41741 299.41741 150.91741 15091.74174 2.41741 299.41742 150.91741 15091.74188 2.41741 299.41741 150.91741 15091.74100 2020-01-01 2020-01-02 2020-01-01 00:13:25 2020-01-02 03:41:46 2020-01-01 00:13:25.000 2020-01-02 03:41:46.000 805 99706 50255.5 5025550 805 99706 50255.5 5025550 -32763 32172 4380.3 438030 -127 124 -2.42 -242 +806 100 10796 99707 2.42042 299.42042 150.92042 15092.04204 2.42042 299.4204 150.92042 15092.04205 2.42042 299.42042 150.92042 15092.04200 2020-01-01 2020-01-02 2020-01-01 00:13:26 2020-01-02 03:41:47 2020-01-01 00:13:26.000 2020-01-02 03:41:47.000 806 99707 50256.5 5025650 806 99707 50256.5 5025650 -32762 32173 4381.3 438130 -126 125 -1.42 -142 +807 100 10797 99708 2.42342 299.42342 150.92342 15092.34234 2.42342 299.42343 150.92342 15092.34216 2.42342 299.42342 150.92342 15092.34200 2020-01-01 2020-01-02 2020-01-01 00:13:27 2020-01-02 03:41:48 2020-01-01 00:13:27.000 2020-01-02 03:41:48.000 807 99708 50257.5 5025750 807 99708 50257.5 5025750 -32761 32174 4382.3 438230 -125 126 -0.42 -42 +808 100 10798 99709 2.42642 299.42642 150.92642 15092.64264 2.42642 299.42642 150.92642 15092.64245 2.42642 299.42642 150.92642 15092.64200 2020-01-01 2020-01-02 2020-01-01 00:13:28 2020-01-02 03:41:49 2020-01-01 00:13:28.000 2020-01-02 03:41:49.000 808 99709 50258.5 5025850 808 99709 50258.5 5025850 -32760 32175 4383.3 438330 -124 127 0.58 58 +809 100 10799 99710 2.42942 299.42942 150.92942 15092.94294 2.42942 299.42944 150.92943 15092.94305 2.42942 299.42942 150.92942 15092.94200 2020-01-01 2020-01-02 2020-01-01 00:13:29 2020-01-02 03:41:50 2020-01-01 00:13:29.000 2020-01-02 03:41:50.000 809 99710 50259.5 5025950 809 99710 50259.5 5025950 -32759 32176 4384.3 438430 -128 127 -0.98 -98 +81 102 10071 99981 0.24324 300.24324 150.24324 15174.56756 0.24324 300.24326 150.24324 15174.56758 0.24324 300.24324 150.24324000000001 15174.56724 2020-01-01 2020-01-02 2020-01-01 00:01:21 2020-01-02 03:46:21 2020-01-01 00:01:21.000 2020-01-02 03:46:21.000 81 99981 50031 5053131 81 99981 50031 5053131 -32488 32447 4610.009900990099 465611 -127 124 -3.0594059405940595 -309 +810 100 10800 99711 2.43243 299.43243 150.93243 15093.24324 2.43243 299.43243 150.93243 15093.24338 2.43243 299.43243 150.93243 15093.24300 2020-01-01 2020-01-02 2020-01-01 00:13:30 2020-01-02 03:41:51 2020-01-01 00:13:30.000 2020-01-02 03:41:51.000 810 99711 50260.5 5026050 810 99711 50260.5 5026050 -32758 32177 4385.3 438530 -128 127 -2.54 -254 +811 100 10801 99712 2.43543 299.43543 150.93543 15093.54354 2.43543 299.43542 150.93543 15093.54353 2.43543 299.43543 150.93543 15093.54300 2020-01-01 2020-01-02 2020-01-01 00:13:31 2020-01-02 03:41:52 2020-01-01 00:13:31.000 2020-01-02 03:41:52.000 811 99712 50261.5 5026150 811 99712 50261.5 5026150 -32757 32178 4386.3 438630 -128 124 -4.1 -410 +812 100 10802 99713 2.43843 299.43843 150.93843 15093.84384 2.43843 299.43845 150.93844 15093.84428 2.43843 299.43843 150.93843 15093.84300 2020-01-01 2020-01-02 2020-01-01 00:13:32 2020-01-02 03:41:53 2020-01-01 00:13:32.000 2020-01-02 03:41:53.000 812 99713 50262.5 5026250 812 99713 50262.5 5026250 -32756 32179 4387.3 438730 -127 125 -3.1 -310 813 100 10803 99714 2.44144 299.44144 150.94144 15094.14414 2.44144 299.44144 150.94143 15094.14392 2.44144 299.44144 150.94144 15094.14400 2020-01-01 2020-01-02 2020-01-01 00:13:33 2020-01-02 03:41:54 2020-01-01 00:13:33.000 2020-01-02 03:41:54.000 813 99714 50263.5 5026350 813 99714 50263.5 5026350 -32755 32180 4388.3 438830 -126 126 -2.1 -210 -814 100 10804 99715 2.44444 299.44444 150.94444 15094.44444 2.44444 299.44446 150.94444 15094.44452 2.44444 299.44444 150.9444399999999 15094.44400 2020-01-01 2020-01-02 2020-01-01 00:13:34 2020-01-02 03:41:55 2020-01-01 00:13:34.000 2020-01-02 03:41:55.000 814 99715 50264.5 5026450 814 99715 50264.5 5026450 -32754 32181 4389.3 438930 -125 127 -1.1 -110 -815 100 10805 99716 2.44744 299.44744 150.94744 15094.74474 2.44744 299.44745 150.94744 15094.74485 2.44744 299.44744 150.94743999999994 15094.74400 2020-01-01 2020-01-02 2020-01-01 00:13:35 2020-01-02 03:41:56 2020-01-01 00:13:35.000 2020-01-02 03:41:56.000 815 99716 50265.5 5026550 815 99716 50265.5 5026550 -32753 32182 4390.3 439030 -128 127 -2.66 -266 -816 100 10806 99717 2.45045 299.45045 150.95045 15095.04504 2.45045 299.45044 150.95045 15095.045 2.45045 299.45045 150.95045000000016 15095.04500 2020-01-01 2020-01-02 2020-01-01 00:13:36 2020-01-02 03:41:57 2020-01-01 00:13:36.000 2020-01-02 03:41:57.000 816 99717 50266.5 5026650 816 99717 50266.5 5026650 -32752 32183 4391.3 439130 -128 127 -4.22 -422 -817 100 10807 99718 2.45345 299.45345 150.95345 15095.34534 2.45345 299.45346 150.95345 15095.34574 2.45345 299.45345 150.95345000000026 15095.34500 2020-01-01 2020-01-02 2020-01-01 00:13:37 2020-01-02 03:41:58 2020-01-01 00:13:37.000 2020-01-02 03:41:58.000 817 99718 50267.5 5026750 817 99718 50267.5 5026750 -32751 32184 4392.3 439230 -128 123 -5.78 -578 -818 100 10808 99719 2.45645 299.45645 150.95645 15095.64564 2.45645 299.45645 150.95645 15095.64539 2.45645 299.45645 150.9564499999998 15095.64500 2020-01-01 2020-01-02 2020-01-01 00:13:38 2020-01-02 03:41:59 2020-01-01 00:13:38.000 2020-01-02 03:41:59.000 818 99719 50268.5 5026850 818 99719 50268.5 5026850 -32750 32185 4393.3 439330 -127 124 -4.78 -478 -819 100 10809 99720 2.45945 299.45945 150.95945 15095.94594 2.45945 299.45947 150.95946 15095.94602 2.45945 299.45945 150.95945000000017 15095.94500 2020-01-01 2020-01-02 2020-01-01 00:13:39 2020-01-02 03:42:00 2020-01-01 00:13:39.000 2020-01-02 03:42:00.000 819 99720 50269.5 5026950 819 99720 50269.5 5026950 -32749 32186 4394.3 439430 -126 125 -3.78 -378 -82 102 10072 99982 0.24624 300.24624 150.24624 15174.87087 0.24624 300.24625 150.24624 15174.87088 0.24624 300.24624 150.24624000000028 15174.87024 2020-01-01 2020-01-02 2020-01-01 00:01:22 2020-01-02 03:46:22 2020-01-01 00:01:22.000 2020-01-02 03:46:22.000 82 99982 50032 5053232 82 99982 50032 5053232 -32487 32448 4611.009900990099 465712 -126 125 -2.0594059405940595 -208 -820 100 10810 99721 2.46246 299.46246 150.96246 15096.24624 2.46246 299.46246 150.96246 15096.24633 2.46246 299.46246 150.96246000000014 15096.24600 2020-01-01 2020-01-02 2020-01-01 00:13:40 2020-01-02 03:42:01 2020-01-01 00:13:40.000 2020-01-02 03:42:01.000 820 99721 50270.5 5027050 820 99721 50270.5 5027050 -32748 32187 4395.3 439530 -125 126 -2.78 -278 -821 100 10811 99722 2.46546 299.46546 150.96546 15096.54654 2.46546 299.46545 150.96546 15096.54646 2.46546 299.46546 150.96545999999995 15096.54600 2020-01-01 2020-01-02 2020-01-01 00:13:41 2020-01-02 03:42:02 2020-01-01 00:13:41.000 2020-01-02 03:42:02.000 821 99722 50271.5 5027150 821 99722 50271.5 5027150 -32747 32188 4396.3 439630 -124 127 -1.78 -178 -822 100 10812 99723 2.46846 299.46846 150.96846 15096.84684 2.46846 299.46848 150.96847 15096.84721 2.46846 299.46846 150.96846000000002 15096.84600 2020-01-01 2020-01-02 2020-01-01 00:13:42 2020-01-02 03:42:03 2020-01-01 00:13:42.000 2020-01-02 03:42:03.000 822 99723 50272.5 5027250 822 99723 50272.5 5027250 -32746 32189 4397.3 439730 -128 127 -3.34 -334 -823 100 10813 99724 2.47147 299.47147 150.97147 15097.14714 2.47147 299.47147 150.97146 15097.14686 2.47147 299.47147 150.9714700000003 15097.14700 2020-01-01 2020-01-02 2020-01-01 00:13:43 2020-01-02 03:42:04 2020-01-01 00:13:43.000 2020-01-02 03:42:04.000 823 99724 50273.5 5027350 823 99724 50273.5 5027350 -32745 32190 4398.3 439830 -128 123 -4.9 -490 -824 100 10814 99725 2.47447 299.47447 150.97447 15097.44744 2.47447 299.4745 150.97447 15097.44749 2.47447 299.47447 150.9744699999998 15097.44700 2020-01-01 2020-01-02 2020-01-01 00:13:44 2020-01-02 03:42:05 2020-01-01 00:13:44.000 2020-01-02 03:42:05.000 824 99725 50274.5 5027450 824 99725 50274.5 5027450 -32744 32191 4399.3 439930 -127 124 -3.9 -390 -825 100 10815 99726 2.47747 299.47747 150.97747 15097.74774 2.47747 299.47748 150.97747 15097.74779 2.47747 299.47747 150.97746999999984 15097.74700 2020-01-01 2020-01-02 2020-01-01 00:13:45 2020-01-02 03:42:06 2020-01-01 00:13:45.000 2020-01-02 03:42:06.000 825 99726 50275.5 5027550 825 99726 50275.5 5027550 -32743 32192 4400.3 440030 -126 125 -2.9 -290 -826 100 10816 99727 2.48048 299.48048 150.98048 15098.04804 2.48048 299.48047 150.98048 15098.04809 2.48048 299.48048 150.98048000000014 15098.04800 2020-01-01 2020-01-02 2020-01-01 00:13:46 2020-01-02 03:42:07 2020-01-01 00:13:46.000 2020-01-02 03:42:07.000 826 99727 50276.5 5027650 826 99727 50276.5 5027650 -32742 32193 4401.3 440130 -125 126 -1.9 -190 -827 100 10817 99728 2.48348 299.48348 150.98348 15098.34834 2.48348 299.4835 150.98348 15098.34869 2.48348 299.48348 150.98348000000018 15098.34800 2020-01-01 2020-01-02 2020-01-01 00:13:47 2020-01-02 03:42:08 2020-01-01 00:13:47.000 2020-01-02 03:42:08.000 827 99728 50277.5 5027750 827 99728 50277.5 5027750 -32741 32194 4402.3 440230 -124 127 -0.9 -90 -828 100 10818 99729 2.48648 299.48648 150.98648 15098.64864 2.48648 299.48648 150.98648 15098.64837 2.48648 299.48648 150.9864799999997 15098.64800 2020-01-01 2020-01-02 2020-01-01 00:13:48 2020-01-02 03:42:09 2020-01-01 00:13:48.000 2020-01-02 03:42:09.000 828 99729 50278.5 5027850 828 99729 50278.5 5027850 -32740 32195 4403.3 440330 -128 127 -2.46 -246 -829 100 10819 99730 2.48948 299.48948 150.98948 15098.94894 2.48948 299.4895 150.98948 15098.94896 2.48948 299.48948 150.98948000000016 15098.94800 2020-01-01 2020-01-02 2020-01-01 00:13:49 2020-01-02 03:42:10 2020-01-01 00:13:49.000 2020-01-02 03:42:10.000 829 99730 50279.5 5027950 829 99730 50279.5 5027950 -32739 32196 4404.3 440430 -128 123 -4.02 -402 -83 102 10073 99983 0.24924 300.24924 150.24924 15175.17417 0.24924 300.24924 150.24924 15175.17417 0.24924 300.24924 150.2492399999998 15175.17324 2020-01-01 2020-01-02 2020-01-01 00:01:23 2020-01-02 03:46:23 2020-01-01 00:01:23.000 2020-01-02 03:46:23.000 83 99983 50033 5053333 83 99983 50033 5053333 -32486 32449 4612.009900990099 465813 -125 126 -1.0594059405940595 -107 -830 100 10820 99731 2.49249 299.49249 150.99249 15099.24924 2.49249 299.4925 150.99249 15099.24926 2.49249 299.49249 150.99249000000003 15099.24900 2020-01-01 2020-01-02 2020-01-01 00:13:50 2020-01-02 03:42:11 2020-01-01 00:13:50.000 2020-01-02 03:42:11.000 830 99731 50280.5 5028050 830 99731 50280.5 5028050 -32738 32197 4405.3 440530 -127 124 -3.02 -302 -831 100 10821 99732 2.49549 299.49549 150.99549 15099.54954 2.49549 299.49548 150.99549 15099.54956 2.49549 299.49549 150.99548999999988 15099.54900 2020-01-01 2020-01-02 2020-01-01 00:13:51 2020-01-02 03:42:12 2020-01-01 00:13:51.000 2020-01-02 03:42:12.000 831 99732 50281.5 5028150 831 99732 50281.5 5028150 -32737 32198 4406.3 440630 -126 125 -2.02 -202 -832 100 10822 99733 2.49849 299.49849 150.99849 15099.84984 2.49849 299.4985 150.9985 15099.85016 2.49849 299.49849 150.99848999999998 15099.84900 2020-01-01 2020-01-02 2020-01-01 00:13:52 2020-01-02 03:42:13 2020-01-01 00:13:52.000 2020-01-02 03:42:13.000 832 99733 50282.5 5028250 832 99733 50282.5 5028250 -32736 32199 4407.3 440730 -125 126 -1.02 -102 -833 100 10823 99734 2.5015 299.5015 151.0015 15100.15015 2.5015 299.5015 151.00149 15100.14983 2.50150 299.50150 151.0015000000002 15100.15000 2020-01-01 2020-01-02 2020-01-01 00:13:53 2020-01-02 03:42:14 2020-01-01 00:13:53.000 2020-01-02 03:42:14.000 833 99734 50283.5 5028350 833 99734 50283.5 5028350 -32735 32200 4408.3 440830 -124 127 -0.02 -2 -834 100 10824 99735 2.5045 299.5045 151.0045 15100.45045 2.5045 299.50452 151.0045 15100.45043 2.50450 299.50450 151.00449999999972 15100.45000 2020-01-01 2020-01-02 2020-01-01 00:13:54 2020-01-02 03:42:15 2020-01-01 00:13:54.000 2020-01-02 03:42:15.000 834 99735 50284.5 5028450 834 99735 50284.5 5028450 -32734 32201 4409.3 440930 -128 127 -1.58 -158 -835 100 10825 99736 2.5075 299.5075 151.0075 15100.75075 2.5075 299.5075 151.0075 15100.75073 2.50750 299.50750 151.00749999999982 15100.75000 2020-01-01 2020-01-02 2020-01-01 00:13:55 2020-01-02 03:42:16 2020-01-01 00:13:55.000 2020-01-02 03:42:16.000 835 99736 50285.5 5028550 835 99736 50285.5 5028550 -32733 32202 4410.3 441030 -128 123 -3.14 -314 -836 100 10826 99737 2.51051 299.51051 151.01051 15101.05105 2.51051 299.5105 151.01051 15101.05103 2.51051 299.51051 151.01051000000004 15101.05100 2020-01-01 2020-01-02 2020-01-01 00:13:56 2020-01-02 03:42:17 2020-01-01 00:13:56.000 2020-01-02 03:42:17.000 836 99737 50286.5 5028650 836 99737 50286.5 5028650 -32732 32203 4411.3 441130 -127 124 -2.14 -214 -837 100 10827 99738 2.51351 299.51351 151.01351 15101.35135 2.51351 299.51352 151.01351 15101.35162 2.51351 299.51351 151.01351000000014 15101.35100 2020-01-01 2020-01-02 2020-01-01 00:13:57 2020-01-02 03:42:18 2020-01-01 00:13:57.000 2020-01-02 03:42:18.000 837 99738 50287.5 5028750 837 99738 50287.5 5028750 -32731 32204 4412.3 441230 -126 125 -1.14 -114 -838 100 10828 99739 2.51651 299.51651 151.01651 15101.65165 2.51651 299.5165 151.01651 15101.6513 2.51651 299.51651 151.01650999999998 15101.65100 2020-01-01 2020-01-02 2020-01-01 00:13:58 2020-01-02 03:42:19 2020-01-01 00:13:58.000 2020-01-02 03:42:19.000 838 99739 50288.5 5028850 838 99739 50288.5 5028850 -32730 32205 4413.3 441330 -125 126 -0.14 -14 -839 100 10829 99740 2.51951 299.51951 151.01951 15101.95195 2.51951 299.51953 151.01951 15101.9519 2.51951 299.51951 151.01951000000005 15101.95100 2020-01-01 2020-01-02 2020-01-01 00:13:59 2020-01-02 03:42:20 2020-01-01 00:13:59.000 2020-01-02 03:42:20.000 839 99740 50289.5 5028950 839 99740 50289.5 5028950 -32729 32206 4414.3 441430 -124 127 0.86 86 -84 102 10074 99984 0.25225 300.25225 150.25225 15175.47747 0.25225 300.25226 150.25225 15175.47778 0.25225 300.25225 150.25224999999966 15175.47725 2020-01-01 2020-01-02 2020-01-01 00:01:24 2020-01-02 03:46:24 2020-01-01 00:01:24.000 2020-01-02 03:46:24.000 84 99984 50034 5053434 84 99984 50034 5053434 -32485 32450 4613.009900990099 465914 -124 127 -0.0594059405940594 -6 -840 100 10830 99741 2.52252 299.52252 151.02252 15102.25225 2.52252 299.52252 151.02252 15102.2522 2.52252 299.52252 151.02252000000033 15102.25200 2020-01-01 2020-01-02 2020-01-01 00:14:00 2020-01-02 03:42:21 2020-01-01 00:14:00.000 2020-01-02 03:42:21.000 840 99741 50290.5 5029050 840 99741 50290.5 5029050 -32728 32207 4415.3 441530 -128 127 -0.7 -70 -841 100 10831 99742 2.52552 299.52552 151.02552 15102.55255 2.52552 299.5255 151.02552 15102.5525 2.52552 299.52552 151.02551999999983 15102.55200 2020-01-01 2020-01-02 2020-01-01 00:14:01 2020-01-02 03:42:22 2020-01-01 00:14:01.000 2020-01-02 03:42:22.000 841 99742 50291.5 5029150 841 99742 50291.5 5029150 -32727 32208 4416.3 441630 -128 127 -2.26 -226 -842 100 10832 99743 2.52852 299.52852 151.02852 15102.85285 2.52852 299.52853 151.02853 15102.85313 2.52852 299.52852 151.02851999999987 15102.85200 2020-01-01 2020-01-02 2020-01-01 00:14:02 2020-01-02 03:42:23 2020-01-01 00:14:02.000 2020-01-02 03:42:23.000 842 99743 50292.5 5029250 842 99743 50292.5 5029250 -32726 32209 4417.3 441730 -128 123 -3.82 -382 -843 100 10833 99744 2.53153 299.53153 151.03153 15103.15315 2.53153 299.53152 151.03152 15103.15278 2.53153 299.53153 151.03153000000017 15103.15300 2020-01-01 2020-01-02 2020-01-01 00:14:03 2020-01-02 03:42:24 2020-01-01 00:14:03.000 2020-01-02 03:42:24.000 843 99744 50293.5 5029350 843 99744 50293.5 5029350 -32725 32210 4418.3 441830 -127 124 -2.82 -282 -844 100 10834 99745 2.53453 299.53453 151.03453 15103.45345 2.53453 299.53455 151.03453 15103.45353 2.53453 299.53453 151.03453000000022 15103.45300 2020-01-01 2020-01-02 2020-01-01 00:14:04 2020-01-02 03:42:25 2020-01-01 00:14:04.000 2020-01-02 03:42:25.000 844 99745 50294.5 5029450 844 99745 50294.5 5029450 -32724 32211 4419.3 441930 -126 125 -1.82 -182 -845 100 10835 99746 2.53753 299.53753 151.03753 15103.75375 2.53753 299.53754 151.03753 15103.75366 2.53753 299.53753 151.03752999999972 15103.75300 2020-01-01 2020-01-02 2020-01-01 00:14:05 2020-01-02 03:42:26 2020-01-01 00:14:05.000 2020-01-02 03:42:26.000 845 99746 50295.5 5029550 845 99746 50295.5 5029550 -32723 32212 4420.3 442030 -125 126 -0.82 -82 +814 100 10804 99715 2.44444 299.44444 150.94444 15094.44444 2.44444 299.44446 150.94444 15094.44452 2.44444 299.44444 150.94444 15094.44400 2020-01-01 2020-01-02 2020-01-01 00:13:34 2020-01-02 03:41:55 2020-01-01 00:13:34.000 2020-01-02 03:41:55.000 814 99715 50264.5 5026450 814 99715 50264.5 5026450 -32754 32181 4389.3 438930 -125 127 -1.1 -110 +815 100 10805 99716 2.44744 299.44744 150.94744 15094.74474 2.44744 299.44745 150.94744 15094.74485 2.44744 299.44744 150.94744 15094.74400 2020-01-01 2020-01-02 2020-01-01 00:13:35 2020-01-02 03:41:56 2020-01-01 00:13:35.000 2020-01-02 03:41:56.000 815 99716 50265.5 5026550 815 99716 50265.5 5026550 -32753 32182 4390.3 439030 -128 127 -2.66 -266 +816 100 10806 99717 2.45045 299.45045 150.95045 15095.04504 2.45045 299.45044 150.95045 15095.045 2.45045 299.45045 150.95045 15095.04500 2020-01-01 2020-01-02 2020-01-01 00:13:36 2020-01-02 03:41:57 2020-01-01 00:13:36.000 2020-01-02 03:41:57.000 816 99717 50266.5 5026650 816 99717 50266.5 5026650 -32752 32183 4391.3 439130 -128 127 -4.22 -422 +817 100 10807 99718 2.45345 299.45345 150.95345 15095.34534 2.45345 299.45346 150.95345 15095.34574 2.45345 299.45345 150.95345 15095.34500 2020-01-01 2020-01-02 2020-01-01 00:13:37 2020-01-02 03:41:58 2020-01-01 00:13:37.000 2020-01-02 03:41:58.000 817 99718 50267.5 5026750 817 99718 50267.5 5026750 -32751 32184 4392.3 439230 -128 123 -5.78 -578 +818 100 10808 99719 2.45645 299.45645 150.95645 15095.64564 2.45645 299.45645 150.95645 15095.64539 2.45645 299.45645 150.95645000000002 15095.64500 2020-01-01 2020-01-02 2020-01-01 00:13:38 2020-01-02 03:41:59 2020-01-01 00:13:38.000 2020-01-02 03:41:59.000 818 99719 50268.5 5026850 818 99719 50268.5 5026850 -32750 32185 4393.3 439330 -127 124 -4.78 -478 +819 100 10809 99720 2.45945 299.45945 150.95945 15095.94594 2.45945 299.45947 150.95946 15095.94602 2.45945 299.45945 150.95945 15095.94500 2020-01-01 2020-01-02 2020-01-01 00:13:39 2020-01-02 03:42:00 2020-01-01 00:13:39.000 2020-01-02 03:42:00.000 819 99720 50269.5 5026950 819 99720 50269.5 5026950 -32749 32186 4394.3 439430 -126 125 -3.78 -378 +82 102 10072 99982 0.24624 300.24624 150.24624 15174.87087 0.24624 300.24625 150.24624 15174.87088 0.24624 300.24624 150.24624 15174.87024 2020-01-01 2020-01-02 2020-01-01 00:01:22 2020-01-02 03:46:22 2020-01-01 00:01:22.000 2020-01-02 03:46:22.000 82 99982 50032 5053232 82 99982 50032 5053232 -32487 32448 4611.009900990099 465712 -126 125 -2.0594059405940595 -208 +820 100 10810 99721 2.46246 299.46246 150.96246 15096.24624 2.46246 299.46246 150.96246 15096.24633 2.46246 299.46246 150.96246 15096.24600 2020-01-01 2020-01-02 2020-01-01 00:13:40 2020-01-02 03:42:01 2020-01-01 00:13:40.000 2020-01-02 03:42:01.000 820 99721 50270.5 5027050 820 99721 50270.5 5027050 -32748 32187 4395.3 439530 -125 126 -2.78 -278 +821 100 10811 99722 2.46546 299.46546 150.96546 15096.54654 2.46546 299.46545 150.96546 15096.54646 2.46546 299.46546 150.96546 15096.54600 2020-01-01 2020-01-02 2020-01-01 00:13:41 2020-01-02 03:42:02 2020-01-01 00:13:41.000 2020-01-02 03:42:02.000 821 99722 50271.5 5027150 821 99722 50271.5 5027150 -32747 32188 4396.3 439630 -124 127 -1.78 -178 +822 100 10812 99723 2.46846 299.46846 150.96846 15096.84684 2.46846 299.46848 150.96847 15096.84721 2.46846 299.46846 150.96846 15096.84600 2020-01-01 2020-01-02 2020-01-01 00:13:42 2020-01-02 03:42:03 2020-01-01 00:13:42.000 2020-01-02 03:42:03.000 822 99723 50272.5 5027250 822 99723 50272.5 5027250 -32746 32189 4397.3 439730 -128 127 -3.34 -334 +823 100 10813 99724 2.47147 299.47147 150.97147 15097.14714 2.47147 299.47147 150.97146 15097.14686 2.47147 299.47147 150.97147 15097.14700 2020-01-01 2020-01-02 2020-01-01 00:13:43 2020-01-02 03:42:04 2020-01-01 00:13:43.000 2020-01-02 03:42:04.000 823 99724 50273.5 5027350 823 99724 50273.5 5027350 -32745 32190 4398.3 439830 -128 123 -4.9 -490 +824 100 10814 99725 2.47447 299.47447 150.97447 15097.44744 2.47447 299.4745 150.97447 15097.44749 2.47447 299.47447 150.97447 15097.44700 2020-01-01 2020-01-02 2020-01-01 00:13:44 2020-01-02 03:42:05 2020-01-01 00:13:44.000 2020-01-02 03:42:05.000 824 99725 50274.5 5027450 824 99725 50274.5 5027450 -32744 32191 4399.3 439930 -127 124 -3.9 -390 +825 100 10815 99726 2.47747 299.47747 150.97747 15097.74774 2.47747 299.47748 150.97747 15097.74779 2.47747 299.47747 150.97746999999998 15097.74700 2020-01-01 2020-01-02 2020-01-01 00:13:45 2020-01-02 03:42:06 2020-01-01 00:13:45.000 2020-01-02 03:42:06.000 825 99726 50275.5 5027550 825 99726 50275.5 5027550 -32743 32192 4400.3 440030 -126 125 -2.9 -290 +826 100 10816 99727 2.48048 299.48048 150.98048 15098.04804 2.48048 299.48047 150.98048 15098.04809 2.48048 299.48048 150.98048 15098.04800 2020-01-01 2020-01-02 2020-01-01 00:13:46 2020-01-02 03:42:07 2020-01-01 00:13:46.000 2020-01-02 03:42:07.000 826 99727 50276.5 5027650 826 99727 50276.5 5027650 -32742 32193 4401.3 440130 -125 126 -1.9 -190 +827 100 10817 99728 2.48348 299.48348 150.98348 15098.34834 2.48348 299.4835 150.98348 15098.34869 2.48348 299.48348 150.98348 15098.34800 2020-01-01 2020-01-02 2020-01-01 00:13:47 2020-01-02 03:42:08 2020-01-01 00:13:47.000 2020-01-02 03:42:08.000 827 99728 50277.5 5027750 827 99728 50277.5 5027750 -32741 32194 4402.3 440230 -124 127 -0.9 -90 +828 100 10818 99729 2.48648 299.48648 150.98648 15098.64864 2.48648 299.48648 150.98648 15098.64837 2.48648 299.48648 150.98648 15098.64800 2020-01-01 2020-01-02 2020-01-01 00:13:48 2020-01-02 03:42:09 2020-01-01 00:13:48.000 2020-01-02 03:42:09.000 828 99729 50278.5 5027850 828 99729 50278.5 5027850 -32740 32195 4403.3 440330 -128 127 -2.46 -246 +829 100 10819 99730 2.48948 299.48948 150.98948 15098.94894 2.48948 299.4895 150.98948 15098.94896 2.48948 299.48948 150.98948000000001 15098.94800 2020-01-01 2020-01-02 2020-01-01 00:13:49 2020-01-02 03:42:10 2020-01-01 00:13:49.000 2020-01-02 03:42:10.000 829 99730 50279.5 5027950 829 99730 50279.5 5027950 -32739 32196 4404.3 440430 -128 123 -4.02 -402 +83 102 10073 99983 0.24924 300.24924 150.24924 15175.17417 0.24924 300.24924 150.24924 15175.17417 0.24924 300.24924 150.24924000000001 15175.17324 2020-01-01 2020-01-02 2020-01-01 00:01:23 2020-01-02 03:46:23 2020-01-01 00:01:23.000 2020-01-02 03:46:23.000 83 99983 50033 5053333 83 99983 50033 5053333 -32486 32449 4612.009900990099 465813 -125 126 -1.0594059405940595 -107 +830 100 10820 99731 2.49249 299.49249 150.99249 15099.24924 2.49249 299.4925 150.99249 15099.24926 2.49249 299.49249 150.99249 15099.24900 2020-01-01 2020-01-02 2020-01-01 00:13:50 2020-01-02 03:42:11 2020-01-01 00:13:50.000 2020-01-02 03:42:11.000 830 99731 50280.5 5028050 830 99731 50280.5 5028050 -32738 32197 4405.3 440530 -127 124 -3.02 -302 +831 100 10821 99732 2.49549 299.49549 150.99549 15099.54954 2.49549 299.49548 150.99549 15099.54956 2.49549 299.49549 150.99549000000002 15099.54900 2020-01-01 2020-01-02 2020-01-01 00:13:51 2020-01-02 03:42:12 2020-01-01 00:13:51.000 2020-01-02 03:42:12.000 831 99732 50281.5 5028150 831 99732 50281.5 5028150 -32737 32198 4406.3 440630 -126 125 -2.02 -202 +832 100 10822 99733 2.49849 299.49849 150.99849 15099.84984 2.49849 299.4985 150.9985 15099.85016 2.49849 299.49849 150.99849 15099.84900 2020-01-01 2020-01-02 2020-01-01 00:13:52 2020-01-02 03:42:13 2020-01-01 00:13:52.000 2020-01-02 03:42:13.000 832 99733 50282.5 5028250 832 99733 50282.5 5028250 -32736 32199 4407.3 440730 -125 126 -1.02 -102 +833 100 10823 99734 2.5015 299.5015 151.0015 15100.15015 2.5015 299.5015 151.00149 15100.14983 2.50150 299.50150 151.0015 15100.15000 2020-01-01 2020-01-02 2020-01-01 00:13:53 2020-01-02 03:42:14 2020-01-01 00:13:53.000 2020-01-02 03:42:14.000 833 99734 50283.5 5028350 833 99734 50283.5 5028350 -32735 32200 4408.3 440830 -124 127 -0.02 -2 +834 100 10824 99735 2.5045 299.5045 151.0045 15100.45045 2.5045 299.50452 151.0045 15100.45043 2.50450 299.50450 151.0045 15100.45000 2020-01-01 2020-01-02 2020-01-01 00:13:54 2020-01-02 03:42:15 2020-01-01 00:13:54.000 2020-01-02 03:42:15.000 834 99735 50284.5 5028450 834 99735 50284.5 5028450 -32734 32201 4409.3 440930 -128 127 -1.58 -158 +835 100 10825 99736 2.5075 299.5075 151.0075 15100.75075 2.5075 299.5075 151.0075 15100.75073 2.50750 299.50750 151.0075 15100.75000 2020-01-01 2020-01-02 2020-01-01 00:13:55 2020-01-02 03:42:16 2020-01-01 00:13:55.000 2020-01-02 03:42:16.000 835 99736 50285.5 5028550 835 99736 50285.5 5028550 -32733 32202 4410.3 441030 -128 123 -3.14 -314 +836 100 10826 99737 2.51051 299.51051 151.01051 15101.05105 2.51051 299.5105 151.01051 15101.05103 2.51051 299.51051 151.01050999999998 15101.05100 2020-01-01 2020-01-02 2020-01-01 00:13:56 2020-01-02 03:42:17 2020-01-01 00:13:56.000 2020-01-02 03:42:17.000 836 99737 50286.5 5028650 836 99737 50286.5 5028650 -32732 32203 4411.3 441130 -127 124 -2.14 -214 +837 100 10827 99738 2.51351 299.51351 151.01351 15101.35135 2.51351 299.51352 151.01351 15101.35162 2.51351 299.51351 151.01351 15101.35100 2020-01-01 2020-01-02 2020-01-01 00:13:57 2020-01-02 03:42:18 2020-01-01 00:13:57.000 2020-01-02 03:42:18.000 837 99738 50287.5 5028750 837 99738 50287.5 5028750 -32731 32204 4412.3 441230 -126 125 -1.14 -114 +838 100 10828 99739 2.51651 299.51651 151.01651 15101.65165 2.51651 299.5165 151.01651 15101.6513 2.51651 299.51651 151.01651 15101.65100 2020-01-01 2020-01-02 2020-01-01 00:13:58 2020-01-02 03:42:19 2020-01-01 00:13:58.000 2020-01-02 03:42:19.000 838 99739 50288.5 5028850 838 99739 50288.5 5028850 -32730 32205 4413.3 441330 -125 126 -0.14 -14 +839 100 10829 99740 2.51951 299.51951 151.01951 15101.95195 2.51951 299.51953 151.01951 15101.9519 2.51951 299.51951 151.01951 15101.95100 2020-01-01 2020-01-02 2020-01-01 00:13:59 2020-01-02 03:42:20 2020-01-01 00:13:59.000 2020-01-02 03:42:20.000 839 99740 50289.5 5028950 839 99740 50289.5 5028950 -32729 32206 4414.3 441430 -124 127 0.86 86 +84 102 10074 99984 0.25225 300.25225 150.25225 15175.47747 0.25225 300.25226 150.25225 15175.47778 0.25225 300.25225 150.25225 15175.47725 2020-01-01 2020-01-02 2020-01-01 00:01:24 2020-01-02 03:46:24 2020-01-01 00:01:24.000 2020-01-02 03:46:24.000 84 99984 50034 5053434 84 99984 50034 5053434 -32485 32450 4613.009900990099 465914 -124 127 -0.0594059405940594 -6 +840 100 10830 99741 2.52252 299.52252 151.02252 15102.25225 2.52252 299.52252 151.02252 15102.2522 2.52252 299.52252 151.02252000000001 15102.25200 2020-01-01 2020-01-02 2020-01-01 00:14:00 2020-01-02 03:42:21 2020-01-01 00:14:00.000 2020-01-02 03:42:21.000 840 99741 50290.5 5029050 840 99741 50290.5 5029050 -32728 32207 4415.3 441530 -128 127 -0.7 -70 +841 100 10831 99742 2.52552 299.52552 151.02552 15102.55255 2.52552 299.5255 151.02552 15102.5525 2.52552 299.52552 151.02552 15102.55200 2020-01-01 2020-01-02 2020-01-01 00:14:01 2020-01-02 03:42:22 2020-01-01 00:14:01.000 2020-01-02 03:42:22.000 841 99742 50291.5 5029150 841 99742 50291.5 5029150 -32727 32208 4416.3 441630 -128 127 -2.26 -226 +842 100 10832 99743 2.52852 299.52852 151.02852 15102.85285 2.52852 299.52853 151.02853 15102.85313 2.52852 299.52852 151.02852000000001 15102.85200 2020-01-01 2020-01-02 2020-01-01 00:14:02 2020-01-02 03:42:23 2020-01-01 00:14:02.000 2020-01-02 03:42:23.000 842 99743 50292.5 5029250 842 99743 50292.5 5029250 -32726 32209 4417.3 441730 -128 123 -3.82 -382 +843 100 10833 99744 2.53153 299.53153 151.03153 15103.15315 2.53153 299.53152 151.03152 15103.15278 2.53153 299.53153 151.03153 15103.15300 2020-01-01 2020-01-02 2020-01-01 00:14:03 2020-01-02 03:42:24 2020-01-01 00:14:03.000 2020-01-02 03:42:24.000 843 99744 50293.5 5029350 843 99744 50293.5 5029350 -32725 32210 4418.3 441830 -127 124 -2.82 -282 +844 100 10834 99745 2.53453 299.53453 151.03453 15103.45345 2.53453 299.53455 151.03453 15103.45353 2.53453 299.53453 151.03453 15103.45300 2020-01-01 2020-01-02 2020-01-01 00:14:04 2020-01-02 03:42:25 2020-01-01 00:14:04.000 2020-01-02 03:42:25.000 844 99745 50294.5 5029450 844 99745 50294.5 5029450 -32724 32211 4419.3 441930 -126 125 -1.82 -182 +845 100 10835 99746 2.53753 299.53753 151.03753 15103.75375 2.53753 299.53754 151.03753 15103.75366 2.53753 299.53753 151.03753 15103.75300 2020-01-01 2020-01-02 2020-01-01 00:14:05 2020-01-02 03:42:26 2020-01-01 00:14:05.000 2020-01-02 03:42:26.000 845 99746 50295.5 5029550 845 99746 50295.5 5029550 -32723 32212 4420.3 442030 -125 126 -0.82 -82 846 100 10836 99747 2.54054 299.54054 151.04054 15104.05405 2.54054 299.54053 151.04053 15104.05397 2.54054 299.54054 151.04054 15104.05400 2020-01-01 2020-01-02 2020-01-01 00:14:06 2020-01-02 03:42:27 2020-01-01 00:14:06.000 2020-01-02 03:42:27.000 846 99747 50296.5 5029650 846 99747 50296.5 5029650 -32722 32213 4421.3 442130 -124 127 0.18 18 -847 100 10837 99748 2.54354 299.54354 151.04354 15104.35435 2.54354 299.54355 151.04354 15104.3546 2.54354 299.54354 151.04354000000006 15104.35400 2020-01-01 2020-01-02 2020-01-01 00:14:07 2020-01-02 03:42:28 2020-01-01 00:14:07.000 2020-01-02 03:42:28.000 847 99748 50297.5 5029750 847 99748 50297.5 5029750 -32721 32214 4422.3 442230 -128 127 -1.38 -138 -848 100 10838 99749 2.54654 299.54654 151.04654 15104.65465 2.54654 299.54654 151.04654 15104.65425 2.54654 299.54654 151.04653999999988 15104.65400 2020-01-01 2020-01-02 2020-01-01 00:14:08 2020-01-02 03:42:29 2020-01-01 00:14:08.000 2020-01-02 03:42:29.000 848 99749 50298.5 5029850 848 99749 50298.5 5029850 -32720 32215 4423.3 442330 -128 123 -2.94 -294 -849 100 10839 99750 2.54954 299.54954 151.04954 15104.95495 2.54954 299.54956 151.04954 15104.95499 2.54954 299.54954 151.04953999999998 15104.95400 2020-01-01 2020-01-02 2020-01-01 00:14:09 2020-01-02 03:42:30 2020-01-01 00:14:09.000 2020-01-02 03:42:30.000 849 99750 50299.5 5029950 849 99750 50299.5 5029950 -32719 32216 4424.3 442430 -127 124 -1.94 -194 -85 102 10075 99985 0.25525 300.25525 150.25525 15175.78078 0.25525 300.25525 150.25525 15175.78046 0.25525 300.25525 150.25525000000013 15175.78025 2020-01-01 2020-01-02 2020-01-01 00:01:25 2020-01-02 03:46:25 2020-01-01 00:01:25.000 2020-01-02 03:46:25.000 85 99985 50035 5053535 85 99985 50035 5053535 -32484 32451 4614.009900990099 466015 -128 127 -1.5940594059405941 -161 -850 100 10840 99751 2.55255 299.55255 151.05255 15105.25525 2.55255 299.55255 151.05255 15105.25514 2.55255 299.55255 151.05255000000022 15105.25500 2020-01-01 2020-01-02 2020-01-01 00:14:10 2020-01-02 03:42:31 2020-01-01 00:14:10.000 2020-01-02 03:42:31.000 850 99751 50300.5 5030050 850 99751 50300.5 5030050 -32718 32217 4425.3 442530 -126 125 -0.94 -94 -851 100 10841 99752 2.55555 299.55555 151.05555 15105.55555 2.55555 299.55554 151.05555 15105.55547 2.55555 299.55555 151.05554999999973 15105.55500 2020-01-01 2020-01-02 2020-01-01 00:14:11 2020-01-02 03:42:32 2020-01-01 00:14:11.000 2020-01-02 03:42:32.000 851 99752 50301.5 5030150 851 99752 50301.5 5030150 -32717 32218 4426.3 442630 -125 126 0.06 6 -852 100 10842 99753 2.55855 299.55855 151.05855 15105.85585 2.55855 299.55856 151.05856 15105.85607 2.55855 299.55855 151.05854999999985 15105.85500 2020-01-01 2020-01-02 2020-01-01 00:14:12 2020-01-02 03:42:33 2020-01-01 00:14:12.000 2020-01-02 03:42:33.000 852 99753 50302.5 5030250 852 99753 50302.5 5030250 -32716 32219 4427.3 442730 -124 127 1.06 106 -853 100 10843 99754 2.56156 299.56156 151.06156 15106.15615 2.56156 299.56155 151.06155 15106.15571 2.56156 299.56156 151.06156000000007 15106.15600 2020-01-01 2020-01-02 2020-01-01 00:14:13 2020-01-02 03:42:34 2020-01-01 00:14:13.000 2020-01-02 03:42:34.000 853 99754 50303.5 5030350 853 99754 50303.5 5030350 -32715 32220 4428.3 442830 -128 127 -0.5 -50 -854 100 10844 99755 2.56456 299.56456 151.06456 15106.45645 2.56456 299.56458 151.06456 15106.45646 2.56456 299.56456 151.0645600000001 15106.45600 2020-01-01 2020-01-02 2020-01-01 00:14:14 2020-01-02 03:42:35 2020-01-01 00:14:14.000 2020-01-02 03:42:35.000 854 99755 50304.5 5030450 854 99755 50304.5 5030450 -32714 32221 4429.3 442930 -128 123 -2.06 -206 -855 100 10845 99756 2.56756 299.56756 151.06756 15106.75675 2.56756 299.56757 151.06756 15106.75661 2.56756 299.56756 151.06756000000001 15106.75600 2020-01-01 2020-01-02 2020-01-01 00:14:15 2020-01-02 03:42:36 2020-01-01 00:14:15.000 2020-01-02 03:42:36.000 855 99756 50305.5 5030550 855 99756 50305.5 5030550 -32713 32222 4430.3 443030 -127 124 -1.06 -106 -856 100 10846 99757 2.57057 299.57057 151.07057 15107.05705 2.57057 299.57056 151.07056 15107.05694 2.57057 299.57057 151.0705699999999 15107.05700 2020-01-01 2020-01-02 2020-01-01 00:14:16 2020-01-02 03:42:37 2020-01-01 00:14:16.000 2020-01-02 03:42:37.000 856 99757 50306.5 5030650 856 99757 50306.5 5030650 -32712 32223 4431.3 443130 -126 125 -0.06 -6 -857 100 10847 99758 2.57357 299.57357 151.07357 15107.35735 2.57357 299.57358 151.07357 15107.35754 2.57357 299.57357 151.07356999999996 15107.35700 2020-01-01 2020-01-02 2020-01-01 00:14:17 2020-01-02 03:42:38 2020-01-01 00:14:17.000 2020-01-02 03:42:38.000 857 99758 50307.5 5030750 857 99758 50307.5 5030750 -32711 32224 4432.3 443230 -125 126 0.94 94 -858 100 10848 99759 2.57657 299.57657 151.07657 15107.65765 2.57657 299.57657 151.07657 15107.65783 2.57657 299.57657 151.07656999999986 15107.65700 2020-01-01 2020-01-02 2020-01-01 00:14:18 2020-01-02 03:42:39 2020-01-01 00:14:18.000 2020-01-02 03:42:39.000 858 99759 50308.5 5030850 858 99759 50308.5 5030850 -32710 32225 4433.3 443330 -124 127 1.94 194 -859 100 10849 99760 2.57957 299.57957 151.07957 15107.95795 2.57957 299.5796 151.07957 15107.95794 2.57957 299.57957 151.0795699999999 15107.95700 2020-01-01 2020-01-02 2020-01-01 00:14:19 2020-01-02 03:42:40 2020-01-01 00:14:19.000 2020-01-02 03:42:40.000 859 99760 50309.5 5030950 859 99760 50309.5 5030950 -32709 32226 4434.3 443430 -128 127 0.38 38 -86 102 10076 99986 0.25825 300.25825 150.25825 15176.08408 0.25825 300.25827 150.25825 15176.08406 0.25825 300.25825 150.25825000000017 15176.08325 2020-01-01 2020-01-02 2020-01-01 00:01:26 2020-01-02 03:46:26 2020-01-01 00:01:26.000 2020-01-02 03:46:26.000 86 99986 50036 5053636 86 99986 50036 5053636 -32483 32452 4615.009900990099 466116 -128 123 -3.128712871287129 -316 -860 100 10850 99761 2.58258 299.58258 151.08258 15108.25825 2.58258 299.58258 151.08258 15108.25811 2.58258 299.58258 151.08258000000015 15108.25800 2020-01-01 2020-01-02 2020-01-01 00:14:20 2020-01-02 03:42:41 2020-01-01 00:14:20.000 2020-01-02 03:42:41.000 860 99761 50310.5 5031050 860 99761 50310.5 5031050 -32708 32227 4435.3 443530 -128 123 -1.18 -118 -861 100 10851 99762 2.58558 299.58558 151.08558 15108.55855 2.58558 299.58557 151.08558 15108.55841 2.58558 299.58558 151.08558000000025 15108.55800 2020-01-01 2020-01-02 2020-01-01 00:14:21 2020-01-02 03:42:42 2020-01-01 00:14:21.000 2020-01-02 03:42:42.000 861 99762 50311.5 5031150 861 99762 50311.5 5031150 -32707 32228 4436.3 443630 -127 124 -0.18 -18 -862 100 10852 99763 2.58858 299.58858 151.08858 15108.85885 2.58858 299.5886 151.08859 15108.85901 2.58858 299.58858 151.08857999999975 15108.85800 2020-01-01 2020-01-02 2020-01-01 00:14:22 2020-01-02 03:42:43 2020-01-01 00:14:22.000 2020-01-02 03:42:43.000 862 99763 50312.5 5031250 862 99763 50312.5 5031250 -32706 32229 4437.3 443730 -126 125 0.82 82 +847 100 10837 99748 2.54354 299.54354 151.04354 15104.35435 2.54354 299.54355 151.04354 15104.3546 2.54354 299.54354 151.04354 15104.35400 2020-01-01 2020-01-02 2020-01-01 00:14:07 2020-01-02 03:42:28 2020-01-01 00:14:07.000 2020-01-02 03:42:28.000 847 99748 50297.5 5029750 847 99748 50297.5 5029750 -32721 32214 4422.3 442230 -128 127 -1.38 -138 +848 100 10838 99749 2.54654 299.54654 151.04654 15104.65465 2.54654 299.54654 151.04654 15104.65425 2.54654 299.54654 151.04654 15104.65400 2020-01-01 2020-01-02 2020-01-01 00:14:08 2020-01-02 03:42:29 2020-01-01 00:14:08.000 2020-01-02 03:42:29.000 848 99749 50298.5 5029850 848 99749 50298.5 5029850 -32720 32215 4423.3 442330 -128 123 -2.94 -294 +849 100 10839 99750 2.54954 299.54954 151.04954 15104.95495 2.54954 299.54956 151.04954 15104.95499 2.54954 299.54954 151.04954 15104.95400 2020-01-01 2020-01-02 2020-01-01 00:14:09 2020-01-02 03:42:30 2020-01-01 00:14:09.000 2020-01-02 03:42:30.000 849 99750 50299.5 5029950 849 99750 50299.5 5029950 -32719 32216 4424.3 442430 -127 124 -1.94 -194 +85 102 10075 99985 0.25525 300.25525 150.25525 15175.78078 0.25525 300.25525 150.25525 15175.78046 0.25525 300.25525 150.25525 15175.78025 2020-01-01 2020-01-02 2020-01-01 00:01:25 2020-01-02 03:46:25 2020-01-01 00:01:25.000 2020-01-02 03:46:25.000 85 99985 50035 5053535 85 99985 50035 5053535 -32484 32451 4614.009900990099 466015 -128 127 -1.5940594059405941 -161 +850 100 10840 99751 2.55255 299.55255 151.05255 15105.25525 2.55255 299.55255 151.05255 15105.25514 2.55255 299.55255 151.05255 15105.25500 2020-01-01 2020-01-02 2020-01-01 00:14:10 2020-01-02 03:42:31 2020-01-01 00:14:10.000 2020-01-02 03:42:31.000 850 99751 50300.5 5030050 850 99751 50300.5 5030050 -32718 32217 4425.3 442530 -126 125 -0.94 -94 +851 100 10841 99752 2.55555 299.55555 151.05555 15105.55555 2.55555 299.55554 151.05555 15105.55547 2.55555 299.55555 151.05555 15105.55500 2020-01-01 2020-01-02 2020-01-01 00:14:11 2020-01-02 03:42:32 2020-01-01 00:14:11.000 2020-01-02 03:42:32.000 851 99752 50301.5 5030150 851 99752 50301.5 5030150 -32717 32218 4426.3 442630 -125 126 0.06 6 +852 100 10842 99753 2.55855 299.55855 151.05855 15105.85585 2.55855 299.55856 151.05856 15105.85607 2.55855 299.55855 151.05855 15105.85500 2020-01-01 2020-01-02 2020-01-01 00:14:12 2020-01-02 03:42:33 2020-01-01 00:14:12.000 2020-01-02 03:42:33.000 852 99753 50302.5 5030250 852 99753 50302.5 5030250 -32716 32219 4427.3 442730 -124 127 1.06 106 +853 100 10843 99754 2.56156 299.56156 151.06156 15106.15615 2.56156 299.56155 151.06155 15106.15571 2.56156 299.56156 151.06156000000001 15106.15600 2020-01-01 2020-01-02 2020-01-01 00:14:13 2020-01-02 03:42:34 2020-01-01 00:14:13.000 2020-01-02 03:42:34.000 853 99754 50303.5 5030350 853 99754 50303.5 5030350 -32715 32220 4428.3 442830 -128 127 -0.5 -50 +854 100 10844 99755 2.56456 299.56456 151.06456 15106.45645 2.56456 299.56458 151.06456 15106.45646 2.56456 299.56456 151.06456 15106.45600 2020-01-01 2020-01-02 2020-01-01 00:14:14 2020-01-02 03:42:35 2020-01-01 00:14:14.000 2020-01-02 03:42:35.000 854 99755 50304.5 5030450 854 99755 50304.5 5030450 -32714 32221 4429.3 442930 -128 123 -2.06 -206 +855 100 10845 99756 2.56756 299.56756 151.06756 15106.75675 2.56756 299.56757 151.06756 15106.75661 2.56756 299.56756 151.06756 15106.75600 2020-01-01 2020-01-02 2020-01-01 00:14:15 2020-01-02 03:42:36 2020-01-01 00:14:15.000 2020-01-02 03:42:36.000 855 99756 50305.5 5030550 855 99756 50305.5 5030550 -32713 32222 4430.3 443030 -127 124 -1.06 -106 +856 100 10846 99757 2.57057 299.57057 151.07057 15107.05705 2.57057 299.57056 151.07056 15107.05694 2.57057 299.57057 151.07057 15107.05700 2020-01-01 2020-01-02 2020-01-01 00:14:16 2020-01-02 03:42:37 2020-01-01 00:14:16.000 2020-01-02 03:42:37.000 856 99757 50306.5 5030650 856 99757 50306.5 5030650 -32712 32223 4431.3 443130 -126 125 -0.06 -6 +857 100 10847 99758 2.57357 299.57357 151.07357 15107.35735 2.57357 299.57358 151.07357 15107.35754 2.57357 299.57357 151.07357 15107.35700 2020-01-01 2020-01-02 2020-01-01 00:14:17 2020-01-02 03:42:38 2020-01-01 00:14:17.000 2020-01-02 03:42:38.000 857 99758 50307.5 5030750 857 99758 50307.5 5030750 -32711 32224 4432.3 443230 -125 126 0.94 94 +858 100 10848 99759 2.57657 299.57657 151.07657 15107.65765 2.57657 299.57657 151.07657 15107.65783 2.57657 299.57657 151.07657 15107.65700 2020-01-01 2020-01-02 2020-01-01 00:14:18 2020-01-02 03:42:39 2020-01-01 00:14:18.000 2020-01-02 03:42:39.000 858 99759 50308.5 5030850 858 99759 50308.5 5030850 -32710 32225 4433.3 443330 -124 127 1.94 194 +859 100 10849 99760 2.57957 299.57957 151.07957 15107.95795 2.57957 299.5796 151.07957 15107.95794 2.57957 299.57957 151.07957 15107.95700 2020-01-01 2020-01-02 2020-01-01 00:14:19 2020-01-02 03:42:40 2020-01-01 00:14:19.000 2020-01-02 03:42:40.000 859 99760 50309.5 5030950 859 99760 50309.5 5030950 -32709 32226 4434.3 443430 -128 127 0.38 38 +86 102 10076 99986 0.25825 300.25825 150.25825 15176.08408 0.25825 300.25827 150.25825 15176.08406 0.25825 300.25825 150.25825 15176.08325 2020-01-01 2020-01-02 2020-01-01 00:01:26 2020-01-02 03:46:26 2020-01-01 00:01:26.000 2020-01-02 03:46:26.000 86 99986 50036 5053636 86 99986 50036 5053636 -32483 32452 4615.009900990099 466116 -128 123 -3.128712871287129 -316 +860 100 10850 99761 2.58258 299.58258 151.08258 15108.25825 2.58258 299.58258 151.08258 15108.25811 2.58258 299.58258 151.08258 15108.25800 2020-01-01 2020-01-02 2020-01-01 00:14:20 2020-01-02 03:42:41 2020-01-01 00:14:20.000 2020-01-02 03:42:41.000 860 99761 50310.5 5031050 860 99761 50310.5 5031050 -32708 32227 4435.3 443530 -128 123 -1.18 -118 +861 100 10851 99762 2.58558 299.58558 151.08558 15108.55855 2.58558 299.58557 151.08558 15108.55841 2.58558 299.58558 151.08558000000002 15108.55800 2020-01-01 2020-01-02 2020-01-01 00:14:21 2020-01-02 03:42:42 2020-01-01 00:14:21.000 2020-01-02 03:42:42.000 861 99762 50311.5 5031150 861 99762 50311.5 5031150 -32707 32228 4436.3 443630 -127 124 -0.18 -18 +862 100 10852 99763 2.58858 299.58858 151.08858 15108.85885 2.58858 299.5886 151.08859 15108.85901 2.58858 299.58858 151.08858 15108.85800 2020-01-01 2020-01-02 2020-01-01 00:14:22 2020-01-02 03:42:43 2020-01-01 00:14:22.000 2020-01-02 03:42:43.000 862 99763 50312.5 5031250 862 99763 50312.5 5031250 -32706 32229 4437.3 443730 -126 125 0.82 82 863 100 10853 99764 2.59159 299.59159 151.09159 15109.15915 2.59159 299.59158 151.09159 15109.1593 2.59159 299.59159 151.09159 15109.15900 2020-01-01 2020-01-02 2020-01-01 00:14:23 2020-01-02 03:42:44 2020-01-01 00:14:23.000 2020-01-02 03:42:44.000 863 99764 50313.5 5031350 863 99764 50313.5 5031350 -32705 32230 4438.3 443830 -125 126 1.82 182 -864 100 10854 99765 2.59459 299.59459 151.09459 15109.45945 2.59459 299.5946 151.09459 15109.45941 2.59459 299.59459 151.0945900000001 15109.45900 2020-01-01 2020-01-02 2020-01-01 00:14:24 2020-01-02 03:42:45 2020-01-01 00:14:24.000 2020-01-02 03:42:45.000 864 99765 50314.5 5031450 864 99765 50314.5 5031450 -32704 32231 4439.3 443930 -124 127 2.82 282 +864 100 10854 99765 2.59459 299.59459 151.09459 15109.45945 2.59459 299.5946 151.09459 15109.45941 2.59459 299.59459 151.09459 15109.45900 2020-01-01 2020-01-02 2020-01-01 00:14:24 2020-01-02 03:42:45 2020-01-01 00:14:24.000 2020-01-02 03:42:45.000 864 99765 50314.5 5031450 864 99765 50314.5 5031450 -32704 32231 4439.3 443930 -124 127 2.82 282 865 100 10855 99766 2.59759 299.59759 151.09759 15109.75975 2.59759 299.5976 151.09759 15109.75958 2.59759 299.59759 151.09759 15109.75900 2020-01-01 2020-01-02 2020-01-01 00:14:25 2020-01-02 03:42:46 2020-01-01 00:14:25.000 2020-01-02 03:42:46.000 865 99766 50315.5 5031550 865 99766 50315.5 5031550 -32703 32232 4440.3 444030 -128 127 1.26 126 -866 100 10856 99767 2.6006 299.6006 151.1006 15110.06006 2.6006 299.6006 151.10059 15110.05988 2.60060 299.60060 151.10059999999987 15110.06000 2020-01-01 2020-01-02 2020-01-01 00:14:26 2020-01-02 03:42:47 2020-01-01 00:14:26.000 2020-01-02 03:42:47.000 866 99767 50316.5 5031650 866 99767 50316.5 5031650 -32702 32233 4441.3 444130 -128 127 -0.3 -30 -867 100 10857 99768 2.6036 299.6036 151.1036 15110.36036 2.6036 299.6036 151.1036 15110.36063 2.60360 299.60360 151.10360000000009 15110.36000 2020-01-01 2020-01-02 2020-01-01 00:14:27 2020-01-02 03:42:48 2020-01-01 00:14:27.000 2020-01-02 03:42:48.000 867 99768 50317.5 5031750 867 99768 50317.5 5031750 -32701 32234 4442.3 444230 -128 123 -1.86 -186 -868 100 10858 99769 2.6066 299.6066 151.1066 15110.66066 2.6066 299.6066 151.1066 15110.66078 2.60660 299.60660 151.10659999999993 15110.66000 2020-01-01 2020-01-02 2020-01-01 00:14:28 2020-01-02 03:42:49 2020-01-01 00:14:28.000 2020-01-02 03:42:49.000 868 99769 50318.5 5031850 868 99769 50318.5 5031850 -32700 32235 4443.3 444330 -127 124 -0.86 -86 -869 100 10859 99770 2.6096 299.6096 151.1096 15110.96096 2.6096 299.60962 151.1096 15110.96091 2.60960 299.60960 151.1095999999999 15110.96000 2020-01-01 2020-01-02 2020-01-01 00:14:29 2020-01-02 03:42:50 2020-01-01 00:14:29.000 2020-01-02 03:42:50.000 869 99770 50319.5 5031950 869 99770 50319.5 5031950 -32699 32236 4444.3 444430 -126 125 0.14 14 -87 102 10077 99987 0.26126 300.26126 150.26126 15176.38738 0.26126 300.26126 150.26126 15176.38736 0.26126 300.26126 150.26126000000002 15176.38726 2020-01-01 2020-01-02 2020-01-01 00:01:27 2020-01-02 03:46:27 2020-01-01 00:01:27.000 2020-01-02 03:46:27.000 87 99987 50037 5053737 87 99987 50037 5053737 -32482 32453 4616.009900990099 466217 -127 124 -2.128712871287129 -215 -870 100 10860 99771 2.61261 299.61261 151.11261 15111.26126 2.61261 299.6126 151.11261 15111.26105 2.61261 299.61261 151.11261000000007 15111.26100 2020-01-01 2020-01-02 2020-01-01 00:14:30 2020-01-02 03:42:51 2020-01-01 00:14:30.000 2020-01-02 03:42:51.000 870 99771 50320.5 5032050 870 99771 50320.5 5032050 -32698 32237 4445.3 444530 -125 126 1.14 114 -871 100 10861 99772 2.61561 299.61561 151.11561 15111.56156 2.61561 299.6156 151.11561 15111.56135 2.61561 299.61561 151.11561000000003 15111.56100 2020-01-01 2020-01-02 2020-01-01 00:14:31 2020-01-02 03:42:52 2020-01-01 00:14:31.000 2020-01-02 03:42:52.000 871 99772 50321.5 5032150 871 99772 50321.5 5032150 -32697 32238 4446.3 444630 -124 127 2.14 214 -872 100 10862 99773 2.61861 299.61861 151.11861 15111.86186 2.61861 299.61862 151.11862 15111.8621 2.61861 299.61861 151.11860999999982 15111.86100 2020-01-01 2020-01-02 2020-01-01 00:14:32 2020-01-02 03:42:53 2020-01-01 00:14:32.000 2020-01-02 03:42:53.000 872 99773 50322.5 5032250 872 99773 50322.5 5032250 -32696 32239 4447.3 444730 -128 127 0.58 58 -873 100 10863 99774 2.62162 299.62162 151.12162 15112.16216 2.62162 299.6216 151.12162 15112.16224 2.62162 299.62162 151.12161999999992 15112.16200 2020-01-01 2020-01-02 2020-01-01 00:14:33 2020-01-02 03:42:54 2020-01-01 00:14:33.000 2020-01-02 03:42:54.000 873 99774 50323.5 5032350 873 99774 50323.5 5032350 -32695 32240 4448.3 444830 -128 123 -0.98 -98 -874 100 10864 99775 2.62462 299.62462 151.12462 15112.46246 2.62462 299.62463 151.12462 15112.46238 2.62462 299.62462 151.12461999999996 15112.46200 2020-01-01 2020-01-02 2020-01-01 00:14:34 2020-01-02 03:42:55 2020-01-01 00:14:34.000 2020-01-02 03:42:55.000 874 99775 50324.5 5032450 874 99775 50324.5 5032450 -32694 32241 4449.3 444930 -127 124 0.02 2 -875 100 10865 99776 2.62762 299.62762 151.12762 15112.76276 2.62762 299.62762 151.12762 15112.76252 2.62762 299.62762 151.12761999999998 15112.76200 2020-01-01 2020-01-02 2020-01-01 00:14:35 2020-01-02 03:42:56 2020-01-01 00:14:35.000 2020-01-02 03:42:56.000 875 99776 50325.5 5032550 875 99776 50325.5 5032550 -32693 32242 4450.3 445030 -126 125 1.02 102 -876 100 10866 99777 2.63063 299.63063 151.13063 15113.06306 2.63063 299.63065 151.13063 15113.06327 2.63063 299.63063 151.1306299999999 15113.06300 2020-01-01 2020-01-02 2020-01-01 00:14:36 2020-01-02 03:42:57 2020-01-01 00:14:36.000 2020-01-02 03:42:57.000 876 99777 50326.5 5032650 876 99777 50326.5 5032650 -32692 32243 4451.3 445130 -125 126 2.02 202 -877 100 10867 99778 2.63363 299.63363 151.13363 15113.36336 2.63363 299.63364 151.13363 15113.36358 2.63363 299.63363 151.13363000000004 15113.36300 2020-01-01 2020-01-02 2020-01-01 00:14:37 2020-01-02 03:42:58 2020-01-01 00:14:37.000 2020-01-02 03:42:58.000 877 99778 50327.5 5032750 877 99778 50327.5 5032750 -32691 32244 4452.3 445230 -124 127 3.02 302 -878 100 10868 99779 2.63663 299.63663 151.13663 15113.66366 2.63663 299.63663 151.13663 15113.66371 2.63663 299.63663 151.13663000000008 15113.66300 2020-01-01 2020-01-02 2020-01-01 00:14:38 2020-01-02 03:42:59 2020-01-01 00:14:38.000 2020-01-02 03:42:59.000 878 99779 50328.5 5032850 878 99779 50328.5 5032850 -32690 32245 4453.3 445330 -128 127 1.46 146 -879 100 10869 99780 2.63963 299.63963 151.13963 15113.96396 2.63963 299.63965 151.13963 15113.96385 2.63963 299.63963 151.1396299999999 15113.96300 2020-01-01 2020-01-02 2020-01-01 00:14:39 2020-01-02 03:43:00 2020-01-01 00:14:39.000 2020-01-02 03:43:00.000 879 99780 50329.5 5032950 879 99780 50329.5 5032950 -32689 32246 4454.3 445430 -128 123 -0.1 -10 -88 102 10078 99988 0.26426 300.26426 150.26426 15176.69069 0.26426 300.26425 150.26426 15176.69066 0.26426 300.26426 150.26425999999995 15176.69026 2020-01-01 2020-01-02 2020-01-01 00:01:28 2020-01-02 03:46:28 2020-01-01 00:01:28.000 2020-01-02 03:46:28.000 88 99988 50038 5053838 88 99988 50038 5053838 -32481 32454 4617.009900990099 466318 -126 125 -1.1287128712871286 -114 +866 100 10856 99767 2.6006 299.6006 151.1006 15110.06006 2.6006 299.6006 151.10059 15110.05988 2.60060 299.60060 151.1006 15110.06000 2020-01-01 2020-01-02 2020-01-01 00:14:26 2020-01-02 03:42:47 2020-01-01 00:14:26.000 2020-01-02 03:42:47.000 866 99767 50316.5 5031650 866 99767 50316.5 5031650 -32702 32233 4441.3 444130 -128 127 -0.3 -30 +867 100 10857 99768 2.6036 299.6036 151.1036 15110.36036 2.6036 299.6036 151.1036 15110.36063 2.60360 299.60360 151.1036 15110.36000 2020-01-01 2020-01-02 2020-01-01 00:14:27 2020-01-02 03:42:48 2020-01-01 00:14:27.000 2020-01-02 03:42:48.000 867 99768 50317.5 5031750 867 99768 50317.5 5031750 -32701 32234 4442.3 444230 -128 123 -1.86 -186 +868 100 10858 99769 2.6066 299.6066 151.1066 15110.66066 2.6066 299.6066 151.1066 15110.66078 2.60660 299.60660 151.1066 15110.66000 2020-01-01 2020-01-02 2020-01-01 00:14:28 2020-01-02 03:42:49 2020-01-01 00:14:28.000 2020-01-02 03:42:49.000 868 99769 50318.5 5031850 868 99769 50318.5 5031850 -32700 32235 4443.3 444330 -127 124 -0.86 -86 +869 100 10859 99770 2.6096 299.6096 151.1096 15110.96096 2.6096 299.60962 151.1096 15110.96091 2.60960 299.60960 151.1096 15110.96000 2020-01-01 2020-01-02 2020-01-01 00:14:29 2020-01-02 03:42:50 2020-01-01 00:14:29.000 2020-01-02 03:42:50.000 869 99770 50319.5 5031950 869 99770 50319.5 5031950 -32699 32236 4444.3 444430 -126 125 0.14 14 +87 102 10077 99987 0.26126 300.26126 150.26126 15176.38738 0.26126 300.26126 150.26126 15176.38736 0.26126 300.26126 150.26126 15176.38726 2020-01-01 2020-01-02 2020-01-01 00:01:27 2020-01-02 03:46:27 2020-01-01 00:01:27.000 2020-01-02 03:46:27.000 87 99987 50037 5053737 87 99987 50037 5053737 -32482 32453 4616.009900990099 466217 -127 124 -2.128712871287129 -215 +870 100 10860 99771 2.61261 299.61261 151.11261 15111.26126 2.61261 299.6126 151.11261 15111.26105 2.61261 299.61261 151.11261000000002 15111.26100 2020-01-01 2020-01-02 2020-01-01 00:14:30 2020-01-02 03:42:51 2020-01-01 00:14:30.000 2020-01-02 03:42:51.000 870 99771 50320.5 5032050 870 99771 50320.5 5032050 -32698 32237 4445.3 444530 -125 126 1.14 114 +871 100 10861 99772 2.61561 299.61561 151.11561 15111.56156 2.61561 299.6156 151.11561 15111.56135 2.61561 299.61561 151.11561 15111.56100 2020-01-01 2020-01-02 2020-01-01 00:14:31 2020-01-02 03:42:52 2020-01-01 00:14:31.000 2020-01-02 03:42:52.000 871 99772 50321.5 5032150 871 99772 50321.5 5032150 -32697 32238 4446.3 444630 -124 127 2.14 214 +872 100 10862 99773 2.61861 299.61861 151.11861 15111.86186 2.61861 299.61862 151.11862 15111.8621 2.61861 299.61861 151.11861000000002 15111.86100 2020-01-01 2020-01-02 2020-01-01 00:14:32 2020-01-02 03:42:53 2020-01-01 00:14:32.000 2020-01-02 03:42:53.000 872 99773 50322.5 5032250 872 99773 50322.5 5032250 -32696 32239 4447.3 444730 -128 127 0.58 58 +873 100 10863 99774 2.62162 299.62162 151.12162 15112.16216 2.62162 299.6216 151.12162 15112.16224 2.62162 299.62162 151.12162 15112.16200 2020-01-01 2020-01-02 2020-01-01 00:14:33 2020-01-02 03:42:54 2020-01-01 00:14:33.000 2020-01-02 03:42:54.000 873 99774 50323.5 5032350 873 99774 50323.5 5032350 -32695 32240 4448.3 444830 -128 123 -0.98 -98 +874 100 10864 99775 2.62462 299.62462 151.12462 15112.46246 2.62462 299.62463 151.12462 15112.46238 2.62462 299.62462 151.12462 15112.46200 2020-01-01 2020-01-02 2020-01-01 00:14:34 2020-01-02 03:42:55 2020-01-01 00:14:34.000 2020-01-02 03:42:55.000 874 99775 50324.5 5032450 874 99775 50324.5 5032450 -32694 32241 4449.3 444930 -127 124 0.02 2 +875 100 10865 99776 2.62762 299.62762 151.12762 15112.76276 2.62762 299.62762 151.12762 15112.76252 2.62762 299.62762 151.12762 15112.76200 2020-01-01 2020-01-02 2020-01-01 00:14:35 2020-01-02 03:42:56 2020-01-01 00:14:35.000 2020-01-02 03:42:56.000 875 99776 50325.5 5032550 875 99776 50325.5 5032550 -32693 32242 4450.3 445030 -126 125 1.02 102 +876 100 10866 99777 2.63063 299.63063 151.13063 15113.06306 2.63063 299.63065 151.13063 15113.06327 2.63063 299.63063 151.13063 15113.06300 2020-01-01 2020-01-02 2020-01-01 00:14:36 2020-01-02 03:42:57 2020-01-01 00:14:36.000 2020-01-02 03:42:57.000 876 99777 50326.5 5032650 876 99777 50326.5 5032650 -32692 32243 4451.3 445130 -125 126 2.02 202 +877 100 10867 99778 2.63363 299.63363 151.13363 15113.36336 2.63363 299.63364 151.13363 15113.36358 2.63363 299.63363 151.13362999999998 15113.36300 2020-01-01 2020-01-02 2020-01-01 00:14:37 2020-01-02 03:42:58 2020-01-01 00:14:37.000 2020-01-02 03:42:58.000 877 99778 50327.5 5032750 877 99778 50327.5 5032750 -32691 32244 4452.3 445230 -124 127 3.02 302 +878 100 10868 99779 2.63663 299.63663 151.13663 15113.66366 2.63663 299.63663 151.13663 15113.66371 2.63663 299.63663 151.13663 15113.66300 2020-01-01 2020-01-02 2020-01-01 00:14:38 2020-01-02 03:42:59 2020-01-01 00:14:38.000 2020-01-02 03:42:59.000 878 99779 50328.5 5032850 878 99779 50328.5 5032850 -32690 32245 4453.3 445330 -128 127 1.46 146 +879 100 10869 99780 2.63963 299.63963 151.13963 15113.96396 2.63963 299.63965 151.13963 15113.96385 2.63963 299.63963 151.13963 15113.96300 2020-01-01 2020-01-02 2020-01-01 00:14:39 2020-01-02 03:43:00 2020-01-01 00:14:39.000 2020-01-02 03:43:00.000 879 99780 50329.5 5032950 879 99780 50329.5 5032950 -32689 32246 4454.3 445430 -128 123 -0.1 -10 +88 102 10078 99988 0.26426 300.26426 150.26426 15176.69069 0.26426 300.26425 150.26426 15176.69066 0.26426 300.26426 150.26426 15176.69026 2020-01-01 2020-01-02 2020-01-01 00:01:28 2020-01-02 03:46:28 2020-01-01 00:01:28.000 2020-01-02 03:46:28.000 88 99988 50038 5053838 88 99988 50038 5053838 -32481 32454 4617.009900990099 466318 -126 125 -1.1287128712871286 -114 880 100 10870 99781 2.64264 299.64264 151.14264 15114.26426 2.64264 299.64264 151.14263 15114.26399 2.64264 299.64264 151.14264 15114.26400 2020-01-01 2020-01-02 2020-01-01 00:14:40 2020-01-02 03:43:01 2020-01-01 00:14:40.000 2020-01-02 03:43:01.000 880 99781 50330.5 5033050 880 99781 50330.5 5033050 -32688 32247 4455.3 445530 -127 124 0.9 90 -881 100 10871 99782 2.64564 299.64564 151.14564 15114.56456 2.64564 299.64566 151.14564 15114.56474 2.64564 299.64564 151.14564000000007 15114.56400 2020-01-01 2020-01-02 2020-01-01 00:14:41 2020-01-02 03:43:02 2020-01-01 00:14:41.000 2020-01-02 03:43:02.000 881 99782 50331.5 5033150 881 99782 50331.5 5033150 -32687 32248 4456.3 445630 -126 125 1.9 190 -882 100 10872 99783 2.64864 299.64864 151.14864 15114.86486 2.64864 299.64865 151.14865 15114.86504 2.64864 299.64864 151.14863999999997 15114.86400 2020-01-01 2020-01-02 2020-01-01 00:14:42 2020-01-02 03:43:03 2020-01-01 00:14:42.000 2020-01-02 03:43:03.000 882 99783 50332.5 5033250 882 99783 50332.5 5033250 -32686 32249 4457.3 445730 -125 126 2.9 290 -883 100 10873 99784 2.65165 299.65165 151.15165 15115.16516 2.65165 299.65164 151.15165 15115.16522 2.65165 299.65165 151.1516499999999 15115.16500 2020-01-01 2020-01-02 2020-01-01 00:14:43 2020-01-02 03:43:04 2020-01-01 00:14:43.000 2020-01-02 03:43:04.000 883 99784 50333.5 5033350 883 99784 50333.5 5033350 -32685 32250 4458.3 445830 -124 127 3.9 390 -884 100 10874 99785 2.65465 299.65465 151.15465 15115.46546 2.65465 299.65466 151.15465 15115.46532 2.65465 299.65465 151.15465000000012 15115.46500 2020-01-01 2020-01-02 2020-01-01 00:14:44 2020-01-02 03:43:05 2020-01-01 00:14:44.000 2020-01-02 03:43:05.000 884 99785 50334.5 5033450 884 99785 50334.5 5033450 -32684 32251 4459.3 445930 -128 127 2.34 234 -885 100 10875 99786 2.65765 299.65765 151.15765 15115.76576 2.65765 299.65765 151.15765 15115.76562 2.65765 299.65765 151.15764999999996 15115.76500 2020-01-01 2020-01-02 2020-01-01 00:14:45 2020-01-02 03:43:06 2020-01-01 00:14:45.000 2020-01-02 03:43:06.000 885 99786 50335.5 5033550 885 99786 50335.5 5033550 -32683 32252 4460.3 446030 -128 123 0.78 78 -886 100 10876 99787 2.66066 299.66066 151.16066 15116.06606 2.66066 299.66068 151.16066 15116.06621 2.66066 299.66066 151.16065999999984 15116.06600 2020-01-01 2020-01-02 2020-01-01 00:14:46 2020-01-02 03:43:07 2020-01-01 00:14:46.000 2020-01-02 03:43:07.000 886 99787 50336.5 5033650 886 99787 50336.5 5033650 -32682 32253 4461.3 446130 -127 124 1.78 178 -887 100 10877 99788 2.66366 299.66366 151.16366 15116.36636 2.66366 299.66367 151.16366 15116.36651 2.66366 299.66366 151.16366000000008 15116.36600 2020-01-01 2020-01-02 2020-01-01 00:14:47 2020-01-02 03:43:08 2020-01-01 00:14:47.000 2020-01-02 03:43:08.000 887 99788 50337.5 5033750 887 99788 50337.5 5033750 -32681 32254 4462.3 446230 -126 125 2.78 278 -888 100 10878 99789 2.66666 299.66666 151.16666 15116.66666 2.66666 299.66666 151.16666 15116.66669 2.66666 299.66666 151.16666000000004 15116.66600 2020-01-01 2020-01-02 2020-01-01 00:14:48 2020-01-02 03:43:09 2020-01-01 00:14:48.000 2020-01-02 03:43:09.000 888 99789 50338.5 5033850 888 99789 50338.5 5033850 -32680 32255 4463.3 446330 -125 126 3.78 378 -889 100 10879 99790 2.66966 299.66966 151.16966 15116.96696 2.66966 299.66968 151.16966 15116.96679 2.66966 299.66966 151.16965999999985 15116.96600 2020-01-01 2020-01-02 2020-01-01 00:14:49 2020-01-02 03:43:10 2020-01-01 00:14:49.000 2020-01-02 03:43:10.000 889 99790 50339.5 5033950 889 99790 50339.5 5033950 -32679 32256 4464.3 446430 -124 127 4.78 478 -89 102 10079 99989 0.26726 300.26726 150.26726 15176.99399 0.26726 300.26727 150.26727 15176.9943 0.26726 300.26726 150.26726000000002 15176.99326 2020-01-01 2020-01-02 2020-01-01 00:01:29 2020-01-02 03:46:29 2020-01-01 00:01:29.000 2020-01-02 03:46:29.000 89 99989 50039 5053939 89 99989 50039 5053939 -32480 32455 4618.009900990099 466419 -125 126 -0.12871287128712872 -13 -890 100 10880 99791 2.67267 299.67267 151.17267 15117.26726 2.67267 299.67267 151.17267 15117.26708 2.67267 299.67267 151.17266999999995 15117.26700 2020-01-01 2020-01-02 2020-01-01 00:14:50 2020-01-02 03:43:11 2020-01-01 00:14:50.000 2020-01-02 03:43:11.000 890 99791 50340.5 5034050 890 99791 50340.5 5034050 -32678 32257 4465.3 446530 -128 127 3.22 322 +881 100 10871 99782 2.64564 299.64564 151.14564 15114.56456 2.64564 299.64566 151.14564 15114.56474 2.64564 299.64564 151.14564000000001 15114.56400 2020-01-01 2020-01-02 2020-01-01 00:14:41 2020-01-02 03:43:02 2020-01-01 00:14:41.000 2020-01-02 03:43:02.000 881 99782 50331.5 5033150 881 99782 50331.5 5033150 -32687 32248 4456.3 445630 -126 125 1.9 190 +882 100 10872 99783 2.64864 299.64864 151.14864 15114.86486 2.64864 299.64865 151.14865 15114.86504 2.64864 299.64864 151.14864 15114.86400 2020-01-01 2020-01-02 2020-01-01 00:14:42 2020-01-02 03:43:03 2020-01-01 00:14:42.000 2020-01-02 03:43:03.000 882 99783 50332.5 5033250 882 99783 50332.5 5033250 -32686 32249 4457.3 445730 -125 126 2.9 290 +883 100 10873 99784 2.65165 299.65165 151.15165 15115.16516 2.65165 299.65164 151.15165 15115.16522 2.65165 299.65165 151.15165000000002 15115.16500 2020-01-01 2020-01-02 2020-01-01 00:14:43 2020-01-02 03:43:04 2020-01-01 00:14:43.000 2020-01-02 03:43:04.000 883 99784 50333.5 5033350 883 99784 50333.5 5033350 -32685 32250 4458.3 445830 -124 127 3.9 390 +884 100 10874 99785 2.65465 299.65465 151.15465 15115.46546 2.65465 299.65466 151.15465 15115.46532 2.65465 299.65465 151.15465 15115.46500 2020-01-01 2020-01-02 2020-01-01 00:14:44 2020-01-02 03:43:05 2020-01-01 00:14:44.000 2020-01-02 03:43:05.000 884 99785 50334.5 5033450 884 99785 50334.5 5033450 -32684 32251 4459.3 445930 -128 127 2.34 234 +885 100 10875 99786 2.65765 299.65765 151.15765 15115.76576 2.65765 299.65765 151.15765 15115.76562 2.65765 299.65765 151.15765 15115.76500 2020-01-01 2020-01-02 2020-01-01 00:14:45 2020-01-02 03:43:06 2020-01-01 00:14:45.000 2020-01-02 03:43:06.000 885 99786 50335.5 5033550 885 99786 50335.5 5033550 -32683 32252 4460.3 446030 -128 123 0.78 78 +886 100 10876 99787 2.66066 299.66066 151.16066 15116.06606 2.66066 299.66068 151.16066 15116.06621 2.66066 299.66066 151.16066 15116.06600 2020-01-01 2020-01-02 2020-01-01 00:14:46 2020-01-02 03:43:07 2020-01-01 00:14:46.000 2020-01-02 03:43:07.000 886 99787 50336.5 5033650 886 99787 50336.5 5033650 -32682 32253 4461.3 446130 -127 124 1.78 178 +887 100 10877 99788 2.66366 299.66366 151.16366 15116.36636 2.66366 299.66367 151.16366 15116.36651 2.66366 299.66366 151.16366 15116.36600 2020-01-01 2020-01-02 2020-01-01 00:14:47 2020-01-02 03:43:08 2020-01-01 00:14:47.000 2020-01-02 03:43:08.000 887 99788 50337.5 5033750 887 99788 50337.5 5033750 -32681 32254 4462.3 446230 -126 125 2.78 278 +888 100 10878 99789 2.66666 299.66666 151.16666 15116.66666 2.66666 299.66666 151.16666 15116.66669 2.66666 299.66666 151.16665999999998 15116.66600 2020-01-01 2020-01-02 2020-01-01 00:14:48 2020-01-02 03:43:09 2020-01-01 00:14:48.000 2020-01-02 03:43:09.000 888 99789 50338.5 5033850 888 99789 50338.5 5033850 -32680 32255 4463.3 446330 -125 126 3.78 378 +889 100 10879 99790 2.66966 299.66966 151.16966 15116.96696 2.66966 299.66968 151.16966 15116.96679 2.66966 299.66966 151.16966 15116.96600 2020-01-01 2020-01-02 2020-01-01 00:14:49 2020-01-02 03:43:10 2020-01-01 00:14:49.000 2020-01-02 03:43:10.000 889 99790 50339.5 5033950 889 99790 50339.5 5033950 -32679 32256 4464.3 446430 -124 127 4.78 478 +89 102 10079 99989 0.26726 300.26726 150.26726 15176.99399 0.26726 300.26727 150.26727 15176.9943 0.26726 300.26726 150.26726 15176.99326 2020-01-01 2020-01-02 2020-01-01 00:01:29 2020-01-02 03:46:29 2020-01-01 00:01:29.000 2020-01-02 03:46:29.000 89 99989 50039 5053939 89 99989 50039 5053939 -32480 32455 4618.009900990099 466419 -125 126 -0.12871287128712872 -13 +890 100 10880 99791 2.67267 299.67267 151.17267 15117.26726 2.67267 299.67267 151.17267 15117.26708 2.67267 299.67267 151.17267 15117.26700 2020-01-01 2020-01-02 2020-01-01 00:14:50 2020-01-02 03:43:11 2020-01-01 00:14:50.000 2020-01-02 03:43:11.000 890 99791 50340.5 5034050 890 99791 50340.5 5034050 -32678 32257 4465.3 446530 -128 127 3.22 322 891 100 10881 99792 2.67567 299.67567 151.17567 15117.56756 2.67567 299.6757 151.17567 15117.56768 2.67567 299.67567 151.17567 15117.56700 2020-01-01 2020-01-02 2020-01-01 00:14:51 2020-01-02 03:43:12 2020-01-01 00:14:51.000 2020-01-02 03:43:12.000 891 99792 50341.5 5034150 891 99792 50341.5 5034150 -32677 32258 4466.3 446630 -128 127 1.66 166 892 100 10882 99793 2.67867 299.67867 151.17867 15117.86786 2.67867 299.67868 151.17868 15117.86802 2.67867 299.67867 151.17867 15117.86700 2020-01-01 2020-01-02 2020-01-01 00:14:52 2020-01-02 03:43:13 2020-01-01 00:14:52.000 2020-01-02 03:43:13.000 892 99793 50342.5 5034250 892 99793 50342.5 5034250 -32676 32259 4467.3 446730 -128 124 0.1 10 -893 100 10883 99794 2.68168 299.68168 151.18168 15118.16816 2.68168 299.68167 151.18168 15118.16816 2.68168 299.68168 151.18167999999991 15118.16800 2020-01-01 2020-01-02 2020-01-01 00:14:53 2020-01-02 03:43:14 2020-01-01 00:14:53.000 2020-01-02 03:43:14.000 893 99794 50343.5 5034350 893 99794 50343.5 5034350 -32675 32260 4468.3 446830 -127 125 1.1 110 -894 100 10884 99795 2.68468 299.68468 151.18468 15118.46846 2.68468 299.6847 151.18468 15118.46826 2.68468 299.68468 151.18468000000007 15118.46800 2020-01-01 2020-01-02 2020-01-01 00:14:54 2020-01-02 03:43:15 2020-01-01 00:14:54.000 2020-01-02 03:43:15.000 894 99795 50344.5 5034450 894 99795 50344.5 5034450 -32674 32261 4469.3 446930 -126 126 2.1 210 -895 100 10885 99796 2.68768 299.68768 151.18768 15118.76876 2.68768 299.68768 151.18768 15118.76855 2.68768 299.68768 151.18767999999992 15118.76800 2020-01-01 2020-01-02 2020-01-01 00:14:55 2020-01-02 03:43:16 2020-01-01 00:14:55.000 2020-01-02 03:43:16.000 895 99796 50345.5 5034550 895 99796 50345.5 5034550 -32673 32262 4470.3 447030 -125 127 3.1 310 +893 100 10883 99794 2.68168 299.68168 151.18168 15118.16816 2.68168 299.68167 151.18168 15118.16816 2.68168 299.68168 151.18168 15118.16800 2020-01-01 2020-01-02 2020-01-01 00:14:53 2020-01-02 03:43:14 2020-01-01 00:14:53.000 2020-01-02 03:43:14.000 893 99794 50343.5 5034350 893 99794 50343.5 5034350 -32675 32260 4468.3 446830 -127 125 1.1 110 +894 100 10884 99795 2.68468 299.68468 151.18468 15118.46846 2.68468 299.6847 151.18468 15118.46826 2.68468 299.68468 151.18468000000001 15118.46800 2020-01-01 2020-01-02 2020-01-01 00:14:54 2020-01-02 03:43:15 2020-01-01 00:14:54.000 2020-01-02 03:43:15.000 894 99795 50344.5 5034450 894 99795 50344.5 5034450 -32674 32261 4469.3 446930 -126 126 2.1 210 +895 100 10885 99796 2.68768 299.68768 151.18768 15118.76876 2.68768 299.68768 151.18768 15118.76855 2.68768 299.68768 151.18768 15118.76800 2020-01-01 2020-01-02 2020-01-01 00:14:55 2020-01-02 03:43:16 2020-01-01 00:14:55.000 2020-01-02 03:43:16.000 895 99796 50345.5 5034550 895 99796 50345.5 5034550 -32673 32262 4470.3 447030 -125 127 3.1 310 896 100 10886 99797 2.69069 299.69069 151.19069 15119.06906 2.69069 299.6907 151.19069 15119.06915 2.69069 299.69069 151.19069 15119.06900 2020-01-01 2020-01-02 2020-01-01 00:14:56 2020-01-02 03:43:17 2020-01-01 00:14:56.000 2020-01-02 03:43:17.000 896 99797 50346.5 5034650 896 99797 50346.5 5034650 -32672 32263 4471.3 447130 -128 127 1.54 154 -897 100 10887 99798 2.69369 299.69369 151.19369 15119.36936 2.69369 299.6937 151.19369 15119.36949 2.69369 299.69369 151.19369000000003 15119.36900 2020-01-01 2020-01-02 2020-01-01 00:14:57 2020-01-02 03:43:18 2020-01-01 00:14:57.000 2020-01-02 03:43:18.000 897 99798 50347.5 5034750 897 99798 50347.5 5034750 -32671 32264 4472.3 447230 -128 127 -0.02 -2 +897 100 10887 99798 2.69369 299.69369 151.19369 15119.36936 2.69369 299.6937 151.19369 15119.36949 2.69369 299.69369 151.19369 15119.36900 2020-01-01 2020-01-02 2020-01-01 00:14:57 2020-01-02 03:43:18 2020-01-01 00:14:57.000 2020-01-02 03:43:18.000 897 99798 50347.5 5034750 897 99798 50347.5 5034750 -32671 32264 4472.3 447230 -128 127 -0.02 -2 898 100 10888 99799 2.69669 299.69669 151.19669 15119.66966 2.69669 299.6967 151.19669 15119.66963 2.69669 299.69669 151.19669 15119.66900 2020-01-01 2020-01-02 2020-01-01 00:14:58 2020-01-02 03:43:19 2020-01-01 00:14:58.000 2020-01-02 03:43:19.000 898 99799 50348.5 5034850 898 99799 50348.5 5034850 -32670 32265 4473.3 447330 -128 123 -1.58 -158 899 100 10889 99800 2.69969 299.69969 151.19969 15119.96996 2.69969 299.6997 151.1997 15119.97038 2.69969 299.69969 151.19969 15119.96900 2020-01-01 2020-01-02 2020-01-01 00:14:59 2020-01-02 03:43:20 2020-01-01 00:14:59.000 2020-01-02 03:43:20.000 899 99800 50349.5 5034950 899 99800 50349.5 5034950 -32669 32266 4474.3 447430 -127 124 -0.58 -58 -9 102 1008 9999 0.02702 300.02702 150.02702 15152.72972 0.02702 300.02704 150.02702 15152.72966 0.02702 300.02702 150.02701999999985 15152.72902 2020-01-01 2020-01-02 2020-01-01 00:00:09 2020-01-02 03:45:09 2020-01-01 00:00:09.000 2020-01-02 03:45:09.000 9 99909 49959 5045859 9 99909 49959 5045859 -32560 32375 4538.009900990099 458339 -124 127 0.9801980198019802 99 -90 102 10080 99990 0.27027 300.27027 150.27027 15177.29729 0.27027 300.27026 150.27026 15177.29694 0.27027 300.27027 150.27027000000007 15177.29727 2020-01-01 2020-01-02 2020-01-01 00:01:30 2020-01-02 03:46:30 2020-01-01 00:01:30.000 2020-01-02 03:46:30.000 90 99990 50040 5054040 90 99990 50040 5054040 -32479 32456 4619.009900990099 466520 -124 127 0.8712871287128713 88 -900 100 10890 99801 2.7027 299.7027 151.2027 15120.27027 2.7027 299.7027 151.2027 15120.27003 2.70270 299.70270 151.2026999999999 15120.27000 2020-01-01 2020-01-02 2020-01-01 00:15:00 2020-01-02 03:43:21 2020-01-01 00:15:00.000 2020-01-02 03:43:21.000 900 99801 50350.5 5035050 900 99801 50350.5 5035050 -32668 32267 4475.3 447530 -126 125 0.42 42 -901 100 10891 99802 2.7057 299.7057 151.2057 15120.57057 2.7057 299.70572 151.2057 15120.57066 2.70570 299.70570 151.20570000000015 15120.57000 2020-01-01 2020-01-02 2020-01-01 00:15:01 2020-01-02 03:43:22 2020-01-01 00:15:01.000 2020-01-02 03:43:22.000 901 99802 50351.5 5035150 901 99802 50351.5 5035150 -32667 32268 4476.3 447630 -125 126 1.42 142 -902 100 10892 99803 2.7087 299.7087 151.2087 15120.87087 2.7087 299.7087 151.2087 15120.87095 2.70870 299.70870 151.20869999999996 15120.87000 2020-01-01 2020-01-02 2020-01-01 00:15:02 2020-01-02 03:43:23 2020-01-01 00:15:02.000 2020-01-02 03:43:23.000 902 99803 50352.5 5035250 902 99803 50352.5 5035250 -32666 32269 4477.3 447730 -124 127 2.42 242 -903 100 10893 99804 2.71171 299.71171 151.21171 15121.17117 2.71171 299.7117 151.21171 15121.1711 2.71171 299.71171 151.21170999999987 15121.17100 2020-01-01 2020-01-02 2020-01-01 00:15:03 2020-01-02 03:43:24 2020-01-01 00:15:03.000 2020-01-02 03:43:24.000 903 99804 50353.5 5035350 903 99804 50353.5 5035350 -32665 32270 4478.3 447830 -128 127 0.86 86 -904 100 10894 99805 2.71471 299.71471 151.21471 15121.47147 2.71471 299.71472 151.21471 15121.47185 2.71471 299.71471 151.21471000000008 15121.47100 2020-01-01 2020-01-02 2020-01-01 00:15:04 2020-01-02 03:43:25 2020-01-01 00:15:04.000 2020-01-02 03:43:25.000 904 99805 50354.5 5035450 904 99805 50354.5 5035450 -32664 32271 4479.3 447930 -128 123 -0.7 -70 -905 100 10895 99806 2.71771 299.71771 151.21771 15121.77177 2.71771 299.7177 151.21771 15121.77149 2.71771 299.71771 151.21771000000004 15121.77100 2020-01-01 2020-01-02 2020-01-01 00:15:05 2020-01-02 03:43:26 2020-01-01 00:15:05.000 2020-01-02 03:43:26.000 905 99806 50355.5 5035550 905 99806 50355.5 5035550 -32663 32272 4480.3 448030 -127 124 0.3 30 -906 100 10896 99807 2.72072 299.72072 151.22072 15122.07207 2.72072 299.72073 151.22072 15122.07212 2.72072 299.72072 151.22071999999991 15122.07200 2020-01-01 2020-01-02 2020-01-01 00:15:06 2020-01-02 03:43:27 2020-01-01 00:15:06.000 2020-01-02 03:43:27.000 906 99807 50356.5 5035650 906 99807 50356.5 5035650 -32662 32273 4481.3 448130 -126 125 1.3 130 +9 102 1008 9999 0.02702 300.02702 150.02702 15152.72972 0.02702 300.02704 150.02702 15152.72966 0.02702 300.02702 150.02702 15152.72902 2020-01-01 2020-01-02 2020-01-01 00:00:09 2020-01-02 03:45:09 2020-01-01 00:00:09.000 2020-01-02 03:45:09.000 9 99909 49959 5045859 9 99909 49959 5045859 -32560 32375 4538.009900990099 458339 -124 127 0.9801980198019802 99 +90 102 10080 99990 0.27027 300.27027 150.27027 15177.29729 0.27027 300.27026 150.27026 15177.29694 0.27027 300.27027 150.27026999999998 15177.29727 2020-01-01 2020-01-02 2020-01-01 00:01:30 2020-01-02 03:46:30 2020-01-01 00:01:30.000 2020-01-02 03:46:30.000 90 99990 50040 5054040 90 99990 50040 5054040 -32479 32456 4619.009900990099 466520 -124 127 0.8712871287128713 88 +900 100 10890 99801 2.7027 299.7027 151.2027 15120.27027 2.7027 299.7027 151.2027 15120.27003 2.70270 299.70270 151.2027 15120.27000 2020-01-01 2020-01-02 2020-01-01 00:15:00 2020-01-02 03:43:21 2020-01-01 00:15:00.000 2020-01-02 03:43:21.000 900 99801 50350.5 5035050 900 99801 50350.5 5035050 -32668 32267 4475.3 447530 -126 125 0.42 42 +901 100 10891 99802 2.7057 299.7057 151.2057 15120.57057 2.7057 299.70572 151.2057 15120.57066 2.70570 299.70570 151.2057 15120.57000 2020-01-01 2020-01-02 2020-01-01 00:15:01 2020-01-02 03:43:22 2020-01-01 00:15:01.000 2020-01-02 03:43:22.000 901 99802 50351.5 5035150 901 99802 50351.5 5035150 -32667 32268 4476.3 447630 -125 126 1.42 142 +902 100 10892 99803 2.7087 299.7087 151.2087 15120.87087 2.7087 299.7087 151.2087 15120.87095 2.70870 299.70870 151.20870000000002 15120.87000 2020-01-01 2020-01-02 2020-01-01 00:15:02 2020-01-02 03:43:23 2020-01-01 00:15:02.000 2020-01-02 03:43:23.000 902 99803 50352.5 5035250 902 99803 50352.5 5035250 -32666 32269 4477.3 447730 -124 127 2.42 242 +903 100 10893 99804 2.71171 299.71171 151.21171 15121.17117 2.71171 299.7117 151.21171 15121.1711 2.71171 299.71171 151.21171 15121.17100 2020-01-01 2020-01-02 2020-01-01 00:15:03 2020-01-02 03:43:24 2020-01-01 00:15:03.000 2020-01-02 03:43:24.000 903 99804 50353.5 5035350 903 99804 50353.5 5035350 -32665 32270 4478.3 447830 -128 127 0.86 86 +904 100 10894 99805 2.71471 299.71471 151.21471 15121.47147 2.71471 299.71472 151.21471 15121.47185 2.71471 299.71471 151.21471 15121.47100 2020-01-01 2020-01-02 2020-01-01 00:15:04 2020-01-02 03:43:25 2020-01-01 00:15:04.000 2020-01-02 03:43:25.000 904 99805 50354.5 5035450 904 99805 50354.5 5035450 -32664 32271 4479.3 447930 -128 123 -0.7 -70 +905 100 10895 99806 2.71771 299.71771 151.21771 15121.77177 2.71771 299.7177 151.21771 15121.77149 2.71771 299.71771 151.21771 15121.77100 2020-01-01 2020-01-02 2020-01-01 00:15:05 2020-01-02 03:43:26 2020-01-01 00:15:05.000 2020-01-02 03:43:26.000 905 99806 50355.5 5035550 905 99806 50355.5 5035550 -32663 32272 4480.3 448030 -127 124 0.3 30 +906 100 10896 99807 2.72072 299.72072 151.22072 15122.07207 2.72072 299.72073 151.22072 15122.07212 2.72072 299.72072 151.22072 15122.07200 2020-01-01 2020-01-02 2020-01-01 00:15:06 2020-01-02 03:43:27 2020-01-01 00:15:06.000 2020-01-02 03:43:27.000 906 99807 50356.5 5035650 906 99807 50356.5 5035650 -32662 32273 4481.3 448130 -126 125 1.3 130 907 100 10897 99808 2.72372 299.72372 151.22372 15122.37237 2.72372 299.72372 151.22372 15122.37243 2.72372 299.72372 151.22372 15122.37200 2020-01-01 2020-01-02 2020-01-01 00:15:07 2020-01-02 03:43:28 2020-01-01 00:15:07.000 2020-01-02 03:43:28.000 907 99808 50357.5 5035750 907 99808 50357.5 5035750 -32661 32274 4482.3 448230 -125 126 2.3 230 -908 100 10898 99809 2.72672 299.72672 151.22672 15122.67267 2.72672 299.7267 151.22672 15122.67272 2.72672 299.72672 151.22672000000003 15122.67200 2020-01-01 2020-01-02 2020-01-01 00:15:08 2020-01-02 03:43:29 2020-01-01 00:15:08.000 2020-01-02 03:43:29.000 908 99809 50358.5 5035850 908 99809 50358.5 5035850 -32660 32275 4483.3 448330 -124 127 3.3 330 -909 100 10899 99810 2.72972 299.72972 151.22972 15122.97297 2.72972 299.72974 151.22973 15122.97332 2.72972 299.72972 151.22971999999993 15122.97200 2020-01-01 2020-01-02 2020-01-01 00:15:09 2020-01-02 03:43:30 2020-01-01 00:15:09.000 2020-01-02 03:43:30.000 909 99810 50359.5 5035950 909 99810 50359.5 5035950 -32659 32276 4484.3 448430 -128 127 1.74 174 -91 102 10081 99991 0.27327 300.27327 150.27327 15177.6006 0.27327 300.2733 150.27327 15177.60054 0.27327 300.27327 150.2732699999999 15177.60027 2020-01-01 2020-01-02 2020-01-01 00:01:31 2020-01-02 03:46:31 2020-01-01 00:01:31.000 2020-01-02 03:46:31.000 91 99991 50041 5054141 91 99991 50041 5054141 -32478 32457 4620.009900990099 466621 -128 127 -0.6633663366336634 -67 -910 100 10900 99811 2.73273 299.73273 151.23273 15123.27327 2.73273 299.73273 151.23272 15123.27296 2.73273 299.73273 151.23272999999995 15123.27300 2020-01-01 2020-01-02 2020-01-01 00:15:10 2020-01-02 03:43:31 2020-01-01 00:15:10.000 2020-01-02 03:43:31.000 910 99811 50360.5 5036050 910 99811 50360.5 5036050 -32658 32277 4485.3 448530 -128 123 0.18 18 -911 100 10901 99812 2.73573 299.73573 151.23573 15123.57357 2.73573 299.73575 151.23573 15123.57359 2.73573 299.73573 151.2357300000001 15123.57300 2020-01-01 2020-01-02 2020-01-01 00:15:11 2020-01-02 03:43:32 2020-01-01 00:15:11.000 2020-01-02 03:43:32.000 911 99812 50361.5 5036150 911 99812 50361.5 5036150 -32657 32278 4486.3 448630 -127 124 1.18 118 -912 100 10902 99813 2.73873 299.73873 151.23873 15123.87387 2.73873 299.73874 151.23873 15123.8739 2.73873 299.73873 151.23872999999992 15123.87300 2020-01-01 2020-01-02 2020-01-01 00:15:12 2020-01-02 03:43:33 2020-01-01 00:15:12.000 2020-01-02 03:43:33.000 912 99813 50362.5 5036250 912 99813 50362.5 5036250 -32656 32279 4487.3 448730 -126 125 2.18 218 +908 100 10898 99809 2.72672 299.72672 151.22672 15122.67267 2.72672 299.7267 151.22672 15122.67272 2.72672 299.72672 151.22672 15122.67200 2020-01-01 2020-01-02 2020-01-01 00:15:08 2020-01-02 03:43:29 2020-01-01 00:15:08.000 2020-01-02 03:43:29.000 908 99809 50358.5 5035850 908 99809 50358.5 5035850 -32660 32275 4483.3 448330 -124 127 3.3 330 +909 100 10899 99810 2.72972 299.72972 151.22972 15122.97297 2.72972 299.72974 151.22973 15122.97332 2.72972 299.72972 151.22972 15122.97200 2020-01-01 2020-01-02 2020-01-01 00:15:09 2020-01-02 03:43:30 2020-01-01 00:15:09.000 2020-01-02 03:43:30.000 909 99810 50359.5 5035950 909 99810 50359.5 5035950 -32659 32276 4484.3 448430 -128 127 1.74 174 +91 102 10081 99991 0.27327 300.27327 150.27327 15177.6006 0.27327 300.2733 150.27327 15177.60054 0.27327 300.27327 150.27327 15177.60027 2020-01-01 2020-01-02 2020-01-01 00:01:31 2020-01-02 03:46:31 2020-01-01 00:01:31.000 2020-01-02 03:46:31.000 91 99991 50041 5054141 91 99991 50041 5054141 -32478 32457 4620.009900990099 466621 -128 127 -0.6633663366336634 -67 +910 100 10900 99811 2.73273 299.73273 151.23273 15123.27327 2.73273 299.73273 151.23272 15123.27296 2.73273 299.73273 151.23273 15123.27300 2020-01-01 2020-01-02 2020-01-01 00:15:10 2020-01-02 03:43:31 2020-01-01 00:15:10.000 2020-01-02 03:43:31.000 910 99811 50360.5 5036050 910 99811 50360.5 5036050 -32658 32277 4485.3 448530 -128 123 0.18 18 +911 100 10901 99812 2.73573 299.73573 151.23573 15123.57357 2.73573 299.73575 151.23573 15123.57359 2.73573 299.73573 151.23573 15123.57300 2020-01-01 2020-01-02 2020-01-01 00:15:11 2020-01-02 03:43:32 2020-01-01 00:15:11.000 2020-01-02 03:43:32.000 911 99812 50361.5 5036150 911 99812 50361.5 5036150 -32657 32278 4486.3 448630 -127 124 1.18 118 +912 100 10902 99813 2.73873 299.73873 151.23873 15123.87387 2.73873 299.73874 151.23873 15123.8739 2.73873 299.73873 151.23873 15123.87300 2020-01-01 2020-01-02 2020-01-01 00:15:12 2020-01-02 03:43:33 2020-01-01 00:15:12.000 2020-01-02 03:43:33.000 912 99813 50362.5 5036250 912 99813 50362.5 5036250 -32656 32279 4487.3 448730 -126 125 2.18 218 913 100 10903 99814 2.74174 299.74174 151.24174 15124.17417 2.74174 299.74173 151.24174 15124.17419 2.74174 299.74174 151.24174000000002 15124.17400 2020-01-01 2020-01-02 2020-01-01 00:15:13 2020-01-02 03:43:34 2020-01-01 00:15:13.000 2020-01-02 03:43:34.000 913 99814 50363.5 5036350 913 99814 50363.5 5036350 -32655 32280 4488.3 448830 -125 126 3.18 318 -914 100 10904 99815 2.74474 299.74474 151.24474 15124.47447 2.74474 299.74475 151.24474 15124.47479 2.74474 299.74474 151.24474000000006 15124.47400 2020-01-01 2020-01-02 2020-01-01 00:15:14 2020-01-02 03:43:35 2020-01-01 00:15:14.000 2020-01-02 03:43:35.000 914 99815 50364.5 5036450 914 99815 50364.5 5036450 -32654 32281 4489.3 448930 -124 127 4.18 418 -915 100 10905 99816 2.74774 299.74774 151.24774 15124.77477 2.74774 299.74774 151.24774 15124.77447 2.74774 299.74774 151.24774000000002 15124.77400 2020-01-01 2020-01-02 2020-01-01 00:15:15 2020-01-02 03:43:36 2020-01-01 00:15:15.000 2020-01-02 03:43:36.000 915 99816 50365.5 5036550 915 99816 50365.5 5036550 -32653 32282 4490.3 449030 -128 127 2.62 262 -916 100 10906 99817 2.75075 299.75075 151.25075 15125.07507 2.75075 299.75076 151.25075 15125.07507 2.75075 299.75075 151.25074999999995 15125.07500 2020-01-01 2020-01-02 2020-01-01 00:15:16 2020-01-02 03:43:37 2020-01-01 00:15:16.000 2020-01-02 03:43:37.000 916 99817 50366.5 5036650 916 99817 50366.5 5036650 -32652 32283 4491.3 449130 -128 127 1.06 106 -917 100 10907 99818 2.75375 299.75375 151.25375 15125.37537 2.75375 299.75375 151.25375 15125.37536 2.75375 299.75375 151.25374999999994 15125.37500 2020-01-01 2020-01-02 2020-01-01 00:15:17 2020-01-02 03:43:38 2020-01-01 00:15:17.000 2020-01-02 03:43:38.000 917 99818 50367.5 5036750 917 99818 50367.5 5036750 -32651 32284 4492.3 449230 -128 124 -0.5 -50 -918 100 10908 99819 2.75675 299.75675 151.25675 15125.67567 2.75675 299.75674 151.25675 15125.67566 2.75675 299.75675 151.25675000000018 15125.67500 2020-01-01 2020-01-02 2020-01-01 00:15:18 2020-01-02 03:43:39 2020-01-01 00:15:18.000 2020-01-02 03:43:39.000 918 99819 50368.5 5036850 918 99819 50368.5 5036850 -32650 32285 4493.3 449330 -127 125 0.5 50 -919 100 10909 99820 2.75975 299.75975 151.25975 15125.97597 2.75975 299.75977 151.25976 15125.97626 2.75975 299.75975 151.25974999999997 15125.97500 2020-01-01 2020-01-02 2020-01-01 00:15:19 2020-01-02 03:43:40 2020-01-01 00:15:19.000 2020-01-02 03:43:40.000 919 99820 50369.5 5036950 919 99820 50369.5 5036950 -32649 32286 4494.3 449430 -126 126 1.5 150 -92 102 10082 99992 0.27627 300.27627 150.27627 15177.9039 0.27627 300.27628 150.27627 15177.90384 0.27627 300.27627 150.27627000000007 15177.90327 2020-01-01 2020-01-02 2020-01-01 00:01:32 2020-01-02 03:46:32 2020-01-01 00:01:32.000 2020-01-02 03:46:32.000 92 99992 50042 5054242 92 99992 50042 5054242 -32477 32458 4621.009900990099 466722 -128 123 -2.198019801980198 -222 -920 100 10910 99821 2.76276 299.76276 151.26276 15126.27627 2.76276 299.76276 151.26275 15126.27594 2.76276 299.76276 151.2627599999999 15126.27600 2020-01-01 2020-01-02 2020-01-01 00:15:20 2020-01-02 03:43:41 2020-01-01 00:15:20.000 2020-01-02 03:43:41.000 920 99821 50370.5 5037050 920 99821 50370.5 5037050 -32648 32287 4495.3 449530 -125 127 2.5 250 -921 100 10911 99822 2.76576 299.76576 151.26576 15126.57657 2.76576 299.76578 151.26576 15126.57654 2.76576 299.76576 151.2657600000001 15126.57600 2020-01-01 2020-01-02 2020-01-01 00:15:21 2020-01-02 03:43:42 2020-01-01 00:15:21.000 2020-01-02 03:43:42.000 921 99822 50371.5 5037150 921 99822 50371.5 5037150 -32647 32288 4496.3 449630 -128 127 0.94 94 -922 100 10912 99823 2.76876 299.76876 151.26876 15126.87687 2.76876 299.76877 151.26876 15126.87683 2.76876 299.76876 151.26876000000007 15126.87600 2020-01-01 2020-01-02 2020-01-01 00:15:22 2020-01-02 03:43:43 2020-01-01 00:15:22.000 2020-01-02 03:43:43.000 922 99823 50372.5 5037250 922 99823 50372.5 5037250 -32646 32289 4497.3 449730 -128 127 -0.62 -62 -923 100 10913 99824 2.77177 299.77177 151.27177 15127.17717 2.77177 299.77176 151.27177 15127.17713 2.77177 299.77177 151.27176999999995 15127.17700 2020-01-01 2020-01-02 2020-01-01 00:15:23 2020-01-02 03:43:44 2020-01-01 00:15:23.000 2020-01-02 03:43:44.000 923 99824 50373.5 5037350 923 99824 50373.5 5037350 -32645 32290 4498.3 449830 -128 123 -2.18 -218 -924 100 10914 99825 2.77477 299.77477 151.27477 15127.47747 2.77477 299.77478 151.27477 15127.47776 2.77477 299.77477 151.27477 15127.47700 2020-01-01 2020-01-02 2020-01-01 00:15:24 2020-01-02 03:43:45 2020-01-01 00:15:24.000 2020-01-02 03:43:45.000 924 99825 50374.5 5037450 924 99825 50374.5 5037450 -32644 32291 4499.3 449930 -127 124 -1.18 -118 -925 100 10915 99826 2.77777 299.77777 151.27777 15127.77777 2.77777 299.77777 151.27777 15127.77741 2.77777 299.77777 151.27777000000003 15127.77700 2020-01-01 2020-01-02 2020-01-01 00:15:25 2020-01-02 03:43:46 2020-01-01 00:15:25.000 2020-01-02 03:43:46.000 925 99826 50375.5 5037550 925 99826 50375.5 5037550 -32643 32292 4500.3 450030 -126 125 -0.18 -18 -926 100 10916 99827 2.78078 299.78078 151.28078 15128.07807 2.78078 299.7808 151.28078 15128.078 2.78078 299.78078 151.28077999999994 15128.07800 2020-01-01 2020-01-02 2020-01-01 00:15:26 2020-01-02 03:43:47 2020-01-01 00:15:26.000 2020-01-02 03:43:47.000 926 99827 50376.5 5037650 926 99827 50376.5 5037650 -32642 32293 4501.3 450130 -125 126 0.82 82 -927 100 10917 99828 2.78378 299.78378 151.28378 15128.37837 2.78378 299.78378 151.28378 15128.3783 2.78378 299.78378 151.28377999999992 15128.37800 2020-01-01 2020-01-02 2020-01-01 00:15:27 2020-01-02 03:43:48 2020-01-01 00:15:27.000 2020-01-02 03:43:48.000 927 99828 50377.5 5037750 927 99828 50377.5 5037750 -32641 32294 4502.3 450230 -124 127 1.82 182 -928 100 10918 99829 2.78678 299.78678 151.28678 15128.67867 2.78678 299.78677 151.28678 15128.6786 2.78678 299.78678 151.28678000000008 15128.67800 2020-01-01 2020-01-02 2020-01-01 00:15:28 2020-01-02 03:43:49 2020-01-01 00:15:28.000 2020-01-02 03:43:49.000 928 99829 50378.5 5037850 928 99829 50378.5 5037850 -32640 32295 4503.3 450330 -128 127 0.26 26 -929 100 10919 99830 2.78978 299.78978 151.28978 15128.97897 2.78978 299.7898 151.28979 15128.97923 2.78978 299.78978 151.28977999999995 15128.97800 2020-01-01 2020-01-02 2020-01-01 00:15:29 2020-01-02 03:43:50 2020-01-01 00:15:29.000 2020-01-02 03:43:50.000 929 99830 50379.5 5037950 929 99830 50379.5 5037950 -32639 32296 4504.3 450430 -128 123 -1.3 -130 -93 102 10083 99993 0.27927 300.27927 150.27927 15178.2072 0.27927 300.27927 150.27927 15178.20715 0.27927 300.27927 150.2792699999999 15178.20627 2020-01-01 2020-01-02 2020-01-01 00:01:33 2020-01-02 03:46:33 2020-01-01 00:01:33.000 2020-01-02 03:46:33.000 93 99993 50043 5054343 93 99993 50043 5054343 -32476 32459 4622.009900990099 466823 -127 124 -1.198019801980198 -121 -930 100 10920 99831 2.79279 299.79279 151.29279 15129.27927 2.79279 299.7928 151.29278 15129.27888 2.79279 299.79279 151.29279000000002 15129.27900 2020-01-01 2020-01-02 2020-01-01 00:15:30 2020-01-02 03:43:51 2020-01-01 00:15:30.000 2020-01-02 03:43:51.000 930 99831 50380.5 5038050 930 99831 50380.5 5038050 -32638 32297 4505.3 450530 -127 124 -0.3 -30 -931 100 10921 99832 2.79579 299.79579 151.29579 15129.57957 2.79579 299.7958 151.29579 15129.57963 2.79579 299.79579 151.29579000000007 15129.57900 2020-01-01 2020-01-02 2020-01-01 00:15:31 2020-01-02 03:43:52 2020-01-01 00:15:31.000 2020-01-02 03:43:52.000 931 99832 50381.5 5038150 931 99832 50381.5 5038150 -32637 32298 4506.3 450630 -126 125 0.7 70 -932 100 10922 99833 2.79879 299.79879 151.29879 15129.87987 2.79879 299.7988 151.29879 15129.87977 2.79879 299.79879 151.29879000000003 15129.87900 2020-01-01 2020-01-02 2020-01-01 00:15:32 2020-01-02 03:43:53 2020-01-01 00:15:32.000 2020-01-02 03:43:53.000 932 99833 50382.5 5038250 932 99833 50382.5 5038250 -32636 32299 4507.3 450730 -125 126 1.7 170 -933 100 10923 99834 2.8018 299.8018 151.3018 15130.18018 2.8018 299.8018 151.3018 15130.18011 2.80180 299.80180 151.3018 15130.18000 2020-01-01 2020-01-02 2020-01-01 00:15:33 2020-01-02 03:43:54 2020-01-01 00:15:33.000 2020-01-02 03:43:54.000 933 99834 50383.5 5038350 933 99834 50383.5 5038350 -32635 32300 4508.3 450830 -124 127 2.7 270 -934 100 10924 99835 2.8048 299.8048 151.3048 15130.48048 2.8048 299.8048 151.3048 15130.48071 2.80480 299.80480 151.30479999999991 15130.48000 2020-01-01 2020-01-02 2020-01-01 00:15:34 2020-01-02 03:43:55 2020-01-01 00:15:34.000 2020-01-02 03:43:55.000 934 99835 50384.5 5038450 934 99835 50384.5 5038450 -32634 32301 4509.3 450930 -128 127 1.14 114 -935 100 10925 99836 2.8078 299.8078 151.3078 15130.78078 2.8078 299.8078 151.3078 15130.78034 2.80780 299.80780 151.3078 15130.78000 2020-01-01 2020-01-02 2020-01-01 00:15:35 2020-01-02 03:43:56 2020-01-01 00:15:35.000 2020-01-02 03:43:56.000 935 99836 50385.5 5038550 935 99836 50385.5 5038550 -32633 32302 4510.3 451030 -128 123 -0.42 -42 -936 100 10926 99837 2.81081 299.81081 151.31081 15131.08108 2.81081 299.81082 151.31081 15131.0811 2.81081 299.81081 151.31081000000006 15131.08100 2020-01-01 2020-01-02 2020-01-01 00:15:36 2020-01-02 03:43:57 2020-01-01 00:15:36.000 2020-01-02 03:43:57.000 936 99837 50386.5 5038650 936 99837 50386.5 5038650 -32632 32303 4511.3 451130 -127 124 0.58 58 -937 100 10927 99838 2.81381 299.81381 151.31381 15131.38138 2.81381 299.8138 151.31381 15131.38124 2.81381 299.81381 151.31380999999993 15131.38100 2020-01-01 2020-01-02 2020-01-01 00:15:37 2020-01-02 03:43:58 2020-01-01 00:15:37.000 2020-01-02 03:43:58.000 937 99838 50387.5 5038750 937 99838 50387.5 5038750 -32631 32304 4512.3 451230 -126 125 1.58 158 -938 100 10928 99839 2.81681 299.81681 151.31681 15131.68168 2.81681 299.8168 151.31681 15131.68157 2.81681 299.81681 151.31681000000003 15131.68100 2020-01-01 2020-01-02 2020-01-01 00:15:38 2020-01-02 03:43:59 2020-01-01 00:15:38.000 2020-01-02 03:43:59.000 938 99839 50388.5 5038850 938 99839 50388.5 5038850 -32630 32305 4513.3 451330 -125 126 2.58 258 -939 100 10929 99840 2.81981 299.81981 151.31981 15131.98198 2.81982 299.81982 151.31982 15131.98217 2.81981 299.81981 151.31981000000007 15131.98100 2020-01-01 2020-01-02 2020-01-01 00:15:39 2020-01-02 03:44:00 2020-01-01 00:15:39.000 2020-01-02 03:44:00.000 939 99840 50389.5 5038950 939 99840 50389.5 5038950 -32629 32306 4514.3 451430 -124 127 3.58 358 -94 102 10084 99994 0.28228 300.28228 150.28228 15178.51051 0.28228 300.2823 150.28228 15178.51078 0.28228 300.28228 150.28228 15178.51028 2020-01-01 2020-01-02 2020-01-01 00:01:34 2020-01-02 03:46:34 2020-01-01 00:01:34.000 2020-01-02 03:46:34.000 94 99994 50044 5054444 94 99994 50044 5054444 -32475 32460 4623.009900990099 466924 -126 125 -0.19801980198019803 -20 +914 100 10904 99815 2.74474 299.74474 151.24474 15124.47447 2.74474 299.74475 151.24474 15124.47479 2.74474 299.74474 151.24474 15124.47400 2020-01-01 2020-01-02 2020-01-01 00:15:14 2020-01-02 03:43:35 2020-01-01 00:15:14.000 2020-01-02 03:43:35.000 914 99815 50364.5 5036450 914 99815 50364.5 5036450 -32654 32281 4489.3 448930 -124 127 4.18 418 +915 100 10905 99816 2.74774 299.74774 151.24774 15124.77477 2.74774 299.74774 151.24774 15124.77447 2.74774 299.74774 151.24774 15124.77400 2020-01-01 2020-01-02 2020-01-01 00:15:15 2020-01-02 03:43:36 2020-01-01 00:15:15.000 2020-01-02 03:43:36.000 915 99816 50365.5 5036550 915 99816 50365.5 5036550 -32653 32282 4490.3 449030 -128 127 2.62 262 +916 100 10906 99817 2.75075 299.75075 151.25075 15125.07507 2.75075 299.75076 151.25075 15125.07507 2.75075 299.75075 151.25075 15125.07500 2020-01-01 2020-01-02 2020-01-01 00:15:16 2020-01-02 03:43:37 2020-01-01 00:15:16.000 2020-01-02 03:43:37.000 916 99817 50366.5 5036650 916 99817 50366.5 5036650 -32652 32283 4491.3 449130 -128 127 1.06 106 +917 100 10907 99818 2.75375 299.75375 151.25375 15125.37537 2.75375 299.75375 151.25375 15125.37536 2.75375 299.75375 151.25375 15125.37500 2020-01-01 2020-01-02 2020-01-01 00:15:17 2020-01-02 03:43:38 2020-01-01 00:15:17.000 2020-01-02 03:43:38.000 917 99818 50367.5 5036750 917 99818 50367.5 5036750 -32651 32284 4492.3 449230 -128 124 -0.5 -50 +918 100 10908 99819 2.75675 299.75675 151.25675 15125.67567 2.75675 299.75674 151.25675 15125.67566 2.75675 299.75675 151.25674999999998 15125.67500 2020-01-01 2020-01-02 2020-01-01 00:15:18 2020-01-02 03:43:39 2020-01-01 00:15:18.000 2020-01-02 03:43:39.000 918 99819 50368.5 5036850 918 99819 50368.5 5036850 -32650 32285 4493.3 449330 -127 125 0.5 50 +919 100 10909 99820 2.75975 299.75975 151.25975 15125.97597 2.75975 299.75977 151.25976 15125.97626 2.75975 299.75975 151.25975 15125.97500 2020-01-01 2020-01-02 2020-01-01 00:15:19 2020-01-02 03:43:40 2020-01-01 00:15:19.000 2020-01-02 03:43:40.000 919 99820 50369.5 5036950 919 99820 50369.5 5036950 -32649 32286 4494.3 449430 -126 126 1.5 150 +92 102 10082 99992 0.27627 300.27627 150.27627 15177.9039 0.27627 300.27628 150.27627 15177.90384 0.27627 300.27627 150.27627 15177.90327 2020-01-01 2020-01-02 2020-01-01 00:01:32 2020-01-02 03:46:32 2020-01-01 00:01:32.000 2020-01-02 03:46:32.000 92 99992 50042 5054242 92 99992 50042 5054242 -32477 32458 4621.009900990099 466722 -128 123 -2.198019801980198 -222 +920 100 10910 99821 2.76276 299.76276 151.26276 15126.27627 2.76276 299.76276 151.26275 15126.27594 2.76276 299.76276 151.26276 15126.27600 2020-01-01 2020-01-02 2020-01-01 00:15:20 2020-01-02 03:43:41 2020-01-01 00:15:20.000 2020-01-02 03:43:41.000 920 99821 50370.5 5037050 920 99821 50370.5 5037050 -32648 32287 4495.3 449530 -125 127 2.5 250 +921 100 10911 99822 2.76576 299.76576 151.26576 15126.57657 2.76576 299.76578 151.26576 15126.57654 2.76576 299.76576 151.26576 15126.57600 2020-01-01 2020-01-02 2020-01-01 00:15:21 2020-01-02 03:43:42 2020-01-01 00:15:21.000 2020-01-02 03:43:42.000 921 99822 50371.5 5037150 921 99822 50371.5 5037150 -32647 32288 4496.3 449630 -128 127 0.94 94 +922 100 10912 99823 2.76876 299.76876 151.26876 15126.87687 2.76876 299.76877 151.26876 15126.87683 2.76876 299.76876 151.26876000000001 15126.87600 2020-01-01 2020-01-02 2020-01-01 00:15:22 2020-01-02 03:43:43 2020-01-01 00:15:22.000 2020-01-02 03:43:43.000 922 99823 50372.5 5037250 922 99823 50372.5 5037250 -32646 32289 4497.3 449730 -128 127 -0.62 -62 +923 100 10913 99824 2.77177 299.77177 151.27177 15127.17717 2.77177 299.77176 151.27177 15127.17713 2.77177 299.77177 151.27177 15127.17700 2020-01-01 2020-01-02 2020-01-01 00:15:23 2020-01-02 03:43:44 2020-01-01 00:15:23.000 2020-01-02 03:43:44.000 923 99824 50373.5 5037350 923 99824 50373.5 5037350 -32645 32290 4498.3 449830 -128 123 -2.18 -218 +924 100 10914 99825 2.77477 299.77477 151.27477 15127.47747 2.77477 299.77478 151.27477 15127.47776 2.77477 299.77477 151.27477000000002 15127.47700 2020-01-01 2020-01-02 2020-01-01 00:15:24 2020-01-02 03:43:45 2020-01-01 00:15:24.000 2020-01-02 03:43:45.000 924 99825 50374.5 5037450 924 99825 50374.5 5037450 -32644 32291 4499.3 449930 -127 124 -1.18 -118 +925 100 10915 99826 2.77777 299.77777 151.27777 15127.77777 2.77777 299.77777 151.27777 15127.77741 2.77777 299.77777 151.27777 15127.77700 2020-01-01 2020-01-02 2020-01-01 00:15:25 2020-01-02 03:43:46 2020-01-01 00:15:25.000 2020-01-02 03:43:46.000 925 99826 50375.5 5037550 925 99826 50375.5 5037550 -32643 32292 4500.3 450030 -126 125 -0.18 -18 +926 100 10916 99827 2.78078 299.78078 151.28078 15128.07807 2.78078 299.7808 151.28078 15128.078 2.78078 299.78078 151.28078 15128.07800 2020-01-01 2020-01-02 2020-01-01 00:15:26 2020-01-02 03:43:47 2020-01-01 00:15:26.000 2020-01-02 03:43:47.000 926 99827 50376.5 5037650 926 99827 50376.5 5037650 -32642 32293 4501.3 450130 -125 126 0.82 82 +927 100 10917 99828 2.78378 299.78378 151.28378 15128.37837 2.78378 299.78378 151.28378 15128.3783 2.78378 299.78378 151.28378 15128.37800 2020-01-01 2020-01-02 2020-01-01 00:15:27 2020-01-02 03:43:48 2020-01-01 00:15:27.000 2020-01-02 03:43:48.000 927 99828 50377.5 5037750 927 99828 50377.5 5037750 -32641 32294 4502.3 450230 -124 127 1.82 182 +928 100 10918 99829 2.78678 299.78678 151.28678 15128.67867 2.78678 299.78677 151.28678 15128.6786 2.78678 299.78678 151.28678 15128.67800 2020-01-01 2020-01-02 2020-01-01 00:15:28 2020-01-02 03:43:49 2020-01-01 00:15:28.000 2020-01-02 03:43:49.000 928 99829 50378.5 5037850 928 99829 50378.5 5037850 -32640 32295 4503.3 450330 -128 127 0.26 26 +929 100 10919 99830 2.78978 299.78978 151.28978 15128.97897 2.78978 299.7898 151.28979 15128.97923 2.78978 299.78978 151.28977999999998 15128.97800 2020-01-01 2020-01-02 2020-01-01 00:15:29 2020-01-02 03:43:50 2020-01-01 00:15:29.000 2020-01-02 03:43:50.000 929 99830 50379.5 5037950 929 99830 50379.5 5037950 -32639 32296 4504.3 450430 -128 123 -1.3 -130 +93 102 10083 99993 0.27927 300.27927 150.27927 15178.2072 0.27927 300.27927 150.27927 15178.20715 0.27927 300.27927 150.27927 15178.20627 2020-01-01 2020-01-02 2020-01-01 00:01:33 2020-01-02 03:46:33 2020-01-01 00:01:33.000 2020-01-02 03:46:33.000 93 99993 50043 5054343 93 99993 50043 5054343 -32476 32459 4622.009900990099 466823 -127 124 -1.198019801980198 -121 +930 100 10920 99831 2.79279 299.79279 151.29279 15129.27927 2.79279 299.7928 151.29278 15129.27888 2.79279 299.79279 151.29279 15129.27900 2020-01-01 2020-01-02 2020-01-01 00:15:30 2020-01-02 03:43:51 2020-01-01 00:15:30.000 2020-01-02 03:43:51.000 930 99831 50380.5 5038050 930 99831 50380.5 5038050 -32638 32297 4505.3 450530 -127 124 -0.3 -30 +931 100 10921 99832 2.79579 299.79579 151.29579 15129.57957 2.79579 299.7958 151.29579 15129.57963 2.79579 299.79579 151.29579 15129.57900 2020-01-01 2020-01-02 2020-01-01 00:15:31 2020-01-02 03:43:52 2020-01-01 00:15:31.000 2020-01-02 03:43:52.000 931 99832 50381.5 5038150 931 99832 50381.5 5038150 -32637 32298 4506.3 450630 -126 125 0.7 70 +932 100 10922 99833 2.79879 299.79879 151.29879 15129.87987 2.79879 299.7988 151.29879 15129.87977 2.79879 299.79879 151.29879 15129.87900 2020-01-01 2020-01-02 2020-01-01 00:15:32 2020-01-02 03:43:53 2020-01-01 00:15:32.000 2020-01-02 03:43:53.000 932 99833 50382.5 5038250 932 99833 50382.5 5038250 -32636 32299 4507.3 450730 -125 126 1.7 170 +933 100 10923 99834 2.8018 299.8018 151.3018 15130.18018 2.8018 299.8018 151.3018 15130.18011 2.80180 299.80180 151.30180000000001 15130.18000 2020-01-01 2020-01-02 2020-01-01 00:15:33 2020-01-02 03:43:54 2020-01-01 00:15:33.000 2020-01-02 03:43:54.000 933 99834 50383.5 5038350 933 99834 50383.5 5038350 -32635 32300 4508.3 450830 -124 127 2.7 270 +934 100 10924 99835 2.8048 299.8048 151.3048 15130.48048 2.8048 299.8048 151.3048 15130.48071 2.80480 299.80480 151.3048 15130.48000 2020-01-01 2020-01-02 2020-01-01 00:15:34 2020-01-02 03:43:55 2020-01-01 00:15:34.000 2020-01-02 03:43:55.000 934 99835 50384.5 5038450 934 99835 50384.5 5038450 -32634 32301 4509.3 450930 -128 127 1.14 114 +935 100 10925 99836 2.8078 299.8078 151.3078 15130.78078 2.8078 299.8078 151.3078 15130.78034 2.80780 299.80780 151.30780000000001 15130.78000 2020-01-01 2020-01-02 2020-01-01 00:15:35 2020-01-02 03:43:56 2020-01-01 00:15:35.000 2020-01-02 03:43:56.000 935 99836 50385.5 5038550 935 99836 50385.5 5038550 -32633 32302 4510.3 451030 -128 123 -0.42 -42 +936 100 10926 99837 2.81081 299.81081 151.31081 15131.08108 2.81081 299.81082 151.31081 15131.0811 2.81081 299.81081 151.31081 15131.08100 2020-01-01 2020-01-02 2020-01-01 00:15:36 2020-01-02 03:43:57 2020-01-01 00:15:36.000 2020-01-02 03:43:57.000 936 99837 50386.5 5038650 936 99837 50386.5 5038650 -32632 32303 4511.3 451130 -127 124 0.58 58 +937 100 10927 99838 2.81381 299.81381 151.31381 15131.38138 2.81381 299.8138 151.31381 15131.38124 2.81381 299.81381 151.31381 15131.38100 2020-01-01 2020-01-02 2020-01-01 00:15:37 2020-01-02 03:43:58 2020-01-01 00:15:37.000 2020-01-02 03:43:58.000 937 99838 50387.5 5038750 937 99838 50387.5 5038750 -32631 32304 4512.3 451230 -126 125 1.58 158 +938 100 10928 99839 2.81681 299.81681 151.31681 15131.68168 2.81681 299.8168 151.31681 15131.68157 2.81681 299.81681 151.31681 15131.68100 2020-01-01 2020-01-02 2020-01-01 00:15:38 2020-01-02 03:43:59 2020-01-01 00:15:38.000 2020-01-02 03:43:59.000 938 99839 50388.5 5038850 938 99839 50388.5 5038850 -32630 32305 4513.3 451330 -125 126 2.58 258 +939 100 10929 99840 2.81981 299.81981 151.31981 15131.98198 2.81982 299.81982 151.31982 15131.98217 2.81981 299.81981 151.31981 15131.98100 2020-01-01 2020-01-02 2020-01-01 00:15:39 2020-01-02 03:44:00 2020-01-01 00:15:39.000 2020-01-02 03:44:00.000 939 99840 50389.5 5038950 939 99840 50389.5 5038950 -32629 32306 4514.3 451430 -124 127 3.58 358 +94 102 10084 99994 0.28228 300.28228 150.28228 15178.51051 0.28228 300.2823 150.28228 15178.51078 0.28228 300.28228 150.28228000000001 15178.51028 2020-01-01 2020-01-02 2020-01-01 00:01:34 2020-01-02 03:46:34 2020-01-01 00:01:34.000 2020-01-02 03:46:34.000 94 99994 50044 5054444 94 99994 50044 5054444 -32475 32460 4623.009900990099 466924 -126 125 -0.19801980198019803 -20 940 100 10930 99841 2.82282 299.82282 151.32282 15132.28228 2.82282 299.8228 151.32282 15132.28247 2.82282 299.82282 151.32281999999998 15132.28200 2020-01-01 2020-01-02 2020-01-01 00:15:40 2020-01-02 03:44:01 2020-01-01 00:15:40.000 2020-01-02 03:44:01.000 940 99841 50390.5 5039050 940 99841 50390.5 5039050 -32628 32307 4515.3 451530 -128 127 2.02 202 941 100 10931 99842 2.82582 299.82582 151.32582 15132.58258 2.82582 299.82584 151.32582 15132.58257 2.82582 299.82582 151.32582 15132.58200 2020-01-01 2020-01-02 2020-01-01 00:15:41 2020-01-02 03:44:02 2020-01-01 00:15:41.000 2020-01-02 03:44:02.000 941 99842 50391.5 5039150 941 99842 50391.5 5039150 -32627 32308 4516.3 451630 -128 127 0.46 46 -942 100 10932 99843 2.82882 299.82882 151.32882 15132.88288 2.82882 299.82883 151.32882 15132.88275 2.82882 299.82882 151.32882000000006 15132.88200 2020-01-01 2020-01-02 2020-01-01 00:15:42 2020-01-02 03:44:03 2020-01-01 00:15:42.000 2020-01-02 03:44:03.000 942 99843 50392.5 5039250 942 99843 50392.5 5039250 -32626 32309 4517.3 451730 -128 124 -1.1 -110 -943 100 10933 99844 2.83183 299.83183 151.33183 15133.18318 2.83183 299.83182 151.33183 15133.18304 2.83183 299.83183 151.33182999999994 15133.18300 2020-01-01 2020-01-02 2020-01-01 00:15:43 2020-01-02 03:44:04 2020-01-01 00:15:43.000 2020-01-02 03:44:04.000 943 99844 50393.5 5039350 943 99844 50393.5 5039350 -32625 32310 4518.3 451830 -127 125 -0.1 -10 -944 100 10934 99845 2.83483 299.83483 151.33483 15133.48348 2.83483 299.83484 151.33483 15133.48364 2.83483 299.83483 151.3348299999999 15133.48300 2020-01-01 2020-01-02 2020-01-01 00:15:44 2020-01-02 03:44:05 2020-01-01 00:15:44.000 2020-01-02 03:44:05.000 944 99845 50394.5 5039450 944 99845 50394.5 5039450 -32624 32311 4519.3 451930 -126 126 0.9 90 -945 100 10935 99846 2.83783 299.83783 151.33783 15133.78378 2.83783 299.83783 151.33783 15133.78393 2.83783 299.83783 151.3378300000001 15133.78300 2020-01-01 2020-01-02 2020-01-01 00:15:45 2020-01-02 03:44:06 2020-01-01 00:15:45.000 2020-01-02 03:44:06.000 945 99846 50395.5 5039550 945 99846 50395.5 5039550 -32623 32312 4520.3 452030 -125 127 1.9 190 -946 100 10936 99847 2.84084 299.84084 151.34084 15134.08408 2.84084 299.84085 151.34084 15134.08404 2.84084 299.84084 151.34084000000004 15134.08400 2020-01-01 2020-01-02 2020-01-01 00:15:46 2020-01-02 03:44:07 2020-01-01 00:15:46.000 2020-01-02 03:44:07.000 946 99847 50396.5 5039650 946 99847 50396.5 5039650 -32622 32313 4521.3 452130 -128 127 0.34 34 -947 100 10937 99848 2.84384 299.84384 151.34384 15134.38438 2.84384 299.84384 151.34384 15134.38421 2.84384 299.84384 151.34383999999983 15134.38400 2020-01-01 2020-01-02 2020-01-01 00:15:47 2020-01-02 03:44:08 2020-01-01 00:15:47.000 2020-01-02 03:44:08.000 947 99848 50397.5 5039750 947 99848 50397.5 5039750 -32621 32314 4522.3 452230 -128 127 -1.22 -122 -948 100 10938 99849 2.84684 299.84684 151.34684 15134.68468 2.84684 299.84683 151.34684 15134.68452 2.84684 299.84684 151.34684000000007 15134.68400 2020-01-01 2020-01-02 2020-01-01 00:15:48 2020-01-02 03:44:09 2020-01-01 00:15:48.000 2020-01-02 03:44:09.000 948 99849 50398.5 5039850 948 99849 50398.5 5039850 -32620 32315 4523.3 452330 -128 123 -2.78 -278 -949 100 10939 99850 2.84984 299.84984 151.34984 15134.98498 2.84985 299.84985 151.34985 15134.98527 2.84984 299.84984 151.34984000000003 15134.98400 2020-01-01 2020-01-02 2020-01-01 00:15:49 2020-01-02 03:44:10 2020-01-01 00:15:49.000 2020-01-02 03:44:10.000 949 99850 50399.5 5039950 949 99850 50399.5 5039950 -32619 32316 4524.3 452430 -127 124 -1.78 -178 -95 102 10085 99995 0.28528 300.28528 150.28528 15178.81381 0.28528 300.28528 150.28528 15178.81343 0.28528 300.28528 150.28528000000003 15178.81328 2020-01-01 2020-01-02 2020-01-01 00:01:35 2020-01-02 03:46:35 2020-01-01 00:01:35.000 2020-01-02 03:46:35.000 95 99995 50045 5054545 95 99995 50045 5054545 -32474 32461 4624.009900990099 467025 -125 126 0.801980198019802 81 -950 100 10940 99851 2.85285 299.85285 151.35285 15135.28528 2.85285 299.85284 151.35285 15135.28541 2.85285 299.85285 151.35285000000005 15135.28500 2020-01-01 2020-01-02 2020-01-01 00:15:50 2020-01-02 03:44:11 2020-01-01 00:15:50.000 2020-01-02 03:44:11.000 950 99851 50400.5 5040050 950 99851 50400.5 5040050 -32618 32317 4525.3 452530 -126 125 -0.78 -78 -951 100 10941 99852 2.85585 299.85585 151.35585 15135.58558 2.85585 299.85587 151.35585 15135.58551 2.85585 299.85585 151.35584999999995 15135.58500 2020-01-01 2020-01-02 2020-01-01 00:15:51 2020-01-02 03:44:12 2020-01-01 00:15:51.000 2020-01-02 03:44:12.000 951 99852 50401.5 5040150 951 99852 50401.5 5040150 -32617 32318 4526.3 452630 -125 126 0.22 22 -952 100 10942 99853 2.85885 299.85885 151.35885 15135.88588 2.85885 299.85886 151.35885 15135.88568 2.85885 299.85885 151.35885000000005 15135.88500 2020-01-01 2020-01-02 2020-01-01 00:15:52 2020-01-02 03:44:13 2020-01-01 00:15:52.000 2020-01-02 03:44:13.000 952 99853 50402.5 5040250 952 99853 50402.5 5040250 -32616 32319 4527.3 452730 -124 127 1.22 122 -953 100 10943 99854 2.86186 299.86186 151.36186 15136.18618 2.86186 299.86185 151.36185 15136.18598 2.86186 299.86186 151.36186000000026 15136.18600 2020-01-01 2020-01-02 2020-01-01 00:15:53 2020-01-02 03:44:14 2020-01-01 00:15:53.000 2020-01-02 03:44:14.000 953 99854 50403.5 5040350 953 99854 50403.5 5040350 -32615 32320 4528.3 452830 -128 127 -0.34 -34 -954 100 10944 99855 2.86486 299.86486 151.36486 15136.48648 2.86486 299.86487 151.36486 15136.48674 2.86486 299.86486 151.3648599999998 15136.48600 2020-01-01 2020-01-02 2020-01-01 00:15:54 2020-01-02 03:44:15 2020-01-01 00:15:54.000 2020-01-02 03:44:15.000 954 99855 50404.5 5040450 954 99855 50404.5 5040450 -32614 32321 4529.3 452930 -128 123 -1.9 -190 -955 100 10945 99856 2.86786 299.86786 151.36786 15136.78678 2.86786 299.86786 151.36786 15136.78688 2.86786 299.86786 151.36786000000018 15136.78600 2020-01-01 2020-01-02 2020-01-01 00:15:55 2020-01-02 03:44:16 2020-01-01 00:15:55.000 2020-01-02 03:44:16.000 955 99856 50405.5 5040550 955 99856 50405.5 5040550 -32613 32322 4530.3 453030 -127 124 -0.9 -90 -956 100 10946 99857 2.87087 299.87087 151.37087 15137.08708 2.87087 299.87088 151.37087 15137.08701 2.87087 299.87087 151.37087000000014 15137.08700 2020-01-01 2020-01-02 2020-01-01 00:15:56 2020-01-02 03:44:17 2020-01-01 00:15:56.000 2020-01-02 03:44:17.000 956 99857 50406.5 5040650 956 99857 50406.5 5040650 -32612 32323 4531.3 453130 -126 125 0.1 10 -957 100 10947 99858 2.87387 299.87387 151.37387 15137.38738 2.87387 299.87387 151.37387 15137.38716 2.87387 299.87387 151.37386999999993 15137.38700 2020-01-01 2020-01-02 2020-01-01 00:15:57 2020-01-02 03:44:18 2020-01-01 00:15:57.000 2020-01-02 03:44:18.000 957 99858 50407.5 5040750 957 99858 50407.5 5040750 -32611 32324 4532.3 453230 -125 126 1.1 110 -958 100 10948 99859 2.87687 299.87687 151.37687 15137.68768 2.87687 299.8769 151.37687 15137.68791 2.87687 299.87687 151.37687000000003 15137.68700 2020-01-01 2020-01-02 2020-01-01 00:15:58 2020-01-02 03:44:19 2020-01-01 00:15:58.000 2020-01-02 03:44:19.000 958 99859 50408.5 5040850 958 99859 50408.5 5040850 -32610 32325 4533.3 453330 -124 127 2.1 210 -959 100 10949 99860 2.87987 299.87987 151.37987 15137.98798 2.87988 299.87988 151.37988 15137.9882 2.87987 299.87987 151.37987000000012 15137.98700 2020-01-01 2020-01-02 2020-01-01 00:15:59 2020-01-02 03:44:20 2020-01-01 00:15:59.000 2020-01-02 03:44:20.000 959 99860 50409.5 5040950 959 99860 50409.5 5040950 -32609 32326 4534.3 453430 -128 127 0.54 54 -96 102 10086 99996 0.28828 300.28828 150.28828 15179.11711 0.28828 300.2883 150.28828 15179.11718 0.28828 300.28828 150.28828000000013 15179.11628 2020-01-01 2020-01-02 2020-01-01 00:01:36 2020-01-02 03:46:36 2020-01-01 00:01:36.000 2020-01-02 03:46:36.000 96 99996 50046 5054646 96 99996 50046 5054646 -32473 32462 4625.009900990099 467126 -124 127 1.801980198019802 182 -960 100 10950 99861 2.88288 299.88288 151.38288 15138.28828 2.88288 299.88287 151.38288 15138.28834 2.88288 299.88288 151.3828799999998 15138.28800 2020-01-01 2020-01-02 2020-01-01 00:16:00 2020-01-02 03:44:21 2020-01-01 00:16:00.000 2020-01-02 03:44:21.000 960 99861 50410.5 5041050 960 99861 50410.5 5041050 -32608 32327 4535.3 453530 -128 123 -1.02 -102 -961 100 10951 99862 2.88588 299.88588 151.38588 15138.58858 2.88588 299.8859 151.38588 15138.58848 2.88588 299.88588 151.38587999999984 15138.58800 2020-01-01 2020-01-02 2020-01-01 00:16:01 2020-01-02 03:44:22 2020-01-01 00:16:01.000 2020-01-02 03:44:22.000 961 99862 50411.5 5041150 961 99862 50411.5 5041150 -32607 32328 4536.3 453630 -127 124 -0.02 -2 -962 100 10952 99863 2.88888 299.88888 151.38888 15138.88888 2.88888 299.8889 151.38888 15138.88862 2.88888 299.88888 151.3888800000003 15138.88800 2020-01-01 2020-01-02 2020-01-01 00:16:02 2020-01-02 03:44:23 2020-01-01 00:16:02.000 2020-01-02 03:44:23.000 962 99863 50412.5 5041250 962 99863 50412.5 5041250 -32606 32329 4537.3 453730 -126 125 0.98 98 -963 100 10953 99864 2.89189 299.89189 151.39189 15139.18918 2.89189 299.8919 151.39189 15139.18937 2.89189 299.89189 151.3918900000002 15139.18900 2020-01-01 2020-01-02 2020-01-01 00:16:03 2020-01-02 03:44:24 2020-01-01 00:16:03.000 2020-01-02 03:44:24.000 963 99864 50413.5 5041350 963 99864 50413.5 5041350 -32605 32330 4538.3 453830 -125 126 1.98 198 -964 100 10954 99865 2.89489 299.89489 151.39489 15139.48948 2.89489 299.8949 151.39489 15139.48968 2.89489 299.89489 151.3948899999997 15139.48900 2020-01-01 2020-01-02 2020-01-01 00:16:04 2020-01-02 03:44:25 2020-01-01 00:16:04.000 2020-01-02 03:44:25.000 964 99865 50414.5 5041450 964 99865 50414.5 5041450 -32604 32331 4539.3 453930 -124 127 2.98 298 -965 100 10955 99866 2.89789 299.89789 151.39789 15139.78978 2.89789 299.8979 151.39789 15139.78985 2.89789 299.89789 151.39789000000016 15139.78900 2020-01-01 2020-01-02 2020-01-01 00:16:05 2020-01-02 03:44:26 2020-01-01 00:16:05.000 2020-01-02 03:44:26.000 965 99866 50415.5 5041550 965 99866 50415.5 5041550 -32603 32332 4540.3 454030 -128 127 1.42 142 -966 100 10956 99867 2.9009 299.9009 151.4009 15140.09009 2.9009 299.9009 151.40089 15140.08996 2.90090 299.90090 151.40090000000006 15140.09000 2020-01-01 2020-01-02 2020-01-01 00:16:06 2020-01-02 03:44:27 2020-01-01 00:16:06.000 2020-01-02 03:44:27.000 966 99867 50416.5 5041650 966 99867 50416.5 5041650 -32602 32333 4541.3 454130 -128 127 -0.14 -14 -967 100 10957 99868 2.9039 299.9039 151.4039 15140.39039 2.9039 299.9039 151.4039 15140.39009 2.90390 299.90390 151.40389999999988 15140.39000 2020-01-01 2020-01-02 2020-01-01 00:16:07 2020-01-02 03:44:28 2020-01-01 00:16:07.000 2020-01-02 03:44:28.000 967 99868 50417.5 5041750 967 99868 50417.5 5041750 -32601 32334 4542.3 454230 -128 124 -1.7 -170 -968 100 10958 99869 2.9069 299.9069 151.4069 15140.69069 2.9069 299.90692 151.4069 15140.69084 2.90690 299.90690 151.40689999999998 15140.69000 2020-01-01 2020-01-02 2020-01-01 00:16:08 2020-01-02 03:44:29 2020-01-01 00:16:08.000 2020-01-02 03:44:29.000 968 99869 50418.5 5041850 968 99869 50418.5 5041850 -32600 32335 4543.3 454330 -127 125 -0.7 -70 -969 100 10959 99870 2.9099 299.9099 151.4099 15140.99099 2.90991 299.9099 151.40991 15140.99114 2.90990 299.90990 151.40990000000008 15140.99000 2020-01-01 2020-01-02 2020-01-01 00:16:09 2020-01-02 03:44:30 2020-01-01 00:16:09.000 2020-01-02 03:44:30.000 969 99870 50419.5 5041950 969 99870 50419.5 5041950 -32599 32336 4544.3 454430 -126 126 0.3 30 -97 102 10087 99997 0.29129 300.29129 150.29129 15179.42042 0.29129 300.2913 150.29129 15179.42033 0.29129 300.29129 150.2912899999998 15179.42029 2020-01-01 2020-01-02 2020-01-01 00:01:37 2020-01-02 03:46:37 2020-01-01 00:01:37.000 2020-01-02 03:46:37.000 97 99997 50047 5054747 97 99997 50047 5054747 -32472 32463 4626.009900990099 467227 -128 127 0.26732673267326734 27 -970 100 10960 99871 2.91291 299.91291 151.41291 15141.29129 2.91291 299.9129 151.41291 15141.29132 2.91291 299.91291 151.41290999999973 15141.29100 2020-01-01 2020-01-02 2020-01-01 00:16:10 2020-01-02 03:44:31 2020-01-01 00:16:10.000 2020-01-02 03:44:31.000 970 99871 50420.5 5042050 970 99871 50420.5 5042050 -32598 32337 4545.3 454530 -125 127 1.3 130 -971 100 10961 99872 2.91591 299.91591 151.41591 15141.59159 2.91591 299.91592 151.41591 15141.59142 2.91591 299.91591 151.41590999999983 15141.59100 2020-01-01 2020-01-02 2020-01-01 00:16:11 2020-01-02 03:44:32 2020-01-01 00:16:11.000 2020-01-02 03:44:32.000 971 99872 50421.5 5042150 971 99872 50421.5 5042150 -32597 32338 4546.3 454630 -128 127 -0.26 -26 -972 100 10962 99873 2.91891 299.91891 151.41891 15141.89189 2.91891 299.9189 151.41891 15141.89172 2.91891 299.91891 151.4189100000002 15141.89100 2020-01-01 2020-01-02 2020-01-01 00:16:12 2020-01-02 03:44:33 2020-01-01 00:16:12.000 2020-01-02 03:44:33.000 972 99873 50422.5 5042250 972 99873 50422.5 5042250 -32596 32339 4547.3 454730 -128 127 -1.82 -182 -973 100 10963 99874 2.92192 299.92192 151.42192 15142.19219 2.92192 299.92194 151.42192 15142.19232 2.92192 299.92192 151.4219200000001 15142.19200 2020-01-01 2020-01-02 2020-01-01 00:16:13 2020-01-02 03:44:34 2020-01-01 00:16:13.000 2020-01-02 03:44:34.000 973 99874 50423.5 5042350 973 99874 50423.5 5042350 -32595 32340 4548.3 454830 -128 123 -3.38 -338 -974 100 10964 99875 2.92492 299.92492 151.42492 15142.49249 2.92492 299.92493 151.42492 15142.49265 2.92492 299.92492 151.42491999999996 15142.49200 2020-01-01 2020-01-02 2020-01-01 00:16:14 2020-01-02 03:44:35 2020-01-01 00:16:14.000 2020-01-02 03:44:35.000 974 99875 50424.5 5042450 974 99875 50424.5 5042450 -32594 32341 4549.3 454930 -127 124 -2.38 -238 -975 100 10965 99876 2.92792 299.92792 151.42792 15142.79279 2.92792 299.92792 151.42792 15142.79279 2.92792 299.92792 151.42792000000006 15142.79200 2020-01-01 2020-01-02 2020-01-01 00:16:15 2020-01-02 03:44:36 2020-01-01 00:16:15.000 2020-01-02 03:44:36.000 975 99876 50425.5 5042550 975 99876 50425.5 5042550 -32593 32342 4550.3 455030 -126 125 -1.38 -138 -976 100 10966 99877 2.93093 299.93093 151.43093 15143.09309 2.93093 299.93094 151.43092 15143.09289 2.93093 299.93093 151.43093000000033 15143.09300 2020-01-01 2020-01-02 2020-01-01 00:16:16 2020-01-02 03:44:37 2020-01-01 00:16:16.000 2020-01-02 03:44:37.000 976 99877 50426.5 5042650 976 99877 50426.5 5042650 -32592 32343 4551.3 455130 -125 126 -0.38 -38 -977 100 10967 99878 2.93393 299.93393 151.43393 15143.39339 2.93393 299.93393 151.43393 15143.39318 2.93393 299.93393 151.4339299999998 15143.39300 2020-01-01 2020-01-02 2020-01-01 00:16:17 2020-01-02 03:44:38 2020-01-01 00:16:17.000 2020-01-02 03:44:38.000 977 99878 50427.5 5042750 977 99878 50427.5 5042750 -32591 32344 4552.3 455230 -124 127 0.62 62 -978 100 10968 99879 2.93693 299.93693 151.43693 15143.69369 2.93693 299.93695 151.43693 15143.69378 2.93693 299.93693 151.43692999999988 15143.69300 2020-01-01 2020-01-02 2020-01-01 00:16:18 2020-01-02 03:44:39 2020-01-01 00:16:18.000 2020-01-02 03:44:39.000 978 99879 50428.5 5042850 978 99879 50428.5 5042850 -32590 32345 4553.3 455330 -128 127 -0.94 -94 -979 100 10969 99880 2.93993 299.93993 151.43993 15143.99399 2.93994 299.93994 151.43994 15143.99412 2.93993 299.93993 151.43993000000023 15143.99300 2020-01-01 2020-01-02 2020-01-01 00:16:19 2020-01-02 03:44:40 2020-01-01 00:16:19.000 2020-01-02 03:44:40.000 979 99880 50429.5 5042950 979 99880 50429.5 5042950 -32589 32346 4554.3 455430 -128 123 -2.5 -250 -98 102 10088 99998 0.29429 300.29429 150.29429 15179.72372 0.29429 300.29428 150.29429 15179.72363 0.29429 300.29429 150.29428999999985 15179.72329 2020-01-01 2020-01-02 2020-01-01 00:01:38 2020-01-02 03:46:38 2020-01-01 00:01:38.000 2020-01-02 03:46:38.000 98 99998 50048 5054848 98 99998 50048 5054848 -32471 32464 4627.009900990099 467328 -128 127 -1.2673267326732673 -128 -980 100 10970 99881 2.94294 299.94294 151.44294 15144.29429 2.94294 299.94293 151.44294 15144.29426 2.94294 299.94294 151.44294000000022 15144.29400 2020-01-01 2020-01-02 2020-01-01 00:16:20 2020-01-02 03:44:41 2020-01-01 00:16:20.000 2020-01-02 03:44:41.000 980 99881 50430.5 5043050 980 99881 50430.5 5043050 -32588 32347 4555.3 455530 -127 124 -1.5 -150 -981 100 10971 99882 2.94594 299.94594 151.44594 15144.59459 2.94594 299.94595 151.44595 15144.59501 2.94594 299.94594 151.44593999999972 15144.59400 2020-01-01 2020-01-02 2020-01-01 00:16:21 2020-01-02 03:44:42 2020-01-01 00:16:21.000 2020-01-02 03:44:42.000 981 99882 50431.5 5043150 981 99882 50431.5 5043150 -32587 32348 4556.3 455630 -126 125 -0.5 -50 -982 100 10972 99883 2.94894 299.94894 151.44894 15144.89489 2.94894 299.94894 151.44894 15144.89466 2.94894 299.94894 151.4489400000002 15144.89400 2020-01-01 2020-01-02 2020-01-01 00:16:22 2020-01-02 03:44:43 2020-01-01 00:16:22.000 2020-01-02 03:44:43.000 982 99883 50432.5 5043250 982 99883 50432.5 5043250 -32586 32349 4557.3 455730 -125 126 0.5 50 -983 100 10973 99884 2.95195 299.95195 151.45195 15145.19519 2.95195 299.95197 151.45195 15145.19525 2.95195 299.95195 151.4519500000001 15145.19500 2020-01-01 2020-01-02 2020-01-01 00:16:23 2020-01-02 03:44:44 2020-01-01 00:16:23.000 2020-01-02 03:44:44.000 983 99884 50433.5 5043350 983 99884 50433.5 5043350 -32585 32350 4558.3 455830 -124 127 1.5 150 -984 100 10974 99885 2.95495 299.95495 151.45495 15145.49549 2.95495 299.95496 151.45495 15145.49559 2.95495 299.95495 151.45494999999988 15145.49500 2020-01-01 2020-01-02 2020-01-01 00:16:24 2020-01-02 03:44:45 2020-01-01 00:16:24.000 2020-01-02 03:44:45.000 984 99885 50434.5 5043450 984 99885 50434.5 5043450 -32584 32351 4559.3 455930 -128 127 -0.06 -6 -985 100 10975 99886 2.95795 299.95795 151.45795 15145.79579 2.95795 299.95795 151.45795 15145.79573 2.95795 299.95795 151.45794999999998 15145.79500 2020-01-01 2020-01-02 2020-01-01 00:16:25 2020-01-02 03:44:46 2020-01-01 00:16:25.000 2020-01-02 03:44:46.000 985 99886 50435.5 5043550 985 99886 50435.5 5043550 -32583 32352 4560.3 456030 -128 123 -1.62 -162 -986 100 10976 99887 2.96096 299.96096 151.46096 15146.09609 2.96096 299.96097 151.46096 15146.09648 2.96096 299.96096 151.46096000000023 15146.09600 2020-01-01 2020-01-02 2020-01-01 00:16:26 2020-01-02 03:44:47 2020-01-01 00:16:26.000 2020-01-02 03:44:47.000 986 99887 50436.5 5043650 986 99887 50436.5 5043650 -32582 32353 4561.3 456130 -127 124 -0.62 -62 -987 100 10977 99888 2.96396 299.96396 151.46396 15146.39639 2.96396 299.96396 151.46396 15146.39612 2.96396 299.96396 151.46395999999973 15146.39600 2020-01-01 2020-01-02 2020-01-01 00:16:27 2020-01-02 03:44:48 2020-01-01 00:16:27.000 2020-01-02 03:44:48.000 987 99888 50437.5 5043750 987 99888 50437.5 5043750 -32581 32354 4562.3 456230 -126 125 0.38 38 -988 100 10978 99889 2.96696 299.96696 151.46696 15146.69669 2.96696 299.96698 151.46696 15146.69676 2.96696 299.96696 151.46695999999983 15146.69600 2020-01-01 2020-01-02 2020-01-01 00:16:28 2020-01-02 03:44:49 2020-01-01 00:16:28.000 2020-01-02 03:44:49.000 988 99889 50438.5 5043850 988 99889 50438.5 5043850 -32580 32355 4563.3 456330 -125 126 1.38 138 -989 100 10979 99890 2.96996 299.96996 151.46996 15146.99699 2.96997 299.96997 151.46997 15146.99706 2.96996 299.96996 151.46996000000024 15146.99600 2020-01-01 2020-01-02 2020-01-01 00:16:29 2020-01-02 03:44:50 2020-01-01 00:16:29.000 2020-01-02 03:44:50.000 989 99890 50439.5 5043950 989 99890 50439.5 5043950 -32579 32356 4564.3 456430 -124 127 2.38 238 -99 102 10089 99999 0.29729 300.29729 150.29729 15180.02702 0.29729 300.2973 150.29729 15180.02726 0.29729 300.29729 150.29729000000032 15180.02629 2020-01-01 2020-01-02 2020-01-01 00:01:39 2020-01-02 03:46:39 2020-01-01 00:01:39.000 2020-01-02 03:46:39.000 99 99999 50049 5054949 99 99999 50049 5054949 -32470 32465 4628.009900990099 467429 -128 123 -2.801980198019802 -283 -990 100 10980 99891 2.97297 299.97297 151.47297 15147.29729 2.97297 299.97296 151.47297 15147.29735 2.97297 299.97297 151.47297000000015 15147.29700 2020-01-01 2020-01-02 2020-01-01 00:16:30 2020-01-02 03:44:51 2020-01-01 00:16:30.000 2020-01-02 03:44:51.000 990 99891 50440.5 5044050 990 99891 50440.5 5044050 -32578 32357 4565.3 456530 -128 127 0.82 82 +942 100 10932 99843 2.82882 299.82882 151.32882 15132.88288 2.82882 299.82883 151.32882 15132.88275 2.82882 299.82882 151.32882 15132.88200 2020-01-01 2020-01-02 2020-01-01 00:15:42 2020-01-02 03:44:03 2020-01-01 00:15:42.000 2020-01-02 03:44:03.000 942 99843 50392.5 5039250 942 99843 50392.5 5039250 -32626 32309 4517.3 451730 -128 124 -1.1 -110 +943 100 10933 99844 2.83183 299.83183 151.33183 15133.18318 2.83183 299.83182 151.33183 15133.18304 2.83183 299.83183 151.33183 15133.18300 2020-01-01 2020-01-02 2020-01-01 00:15:43 2020-01-02 03:44:04 2020-01-01 00:15:43.000 2020-01-02 03:44:04.000 943 99844 50393.5 5039350 943 99844 50393.5 5039350 -32625 32310 4518.3 451830 -127 125 -0.1 -10 +944 100 10934 99845 2.83483 299.83483 151.33483 15133.48348 2.83483 299.83484 151.33483 15133.48364 2.83483 299.83483 151.33483 15133.48300 2020-01-01 2020-01-02 2020-01-01 00:15:44 2020-01-02 03:44:05 2020-01-01 00:15:44.000 2020-01-02 03:44:05.000 944 99845 50394.5 5039450 944 99845 50394.5 5039450 -32624 32311 4519.3 451930 -126 126 0.9 90 +945 100 10935 99846 2.83783 299.83783 151.33783 15133.78378 2.83783 299.83783 151.33783 15133.78393 2.83783 299.83783 151.33783 15133.78300 2020-01-01 2020-01-02 2020-01-01 00:15:45 2020-01-02 03:44:06 2020-01-01 00:15:45.000 2020-01-02 03:44:06.000 945 99846 50395.5 5039550 945 99846 50395.5 5039550 -32623 32312 4520.3 452030 -125 127 1.9 190 +946 100 10936 99847 2.84084 299.84084 151.34084 15134.08408 2.84084 299.84085 151.34084 15134.08404 2.84084 299.84084 151.34084000000001 15134.08400 2020-01-01 2020-01-02 2020-01-01 00:15:46 2020-01-02 03:44:07 2020-01-01 00:15:46.000 2020-01-02 03:44:07.000 946 99847 50396.5 5039650 946 99847 50396.5 5039650 -32622 32313 4521.3 452130 -128 127 0.34 34 +947 100 10937 99848 2.84384 299.84384 151.34384 15134.38438 2.84384 299.84384 151.34384 15134.38421 2.84384 299.84384 151.34384 15134.38400 2020-01-01 2020-01-02 2020-01-01 00:15:47 2020-01-02 03:44:08 2020-01-01 00:15:47.000 2020-01-02 03:44:08.000 947 99848 50397.5 5039750 947 99848 50397.5 5039750 -32621 32314 4522.3 452230 -128 127 -1.22 -122 +948 100 10938 99849 2.84684 299.84684 151.34684 15134.68468 2.84684 299.84683 151.34684 15134.68452 2.84684 299.84684 151.34684 15134.68400 2020-01-01 2020-01-02 2020-01-01 00:15:48 2020-01-02 03:44:09 2020-01-01 00:15:48.000 2020-01-02 03:44:09.000 948 99849 50398.5 5039850 948 99849 50398.5 5039850 -32620 32315 4523.3 452330 -128 123 -2.78 -278 +949 100 10939 99850 2.84984 299.84984 151.34984 15134.98498 2.84985 299.84985 151.34985 15134.98527 2.84984 299.84984 151.34984 15134.98400 2020-01-01 2020-01-02 2020-01-01 00:15:49 2020-01-02 03:44:10 2020-01-01 00:15:49.000 2020-01-02 03:44:10.000 949 99850 50399.5 5039950 949 99850 50399.5 5039950 -32619 32316 4524.3 452430 -127 124 -1.78 -178 +95 102 10085 99995 0.28528 300.28528 150.28528 15178.81381 0.28528 300.28528 150.28528 15178.81343 0.28528 300.28528 150.28528 15178.81328 2020-01-01 2020-01-02 2020-01-01 00:01:35 2020-01-02 03:46:35 2020-01-01 00:01:35.000 2020-01-02 03:46:35.000 95 99995 50045 5054545 95 99995 50045 5054545 -32474 32461 4624.009900990099 467025 -125 126 0.801980198019802 81 +950 100 10940 99851 2.85285 299.85285 151.35285 15135.28528 2.85285 299.85284 151.35285 15135.28541 2.85285 299.85285 151.35285 15135.28500 2020-01-01 2020-01-02 2020-01-01 00:15:50 2020-01-02 03:44:11 2020-01-01 00:15:50.000 2020-01-02 03:44:11.000 950 99851 50400.5 5040050 950 99851 50400.5 5040050 -32618 32317 4525.3 452530 -126 125 -0.78 -78 +951 100 10941 99852 2.85585 299.85585 151.35585 15135.58558 2.85585 299.85587 151.35585 15135.58551 2.85585 299.85585 151.35585 15135.58500 2020-01-01 2020-01-02 2020-01-01 00:15:51 2020-01-02 03:44:12 2020-01-01 00:15:51.000 2020-01-02 03:44:12.000 951 99852 50401.5 5040150 951 99852 50401.5 5040150 -32617 32318 4526.3 452630 -125 126 0.22 22 +952 100 10942 99853 2.85885 299.85885 151.35885 15135.88588 2.85885 299.85886 151.35885 15135.88568 2.85885 299.85885 151.35885 15135.88500 2020-01-01 2020-01-02 2020-01-01 00:15:52 2020-01-02 03:44:13 2020-01-01 00:15:52.000 2020-01-02 03:44:13.000 952 99853 50402.5 5040250 952 99853 50402.5 5040250 -32616 32319 4527.3 452730 -124 127 1.22 122 +953 100 10943 99854 2.86186 299.86186 151.36186 15136.18618 2.86186 299.86185 151.36185 15136.18598 2.86186 299.86186 151.36186 15136.18600 2020-01-01 2020-01-02 2020-01-01 00:15:53 2020-01-02 03:44:14 2020-01-01 00:15:53.000 2020-01-02 03:44:14.000 953 99854 50403.5 5040350 953 99854 50403.5 5040350 -32615 32320 4528.3 452830 -128 127 -0.34 -34 +954 100 10944 99855 2.86486 299.86486 151.36486 15136.48648 2.86486 299.86487 151.36486 15136.48674 2.86486 299.86486 151.36486000000002 15136.48600 2020-01-01 2020-01-02 2020-01-01 00:15:54 2020-01-02 03:44:15 2020-01-01 00:15:54.000 2020-01-02 03:44:15.000 954 99855 50404.5 5040450 954 99855 50404.5 5040450 -32614 32321 4529.3 452930 -128 123 -1.9 -190 +955 100 10945 99856 2.86786 299.86786 151.36786 15136.78678 2.86786 299.86786 151.36786 15136.78688 2.86786 299.86786 151.36786 15136.78600 2020-01-01 2020-01-02 2020-01-01 00:15:55 2020-01-02 03:44:16 2020-01-01 00:15:55.000 2020-01-02 03:44:16.000 955 99856 50405.5 5040550 955 99856 50405.5 5040550 -32613 32322 4530.3 453030 -127 124 -0.9 -90 +956 100 10946 99857 2.87087 299.87087 151.37087 15137.08708 2.87087 299.87088 151.37087 15137.08701 2.87087 299.87087 151.37087 15137.08700 2020-01-01 2020-01-02 2020-01-01 00:15:56 2020-01-02 03:44:17 2020-01-01 00:15:56.000 2020-01-02 03:44:17.000 956 99857 50406.5 5040650 956 99857 50406.5 5040650 -32612 32323 4531.3 453130 -126 125 0.1 10 +957 100 10947 99858 2.87387 299.87387 151.37387 15137.38738 2.87387 299.87387 151.37387 15137.38716 2.87387 299.87387 151.37387 15137.38700 2020-01-01 2020-01-02 2020-01-01 00:15:57 2020-01-02 03:44:18 2020-01-01 00:15:57.000 2020-01-02 03:44:18.000 957 99858 50407.5 5040750 957 99858 50407.5 5040750 -32611 32324 4532.3 453230 -125 126 1.1 110 +958 100 10948 99859 2.87687 299.87687 151.37687 15137.68768 2.87687 299.8769 151.37687 15137.68791 2.87687 299.87687 151.37687 15137.68700 2020-01-01 2020-01-02 2020-01-01 00:15:58 2020-01-02 03:44:19 2020-01-01 00:15:58.000 2020-01-02 03:44:19.000 958 99859 50408.5 5040850 958 99859 50408.5 5040850 -32610 32325 4533.3 453330 -124 127 2.1 210 +959 100 10949 99860 2.87987 299.87987 151.37987 15137.98798 2.87988 299.87988 151.37988 15137.9882 2.87987 299.87987 151.37986999999998 15137.98700 2020-01-01 2020-01-02 2020-01-01 00:15:59 2020-01-02 03:44:20 2020-01-01 00:15:59.000 2020-01-02 03:44:20.000 959 99860 50409.5 5040950 959 99860 50409.5 5040950 -32609 32326 4534.3 453430 -128 127 0.54 54 +96 102 10086 99996 0.28828 300.28828 150.28828 15179.11711 0.28828 300.2883 150.28828 15179.11718 0.28828 300.28828 150.28828000000001 15179.11628 2020-01-01 2020-01-02 2020-01-01 00:01:36 2020-01-02 03:46:36 2020-01-01 00:01:36.000 2020-01-02 03:46:36.000 96 99996 50046 5054646 96 99996 50046 5054646 -32473 32462 4625.009900990099 467126 -124 127 1.801980198019802 182 +960 100 10950 99861 2.88288 299.88288 151.38288 15138.28828 2.88288 299.88287 151.38288 15138.28834 2.88288 299.88288 151.38288 15138.28800 2020-01-01 2020-01-02 2020-01-01 00:16:00 2020-01-02 03:44:21 2020-01-01 00:16:00.000 2020-01-02 03:44:21.000 960 99861 50410.5 5041050 960 99861 50410.5 5041050 -32608 32327 4535.3 453530 -128 123 -1.02 -102 +961 100 10951 99862 2.88588 299.88588 151.38588 15138.58858 2.88588 299.8859 151.38588 15138.58848 2.88588 299.88588 151.38588 15138.58800 2020-01-01 2020-01-02 2020-01-01 00:16:01 2020-01-02 03:44:22 2020-01-01 00:16:01.000 2020-01-02 03:44:22.000 961 99862 50411.5 5041150 961 99862 50411.5 5041150 -32607 32328 4536.3 453630 -127 124 -0.02 -2 +962 100 10952 99863 2.88888 299.88888 151.38888 15138.88888 2.88888 299.8889 151.38888 15138.88862 2.88888 299.88888 151.38888 15138.88800 2020-01-01 2020-01-02 2020-01-01 00:16:02 2020-01-02 03:44:23 2020-01-01 00:16:02.000 2020-01-02 03:44:23.000 962 99863 50412.5 5041250 962 99863 50412.5 5041250 -32606 32329 4537.3 453730 -126 125 0.98 98 +963 100 10953 99864 2.89189 299.89189 151.39189 15139.18918 2.89189 299.8919 151.39189 15139.18937 2.89189 299.89189 151.39189 15139.18900 2020-01-01 2020-01-02 2020-01-01 00:16:03 2020-01-02 03:44:24 2020-01-01 00:16:03.000 2020-01-02 03:44:24.000 963 99864 50413.5 5041350 963 99864 50413.5 5041350 -32605 32330 4538.3 453830 -125 126 1.98 198 +964 100 10954 99865 2.89489 299.89489 151.39489 15139.48948 2.89489 299.8949 151.39489 15139.48968 2.89489 299.89489 151.39489 15139.48900 2020-01-01 2020-01-02 2020-01-01 00:16:04 2020-01-02 03:44:25 2020-01-01 00:16:04.000 2020-01-02 03:44:25.000 964 99865 50414.5 5041450 964 99865 50414.5 5041450 -32604 32331 4539.3 453930 -124 127 2.98 298 +965 100 10955 99866 2.89789 299.89789 151.39789 15139.78978 2.89789 299.8979 151.39789 15139.78985 2.89789 299.89789 151.39789000000002 15139.78900 2020-01-01 2020-01-02 2020-01-01 00:16:05 2020-01-02 03:44:26 2020-01-01 00:16:05.000 2020-01-02 03:44:26.000 965 99866 50415.5 5041550 965 99866 50415.5 5041550 -32603 32332 4540.3 454030 -128 127 1.42 142 +966 100 10956 99867 2.9009 299.9009 151.4009 15140.09009 2.9009 299.9009 151.40089 15140.08996 2.90090 299.90090 151.4009 15140.09000 2020-01-01 2020-01-02 2020-01-01 00:16:06 2020-01-02 03:44:27 2020-01-01 00:16:06.000 2020-01-02 03:44:27.000 966 99867 50416.5 5041650 966 99867 50416.5 5041650 -32602 32333 4541.3 454130 -128 127 -0.14 -14 +967 100 10957 99868 2.9039 299.9039 151.4039 15140.39039 2.9039 299.9039 151.4039 15140.39009 2.90390 299.90390 151.4039 15140.39000 2020-01-01 2020-01-02 2020-01-01 00:16:07 2020-01-02 03:44:28 2020-01-01 00:16:07.000 2020-01-02 03:44:28.000 967 99868 50417.5 5041750 967 99868 50417.5 5041750 -32601 32334 4542.3 454230 -128 124 -1.7 -170 +968 100 10958 99869 2.9069 299.9069 151.4069 15140.69069 2.9069 299.90692 151.4069 15140.69084 2.90690 299.90690 151.4069 15140.69000 2020-01-01 2020-01-02 2020-01-01 00:16:08 2020-01-02 03:44:29 2020-01-01 00:16:08.000 2020-01-02 03:44:29.000 968 99869 50418.5 5041850 968 99869 50418.5 5041850 -32600 32335 4543.3 454330 -127 125 -0.7 -70 +969 100 10959 99870 2.9099 299.9099 151.4099 15140.99099 2.90991 299.9099 151.40991 15140.99114 2.90990 299.90990 151.4099 15140.99000 2020-01-01 2020-01-02 2020-01-01 00:16:09 2020-01-02 03:44:30 2020-01-01 00:16:09.000 2020-01-02 03:44:30.000 969 99870 50419.5 5041950 969 99870 50419.5 5041950 -32599 32336 4544.3 454430 -126 126 0.3 30 +97 102 10087 99997 0.29129 300.29129 150.29129 15179.42042 0.29129 300.2913 150.29129 15179.42033 0.29129 300.29129 150.29129 15179.42029 2020-01-01 2020-01-02 2020-01-01 00:01:37 2020-01-02 03:46:37 2020-01-01 00:01:37.000 2020-01-02 03:46:37.000 97 99997 50047 5054747 97 99997 50047 5054747 -32472 32463 4626.009900990099 467227 -128 127 0.26732673267326734 27 +970 100 10960 99871 2.91291 299.91291 151.41291 15141.29129 2.91291 299.9129 151.41291 15141.29132 2.91291 299.91291 151.41290999999998 15141.29100 2020-01-01 2020-01-02 2020-01-01 00:16:10 2020-01-02 03:44:31 2020-01-01 00:16:10.000 2020-01-02 03:44:31.000 970 99871 50420.5 5042050 970 99871 50420.5 5042050 -32598 32337 4545.3 454530 -125 127 1.3 130 +971 100 10961 99872 2.91591 299.91591 151.41591 15141.59159 2.91591 299.91592 151.41591 15141.59142 2.91591 299.91591 151.41591 15141.59100 2020-01-01 2020-01-02 2020-01-01 00:16:11 2020-01-02 03:44:32 2020-01-01 00:16:11.000 2020-01-02 03:44:32.000 971 99872 50421.5 5042150 971 99872 50421.5 5042150 -32597 32338 4546.3 454630 -128 127 -0.26 -26 +972 100 10962 99873 2.91891 299.91891 151.41891 15141.89189 2.91891 299.9189 151.41891 15141.89172 2.91891 299.91891 151.41890999999998 15141.89100 2020-01-01 2020-01-02 2020-01-01 00:16:12 2020-01-02 03:44:33 2020-01-01 00:16:12.000 2020-01-02 03:44:33.000 972 99873 50422.5 5042250 972 99873 50422.5 5042250 -32596 32339 4547.3 454730 -128 127 -1.82 -182 +973 100 10963 99874 2.92192 299.92192 151.42192 15142.19219 2.92192 299.92194 151.42192 15142.19232 2.92192 299.92192 151.42192 15142.19200 2020-01-01 2020-01-02 2020-01-01 00:16:13 2020-01-02 03:44:34 2020-01-01 00:16:13.000 2020-01-02 03:44:34.000 973 99874 50423.5 5042350 973 99874 50423.5 5042350 -32595 32340 4548.3 454830 -128 123 -3.38 -338 +974 100 10964 99875 2.92492 299.92492 151.42492 15142.49249 2.92492 299.92493 151.42492 15142.49265 2.92492 299.92492 151.42492000000001 15142.49200 2020-01-01 2020-01-02 2020-01-01 00:16:14 2020-01-02 03:44:35 2020-01-01 00:16:14.000 2020-01-02 03:44:35.000 974 99875 50424.5 5042450 974 99875 50424.5 5042450 -32594 32341 4549.3 454930 -127 124 -2.38 -238 +975 100 10965 99876 2.92792 299.92792 151.42792 15142.79279 2.92792 299.92792 151.42792 15142.79279 2.92792 299.92792 151.42792 15142.79200 2020-01-01 2020-01-02 2020-01-01 00:16:15 2020-01-02 03:44:36 2020-01-01 00:16:15.000 2020-01-02 03:44:36.000 975 99876 50425.5 5042550 975 99876 50425.5 5042550 -32593 32342 4550.3 455030 -126 125 -1.38 -138 +976 100 10966 99877 2.93093 299.93093 151.43093 15143.09309 2.93093 299.93094 151.43092 15143.09289 2.93093 299.93093 151.43093000000002 15143.09300 2020-01-01 2020-01-02 2020-01-01 00:16:16 2020-01-02 03:44:37 2020-01-01 00:16:16.000 2020-01-02 03:44:37.000 976 99877 50426.5 5042650 976 99877 50426.5 5042650 -32592 32343 4551.3 455130 -125 126 -0.38 -38 +977 100 10967 99878 2.93393 299.93393 151.43393 15143.39339 2.93393 299.93393 151.43393 15143.39318 2.93393 299.93393 151.43393 15143.39300 2020-01-01 2020-01-02 2020-01-01 00:16:17 2020-01-02 03:44:38 2020-01-01 00:16:17.000 2020-01-02 03:44:38.000 977 99878 50427.5 5042750 977 99878 50427.5 5042750 -32591 32344 4552.3 455230 -124 127 0.62 62 +978 100 10968 99879 2.93693 299.93693 151.43693 15143.69369 2.93693 299.93695 151.43693 15143.69378 2.93693 299.93693 151.43693 15143.69300 2020-01-01 2020-01-02 2020-01-01 00:16:18 2020-01-02 03:44:39 2020-01-01 00:16:18.000 2020-01-02 03:44:39.000 978 99879 50428.5 5042850 978 99879 50428.5 5042850 -32590 32345 4553.3 455330 -128 127 -0.94 -94 +979 100 10969 99880 2.93993 299.93993 151.43993 15143.99399 2.93994 299.93994 151.43994 15143.99412 2.93993 299.93993 151.43993 15143.99300 2020-01-01 2020-01-02 2020-01-01 00:16:19 2020-01-02 03:44:40 2020-01-01 00:16:19.000 2020-01-02 03:44:40.000 979 99880 50429.5 5042950 979 99880 50429.5 5042950 -32589 32346 4554.3 455430 -128 123 -2.5 -250 +98 102 10088 99998 0.29429 300.29429 150.29429 15179.72372 0.29429 300.29428 150.29429 15179.72363 0.29429 300.29429 150.29429 15179.72329 2020-01-01 2020-01-02 2020-01-01 00:01:38 2020-01-02 03:46:38 2020-01-01 00:01:38.000 2020-01-02 03:46:38.000 98 99998 50048 5054848 98 99998 50048 5054848 -32471 32464 4627.009900990099 467328 -128 127 -1.2673267326732673 -128 +980 100 10970 99881 2.94294 299.94294 151.44294 15144.29429 2.94294 299.94293 151.44294 15144.29426 2.94294 299.94294 151.44294 15144.29400 2020-01-01 2020-01-02 2020-01-01 00:16:20 2020-01-02 03:44:41 2020-01-01 00:16:20.000 2020-01-02 03:44:41.000 980 99881 50430.5 5043050 980 99881 50430.5 5043050 -32588 32347 4555.3 455530 -127 124 -1.5 -150 +981 100 10971 99882 2.94594 299.94594 151.44594 15144.59459 2.94594 299.94595 151.44595 15144.59501 2.94594 299.94594 151.44593999999998 15144.59400 2020-01-01 2020-01-02 2020-01-01 00:16:21 2020-01-02 03:44:42 2020-01-01 00:16:21.000 2020-01-02 03:44:42.000 981 99882 50431.5 5043150 981 99882 50431.5 5043150 -32587 32348 4556.3 455630 -126 125 -0.5 -50 +982 100 10972 99883 2.94894 299.94894 151.44894 15144.89489 2.94894 299.94894 151.44894 15144.89466 2.94894 299.94894 151.44894 15144.89400 2020-01-01 2020-01-02 2020-01-01 00:16:22 2020-01-02 03:44:43 2020-01-01 00:16:22.000 2020-01-02 03:44:43.000 982 99883 50432.5 5043250 982 99883 50432.5 5043250 -32586 32349 4557.3 455730 -125 126 0.5 50 +983 100 10973 99884 2.95195 299.95195 151.45195 15145.19519 2.95195 299.95197 151.45195 15145.19525 2.95195 299.95195 151.45195 15145.19500 2020-01-01 2020-01-02 2020-01-01 00:16:23 2020-01-02 03:44:44 2020-01-01 00:16:23.000 2020-01-02 03:44:44.000 983 99884 50433.5 5043350 983 99884 50433.5 5043350 -32585 32350 4558.3 455830 -124 127 1.5 150 +984 100 10974 99885 2.95495 299.95495 151.45495 15145.49549 2.95495 299.95496 151.45495 15145.49559 2.95495 299.95495 151.45495 15145.49500 2020-01-01 2020-01-02 2020-01-01 00:16:24 2020-01-02 03:44:45 2020-01-01 00:16:24.000 2020-01-02 03:44:45.000 984 99885 50434.5 5043450 984 99885 50434.5 5043450 -32584 32351 4559.3 455930 -128 127 -0.06 -6 +985 100 10975 99886 2.95795 299.95795 151.45795 15145.79579 2.95795 299.95795 151.45795 15145.79573 2.95795 299.95795 151.45795 15145.79500 2020-01-01 2020-01-02 2020-01-01 00:16:25 2020-01-02 03:44:46 2020-01-01 00:16:25.000 2020-01-02 03:44:46.000 985 99886 50435.5 5043550 985 99886 50435.5 5043550 -32583 32352 4560.3 456030 -128 123 -1.62 -162 +986 100 10976 99887 2.96096 299.96096 151.46096 15146.09609 2.96096 299.96097 151.46096 15146.09648 2.96096 299.96096 151.46096 15146.09600 2020-01-01 2020-01-02 2020-01-01 00:16:26 2020-01-02 03:44:47 2020-01-01 00:16:26.000 2020-01-02 03:44:47.000 986 99887 50436.5 5043650 986 99887 50436.5 5043650 -32582 32353 4561.3 456130 -127 124 -0.62 -62 +987 100 10977 99888 2.96396 299.96396 151.46396 15146.39639 2.96396 299.96396 151.46396 15146.39612 2.96396 299.96396 151.46396000000001 15146.39600 2020-01-01 2020-01-02 2020-01-01 00:16:27 2020-01-02 03:44:48 2020-01-01 00:16:27.000 2020-01-02 03:44:48.000 987 99888 50437.5 5043750 987 99888 50437.5 5043750 -32581 32354 4562.3 456230 -126 125 0.38 38 +988 100 10978 99889 2.96696 299.96696 151.46696 15146.69669 2.96696 299.96698 151.46696 15146.69676 2.96696 299.96696 151.46696 15146.69600 2020-01-01 2020-01-02 2020-01-01 00:16:28 2020-01-02 03:44:49 2020-01-01 00:16:28.000 2020-01-02 03:44:49.000 988 99889 50438.5 5043850 988 99889 50438.5 5043850 -32580 32355 4563.3 456330 -125 126 1.38 138 +989 100 10979 99890 2.96996 299.96996 151.46996 15146.99699 2.96997 299.96997 151.46997 15146.99706 2.96996 299.96996 151.46996 15146.99600 2020-01-01 2020-01-02 2020-01-01 00:16:29 2020-01-02 03:44:50 2020-01-01 00:16:29.000 2020-01-02 03:44:50.000 989 99890 50439.5 5043950 989 99890 50439.5 5043950 -32579 32356 4564.3 456430 -124 127 2.38 238 +99 102 10089 99999 0.29729 300.29729 150.29729 15180.02702 0.29729 300.2973 150.29729 15180.02726 0.29729 300.29729 150.29729 15180.02629 2020-01-01 2020-01-02 2020-01-01 00:01:39 2020-01-02 03:46:39 2020-01-01 00:01:39.000 2020-01-02 03:46:39.000 99 99999 50049 5054949 99 99999 50049 5054949 -32470 32465 4628.009900990099 467429 -128 123 -2.801980198019802 -283 +990 100 10980 99891 2.97297 299.97297 151.47297 15147.29729 2.97297 299.97296 151.47297 15147.29735 2.97297 299.97297 151.47297 15147.29700 2020-01-01 2020-01-02 2020-01-01 00:16:30 2020-01-02 03:44:51 2020-01-01 00:16:30.000 2020-01-02 03:44:51.000 990 99891 50440.5 5044050 990 99891 50440.5 5044050 -32578 32357 4565.3 456530 -128 127 0.82 82 991 100 10981 99892 2.97597 299.97597 151.47597 15147.59759 2.97597 299.97598 151.47597 15147.59795 2.97597 299.97597 151.47597 15147.59700 2020-01-01 2020-01-02 2020-01-01 00:16:31 2020-01-02 03:44:52 2020-01-01 00:16:31.000 2020-01-02 03:44:52.000 991 99892 50441.5 5044150 991 99892 50441.5 5044150 -32577 32358 4566.3 456630 -128 127 -0.74 -74 -992 100 10982 99893 2.97897 299.97897 151.47897 15147.89789 2.97897 299.97897 151.47897 15147.89759 2.97897 299.97897 151.4789700000001 15147.89700 2020-01-01 2020-01-02 2020-01-01 00:16:32 2020-01-02 03:44:53 2020-01-01 00:16:32.000 2020-01-02 03:44:53.000 992 99893 50442.5 5044250 992 99893 50442.5 5044250 -32576 32359 4567.3 456730 -128 124 -2.3 -230 +992 100 10982 99893 2.97897 299.97897 151.47897 15147.89789 2.97897 299.97897 151.47897 15147.89759 2.97897 299.97897 151.47897 15147.89700 2020-01-01 2020-01-02 2020-01-01 00:16:32 2020-01-02 03:44:53 2020-01-01 00:16:32.000 2020-01-02 03:44:53.000 992 99893 50442.5 5044250 992 99893 50442.5 5044250 -32576 32359 4567.3 456730 -128 124 -2.3 -230 993 100 10983 99894 2.98198 299.98198 151.48198 15148.19819 2.98198 299.982 151.48198 15148.19823 2.98198 299.98198 151.48198 15148.19800 2020-01-01 2020-01-02 2020-01-01 00:16:33 2020-01-02 03:44:54 2020-01-01 00:16:33.000 2020-01-02 03:44:54.000 993 99894 50443.5 5044350 993 99894 50443.5 5044350 -32575 32360 4568.3 456830 -127 125 -1.3 -130 -994 100 10984 99895 2.98498 299.98498 151.48498 15148.49849 2.98498 299.985 151.48498 15148.49853 2.98498 299.98498 151.48497999999984 15148.49800 2020-01-01 2020-01-02 2020-01-01 00:16:34 2020-01-02 03:44:55 2020-01-01 00:16:34.000 2020-01-02 03:44:55.000 994 99895 50444.5 5044450 994 99895 50444.5 5044450 -32574 32361 4569.3 456930 -126 126 -0.3 -30 -995 100 10985 99896 2.98798 299.98798 151.48798 15148.79879 2.98798 299.98798 151.48798 15148.79882 2.98798 299.98798 151.4879799999999 15148.79800 2020-01-01 2020-01-02 2020-01-01 00:16:35 2020-01-02 03:44:56 2020-01-01 00:16:35.000 2020-01-02 03:44:56.000 995 99896 50445.5 5044550 995 99896 50445.5 5044550 -32573 32362 4570.3 457030 -125 127 0.7 70 -996 100 10986 99897 2.99099 299.99099 151.49099 15149.09909 2.99099 299.991 151.49099 15149.09942 2.99099 299.99099 151.49099000000015 15149.09900 2020-01-01 2020-01-02 2020-01-01 00:16:36 2020-01-02 03:44:57 2020-01-01 00:16:36.000 2020-01-02 03:44:57.000 996 99897 50446.5 5044650 996 99897 50446.5 5044650 -32572 32363 4571.3 457130 -128 127 -0.86 -86 -997 100 10987 99898 2.99399 299.99399 151.49399 15149.39939 2.99399 299.994 151.49399 15149.3991 2.99399 299.99399 151.49399000000025 15149.39900 2020-01-01 2020-01-02 2020-01-01 00:16:37 2020-01-02 03:44:58 2020-01-01 00:16:37.000 2020-01-02 03:44:58.000 997 99898 50447.5 5044750 997 99898 50447.5 5044750 -32571 32364 4572.3 457230 -128 127 -2.42 -242 -998 100 10988 99899 2.99699 299.99699 151.49699 15149.69969 2.99699 299.997 151.49699 15149.6997 2.99699 299.99699 151.49698999999976 15149.69900 2020-01-01 2020-01-02 2020-01-01 00:16:38 2020-01-02 03:44:59 2020-01-01 00:16:38.000 2020-01-02 03:44:59.000 998 99899 50448.5 5044850 998 99899 50448.5 5044850 -32570 32365 4573.3 457330 -128 123 -3.98 -398 +994 100 10984 99895 2.98498 299.98498 151.48498 15148.49849 2.98498 299.985 151.48498 15148.49853 2.98498 299.98498 151.48498 15148.49800 2020-01-01 2020-01-02 2020-01-01 00:16:34 2020-01-02 03:44:55 2020-01-01 00:16:34.000 2020-01-02 03:44:55.000 994 99895 50444.5 5044450 994 99895 50444.5 5044450 -32574 32361 4569.3 456930 -126 126 -0.3 -30 +995 100 10985 99896 2.98798 299.98798 151.48798 15148.79879 2.98798 299.98798 151.48798 15148.79882 2.98798 299.98798 151.48798 15148.79800 2020-01-01 2020-01-02 2020-01-01 00:16:35 2020-01-02 03:44:56 2020-01-01 00:16:35.000 2020-01-02 03:44:56.000 995 99896 50445.5 5044550 995 99896 50445.5 5044550 -32573 32362 4570.3 457030 -125 127 0.7 70 +996 100 10986 99897 2.99099 299.99099 151.49099 15149.09909 2.99099 299.991 151.49099 15149.09942 2.99099 299.99099 151.49099 15149.09900 2020-01-01 2020-01-02 2020-01-01 00:16:36 2020-01-02 03:44:57 2020-01-01 00:16:36.000 2020-01-02 03:44:57.000 996 99897 50446.5 5044650 996 99897 50446.5 5044650 -32572 32363 4571.3 457130 -128 127 -0.86 -86 +997 100 10987 99898 2.99399 299.99399 151.49399 15149.39939 2.99399 299.994 151.49399 15149.3991 2.99399 299.99399 151.49399 15149.39900 2020-01-01 2020-01-02 2020-01-01 00:16:37 2020-01-02 03:44:58 2020-01-01 00:16:37.000 2020-01-02 03:44:58.000 997 99898 50447.5 5044750 997 99898 50447.5 5044750 -32571 32364 4572.3 457230 -128 127 -2.42 -242 +998 100 10988 99899 2.99699 299.99699 151.49699 15149.69969 2.99699 299.997 151.49699 15149.6997 2.99699 299.99699 151.49699 15149.69900 2020-01-01 2020-01-02 2020-01-01 00:16:38 2020-01-02 03:44:59 2020-01-01 00:16:38.000 2020-01-02 03:44:59.000 998 99899 50448.5 5044850 998 99899 50448.5 5044850 -32570 32365 4573.3 457330 -128 123 -3.98 -398 ---- select with states ---- -1 1 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N -2 1 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N @@ -1012,1004 +1012,1004 @@ -4 1 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N -5 1 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N 0 2 0 99900 0 300 150 15150 0 300 150 15150 0.00000 300.00000 150 15150.00000 2020-01-01 2020-01-02 2020-01-01 00:00:00 2020-01-02 03:45:00 2020-01-01 00:00:00.000 2020-01-02 03:45:00.000 0 99900 49950 5044950 0 99900 49950 5044950 -32569 32366 4529.009900990099 457430 -127 124 -2.9504950495049505 -298 -1 2 1 9991 0.003 300.003 150.003 15150.3033 0.003 300.003 150.003 15150.30329 0.00300 300.00300 150.00300000000007 15150.30300 2020-01-01 2020-01-02 2020-01-01 00:00:01 2020-01-02 03:45:01 2020-01-01 00:00:01.000 2020-01-02 03:45:01.000 1 99901 49951 5045051 1 99901 49951 5045051 -32568 32367 4530.009900990099 457531 -126 125 -1.9504950495049505 -197 -10 2 10 99910 0.03003 300.03003 150.03003 15153.03303 0.03003 300.03003 150.03002 15153.03296 0.03003 300.03003 150.03002999999993 15153.03303 2020-01-01 2020-01-02 2020-01-01 00:00:10 2020-01-02 03:45:10 2020-01-01 00:00:10.000 2020-01-02 03:45:10.000 10 99910 49960 5045960 10 99910 49960 5045960 -32559 32376 4539.009900990099 458440 -128 127 -0.5544554455445545 -56 -100 2 100 99001 0.3003 297.3003 148.8003 14880.03003 0.3003 297.3003 148.80029 14880.02962 0.30030 297.30030 148.8003000000001 14880.03000 2020-01-01 2020-01-02 2020-01-01 00:01:40 2020-01-02 03:30:01 2020-01-01 00:01:40.000 2020-01-02 03:30:01.000 100 99001 49550.5 4955050 100 99001 49550.5 4955050 -32469 32466 4986.02 498602 -127 124 -0.86 -86 -101 2 10091 99002 0.3033 297.3033 148.8033 14880.33033 0.3033 297.3033 148.8033 14880.33035 0.30330 297.30330 148.80329999999978 14880.33000 2020-01-01 2020-01-02 2020-01-01 00:01:41 2020-01-02 03:30:02 2020-01-01 00:01:41.000 2020-01-02 03:30:02.000 101 99002 49551.5 4955150 101 99002 49551.5 4955150 -32468 32467 4987.02 498702 -126 125 0.14 14 -102 2 10092 99003 0.3063 297.3063 148.8063 14880.63063 0.3063 297.3063 148.8063 14880.6305 0.30630 297.30630 148.80630000000014 14880.63000 2020-01-01 2020-01-02 2020-01-01 00:01:42 2020-01-02 03:30:03 2020-01-01 00:01:42.000 2020-01-02 03:30:03.000 102 99003 49552.5 4955250 102 99003 49552.5 4955250 -32467 32468 4988.02 498802 -125 126 1.14 114 -103 2 10093 99004 0.3093 297.3093 148.8093 14880.93093 0.3093 297.3093 148.8093 14880.93085 0.30930 297.30930 148.80930000000012 14880.93000 2020-01-01 2020-01-02 2020-01-01 00:01:43 2020-01-02 03:30:04 2020-01-01 00:01:43.000 2020-01-02 03:30:04.000 103 99004 49553.5 4955350 103 99004 49553.5 4955350 -32466 32469 4989.02 498902 -124 127 2.14 214 -104 2 10094 99005 0.31231 297.31231 148.81231 14881.23123 0.31231 297.31232 148.81231 14881.23144 0.31231 297.31231 148.81230999999988 14881.23100 2020-01-01 2020-01-02 2020-01-01 00:01:44 2020-01-02 03:30:05 2020-01-01 00:01:44.000 2020-01-02 03:30:05.000 104 99005 49554.5 4955450 104 99005 49554.5 4955450 -32465 32470 4990.02 499002 -128 127 0.58 58 -105 2 10095 99006 0.31531 297.31531 148.81531 14881.53153 0.31531 297.3153 148.81531 14881.53174 0.31531 297.31531 148.81530999999998 14881.53100 2020-01-01 2020-01-02 2020-01-01 00:01:45 2020-01-02 03:30:06 2020-01-01 00:01:45.000 2020-01-02 03:30:06.000 105 99006 49555.5 4955550 105 99006 49555.5 4955550 -32464 32471 4991.02 499102 -128 123 -0.98 -98 -106 2 10096 99007 0.31831 297.31831 148.81831 14881.83183 0.31831 297.31833 148.81831 14881.83182 0.31831 297.31831 148.81831000000003 14881.83100 2020-01-01 2020-01-02 2020-01-01 00:01:46 2020-01-02 03:30:07 2020-01-01 00:01:46.000 2020-01-02 03:30:07.000 106 99007 49556.5 4955650 106 99007 49556.5 4955650 -32463 32472 4992.02 499202 -127 124 0.02 2 -107 2 10097 99008 0.32132 297.32132 148.82132 14882.13213 0.32132 297.32132 148.82131 14882.13197 0.32132 297.32132 148.8213199999998 14882.13200 2020-01-01 2020-01-02 2020-01-01 00:01:47 2020-01-02 03:30:08 2020-01-01 00:01:47.000 2020-01-02 03:30:08.000 107 99008 49557.5 4955750 107 99008 49557.5 4955750 -32462 32473 4993.02 499302 -126 125 1.02 102 -108 2 10098 99009 0.32432 297.32432 148.82432 14882.43243 0.32432 297.3243 148.82432 14882.43232 0.32432 297.32432 148.82431999999986 14882.43200 2020-01-01 2020-01-02 2020-01-01 00:01:48 2020-01-02 03:30:09 2020-01-01 00:01:48.000 2020-01-02 03:30:09.000 108 99009 49558.5 4955850 108 99009 49558.5 4955850 -32461 32474 4994.02 499402 -125 126 2.02 202 -109 2 10099 99010 0.32732 297.32732 148.82732 14882.73273 0.32732 297.32733 148.82732 14882.7329 0.32732 297.32732 148.82732000000016 14882.73200 2020-01-01 2020-01-02 2020-01-01 00:01:49 2020-01-02 03:30:10 2020-01-01 00:01:49.000 2020-01-02 03:30:10.000 109 99010 49559.5 4955950 109 99010 49559.5 4955950 -32460 32475 4995.02 499502 -124 127 3.02 302 +1 2 1 9991 0.003 300.003 150.003 15150.3033 0.003 300.003 150.003 15150.30329 0.00300 300.00300 150.003 15150.30300 2020-01-01 2020-01-02 2020-01-01 00:00:01 2020-01-02 03:45:01 2020-01-01 00:00:01.000 2020-01-02 03:45:01.000 1 99901 49951 5045051 1 99901 49951 5045051 -32568 32367 4530.009900990099 457531 -126 125 -1.9504950495049505 -197 +10 2 10 99910 0.03003 300.03003 150.03003 15153.03303 0.03003 300.03003 150.03002 15153.03296 0.03003 300.03003 150.03003 15153.03303 2020-01-01 2020-01-02 2020-01-01 00:00:10 2020-01-02 03:45:10 2020-01-01 00:00:10.000 2020-01-02 03:45:10.000 10 99910 49960 5045960 10 99910 49960 5045960 -32559 32376 4539.009900990099 458440 -128 127 -0.5544554455445545 -56 +100 2 100 99001 0.3003 297.3003 148.8003 14880.03003 0.3003 297.3003 148.80029 14880.02962 0.30030 297.30030 148.8003 14880.03000 2020-01-01 2020-01-02 2020-01-01 00:01:40 2020-01-02 03:30:01 2020-01-01 00:01:40.000 2020-01-02 03:30:01.000 100 99001 49550.5 4955050 100 99001 49550.5 4955050 -32469 32466 4986.02 498602 -127 124 -0.86 -86 +101 2 10091 99002 0.3033 297.3033 148.8033 14880.33033 0.3033 297.3033 148.8033 14880.33035 0.30330 297.30330 148.8033 14880.33000 2020-01-01 2020-01-02 2020-01-01 00:01:41 2020-01-02 03:30:02 2020-01-01 00:01:41.000 2020-01-02 03:30:02.000 101 99002 49551.5 4955150 101 99002 49551.5 4955150 -32468 32467 4987.02 498702 -126 125 0.14 14 +102 2 10092 99003 0.3063 297.3063 148.8063 14880.63063 0.3063 297.3063 148.8063 14880.6305 0.30630 297.30630 148.8063 14880.63000 2020-01-01 2020-01-02 2020-01-01 00:01:42 2020-01-02 03:30:03 2020-01-01 00:01:42.000 2020-01-02 03:30:03.000 102 99003 49552.5 4955250 102 99003 49552.5 4955250 -32467 32468 4988.02 498802 -125 126 1.14 114 +103 2 10093 99004 0.3093 297.3093 148.8093 14880.93093 0.3093 297.3093 148.8093 14880.93085 0.30930 297.30930 148.8093 14880.93000 2020-01-01 2020-01-02 2020-01-01 00:01:43 2020-01-02 03:30:04 2020-01-01 00:01:43.000 2020-01-02 03:30:04.000 103 99004 49553.5 4955350 103 99004 49553.5 4955350 -32466 32469 4989.02 498902 -124 127 2.14 214 +104 2 10094 99005 0.31231 297.31231 148.81231 14881.23123 0.31231 297.31232 148.81231 14881.23144 0.31231 297.31231 148.81231 14881.23100 2020-01-01 2020-01-02 2020-01-01 00:01:44 2020-01-02 03:30:05 2020-01-01 00:01:44.000 2020-01-02 03:30:05.000 104 99005 49554.5 4955450 104 99005 49554.5 4955450 -32465 32470 4990.02 499002 -128 127 0.58 58 +105 2 10095 99006 0.31531 297.31531 148.81531 14881.53153 0.31531 297.3153 148.81531 14881.53174 0.31531 297.31531 148.81531 14881.53100 2020-01-01 2020-01-02 2020-01-01 00:01:45 2020-01-02 03:30:06 2020-01-01 00:01:45.000 2020-01-02 03:30:06.000 105 99006 49555.5 4955550 105 99006 49555.5 4955550 -32464 32471 4991.02 499102 -128 123 -0.98 -98 +106 2 10096 99007 0.31831 297.31831 148.81831 14881.83183 0.31831 297.31833 148.81831 14881.83182 0.31831 297.31831 148.81831 14881.83100 2020-01-01 2020-01-02 2020-01-01 00:01:46 2020-01-02 03:30:07 2020-01-01 00:01:46.000 2020-01-02 03:30:07.000 106 99007 49556.5 4955650 106 99007 49556.5 4955650 -32463 32472 4992.02 499202 -127 124 0.02 2 +107 2 10097 99008 0.32132 297.32132 148.82132 14882.13213 0.32132 297.32132 148.82131 14882.13197 0.32132 297.32132 148.82132 14882.13200 2020-01-01 2020-01-02 2020-01-01 00:01:47 2020-01-02 03:30:08 2020-01-01 00:01:47.000 2020-01-02 03:30:08.000 107 99008 49557.5 4955750 107 99008 49557.5 4955750 -32462 32473 4993.02 499302 -126 125 1.02 102 +108 2 10098 99009 0.32432 297.32432 148.82432 14882.43243 0.32432 297.3243 148.82432 14882.43232 0.32432 297.32432 148.82432 14882.43200 2020-01-01 2020-01-02 2020-01-01 00:01:48 2020-01-02 03:30:09 2020-01-01 00:01:48.000 2020-01-02 03:30:09.000 108 99009 49558.5 4955850 108 99009 49558.5 4955850 -32461 32474 4994.02 499402 -125 126 2.02 202 +109 2 10099 99010 0.32732 297.32732 148.82732 14882.73273 0.32732 297.32733 148.82732 14882.7329 0.32732 297.32732 148.82732 14882.73200 2020-01-01 2020-01-02 2020-01-01 00:01:49 2020-01-02 03:30:10 2020-01-01 00:01:49.000 2020-01-02 03:30:10.000 109 99010 49559.5 4955950 109 99010 49559.5 4955950 -32460 32475 4995.02 499502 -124 127 3.02 302 11 2 10001 99911 0.03303 300.03303 150.03303 15153.33633 0.03303 300.03302 150.03303 15153.33627 0.03303 300.03303 150.03303 15153.33603 2020-01-01 2020-01-02 2020-01-01 00:00:11 2020-01-02 03:45:11 2020-01-01 00:00:11.000 2020-01-02 03:45:11.000 11 99911 49961 5046061 11 99911 49961 5046061 -32558 32377 4540.009900990099 458541 -128 123 -2.089108910891089 -211 -110 2 10100 99011 0.33033 297.33033 148.83033 14883.03303 0.33033 297.33032 148.83033 14883.03321 0.33033 297.33033 148.83033000000006 14883.03300 2020-01-01 2020-01-02 2020-01-01 00:01:50 2020-01-02 03:30:11 2020-01-01 00:01:50.000 2020-01-02 03:30:11.000 110 99011 49560.5 4956050 110 99011 49560.5 4956050 -32459 32476 4996.02 499602 -128 127 1.46 146 -111 2 10101 99012 0.33333 297.33333 148.83333 14883.33333 0.33333 297.33334 148.83333 14883.33329 0.33333 297.33333 148.83332999999996 14883.33300 2020-01-01 2020-01-02 2020-01-01 00:01:51 2020-01-02 03:30:12 2020-01-01 00:01:51.000 2020-01-02 03:30:12.000 111 99012 49561.5 4956150 111 99012 49561.5 4956150 -32458 32477 4997.02 499702 -128 123 -0.1 -10 -112 2 10102 99013 0.33633 297.33633 148.83633 14883.63363 0.33633 297.33633 148.83633 14883.63348 0.33633 297.33633 148.83633000000006 14883.63300 2020-01-01 2020-01-02 2020-01-01 00:01:52 2020-01-02 03:30:13 2020-01-01 00:01:52.000 2020-01-02 03:30:13.000 112 99013 49562.5 4956250 112 99013 49562.5 4956250 -32457 32478 4998.02 499802 -127 124 0.9 90 -113 2 10103 99014 0.33933 297.33933 148.83933 14883.93393 0.33933 297.33932 148.83933 14883.9338 0.33933 297.33933 148.83933000000007 14883.93300 2020-01-01 2020-01-02 2020-01-01 00:01:53 2020-01-02 03:30:14 2020-01-01 00:01:53.000 2020-01-02 03:30:14.000 113 99014 49563.5 4956350 113 99014 49563.5 4956350 -32456 32479 4999.02 499902 -126 125 1.9 190 -114 2 10104 99015 0.34234 297.34234 148.84234 14884.23423 0.34234 297.34235 148.84234 14884.23437 0.34234 297.34234 148.84233999999992 14884.23400 2020-01-01 2020-01-02 2020-01-01 00:01:54 2020-01-02 03:30:15 2020-01-01 00:01:54.000 2020-01-02 03:30:15.000 114 99015 49564.5 4956450 114 99015 49564.5 4956450 -32455 32480 5000.02 500002 -125 126 2.9 290 -115 2 10105 99016 0.34534 297.34534 148.84534 14884.53453 0.34534 297.34534 148.84534 14884.53468 0.34534 297.34534 148.8453399999999 14884.53400 2020-01-01 2020-01-02 2020-01-01 00:01:55 2020-01-02 03:30:16 2020-01-01 00:01:55.000 2020-01-02 03:30:16.000 115 99016 49565.5 4956550 115 99016 49565.5 4956550 -32454 32481 5001.02 500102 -124 127 3.9 390 -116 2 10106 99017 0.34834 297.34834 148.84834 14884.83483 0.34834 297.34836 148.84834 14884.83476 0.34834 297.34834 148.84834000000004 14884.83400 2020-01-01 2020-01-02 2020-01-01 00:01:56 2020-01-02 03:30:17 2020-01-01 00:01:56.000 2020-01-02 03:30:17.000 116 99017 49566.5 4956650 116 99017 49566.5 4956650 -32453 32482 5002.02 500202 -128 127 2.34 234 -117 2 10107 99018 0.35135 297.35135 148.85135 14885.13513 0.35135 297.35135 148.85134 14885.13495 0.35135 297.35135 148.85135000000014 14885.13500 2020-01-01 2020-01-02 2020-01-01 00:01:57 2020-01-02 03:30:18 2020-01-01 00:01:57.000 2020-01-02 03:30:18.000 117 99018 49567.5 4956750 117 99018 49567.5 4956750 -32452 32483 5003.02 500302 -128 123 0.78 78 -118 2 10108 99019 0.35435 297.35435 148.85435 14885.43543 0.35435 297.35434 148.85435 14885.43526 0.35435 297.35435 148.8543499999998 14885.43500 2020-01-01 2020-01-02 2020-01-01 00:01:58 2020-01-02 03:30:19 2020-01-01 00:01:58.000 2020-01-02 03:30:19.000 118 99019 49568.5 4956850 118 99019 49568.5 4956850 -32451 32484 5004.02 500402 -127 124 1.78 178 -119 2 10109 99020 0.35735 297.35735 148.85735 14885.73573 0.35735 297.35736 148.85736 14885.736 0.35735 297.35735 148.85735000000017 14885.73500 2020-01-01 2020-01-02 2020-01-01 00:01:59 2020-01-02 03:30:20 2020-01-01 00:01:59.000 2020-01-02 03:30:20.000 119 99020 49569.5 4956950 119 99020 49569.5 4956950 -32450 32485 5005.02 500502 -126 125 2.78 278 -12 2 10002 99912 0.03603 300.03603 150.03603 15153.63963 0.03603 300.03604 150.03603 15153.6399 0.03603 300.03603 150.03602999999995 15153.63903 2020-01-01 2020-01-02 2020-01-01 00:00:12 2020-01-02 03:45:12 2020-01-01 00:00:12.000 2020-01-02 03:45:12.000 12 99912 49962 5046162 12 99912 49962 5046162 -32557 32378 4541.009900990099 458642 -127 124 -1.0891089108910892 -110 -120 2 10110 99021 0.36036 297.36036 148.86036 14886.03603 0.36036 297.36035 148.86036 14886.03615 0.36036 297.36036 148.86036000000007 14886.03600 2020-01-01 2020-01-02 2020-01-01 00:02:00 2020-01-02 03:30:21 2020-01-01 00:02:00.000 2020-01-02 03:30:21.000 120 99021 49570.5 4957050 120 99021 49570.5 4957050 -32449 32486 5006.02 500602 -125 126 3.78 378 -121 2 10111 99022 0.36336 297.36336 148.86336 14886.33633 0.36336 297.36337 148.86336 14886.33627 0.36336 297.36336 148.86335999999991 14886.33600 2020-01-01 2020-01-02 2020-01-01 00:02:01 2020-01-02 03:30:22 2020-01-01 00:02:01.000 2020-01-02 03:30:22.000 121 99022 49571.5 4957150 121 99022 49571.5 4957150 -32448 32487 5007.02 500702 -124 127 4.78 478 -122 2 10112 99023 0.36636 297.36636 148.86636 14886.63663 0.36636 297.36636 148.86636 14886.63642 0.36636 297.36636 148.86636 14886.63600 2020-01-01 2020-01-02 2020-01-01 00:02:02 2020-01-02 03:30:23 2020-01-01 00:02:02.000 2020-01-02 03:30:23.000 122 99023 49572.5 4957250 122 99023 49572.5 4957250 -32447 32488 5008.02 500802 -128 127 3.22 322 -123 2 10113 99024 0.36936 297.36936 148.86936 14886.93693 0.36936 297.36935 148.86936 14886.93673 0.36936 297.36936 148.86936000000003 14886.93600 2020-01-01 2020-01-02 2020-01-01 00:02:03 2020-01-02 03:30:24 2020-01-01 00:02:03.000 2020-01-02 03:30:24.000 123 99024 49573.5 4957350 123 99024 49573.5 4957350 -32446 32489 5009.02 500902 -128 127 1.66 166 -124 2 10114 99025 0.37237 297.37237 148.87237 14887.23723 0.37237 297.37238 148.87237 14887.23746 0.37237 297.37237 148.8723699999998 14887.23700 2020-01-01 2020-01-02 2020-01-01 00:02:04 2020-01-02 03:30:25 2020-01-01 00:02:04.000 2020-01-02 03:30:25.000 124 99025 49574.5 4957450 124 99025 49574.5 4957450 -32445 32490 5010.02 501002 -128 124 0.1 10 -125 2 10115 99026 0.37537 297.37537 148.87537 14887.53753 0.37537 297.37537 148.87537 14887.53762 0.37537 297.37537 148.87536999999986 14887.53700 2020-01-01 2020-01-02 2020-01-01 00:02:05 2020-01-02 03:30:26 2020-01-01 00:02:05.000 2020-01-02 03:30:26.000 125 99026 49575.5 4957550 125 99026 49575.5 4957550 -32444 32491 5011.02 501102 -127 125 1.1 110 -126 2 10116 99027 0.37837 297.37837 148.87837 14887.83783 0.37837 297.3784 148.87837 14887.83774 0.37837 297.37837 148.87837000000016 14887.83700 2020-01-01 2020-01-02 2020-01-01 00:02:06 2020-01-02 03:30:27 2020-01-01 00:02:06.000 2020-01-02 03:30:27.000 126 99027 49576.5 4957650 126 99027 49576.5 4957650 -32443 32492 5012.02 501202 -126 126 2.1 210 -127 2 10117 99028 0.38138 297.38138 148.88138 14888.13813 0.38138 297.38138 148.88137 14888.13789 0.38138 297.38138 148.8813800000001 14888.13800 2020-01-01 2020-01-02 2020-01-01 00:02:07 2020-01-02 03:30:28 2020-01-01 00:02:07.000 2020-01-02 03:30:28.000 127 99028 49577.5 4957750 127 99028 49577.5 4957750 -32442 32493 5013.02 501302 -125 127 3.1 310 +110 2 10100 99011 0.33033 297.33033 148.83033 14883.03303 0.33033 297.33032 148.83033 14883.03321 0.33033 297.33033 148.83033 14883.03300 2020-01-01 2020-01-02 2020-01-01 00:01:50 2020-01-02 03:30:11 2020-01-01 00:01:50.000 2020-01-02 03:30:11.000 110 99011 49560.5 4956050 110 99011 49560.5 4956050 -32459 32476 4996.02 499602 -128 127 1.46 146 +111 2 10101 99012 0.33333 297.33333 148.83333 14883.33333 0.33333 297.33334 148.83333 14883.33329 0.33333 297.33333 148.83333000000002 14883.33300 2020-01-01 2020-01-02 2020-01-01 00:01:51 2020-01-02 03:30:12 2020-01-01 00:01:51.000 2020-01-02 03:30:12.000 111 99012 49561.5 4956150 111 99012 49561.5 4956150 -32458 32477 4997.02 499702 -128 123 -0.1 -10 +112 2 10102 99013 0.33633 297.33633 148.83633 14883.63363 0.33633 297.33633 148.83633 14883.63348 0.33633 297.33633 148.83633 14883.63300 2020-01-01 2020-01-02 2020-01-01 00:01:52 2020-01-02 03:30:13 2020-01-01 00:01:52.000 2020-01-02 03:30:13.000 112 99013 49562.5 4956250 112 99013 49562.5 4956250 -32457 32478 4998.02 499802 -127 124 0.9 90 +113 2 10103 99014 0.33933 297.33933 148.83933 14883.93393 0.33933 297.33932 148.83933 14883.9338 0.33933 297.33933 148.83933000000002 14883.93300 2020-01-01 2020-01-02 2020-01-01 00:01:53 2020-01-02 03:30:14 2020-01-01 00:01:53.000 2020-01-02 03:30:14.000 113 99014 49563.5 4956350 113 99014 49563.5 4956350 -32456 32479 4999.02 499902 -126 125 1.9 190 +114 2 10104 99015 0.34234 297.34234 148.84234 14884.23423 0.34234 297.34235 148.84234 14884.23437 0.34234 297.34234 148.84234 14884.23400 2020-01-01 2020-01-02 2020-01-01 00:01:54 2020-01-02 03:30:15 2020-01-01 00:01:54.000 2020-01-02 03:30:15.000 114 99015 49564.5 4956450 114 99015 49564.5 4956450 -32455 32480 5000.02 500002 -125 126 2.9 290 +115 2 10105 99016 0.34534 297.34534 148.84534 14884.53453 0.34534 297.34534 148.84534 14884.53468 0.34534 297.34534 148.84534 14884.53400 2020-01-01 2020-01-02 2020-01-01 00:01:55 2020-01-02 03:30:16 2020-01-01 00:01:55.000 2020-01-02 03:30:16.000 115 99016 49565.5 4956550 115 99016 49565.5 4956550 -32454 32481 5001.02 500102 -124 127 3.9 390 +116 2 10106 99017 0.34834 297.34834 148.84834 14884.83483 0.34834 297.34836 148.84834 14884.83476 0.34834 297.34834 148.84834 14884.83400 2020-01-01 2020-01-02 2020-01-01 00:01:56 2020-01-02 03:30:17 2020-01-01 00:01:56.000 2020-01-02 03:30:17.000 116 99017 49566.5 4956650 116 99017 49566.5 4956650 -32453 32482 5002.02 500202 -128 127 2.34 234 +117 2 10107 99018 0.35135 297.35135 148.85135 14885.13513 0.35135 297.35135 148.85134 14885.13495 0.35135 297.35135 148.85135 14885.13500 2020-01-01 2020-01-02 2020-01-01 00:01:57 2020-01-02 03:30:18 2020-01-01 00:01:57.000 2020-01-02 03:30:18.000 117 99018 49567.5 4956750 117 99018 49567.5 4956750 -32452 32483 5003.02 500302 -128 123 0.78 78 +118 2 10108 99019 0.35435 297.35435 148.85435 14885.43543 0.35435 297.35434 148.85435 14885.43526 0.35435 297.35435 148.85434999999998 14885.43500 2020-01-01 2020-01-02 2020-01-01 00:01:58 2020-01-02 03:30:19 2020-01-01 00:01:58.000 2020-01-02 03:30:19.000 118 99019 49568.5 4956850 118 99019 49568.5 4956850 -32451 32484 5004.02 500402 -127 124 1.78 178 +119 2 10109 99020 0.35735 297.35735 148.85735 14885.73573 0.35735 297.35736 148.85736 14885.736 0.35735 297.35735 148.85735 14885.73500 2020-01-01 2020-01-02 2020-01-01 00:01:59 2020-01-02 03:30:20 2020-01-01 00:01:59.000 2020-01-02 03:30:20.000 119 99020 49569.5 4956950 119 99020 49569.5 4956950 -32450 32485 5005.02 500502 -126 125 2.78 278 +12 2 10002 99912 0.03603 300.03603 150.03603 15153.63963 0.03603 300.03604 150.03603 15153.6399 0.03603 300.03603 150.03603 15153.63903 2020-01-01 2020-01-02 2020-01-01 00:00:12 2020-01-02 03:45:12 2020-01-01 00:00:12.000 2020-01-02 03:45:12.000 12 99912 49962 5046162 12 99912 49962 5046162 -32557 32378 4541.009900990099 458642 -127 124 -1.0891089108910892 -110 +120 2 10110 99021 0.36036 297.36036 148.86036 14886.03603 0.36036 297.36035 148.86036 14886.03615 0.36036 297.36036 148.86036000000001 14886.03600 2020-01-01 2020-01-02 2020-01-01 00:02:00 2020-01-02 03:30:21 2020-01-01 00:02:00.000 2020-01-02 03:30:21.000 120 99021 49570.5 4957050 120 99021 49570.5 4957050 -32449 32486 5006.02 500602 -125 126 3.78 378 +121 2 10111 99022 0.36336 297.36336 148.86336 14886.33633 0.36336 297.36337 148.86336 14886.33627 0.36336 297.36336 148.86336 14886.33600 2020-01-01 2020-01-02 2020-01-01 00:02:01 2020-01-02 03:30:22 2020-01-01 00:02:01.000 2020-01-02 03:30:22.000 121 99022 49571.5 4957150 121 99022 49571.5 4957150 -32448 32487 5007.02 500702 -124 127 4.78 478 +122 2 10112 99023 0.36636 297.36636 148.86636 14886.63663 0.36636 297.36636 148.86636 14886.63642 0.36636 297.36636 148.86636000000001 14886.63600 2020-01-01 2020-01-02 2020-01-01 00:02:02 2020-01-02 03:30:23 2020-01-01 00:02:02.000 2020-01-02 03:30:23.000 122 99023 49572.5 4957250 122 99023 49572.5 4957250 -32447 32488 5008.02 500802 -128 127 3.22 322 +123 2 10113 99024 0.36936 297.36936 148.86936 14886.93693 0.36936 297.36935 148.86936 14886.93673 0.36936 297.36936 148.86936 14886.93600 2020-01-01 2020-01-02 2020-01-01 00:02:03 2020-01-02 03:30:24 2020-01-01 00:02:03.000 2020-01-02 03:30:24.000 123 99024 49573.5 4957350 123 99024 49573.5 4957350 -32446 32489 5009.02 500902 -128 127 1.66 166 +124 2 10114 99025 0.37237 297.37237 148.87237 14887.23723 0.37237 297.37238 148.87237 14887.23746 0.37237 297.37237 148.87237 14887.23700 2020-01-01 2020-01-02 2020-01-01 00:02:04 2020-01-02 03:30:25 2020-01-01 00:02:04.000 2020-01-02 03:30:25.000 124 99025 49574.5 4957450 124 99025 49574.5 4957450 -32445 32490 5010.02 501002 -128 124 0.1 10 +125 2 10115 99026 0.37537 297.37537 148.87537 14887.53753 0.37537 297.37537 148.87537 14887.53762 0.37537 297.37537 148.87537 14887.53700 2020-01-01 2020-01-02 2020-01-01 00:02:05 2020-01-02 03:30:26 2020-01-01 00:02:05.000 2020-01-02 03:30:26.000 125 99026 49575.5 4957550 125 99026 49575.5 4957550 -32444 32491 5011.02 501102 -127 125 1.1 110 +126 2 10116 99027 0.37837 297.37837 148.87837 14887.83783 0.37837 297.3784 148.87837 14887.83774 0.37837 297.37837 148.87837 14887.83700 2020-01-01 2020-01-02 2020-01-01 00:02:06 2020-01-02 03:30:27 2020-01-01 00:02:06.000 2020-01-02 03:30:27.000 126 99027 49576.5 4957650 126 99027 49576.5 4957650 -32443 32492 5012.02 501202 -126 126 2.1 210 +127 2 10117 99028 0.38138 297.38138 148.88138 14888.13813 0.38138 297.38138 148.88137 14888.13789 0.38138 297.38138 148.88138 14888.13800 2020-01-01 2020-01-02 2020-01-01 00:02:07 2020-01-02 03:30:28 2020-01-01 00:02:07.000 2020-01-02 03:30:28.000 127 99028 49577.5 4957750 127 99028 49577.5 4957750 -32442 32493 5013.02 501302 -125 127 3.1 310 128 2 10118 99029 0.38438 297.38438 148.88438 14888.43843 0.38438 297.3844 148.88438 14888.43862 0.38438 297.38438 148.88438 14888.43800 2020-01-01 2020-01-02 2020-01-01 00:02:08 2020-01-02 03:30:29 2020-01-01 00:02:08.000 2020-01-02 03:30:29.000 128 99029 49578.5 4957850 128 99029 49578.5 4957850 -32441 32494 5014.02 501402 -128 127 1.54 154 -129 2 10119 99030 0.38738 297.38738 148.88738 14888.73873 0.38738 297.3874 148.88738 14888.73894 0.38738 297.38738 148.8873800000001 14888.73800 2020-01-01 2020-01-02 2020-01-01 00:02:09 2020-01-02 03:30:30 2020-01-01 00:02:09.000 2020-01-02 03:30:30.000 129 99030 49579.5 4957950 129 99030 49579.5 4957950 -32440 32495 5015.02 501502 -128 127 -0.02 -2 -13 2 10003 99913 0.03903 300.03903 150.03903 15153.94294 0.03903 300.03903 150.03903 15153.94255 0.03903 300.03903 150.03902999999994 15153.94203 2020-01-01 2020-01-02 2020-01-01 00:00:13 2020-01-02 03:45:13 2020-01-01 00:00:13.000 2020-01-02 03:45:13.000 13 99913 49963 5046263 13 99913 49963 5046263 -32556 32379 4542.009900990099 458743 -126 125 -0.0891089108910891 -9 -130 2 10120 99031 0.39039 297.39039 148.89039 14889.03903 0.39039 297.39038 148.89039 14889.03909 0.39039 297.39039 148.89038999999994 14889.03900 2020-01-01 2020-01-02 2020-01-01 00:02:10 2020-01-02 03:30:31 2020-01-01 00:02:10.000 2020-01-02 03:30:31.000 130 99031 49580.5 4958050 130 99031 49580.5 4958050 -32439 32496 5016.02 501602 -128 123 -1.58 -158 -131 2 10121 99032 0.39339 297.39339 148.89339 14889.33933 0.39339 297.3934 148.89339 14889.33921 0.39339 297.39339 148.89338999999995 14889.33900 2020-01-01 2020-01-02 2020-01-01 00:02:11 2020-01-02 03:30:32 2020-01-01 00:02:11.000 2020-01-02 03:30:32.000 131 99032 49581.5 4958150 131 99032 49581.5 4958150 -32438 32497 5017.02 501702 -127 124 -0.58 -58 -132 2 10122 99033 0.39639 297.39639 148.89639 14889.63963 0.39639 297.3964 148.89639 14889.63936 0.39639 297.39639 148.8963899999999 14889.63900 2020-01-01 2020-01-02 2020-01-01 00:02:12 2020-01-02 03:30:33 2020-01-01 00:02:12.000 2020-01-02 03:30:33.000 132 99033 49582.5 4958250 132 99033 49582.5 4958250 -32437 32498 5018.02 501802 -126 125 0.42 42 -133 2 10123 99034 0.39939 297.39939 148.89939 14889.93993 0.39939 297.3994 148.8994 14889.94009 0.39939 297.39939 148.89938999999998 14889.93900 2020-01-01 2020-01-02 2020-01-01 00:02:13 2020-01-02 03:30:34 2020-01-01 00:02:13.000 2020-01-02 03:30:34.000 133 99034 49583.5 4958350 133 99034 49583.5 4958350 -32436 32499 5019.02 501902 -125 126 1.42 142 -134 2 10124 99035 0.4024 297.4024 148.9024 14890.24024 0.4024 297.4024 148.9024 14890.24041 0.40240 297.40240 148.90240000000017 14890.24000 2020-01-01 2020-01-02 2020-01-01 00:02:14 2020-01-02 03:30:35 2020-01-01 00:02:14.000 2020-01-02 03:30:35.000 134 99035 49584.5 4958450 134 99035 49584.5 4958450 -32435 32500 5020.02 502002 -124 127 2.42 242 -135 2 10125 99036 0.4054 297.4054 148.9054 14890.54054 0.4054 297.4054 148.9054 14890.54059 0.40540 297.40540 148.90539999999984 14890.54000 2020-01-01 2020-01-02 2020-01-01 00:02:15 2020-01-02 03:30:36 2020-01-01 00:02:15.000 2020-01-02 03:30:36.000 135 99036 49585.5 4958550 135 99036 49585.5 4958550 -32434 32501 5021.02 502102 -128 127 0.86 86 -136 2 10126 99037 0.4084 297.4084 148.9084 14890.84084 0.4084 297.40842 148.9084 14890.84068 0.40840 297.40840 148.9084000000001 14890.84000 2020-01-01 2020-01-02 2020-01-01 00:02:16 2020-01-02 03:30:37 2020-01-01 00:02:16.000 2020-01-02 03:30:37.000 136 99037 49586.5 4958650 136 99037 49586.5 4958650 -32433 32502 5022.02 502202 -128 123 -0.7 -70 -137 2 10127 99038 0.41141 297.41141 148.91141 14891.14114 0.41141 297.4114 148.9114 14891.14099 0.41141 297.41141 148.91141000000007 14891.14100 2020-01-01 2020-01-02 2020-01-01 00:02:17 2020-01-02 03:30:38 2020-01-01 00:02:17.000 2020-01-02 03:30:38.000 137 99038 49587.5 4958750 137 99038 49587.5 4958750 -32432 32503 5023.02 502302 -127 124 0.3 30 -138 2 10128 99039 0.41441 297.41441 148.91441 14891.44144 0.41441 297.41443 148.91441 14891.44157 0.41441 297.41441 148.91440999999995 14891.44100 2020-01-01 2020-01-02 2020-01-01 00:02:18 2020-01-02 03:30:39 2020-01-01 00:02:18.000 2020-01-02 03:30:39.000 138 99039 49588.5 4958850 138 99039 49588.5 4958850 -32431 32504 5024.02 502402 -126 125 1.3 130 +129 2 10119 99030 0.38738 297.38738 148.88738 14888.73873 0.38738 297.3874 148.88738 14888.73894 0.38738 297.38738 148.88738 14888.73800 2020-01-01 2020-01-02 2020-01-01 00:02:09 2020-01-02 03:30:30 2020-01-01 00:02:09.000 2020-01-02 03:30:30.000 129 99030 49579.5 4957950 129 99030 49579.5 4957950 -32440 32495 5015.02 501502 -128 127 -0.02 -2 +13 2 10003 99913 0.03903 300.03903 150.03903 15153.94294 0.03903 300.03903 150.03903 15153.94255 0.03903 300.03903 150.03903 15153.94203 2020-01-01 2020-01-02 2020-01-01 00:00:13 2020-01-02 03:45:13 2020-01-01 00:00:13.000 2020-01-02 03:45:13.000 13 99913 49963 5046263 13 99913 49963 5046263 -32556 32379 4542.009900990099 458743 -126 125 -0.0891089108910891 -9 +130 2 10120 99031 0.39039 297.39039 148.89039 14889.03903 0.39039 297.39038 148.89039 14889.03909 0.39039 297.39039 148.89039 14889.03900 2020-01-01 2020-01-02 2020-01-01 00:02:10 2020-01-02 03:30:31 2020-01-01 00:02:10.000 2020-01-02 03:30:31.000 130 99031 49580.5 4958050 130 99031 49580.5 4958050 -32439 32496 5016.02 501602 -128 123 -1.58 -158 +131 2 10121 99032 0.39339 297.39339 148.89339 14889.33933 0.39339 297.3934 148.89339 14889.33921 0.39339 297.39339 148.89339 14889.33900 2020-01-01 2020-01-02 2020-01-01 00:02:11 2020-01-02 03:30:32 2020-01-01 00:02:11.000 2020-01-02 03:30:32.000 131 99032 49581.5 4958150 131 99032 49581.5 4958150 -32438 32497 5017.02 501702 -127 124 -0.58 -58 +132 2 10122 99033 0.39639 297.39639 148.89639 14889.63963 0.39639 297.3964 148.89639 14889.63936 0.39639 297.39639 148.89639 14889.63900 2020-01-01 2020-01-02 2020-01-01 00:02:12 2020-01-02 03:30:33 2020-01-01 00:02:12.000 2020-01-02 03:30:33.000 132 99033 49582.5 4958250 132 99033 49582.5 4958250 -32437 32498 5018.02 501802 -126 125 0.42 42 +133 2 10123 99034 0.39939 297.39939 148.89939 14889.93993 0.39939 297.3994 148.8994 14889.94009 0.39939 297.39939 148.89939 14889.93900 2020-01-01 2020-01-02 2020-01-01 00:02:13 2020-01-02 03:30:34 2020-01-01 00:02:13.000 2020-01-02 03:30:34.000 133 99034 49583.5 4958350 133 99034 49583.5 4958350 -32436 32499 5019.02 501902 -125 126 1.42 142 +134 2 10124 99035 0.4024 297.4024 148.9024 14890.24024 0.4024 297.4024 148.9024 14890.24041 0.40240 297.40240 148.9024 14890.24000 2020-01-01 2020-01-02 2020-01-01 00:02:14 2020-01-02 03:30:35 2020-01-01 00:02:14.000 2020-01-02 03:30:35.000 134 99035 49584.5 4958450 134 99035 49584.5 4958450 -32435 32500 5020.02 502002 -124 127 2.42 242 +135 2 10125 99036 0.4054 297.4054 148.9054 14890.54054 0.4054 297.4054 148.9054 14890.54059 0.40540 297.40540 148.90540000000001 14890.54000 2020-01-01 2020-01-02 2020-01-01 00:02:15 2020-01-02 03:30:36 2020-01-01 00:02:15.000 2020-01-02 03:30:36.000 135 99036 49585.5 4958550 135 99036 49585.5 4958550 -32434 32501 5021.02 502102 -128 127 0.86 86 +136 2 10126 99037 0.4084 297.4084 148.9084 14890.84084 0.4084 297.40842 148.9084 14890.84068 0.40840 297.40840 148.9084 14890.84000 2020-01-01 2020-01-02 2020-01-01 00:02:16 2020-01-02 03:30:37 2020-01-01 00:02:16.000 2020-01-02 03:30:37.000 136 99037 49586.5 4958650 136 99037 49586.5 4958650 -32433 32502 5022.02 502202 -128 123 -0.7 -70 +137 2 10127 99038 0.41141 297.41141 148.91141 14891.14114 0.41141 297.4114 148.9114 14891.14099 0.41141 297.41141 148.91141 14891.14100 2020-01-01 2020-01-02 2020-01-01 00:02:17 2020-01-02 03:30:38 2020-01-01 00:02:17.000 2020-01-02 03:30:38.000 137 99038 49587.5 4958750 137 99038 49587.5 4958750 -32432 32503 5023.02 502302 -127 124 0.3 30 +138 2 10128 99039 0.41441 297.41441 148.91441 14891.44144 0.41441 297.41443 148.91441 14891.44157 0.41441 297.41441 148.91441 14891.44100 2020-01-01 2020-01-02 2020-01-01 00:02:18 2020-01-02 03:30:39 2020-01-01 00:02:18.000 2020-01-02 03:30:39.000 138 99039 49588.5 4958850 138 99039 49588.5 4958850 -32431 32504 5024.02 502402 -126 125 1.3 130 139 2 10129 99040 0.41741 297.41741 148.91741 14891.74174 0.41741 297.41742 148.91741 14891.74188 0.41741 297.41741 148.91741 14891.74100 2020-01-01 2020-01-02 2020-01-01 00:02:19 2020-01-02 03:30:40 2020-01-01 00:02:19.000 2020-01-02 03:30:40.000 139 99040 49589.5 4958950 139 99040 49589.5 4958950 -32430 32505 5025.02 502502 -125 126 2.3 230 -14 2 10004 99914 0.04204 300.04204 150.04204 15154.24624 0.04204 300.04205 150.04204 15154.2463 0.04204 300.04204 150.0420400000001 15154.24604 2020-01-01 2020-01-02 2020-01-01 00:00:14 2020-01-02 03:45:14 2020-01-01 00:00:14.000 2020-01-02 03:45:14.000 14 99914 49964 5046364 14 99914 49964 5046364 -32555 32380 4543.009900990099 458844 -125 126 0.9108910891089109 92 -140 2 10130 99041 0.42042 297.42042 148.92042 14892.04204 0.42042 297.4204 148.92042 14892.04206 0.42042 297.42042 148.9204200000002 14892.04200 2020-01-01 2020-01-02 2020-01-01 00:02:20 2020-01-02 03:30:41 2020-01-01 00:02:20.000 2020-01-02 03:30:41.000 140 99041 49590.5 4959050 140 99041 49590.5 4959050 -32429 32506 5026.02 502602 -124 127 3.3 330 -141 2 10131 99042 0.42342 297.42342 148.92342 14892.34234 0.42342 297.42343 148.92342 14892.34215 0.42342 297.42342 148.92341999999988 14892.34200 2020-01-01 2020-01-02 2020-01-01 00:02:21 2020-01-02 03:30:42 2020-01-01 00:02:21.000 2020-01-02 03:30:42.000 141 99042 49591.5 4959150 141 99042 49591.5 4959150 -32428 32507 5027.02 502702 -128 127 1.74 174 -142 2 10132 99043 0.42642 297.42642 148.92642 14892.64264 0.42642 297.42642 148.92642 14892.64246 0.42642 297.42642 148.92641999999984 14892.64200 2020-01-01 2020-01-02 2020-01-01 00:02:22 2020-01-02 03:30:43 2020-01-01 00:02:22.000 2020-01-02 03:30:43.000 142 99043 49592.5 4959250 142 99043 49592.5 4959250 -32427 32508 5028.02 502802 -128 123 0.18 18 -143 2 10133 99044 0.42942 297.42942 148.92942 14892.94294 0.42942 297.42944 148.92943 14892.94304 0.42942 297.42942 148.92942000000016 14892.94200 2020-01-01 2020-01-02 2020-01-01 00:02:23 2020-01-02 03:30:44 2020-01-01 00:02:23.000 2020-01-02 03:30:44.000 143 99044 49593.5 4959350 143 99044 49593.5 4959350 -32426 32509 5029.02 502902 -127 124 1.18 118 -144 2 10134 99045 0.43243 297.43243 148.93243 14893.24324 0.43243 297.43243 148.93243 14893.24338 0.43243 297.43243 148.93243000000012 14893.24300 2020-01-01 2020-01-02 2020-01-01 00:02:24 2020-01-02 03:30:45 2020-01-01 00:02:24.000 2020-01-02 03:30:45.000 144 99045 49594.5 4959450 144 99045 49594.5 4959450 -32425 32510 5030.02 503002 -126 125 2.18 218 -145 2 10135 99046 0.43543 297.43543 148.93543 14893.54354 0.43543 297.43542 148.93543 14893.54354 0.43543 297.43543 148.93542999999983 14893.54300 2020-01-01 2020-01-02 2020-01-01 00:02:25 2020-01-02 03:30:46 2020-01-01 00:02:25.000 2020-01-02 03:30:46.000 145 99046 49595.5 4959550 145 99046 49595.5 4959550 -32424 32511 5031.02 503102 -125 126 3.18 318 -146 2 10136 99047 0.43843 297.43843 148.93843 14893.84384 0.43843 297.43845 148.93844 14893.84427 0.43843 297.43843 148.9384300000001 14893.84300 2020-01-01 2020-01-02 2020-01-01 00:02:26 2020-01-02 03:30:47 2020-01-01 00:02:26.000 2020-01-02 03:30:47.000 146 99047 49596.5 4959650 146 99047 49596.5 4959650 -32423 32512 5032.02 503202 -124 127 4.18 418 +14 2 10004 99914 0.04204 300.04204 150.04204 15154.24624 0.04204 300.04205 150.04204 15154.2463 0.04204 300.04204 150.04204 15154.24604 2020-01-01 2020-01-02 2020-01-01 00:00:14 2020-01-02 03:45:14 2020-01-01 00:00:14.000 2020-01-02 03:45:14.000 14 99914 49964 5046364 14 99914 49964 5046364 -32555 32380 4543.009900990099 458844 -125 126 0.9108910891089109 92 +140 2 10130 99041 0.42042 297.42042 148.92042 14892.04204 0.42042 297.4204 148.92042 14892.04206 0.42042 297.42042 148.92042 14892.04200 2020-01-01 2020-01-02 2020-01-01 00:02:20 2020-01-02 03:30:41 2020-01-01 00:02:20.000 2020-01-02 03:30:41.000 140 99041 49590.5 4959050 140 99041 49590.5 4959050 -32429 32506 5026.02 502602 -124 127 3.3 330 +141 2 10131 99042 0.42342 297.42342 148.92342 14892.34234 0.42342 297.42343 148.92342 14892.34215 0.42342 297.42342 148.92342 14892.34200 2020-01-01 2020-01-02 2020-01-01 00:02:21 2020-01-02 03:30:42 2020-01-01 00:02:21.000 2020-01-02 03:30:42.000 141 99042 49591.5 4959150 141 99042 49591.5 4959150 -32428 32507 5027.02 502702 -128 127 1.74 174 +142 2 10132 99043 0.42642 297.42642 148.92642 14892.64264 0.42642 297.42642 148.92642 14892.64246 0.42642 297.42642 148.92642 14892.64200 2020-01-01 2020-01-02 2020-01-01 00:02:22 2020-01-02 03:30:43 2020-01-01 00:02:22.000 2020-01-02 03:30:43.000 142 99043 49592.5 4959250 142 99043 49592.5 4959250 -32427 32508 5028.02 502802 -128 123 0.18 18 +143 2 10133 99044 0.42942 297.42942 148.92942 14892.94294 0.42942 297.42944 148.92943 14892.94304 0.42942 297.42942 148.92942 14892.94200 2020-01-01 2020-01-02 2020-01-01 00:02:23 2020-01-02 03:30:44 2020-01-01 00:02:23.000 2020-01-02 03:30:44.000 143 99044 49593.5 4959350 143 99044 49593.5 4959350 -32426 32509 5029.02 502902 -127 124 1.18 118 +144 2 10134 99045 0.43243 297.43243 148.93243 14893.24324 0.43243 297.43243 148.93243 14893.24338 0.43243 297.43243 148.93243 14893.24300 2020-01-01 2020-01-02 2020-01-01 00:02:24 2020-01-02 03:30:45 2020-01-01 00:02:24.000 2020-01-02 03:30:45.000 144 99045 49594.5 4959450 144 99045 49594.5 4959450 -32425 32510 5030.02 503002 -126 125 2.18 218 +145 2 10135 99046 0.43543 297.43543 148.93543 14893.54354 0.43543 297.43542 148.93543 14893.54354 0.43543 297.43543 148.93543 14893.54300 2020-01-01 2020-01-02 2020-01-01 00:02:25 2020-01-02 03:30:46 2020-01-01 00:02:25.000 2020-01-02 03:30:46.000 145 99046 49595.5 4959550 145 99046 49595.5 4959550 -32424 32511 5031.02 503102 -125 126 3.18 318 +146 2 10136 99047 0.43843 297.43843 148.93843 14893.84384 0.43843 297.43845 148.93844 14893.84427 0.43843 297.43843 148.93843 14893.84300 2020-01-01 2020-01-02 2020-01-01 00:02:26 2020-01-02 03:30:47 2020-01-01 00:02:26.000 2020-01-02 03:30:47.000 146 99047 49596.5 4959650 146 99047 49596.5 4959650 -32423 32512 5032.02 503202 -124 127 4.18 418 147 2 10137 99048 0.44144 297.44144 148.94144 14894.14414 0.44144 297.44144 148.94143 14894.14392 0.44144 297.44144 148.94144 14894.14400 2020-01-01 2020-01-02 2020-01-01 00:02:27 2020-01-02 03:30:48 2020-01-01 00:02:27.000 2020-01-02 03:30:48.000 147 99048 49597.5 4959750 147 99048 49597.5 4959750 -32422 32513 5033.02 503302 -128 127 2.62 262 -148 2 10138 99049 0.44444 297.44444 148.94444 14894.44444 0.44444 297.44446 148.94444 14894.4445 0.44444 297.44444 148.94443999999996 14894.44400 2020-01-01 2020-01-02 2020-01-01 00:02:28 2020-01-02 03:30:49 2020-01-01 00:02:28.000 2020-01-02 03:30:49.000 148 99049 49598.5 4959850 148 99049 49598.5 4959850 -32421 32514 5034.02 503402 -128 127 1.06 106 -149 2 10139 99050 0.44744 297.44744 148.94744 14894.74474 0.44744 297.44745 148.94744 14894.74485 0.44744 297.44744 148.94743999999994 14894.74400 2020-01-01 2020-01-02 2020-01-01 00:02:29 2020-01-02 03:30:50 2020-01-01 00:02:29.000 2020-01-02 03:30:50.000 149 99050 49599.5 4959950 149 99050 49599.5 4959950 -32420 32515 5035.02 503502 -128 124 -0.5 -50 -15 2 10005 99915 0.04504 300.04504 150.04504 15154.54954 0.04504 300.04504 150.04504 15154.54945 0.04504 300.04504 150.04504000000017 15154.54904 2020-01-01 2020-01-02 2020-01-01 00:00:15 2020-01-02 03:45:15 2020-01-01 00:00:15.000 2020-01-02 03:45:15.000 15 99915 49965 5046465 15 99915 49965 5046465 -32554 32381 4544.009900990099 458945 -124 127 1.9108910891089108 193 -150 2 10140 99051 0.45045 297.45045 148.95045 14895.04504 0.45045 297.45044 148.95045 14895.04501 0.45045 297.45045 148.95045000000013 14895.04500 2020-01-01 2020-01-02 2020-01-01 00:02:30 2020-01-02 03:30:51 2020-01-01 00:02:30.000 2020-01-02 03:30:51.000 150 99051 49600.5 4960050 150 99051 49600.5 4960050 -32419 32516 5036.02 503602 -127 125 0.5 50 -151 2 10141 99052 0.45345 297.45345 148.95345 14895.34534 0.45345 297.45346 148.95345 14895.34574 0.45345 297.45345 148.9534500000002 14895.34500 2020-01-01 2020-01-02 2020-01-01 00:02:31 2020-01-02 03:30:52 2020-01-01 00:02:31.000 2020-01-02 03:30:52.000 151 99052 49601.5 4960150 151 99052 49601.5 4960150 -32418 32517 5037.02 503702 -126 126 1.5 150 -152 2 10142 99053 0.45645 297.45645 148.95645 14895.64564 0.45645 297.45645 148.95645 14895.6454 0.45645 297.45645 148.95644999999985 14895.64500 2020-01-01 2020-01-02 2020-01-01 00:02:32 2020-01-02 03:30:53 2020-01-01 00:02:32.000 2020-01-02 03:30:53.000 152 99053 49602.5 4960250 152 99053 49602.5 4960250 -32417 32518 5038.02 503802 -125 127 2.5 250 -153 2 10143 99054 0.45945 297.45945 148.95945 14895.94594 0.45945 297.45947 148.95946 14895.94601 0.45945 297.45945 148.95945000000015 14895.94500 2020-01-01 2020-01-02 2020-01-01 00:02:33 2020-01-02 03:30:54 2020-01-01 00:02:33.000 2020-01-02 03:30:54.000 153 99054 49603.5 4960350 153 99054 49603.5 4960350 -32416 32519 5039.02 503902 -128 127 0.94 94 -154 2 10144 99055 0.46246 297.46246 148.96246 14896.24624 0.46246 297.46246 148.96246 14896.24633 0.46246 297.46246 148.9624600000001 14896.24600 2020-01-01 2020-01-02 2020-01-01 00:02:34 2020-01-02 03:30:55 2020-01-01 00:02:34.000 2020-01-02 03:30:55.000 154 99055 49604.5 4960450 154 99055 49604.5 4960450 -32415 32520 5040.02 504002 -128 127 -0.62 -62 -155 2 10145 99056 0.46546 297.46546 148.96546 14896.54654 0.46546 297.46545 148.96546 14896.54647 0.46546 297.46546 148.96545999999995 14896.54600 2020-01-01 2020-01-02 2020-01-01 00:02:35 2020-01-02 03:30:56 2020-01-01 00:02:35.000 2020-01-02 03:30:56.000 155 99056 49605.5 4960550 155 99056 49605.5 4960550 -32414 32521 5041.02 504102 -128 123 -2.18 -218 -156 2 10146 99057 0.46846 297.46846 148.96846 14896.84684 0.46846 297.46848 148.96847 14896.84721 0.46846 297.46846 148.96846000000002 14896.84600 2020-01-01 2020-01-02 2020-01-01 00:02:36 2020-01-02 03:30:57 2020-01-01 00:02:36.000 2020-01-02 03:30:57.000 156 99057 49606.5 4960650 156 99057 49606.5 4960650 -32413 32522 5042.02 504202 -127 124 -1.18 -118 -157 2 10147 99058 0.47147 297.47147 148.97147 14897.14714 0.47147 297.47147 148.97146 14897.14687 0.47147 297.47147 148.97147000000024 14897.14700 2020-01-01 2020-01-02 2020-01-01 00:02:37 2020-01-02 03:30:58 2020-01-01 00:02:37.000 2020-01-02 03:30:58.000 157 99058 49607.5 4960750 157 99058 49607.5 4960750 -32412 32523 5043.02 504302 -126 125 -0.18 -18 -158 2 10148 99059 0.47447 297.47447 148.97447 14897.44744 0.47447 297.4745 148.97447 14897.44748 0.47447 297.47447 148.97446999999985 14897.44700 2020-01-01 2020-01-02 2020-01-01 00:02:38 2020-01-02 03:30:59 2020-01-01 00:02:38.000 2020-01-02 03:30:59.000 158 99059 49608.5 4960850 158 99059 49608.5 4960850 -32411 32524 5044.02 504402 -125 126 0.82 82 -159 2 10149 99060 0.47747 297.47747 148.97747 14897.74774 0.47747 297.47748 148.97747 14897.74779 0.47747 297.47747 148.97746999999987 14897.74700 2020-01-01 2020-01-02 2020-01-01 00:02:39 2020-01-02 03:31:00 2020-01-01 00:02:39.000 2020-01-02 03:31:00.000 159 99060 49609.5 4960950 159 99060 49609.5 4960950 -32410 32525 5045.02 504502 -124 127 1.82 182 -16 2 10006 99916 0.04804 300.04804 150.04804 15154.85285 0.04804 300.04803 150.04804 15154.85279 0.04804 300.04804 150.04803999999982 15154.85204 2020-01-01 2020-01-02 2020-01-01 00:00:16 2020-01-02 03:45:16 2020-01-01 00:00:16.000 2020-01-02 03:45:16.000 16 99916 49966 5046566 16 99916 49966 5046566 -32553 32382 4545.009900990099 459046 -128 127 0.37623762376237624 38 -160 2 10150 99061 0.48048 297.48048 148.98048 14898.04804 0.48048 297.48047 148.98048 14898.0481 0.48048 297.48048 148.9804800000001 14898.04800 2020-01-01 2020-01-02 2020-01-01 00:02:40 2020-01-02 03:31:01 2020-01-01 00:02:40.000 2020-01-02 03:31:01.000 160 99061 49610.5 4961050 160 99061 49610.5 4961050 -32409 32526 5046.02 504602 -128 127 0.26 26 -161 2 10151 99062 0.48348 297.48348 148.98348 14898.34834 0.48348 297.4835 148.98348 14898.34868 0.48348 297.48348 148.98348000000016 14898.34800 2020-01-01 2020-01-02 2020-01-01 00:02:41 2020-01-02 03:31:02 2020-01-01 00:02:41.000 2020-01-02 03:31:02.000 161 99062 49611.5 4961150 161 99062 49611.5 4961150 -32408 32527 5047.02 504702 -128 123 -1.3 -130 -162 2 10152 99063 0.48648 297.48648 148.98648 14898.64864 0.48648 297.48648 148.98648 14898.64837 0.48648 297.48648 148.98647999999974 14898.64800 2020-01-01 2020-01-02 2020-01-01 00:02:42 2020-01-02 03:31:03 2020-01-01 00:02:42.000 2020-01-02 03:31:03.000 162 99063 49612.5 4961250 162 99063 49612.5 4961250 -32407 32528 5048.02 504802 -127 124 -0.3 -30 -163 2 10153 99064 0.48948 297.48948 148.98948 14898.94894 0.48948 297.4895 148.98948 14898.94895 0.48948 297.48948 148.98948000000013 14898.94800 2020-01-01 2020-01-02 2020-01-01 00:02:43 2020-01-02 03:31:04 2020-01-01 00:02:43.000 2020-01-02 03:31:04.000 163 99064 49613.5 4961350 163 99064 49613.5 4961350 -32406 32529 5049.02 504902 -126 125 0.7 70 -164 2 10154 99065 0.49249 297.49249 148.99249 14899.24924 0.49249 297.4925 148.99249 14899.24926 0.49249 297.49249 148.99249000000006 14899.24900 2020-01-01 2020-01-02 2020-01-01 00:02:44 2020-01-02 03:31:05 2020-01-01 00:02:44.000 2020-01-02 03:31:05.000 164 99065 49614.5 4961450 164 99065 49614.5 4961450 -32405 32530 5050.02 505002 -125 126 1.7 170 -165 2 10155 99066 0.49549 297.49549 148.99549 14899.54954 0.49549 297.49548 148.99549 14899.54957 0.49549 297.49549 148.99548999999988 14899.54900 2020-01-01 2020-01-02 2020-01-01 00:02:45 2020-01-02 03:31:06 2020-01-01 00:02:45.000 2020-01-02 03:31:06.000 165 99066 49615.5 4961550 165 99066 49615.5 4961550 -32404 32531 5051.02 505102 -124 127 2.7 270 -166 2 10156 99067 0.49849 297.49849 148.99849 14899.84984 0.49849 297.4985 148.9985 14899.85015 0.49849 297.49849 148.99848999999998 14899.84900 2020-01-01 2020-01-02 2020-01-01 00:02:46 2020-01-02 03:31:07 2020-01-01 00:02:46.000 2020-01-02 03:31:07.000 166 99067 49616.5 4961650 166 99067 49616.5 4961650 -32403 32532 5052.02 505202 -128 127 1.14 114 -167 2 10157 99068 0.5015 297.5015 149.0015 14900.15015 0.5015 297.5015 149.00149 14900.14984 0.50150 297.50150 149.00150000000016 14900.15000 2020-01-01 2020-01-02 2020-01-01 00:02:47 2020-01-02 03:31:08 2020-01-01 00:02:47.000 2020-01-02 03:31:08.000 167 99068 49617.5 4961750 167 99068 49617.5 4961750 -32402 32533 5053.02 505302 -128 123 -0.42 -42 -168 2 10158 99069 0.5045 297.5045 149.0045 14900.45045 0.5045 297.50452 149.0045 14900.45042 0.50450 297.50450 149.00449999999978 14900.45000 2020-01-01 2020-01-02 2020-01-01 00:02:48 2020-01-02 03:31:09 2020-01-01 00:02:48.000 2020-01-02 03:31:09.000 168 99069 49618.5 4961850 168 99069 49618.5 4961850 -32401 32534 5054.02 505402 -127 124 0.58 58 -169 2 10159 99070 0.5075 297.5075 149.0075 14900.75075 0.5075 297.5075 149.0075 14900.75073 0.50750 297.50750 149.00749999999985 14900.75000 2020-01-01 2020-01-02 2020-01-01 00:02:49 2020-01-02 03:31:10 2020-01-01 00:02:49.000 2020-01-02 03:31:10.000 169 99070 49619.5 4961950 169 99070 49619.5 4961950 -32400 32535 5055.02 505502 -126 125 1.58 158 +148 2 10138 99049 0.44444 297.44444 148.94444 14894.44444 0.44444 297.44446 148.94444 14894.4445 0.44444 297.44444 148.94444 14894.44400 2020-01-01 2020-01-02 2020-01-01 00:02:28 2020-01-02 03:30:49 2020-01-01 00:02:28.000 2020-01-02 03:30:49.000 148 99049 49598.5 4959850 148 99049 49598.5 4959850 -32421 32514 5034.02 503402 -128 127 1.06 106 +149 2 10139 99050 0.44744 297.44744 148.94744 14894.74474 0.44744 297.44745 148.94744 14894.74485 0.44744 297.44744 148.94744 14894.74400 2020-01-01 2020-01-02 2020-01-01 00:02:29 2020-01-02 03:30:50 2020-01-01 00:02:29.000 2020-01-02 03:30:50.000 149 99050 49599.5 4959950 149 99050 49599.5 4959950 -32420 32515 5035.02 503502 -128 124 -0.5 -50 +15 2 10005 99915 0.04504 300.04504 150.04504 15154.54954 0.04504 300.04504 150.04504 15154.54945 0.04504 300.04504 150.04504 15154.54904 2020-01-01 2020-01-02 2020-01-01 00:00:15 2020-01-02 03:45:15 2020-01-01 00:00:15.000 2020-01-02 03:45:15.000 15 99915 49965 5046465 15 99915 49965 5046465 -32554 32381 4544.009900990099 458945 -124 127 1.9108910891089108 193 +150 2 10140 99051 0.45045 297.45045 148.95045 14895.04504 0.45045 297.45044 148.95045 14895.04501 0.45045 297.45045 148.95045 14895.04500 2020-01-01 2020-01-02 2020-01-01 00:02:30 2020-01-02 03:30:51 2020-01-01 00:02:30.000 2020-01-02 03:30:51.000 150 99051 49600.5 4960050 150 99051 49600.5 4960050 -32419 32516 5036.02 503602 -127 125 0.5 50 +151 2 10141 99052 0.45345 297.45345 148.95345 14895.34534 0.45345 297.45346 148.95345 14895.34574 0.45345 297.45345 148.95345 14895.34500 2020-01-01 2020-01-02 2020-01-01 00:02:31 2020-01-02 03:30:52 2020-01-01 00:02:31.000 2020-01-02 03:30:52.000 151 99052 49601.5 4960150 151 99052 49601.5 4960150 -32418 32517 5037.02 503702 -126 126 1.5 150 +152 2 10142 99053 0.45645 297.45645 148.95645 14895.64564 0.45645 297.45645 148.95645 14895.6454 0.45645 297.45645 148.95645000000002 14895.64500 2020-01-01 2020-01-02 2020-01-01 00:02:32 2020-01-02 03:30:53 2020-01-01 00:02:32.000 2020-01-02 03:30:53.000 152 99053 49602.5 4960250 152 99053 49602.5 4960250 -32417 32518 5038.02 503802 -125 127 2.5 250 +153 2 10143 99054 0.45945 297.45945 148.95945 14895.94594 0.45945 297.45947 148.95946 14895.94601 0.45945 297.45945 148.95945 14895.94500 2020-01-01 2020-01-02 2020-01-01 00:02:33 2020-01-02 03:30:54 2020-01-01 00:02:33.000 2020-01-02 03:30:54.000 153 99054 49603.5 4960350 153 99054 49603.5 4960350 -32416 32519 5039.02 503902 -128 127 0.94 94 +154 2 10144 99055 0.46246 297.46246 148.96246 14896.24624 0.46246 297.46246 148.96246 14896.24633 0.46246 297.46246 148.96246 14896.24600 2020-01-01 2020-01-02 2020-01-01 00:02:34 2020-01-02 03:30:55 2020-01-01 00:02:34.000 2020-01-02 03:30:55.000 154 99055 49604.5 4960450 154 99055 49604.5 4960450 -32415 32520 5040.02 504002 -128 127 -0.62 -62 +155 2 10145 99056 0.46546 297.46546 148.96546 14896.54654 0.46546 297.46545 148.96546 14896.54647 0.46546 297.46546 148.96546 14896.54600 2020-01-01 2020-01-02 2020-01-01 00:02:35 2020-01-02 03:30:56 2020-01-01 00:02:35.000 2020-01-02 03:30:56.000 155 99056 49605.5 4960550 155 99056 49605.5 4960550 -32414 32521 5041.02 504102 -128 123 -2.18 -218 +156 2 10146 99057 0.46846 297.46846 148.96846 14896.84684 0.46846 297.46848 148.96847 14896.84721 0.46846 297.46846 148.96846 14896.84600 2020-01-01 2020-01-02 2020-01-01 00:02:36 2020-01-02 03:30:57 2020-01-01 00:02:36.000 2020-01-02 03:30:57.000 156 99057 49606.5 4960650 156 99057 49606.5 4960650 -32413 32522 5042.02 504202 -127 124 -1.18 -118 +157 2 10147 99058 0.47147 297.47147 148.97147 14897.14714 0.47147 297.47147 148.97146 14897.14687 0.47147 297.47147 148.97147 14897.14700 2020-01-01 2020-01-02 2020-01-01 00:02:37 2020-01-02 03:30:58 2020-01-01 00:02:37.000 2020-01-02 03:30:58.000 157 99058 49607.5 4960750 157 99058 49607.5 4960750 -32412 32523 5043.02 504302 -126 125 -0.18 -18 +158 2 10148 99059 0.47447 297.47447 148.97447 14897.44744 0.47447 297.4745 148.97447 14897.44748 0.47447 297.47447 148.97447 14897.44700 2020-01-01 2020-01-02 2020-01-01 00:02:38 2020-01-02 03:30:59 2020-01-01 00:02:38.000 2020-01-02 03:30:59.000 158 99059 49608.5 4960850 158 99059 49608.5 4960850 -32411 32524 5044.02 504402 -125 126 0.82 82 +159 2 10149 99060 0.47747 297.47747 148.97747 14897.74774 0.47747 297.47748 148.97747 14897.74779 0.47747 297.47747 148.97746999999998 14897.74700 2020-01-01 2020-01-02 2020-01-01 00:02:39 2020-01-02 03:31:00 2020-01-01 00:02:39.000 2020-01-02 03:31:00.000 159 99060 49609.5 4960950 159 99060 49609.5 4960950 -32410 32525 5045.02 504502 -124 127 1.82 182 +16 2 10006 99916 0.04804 300.04804 150.04804 15154.85285 0.04804 300.04803 150.04804 15154.85279 0.04804 300.04804 150.04804 15154.85204 2020-01-01 2020-01-02 2020-01-01 00:00:16 2020-01-02 03:45:16 2020-01-01 00:00:16.000 2020-01-02 03:45:16.000 16 99916 49966 5046566 16 99916 49966 5046566 -32553 32382 4545.009900990099 459046 -128 127 0.37623762376237624 38 +160 2 10150 99061 0.48048 297.48048 148.98048 14898.04804 0.48048 297.48047 148.98048 14898.0481 0.48048 297.48048 148.98048 14898.04800 2020-01-01 2020-01-02 2020-01-01 00:02:40 2020-01-02 03:31:01 2020-01-01 00:02:40.000 2020-01-02 03:31:01.000 160 99061 49610.5 4961050 160 99061 49610.5 4961050 -32409 32526 5046.02 504602 -128 127 0.26 26 +161 2 10151 99062 0.48348 297.48348 148.98348 14898.34834 0.48348 297.4835 148.98348 14898.34868 0.48348 297.48348 148.98348 14898.34800 2020-01-01 2020-01-02 2020-01-01 00:02:41 2020-01-02 03:31:02 2020-01-01 00:02:41.000 2020-01-02 03:31:02.000 161 99062 49611.5 4961150 161 99062 49611.5 4961150 -32408 32527 5047.02 504702 -128 123 -1.3 -130 +162 2 10152 99063 0.48648 297.48648 148.98648 14898.64864 0.48648 297.48648 148.98648 14898.64837 0.48648 297.48648 148.98648 14898.64800 2020-01-01 2020-01-02 2020-01-01 00:02:42 2020-01-02 03:31:03 2020-01-01 00:02:42.000 2020-01-02 03:31:03.000 162 99063 49612.5 4961250 162 99063 49612.5 4961250 -32407 32528 5048.02 504802 -127 124 -0.3 -30 +163 2 10153 99064 0.48948 297.48948 148.98948 14898.94894 0.48948 297.4895 148.98948 14898.94895 0.48948 297.48948 148.98948000000001 14898.94800 2020-01-01 2020-01-02 2020-01-01 00:02:43 2020-01-02 03:31:04 2020-01-01 00:02:43.000 2020-01-02 03:31:04.000 163 99064 49613.5 4961350 163 99064 49613.5 4961350 -32406 32529 5049.02 504902 -126 125 0.7 70 +164 2 10154 99065 0.49249 297.49249 148.99249 14899.24924 0.49249 297.4925 148.99249 14899.24926 0.49249 297.49249 148.99249 14899.24900 2020-01-01 2020-01-02 2020-01-01 00:02:44 2020-01-02 03:31:05 2020-01-01 00:02:44.000 2020-01-02 03:31:05.000 164 99065 49614.5 4961450 164 99065 49614.5 4961450 -32405 32530 5050.02 505002 -125 126 1.7 170 +165 2 10155 99066 0.49549 297.49549 148.99549 14899.54954 0.49549 297.49548 148.99549 14899.54957 0.49549 297.49549 148.99549000000002 14899.54900 2020-01-01 2020-01-02 2020-01-01 00:02:45 2020-01-02 03:31:06 2020-01-01 00:02:45.000 2020-01-02 03:31:06.000 165 99066 49615.5 4961550 165 99066 49615.5 4961550 -32404 32531 5051.02 505102 -124 127 2.7 270 +166 2 10156 99067 0.49849 297.49849 148.99849 14899.84984 0.49849 297.4985 148.9985 14899.85015 0.49849 297.49849 148.99849 14899.84900 2020-01-01 2020-01-02 2020-01-01 00:02:46 2020-01-02 03:31:07 2020-01-01 00:02:46.000 2020-01-02 03:31:07.000 166 99067 49616.5 4961650 166 99067 49616.5 4961650 -32403 32532 5052.02 505202 -128 127 1.14 114 +167 2 10157 99068 0.5015 297.5015 149.0015 14900.15015 0.5015 297.5015 149.00149 14900.14984 0.50150 297.50150 149.0015 14900.15000 2020-01-01 2020-01-02 2020-01-01 00:02:47 2020-01-02 03:31:08 2020-01-01 00:02:47.000 2020-01-02 03:31:08.000 167 99068 49617.5 4961750 167 99068 49617.5 4961750 -32402 32533 5053.02 505302 -128 123 -0.42 -42 +168 2 10158 99069 0.5045 297.5045 149.0045 14900.45045 0.5045 297.50452 149.0045 14900.45042 0.50450 297.50450 149.0045 14900.45000 2020-01-01 2020-01-02 2020-01-01 00:02:48 2020-01-02 03:31:09 2020-01-01 00:02:48.000 2020-01-02 03:31:09.000 168 99069 49618.5 4961850 168 99069 49618.5 4961850 -32401 32534 5054.02 505402 -127 124 0.58 58 +169 2 10159 99070 0.5075 297.5075 149.0075 14900.75075 0.5075 297.5075 149.0075 14900.75073 0.50750 297.50750 149.0075 14900.75000 2020-01-01 2020-01-02 2020-01-01 00:02:49 2020-01-02 03:31:10 2020-01-01 00:02:49.000 2020-01-02 03:31:10.000 169 99070 49619.5 4961950 169 99070 49619.5 4961950 -32400 32535 5055.02 505502 -126 125 1.58 158 17 2 10007 99917 0.05105 300.05105 150.05105 15155.15615 0.05105 300.05106 150.05105 15155.15638 0.05105 300.05105 150.05105 15155.15605 2020-01-01 2020-01-02 2020-01-01 00:00:17 2020-01-02 03:45:17 2020-01-01 00:00:17.000 2020-01-02 03:45:17.000 17 99917 49967 5046667 17 99917 49967 5046667 -32552 32383 4546.009900990099 459147 -128 127 -1.1584158415841583 -117 -170 2 10160 99071 0.51051 297.51051 149.01051 14901.05105 0.51051 297.5105 149.01051 14901.05104 0.51051 297.51051 149.01051000000004 14901.05100 2020-01-01 2020-01-02 2020-01-01 00:02:50 2020-01-02 03:31:11 2020-01-01 00:02:50.000 2020-01-02 03:31:11.000 170 99071 49620.5 4962050 170 99071 49620.5 4962050 -32399 32536 5056.02 505602 -125 126 2.58 258 -171 2 10161 99072 0.51351 297.51351 149.01351 14901.35135 0.51351 297.51352 149.01351 14901.35162 0.51351 297.51351 149.01351000000005 14901.35100 2020-01-01 2020-01-02 2020-01-01 00:02:51 2020-01-02 03:31:12 2020-01-01 00:02:51.000 2020-01-02 03:31:12.000 171 99072 49621.5 4962150 171 99072 49621.5 4962150 -32398 32537 5057.02 505702 -124 127 3.58 358 -172 2 10162 99073 0.51651 297.51651 149.01651 14901.65165 0.51651 297.5165 149.01651 14901.65131 0.51651 297.51651 149.01650999999998 14901.65100 2020-01-01 2020-01-02 2020-01-01 00:02:52 2020-01-02 03:31:13 2020-01-01 00:02:52.000 2020-01-02 03:31:13.000 172 99073 49622.5 4962250 172 99073 49622.5 4962250 -32397 32538 5058.02 505802 -128 127 2.02 202 -173 2 10163 99074 0.51951 297.51951 149.01951 14901.95195 0.51951 297.51953 149.01951 14901.95189 0.51951 297.51951 149.01951000000005 14901.95100 2020-01-01 2020-01-02 2020-01-01 00:02:53 2020-01-02 03:31:14 2020-01-01 00:02:53.000 2020-01-02 03:31:14.000 173 99074 49623.5 4962350 173 99074 49623.5 4962350 -32396 32539 5059.02 505902 -128 127 0.46 46 -174 2 10164 99075 0.52252 297.52252 149.02252 14902.25225 0.52252 297.52252 149.02252 14902.2522 0.52252 297.52252 149.02252000000024 14902.25200 2020-01-01 2020-01-02 2020-01-01 00:02:54 2020-01-02 03:31:15 2020-01-01 00:02:54.000 2020-01-02 03:31:15.000 174 99075 49624.5 4962450 174 99075 49624.5 4962450 -32395 32540 5060.02 506002 -128 124 -1.1 -110 -175 2 10165 99076 0.52552 297.52552 149.02552 14902.55255 0.52552 297.5255 149.02552 14902.55251 0.52552 297.52552 149.02551999999986 14902.55200 2020-01-01 2020-01-02 2020-01-01 00:02:55 2020-01-02 03:31:16 2020-01-01 00:02:55.000 2020-01-02 03:31:16.000 175 99076 49625.5 4962550 175 99076 49625.5 4962550 -32394 32541 5061.02 506102 -127 125 -0.1 -10 -176 2 10166 99077 0.52852 297.52852 149.02852 14902.85285 0.52852 297.52853 149.02853 14902.85312 0.52852 297.52852 149.0285199999999 14902.85200 2020-01-01 2020-01-02 2020-01-01 00:02:56 2020-01-02 03:31:17 2020-01-01 00:02:56.000 2020-01-02 03:31:17.000 176 99077 49626.5 4962650 176 99077 49626.5 4962650 -32393 32542 5062.02 506202 -126 126 0.9 90 -177 2 10167 99078 0.53153 297.53153 149.03153 14903.15315 0.53153 297.53152 149.03152 14903.15278 0.53153 297.53153 149.03153000000015 14903.15300 2020-01-01 2020-01-02 2020-01-01 00:02:57 2020-01-02 03:31:18 2020-01-01 00:02:57.000 2020-01-02 03:31:18.000 177 99078 49627.5 4962750 177 99078 49627.5 4962750 -32392 32543 5063.02 506302 -125 127 1.9 190 -178 2 10168 99079 0.53453 297.53453 149.03453 14903.45345 0.53453 297.53455 149.03453 14903.45352 0.53453 297.53453 149.03453000000016 14903.45300 2020-01-01 2020-01-02 2020-01-01 00:02:58 2020-01-02 03:31:19 2020-01-01 00:02:58.000 2020-01-02 03:31:19.000 178 99079 49628.5 4962850 178 99079 49628.5 4962850 -32391 32544 5064.02 506402 -128 127 0.34 34 -179 2 10169 99080 0.53753 297.53753 149.03753 14903.75375 0.53753 297.53754 149.03753 14903.75366 0.53753 297.53753 149.0375299999998 14903.75300 2020-01-01 2020-01-02 2020-01-01 00:02:59 2020-01-02 03:31:20 2020-01-01 00:02:59.000 2020-01-02 03:31:20.000 179 99080 49629.5 4962950 179 99080 49629.5 4962950 -32390 32545 5065.02 506502 -128 127 -1.22 -122 -18 2 10008 99918 0.05405 300.05405 150.05405 15155.45945 0.05405 300.05405 150.05404 15155.45903 0.05405 300.05405 150.05405000000007 15155.45905 2020-01-01 2020-01-02 2020-01-01 00:00:18 2020-01-02 03:45:18 2020-01-01 00:00:18.000 2020-01-02 03:45:18.000 18 99918 49968 5046768 18 99918 49968 5046768 -32551 32384 4547.009900990099 459248 -128 124 -2.6930693069306932 -272 +170 2 10160 99071 0.51051 297.51051 149.01051 14901.05105 0.51051 297.5105 149.01051 14901.05104 0.51051 297.51051 149.01050999999998 14901.05100 2020-01-01 2020-01-02 2020-01-01 00:02:50 2020-01-02 03:31:11 2020-01-01 00:02:50.000 2020-01-02 03:31:11.000 170 99071 49620.5 4962050 170 99071 49620.5 4962050 -32399 32536 5056.02 505602 -125 126 2.58 258 +171 2 10161 99072 0.51351 297.51351 149.01351 14901.35135 0.51351 297.51352 149.01351 14901.35162 0.51351 297.51351 149.01351 14901.35100 2020-01-01 2020-01-02 2020-01-01 00:02:51 2020-01-02 03:31:12 2020-01-01 00:02:51.000 2020-01-02 03:31:12.000 171 99072 49621.5 4962150 171 99072 49621.5 4962150 -32398 32537 5057.02 505702 -124 127 3.58 358 +172 2 10162 99073 0.51651 297.51651 149.01651 14901.65165 0.51651 297.5165 149.01651 14901.65131 0.51651 297.51651 149.01651 14901.65100 2020-01-01 2020-01-02 2020-01-01 00:02:52 2020-01-02 03:31:13 2020-01-01 00:02:52.000 2020-01-02 03:31:13.000 172 99073 49622.5 4962250 172 99073 49622.5 4962250 -32397 32538 5058.02 505802 -128 127 2.02 202 +173 2 10163 99074 0.51951 297.51951 149.01951 14901.95195 0.51951 297.51953 149.01951 14901.95189 0.51951 297.51951 149.01951 14901.95100 2020-01-01 2020-01-02 2020-01-01 00:02:53 2020-01-02 03:31:14 2020-01-01 00:02:53.000 2020-01-02 03:31:14.000 173 99074 49623.5 4962350 173 99074 49623.5 4962350 -32396 32539 5059.02 505902 -128 127 0.46 46 +174 2 10164 99075 0.52252 297.52252 149.02252 14902.25225 0.52252 297.52252 149.02252 14902.2522 0.52252 297.52252 149.02252000000001 14902.25200 2020-01-01 2020-01-02 2020-01-01 00:02:54 2020-01-02 03:31:15 2020-01-01 00:02:54.000 2020-01-02 03:31:15.000 174 99075 49624.5 4962450 174 99075 49624.5 4962450 -32395 32540 5060.02 506002 -128 124 -1.1 -110 +175 2 10165 99076 0.52552 297.52552 149.02552 14902.55255 0.52552 297.5255 149.02552 14902.55251 0.52552 297.52552 149.02552 14902.55200 2020-01-01 2020-01-02 2020-01-01 00:02:55 2020-01-02 03:31:16 2020-01-01 00:02:55.000 2020-01-02 03:31:16.000 175 99076 49625.5 4962550 175 99076 49625.5 4962550 -32394 32541 5061.02 506102 -127 125 -0.1 -10 +176 2 10166 99077 0.52852 297.52852 149.02852 14902.85285 0.52852 297.52853 149.02853 14902.85312 0.52852 297.52852 149.02852000000001 14902.85200 2020-01-01 2020-01-02 2020-01-01 00:02:56 2020-01-02 03:31:17 2020-01-01 00:02:56.000 2020-01-02 03:31:17.000 176 99077 49626.5 4962650 176 99077 49626.5 4962650 -32393 32542 5062.02 506202 -126 126 0.9 90 +177 2 10167 99078 0.53153 297.53153 149.03153 14903.15315 0.53153 297.53152 149.03152 14903.15278 0.53153 297.53153 149.03153 14903.15300 2020-01-01 2020-01-02 2020-01-01 00:02:57 2020-01-02 03:31:18 2020-01-01 00:02:57.000 2020-01-02 03:31:18.000 177 99078 49627.5 4962750 177 99078 49627.5 4962750 -32392 32543 5063.02 506302 -125 127 1.9 190 +178 2 10168 99079 0.53453 297.53453 149.03453 14903.45345 0.53453 297.53455 149.03453 14903.45352 0.53453 297.53453 149.03453 14903.45300 2020-01-01 2020-01-02 2020-01-01 00:02:58 2020-01-02 03:31:19 2020-01-01 00:02:58.000 2020-01-02 03:31:19.000 178 99079 49628.5 4962850 178 99079 49628.5 4962850 -32391 32544 5064.02 506402 -128 127 0.34 34 +179 2 10169 99080 0.53753 297.53753 149.03753 14903.75375 0.53753 297.53754 149.03753 14903.75366 0.53753 297.53753 149.03753 14903.75300 2020-01-01 2020-01-02 2020-01-01 00:02:59 2020-01-02 03:31:20 2020-01-01 00:02:59.000 2020-01-02 03:31:20.000 179 99080 49629.5 4962950 179 99080 49629.5 4962950 -32390 32545 5065.02 506502 -128 127 -1.22 -122 +18 2 10008 99918 0.05405 300.05405 150.05405 15155.45945 0.05405 300.05405 150.05404 15155.45903 0.05405 300.05405 150.05405 15155.45905 2020-01-01 2020-01-02 2020-01-01 00:00:18 2020-01-02 03:45:18 2020-01-01 00:00:18.000 2020-01-02 03:45:18.000 18 99918 49968 5046768 18 99918 49968 5046768 -32551 32384 4547.009900990099 459248 -128 124 -2.6930693069306932 -272 180 2 10170 99081 0.54054 297.54054 149.04054 14904.05405 0.54054 297.54053 149.04053 14904.05398 0.54054 297.54054 149.04054 14904.05400 2020-01-01 2020-01-02 2020-01-01 00:03:00 2020-01-02 03:31:21 2020-01-01 00:03:00.000 2020-01-02 03:31:21.000 180 99081 49630.5 4963050 180 99081 49630.5 4963050 -32389 32546 5066.02 506602 -128 123 -2.78 -278 -181 2 10171 99082 0.54354 297.54354 149.04354 14904.35435 0.54354 297.54355 149.04354 14904.35459 0.54354 297.54354 149.04354000000006 14904.35400 2020-01-01 2020-01-02 2020-01-01 00:03:01 2020-01-02 03:31:22 2020-01-01 00:03:01.000 2020-01-02 03:31:22.000 181 99082 49631.5 4963150 181 99082 49631.5 4963150 -32388 32547 5067.02 506702 -127 124 -1.78 -178 -182 2 10172 99083 0.54654 297.54654 149.04654 14904.65465 0.54654 297.54654 149.04654 14904.65425 0.54654 297.54654 149.0465399999999 14904.65400 2020-01-01 2020-01-02 2020-01-01 00:03:02 2020-01-02 03:31:23 2020-01-01 00:03:02.000 2020-01-02 03:31:23.000 182 99083 49632.5 4963250 182 99083 49632.5 4963250 -32387 32548 5068.02 506802 -126 125 -0.78 -78 -183 2 10173 99084 0.54954 297.54954 149.04954 14904.95495 0.54954 297.54956 149.04954 14904.95498 0.54954 297.54954 149.04953999999998 14904.95400 2020-01-01 2020-01-02 2020-01-01 00:03:03 2020-01-02 03:31:24 2020-01-01 00:03:03.000 2020-01-02 03:31:24.000 183 99084 49633.5 4963350 183 99084 49633.5 4963350 -32386 32549 5069.02 506902 -125 126 0.22 22 -184 2 10174 99085 0.55255 297.55255 149.05255 14905.25525 0.55255 297.55255 149.05255 14905.25514 0.55255 297.55255 149.05255000000017 14905.25500 2020-01-01 2020-01-02 2020-01-01 00:03:04 2020-01-02 03:31:25 2020-01-01 00:03:04.000 2020-01-02 03:31:25.000 184 99085 49634.5 4963450 184 99085 49634.5 4963450 -32385 32550 5070.02 507002 -124 127 1.22 122 -185 2 10175 99086 0.55555 297.55555 149.05555 14905.55555 0.55555 297.55554 149.05555 14905.55549 0.55555 297.55555 149.05554999999978 14905.55500 2020-01-01 2020-01-02 2020-01-01 00:03:05 2020-01-02 03:31:26 2020-01-01 00:03:05.000 2020-01-02 03:31:26.000 185 99086 49635.5 4963550 185 99086 49635.5 4963550 -32384 32551 5071.02 507102 -128 127 -0.34 -34 -186 2 10176 99087 0.55855 297.55855 149.05855 14905.85585 0.55855 297.55856 149.05856 14905.85607 0.55855 297.55855 149.05854999999988 14905.85500 2020-01-01 2020-01-02 2020-01-01 00:03:06 2020-01-02 03:31:27 2020-01-01 00:03:06.000 2020-01-02 03:31:27.000 186 99087 49636.5 4963650 186 99087 49636.5 4963650 -32383 32552 5072.02 507202 -128 123 -1.9 -190 -187 2 10177 99088 0.56156 297.56156 149.06156 14906.15615 0.56156 297.56155 149.06155 14906.15572 0.56156 297.56156 149.06156000000007 14906.15600 2020-01-01 2020-01-02 2020-01-01 00:03:07 2020-01-02 03:31:28 2020-01-01 00:03:07.000 2020-01-02 03:31:28.000 187 99088 49637.5 4963750 187 99088 49637.5 4963750 -32382 32553 5073.02 507302 -127 124 -0.9 -90 -188 2 10178 99089 0.56456 297.56456 149.06456 14906.45645 0.56456 297.56458 149.06456 14906.45645 0.56456 297.56456 149.06456000000009 14906.45600 2020-01-01 2020-01-02 2020-01-01 00:03:08 2020-01-02 03:31:29 2020-01-01 00:03:08.000 2020-01-02 03:31:29.000 188 99089 49638.5 4963850 188 99089 49638.5 4963850 -32381 32554 5074.02 507402 -126 125 0.1 10 +181 2 10171 99082 0.54354 297.54354 149.04354 14904.35435 0.54354 297.54355 149.04354 14904.35459 0.54354 297.54354 149.04354 14904.35400 2020-01-01 2020-01-02 2020-01-01 00:03:01 2020-01-02 03:31:22 2020-01-01 00:03:01.000 2020-01-02 03:31:22.000 181 99082 49631.5 4963150 181 99082 49631.5 4963150 -32388 32547 5067.02 506702 -127 124 -1.78 -178 +182 2 10172 99083 0.54654 297.54654 149.04654 14904.65465 0.54654 297.54654 149.04654 14904.65425 0.54654 297.54654 149.04654 14904.65400 2020-01-01 2020-01-02 2020-01-01 00:03:02 2020-01-02 03:31:23 2020-01-01 00:03:02.000 2020-01-02 03:31:23.000 182 99083 49632.5 4963250 182 99083 49632.5 4963250 -32387 32548 5068.02 506802 -126 125 -0.78 -78 +183 2 10173 99084 0.54954 297.54954 149.04954 14904.95495 0.54954 297.54956 149.04954 14904.95498 0.54954 297.54954 149.04954 14904.95400 2020-01-01 2020-01-02 2020-01-01 00:03:03 2020-01-02 03:31:24 2020-01-01 00:03:03.000 2020-01-02 03:31:24.000 183 99084 49633.5 4963350 183 99084 49633.5 4963350 -32386 32549 5069.02 506902 -125 126 0.22 22 +184 2 10174 99085 0.55255 297.55255 149.05255 14905.25525 0.55255 297.55255 149.05255 14905.25514 0.55255 297.55255 149.05255 14905.25500 2020-01-01 2020-01-02 2020-01-01 00:03:04 2020-01-02 03:31:25 2020-01-01 00:03:04.000 2020-01-02 03:31:25.000 184 99085 49634.5 4963450 184 99085 49634.5 4963450 -32385 32550 5070.02 507002 -124 127 1.22 122 +185 2 10175 99086 0.55555 297.55555 149.05555 14905.55555 0.55555 297.55554 149.05555 14905.55549 0.55555 297.55555 149.05555 14905.55500 2020-01-01 2020-01-02 2020-01-01 00:03:05 2020-01-02 03:31:26 2020-01-01 00:03:05.000 2020-01-02 03:31:26.000 185 99086 49635.5 4963550 185 99086 49635.5 4963550 -32384 32551 5071.02 507102 -128 127 -0.34 -34 +186 2 10176 99087 0.55855 297.55855 149.05855 14905.85585 0.55855 297.55856 149.05856 14905.85607 0.55855 297.55855 149.05855 14905.85500 2020-01-01 2020-01-02 2020-01-01 00:03:06 2020-01-02 03:31:27 2020-01-01 00:03:06.000 2020-01-02 03:31:27.000 186 99087 49636.5 4963650 186 99087 49636.5 4963650 -32383 32552 5072.02 507202 -128 123 -1.9 -190 +187 2 10177 99088 0.56156 297.56156 149.06156 14906.15615 0.56156 297.56155 149.06155 14906.15572 0.56156 297.56156 149.06156000000001 14906.15600 2020-01-01 2020-01-02 2020-01-01 00:03:07 2020-01-02 03:31:28 2020-01-01 00:03:07.000 2020-01-02 03:31:28.000 187 99088 49637.5 4963750 187 99088 49637.5 4963750 -32382 32553 5073.02 507302 -127 124 -0.9 -90 +188 2 10178 99089 0.56456 297.56456 149.06456 14906.45645 0.56456 297.56458 149.06456 14906.45645 0.56456 297.56456 149.06456 14906.45600 2020-01-01 2020-01-02 2020-01-01 00:03:08 2020-01-02 03:31:29 2020-01-01 00:03:08.000 2020-01-02 03:31:29.000 188 99089 49638.5 4963850 188 99089 49638.5 4963850 -32381 32554 5074.02 507402 -126 125 0.1 10 189 2 10179 99090 0.56756 297.56756 149.06756 14906.75675 0.56756 297.56757 149.06756 14906.75661 0.56756 297.56756 149.06756 14906.75600 2020-01-01 2020-01-02 2020-01-01 00:03:09 2020-01-02 03:31:30 2020-01-01 00:03:09.000 2020-01-02 03:31:30.000 189 99090 49639.5 4963950 189 99090 49639.5 4963950 -32380 32555 5075.02 507502 -125 126 1.1 110 19 2 10009 99919 0.05705 300.05705 150.05705 15155.76276 0.05705 300.05707 150.05705 15155.76279 0.05705 300.05705 150.05705 15155.76205 2020-01-01 2020-01-02 2020-01-01 00:00:19 2020-01-02 03:45:19 2020-01-01 00:00:19.000 2020-01-02 03:45:19.000 19 99919 49969 5046869 19 99919 49969 5046869 -32550 32385 4548.009900990099 459349 -127 125 -1.693069306930693 -171 -190 2 10180 99091 0.57057 297.57057 149.07057 14907.05705 0.57057 297.57056 149.07056 14907.05695 0.57057 297.57057 149.0705699999999 14907.05700 2020-01-01 2020-01-02 2020-01-01 00:03:10 2020-01-02 03:31:31 2020-01-01 00:03:10.000 2020-01-02 03:31:31.000 190 99091 49640.5 4964050 190 99091 49640.5 4964050 -32379 32556 5076.02 507602 -124 127 2.1 210 +190 2 10180 99091 0.57057 297.57057 149.07057 14907.05705 0.57057 297.57056 149.07056 14907.05695 0.57057 297.57057 149.07057 14907.05700 2020-01-01 2020-01-02 2020-01-01 00:03:10 2020-01-02 03:31:31 2020-01-01 00:03:10.000 2020-01-02 03:31:31.000 190 99091 49640.5 4964050 190 99091 49640.5 4964050 -32379 32556 5076.02 507602 -124 127 2.1 210 191 2 10181 99092 0.57357 297.57357 149.07357 14907.35735 0.57357 297.57358 149.07357 14907.35753 0.57357 297.57357 149.07357 14907.35700 2020-01-01 2020-01-02 2020-01-01 00:03:11 2020-01-02 03:31:32 2020-01-01 00:03:11.000 2020-01-02 03:31:32.000 191 99092 49641.5 4964150 191 99092 49641.5 4964150 -32378 32557 5077.02 507702 -128 127 0.54 54 -192 2 10182 99093 0.57657 297.57657 149.07657 14907.65765 0.57657 297.57657 149.07657 14907.65784 0.57657 297.57657 149.07656999999992 14907.65700 2020-01-01 2020-01-02 2020-01-01 00:03:12 2020-01-02 03:31:33 2020-01-01 00:03:12.000 2020-01-02 03:31:33.000 192 99093 49642.5 4964250 192 99093 49642.5 4964250 -32377 32558 5078.02 507802 -128 123 -1.02 -102 -193 2 10183 99094 0.57957 297.57957 149.07957 14907.95795 0.57957 297.5796 149.07957 14907.95793 0.57957 297.57957 149.0795699999999 14907.95700 2020-01-01 2020-01-02 2020-01-01 00:03:13 2020-01-02 03:31:34 2020-01-01 00:03:13.000 2020-01-02 03:31:34.000 193 99094 49643.5 4964350 193 99094 49643.5 4964350 -32376 32559 5079.02 507902 -127 124 -0.02 -2 -194 2 10184 99095 0.58258 297.58258 149.08258 14908.25825 0.58258 297.58258 149.08258 14908.25811 0.58258 297.58258 149.08258000000015 14908.25800 2020-01-01 2020-01-02 2020-01-01 00:03:14 2020-01-02 03:31:35 2020-01-01 00:03:14.000 2020-01-02 03:31:35.000 194 99095 49644.5 4964450 194 99095 49644.5 4964450 -32375 32560 5080.02 508002 -126 125 0.98 98 -195 2 10185 99096 0.58558 297.58558 149.08558 14908.55855 0.58558 297.58557 149.08558 14908.55842 0.58558 297.58558 149.0855800000002 14908.55800 2020-01-01 2020-01-02 2020-01-01 00:03:15 2020-01-02 03:31:36 2020-01-01 00:03:15.000 2020-01-02 03:31:36.000 195 99096 49645.5 4964550 195 99096 49645.5 4964550 -32374 32561 5081.02 508102 -125 126 1.98 198 -196 2 10186 99097 0.58858 297.58858 149.08858 14908.85885 0.58858 297.5886 149.08859 14908.859 0.58858 297.58858 149.08857999999984 14908.85800 2020-01-01 2020-01-02 2020-01-01 00:03:16 2020-01-02 03:31:37 2020-01-01 00:03:16.000 2020-01-02 03:31:37.000 196 99097 49646.5 4964650 196 99097 49646.5 4964650 -32373 32562 5082.02 508202 -124 127 2.98 298 +192 2 10182 99093 0.57657 297.57657 149.07657 14907.65765 0.57657 297.57657 149.07657 14907.65784 0.57657 297.57657 149.07657 14907.65700 2020-01-01 2020-01-02 2020-01-01 00:03:12 2020-01-02 03:31:33 2020-01-01 00:03:12.000 2020-01-02 03:31:33.000 192 99093 49642.5 4964250 192 99093 49642.5 4964250 -32377 32558 5078.02 507802 -128 123 -1.02 -102 +193 2 10183 99094 0.57957 297.57957 149.07957 14907.95795 0.57957 297.5796 149.07957 14907.95793 0.57957 297.57957 149.07957 14907.95700 2020-01-01 2020-01-02 2020-01-01 00:03:13 2020-01-02 03:31:34 2020-01-01 00:03:13.000 2020-01-02 03:31:34.000 193 99094 49643.5 4964350 193 99094 49643.5 4964350 -32376 32559 5079.02 507902 -127 124 -0.02 -2 +194 2 10184 99095 0.58258 297.58258 149.08258 14908.25825 0.58258 297.58258 149.08258 14908.25811 0.58258 297.58258 149.08258 14908.25800 2020-01-01 2020-01-02 2020-01-01 00:03:14 2020-01-02 03:31:35 2020-01-01 00:03:14.000 2020-01-02 03:31:35.000 194 99095 49644.5 4964450 194 99095 49644.5 4964450 -32375 32560 5080.02 508002 -126 125 0.98 98 +195 2 10185 99096 0.58558 297.58558 149.08558 14908.55855 0.58558 297.58557 149.08558 14908.55842 0.58558 297.58558 149.08558000000002 14908.55800 2020-01-01 2020-01-02 2020-01-01 00:03:15 2020-01-02 03:31:36 2020-01-01 00:03:15.000 2020-01-02 03:31:36.000 195 99096 49645.5 4964550 195 99096 49645.5 4964550 -32374 32561 5081.02 508102 -125 126 1.98 198 +196 2 10186 99097 0.58858 297.58858 149.08858 14908.85885 0.58858 297.5886 149.08859 14908.859 0.58858 297.58858 149.08858 14908.85800 2020-01-01 2020-01-02 2020-01-01 00:03:16 2020-01-02 03:31:37 2020-01-01 00:03:16.000 2020-01-02 03:31:37.000 196 99097 49646.5 4964650 196 99097 49646.5 4964650 -32373 32562 5082.02 508202 -124 127 2.98 298 197 2 10187 99098 0.59159 297.59159 149.09159 14909.15915 0.59159 297.59158 149.09159 14909.15931 0.59159 297.59159 149.09159 14909.15900 2020-01-01 2020-01-02 2020-01-01 00:03:17 2020-01-02 03:31:38 2020-01-01 00:03:17.000 2020-01-02 03:31:38.000 197 99098 49647.5 4964750 197 99098 49647.5 4964750 -32372 32563 5083.02 508302 -128 127 1.42 142 -198 2 10188 99099 0.59459 297.59459 149.09459 14909.45945 0.59459 297.5946 149.09459 14909.4594 0.59459 297.59459 149.09459000000007 14909.45900 2020-01-01 2020-01-02 2020-01-01 00:03:18 2020-01-02 03:31:39 2020-01-01 00:03:18.000 2020-01-02 03:31:39.000 198 99099 49648.5 4964850 198 99099 49648.5 4964850 -32371 32564 5084.02 508402 -128 127 -0.14 -14 -199 2 10189 99100 0.59759 297.59759 149.09759 14909.75975 0.59759 297.5976 149.09759 14909.75958 0.59759 297.59759 149.09758999999994 14909.75900 2020-01-01 2020-01-02 2020-01-01 00:03:19 2020-01-02 03:31:40 2020-01-01 00:03:19.000 2020-01-02 03:31:40.000 199 99100 49649.5 4964950 199 99100 49649.5 4964950 -32370 32565 5085.02 508502 -128 124 -1.7 -170 -2 2 1001 9992 0.006 300.006 150.006 15150.6066 0.006 300.006 150.006 15150.6069 0.00600 300.00600 150.00599999999991 15150.60600 2020-01-01 2020-01-02 2020-01-01 00:00:02 2020-01-02 03:45:02 2020-01-01 00:00:02.000 2020-01-02 03:45:02.000 2 99902 49952 5045152 2 99902 49952 5045152 -32567 32368 4531.009900990099 457632 -125 126 -0.9504950495049505 -96 -20 2 10010 99920 0.06006 300.06006 150.06006 15156.06606 0.06006 300.06006 150.06005 15156.06593 0.06006 300.06006 150.06005999999988 15156.06606 2020-01-01 2020-01-02 2020-01-01 00:00:20 2020-01-02 03:45:20 2020-01-01 00:00:20.000 2020-01-02 03:45:20.000 20 99920 49970 5046970 20 99920 49970 5046970 -32549 32386 4549.009900990099 459450 -126 126 -0.693069306930693 -70 -200 2 10190 99101 0.6006 297.6006 149.1006 14910.06006 0.6006 297.6006 149.10059 14910.0599 0.60060 297.60060 149.10059999999987 14910.06000 2020-01-01 2020-01-02 2020-01-01 00:03:20 2020-01-02 03:31:41 2020-01-01 00:03:20.000 2020-01-02 03:31:41.000 200 99101 49650.5 4965050 200 99101 49650.5 4965050 -32369 32566 5086.02 508602 -127 125 -0.7 -70 -201 2 10191 99102 0.6036 297.6036 149.1036 14910.36036 0.6036 297.6036 149.1036 14910.36063 0.60360 297.60360 149.10360000000017 14910.36000 2020-01-01 2020-01-02 2020-01-01 00:03:21 2020-01-02 03:31:42 2020-01-01 00:03:21.000 2020-01-02 03:31:42.000 201 99102 49651.5 4965150 201 99102 49651.5 4965150 -32368 32567 5087.02 508702 -126 126 0.3 30 -202 2 10192 99103 0.6066 297.6066 149.1066 14910.66066 0.6066 297.6066 149.1066 14910.66078 0.60660 297.60660 149.10659999999982 14910.66000 2020-01-01 2020-01-02 2020-01-01 00:03:22 2020-01-02 03:31:43 2020-01-01 00:03:22.000 2020-01-02 03:31:43.000 202 99103 49652.5 4965250 202 99103 49652.5 4965250 -32367 32568 5088.02 508802 -125 127 1.3 130 -203 2 10193 99104 0.6096 297.6096 149.1096 14910.96096 0.6096 297.60962 149.1096 14910.9609 0.60960 297.60960 149.10959999999983 14910.96000 2020-01-01 2020-01-02 2020-01-01 00:03:23 2020-01-02 03:31:44 2020-01-01 00:03:23.000 2020-01-02 03:31:44.000 203 99104 49653.5 4965350 203 99104 49653.5 4965350 -32366 32569 5089.02 508902 -128 127 -0.26 -26 -204 2 10194 99105 0.61261 297.61261 149.11261 14911.26126 0.61261 297.6126 149.11261 14911.26105 0.61261 297.61261 149.1126100000001 14911.26100 2020-01-01 2020-01-02 2020-01-01 00:03:24 2020-01-02 03:31:45 2020-01-01 00:03:24.000 2020-01-02 03:31:45.000 204 99105 49654.5 4965450 204 99105 49654.5 4965450 -32365 32570 5090.02 509002 -128 127 -1.82 -182 -205 2 10195 99106 0.61561 297.61561 149.11561 14911.56156 0.61561 297.6156 149.11561 14911.56137 0.61561 297.61561 149.11561000000012 14911.56100 2020-01-01 2020-01-02 2020-01-01 00:03:25 2020-01-02 03:31:46 2020-01-01 00:03:25.000 2020-01-02 03:31:46.000 205 99106 49655.5 4965550 205 99106 49655.5 4965550 -32364 32571 5091.02 509102 -128 123 -3.38 -338 -206 2 10196 99107 0.61861 297.61861 149.11861 14911.86186 0.61861 297.61862 149.11862 14911.8621 0.61861 297.61861 149.1186099999999 14911.86100 2020-01-01 2020-01-02 2020-01-01 00:03:26 2020-01-02 03:31:47 2020-01-01 00:03:26.000 2020-01-02 03:31:47.000 206 99107 49656.5 4965650 206 99107 49656.5 4965650 -32363 32572 5092.02 509202 -127 124 -2.38 -238 -207 2 10197 99108 0.62162 297.62162 149.12162 14912.16216 0.62162 297.6216 149.12162 14912.16225 0.62162 297.62162 149.12161999999992 14912.16200 2020-01-01 2020-01-02 2020-01-01 00:03:27 2020-01-02 03:31:48 2020-01-01 00:03:27.000 2020-01-02 03:31:48.000 207 99108 49657.5 4965750 207 99108 49657.5 4965750 -32362 32573 5093.02 509302 -126 125 -1.38 -138 +198 2 10188 99099 0.59459 297.59459 149.09459 14909.45945 0.59459 297.5946 149.09459 14909.4594 0.59459 297.59459 149.09459 14909.45900 2020-01-01 2020-01-02 2020-01-01 00:03:18 2020-01-02 03:31:39 2020-01-01 00:03:18.000 2020-01-02 03:31:39.000 198 99099 49648.5 4964850 198 99099 49648.5 4964850 -32371 32564 5084.02 508402 -128 127 -0.14 -14 +199 2 10189 99100 0.59759 297.59759 149.09759 14909.75975 0.59759 297.5976 149.09759 14909.75958 0.59759 297.59759 149.09759 14909.75900 2020-01-01 2020-01-02 2020-01-01 00:03:19 2020-01-02 03:31:40 2020-01-01 00:03:19.000 2020-01-02 03:31:40.000 199 99100 49649.5 4964950 199 99100 49649.5 4964950 -32370 32565 5085.02 508502 -128 124 -1.7 -170 +2 2 1001 9992 0.006 300.006 150.006 15150.6066 0.006 300.006 150.006 15150.6069 0.00600 300.00600 150.006 15150.60600 2020-01-01 2020-01-02 2020-01-01 00:00:02 2020-01-02 03:45:02 2020-01-01 00:00:02.000 2020-01-02 03:45:02.000 2 99902 49952 5045152 2 99902 49952 5045152 -32567 32368 4531.009900990099 457632 -125 126 -0.9504950495049505 -96 +20 2 10010 99920 0.06006 300.06006 150.06006 15156.06606 0.06006 300.06006 150.06005 15156.06593 0.06006 300.06006 150.06006 15156.06606 2020-01-01 2020-01-02 2020-01-01 00:00:20 2020-01-02 03:45:20 2020-01-01 00:00:20.000 2020-01-02 03:45:20.000 20 99920 49970 5046970 20 99920 49970 5046970 -32549 32386 4549.009900990099 459450 -126 126 -0.693069306930693 -70 +200 2 10190 99101 0.6006 297.6006 149.1006 14910.06006 0.6006 297.6006 149.10059 14910.0599 0.60060 297.60060 149.1006 14910.06000 2020-01-01 2020-01-02 2020-01-01 00:03:20 2020-01-02 03:31:41 2020-01-01 00:03:20.000 2020-01-02 03:31:41.000 200 99101 49650.5 4965050 200 99101 49650.5 4965050 -32369 32566 5086.02 508602 -127 125 -0.7 -70 +201 2 10191 99102 0.6036 297.6036 149.1036 14910.36036 0.6036 297.6036 149.1036 14910.36063 0.60360 297.60360 149.1036 14910.36000 2020-01-01 2020-01-02 2020-01-01 00:03:21 2020-01-02 03:31:42 2020-01-01 00:03:21.000 2020-01-02 03:31:42.000 201 99102 49651.5 4965150 201 99102 49651.5 4965150 -32368 32567 5087.02 508702 -126 126 0.3 30 +202 2 10192 99103 0.6066 297.6066 149.1066 14910.66066 0.6066 297.6066 149.1066 14910.66078 0.60660 297.60660 149.1066 14910.66000 2020-01-01 2020-01-02 2020-01-01 00:03:22 2020-01-02 03:31:43 2020-01-01 00:03:22.000 2020-01-02 03:31:43.000 202 99103 49652.5 4965250 202 99103 49652.5 4965250 -32367 32568 5088.02 508802 -125 127 1.3 130 +203 2 10193 99104 0.6096 297.6096 149.1096 14910.96096 0.6096 297.60962 149.1096 14910.9609 0.60960 297.60960 149.1096 14910.96000 2020-01-01 2020-01-02 2020-01-01 00:03:23 2020-01-02 03:31:44 2020-01-01 00:03:23.000 2020-01-02 03:31:44.000 203 99104 49653.5 4965350 203 99104 49653.5 4965350 -32366 32569 5089.02 508902 -128 127 -0.26 -26 +204 2 10194 99105 0.61261 297.61261 149.11261 14911.26126 0.61261 297.6126 149.11261 14911.26105 0.61261 297.61261 149.11261000000002 14911.26100 2020-01-01 2020-01-02 2020-01-01 00:03:24 2020-01-02 03:31:45 2020-01-01 00:03:24.000 2020-01-02 03:31:45.000 204 99105 49654.5 4965450 204 99105 49654.5 4965450 -32365 32570 5090.02 509002 -128 127 -1.82 -182 +205 2 10195 99106 0.61561 297.61561 149.11561 14911.56156 0.61561 297.6156 149.11561 14911.56137 0.61561 297.61561 149.11561 14911.56100 2020-01-01 2020-01-02 2020-01-01 00:03:25 2020-01-02 03:31:46 2020-01-01 00:03:25.000 2020-01-02 03:31:46.000 205 99106 49655.5 4965550 205 99106 49655.5 4965550 -32364 32571 5091.02 509102 -128 123 -3.38 -338 +206 2 10196 99107 0.61861 297.61861 149.11861 14911.86186 0.61861 297.61862 149.11862 14911.8621 0.61861 297.61861 149.11861000000002 14911.86100 2020-01-01 2020-01-02 2020-01-01 00:03:26 2020-01-02 03:31:47 2020-01-01 00:03:26.000 2020-01-02 03:31:47.000 206 99107 49656.5 4965650 206 99107 49656.5 4965650 -32363 32572 5092.02 509202 -127 124 -2.38 -238 +207 2 10197 99108 0.62162 297.62162 149.12162 14912.16216 0.62162 297.6216 149.12162 14912.16225 0.62162 297.62162 149.12162 14912.16200 2020-01-01 2020-01-02 2020-01-01 00:03:27 2020-01-02 03:31:48 2020-01-01 00:03:27.000 2020-01-02 03:31:48.000 207 99108 49657.5 4965750 207 99108 49657.5 4965750 -32362 32573 5093.02 509302 -126 125 -1.38 -138 208 2 10198 99109 0.62462 297.62462 149.12462 14912.46246 0.62462 297.62463 149.12462 14912.46237 0.62462 297.62462 149.12462 14912.46200 2020-01-01 2020-01-02 2020-01-01 00:03:28 2020-01-02 03:31:49 2020-01-01 00:03:28.000 2020-01-02 03:31:49.000 208 99109 49658.5 4965850 208 99109 49658.5 4965850 -32361 32574 5094.02 509402 -125 126 -0.38 -38 -209 2 10199 99110 0.62762 297.62762 149.12762 14912.76276 0.62762 297.62762 149.12762 14912.76253 0.62762 297.62762 149.12761999999992 14912.76200 2020-01-01 2020-01-02 2020-01-01 00:03:29 2020-01-02 03:31:50 2020-01-01 00:03:29.000 2020-01-02 03:31:50.000 209 99110 49659.5 4965950 209 99110 49659.5 4965950 -32360 32575 5095.02 509502 -124 127 0.62 62 -21 2 10011 99921 0.06306 300.06306 150.06306 15156.36936 0.06306 300.06305 150.06306 15156.36927 0.06306 300.06306 150.0630600000002 15156.36906 2020-01-01 2020-01-02 2020-01-01 00:00:21 2020-01-02 03:45:21 2020-01-01 00:00:21.000 2020-01-02 03:45:21.000 21 99921 49971 5047071 21 99921 49971 5047071 -32548 32387 4550.009900990099 459551 -125 127 0.3069306930693069 31 -210 2 10200 99111 0.63063 297.63063 149.13063 14913.06306 0.63063 297.63065 149.13063 14913.06326 0.63063 297.63063 149.13062999999983 14913.06300 2020-01-01 2020-01-02 2020-01-01 00:03:30 2020-01-02 03:31:51 2020-01-01 00:03:30.000 2020-01-02 03:31:51.000 210 99111 49660.5 4966050 210 99111 49660.5 4966050 -32359 32576 5096.02 509602 -128 127 -0.94 -94 -211 2 10201 99112 0.63363 297.63363 149.13363 14913.36336 0.63363 297.63364 149.13363 14913.36357 0.63363 297.63363 149.13363000000012 14913.36300 2020-01-01 2020-01-02 2020-01-01 00:03:31 2020-01-02 03:31:52 2020-01-01 00:03:31.000 2020-01-02 03:31:52.000 211 99112 49661.5 4966150 211 99112 49661.5 4966150 -32358 32577 5097.02 509702 -128 123 -2.5 -250 -212 2 10202 99113 0.63663 297.63663 149.13663 14913.66366 0.63663 297.63663 149.13663 14913.66372 0.63663 297.63663 149.1366300000002 14913.66300 2020-01-01 2020-01-02 2020-01-01 00:03:32 2020-01-02 03:31:53 2020-01-01 00:03:32.000 2020-01-02 03:31:53.000 212 99113 49662.5 4966250 212 99113 49662.5 4966250 -32357 32578 5098.02 509802 -127 124 -1.5 -150 -213 2 10203 99114 0.63963 297.63963 149.13963 14913.96396 0.63963 297.63965 149.13963 14913.96384 0.63963 297.63963 149.13962999999984 14913.96300 2020-01-01 2020-01-02 2020-01-01 00:03:33 2020-01-02 03:31:54 2020-01-01 00:03:33.000 2020-01-02 03:31:54.000 213 99114 49663.5 4966350 213 99114 49663.5 4966350 -32356 32579 5099.02 509902 -126 125 -0.5 -50 +209 2 10199 99110 0.62762 297.62762 149.12762 14912.76276 0.62762 297.62762 149.12762 14912.76253 0.62762 297.62762 149.12762 14912.76200 2020-01-01 2020-01-02 2020-01-01 00:03:29 2020-01-02 03:31:50 2020-01-01 00:03:29.000 2020-01-02 03:31:50.000 209 99110 49659.5 4965950 209 99110 49659.5 4965950 -32360 32575 5095.02 509502 -124 127 0.62 62 +21 2 10011 99921 0.06306 300.06306 150.06306 15156.36936 0.06306 300.06305 150.06306 15156.36927 0.06306 300.06306 150.06306 15156.36906 2020-01-01 2020-01-02 2020-01-01 00:00:21 2020-01-02 03:45:21 2020-01-01 00:00:21.000 2020-01-02 03:45:21.000 21 99921 49971 5047071 21 99921 49971 5047071 -32548 32387 4550.009900990099 459551 -125 127 0.3069306930693069 31 +210 2 10200 99111 0.63063 297.63063 149.13063 14913.06306 0.63063 297.63065 149.13063 14913.06326 0.63063 297.63063 149.13063 14913.06300 2020-01-01 2020-01-02 2020-01-01 00:03:30 2020-01-02 03:31:51 2020-01-01 00:03:30.000 2020-01-02 03:31:51.000 210 99111 49660.5 4966050 210 99111 49660.5 4966050 -32359 32576 5096.02 509602 -128 127 -0.94 -94 +211 2 10201 99112 0.63363 297.63363 149.13363 14913.36336 0.63363 297.63364 149.13363 14913.36357 0.63363 297.63363 149.13362999999998 14913.36300 2020-01-01 2020-01-02 2020-01-01 00:03:31 2020-01-02 03:31:52 2020-01-01 00:03:31.000 2020-01-02 03:31:52.000 211 99112 49661.5 4966150 211 99112 49661.5 4966150 -32358 32577 5097.02 509702 -128 123 -2.5 -250 +212 2 10202 99113 0.63663 297.63663 149.13663 14913.66366 0.63663 297.63663 149.13663 14913.66372 0.63663 297.63663 149.13663 14913.66300 2020-01-01 2020-01-02 2020-01-01 00:03:32 2020-01-02 03:31:53 2020-01-01 00:03:32.000 2020-01-02 03:31:53.000 212 99113 49662.5 4966250 212 99113 49662.5 4966250 -32357 32578 5098.02 509802 -127 124 -1.5 -150 +213 2 10203 99114 0.63963 297.63963 149.13963 14913.96396 0.63963 297.63965 149.13963 14913.96384 0.63963 297.63963 149.13963 14913.96300 2020-01-01 2020-01-02 2020-01-01 00:03:33 2020-01-02 03:31:54 2020-01-01 00:03:33.000 2020-01-02 03:31:54.000 213 99114 49663.5 4966350 213 99114 49663.5 4966350 -32356 32579 5099.02 509902 -126 125 -0.5 -50 214 2 10204 99115 0.64264 297.64264 149.14264 14914.26426 0.64264 297.64264 149.14263 14914.26399 0.64264 297.64264 149.14264 14914.26400 2020-01-01 2020-01-02 2020-01-01 00:03:34 2020-01-02 03:31:55 2020-01-01 00:03:34.000 2020-01-02 03:31:55.000 214 99115 49664.5 4966450 214 99115 49664.5 4966450 -32355 32580 5100.02 510002 -125 126 0.5 50 -215 2 10205 99116 0.64564 297.64564 149.14564 14914.56456 0.64564 297.64566 149.14564 14914.56473 0.64564 297.64564 149.1456400000001 14914.56400 2020-01-01 2020-01-02 2020-01-01 00:03:35 2020-01-02 03:31:56 2020-01-01 00:03:35.000 2020-01-02 03:31:56.000 215 99116 49665.5 4966550 215 99116 49665.5 4966550 -32354 32581 5101.02 510102 -124 127 1.5 150 -216 2 10206 99117 0.64864 297.64864 149.14864 14914.86486 0.64864 297.64865 149.14865 14914.86504 0.64864 297.64864 149.14863999999994 14914.86400 2020-01-01 2020-01-02 2020-01-01 00:03:36 2020-01-02 03:31:57 2020-01-01 00:03:36.000 2020-01-02 03:31:57.000 216 99117 49666.5 4966650 216 99117 49666.5 4966650 -32353 32582 5102.02 510202 -128 127 -0.06 -6 -217 2 10207 99118 0.65165 297.65165 149.15165 14915.16516 0.65165 297.65164 149.15165 14915.16523 0.65165 297.65165 149.15164999999988 14915.16500 2020-01-01 2020-01-02 2020-01-01 00:03:37 2020-01-02 03:31:58 2020-01-01 00:03:37.000 2020-01-02 03:31:58.000 217 99118 49667.5 4966750 217 99118 49667.5 4966750 -32352 32583 5103.02 510302 -128 123 -1.62 -162 -218 2 10208 99119 0.65465 297.65465 149.15465 14915.46546 0.65465 297.65466 149.15465 14915.46531 0.65465 297.65465 149.1546500000002 14915.46500 2020-01-01 2020-01-02 2020-01-01 00:03:38 2020-01-02 03:31:59 2020-01-01 00:03:38.000 2020-01-02 03:31:59.000 218 99119 49668.5 4966850 218 99119 49668.5 4966850 -32351 32584 5104.02 510402 -127 124 -0.62 -62 -219 2 10209 99120 0.65765 297.65765 149.15765 14915.76576 0.65765 297.65765 149.15765 14915.76562 0.65765 297.65765 149.15764999999985 14915.76500 2020-01-01 2020-01-02 2020-01-01 00:03:39 2020-01-02 03:32:00 2020-01-01 00:03:39.000 2020-01-02 03:32:00.000 219 99120 49669.5 4966950 219 99120 49669.5 4966950 -32350 32585 5105.02 510502 -126 125 0.38 38 -22 2 10012 99922 0.06606 300.06606 150.06606 15156.67267 0.06606 300.06607 150.06606 15156.67287 0.06606 300.06606 150.0660599999999 15156.67206 2020-01-01 2020-01-02 2020-01-01 00:00:22 2020-01-02 03:45:22 2020-01-01 00:00:22.000 2020-01-02 03:45:22.000 22 99922 49972 5047172 22 99922 49972 5047172 -32547 32388 4551.009900990099 459652 -128 127 -1.2277227722772277 -124 -220 2 10210 99121 0.66066 297.66066 149.16066 14916.06606 0.66066 297.66068 149.16066 14916.06619 0.66066 297.66066 149.16065999999975 14916.06600 2020-01-01 2020-01-02 2020-01-01 00:03:40 2020-01-02 03:32:01 2020-01-01 00:03:40.000 2020-01-02 03:32:01.000 220 99121 49670.5 4967050 220 99121 49670.5 4967050 -32349 32586 5106.02 510602 -125 126 1.38 138 -221 2 10211 99122 0.66366 297.66366 149.16366 14916.36636 0.66366 297.66367 149.16366 14916.36651 0.66366 297.66366 149.1636600000001 14916.36600 2020-01-01 2020-01-02 2020-01-01 00:03:41 2020-01-02 03:32:02 2020-01-01 00:03:41.000 2020-01-02 03:32:02.000 221 99122 49671.5 4967150 221 99122 49671.5 4967150 -32348 32587 5107.02 510702 -124 127 2.38 238 -222 2 10212 99123 0.66666 297.66666 149.16666 14916.66666 0.66666 297.66666 149.16666 14916.6667 0.66666 297.66666 149.1666600000001 14916.66600 2020-01-01 2020-01-02 2020-01-01 00:03:42 2020-01-02 03:32:03 2020-01-01 00:03:42.000 2020-01-02 03:32:03.000 222 99123 49672.5 4967250 222 99123 49672.5 4967250 -32347 32588 5108.02 510802 -128 127 0.82 82 -223 2 10213 99124 0.66966 297.66966 149.16966 14916.96696 0.66966 297.66968 149.16966 14916.96678 0.66966 297.66966 149.16965999999974 14916.96600 2020-01-01 2020-01-02 2020-01-01 00:03:43 2020-01-02 03:32:04 2020-01-01 00:03:43.000 2020-01-02 03:32:04.000 223 99124 49673.5 4967350 223 99124 49673.5 4967350 -32346 32589 5109.02 510902 -128 127 -0.74 -74 -224 2 10214 99125 0.67267 297.67267 149.17267 14917.26726 0.67267 297.67267 149.17267 14917.26709 0.67267 297.67267 149.17266999999995 14917.26700 2020-01-01 2020-01-02 2020-01-01 00:03:44 2020-01-02 03:32:05 2020-01-01 00:03:44.000 2020-01-02 03:32:05.000 224 99125 49674.5 4967450 224 99125 49674.5 4967450 -32345 32590 5110.02 511002 -128 124 -2.3 -230 -225 2 10215 99126 0.67567 297.67567 149.17567 14917.56756 0.67567 297.6757 149.17567 14917.56767 0.67567 297.67567 149.17567000000003 14917.56700 2020-01-01 2020-01-02 2020-01-01 00:03:45 2020-01-02 03:32:06 2020-01-01 00:03:45.000 2020-01-02 03:32:06.000 225 99126 49675.5 4967550 225 99126 49675.5 4967550 -32344 32591 5111.02 511102 -127 125 -1.3 -130 -226 2 10216 99127 0.67867 297.67867 149.17867 14917.86786 0.67867 297.67868 149.17868 14917.86802 0.67867 297.67867 149.17866999999995 14917.86700 2020-01-01 2020-01-02 2020-01-01 00:03:46 2020-01-02 03:32:07 2020-01-01 00:03:46.000 2020-01-02 03:32:07.000 226 99127 49676.5 4967650 226 99127 49676.5 4967650 -32343 32592 5112.02 511202 -126 126 -0.3 -30 -227 2 10217 99128 0.68168 297.68168 149.18168 14918.16816 0.68168 297.68167 149.18168 14918.16817 0.68168 297.68168 149.18167999999986 14918.16800 2020-01-01 2020-01-02 2020-01-01 00:03:47 2020-01-02 03:32:08 2020-01-01 00:03:47.000 2020-01-02 03:32:08.000 227 99128 49677.5 4967750 227 99128 49677.5 4967750 -32342 32593 5113.02 511302 -125 127 0.7 70 -228 2 10218 99129 0.68468 297.68468 149.18468 14918.46846 0.68468 297.6847 149.18468 14918.46825 0.68468 297.68468 149.18468000000013 14918.46800 2020-01-01 2020-01-02 2020-01-01 00:03:48 2020-01-02 03:32:09 2020-01-01 00:03:48.000 2020-01-02 03:32:09.000 228 99129 49678.5 4967850 228 99129 49678.5 4967850 -32341 32594 5114.02 511402 -128 127 -0.86 -86 -229 2 10219 99130 0.68768 297.68768 149.18768 14918.76876 0.68768 297.68768 149.18768 14918.76855 0.68768 297.68768 149.18767999999983 14918.76800 2020-01-01 2020-01-02 2020-01-01 00:03:49 2020-01-02 03:32:10 2020-01-01 00:03:49.000 2020-01-02 03:32:10.000 229 99130 49679.5 4967950 229 99130 49679.5 4967950 -32340 32595 5115.02 511502 -128 127 -2.42 -242 -23 2 10013 99923 0.06906 300.06906 150.06906 15156.97597 0.06906 300.06906 150.06907 15156.97617 0.06906 300.06906 150.06905999999987 15156.97506 2020-01-01 2020-01-02 2020-01-01 00:00:23 2020-01-02 03:45:23 2020-01-01 00:00:23.000 2020-01-02 03:45:23.000 23 99923 49973 5047273 23 99923 49973 5047273 -32546 32389 4552.009900990099 459753 -128 127 -2.762376237623762 -279 -230 2 10220 99131 0.69069 297.69069 149.19069 14919.06906 0.69069 297.6907 149.19069 14919.06914 0.69069 297.69069 149.19068999999996 14919.06900 2020-01-01 2020-01-02 2020-01-01 00:03:50 2020-01-02 03:32:11 2020-01-01 00:03:50.000 2020-01-02 03:32:11.000 230 99131 49680.5 4968050 230 99131 49680.5 4968050 -32339 32596 5116.02 511602 -128 123 -3.98 -398 -231 2 10221 99132 0.69369 297.69369 149.19369 14919.36936 0.69369 297.6937 149.19369 14919.36949 0.69369 297.69369 149.19369000000003 14919.36900 2020-01-01 2020-01-02 2020-01-01 00:03:51 2020-01-02 03:32:12 2020-01-01 00:03:51.000 2020-01-02 03:32:12.000 231 99132 49681.5 4968150 231 99132 49681.5 4968150 -32338 32597 5117.02 511702 -127 124 -2.98 -298 -232 2 10222 99133 0.69669 297.69669 149.19669 14919.66966 0.69669 297.6967 149.19669 14919.66964 0.69669 297.69669 149.1966900000001 14919.66900 2020-01-01 2020-01-02 2020-01-01 00:03:52 2020-01-02 03:32:13 2020-01-01 00:03:52.000 2020-01-02 03:32:13.000 232 99133 49682.5 4968250 232 99133 49682.5 4968250 -32337 32598 5118.02 511802 -126 125 -1.98 -198 -233 2 10223 99134 0.69969 297.69969 149.19969 14919.96996 0.69969 297.6997 149.1997 14919.97037 0.69969 297.69969 149.19968999999998 14919.96900 2020-01-01 2020-01-02 2020-01-01 00:03:53 2020-01-02 03:32:14 2020-01-01 00:03:53.000 2020-01-02 03:32:14.000 233 99134 49683.5 4968350 233 99134 49683.5 4968350 -32336 32599 5119.02 511902 -125 126 -0.98 -98 -234 2 10224 99135 0.7027 297.7027 149.2027 14920.27027 0.7027 297.7027 149.2027 14920.27003 0.70270 297.70270 149.20269999999988 14920.27000 2020-01-01 2020-01-02 2020-01-01 00:03:54 2020-01-02 03:32:15 2020-01-01 00:03:54.000 2020-01-02 03:32:15.000 234 99135 49684.5 4968450 234 99135 49684.5 4968450 -32335 32600 5120.02 512002 -124 127 0.02 2 -235 2 10225 99136 0.7057 297.7057 149.2057 14920.57057 0.7057 297.70572 149.2057 14920.57065 0.70570 297.70570 149.20570000000023 14920.57000 2020-01-01 2020-01-02 2020-01-01 00:03:55 2020-01-02 03:32:16 2020-01-01 00:03:55.000 2020-01-02 03:32:16.000 235 99136 49685.5 4968550 235 99136 49685.5 4968550 -32334 32601 5121.02 512102 -128 127 -1.54 -154 -236 2 10226 99137 0.7087 297.7087 149.2087 14920.87087 0.7087 297.7087 149.2087 14920.87095 0.70870 297.70870 149.2086999999999 14920.87000 2020-01-01 2020-01-02 2020-01-01 00:03:56 2020-01-02 03:32:17 2020-01-01 00:03:56.000 2020-01-02 03:32:17.000 236 99137 49686.5 4968650 236 99137 49686.5 4968650 -32333 32602 5122.02 512202 -128 123 -3.1 -310 -237 2 10227 99138 0.71171 297.71171 149.21171 14921.17117 0.71171 297.7117 149.21171 14921.17111 0.71171 297.71171 149.21170999999978 14921.17100 2020-01-01 2020-01-02 2020-01-01 00:03:57 2020-01-02 03:32:18 2020-01-01 00:03:57.000 2020-01-02 03:32:18.000 237 99138 49687.5 4968750 237 99138 49687.5 4968750 -32332 32603 5123.02 512302 -127 124 -2.1 -210 -238 2 10228 99139 0.71471 297.71471 149.21471 14921.47147 0.71471 297.71472 149.21471 14921.47184 0.71471 297.71471 149.21471000000014 14921.47100 2020-01-01 2020-01-02 2020-01-01 00:03:58 2020-01-02 03:32:19 2020-01-01 00:03:58.000 2020-01-02 03:32:19.000 238 99139 49688.5 4968850 238 99139 49688.5 4968850 -32331 32604 5124.02 512402 -126 125 -1.1 -110 -239 2 10229 99140 0.71771 297.71771 149.21771 14921.77177 0.71771 297.7177 149.21771 14921.7715 0.71771 297.71771 149.2177100000001 14921.77100 2020-01-01 2020-01-02 2020-01-01 00:03:59 2020-01-02 03:32:20 2020-01-01 00:03:59.000 2020-01-02 03:32:20.000 239 99140 49689.5 4968950 239 99140 49689.5 4968950 -32330 32605 5125.02 512502 -125 126 -0.1 -10 -24 2 10014 99924 0.07207 300.07207 150.07207 15157.27927 0.07207 300.07208 150.07207 15157.27928 0.07207 300.07207 150.0720700000001 15157.27907 2020-01-01 2020-01-02 2020-01-01 00:00:24 2020-01-02 03:45:24 2020-01-01 00:00:24.000 2020-01-02 03:45:24.000 24 99924 49974 5047374 24 99924 49974 5047374 -32545 32390 4553.009900990099 459854 -128 123 -4.297029702970297 -434 -240 2 10230 99141 0.72072 297.72072 149.22072 14922.07207 0.72072 297.72073 149.22072 14922.07211 0.72072 297.72072 149.22071999999991 14922.07200 2020-01-01 2020-01-02 2020-01-01 00:04:00 2020-01-02 03:32:21 2020-01-01 00:04:00.000 2020-01-02 03:32:21.000 240 99141 49690.5 4969050 240 99141 49690.5 4969050 -32329 32606 5126.02 512602 -124 127 0.9 90 +215 2 10205 99116 0.64564 297.64564 149.14564 14914.56456 0.64564 297.64566 149.14564 14914.56473 0.64564 297.64564 149.14564000000001 14914.56400 2020-01-01 2020-01-02 2020-01-01 00:03:35 2020-01-02 03:31:56 2020-01-01 00:03:35.000 2020-01-02 03:31:56.000 215 99116 49665.5 4966550 215 99116 49665.5 4966550 -32354 32581 5101.02 510102 -124 127 1.5 150 +216 2 10206 99117 0.64864 297.64864 149.14864 14914.86486 0.64864 297.64865 149.14865 14914.86504 0.64864 297.64864 149.14864 14914.86400 2020-01-01 2020-01-02 2020-01-01 00:03:36 2020-01-02 03:31:57 2020-01-01 00:03:36.000 2020-01-02 03:31:57.000 216 99117 49666.5 4966650 216 99117 49666.5 4966650 -32353 32582 5102.02 510202 -128 127 -0.06 -6 +217 2 10207 99118 0.65165 297.65165 149.15165 14915.16516 0.65165 297.65164 149.15165 14915.16523 0.65165 297.65165 149.15165000000002 14915.16500 2020-01-01 2020-01-02 2020-01-01 00:03:37 2020-01-02 03:31:58 2020-01-01 00:03:37.000 2020-01-02 03:31:58.000 217 99118 49667.5 4966750 217 99118 49667.5 4966750 -32352 32583 5103.02 510302 -128 123 -1.62 -162 +218 2 10208 99119 0.65465 297.65465 149.15465 14915.46546 0.65465 297.65466 149.15465 14915.46531 0.65465 297.65465 149.15465 14915.46500 2020-01-01 2020-01-02 2020-01-01 00:03:38 2020-01-02 03:31:59 2020-01-01 00:03:38.000 2020-01-02 03:31:59.000 218 99119 49668.5 4966850 218 99119 49668.5 4966850 -32351 32584 5104.02 510402 -127 124 -0.62 -62 +219 2 10209 99120 0.65765 297.65765 149.15765 14915.76576 0.65765 297.65765 149.15765 14915.76562 0.65765 297.65765 149.15765 14915.76500 2020-01-01 2020-01-02 2020-01-01 00:03:39 2020-01-02 03:32:00 2020-01-01 00:03:39.000 2020-01-02 03:32:00.000 219 99120 49669.5 4966950 219 99120 49669.5 4966950 -32350 32585 5105.02 510502 -126 125 0.38 38 +22 2 10012 99922 0.06606 300.06606 150.06606 15156.67267 0.06606 300.06607 150.06606 15156.67287 0.06606 300.06606 150.06606000000002 15156.67206 2020-01-01 2020-01-02 2020-01-01 00:00:22 2020-01-02 03:45:22 2020-01-01 00:00:22.000 2020-01-02 03:45:22.000 22 99922 49972 5047172 22 99922 49972 5047172 -32547 32388 4551.009900990099 459652 -128 127 -1.2277227722772277 -124 +220 2 10210 99121 0.66066 297.66066 149.16066 14916.06606 0.66066 297.66068 149.16066 14916.06619 0.66066 297.66066 149.16066 14916.06600 2020-01-01 2020-01-02 2020-01-01 00:03:40 2020-01-02 03:32:01 2020-01-01 00:03:40.000 2020-01-02 03:32:01.000 220 99121 49670.5 4967050 220 99121 49670.5 4967050 -32349 32586 5106.02 510602 -125 126 1.38 138 +221 2 10211 99122 0.66366 297.66366 149.16366 14916.36636 0.66366 297.66367 149.16366 14916.36651 0.66366 297.66366 149.16366 14916.36600 2020-01-01 2020-01-02 2020-01-01 00:03:41 2020-01-02 03:32:02 2020-01-01 00:03:41.000 2020-01-02 03:32:02.000 221 99122 49671.5 4967150 221 99122 49671.5 4967150 -32348 32587 5107.02 510702 -124 127 2.38 238 +222 2 10212 99123 0.66666 297.66666 149.16666 14916.66666 0.66666 297.66666 149.16666 14916.6667 0.66666 297.66666 149.16665999999998 14916.66600 2020-01-01 2020-01-02 2020-01-01 00:03:42 2020-01-02 03:32:03 2020-01-01 00:03:42.000 2020-01-02 03:32:03.000 222 99123 49672.5 4967250 222 99123 49672.5 4967250 -32347 32588 5108.02 510802 -128 127 0.82 82 +223 2 10213 99124 0.66966 297.66966 149.16966 14916.96696 0.66966 297.66968 149.16966 14916.96678 0.66966 297.66966 149.16966 14916.96600 2020-01-01 2020-01-02 2020-01-01 00:03:43 2020-01-02 03:32:04 2020-01-01 00:03:43.000 2020-01-02 03:32:04.000 223 99124 49673.5 4967350 223 99124 49673.5 4967350 -32346 32589 5109.02 510902 -128 127 -0.74 -74 +224 2 10214 99125 0.67267 297.67267 149.17267 14917.26726 0.67267 297.67267 149.17267 14917.26709 0.67267 297.67267 149.17267 14917.26700 2020-01-01 2020-01-02 2020-01-01 00:03:44 2020-01-02 03:32:05 2020-01-01 00:03:44.000 2020-01-02 03:32:05.000 224 99125 49674.5 4967450 224 99125 49674.5 4967450 -32345 32590 5110.02 511002 -128 124 -2.3 -230 +225 2 10215 99126 0.67567 297.67567 149.17567 14917.56756 0.67567 297.6757 149.17567 14917.56767 0.67567 297.67567 149.17567 14917.56700 2020-01-01 2020-01-02 2020-01-01 00:03:45 2020-01-02 03:32:06 2020-01-01 00:03:45.000 2020-01-02 03:32:06.000 225 99126 49675.5 4967550 225 99126 49675.5 4967550 -32344 32591 5111.02 511102 -127 125 -1.3 -130 +226 2 10216 99127 0.67867 297.67867 149.17867 14917.86786 0.67867 297.67868 149.17868 14917.86802 0.67867 297.67867 149.17867 14917.86700 2020-01-01 2020-01-02 2020-01-01 00:03:46 2020-01-02 03:32:07 2020-01-01 00:03:46.000 2020-01-02 03:32:07.000 226 99127 49676.5 4967650 226 99127 49676.5 4967650 -32343 32592 5112.02 511202 -126 126 -0.3 -30 +227 2 10217 99128 0.68168 297.68168 149.18168 14918.16816 0.68168 297.68167 149.18168 14918.16817 0.68168 297.68168 149.18168 14918.16800 2020-01-01 2020-01-02 2020-01-01 00:03:47 2020-01-02 03:32:08 2020-01-01 00:03:47.000 2020-01-02 03:32:08.000 227 99128 49677.5 4967750 227 99128 49677.5 4967750 -32342 32593 5113.02 511302 -125 127 0.7 70 +228 2 10218 99129 0.68468 297.68468 149.18468 14918.46846 0.68468 297.6847 149.18468 14918.46825 0.68468 297.68468 149.18468000000001 14918.46800 2020-01-01 2020-01-02 2020-01-01 00:03:48 2020-01-02 03:32:09 2020-01-01 00:03:48.000 2020-01-02 03:32:09.000 228 99129 49678.5 4967850 228 99129 49678.5 4967850 -32341 32594 5114.02 511402 -128 127 -0.86 -86 +229 2 10219 99130 0.68768 297.68768 149.18768 14918.76876 0.68768 297.68768 149.18768 14918.76855 0.68768 297.68768 149.18768 14918.76800 2020-01-01 2020-01-02 2020-01-01 00:03:49 2020-01-02 03:32:10 2020-01-01 00:03:49.000 2020-01-02 03:32:10.000 229 99130 49679.5 4967950 229 99130 49679.5 4967950 -32340 32595 5115.02 511502 -128 127 -2.42 -242 +23 2 10013 99923 0.06906 300.06906 150.06906 15156.97597 0.06906 300.06906 150.06907 15156.97617 0.06906 300.06906 150.06906 15156.97506 2020-01-01 2020-01-02 2020-01-01 00:00:23 2020-01-02 03:45:23 2020-01-01 00:00:23.000 2020-01-02 03:45:23.000 23 99923 49973 5047273 23 99923 49973 5047273 -32546 32389 4552.009900990099 459753 -128 127 -2.762376237623762 -279 +230 2 10220 99131 0.69069 297.69069 149.19069 14919.06906 0.69069 297.6907 149.19069 14919.06914 0.69069 297.69069 149.19069 14919.06900 2020-01-01 2020-01-02 2020-01-01 00:03:50 2020-01-02 03:32:11 2020-01-01 00:03:50.000 2020-01-02 03:32:11.000 230 99131 49680.5 4968050 230 99131 49680.5 4968050 -32339 32596 5116.02 511602 -128 123 -3.98 -398 +231 2 10221 99132 0.69369 297.69369 149.19369 14919.36936 0.69369 297.6937 149.19369 14919.36949 0.69369 297.69369 149.19369 14919.36900 2020-01-01 2020-01-02 2020-01-01 00:03:51 2020-01-02 03:32:12 2020-01-01 00:03:51.000 2020-01-02 03:32:12.000 231 99132 49681.5 4968150 231 99132 49681.5 4968150 -32338 32597 5117.02 511702 -127 124 -2.98 -298 +232 2 10222 99133 0.69669 297.69669 149.19669 14919.66966 0.69669 297.6967 149.19669 14919.66964 0.69669 297.69669 149.19669 14919.66900 2020-01-01 2020-01-02 2020-01-01 00:03:52 2020-01-02 03:32:13 2020-01-01 00:03:52.000 2020-01-02 03:32:13.000 232 99133 49682.5 4968250 232 99133 49682.5 4968250 -32337 32598 5118.02 511802 -126 125 -1.98 -198 +233 2 10223 99134 0.69969 297.69969 149.19969 14919.96996 0.69969 297.6997 149.1997 14919.97037 0.69969 297.69969 149.19969 14919.96900 2020-01-01 2020-01-02 2020-01-01 00:03:53 2020-01-02 03:32:14 2020-01-01 00:03:53.000 2020-01-02 03:32:14.000 233 99134 49683.5 4968350 233 99134 49683.5 4968350 -32336 32599 5119.02 511902 -125 126 -0.98 -98 +234 2 10224 99135 0.7027 297.7027 149.2027 14920.27027 0.7027 297.7027 149.2027 14920.27003 0.70270 297.70270 149.2027 14920.27000 2020-01-01 2020-01-02 2020-01-01 00:03:54 2020-01-02 03:32:15 2020-01-01 00:03:54.000 2020-01-02 03:32:15.000 234 99135 49684.5 4968450 234 99135 49684.5 4968450 -32335 32600 5120.02 512002 -124 127 0.02 2 +235 2 10225 99136 0.7057 297.7057 149.2057 14920.57057 0.7057 297.70572 149.2057 14920.57065 0.70570 297.70570 149.2057 14920.57000 2020-01-01 2020-01-02 2020-01-01 00:03:55 2020-01-02 03:32:16 2020-01-01 00:03:55.000 2020-01-02 03:32:16.000 235 99136 49685.5 4968550 235 99136 49685.5 4968550 -32334 32601 5121.02 512102 -128 127 -1.54 -154 +236 2 10226 99137 0.7087 297.7087 149.2087 14920.87087 0.7087 297.7087 149.2087 14920.87095 0.70870 297.70870 149.20870000000002 14920.87000 2020-01-01 2020-01-02 2020-01-01 00:03:56 2020-01-02 03:32:17 2020-01-01 00:03:56.000 2020-01-02 03:32:17.000 236 99137 49686.5 4968650 236 99137 49686.5 4968650 -32333 32602 5122.02 512202 -128 123 -3.1 -310 +237 2 10227 99138 0.71171 297.71171 149.21171 14921.17117 0.71171 297.7117 149.21171 14921.17111 0.71171 297.71171 149.21171 14921.17100 2020-01-01 2020-01-02 2020-01-01 00:03:57 2020-01-02 03:32:18 2020-01-01 00:03:57.000 2020-01-02 03:32:18.000 237 99138 49687.5 4968750 237 99138 49687.5 4968750 -32332 32603 5123.02 512302 -127 124 -2.1 -210 +238 2 10228 99139 0.71471 297.71471 149.21471 14921.47147 0.71471 297.71472 149.21471 14921.47184 0.71471 297.71471 149.21471 14921.47100 2020-01-01 2020-01-02 2020-01-01 00:03:58 2020-01-02 03:32:19 2020-01-01 00:03:58.000 2020-01-02 03:32:19.000 238 99139 49688.5 4968850 238 99139 49688.5 4968850 -32331 32604 5124.02 512402 -126 125 -1.1 -110 +239 2 10229 99140 0.71771 297.71771 149.21771 14921.77177 0.71771 297.7177 149.21771 14921.7715 0.71771 297.71771 149.21771 14921.77100 2020-01-01 2020-01-02 2020-01-01 00:03:59 2020-01-02 03:32:20 2020-01-01 00:03:59.000 2020-01-02 03:32:20.000 239 99140 49689.5 4968950 239 99140 49689.5 4968950 -32330 32605 5125.02 512502 -125 126 -0.1 -10 +24 2 10014 99924 0.07207 300.07207 150.07207 15157.27927 0.07207 300.07208 150.07207 15157.27928 0.07207 300.07207 150.07207 15157.27907 2020-01-01 2020-01-02 2020-01-01 00:00:24 2020-01-02 03:45:24 2020-01-01 00:00:24.000 2020-01-02 03:45:24.000 24 99924 49974 5047374 24 99924 49974 5047374 -32545 32390 4553.009900990099 459854 -128 123 -4.297029702970297 -434 +240 2 10230 99141 0.72072 297.72072 149.22072 14922.07207 0.72072 297.72073 149.22072 14922.07211 0.72072 297.72072 149.22072 14922.07200 2020-01-01 2020-01-02 2020-01-01 00:04:00 2020-01-02 03:32:21 2020-01-01 00:04:00.000 2020-01-02 03:32:21.000 240 99141 49690.5 4969050 240 99141 49690.5 4969050 -32329 32606 5126.02 512602 -124 127 0.9 90 241 2 10231 99142 0.72372 297.72372 149.22372 14922.37237 0.72372 297.72372 149.22372 14922.37243 0.72372 297.72372 149.22372 14922.37200 2020-01-01 2020-01-02 2020-01-01 00:04:01 2020-01-02 03:32:22 2020-01-01 00:04:01.000 2020-01-02 03:32:22.000 241 99142 49691.5 4969150 241 99142 49691.5 4969150 -32328 32607 5127.02 512702 -128 127 -0.66 -66 -242 2 10232 99143 0.72672 297.72672 149.22672 14922.67267 0.72672 297.7267 149.22672 14922.67273 0.72672 297.72672 149.22672000000006 14922.67200 2020-01-01 2020-01-02 2020-01-01 00:04:02 2020-01-02 03:32:23 2020-01-01 00:04:02.000 2020-01-02 03:32:23.000 242 99143 49692.5 4969250 242 99143 49692.5 4969250 -32327 32608 5128.02 512802 -128 123 -2.22 -222 -243 2 10233 99144 0.72972 297.72972 149.22972 14922.97297 0.72972 297.72974 149.22973 14922.97332 0.72972 297.72972 149.2297199999999 14922.97200 2020-01-01 2020-01-02 2020-01-01 00:04:03 2020-01-02 03:32:24 2020-01-01 00:04:03.000 2020-01-02 03:32:24.000 243 99144 49693.5 4969350 243 99144 49693.5 4969350 -32326 32609 5129.02 512902 -127 124 -1.22 -122 -244 2 10234 99145 0.73273 297.73273 149.23273 14923.27327 0.73273 297.73273 149.23272 14923.27297 0.73273 297.73273 149.23272999999986 14923.27300 2020-01-01 2020-01-02 2020-01-01 00:04:04 2020-01-02 03:32:25 2020-01-01 00:04:04.000 2020-01-02 03:32:25.000 244 99145 49694.5 4969450 244 99145 49694.5 4969450 -32325 32610 5130.02 513002 -126 125 -0.22 -22 -245 2 10235 99146 0.73573 297.73573 149.23573 14923.57357 0.73573 297.73575 149.23573 14923.57358 0.73573 297.73573 149.23573000000016 14923.57300 2020-01-01 2020-01-02 2020-01-01 00:04:05 2020-01-02 03:32:26 2020-01-01 00:04:05.000 2020-01-02 03:32:26.000 245 99146 49695.5 4969550 245 99146 49695.5 4969550 -32324 32611 5131.02 513102 -125 126 0.78 78 -246 2 10236 99147 0.73873 297.73873 149.23873 14923.87387 0.73873 297.73874 149.23873 14923.8739 0.73873 297.73873 149.2387299999998 14923.87300 2020-01-01 2020-01-02 2020-01-01 00:04:06 2020-01-02 03:32:27 2020-01-01 00:04:06.000 2020-01-02 03:32:27.000 246 99147 49696.5 4969650 246 99147 49696.5 4969650 -32323 32612 5132.02 513202 -124 127 1.78 178 -247 2 10237 99148 0.74174 297.74174 149.24174 14924.17417 0.74174 297.74173 149.24174 14924.1742 0.74174 297.74174 149.24174 14924.17400 2020-01-01 2020-01-02 2020-01-01 00:04:07 2020-01-02 03:32:28 2020-01-01 00:04:07.000 2020-01-02 03:32:28.000 247 99148 49697.5 4969750 247 99148 49697.5 4969750 -32322 32613 5133.02 513302 -128 127 0.22 22 -248 2 10238 99149 0.74474 297.74474 149.24474 14924.47447 0.74474 297.74475 149.24474 14924.47478 0.74474 297.74474 149.24474000000006 14924.47400 2020-01-01 2020-01-02 2020-01-01 00:04:08 2020-01-02 03:32:29 2020-01-01 00:04:08.000 2020-01-02 03:32:29.000 248 99149 49698.5 4969850 248 99149 49698.5 4969850 -32321 32614 5134.02 513402 -128 127 -1.34 -134 -249 2 10239 99150 0.74774 297.74774 149.24774 14924.77477 0.74774 297.74774 149.24774 14924.77447 0.74774 297.74774 149.24774000000005 14924.77400 2020-01-01 2020-01-02 2020-01-01 00:04:09 2020-01-02 03:32:30 2020-01-01 00:04:09.000 2020-01-02 03:32:30.000 249 99150 49699.5 4969950 249 99150 49699.5 4969950 -32320 32615 5135.02 513502 -128 124 -2.9 -290 -25 2 10015 99925 0.07507 300.07507 150.07507 15157.58258 0.07507 300.07507 150.07507 15157.58241 0.07507 300.07507 150.07507000000012 15157.58207 2020-01-01 2020-01-02 2020-01-01 00:00:25 2020-01-02 03:45:25 2020-01-01 00:00:25.000 2020-01-02 03:45:25.000 25 99925 49975 5047475 25 99925 49975 5047475 -32544 32391 4554.009900990099 459955 -127 124 -3.297029702970297 -333 -250 2 10240 99151 0.75075 297.75075 149.25075 14925.07507 0.75075 297.75076 149.25075 14925.07506 0.75075 297.75075 149.25074999999987 14925.07500 2020-01-01 2020-01-02 2020-01-01 00:04:10 2020-01-02 03:32:31 2020-01-01 00:04:10.000 2020-01-02 03:32:31.000 250 99151 49700.5 4970050 250 99151 49700.5 4970050 -32319 32616 5136.02 513602 -127 125 -1.9 -190 -251 2 10241 99152 0.75375 297.75375 149.25375 14925.37537 0.75375 297.75375 149.25375 14925.37536 0.75375 297.75375 149.2537499999999 14925.37500 2020-01-01 2020-01-02 2020-01-01 00:04:11 2020-01-02 03:32:32 2020-01-01 00:04:11.000 2020-01-02 03:32:32.000 251 99152 49701.5 4970150 251 99152 49701.5 4970150 -32318 32617 5137.02 513702 -126 126 -0.9 -90 -252 2 10242 99153 0.75675 297.75675 149.25675 14925.67567 0.75675 297.75674 149.25675 14925.67567 0.75675 297.75675 149.2567500000001 14925.67500 2020-01-01 2020-01-02 2020-01-01 00:04:12 2020-01-02 03:32:33 2020-01-01 00:04:12.000 2020-01-02 03:32:33.000 252 99153 49702.5 4970250 252 99153 49702.5 4970250 -32317 32618 5138.02 513802 -125 127 0.1 10 -253 2 10243 99154 0.75975 297.75975 149.25975 14925.97597 0.75975 297.75977 149.25976 14925.97625 0.75975 297.75975 149.25974999999988 14925.97500 2020-01-01 2020-01-02 2020-01-01 00:04:13 2020-01-02 03:32:34 2020-01-01 00:04:13.000 2020-01-02 03:32:34.000 253 99154 49703.5 4970350 253 99154 49703.5 4970350 -32316 32619 5139.02 513902 -128 127 -1.46 -146 -254 2 10244 99155 0.76276 297.76276 149.26276 14926.27627 0.76276 297.76276 149.26275 14926.27594 0.76276 297.76276 149.2627599999998 14926.27600 2020-01-01 2020-01-02 2020-01-01 00:04:14 2020-01-02 03:32:35 2020-01-01 00:04:14.000 2020-01-02 03:32:35.000 254 99155 49704.5 4970450 254 99155 49704.5 4970450 -32315 32620 5140.02 514002 -128 127 -3.02 -302 -255 2 10245 99156 0.76576 297.76576 149.26576 14926.57657 0.76576 297.76578 149.26576 14926.57652 0.76576 297.76576 149.26576000000017 14926.57600 2020-01-01 2020-01-02 2020-01-01 00:04:15 2020-01-02 03:32:36 2020-01-01 00:04:15.000 2020-01-02 03:32:36.000 255 99156 49705.5 4970550 255 99156 49705.5 4970550 -32314 32621 5141.02 514102 -128 123 -4.58 -458 -256 2 10246 99157 0.76876 297.76876 149.26876 14926.87687 0.76876 297.76877 149.26876 14926.87683 0.76876 297.76876 149.26876000000016 14926.87600 2020-01-01 2020-01-02 2020-01-01 00:04:16 2020-01-02 03:32:37 2020-01-01 00:04:16.000 2020-01-02 03:32:37.000 256 99157 49706.5 4970650 256 99157 49706.5 4970650 -32313 32622 5142.02 514202 -127 124 -3.58 -358 -257 2 10247 99158 0.77177 297.77177 149.27177 14927.17717 0.77177 297.77176 149.27177 14927.17714 0.77177 297.77177 149.27176999999992 14927.17700 2020-01-01 2020-01-02 2020-01-01 00:04:17 2020-01-02 03:32:38 2020-01-01 00:04:17.000 2020-01-02 03:32:38.000 257 99158 49707.5 4970750 257 99158 49707.5 4970750 -32312 32623 5143.02 514302 -126 125 -2.58 -258 -258 2 10248 99159 0.77477 297.77477 149.27477 14927.47747 0.77477 297.77478 149.27477 14927.47776 0.77477 297.77477 149.27477 14927.47700 2020-01-01 2020-01-02 2020-01-01 00:04:18 2020-01-02 03:32:39 2020-01-01 00:04:18.000 2020-01-02 03:32:39.000 258 99159 49708.5 4970850 258 99159 49708.5 4970850 -32311 32624 5144.02 514402 -125 126 -1.58 -158 -259 2 10249 99160 0.77777 297.77777 149.27777 14927.77777 0.77777 297.77777 149.27777 14927.77742 0.77777 297.77777 149.27777000000006 14927.77700 2020-01-01 2020-01-02 2020-01-01 00:04:19 2020-01-02 03:32:40 2020-01-01 00:04:19.000 2020-01-02 03:32:40.000 259 99160 49709.5 4970950 259 99160 49709.5 4970950 -32310 32625 5145.02 514502 -124 127 -0.58 -58 -26 2 10016 99926 0.07807 300.07807 150.07807 15157.88588 0.07807 300.07806 150.07807 15157.88575 0.07807 300.07807 150.0780699999998 15157.88507 2020-01-01 2020-01-02 2020-01-01 00:00:26 2020-01-02 03:45:26 2020-01-01 00:00:26.000 2020-01-02 03:45:26.000 26 99926 49976 5047576 26 99926 49976 5047576 -32543 32392 4555.009900990099 460056 -126 125 -2.297029702970297 -232 -260 2 10250 99161 0.78078 297.78078 149.28078 14928.07807 0.78078 297.7808 149.28077 14928.07799 0.78078 297.78078 149.28077999999982 14928.07800 2020-01-01 2020-01-02 2020-01-01 00:04:20 2020-01-02 03:32:41 2020-01-01 00:04:20.000 2020-01-02 03:32:41.000 260 99161 49710.5 4971050 260 99161 49710.5 4971050 -32309 32626 5146.02 514602 -128 127 -2.14 -214 -261 2 10251 99162 0.78378 297.78378 149.28378 14928.37837 0.78378 297.78378 149.28378 14928.3783 0.78378 297.78378 149.28377999999987 14928.37800 2020-01-01 2020-01-02 2020-01-01 00:04:21 2020-01-02 03:32:42 2020-01-01 00:04:21.000 2020-01-02 03:32:42.000 261 99162 49711.5 4971150 261 99162 49711.5 4971150 -32308 32627 5147.02 514702 -128 123 -3.7 -370 -262 2 10252 99163 0.78678 297.78678 149.28678 14928.67867 0.78678 297.78677 149.28678 14928.67861 0.78678 297.78678 149.2867800000002 14928.67800 2020-01-01 2020-01-02 2020-01-01 00:04:22 2020-01-02 03:32:43 2020-01-01 00:04:22.000 2020-01-02 03:32:43.000 262 99163 49712.5 4971250 262 99163 49712.5 4971250 -32307 32628 5148.02 514802 -127 124 -2.7 -270 -263 2 10253 99164 0.78978 297.78978 149.28978 14928.97897 0.78978 297.7898 149.28979 14928.97923 0.78978 297.78978 149.2897799999999 14928.97800 2020-01-01 2020-01-02 2020-01-01 00:04:23 2020-01-02 03:32:44 2020-01-01 00:04:23.000 2020-01-02 03:32:44.000 263 99164 49713.5 4971350 263 99164 49713.5 4971350 -32306 32629 5149.02 514902 -126 125 -1.7 -170 +242 2 10232 99143 0.72672 297.72672 149.22672 14922.67267 0.72672 297.7267 149.22672 14922.67273 0.72672 297.72672 149.22672 14922.67200 2020-01-01 2020-01-02 2020-01-01 00:04:02 2020-01-02 03:32:23 2020-01-01 00:04:02.000 2020-01-02 03:32:23.000 242 99143 49692.5 4969250 242 99143 49692.5 4969250 -32327 32608 5128.02 512802 -128 123 -2.22 -222 +243 2 10233 99144 0.72972 297.72972 149.22972 14922.97297 0.72972 297.72974 149.22973 14922.97332 0.72972 297.72972 149.22972 14922.97200 2020-01-01 2020-01-02 2020-01-01 00:04:03 2020-01-02 03:32:24 2020-01-01 00:04:03.000 2020-01-02 03:32:24.000 243 99144 49693.5 4969350 243 99144 49693.5 4969350 -32326 32609 5129.02 512902 -127 124 -1.22 -122 +244 2 10234 99145 0.73273 297.73273 149.23273 14923.27327 0.73273 297.73273 149.23272 14923.27297 0.73273 297.73273 149.23273 14923.27300 2020-01-01 2020-01-02 2020-01-01 00:04:04 2020-01-02 03:32:25 2020-01-01 00:04:04.000 2020-01-02 03:32:25.000 244 99145 49694.5 4969450 244 99145 49694.5 4969450 -32325 32610 5130.02 513002 -126 125 -0.22 -22 +245 2 10235 99146 0.73573 297.73573 149.23573 14923.57357 0.73573 297.73575 149.23573 14923.57358 0.73573 297.73573 149.23573 14923.57300 2020-01-01 2020-01-02 2020-01-01 00:04:05 2020-01-02 03:32:26 2020-01-01 00:04:05.000 2020-01-02 03:32:26.000 245 99146 49695.5 4969550 245 99146 49695.5 4969550 -32324 32611 5131.02 513102 -125 126 0.78 78 +246 2 10236 99147 0.73873 297.73873 149.23873 14923.87387 0.73873 297.73874 149.23873 14923.8739 0.73873 297.73873 149.23873 14923.87300 2020-01-01 2020-01-02 2020-01-01 00:04:06 2020-01-02 03:32:27 2020-01-01 00:04:06.000 2020-01-02 03:32:27.000 246 99147 49696.5 4969650 246 99147 49696.5 4969650 -32323 32612 5132.02 513202 -124 127 1.78 178 +247 2 10237 99148 0.74174 297.74174 149.24174 14924.17417 0.74174 297.74173 149.24174 14924.1742 0.74174 297.74174 149.24174000000002 14924.17400 2020-01-01 2020-01-02 2020-01-01 00:04:07 2020-01-02 03:32:28 2020-01-01 00:04:07.000 2020-01-02 03:32:28.000 247 99148 49697.5 4969750 247 99148 49697.5 4969750 -32322 32613 5133.02 513302 -128 127 0.22 22 +248 2 10238 99149 0.74474 297.74474 149.24474 14924.47447 0.74474 297.74475 149.24474 14924.47478 0.74474 297.74474 149.24474 14924.47400 2020-01-01 2020-01-02 2020-01-01 00:04:08 2020-01-02 03:32:29 2020-01-01 00:04:08.000 2020-01-02 03:32:29.000 248 99149 49698.5 4969850 248 99149 49698.5 4969850 -32321 32614 5134.02 513402 -128 127 -1.34 -134 +249 2 10239 99150 0.74774 297.74774 149.24774 14924.77477 0.74774 297.74774 149.24774 14924.77447 0.74774 297.74774 149.24774 14924.77400 2020-01-01 2020-01-02 2020-01-01 00:04:09 2020-01-02 03:32:30 2020-01-01 00:04:09.000 2020-01-02 03:32:30.000 249 99150 49699.5 4969950 249 99150 49699.5 4969950 -32320 32615 5135.02 513502 -128 124 -2.9 -290 +25 2 10015 99925 0.07507 300.07507 150.07507 15157.58258 0.07507 300.07507 150.07507 15157.58241 0.07507 300.07507 150.07507 15157.58207 2020-01-01 2020-01-02 2020-01-01 00:00:25 2020-01-02 03:45:25 2020-01-01 00:00:25.000 2020-01-02 03:45:25.000 25 99925 49975 5047475 25 99925 49975 5047475 -32544 32391 4554.009900990099 459955 -127 124 -3.297029702970297 -333 +250 2 10240 99151 0.75075 297.75075 149.25075 14925.07507 0.75075 297.75076 149.25075 14925.07506 0.75075 297.75075 149.25075 14925.07500 2020-01-01 2020-01-02 2020-01-01 00:04:10 2020-01-02 03:32:31 2020-01-01 00:04:10.000 2020-01-02 03:32:31.000 250 99151 49700.5 4970050 250 99151 49700.5 4970050 -32319 32616 5136.02 513602 -127 125 -1.9 -190 +251 2 10241 99152 0.75375 297.75375 149.25375 14925.37537 0.75375 297.75375 149.25375 14925.37536 0.75375 297.75375 149.25375 14925.37500 2020-01-01 2020-01-02 2020-01-01 00:04:11 2020-01-02 03:32:32 2020-01-01 00:04:11.000 2020-01-02 03:32:32.000 251 99152 49701.5 4970150 251 99152 49701.5 4970150 -32318 32617 5137.02 513702 -126 126 -0.9 -90 +252 2 10242 99153 0.75675 297.75675 149.25675 14925.67567 0.75675 297.75674 149.25675 14925.67567 0.75675 297.75675 149.25674999999998 14925.67500 2020-01-01 2020-01-02 2020-01-01 00:04:12 2020-01-02 03:32:33 2020-01-01 00:04:12.000 2020-01-02 03:32:33.000 252 99153 49702.5 4970250 252 99153 49702.5 4970250 -32317 32618 5138.02 513802 -125 127 0.1 10 +253 2 10243 99154 0.75975 297.75975 149.25975 14925.97597 0.75975 297.75977 149.25976 14925.97625 0.75975 297.75975 149.25975 14925.97500 2020-01-01 2020-01-02 2020-01-01 00:04:13 2020-01-02 03:32:34 2020-01-01 00:04:13.000 2020-01-02 03:32:34.000 253 99154 49703.5 4970350 253 99154 49703.5 4970350 -32316 32619 5139.02 513902 -128 127 -1.46 -146 +254 2 10244 99155 0.76276 297.76276 149.26276 14926.27627 0.76276 297.76276 149.26275 14926.27594 0.76276 297.76276 149.26276 14926.27600 2020-01-01 2020-01-02 2020-01-01 00:04:14 2020-01-02 03:32:35 2020-01-01 00:04:14.000 2020-01-02 03:32:35.000 254 99155 49704.5 4970450 254 99155 49704.5 4970450 -32315 32620 5140.02 514002 -128 127 -3.02 -302 +255 2 10245 99156 0.76576 297.76576 149.26576 14926.57657 0.76576 297.76578 149.26576 14926.57652 0.76576 297.76576 149.26576 14926.57600 2020-01-01 2020-01-02 2020-01-01 00:04:15 2020-01-02 03:32:36 2020-01-01 00:04:15.000 2020-01-02 03:32:36.000 255 99156 49705.5 4970550 255 99156 49705.5 4970550 -32314 32621 5141.02 514102 -128 123 -4.58 -458 +256 2 10246 99157 0.76876 297.76876 149.26876 14926.87687 0.76876 297.76877 149.26876 14926.87683 0.76876 297.76876 149.26876000000001 14926.87600 2020-01-01 2020-01-02 2020-01-01 00:04:16 2020-01-02 03:32:37 2020-01-01 00:04:16.000 2020-01-02 03:32:37.000 256 99157 49706.5 4970650 256 99157 49706.5 4970650 -32313 32622 5142.02 514202 -127 124 -3.58 -358 +257 2 10247 99158 0.77177 297.77177 149.27177 14927.17717 0.77177 297.77176 149.27177 14927.17714 0.77177 297.77177 149.27177 14927.17700 2020-01-01 2020-01-02 2020-01-01 00:04:17 2020-01-02 03:32:38 2020-01-01 00:04:17.000 2020-01-02 03:32:38.000 257 99158 49707.5 4970750 257 99158 49707.5 4970750 -32312 32623 5143.02 514302 -126 125 -2.58 -258 +258 2 10248 99159 0.77477 297.77477 149.27477 14927.47747 0.77477 297.77478 149.27477 14927.47776 0.77477 297.77477 149.27477000000002 14927.47700 2020-01-01 2020-01-02 2020-01-01 00:04:18 2020-01-02 03:32:39 2020-01-01 00:04:18.000 2020-01-02 03:32:39.000 258 99159 49708.5 4970850 258 99159 49708.5 4970850 -32311 32624 5144.02 514402 -125 126 -1.58 -158 +259 2 10249 99160 0.77777 297.77777 149.27777 14927.77777 0.77777 297.77777 149.27777 14927.77742 0.77777 297.77777 149.27777 14927.77700 2020-01-01 2020-01-02 2020-01-01 00:04:19 2020-01-02 03:32:40 2020-01-01 00:04:19.000 2020-01-02 03:32:40.000 259 99160 49709.5 4970950 259 99160 49709.5 4970950 -32310 32625 5145.02 514502 -124 127 -0.58 -58 +26 2 10016 99926 0.07807 300.07807 150.07807 15157.88588 0.07807 300.07806 150.07807 15157.88575 0.07807 300.07807 150.07807 15157.88507 2020-01-01 2020-01-02 2020-01-01 00:00:26 2020-01-02 03:45:26 2020-01-01 00:00:26.000 2020-01-02 03:45:26.000 26 99926 49976 5047576 26 99926 49976 5047576 -32543 32392 4555.009900990099 460056 -126 125 -2.297029702970297 -232 +260 2 10250 99161 0.78078 297.78078 149.28078 14928.07807 0.78078 297.7808 149.28077 14928.07799 0.78078 297.78078 149.28078 14928.07800 2020-01-01 2020-01-02 2020-01-01 00:04:20 2020-01-02 03:32:41 2020-01-01 00:04:20.000 2020-01-02 03:32:41.000 260 99161 49710.5 4971050 260 99161 49710.5 4971050 -32309 32626 5146.02 514602 -128 127 -2.14 -214 +261 2 10251 99162 0.78378 297.78378 149.28378 14928.37837 0.78378 297.78378 149.28378 14928.3783 0.78378 297.78378 149.28378 14928.37800 2020-01-01 2020-01-02 2020-01-01 00:04:21 2020-01-02 03:32:42 2020-01-01 00:04:21.000 2020-01-02 03:32:42.000 261 99162 49711.5 4971150 261 99162 49711.5 4971150 -32308 32627 5147.02 514702 -128 123 -3.7 -370 +262 2 10252 99163 0.78678 297.78678 149.28678 14928.67867 0.78678 297.78677 149.28678 14928.67861 0.78678 297.78678 149.28678 14928.67800 2020-01-01 2020-01-02 2020-01-01 00:04:22 2020-01-02 03:32:43 2020-01-01 00:04:22.000 2020-01-02 03:32:43.000 262 99163 49712.5 4971250 262 99163 49712.5 4971250 -32307 32628 5148.02 514802 -127 124 -2.7 -270 +263 2 10253 99164 0.78978 297.78978 149.28978 14928.97897 0.78978 297.7898 149.28979 14928.97923 0.78978 297.78978 149.28977999999998 14928.97800 2020-01-01 2020-01-02 2020-01-01 00:04:23 2020-01-02 03:32:44 2020-01-01 00:04:23.000 2020-01-02 03:32:44.000 263 99164 49713.5 4971350 263 99164 49713.5 4971350 -32306 32629 5149.02 514902 -126 125 -1.7 -170 264 2 10254 99165 0.79279 297.79279 149.29279 14929.27927 0.79279 297.7928 149.29278 14929.27888 0.79279 297.79279 149.29279 14929.27900 2020-01-01 2020-01-02 2020-01-01 00:04:24 2020-01-02 03:32:45 2020-01-01 00:04:24.000 2020-01-02 03:32:45.000 264 99165 49714.5 4971450 264 99165 49714.5 4971450 -32305 32630 5150.02 515002 -125 126 -0.7 -70 -265 2 10255 99166 0.79579 297.79579 149.29579 14929.57957 0.79579 297.7958 149.29579 14929.57962 0.79579 297.79579 149.2957900000001 14929.57900 2020-01-01 2020-01-02 2020-01-01 00:04:25 2020-01-02 03:32:46 2020-01-01 00:04:25.000 2020-01-02 03:32:46.000 265 99166 49715.5 4971550 265 99166 49715.5 4971550 -32304 32631 5151.02 515102 -124 127 0.3 30 -266 2 10256 99167 0.79879 297.79879 149.29879 14929.87987 0.79879 297.7988 149.29879 14929.87977 0.79879 297.79879 149.2987900000001 14929.87900 2020-01-01 2020-01-02 2020-01-01 00:04:26 2020-01-02 03:32:47 2020-01-01 00:04:26.000 2020-01-02 03:32:47.000 266 99167 49716.5 4971650 266 99167 49716.5 4971650 -32303 32632 5152.02 515202 -128 127 -1.26 -126 -267 2 10257 99168 0.8018 297.8018 149.3018 14930.18018 0.8018 297.8018 149.3018 14930.18012 0.80180 297.80180 149.3017999999999 14930.18000 2020-01-01 2020-01-02 2020-01-01 00:04:27 2020-01-02 03:32:48 2020-01-01 00:04:27.000 2020-01-02 03:32:48.000 267 99168 49717.5 4971750 267 99168 49717.5 4971750 -32302 32633 5153.02 515302 -128 123 -2.82 -282 -268 2 10258 99169 0.8048 297.8048 149.3048 14930.48048 0.8048 297.8048 149.3048 14930.4807 0.80480 297.80480 149.30479999999991 14930.48000 2020-01-01 2020-01-02 2020-01-01 00:04:28 2020-01-02 03:32:49 2020-01-01 00:04:28.000 2020-01-02 03:32:49.000 268 99169 49718.5 4971850 268 99169 49718.5 4971850 -32301 32634 5154.02 515402 -127 124 -1.82 -182 -269 2 10259 99170 0.8078 297.8078 149.3078 14930.78078 0.8078 297.8078 149.3078 14930.78035 0.80780 297.80780 149.3078 14930.78000 2020-01-01 2020-01-02 2020-01-01 00:04:29 2020-01-02 03:32:50 2020-01-01 00:04:29.000 2020-01-02 03:32:50.000 269 99170 49719.5 4971950 269 99170 49719.5 4971950 -32300 32635 5155.02 515502 -126 125 -0.82 -82 -27 2 10017 99927 0.08108 300.08108 150.08108 15158.18918 0.08108 300.0811 150.08108 15158.18936 0.08108 300.08108 150.08107999999996 15158.18908 2020-01-01 2020-01-02 2020-01-01 00:00:27 2020-01-02 03:45:27 2020-01-01 00:00:27.000 2020-01-02 03:45:27.000 27 99927 49977 5047677 27 99927 49977 5047677 -32542 32393 4556.009900990099 460157 -125 126 -1.297029702970297 -131 -270 2 10260 99171 0.81081 297.81081 149.31081 14931.08108 0.81081 297.81082 149.31081 14931.08109 0.81081 297.81081 149.31081000000017 14931.08100 2020-01-01 2020-01-02 2020-01-01 00:04:30 2020-01-02 03:32:51 2020-01-01 00:04:30.000 2020-01-02 03:32:51.000 270 99171 49720.5 4972050 270 99171 49720.5 4972050 -32299 32636 5156.02 515602 -125 126 0.18 18 -271 2 10261 99172 0.81381 297.81381 149.31381 14931.38138 0.81381 297.8138 149.31381 14931.38124 0.81381 297.81381 149.31380999999985 14931.38100 2020-01-01 2020-01-02 2020-01-01 00:04:31 2020-01-02 03:32:52 2020-01-01 00:04:31.000 2020-01-02 03:32:52.000 271 99172 49721.5 4972150 271 99172 49721.5 4972150 -32298 32637 5157.02 515702 -124 127 1.18 118 -272 2 10262 99173 0.81681 297.81681 149.31681 14931.68168 0.81681 297.8168 149.31681 14931.68159 0.81681 297.81681 149.31681000000012 14931.68100 2020-01-01 2020-01-02 2020-01-01 00:04:32 2020-01-02 03:32:53 2020-01-01 00:04:32.000 2020-01-02 03:32:53.000 272 99173 49722.5 4972250 272 99173 49722.5 4972250 -32297 32638 5158.02 515802 -128 127 -0.38 -38 -273 2 10263 99174 0.81981 297.81981 149.31981 14931.98198 0.81981 297.81982 149.31982 14931.98217 0.81981 297.81981 149.3198100000002 14931.98100 2020-01-01 2020-01-02 2020-01-01 00:04:33 2020-01-02 03:32:54 2020-01-01 00:04:33.000 2020-01-02 03:32:54.000 273 99174 49723.5 4972350 273 99174 49723.5 4972350 -32296 32639 5159.02 515902 -128 127 -1.94 -194 -274 2 10264 99175 0.82282 297.82282 149.32282 14932.28228 0.82282 297.8228 149.32282 14932.28247 0.82282 297.82282 149.3228199999999 14932.28200 2020-01-01 2020-01-02 2020-01-01 00:04:34 2020-01-02 03:32:55 2020-01-01 00:04:34.000 2020-01-02 03:32:55.000 274 99175 49724.5 4972450 274 99175 49724.5 4972450 -32295 32640 5160.02 516002 -128 124 -3.5 -350 +265 2 10255 99166 0.79579 297.79579 149.29579 14929.57957 0.79579 297.7958 149.29579 14929.57962 0.79579 297.79579 149.29579 14929.57900 2020-01-01 2020-01-02 2020-01-01 00:04:25 2020-01-02 03:32:46 2020-01-01 00:04:25.000 2020-01-02 03:32:46.000 265 99166 49715.5 4971550 265 99166 49715.5 4971550 -32304 32631 5151.02 515102 -124 127 0.3 30 +266 2 10256 99167 0.79879 297.79879 149.29879 14929.87987 0.79879 297.7988 149.29879 14929.87977 0.79879 297.79879 149.29879 14929.87900 2020-01-01 2020-01-02 2020-01-01 00:04:26 2020-01-02 03:32:47 2020-01-01 00:04:26.000 2020-01-02 03:32:47.000 266 99167 49716.5 4971650 266 99167 49716.5 4971650 -32303 32632 5152.02 515202 -128 127 -1.26 -126 +267 2 10257 99168 0.8018 297.8018 149.3018 14930.18018 0.8018 297.8018 149.3018 14930.18012 0.80180 297.80180 149.30180000000001 14930.18000 2020-01-01 2020-01-02 2020-01-01 00:04:27 2020-01-02 03:32:48 2020-01-01 00:04:27.000 2020-01-02 03:32:48.000 267 99168 49717.5 4971750 267 99168 49717.5 4971750 -32302 32633 5153.02 515302 -128 123 -2.82 -282 +268 2 10258 99169 0.8048 297.8048 149.3048 14930.48048 0.8048 297.8048 149.3048 14930.4807 0.80480 297.80480 149.3048 14930.48000 2020-01-01 2020-01-02 2020-01-01 00:04:28 2020-01-02 03:32:49 2020-01-01 00:04:28.000 2020-01-02 03:32:49.000 268 99169 49718.5 4971850 268 99169 49718.5 4971850 -32301 32634 5154.02 515402 -127 124 -1.82 -182 +269 2 10259 99170 0.8078 297.8078 149.3078 14930.78078 0.8078 297.8078 149.3078 14930.78035 0.80780 297.80780 149.30780000000001 14930.78000 2020-01-01 2020-01-02 2020-01-01 00:04:29 2020-01-02 03:32:50 2020-01-01 00:04:29.000 2020-01-02 03:32:50.000 269 99170 49719.5 4971950 269 99170 49719.5 4971950 -32300 32635 5155.02 515502 -126 125 -0.82 -82 +27 2 10017 99927 0.08108 300.08108 150.08108 15158.18918 0.08108 300.0811 150.08108 15158.18936 0.08108 300.08108 150.08108000000001 15158.18908 2020-01-01 2020-01-02 2020-01-01 00:00:27 2020-01-02 03:45:27 2020-01-01 00:00:27.000 2020-01-02 03:45:27.000 27 99927 49977 5047677 27 99927 49977 5047677 -32542 32393 4556.009900990099 460157 -125 126 -1.297029702970297 -131 +270 2 10260 99171 0.81081 297.81081 149.31081 14931.08108 0.81081 297.81082 149.31081 14931.08109 0.81081 297.81081 149.31081 14931.08100 2020-01-01 2020-01-02 2020-01-01 00:04:30 2020-01-02 03:32:51 2020-01-01 00:04:30.000 2020-01-02 03:32:51.000 270 99171 49720.5 4972050 270 99171 49720.5 4972050 -32299 32636 5156.02 515602 -125 126 0.18 18 +271 2 10261 99172 0.81381 297.81381 149.31381 14931.38138 0.81381 297.8138 149.31381 14931.38124 0.81381 297.81381 149.31381 14931.38100 2020-01-01 2020-01-02 2020-01-01 00:04:31 2020-01-02 03:32:52 2020-01-01 00:04:31.000 2020-01-02 03:32:52.000 271 99172 49721.5 4972150 271 99172 49721.5 4972150 -32298 32637 5157.02 515702 -124 127 1.18 118 +272 2 10262 99173 0.81681 297.81681 149.31681 14931.68168 0.81681 297.8168 149.31681 14931.68159 0.81681 297.81681 149.31681 14931.68100 2020-01-01 2020-01-02 2020-01-01 00:04:32 2020-01-02 03:32:53 2020-01-01 00:04:32.000 2020-01-02 03:32:53.000 272 99173 49722.5 4972250 272 99173 49722.5 4972250 -32297 32638 5158.02 515802 -128 127 -0.38 -38 +273 2 10263 99174 0.81981 297.81981 149.31981 14931.98198 0.81981 297.81982 149.31982 14931.98217 0.81981 297.81981 149.31981 14931.98100 2020-01-01 2020-01-02 2020-01-01 00:04:33 2020-01-02 03:32:54 2020-01-01 00:04:33.000 2020-01-02 03:32:54.000 273 99174 49723.5 4972350 273 99174 49723.5 4972350 -32296 32639 5159.02 515902 -128 127 -1.94 -194 +274 2 10264 99175 0.82282 297.82282 149.32282 14932.28228 0.82282 297.8228 149.32282 14932.28247 0.82282 297.82282 149.32281999999998 14932.28200 2020-01-01 2020-01-02 2020-01-01 00:04:34 2020-01-02 03:32:55 2020-01-01 00:04:34.000 2020-01-02 03:32:55.000 274 99175 49724.5 4972450 274 99175 49724.5 4972450 -32295 32640 5160.02 516002 -128 124 -3.5 -350 275 2 10265 99176 0.82582 297.82582 149.32582 14932.58258 0.82582 297.82584 149.32582 14932.58256 0.82582 297.82582 149.32582 14932.58200 2020-01-01 2020-01-02 2020-01-01 00:04:35 2020-01-02 03:32:56 2020-01-01 00:04:35.000 2020-01-02 03:32:56.000 275 99176 49725.5 4972550 275 99176 49725.5 4972550 -32294 32641 5161.02 516102 -127 125 -2.5 -250 -276 2 10266 99177 0.82882 297.82882 149.32882 14932.88288 0.82882 297.82883 149.32882 14932.88275 0.82882 297.82882 149.3288200000001 14932.88200 2020-01-01 2020-01-02 2020-01-01 00:04:36 2020-01-02 03:32:57 2020-01-01 00:04:36.000 2020-01-02 03:32:57.000 276 99177 49726.5 4972650 276 99177 49726.5 4972650 -32293 32642 5162.02 516202 -126 126 -1.5 -150 -277 2 10267 99178 0.83183 297.83183 149.33183 14933.18318 0.83183 297.83182 149.33183 14933.18305 0.83183 297.83183 149.33182999999985 14933.18300 2020-01-01 2020-01-02 2020-01-01 00:04:37 2020-01-02 03:32:58 2020-01-01 00:04:37.000 2020-01-02 03:32:58.000 277 99178 49727.5 4972750 277 99178 49727.5 4972750 -32292 32643 5163.02 516302 -125 127 -0.5 -50 -278 2 10268 99179 0.83483 297.83483 149.33483 14933.48348 0.83483 297.83484 149.33483 14933.48364 0.83483 297.83483 149.33482999999984 14933.48300 2020-01-01 2020-01-02 2020-01-01 00:04:38 2020-01-02 03:32:59 2020-01-01 00:04:38.000 2020-01-02 03:32:59.000 278 99179 49728.5 4972850 278 99179 49728.5 4972850 -32291 32644 5164.02 516402 -128 127 -2.06 -206 -279 2 10269 99180 0.83783 297.83783 149.33783 14933.78378 0.83783 297.83783 149.33783 14933.78394 0.83783 297.83783 149.33783000000022 14933.78300 2020-01-01 2020-01-02 2020-01-01 00:04:39 2020-01-02 03:33:00 2020-01-01 00:04:39.000 2020-01-02 03:33:00.000 279 99180 49729.5 4972950 279 99180 49729.5 4972950 -32290 32645 5165.02 516502 -128 127 -3.62 -362 -28 2 10018 99928 0.08408 300.08408 150.08408 15158.49249 0.08408 300.08408 150.08408 15158.49265 0.08408 300.08408 150.08408000000006 15158.49208 2020-01-01 2020-01-02 2020-01-01 00:00:28 2020-01-02 03:45:28 2020-01-01 00:00:28.000 2020-01-02 03:45:28.000 28 99928 49978 5047778 28 99928 49978 5047778 -32541 32394 4557.009900990099 460258 -124 127 -0.297029702970297 -30 -280 2 10270 99181 0.84084 297.84084 149.34084 14934.08408 0.84084 297.84085 149.34084 14934.08403 0.84084 297.84084 149.34084000000007 14934.08400 2020-01-01 2020-01-02 2020-01-01 00:04:40 2020-01-02 03:33:01 2020-01-01 00:04:40.000 2020-01-02 03:33:01.000 280 99181 49730.5 4973050 280 99181 49730.5 4973050 -32289 32646 5166.02 516602 -128 123 -5.18 -518 -281 2 10271 99182 0.84384 297.84384 149.34384 14934.38438 0.84384 297.84384 149.34384 14934.38421 0.84384 297.84384 149.34383999999974 14934.38400 2020-01-01 2020-01-02 2020-01-01 00:04:41 2020-01-02 03:33:02 2020-01-01 00:04:41.000 2020-01-02 03:33:02.000 281 99182 49731.5 4973150 281 99182 49731.5 4973150 -32288 32647 5167.02 516702 -127 124 -4.18 -418 -282 2 10272 99183 0.84684 297.84684 149.34684 14934.68468 0.84684 297.84683 149.34684 14934.68453 0.84684 297.84684 149.3468400000001 14934.68400 2020-01-01 2020-01-02 2020-01-01 00:04:42 2020-01-02 03:33:03 2020-01-01 00:04:42.000 2020-01-02 03:33:03.000 282 99183 49732.5 4973250 282 99183 49732.5 4973250 -32287 32648 5168.02 516802 -126 125 -3.18 -318 -283 2 10273 99184 0.84984 297.84984 149.34984 14934.98498 0.84984 297.84985 149.34985 14934.98526 0.84984 297.84984 149.34984000000014 14934.98400 2020-01-01 2020-01-02 2020-01-01 00:04:43 2020-01-02 03:33:04 2020-01-01 00:04:43.000 2020-01-02 03:33:04.000 283 99184 49733.5 4973350 283 99184 49733.5 4973350 -32286 32649 5169.02 516902 -125 126 -2.18 -218 -284 2 10274 99185 0.85285 297.85285 149.35285 14935.28528 0.85285 297.85284 149.35285 14935.28542 0.85285 297.85285 149.35284999999993 14935.28500 2020-01-01 2020-01-02 2020-01-01 00:04:44 2020-01-02 03:33:05 2020-01-01 00:04:44.000 2020-01-02 03:33:05.000 284 99185 49734.5 4973450 284 99185 49734.5 4973450 -32285 32650 5170.02 517002 -124 127 -1.18 -118 -285 2 10275 99186 0.85585 297.85585 149.35585 14935.58558 0.85585 297.85587 149.35585 14935.5855 0.85585 297.85585 149.35584999999995 14935.58500 2020-01-01 2020-01-02 2020-01-01 00:04:45 2020-01-02 03:33:06 2020-01-01 00:04:45.000 2020-01-02 03:33:06.000 285 99186 49735.5 4973550 285 99186 49735.5 4973550 -32284 32651 5171.02 517102 -128 127 -2.74 -274 -286 2 10276 99187 0.85885 297.85885 149.35885 14935.88588 0.85885 297.85886 149.35885 14935.88568 0.85885 297.85885 149.35885000000005 14935.88500 2020-01-01 2020-01-02 2020-01-01 00:04:46 2020-01-02 03:33:07 2020-01-01 00:04:46.000 2020-01-02 03:33:07.000 286 99187 49736.5 4973650 286 99187 49736.5 4973650 -32283 32652 5172.02 517202 -128 123 -4.3 -430 -287 2 10277 99188 0.86186 297.86186 149.36186 14936.18618 0.86186 297.86185 149.36186 14936.186 0.86186 297.86186 149.3618600000002 14936.18600 2020-01-01 2020-01-02 2020-01-01 00:04:47 2020-01-02 03:33:08 2020-01-01 00:04:47.000 2020-01-02 03:33:08.000 287 99188 49737.5 4973750 287 99188 49737.5 4973750 -32282 32653 5173.02 517302 -127 124 -3.3 -330 -288 2 10278 99189 0.86486 297.86486 149.36486 14936.48648 0.86486 297.86487 149.36486 14936.48673 0.86486 297.86486 149.36485999999985 14936.48600 2020-01-01 2020-01-02 2020-01-01 00:04:48 2020-01-02 03:33:09 2020-01-01 00:04:48.000 2020-01-02 03:33:09.000 288 99189 49738.5 4973850 288 99189 49738.5 4973850 -32281 32654 5174.02 517402 -126 125 -2.3 -230 -289 2 10279 99190 0.86786 297.86786 149.36786 14936.78678 0.86786 297.86786 149.36786 14936.78688 0.86786 297.86786 149.36786000000015 14936.78600 2020-01-01 2020-01-02 2020-01-01 00:04:49 2020-01-02 03:33:10 2020-01-01 00:04:49.000 2020-01-02 03:33:10.000 289 99190 49739.5 4973950 289 99190 49739.5 4973950 -32280 32655 5175.02 517502 -125 126 -1.3 -130 -29 2 10019 99929 0.08708 300.08708 150.08708 15158.79579 0.08708 300.0871 150.08708 15158.79576 0.08708 300.08708 150.0870799999999 15158.79508 2020-01-01 2020-01-02 2020-01-01 00:00:29 2020-01-02 03:45:29 2020-01-01 00:00:29.000 2020-01-02 03:45:29.000 29 99929 49979 5047879 29 99929 49979 5047879 -32540 32395 4558.009900990099 460359 -128 127 -1.8316831683168318 -185 -290 2 10280 99191 0.87087 297.87087 149.37087 14937.08708 0.87087 297.87088 149.37087 14937.087 0.87087 297.87087 149.37087000000008 14937.08700 2020-01-01 2020-01-02 2020-01-01 00:04:50 2020-01-02 03:33:11 2020-01-01 00:04:50.000 2020-01-02 03:33:11.000 290 99191 49740.5 4974050 290 99191 49740.5 4974050 -32279 32656 5176.02 517602 -124 127 -0.3 -30 -291 2 10281 99192 0.87387 297.87387 149.37387 14937.38738 0.87387 297.87387 149.37387 14937.38716 0.87387 297.87387 149.37386999999993 14937.38700 2020-01-01 2020-01-02 2020-01-01 00:04:51 2020-01-02 03:33:12 2020-01-01 00:04:51.000 2020-01-02 03:33:12.000 291 99192 49741.5 4974150 291 99192 49741.5 4974150 -32278 32657 5177.02 517702 -128 127 -1.86 -186 -292 2 10282 99193 0.87687 297.87687 149.37687 14937.68768 0.87687 297.8769 149.37687 14937.68789 0.87687 297.87687 149.37687000000003 14937.68700 2020-01-01 2020-01-02 2020-01-01 00:04:52 2020-01-02 03:33:13 2020-01-01 00:04:52.000 2020-01-02 03:33:13.000 292 99193 49742.5 4974250 292 99193 49742.5 4974250 -32277 32658 5178.02 517802 -128 123 -3.42 -342 -293 2 10283 99194 0.87987 297.87987 149.37987 14937.98798 0.87987 297.87988 149.37988 14937.9882 0.87987 297.87987 149.3798700000001 14937.98700 2020-01-01 2020-01-02 2020-01-01 00:04:53 2020-01-02 03:33:14 2020-01-01 00:04:53.000 2020-01-02 03:33:14.000 293 99194 49743.5 4974350 293 99194 49743.5 4974350 -32276 32659 5179.02 517902 -127 124 -2.42 -242 -294 2 10284 99195 0.88288 297.88288 149.38288 14938.28828 0.88288 297.88287 149.38288 14938.28835 0.88288 297.88288 149.38287999999986 14938.28800 2020-01-01 2020-01-02 2020-01-01 00:04:54 2020-01-02 03:33:15 2020-01-01 00:04:54.000 2020-01-02 03:33:15.000 294 99195 49744.5 4974450 294 99195 49744.5 4974450 -32275 32660 5180.02 518002 -126 125 -1.42 -142 -295 2 10285 99196 0.88588 297.88588 149.38588 14938.58858 0.88588 297.8859 149.38588 14938.58847 0.88588 297.88588 149.38587999999987 14938.58800 2020-01-01 2020-01-02 2020-01-01 00:04:55 2020-01-02 03:33:16 2020-01-01 00:04:55.000 2020-01-02 03:33:16.000 295 99196 49745.5 4974550 295 99196 49745.5 4974550 -32274 32661 5181.02 518102 -125 126 -0.42 -42 -296 2 10286 99197 0.88888 297.88888 149.38888 14938.88888 0.88888 297.8889 149.38888 14938.88863 0.88888 297.88888 149.38888000000023 14938.88800 2020-01-01 2020-01-02 2020-01-01 00:04:56 2020-01-02 03:33:17 2020-01-01 00:04:56.000 2020-01-02 03:33:17.000 296 99197 49746.5 4974650 296 99197 49746.5 4974650 -32273 32662 5182.02 518202 -124 127 0.58 58 -297 2 10287 99198 0.89189 297.89189 149.39189 14939.18918 0.89189 297.8919 149.39189 14939.18936 0.89189 297.89189 149.3918900000001 14939.18900 2020-01-01 2020-01-02 2020-01-01 00:04:57 2020-01-02 03:33:18 2020-01-01 00:04:57.000 2020-01-02 03:33:18.000 297 99198 49747.5 4974750 297 99198 49747.5 4974750 -32272 32663 5183.02 518302 -128 127 -0.98 -98 -298 2 10288 99199 0.89489 297.89489 149.39489 14939.48948 0.89489 297.8949 149.39489 14939.48967 0.89489 297.89489 149.39488999999975 14939.48900 2020-01-01 2020-01-02 2020-01-01 00:04:58 2020-01-02 03:33:19 2020-01-01 00:04:58.000 2020-01-02 03:33:19.000 298 99199 49748.5 4974850 298 99199 49748.5 4974850 -32271 32664 5184.02 518402 -128 127 -2.54 -254 -299 2 10289 99200 0.89789 297.89789 149.39789 14939.78978 0.89789 297.8979 149.39789 14939.78986 0.89789 297.89789 149.39789000000013 14939.78900 2020-01-01 2020-01-02 2020-01-01 00:04:59 2020-01-02 03:33:20 2020-01-01 00:04:59.000 2020-01-02 03:33:20.000 299 99200 49749.5 4974950 299 99200 49749.5 4974950 -32270 32665 5185.02 518502 -128 124 -4.1 -410 +276 2 10266 99177 0.82882 297.82882 149.32882 14932.88288 0.82882 297.82883 149.32882 14932.88275 0.82882 297.82882 149.32882 14932.88200 2020-01-01 2020-01-02 2020-01-01 00:04:36 2020-01-02 03:32:57 2020-01-01 00:04:36.000 2020-01-02 03:32:57.000 276 99177 49726.5 4972650 276 99177 49726.5 4972650 -32293 32642 5162.02 516202 -126 126 -1.5 -150 +277 2 10267 99178 0.83183 297.83183 149.33183 14933.18318 0.83183 297.83182 149.33183 14933.18305 0.83183 297.83183 149.33183 14933.18300 2020-01-01 2020-01-02 2020-01-01 00:04:37 2020-01-02 03:32:58 2020-01-01 00:04:37.000 2020-01-02 03:32:58.000 277 99178 49727.5 4972750 277 99178 49727.5 4972750 -32292 32643 5163.02 516302 -125 127 -0.5 -50 +278 2 10268 99179 0.83483 297.83483 149.33483 14933.48348 0.83483 297.83484 149.33483 14933.48364 0.83483 297.83483 149.33483 14933.48300 2020-01-01 2020-01-02 2020-01-01 00:04:38 2020-01-02 03:32:59 2020-01-01 00:04:38.000 2020-01-02 03:32:59.000 278 99179 49728.5 4972850 278 99179 49728.5 4972850 -32291 32644 5164.02 516402 -128 127 -2.06 -206 +279 2 10269 99180 0.83783 297.83783 149.33783 14933.78378 0.83783 297.83783 149.33783 14933.78394 0.83783 297.83783 149.33783 14933.78300 2020-01-01 2020-01-02 2020-01-01 00:04:39 2020-01-02 03:33:00 2020-01-01 00:04:39.000 2020-01-02 03:33:00.000 279 99180 49729.5 4972950 279 99180 49729.5 4972950 -32290 32645 5165.02 516502 -128 127 -3.62 -362 +28 2 10018 99928 0.08408 300.08408 150.08408 15158.49249 0.08408 300.08408 150.08408 15158.49265 0.08408 300.08408 150.08408 15158.49208 2020-01-01 2020-01-02 2020-01-01 00:00:28 2020-01-02 03:45:28 2020-01-01 00:00:28.000 2020-01-02 03:45:28.000 28 99928 49978 5047778 28 99928 49978 5047778 -32541 32394 4557.009900990099 460258 -124 127 -0.297029702970297 -30 +280 2 10270 99181 0.84084 297.84084 149.34084 14934.08408 0.84084 297.84085 149.34084 14934.08403 0.84084 297.84084 149.34084000000001 14934.08400 2020-01-01 2020-01-02 2020-01-01 00:04:40 2020-01-02 03:33:01 2020-01-01 00:04:40.000 2020-01-02 03:33:01.000 280 99181 49730.5 4973050 280 99181 49730.5 4973050 -32289 32646 5166.02 516602 -128 123 -5.18 -518 +281 2 10271 99182 0.84384 297.84384 149.34384 14934.38438 0.84384 297.84384 149.34384 14934.38421 0.84384 297.84384 149.34384 14934.38400 2020-01-01 2020-01-02 2020-01-01 00:04:41 2020-01-02 03:33:02 2020-01-01 00:04:41.000 2020-01-02 03:33:02.000 281 99182 49731.5 4973150 281 99182 49731.5 4973150 -32288 32647 5167.02 516702 -127 124 -4.18 -418 +282 2 10272 99183 0.84684 297.84684 149.34684 14934.68468 0.84684 297.84683 149.34684 14934.68453 0.84684 297.84684 149.34684 14934.68400 2020-01-01 2020-01-02 2020-01-01 00:04:42 2020-01-02 03:33:03 2020-01-01 00:04:42.000 2020-01-02 03:33:03.000 282 99183 49732.5 4973250 282 99183 49732.5 4973250 -32287 32648 5168.02 516802 -126 125 -3.18 -318 +283 2 10273 99184 0.84984 297.84984 149.34984 14934.98498 0.84984 297.84985 149.34985 14934.98526 0.84984 297.84984 149.34984 14934.98400 2020-01-01 2020-01-02 2020-01-01 00:04:43 2020-01-02 03:33:04 2020-01-01 00:04:43.000 2020-01-02 03:33:04.000 283 99184 49733.5 4973350 283 99184 49733.5 4973350 -32286 32649 5169.02 516902 -125 126 -2.18 -218 +284 2 10274 99185 0.85285 297.85285 149.35285 14935.28528 0.85285 297.85284 149.35285 14935.28542 0.85285 297.85285 149.35285 14935.28500 2020-01-01 2020-01-02 2020-01-01 00:04:44 2020-01-02 03:33:05 2020-01-01 00:04:44.000 2020-01-02 03:33:05.000 284 99185 49734.5 4973450 284 99185 49734.5 4973450 -32285 32650 5170.02 517002 -124 127 -1.18 -118 +285 2 10275 99186 0.85585 297.85585 149.35585 14935.58558 0.85585 297.85587 149.35585 14935.5855 0.85585 297.85585 149.35585 14935.58500 2020-01-01 2020-01-02 2020-01-01 00:04:45 2020-01-02 03:33:06 2020-01-01 00:04:45.000 2020-01-02 03:33:06.000 285 99186 49735.5 4973550 285 99186 49735.5 4973550 -32284 32651 5171.02 517102 -128 127 -2.74 -274 +286 2 10276 99187 0.85885 297.85885 149.35885 14935.88588 0.85885 297.85886 149.35885 14935.88568 0.85885 297.85885 149.35885 14935.88500 2020-01-01 2020-01-02 2020-01-01 00:04:46 2020-01-02 03:33:07 2020-01-01 00:04:46.000 2020-01-02 03:33:07.000 286 99187 49736.5 4973650 286 99187 49736.5 4973650 -32283 32652 5172.02 517202 -128 123 -4.3 -430 +287 2 10277 99188 0.86186 297.86186 149.36186 14936.18618 0.86186 297.86185 149.36186 14936.186 0.86186 297.86186 149.36186 14936.18600 2020-01-01 2020-01-02 2020-01-01 00:04:47 2020-01-02 03:33:08 2020-01-01 00:04:47.000 2020-01-02 03:33:08.000 287 99188 49737.5 4973750 287 99188 49737.5 4973750 -32282 32653 5173.02 517302 -127 124 -3.3 -330 +288 2 10278 99189 0.86486 297.86486 149.36486 14936.48648 0.86486 297.86487 149.36486 14936.48673 0.86486 297.86486 149.36486000000002 14936.48600 2020-01-01 2020-01-02 2020-01-01 00:04:48 2020-01-02 03:33:09 2020-01-01 00:04:48.000 2020-01-02 03:33:09.000 288 99189 49738.5 4973850 288 99189 49738.5 4973850 -32281 32654 5174.02 517402 -126 125 -2.3 -230 +289 2 10279 99190 0.86786 297.86786 149.36786 14936.78678 0.86786 297.86786 149.36786 14936.78688 0.86786 297.86786 149.36786 14936.78600 2020-01-01 2020-01-02 2020-01-01 00:04:49 2020-01-02 03:33:10 2020-01-01 00:04:49.000 2020-01-02 03:33:10.000 289 99190 49739.5 4973950 289 99190 49739.5 4973950 -32280 32655 5175.02 517502 -125 126 -1.3 -130 +29 2 10019 99929 0.08708 300.08708 150.08708 15158.79579 0.08708 300.0871 150.08708 15158.79576 0.08708 300.08708 150.08708 15158.79508 2020-01-01 2020-01-02 2020-01-01 00:00:29 2020-01-02 03:45:29 2020-01-01 00:00:29.000 2020-01-02 03:45:29.000 29 99929 49979 5047879 29 99929 49979 5047879 -32540 32395 4558.009900990099 460359 -128 127 -1.8316831683168318 -185 +290 2 10280 99191 0.87087 297.87087 149.37087 14937.08708 0.87087 297.87088 149.37087 14937.087 0.87087 297.87087 149.37087 14937.08700 2020-01-01 2020-01-02 2020-01-01 00:04:50 2020-01-02 03:33:11 2020-01-01 00:04:50.000 2020-01-02 03:33:11.000 290 99191 49740.5 4974050 290 99191 49740.5 4974050 -32279 32656 5176.02 517602 -124 127 -0.3 -30 +291 2 10281 99192 0.87387 297.87387 149.37387 14937.38738 0.87387 297.87387 149.37387 14937.38716 0.87387 297.87387 149.37387 14937.38700 2020-01-01 2020-01-02 2020-01-01 00:04:51 2020-01-02 03:33:12 2020-01-01 00:04:51.000 2020-01-02 03:33:12.000 291 99192 49741.5 4974150 291 99192 49741.5 4974150 -32278 32657 5177.02 517702 -128 127 -1.86 -186 +292 2 10282 99193 0.87687 297.87687 149.37687 14937.68768 0.87687 297.8769 149.37687 14937.68789 0.87687 297.87687 149.37687 14937.68700 2020-01-01 2020-01-02 2020-01-01 00:04:52 2020-01-02 03:33:13 2020-01-01 00:04:52.000 2020-01-02 03:33:13.000 292 99193 49742.5 4974250 292 99193 49742.5 4974250 -32277 32658 5178.02 517802 -128 123 -3.42 -342 +293 2 10283 99194 0.87987 297.87987 149.37987 14937.98798 0.87987 297.87988 149.37988 14937.9882 0.87987 297.87987 149.37986999999998 14937.98700 2020-01-01 2020-01-02 2020-01-01 00:04:53 2020-01-02 03:33:14 2020-01-01 00:04:53.000 2020-01-02 03:33:14.000 293 99194 49743.5 4974350 293 99194 49743.5 4974350 -32276 32659 5179.02 517902 -127 124 -2.42 -242 +294 2 10284 99195 0.88288 297.88288 149.38288 14938.28828 0.88288 297.88287 149.38288 14938.28835 0.88288 297.88288 149.38288 14938.28800 2020-01-01 2020-01-02 2020-01-01 00:04:54 2020-01-02 03:33:15 2020-01-01 00:04:54.000 2020-01-02 03:33:15.000 294 99195 49744.5 4974450 294 99195 49744.5 4974450 -32275 32660 5180.02 518002 -126 125 -1.42 -142 +295 2 10285 99196 0.88588 297.88588 149.38588 14938.58858 0.88588 297.8859 149.38588 14938.58847 0.88588 297.88588 149.38588 14938.58800 2020-01-01 2020-01-02 2020-01-01 00:04:55 2020-01-02 03:33:16 2020-01-01 00:04:55.000 2020-01-02 03:33:16.000 295 99196 49745.5 4974550 295 99196 49745.5 4974550 -32274 32661 5181.02 518102 -125 126 -0.42 -42 +296 2 10286 99197 0.88888 297.88888 149.38888 14938.88888 0.88888 297.8889 149.38888 14938.88863 0.88888 297.88888 149.38888 14938.88800 2020-01-01 2020-01-02 2020-01-01 00:04:56 2020-01-02 03:33:17 2020-01-01 00:04:56.000 2020-01-02 03:33:17.000 296 99197 49746.5 4974650 296 99197 49746.5 4974650 -32273 32662 5182.02 518202 -124 127 0.58 58 +297 2 10287 99198 0.89189 297.89189 149.39189 14939.18918 0.89189 297.8919 149.39189 14939.18936 0.89189 297.89189 149.39189 14939.18900 2020-01-01 2020-01-02 2020-01-01 00:04:57 2020-01-02 03:33:18 2020-01-01 00:04:57.000 2020-01-02 03:33:18.000 297 99198 49747.5 4974750 297 99198 49747.5 4974750 -32272 32663 5183.02 518302 -128 127 -0.98 -98 +298 2 10288 99199 0.89489 297.89489 149.39489 14939.48948 0.89489 297.8949 149.39489 14939.48967 0.89489 297.89489 149.39489 14939.48900 2020-01-01 2020-01-02 2020-01-01 00:04:58 2020-01-02 03:33:19 2020-01-01 00:04:58.000 2020-01-02 03:33:19.000 298 99199 49748.5 4974850 298 99199 49748.5 4974850 -32271 32664 5184.02 518402 -128 127 -2.54 -254 +299 2 10289 99200 0.89789 297.89789 149.39789 14939.78978 0.89789 297.8979 149.39789 14939.78986 0.89789 297.89789 149.39789000000002 14939.78900 2020-01-01 2020-01-02 2020-01-01 00:04:59 2020-01-02 03:33:20 2020-01-01 00:04:59.000 2020-01-02 03:33:20.000 299 99200 49749.5 4974950 299 99200 49749.5 4974950 -32270 32665 5185.02 518502 -128 124 -4.1 -410 3 2 1002 9993 0.009 300.009 150.009 15150.9099 0.009 300.009 150.009 15150.90958 0.00900 300.00900 150.009 15150.90900 2020-01-01 2020-01-02 2020-01-01 00:00:03 2020-01-02 03:45:03 2020-01-01 00:00:03.000 2020-01-02 03:45:03.000 3 99903 49953 5045253 3 99903 49953 5045253 -32566 32369 4532.009900990099 457733 -124 127 0.04950495049504951 5 -30 2 10020 99930 0.09009 300.09009 150.09009 15159.09909 0.09009 300.0901 150.09008 15159.09894 0.09009 300.09009 150.09008999999986 15159.09909 2020-01-01 2020-01-02 2020-01-01 00:00:30 2020-01-02 03:45:30 2020-01-01 00:00:30.000 2020-01-02 03:45:30.000 30 99930 49980 5047980 30 99930 49980 5047980 -32539 32396 4559.009900990099 460460 -128 123 -3.366336633663366 -340 -300 2 10290 99201 0.9009 297.9009 149.4009 14940.09009 0.9009 297.9009 149.40089 14940.08995 0.90090 297.90090 149.40090000000004 14940.09000 2020-01-01 2020-01-02 2020-01-01 00:05:00 2020-01-02 03:33:21 2020-01-01 00:05:00.000 2020-01-02 03:33:21.000 300 99201 49750.5 4975050 300 99201 49750.5 4975050 -32269 32666 5186.02 518602 -127 125 -3.1 -310 -301 2 10291 99202 0.9039 297.9039 149.4039 14940.39039 0.9039 297.9039 149.4039 14940.39009 0.90390 297.90390 149.4038999999999 14940.39000 2020-01-01 2020-01-02 2020-01-01 00:05:01 2020-01-02 03:33:22 2020-01-01 00:05:01.000 2020-01-02 03:33:22.000 301 99202 49751.5 4975150 301 99202 49751.5 4975150 -32268 32667 5187.02 518702 -126 126 -2.1 -210 -302 2 10292 99203 0.9069 297.9069 149.4069 14940.69069 0.9069 297.90692 149.4069 14940.69083 0.90690 297.90690 149.40689999999998 14940.69000 2020-01-01 2020-01-02 2020-01-01 00:05:02 2020-01-02 03:33:23 2020-01-01 00:05:02.000 2020-01-02 03:33:23.000 302 99203 49752.5 4975250 302 99203 49752.5 4975250 -32267 32668 5188.02 518802 -125 127 -1.1 -110 -303 2 10293 99204 0.9099 297.9099 149.4099 14940.99099 0.9099 297.9099 149.40991 14940.99114 0.90990 297.90990 149.40990000000005 14940.99000 2020-01-01 2020-01-02 2020-01-01 00:05:03 2020-01-02 03:33:24 2020-01-01 00:05:03.000 2020-01-02 03:33:24.000 303 99204 49753.5 4975350 303 99204 49753.5 4975350 -32266 32669 5189.02 518902 -128 127 -2.66 -266 -304 2 10294 99205 0.91291 297.91291 149.41291 14941.29129 0.91291 297.9129 149.41291 14941.29133 0.91291 297.91291 149.41290999999978 14941.29100 2020-01-01 2020-01-02 2020-01-01 00:05:04 2020-01-02 03:33:25 2020-01-01 00:05:04.000 2020-01-02 03:33:25.000 304 99205 49754.5 4975450 304 99205 49754.5 4975450 -32265 32670 5190.02 519002 -128 127 -4.22 -422 -305 2 10295 99206 0.91591 297.91591 149.41591 14941.59159 0.91591 297.91592 149.41591 14941.59141 0.91591 297.91591 149.41590999999985 14941.59100 2020-01-01 2020-01-02 2020-01-01 00:05:05 2020-01-02 03:33:26 2020-01-01 00:05:05.000 2020-01-02 03:33:26.000 305 99206 49755.5 4975550 305 99206 49755.5 4975550 -32264 32671 5191.02 519102 -128 123 -5.78 -578 -306 2 10296 99207 0.91891 297.91891 149.41891 14941.89189 0.91891 297.9189 149.41891 14941.89172 0.91891 297.91891 149.41891000000015 14941.89100 2020-01-01 2020-01-02 2020-01-01 00:05:06 2020-01-02 03:33:27 2020-01-01 00:05:06.000 2020-01-02 03:33:27.000 306 99207 49756.5 4975650 306 99207 49756.5 4975650 -32263 32672 5192.02 519202 -127 124 -4.78 -478 -307 2 10297 99208 0.92192 297.92192 149.42192 14942.19219 0.92192 297.92194 149.42192 14942.1923 0.92192 297.92192 149.42192000000003 14942.19200 2020-01-01 2020-01-02 2020-01-01 00:05:07 2020-01-02 03:33:28 2020-01-01 00:05:07.000 2020-01-02 03:33:28.000 307 99208 49757.5 4975750 307 99208 49757.5 4975750 -32262 32673 5193.02 519302 -126 125 -3.78 -378 -308 2 10298 99209 0.92492 297.92492 149.42492 14942.49249 0.92492 297.92493 149.42492 14942.49265 0.92492 297.92492 149.42492 14942.49200 2020-01-01 2020-01-02 2020-01-01 00:05:08 2020-01-02 03:33:29 2020-01-01 00:05:08.000 2020-01-02 03:33:29.000 308 99209 49758.5 4975850 308 99209 49758.5 4975850 -32261 32674 5194.02 519402 -125 126 -2.78 -278 -309 2 10299 99210 0.92792 297.92792 149.42792 14942.79279 0.92792 297.92792 149.42792 14942.7928 0.92792 297.92792 149.42792000000006 14942.79200 2020-01-01 2020-01-02 2020-01-01 00:05:09 2020-01-02 03:33:30 2020-01-01 00:05:09.000 2020-01-02 03:33:30.000 309 99210 49759.5 4975950 309 99210 49759.5 4975950 -32260 32675 5195.02 519502 -124 127 -1.78 -178 -31 2 10021 99931 0.09309 300.09309 150.09309 15159.4024 0.09309 300.09308 150.09309 15159.40224 0.09309 300.09309 150.09309000000013 15159.40209 2020-01-01 2020-01-02 2020-01-01 00:00:31 2020-01-02 03:45:31 2020-01-01 00:00:31.000 2020-01-02 03:45:31.000 31 99931 49981 5048081 31 99931 49981 5048081 -32538 32397 4560.009900990099 460561 -127 124 -2.366336633663366 -239 -310 2 10300 99211 0.93093 297.93093 149.43093 14943.09309 0.93093 297.93094 149.43092 14943.09288 0.93093 297.93093 149.43093000000025 14943.09300 2020-01-01 2020-01-02 2020-01-01 00:05:10 2020-01-02 03:33:31 2020-01-01 00:05:10.000 2020-01-02 03:33:31.000 310 99211 49760.5 4976050 310 99211 49760.5 4976050 -32259 32676 5196.02 519602 -128 127 -3.34 -334 -311 2 10301 99212 0.93393 297.93393 149.43393 14943.39339 0.93393 297.93393 149.43393 14943.39319 0.93393 297.93393 149.43392999999992 14943.39300 2020-01-01 2020-01-02 2020-01-01 00:05:11 2020-01-02 03:33:32 2020-01-01 00:05:11.000 2020-01-02 03:33:32.000 311 99212 49761.5 4976150 311 99212 49761.5 4976150 -32258 32677 5197.02 519702 -128 123 -4.9 -490 -312 2 10302 99213 0.93693 297.93693 149.43693 14943.69369 0.93693 297.93695 149.43693 14943.69377 0.93693 297.93693 149.4369299999999 14943.69300 2020-01-01 2020-01-02 2020-01-01 00:05:12 2020-01-02 03:33:33 2020-01-01 00:05:12.000 2020-01-02 03:33:33.000 312 99213 49762.5 4976250 312 99213 49762.5 4976250 -32257 32678 5198.02 519802 -127 124 -3.9 -390 -313 2 10303 99214 0.93993 297.93993 149.43993 14943.99399 0.93993 297.93994 149.43994 14943.99412 0.93993 297.93993 149.43993000000012 14943.99300 2020-01-01 2020-01-02 2020-01-01 00:05:13 2020-01-02 03:33:34 2020-01-01 00:05:13.000 2020-01-02 03:33:34.000 313 99214 49763.5 4976350 313 99214 49763.5 4976350 -32256 32679 5199.02 519902 -126 125 -2.9 -290 -314 2 10304 99215 0.94294 297.94294 149.44294 14944.29429 0.94294 297.94293 149.44294 14944.29427 0.94294 297.94294 149.44294000000014 14944.29400 2020-01-01 2020-01-02 2020-01-01 00:05:14 2020-01-02 03:33:35 2020-01-01 00:05:14.000 2020-01-02 03:33:35.000 314 99215 49764.5 4976450 314 99215 49764.5 4976450 -32255 32680 5200.02 520002 -125 126 -1.9 -190 -315 2 10305 99216 0.94594 297.94594 149.44594 14944.59459 0.94594 297.94595 149.44595 14944.595 0.94594 297.94594 149.4459399999998 14944.59400 2020-01-01 2020-01-02 2020-01-01 00:05:15 2020-01-02 03:33:36 2020-01-01 00:05:15.000 2020-01-02 03:33:36.000 315 99216 49765.5 4976550 315 99216 49765.5 4976550 -32254 32681 5201.02 520102 -124 127 -0.9 -90 -316 2 10306 99217 0.94894 297.94894 149.44894 14944.89489 0.94894 297.94894 149.44894 14944.89466 0.94894 297.94894 149.44894000000016 14944.89400 2020-01-01 2020-01-02 2020-01-01 00:05:16 2020-01-02 03:33:37 2020-01-01 00:05:16.000 2020-01-02 03:33:37.000 316 99217 49766.5 4976650 316 99217 49766.5 4976650 -32253 32682 5202.02 520202 -128 127 -2.46 -246 -317 2 10307 99218 0.95195 297.95195 149.45195 14945.19519 0.95195 297.95197 149.45195 14945.19524 0.95195 297.95195 149.45195000000004 14945.19500 2020-01-01 2020-01-02 2020-01-01 00:05:17 2020-01-02 03:33:38 2020-01-01 00:05:17.000 2020-01-02 03:33:38.000 317 99218 49767.5 4976750 317 99218 49767.5 4976750 -32252 32683 5203.02 520302 -128 123 -4.02 -402 -318 2 10308 99219 0.95495 297.95495 149.45495 14945.49549 0.95495 297.95496 149.45495 14945.49558 0.95495 297.95495 149.4549499999999 14945.49500 2020-01-01 2020-01-02 2020-01-01 00:05:18 2020-01-02 03:33:39 2020-01-01 00:05:18.000 2020-01-02 03:33:39.000 318 99219 49768.5 4976850 318 99219 49768.5 4976850 -32251 32684 5204.02 520402 -127 124 -3.02 -302 +30 2 10020 99930 0.09009 300.09009 150.09009 15159.09909 0.09009 300.0901 150.09008 15159.09894 0.09009 300.09009 150.09009 15159.09909 2020-01-01 2020-01-02 2020-01-01 00:00:30 2020-01-02 03:45:30 2020-01-01 00:00:30.000 2020-01-02 03:45:30.000 30 99930 49980 5047980 30 99930 49980 5047980 -32539 32396 4559.009900990099 460460 -128 123 -3.366336633663366 -340 +300 2 10290 99201 0.9009 297.9009 149.4009 14940.09009 0.9009 297.9009 149.40089 14940.08995 0.90090 297.90090 149.4009 14940.09000 2020-01-01 2020-01-02 2020-01-01 00:05:00 2020-01-02 03:33:21 2020-01-01 00:05:00.000 2020-01-02 03:33:21.000 300 99201 49750.5 4975050 300 99201 49750.5 4975050 -32269 32666 5186.02 518602 -127 125 -3.1 -310 +301 2 10291 99202 0.9039 297.9039 149.4039 14940.39039 0.9039 297.9039 149.4039 14940.39009 0.90390 297.90390 149.4039 14940.39000 2020-01-01 2020-01-02 2020-01-01 00:05:01 2020-01-02 03:33:22 2020-01-01 00:05:01.000 2020-01-02 03:33:22.000 301 99202 49751.5 4975150 301 99202 49751.5 4975150 -32268 32667 5187.02 518702 -126 126 -2.1 -210 +302 2 10292 99203 0.9069 297.9069 149.4069 14940.69069 0.9069 297.90692 149.4069 14940.69083 0.90690 297.90690 149.4069 14940.69000 2020-01-01 2020-01-02 2020-01-01 00:05:02 2020-01-02 03:33:23 2020-01-01 00:05:02.000 2020-01-02 03:33:23.000 302 99203 49752.5 4975250 302 99203 49752.5 4975250 -32267 32668 5188.02 518802 -125 127 -1.1 -110 +303 2 10293 99204 0.9099 297.9099 149.4099 14940.99099 0.9099 297.9099 149.40991 14940.99114 0.90990 297.90990 149.4099 14940.99000 2020-01-01 2020-01-02 2020-01-01 00:05:03 2020-01-02 03:33:24 2020-01-01 00:05:03.000 2020-01-02 03:33:24.000 303 99204 49753.5 4975350 303 99204 49753.5 4975350 -32266 32669 5189.02 518902 -128 127 -2.66 -266 +304 2 10294 99205 0.91291 297.91291 149.41291 14941.29129 0.91291 297.9129 149.41291 14941.29133 0.91291 297.91291 149.41290999999998 14941.29100 2020-01-01 2020-01-02 2020-01-01 00:05:04 2020-01-02 03:33:25 2020-01-01 00:05:04.000 2020-01-02 03:33:25.000 304 99205 49754.5 4975450 304 99205 49754.5 4975450 -32265 32670 5190.02 519002 -128 127 -4.22 -422 +305 2 10295 99206 0.91591 297.91591 149.41591 14941.59159 0.91591 297.91592 149.41591 14941.59141 0.91591 297.91591 149.41591 14941.59100 2020-01-01 2020-01-02 2020-01-01 00:05:05 2020-01-02 03:33:26 2020-01-01 00:05:05.000 2020-01-02 03:33:26.000 305 99206 49755.5 4975550 305 99206 49755.5 4975550 -32264 32671 5191.02 519102 -128 123 -5.78 -578 +306 2 10296 99207 0.91891 297.91891 149.41891 14941.89189 0.91891 297.9189 149.41891 14941.89172 0.91891 297.91891 149.41890999999998 14941.89100 2020-01-01 2020-01-02 2020-01-01 00:05:06 2020-01-02 03:33:27 2020-01-01 00:05:06.000 2020-01-02 03:33:27.000 306 99207 49756.5 4975650 306 99207 49756.5 4975650 -32263 32672 5192.02 519202 -127 124 -4.78 -478 +307 2 10297 99208 0.92192 297.92192 149.42192 14942.19219 0.92192 297.92194 149.42192 14942.1923 0.92192 297.92192 149.42192 14942.19200 2020-01-01 2020-01-02 2020-01-01 00:05:07 2020-01-02 03:33:28 2020-01-01 00:05:07.000 2020-01-02 03:33:28.000 307 99208 49757.5 4975750 307 99208 49757.5 4975750 -32262 32673 5193.02 519302 -126 125 -3.78 -378 +308 2 10298 99209 0.92492 297.92492 149.42492 14942.49249 0.92492 297.92493 149.42492 14942.49265 0.92492 297.92492 149.42492000000001 14942.49200 2020-01-01 2020-01-02 2020-01-01 00:05:08 2020-01-02 03:33:29 2020-01-01 00:05:08.000 2020-01-02 03:33:29.000 308 99209 49758.5 4975850 308 99209 49758.5 4975850 -32261 32674 5194.02 519402 -125 126 -2.78 -278 +309 2 10299 99210 0.92792 297.92792 149.42792 14942.79279 0.92792 297.92792 149.42792 14942.7928 0.92792 297.92792 149.42792 14942.79200 2020-01-01 2020-01-02 2020-01-01 00:05:09 2020-01-02 03:33:30 2020-01-01 00:05:09.000 2020-01-02 03:33:30.000 309 99210 49759.5 4975950 309 99210 49759.5 4975950 -32260 32675 5195.02 519502 -124 127 -1.78 -178 +31 2 10021 99931 0.09309 300.09309 150.09309 15159.4024 0.09309 300.09308 150.09309 15159.40224 0.09309 300.09309 150.09309 15159.40209 2020-01-01 2020-01-02 2020-01-01 00:00:31 2020-01-02 03:45:31 2020-01-01 00:00:31.000 2020-01-02 03:45:31.000 31 99931 49981 5048081 31 99931 49981 5048081 -32538 32397 4560.009900990099 460561 -127 124 -2.366336633663366 -239 +310 2 10300 99211 0.93093 297.93093 149.43093 14943.09309 0.93093 297.93094 149.43092 14943.09288 0.93093 297.93093 149.43093000000002 14943.09300 2020-01-01 2020-01-02 2020-01-01 00:05:10 2020-01-02 03:33:31 2020-01-01 00:05:10.000 2020-01-02 03:33:31.000 310 99211 49760.5 4976050 310 99211 49760.5 4976050 -32259 32676 5196.02 519602 -128 127 -3.34 -334 +311 2 10301 99212 0.93393 297.93393 149.43393 14943.39339 0.93393 297.93393 149.43393 14943.39319 0.93393 297.93393 149.43393 14943.39300 2020-01-01 2020-01-02 2020-01-01 00:05:11 2020-01-02 03:33:32 2020-01-01 00:05:11.000 2020-01-02 03:33:32.000 311 99212 49761.5 4976150 311 99212 49761.5 4976150 -32258 32677 5197.02 519702 -128 123 -4.9 -490 +312 2 10302 99213 0.93693 297.93693 149.43693 14943.69369 0.93693 297.93695 149.43693 14943.69377 0.93693 297.93693 149.43693 14943.69300 2020-01-01 2020-01-02 2020-01-01 00:05:12 2020-01-02 03:33:33 2020-01-01 00:05:12.000 2020-01-02 03:33:33.000 312 99213 49762.5 4976250 312 99213 49762.5 4976250 -32257 32678 5198.02 519802 -127 124 -3.9 -390 +313 2 10303 99214 0.93993 297.93993 149.43993 14943.99399 0.93993 297.93994 149.43994 14943.99412 0.93993 297.93993 149.43993 14943.99300 2020-01-01 2020-01-02 2020-01-01 00:05:13 2020-01-02 03:33:34 2020-01-01 00:05:13.000 2020-01-02 03:33:34.000 313 99214 49763.5 4976350 313 99214 49763.5 4976350 -32256 32679 5199.02 519902 -126 125 -2.9 -290 +314 2 10304 99215 0.94294 297.94294 149.44294 14944.29429 0.94294 297.94293 149.44294 14944.29427 0.94294 297.94294 149.44294 14944.29400 2020-01-01 2020-01-02 2020-01-01 00:05:14 2020-01-02 03:33:35 2020-01-01 00:05:14.000 2020-01-02 03:33:35.000 314 99215 49764.5 4976450 314 99215 49764.5 4976450 -32255 32680 5200.02 520002 -125 126 -1.9 -190 +315 2 10305 99216 0.94594 297.94594 149.44594 14944.59459 0.94594 297.94595 149.44595 14944.595 0.94594 297.94594 149.44593999999998 14944.59400 2020-01-01 2020-01-02 2020-01-01 00:05:15 2020-01-02 03:33:36 2020-01-01 00:05:15.000 2020-01-02 03:33:36.000 315 99216 49765.5 4976550 315 99216 49765.5 4976550 -32254 32681 5201.02 520102 -124 127 -0.9 -90 +316 2 10306 99217 0.94894 297.94894 149.44894 14944.89489 0.94894 297.94894 149.44894 14944.89466 0.94894 297.94894 149.44894 14944.89400 2020-01-01 2020-01-02 2020-01-01 00:05:16 2020-01-02 03:33:37 2020-01-01 00:05:16.000 2020-01-02 03:33:37.000 316 99217 49766.5 4976650 316 99217 49766.5 4976650 -32253 32682 5202.02 520202 -128 127 -2.46 -246 +317 2 10307 99218 0.95195 297.95195 149.45195 14945.19519 0.95195 297.95197 149.45195 14945.19524 0.95195 297.95195 149.45195 14945.19500 2020-01-01 2020-01-02 2020-01-01 00:05:17 2020-01-02 03:33:38 2020-01-01 00:05:17.000 2020-01-02 03:33:38.000 317 99218 49767.5 4976750 317 99218 49767.5 4976750 -32252 32683 5203.02 520302 -128 123 -4.02 -402 +318 2 10308 99219 0.95495 297.95495 149.45495 14945.49549 0.95495 297.95496 149.45495 14945.49558 0.95495 297.95495 149.45495 14945.49500 2020-01-01 2020-01-02 2020-01-01 00:05:18 2020-01-02 03:33:39 2020-01-01 00:05:18.000 2020-01-02 03:33:39.000 318 99219 49768.5 4976850 318 99219 49768.5 4976850 -32251 32684 5204.02 520402 -127 124 -3.02 -302 319 2 10309 99220 0.95795 297.95795 149.45795 14945.79579 0.95795 297.95795 149.45795 14945.79574 0.95795 297.95795 149.45795 14945.79500 2020-01-01 2020-01-02 2020-01-01 00:05:19 2020-01-02 03:33:40 2020-01-01 00:05:19.000 2020-01-02 03:33:40.000 319 99220 49769.5 4976950 319 99220 49769.5 4976950 -32250 32685 5205.02 520502 -126 125 -2.02 -202 -32 2 10022 99932 0.09609 300.09609 150.09609 15159.7057 0.09609 300.0961 150.09609 15159.706 0.09609 300.09609 150.0960899999998 15159.70509 2020-01-01 2020-01-02 2020-01-01 00:00:32 2020-01-02 03:45:32 2020-01-01 00:00:32.000 2020-01-02 03:45:32.000 32 99932 49982 5048182 32 99932 49982 5048182 -32537 32398 4561.009900990099 460662 -126 125 -1.3663366336633664 -138 -320 2 10310 99221 0.96096 297.96096 149.46096 14946.09609 0.96096 297.96097 149.46096 14946.09647 0.96096 297.96096 149.46096000000014 14946.09600 2020-01-01 2020-01-02 2020-01-01 00:05:20 2020-01-02 03:33:41 2020-01-01 00:05:20.000 2020-01-02 03:33:41.000 320 99221 49770.5 4977050 320 99221 49770.5 4977050 -32249 32686 5206.02 520602 -125 126 -1.02 -102 -321 2 10311 99222 0.96396 297.96396 149.46396 14946.39639 0.96396 297.96396 149.46396 14946.39613 0.96396 297.96396 149.4639599999998 14946.39600 2020-01-01 2020-01-02 2020-01-01 00:05:21 2020-01-02 03:33:42 2020-01-01 00:05:21.000 2020-01-02 03:33:42.000 321 99222 49771.5 4977150 321 99222 49771.5 4977150 -32248 32687 5207.02 520702 -124 127 -0.02 -2 -322 2 10312 99223 0.96696 297.96696 149.46696 14946.69669 0.96696 297.96698 149.46696 14946.69674 0.96696 297.96696 149.4669599999999 14946.69600 2020-01-01 2020-01-02 2020-01-01 00:05:22 2020-01-02 03:33:43 2020-01-01 00:05:22.000 2020-01-02 03:33:43.000 322 99223 49772.5 4977250 322 99223 49772.5 4977250 -32247 32688 5208.02 520802 -128 127 -1.58 -158 -323 2 10313 99224 0.96996 297.96996 149.46996 14946.99699 0.96997 297.96997 149.46997 14946.99706 0.96996 297.96996 149.46996000000013 14946.99600 2020-01-01 2020-01-02 2020-01-01 00:05:23 2020-01-02 03:33:44 2020-01-01 00:05:23.000 2020-01-02 03:33:44.000 323 99224 49773.5 4977350 323 99224 49773.5 4977350 -32246 32689 5209.02 520902 -128 123 -3.14 -314 -324 2 10314 99225 0.97297 297.97297 149.47297 14947.29729 0.97297 297.97296 149.47297 14947.29737 0.97297 297.97297 149.4729700000001 14947.29700 2020-01-01 2020-01-02 2020-01-01 00:05:24 2020-01-02 03:33:45 2020-01-01 00:05:24.000 2020-01-02 03:33:45.000 324 99225 49774.5 4977450 324 99225 49774.5 4977450 -32245 32690 5210.02 521002 -127 124 -2.14 -214 +32 2 10022 99932 0.09609 300.09609 150.09609 15159.7057 0.09609 300.0961 150.09609 15159.706 0.09609 300.09609 150.09609 15159.70509 2020-01-01 2020-01-02 2020-01-01 00:00:32 2020-01-02 03:45:32 2020-01-01 00:00:32.000 2020-01-02 03:45:32.000 32 99932 49982 5048182 32 99932 49982 5048182 -32537 32398 4561.009900990099 460662 -126 125 -1.3663366336633664 -138 +320 2 10310 99221 0.96096 297.96096 149.46096 14946.09609 0.96096 297.96097 149.46096 14946.09647 0.96096 297.96096 149.46096 14946.09600 2020-01-01 2020-01-02 2020-01-01 00:05:20 2020-01-02 03:33:41 2020-01-01 00:05:20.000 2020-01-02 03:33:41.000 320 99221 49770.5 4977050 320 99221 49770.5 4977050 -32249 32686 5206.02 520602 -125 126 -1.02 -102 +321 2 10311 99222 0.96396 297.96396 149.46396 14946.39639 0.96396 297.96396 149.46396 14946.39613 0.96396 297.96396 149.46396000000001 14946.39600 2020-01-01 2020-01-02 2020-01-01 00:05:21 2020-01-02 03:33:42 2020-01-01 00:05:21.000 2020-01-02 03:33:42.000 321 99222 49771.5 4977150 321 99222 49771.5 4977150 -32248 32687 5207.02 520702 -124 127 -0.02 -2 +322 2 10312 99223 0.96696 297.96696 149.46696 14946.69669 0.96696 297.96698 149.46696 14946.69674 0.96696 297.96696 149.46696 14946.69600 2020-01-01 2020-01-02 2020-01-01 00:05:22 2020-01-02 03:33:43 2020-01-01 00:05:22.000 2020-01-02 03:33:43.000 322 99223 49772.5 4977250 322 99223 49772.5 4977250 -32247 32688 5208.02 520802 -128 127 -1.58 -158 +323 2 10313 99224 0.96996 297.96996 149.46996 14946.99699 0.96997 297.96997 149.46997 14946.99706 0.96996 297.96996 149.46996 14946.99600 2020-01-01 2020-01-02 2020-01-01 00:05:23 2020-01-02 03:33:44 2020-01-01 00:05:23.000 2020-01-02 03:33:44.000 323 99224 49773.5 4977350 323 99224 49773.5 4977350 -32246 32689 5209.02 520902 -128 123 -3.14 -314 +324 2 10314 99225 0.97297 297.97297 149.47297 14947.29729 0.97297 297.97296 149.47297 14947.29737 0.97297 297.97297 149.47297 14947.29700 2020-01-01 2020-01-02 2020-01-01 00:05:24 2020-01-02 03:33:45 2020-01-01 00:05:24.000 2020-01-02 03:33:45.000 324 99225 49774.5 4977450 324 99225 49774.5 4977450 -32245 32690 5210.02 521002 -127 124 -2.14 -214 325 2 10315 99226 0.97597 297.97597 149.47597 14947.59759 0.97597 297.97598 149.47597 14947.59794 0.97597 297.97597 149.47597 14947.59700 2020-01-01 2020-01-02 2020-01-01 00:05:25 2020-01-02 03:33:46 2020-01-01 00:05:25.000 2020-01-02 03:33:46.000 325 99226 49775.5 4977550 325 99226 49775.5 4977550 -32244 32691 5211.02 521102 -126 125 -1.14 -114 -326 2 10316 99227 0.97897 297.97897 149.47897 14947.89789 0.97897 297.97897 149.47897 14947.8976 0.97897 297.97897 149.4789700000001 14947.89700 2020-01-01 2020-01-02 2020-01-01 00:05:26 2020-01-02 03:33:47 2020-01-01 00:05:26.000 2020-01-02 03:33:47.000 326 99227 49776.5 4977650 326 99227 49776.5 4977650 -32243 32692 5212.02 521202 -125 126 -0.14 -14 +326 2 10316 99227 0.97897 297.97897 149.47897 14947.89789 0.97897 297.97897 149.47897 14947.8976 0.97897 297.97897 149.47897 14947.89700 2020-01-01 2020-01-02 2020-01-01 00:05:26 2020-01-02 03:33:47 2020-01-01 00:05:26.000 2020-01-02 03:33:47.000 326 99227 49776.5 4977650 326 99227 49776.5 4977650 -32243 32692 5212.02 521202 -125 126 -0.14 -14 327 2 10317 99228 0.98198 297.98198 149.48198 14948.19819 0.98198 297.982 149.48198 14948.19821 0.98198 297.98198 149.48198 14948.19800 2020-01-01 2020-01-02 2020-01-01 00:05:27 2020-01-02 03:33:48 2020-01-01 00:05:27.000 2020-01-02 03:33:48.000 327 99228 49777.5 4977750 327 99228 49777.5 4977750 -32242 32693 5213.02 521302 -124 127 0.86 86 -328 2 10318 99229 0.98498 297.98498 149.48498 14948.49849 0.98498 297.985 149.48498 14948.49853 0.98498 297.98498 149.4849799999999 14948.49800 2020-01-01 2020-01-02 2020-01-01 00:05:28 2020-01-02 03:33:49 2020-01-01 00:05:28.000 2020-01-02 03:33:49.000 328 99229 49778.5 4977850 328 99229 49778.5 4977850 -32241 32694 5214.02 521402 -128 127 -0.7 -70 -329 2 10319 99230 0.98798 297.98798 149.48798 14948.79879 0.98798 297.98798 149.48798 14948.79883 0.98798 297.98798 149.4879799999999 14948.79800 2020-01-01 2020-01-02 2020-01-01 00:05:29 2020-01-02 03:33:50 2020-01-01 00:05:29.000 2020-01-02 03:33:50.000 329 99230 49779.5 4977950 329 99230 49779.5 4977950 -32240 32695 5215.02 521502 -128 127 -2.26 -226 -33 2 10023 99933 0.09909 300.09909 150.09909 15160.009 0.09909 300.0991 150.0991 15160.00913 0.09909 300.09909 150.09908999999988 15160.00809 2020-01-01 2020-01-02 2020-01-01 00:00:33 2020-01-02 03:45:33 2020-01-01 00:00:33.000 2020-01-02 03:45:33.000 33 99933 49983 5048283 33 99933 49983 5048283 -32536 32399 4562.009900990099 460763 -125 126 -0.36633663366336633 -37 -330 2 10320 99231 0.99099 297.99099 149.49099 14949.09909 0.99099 297.991 149.49099 14949.09941 0.99099 297.99099 149.49099000000012 14949.09900 2020-01-01 2020-01-02 2020-01-01 00:05:30 2020-01-02 03:33:51 2020-01-01 00:05:30.000 2020-01-02 03:33:51.000 330 99231 49780.5 4978050 330 99231 49780.5 4978050 -32239 32696 5216.02 521602 -128 123 -3.82 -382 -331 2 10321 99232 0.99399 297.99399 149.49399 14949.39939 0.99399 297.994 149.49399 14949.39911 0.99399 297.99399 149.49399000000017 14949.39900 2020-01-01 2020-01-02 2020-01-01 00:05:31 2020-01-02 03:33:52 2020-01-01 00:05:31.000 2020-01-02 03:33:52.000 331 99232 49781.5 4978150 331 99232 49781.5 4978150 -32238 32697 5217.02 521702 -127 124 -2.82 -282 -332 2 10322 99233 0.99699 297.99699 149.49699 14949.69969 0.99699 297.997 149.49699 14949.69969 0.99699 297.99699 149.4969899999998 14949.69900 2020-01-01 2020-01-02 2020-01-01 00:05:32 2020-01-02 03:33:53 2020-01-01 00:05:32.000 2020-01-02 03:33:53.000 332 99233 49782.5 4978250 332 99233 49782.5 4978250 -32237 32698 5218.02 521802 -126 125 -1.82 -182 +328 2 10318 99229 0.98498 297.98498 149.48498 14948.49849 0.98498 297.985 149.48498 14948.49853 0.98498 297.98498 149.48498 14948.49800 2020-01-01 2020-01-02 2020-01-01 00:05:28 2020-01-02 03:33:49 2020-01-01 00:05:28.000 2020-01-02 03:33:49.000 328 99229 49778.5 4977850 328 99229 49778.5 4977850 -32241 32694 5214.02 521402 -128 127 -0.7 -70 +329 2 10319 99230 0.98798 297.98798 149.48798 14948.79879 0.98798 297.98798 149.48798 14948.79883 0.98798 297.98798 149.48798 14948.79800 2020-01-01 2020-01-02 2020-01-01 00:05:29 2020-01-02 03:33:50 2020-01-01 00:05:29.000 2020-01-02 03:33:50.000 329 99230 49779.5 4977950 329 99230 49779.5 4977950 -32240 32695 5215.02 521502 -128 127 -2.26 -226 +33 2 10023 99933 0.09909 300.09909 150.09909 15160.009 0.09909 300.0991 150.0991 15160.00913 0.09909 300.09909 150.09909 15160.00809 2020-01-01 2020-01-02 2020-01-01 00:00:33 2020-01-02 03:45:33 2020-01-01 00:00:33.000 2020-01-02 03:45:33.000 33 99933 49983 5048283 33 99933 49983 5048283 -32536 32399 4562.009900990099 460763 -125 126 -0.36633663366336633 -37 +330 2 10320 99231 0.99099 297.99099 149.49099 14949.09909 0.99099 297.991 149.49099 14949.09941 0.99099 297.99099 149.49099 14949.09900 2020-01-01 2020-01-02 2020-01-01 00:05:30 2020-01-02 03:33:51 2020-01-01 00:05:30.000 2020-01-02 03:33:51.000 330 99231 49780.5 4978050 330 99231 49780.5 4978050 -32239 32696 5216.02 521602 -128 123 -3.82 -382 +331 2 10321 99232 0.99399 297.99399 149.49399 14949.39939 0.99399 297.994 149.49399 14949.39911 0.99399 297.99399 149.49399 14949.39900 2020-01-01 2020-01-02 2020-01-01 00:05:31 2020-01-02 03:33:52 2020-01-01 00:05:31.000 2020-01-02 03:33:52.000 331 99232 49781.5 4978150 331 99232 49781.5 4978150 -32238 32697 5217.02 521702 -127 124 -2.82 -282 +332 2 10322 99233 0.99699 297.99699 149.49699 14949.69969 0.99699 297.997 149.49699 14949.69969 0.99699 297.99699 149.49699 14949.69900 2020-01-01 2020-01-02 2020-01-01 00:05:32 2020-01-02 03:33:53 2020-01-01 00:05:32.000 2020-01-02 03:33:53.000 332 99233 49782.5 4978250 332 99233 49782.5 4978250 -32237 32698 5218.02 521802 -126 125 -1.82 -182 333 2 10323 99234 1 298 149.5 14950 1 298 149.5 14950 1.00000 298.00000 149.5 14950.00000 2020-01-01 2020-01-02 2020-01-01 00:05:33 2020-01-02 03:33:54 2020-01-01 00:05:33.000 2020-01-02 03:33:54.000 333 99234 49783.5 4978350 333 99234 49783.5 4978350 -32236 32699 5219.02 521902 -125 126 -0.82 -82 -334 2 10324 99235 1.003 298.003 149.503 14950.3003 1.003 298.003 149.503 14950.30029 1.00300 298.00300 149.50300000000007 14950.30000 2020-01-01 2020-01-02 2020-01-01 00:05:34 2020-01-02 03:33:55 2020-01-01 00:05:34.000 2020-01-02 03:33:55.000 334 99235 49784.5 4978450 334 99235 49784.5 4978450 -32235 32700 5220.02 522002 -124 127 0.18 18 -335 2 10325 99236 1.006 298.006 149.506 14950.6006 1.006 298.006 149.506 14950.60088 1.00600 298.00600 149.50599999999991 14950.60000 2020-01-01 2020-01-02 2020-01-01 00:05:35 2020-01-02 03:33:56 2020-01-01 00:05:35.000 2020-01-02 03:33:56.000 335 99236 49785.5 4978550 335 99236 49785.5 4978550 -32234 32701 5221.02 522102 -128 127 -1.38 -138 -336 2 10326 99237 1.009 298.009 149.509 14950.9009 1.009 298.009 149.509 14950.90057 1.00900 298.00900 149.50900000000001 14950.90000 2020-01-01 2020-01-02 2020-01-01 00:05:36 2020-01-02 03:33:57 2020-01-01 00:05:36.000 2020-01-02 03:33:57.000 336 99237 49786.5 4978650 336 99237 49786.5 4978650 -32233 32702 5222.02 522202 -128 123 -2.94 -294 -337 2 10327 99238 1.01201 298.01201 149.51201 14951.2012 1.01201 298.01202 149.51201 14951.20117 1.01201 298.01201 149.51201000000017 14951.20100 2020-01-01 2020-01-02 2020-01-01 00:05:37 2020-01-02 03:33:58 2020-01-01 00:05:37.000 2020-01-02 03:33:58.000 337 99238 49787.5 4978750 337 99238 49787.5 4978750 -32232 32703 5223.02 522302 -127 124 -1.94 -194 -338 2 10328 99239 1.01501 298.01501 149.51501 14951.5015 1.01501 298.015 149.51501 14951.50146 1.01501 298.01501 149.51500999999982 14951.50100 2020-01-01 2020-01-02 2020-01-01 00:05:38 2020-01-02 03:33:59 2020-01-01 00:05:38.000 2020-01-02 03:33:59.000 338 99239 49788.5 4978850 338 99239 49788.5 4978850 -32231 32704 5224.02 522402 -126 125 -0.94 -94 -339 2 10329 99240 1.01801 298.01801 149.51801 14951.8018 1.01801 298.018 149.51801 14951.80177 1.01801 298.01801 149.51800999999983 14951.80100 2020-01-01 2020-01-02 2020-01-01 00:05:39 2020-01-02 03:34:00 2020-01-01 00:05:39.000 2020-01-02 03:34:00.000 339 99240 49789.5 4978950 339 99240 49789.5 4978950 -32230 32705 5225.02 522502 -125 126 0.06 6 -34 2 10024 99934 0.1021 300.1021 150.1021 15160.31231 0.1021 300.1021 150.1021 15160.31224 0.10210 300.10210 150.10210000000004 15160.31210 2020-01-01 2020-01-02 2020-01-01 00:00:34 2020-01-02 03:45:34 2020-01-01 00:00:34.000 2020-01-02 03:45:34.000 34 99934 49984 5048384 34 99934 49984 5048384 -32535 32400 4563.009900990099 460864 -124 127 0.6336633663366337 64 -340 2 10330 99241 1.02102 298.02102 149.52102 14952.1021 1.02102 298.02103 149.52102 14952.10239 1.02102 298.02102 149.5210200000001 14952.10200 2020-01-01 2020-01-02 2020-01-01 00:05:40 2020-01-02 03:34:01 2020-01-01 00:05:40.000 2020-01-02 03:34:01.000 340 99241 49790.5 4979050 340 99241 49790.5 4979050 -32229 32706 5226.02 522602 -124 127 1.06 106 -341 2 10331 99242 1.02402 298.02402 149.52402 14952.4024 1.02402 298.02402 149.52402 14952.40205 1.02402 298.02402 149.52402000000006 14952.40200 2020-01-01 2020-01-02 2020-01-01 00:05:41 2020-01-02 03:34:02 2020-01-01 00:05:41.000 2020-01-02 03:34:02.000 341 99242 49791.5 4979150 341 99242 49791.5 4979150 -32228 32707 5227.02 522702 -128 127 -0.5 -50 -342 2 10332 99243 1.02702 298.02702 149.52702 14952.7027 1.02702 298.02704 149.52702 14952.70264 1.02702 298.02702 149.52701999999982 14952.70200 2020-01-01 2020-01-02 2020-01-01 00:05:42 2020-01-02 03:34:03 2020-01-01 00:05:42.000 2020-01-02 03:34:03.000 342 99243 49792.5 4979250 342 99243 49792.5 4979250 -32227 32708 5228.02 522802 -128 123 -2.06 -206 -343 2 10333 99244 1.03003 298.03003 149.53003 14953.003 1.03003 298.03003 149.53002 14953.00293 1.03003 298.03003 149.53002999999993 14953.00300 2020-01-01 2020-01-02 2020-01-01 00:05:43 2020-01-02 03:34:04 2020-01-01 00:05:43.000 2020-01-02 03:34:04.000 343 99244 49793.5 4979350 343 99244 49793.5 4979350 -32226 32709 5229.02 522902 -127 124 -1.06 -106 -344 2 10334 99245 1.03303 298.03303 149.53303 14953.3033 1.03303 298.03302 149.53303 14953.30323 1.03303 298.03303 149.53303000000002 14953.30300 2020-01-01 2020-01-02 2020-01-01 00:05:44 2020-01-02 03:34:05 2020-01-01 00:05:44.000 2020-01-02 03:34:05.000 344 99245 49794.5 4979450 344 99245 49794.5 4979450 -32225 32710 5230.02 523002 -126 125 -0.06 -6 -345 2 10335 99246 1.03603 298.03603 149.53603 14953.6036 1.03603 298.03604 149.53603 14953.60386 1.03603 298.03603 149.53602999999993 14953.60300 2020-01-01 2020-01-02 2020-01-01 00:05:45 2020-01-02 03:34:06 2020-01-01 00:05:45.000 2020-01-02 03:34:06.000 345 99246 49795.5 4979550 345 99246 49795.5 4979550 -32224 32711 5231.02 523102 -125 126 0.94 94 -346 2 10336 99247 1.03903 298.03903 149.53903 14953.9039 1.03903 298.03903 149.53903 14953.90352 1.03903 298.03903 149.53902999999994 14953.90300 2020-01-01 2020-01-02 2020-01-01 00:05:46 2020-01-02 03:34:07 2020-01-01 00:05:46.000 2020-01-02 03:34:07.000 346 99247 49796.5 4979650 346 99247 49796.5 4979650 -32223 32712 5232.02 523202 -124 127 1.94 194 -347 2 10337 99248 1.04204 298.04204 149.54204 14954.2042 1.04204 298.04205 149.54204 14954.20427 1.04204 298.04204 149.5420400000001 14954.20400 2020-01-01 2020-01-02 2020-01-01 00:05:47 2020-01-02 03:34:08 2020-01-01 00:05:47.000 2020-01-02 03:34:08.000 347 99248 49797.5 4979750 347 99248 49797.5 4979750 -32222 32713 5233.02 523302 -128 127 0.38 38 -348 2 10338 99249 1.04504 298.04504 149.54504 14954.5045 1.04504 298.04504 149.54504 14954.50441 1.04504 298.04504 149.5450400000002 14954.50400 2020-01-01 2020-01-02 2020-01-01 00:05:48 2020-01-02 03:34:09 2020-01-01 00:05:48.000 2020-01-02 03:34:09.000 348 99249 49798.5 4979850 348 99249 49798.5 4979850 -32221 32714 5234.02 523402 -128 123 -1.18 -118 -349 2 10339 99250 1.04804 298.04804 149.54804 14954.8048 1.04804 298.04803 149.54804 14954.80474 1.04804 298.04804 149.54803999999987 14954.80400 2020-01-01 2020-01-02 2020-01-01 00:05:49 2020-01-02 03:34:10 2020-01-01 00:05:49.000 2020-01-02 03:34:10.000 349 99250 49799.5 4979950 349 99250 49799.5 4979950 -32220 32715 5235.02 523502 -127 124 -0.18 -18 -35 2 10025 99935 0.1051 300.1051 150.1051 15160.61561 0.1051 300.1051 150.1051 15160.61542 0.10510 300.10510 150.10510000000008 15160.61510 2020-01-01 2020-01-02 2020-01-01 00:00:35 2020-01-02 03:45:35 2020-01-01 00:00:35.000 2020-01-02 03:45:35.000 35 99935 49985 5048485 35 99935 49985 5048485 -32534 32401 4564.009900990099 460965 -128 127 -0.900990099009901 -91 +334 2 10324 99235 1.003 298.003 149.503 14950.3003 1.003 298.003 149.503 14950.30029 1.00300 298.00300 149.503 14950.30000 2020-01-01 2020-01-02 2020-01-01 00:05:34 2020-01-02 03:33:55 2020-01-01 00:05:34.000 2020-01-02 03:33:55.000 334 99235 49784.5 4978450 334 99235 49784.5 4978450 -32235 32700 5220.02 522002 -124 127 0.18 18 +335 2 10325 99236 1.006 298.006 149.506 14950.6006 1.006 298.006 149.506 14950.60088 1.00600 298.00600 149.506 14950.60000 2020-01-01 2020-01-02 2020-01-01 00:05:35 2020-01-02 03:33:56 2020-01-01 00:05:35.000 2020-01-02 03:33:56.000 335 99236 49785.5 4978550 335 99236 49785.5 4978550 -32234 32701 5221.02 522102 -128 127 -1.38 -138 +336 2 10326 99237 1.009 298.009 149.509 14950.9009 1.009 298.009 149.509 14950.90057 1.00900 298.00900 149.509 14950.90000 2020-01-01 2020-01-02 2020-01-01 00:05:36 2020-01-02 03:33:57 2020-01-01 00:05:36.000 2020-01-02 03:33:57.000 336 99237 49786.5 4978650 336 99237 49786.5 4978650 -32233 32702 5222.02 522202 -128 123 -2.94 -294 +337 2 10327 99238 1.01201 298.01201 149.51201 14951.2012 1.01201 298.01202 149.51201 14951.20117 1.01201 298.01201 149.51201 14951.20100 2020-01-01 2020-01-02 2020-01-01 00:05:37 2020-01-02 03:33:58 2020-01-01 00:05:37.000 2020-01-02 03:33:58.000 337 99238 49787.5 4978750 337 99238 49787.5 4978750 -32232 32703 5223.02 522302 -127 124 -1.94 -194 +338 2 10328 99239 1.01501 298.01501 149.51501 14951.5015 1.01501 298.015 149.51501 14951.50146 1.01501 298.01501 149.51501 14951.50100 2020-01-01 2020-01-02 2020-01-01 00:05:38 2020-01-02 03:33:59 2020-01-01 00:05:38.000 2020-01-02 03:33:59.000 338 99239 49788.5 4978850 338 99239 49788.5 4978850 -32231 32704 5224.02 522402 -126 125 -0.94 -94 +339 2 10329 99240 1.01801 298.01801 149.51801 14951.8018 1.01801 298.018 149.51801 14951.80177 1.01801 298.01801 149.51801 14951.80100 2020-01-01 2020-01-02 2020-01-01 00:05:39 2020-01-02 03:34:00 2020-01-01 00:05:39.000 2020-01-02 03:34:00.000 339 99240 49789.5 4978950 339 99240 49789.5 4978950 -32230 32705 5225.02 522502 -125 126 0.06 6 +34 2 10024 99934 0.1021 300.1021 150.1021 15160.31231 0.1021 300.1021 150.1021 15160.31224 0.10210 300.10210 150.10209999999998 15160.31210 2020-01-01 2020-01-02 2020-01-01 00:00:34 2020-01-02 03:45:34 2020-01-01 00:00:34.000 2020-01-02 03:45:34.000 34 99934 49984 5048384 34 99934 49984 5048384 -32535 32400 4563.009900990099 460864 -124 127 0.6336633663366337 64 +340 2 10330 99241 1.02102 298.02102 149.52102 14952.1021 1.02102 298.02103 149.52102 14952.10239 1.02102 298.02102 149.52102000000002 14952.10200 2020-01-01 2020-01-02 2020-01-01 00:05:40 2020-01-02 03:34:01 2020-01-01 00:05:40.000 2020-01-02 03:34:01.000 340 99241 49790.5 4979050 340 99241 49790.5 4979050 -32229 32706 5226.02 522602 -124 127 1.06 106 +341 2 10331 99242 1.02402 298.02402 149.52402 14952.4024 1.02402 298.02402 149.52402 14952.40205 1.02402 298.02402 149.52402 14952.40200 2020-01-01 2020-01-02 2020-01-01 00:05:41 2020-01-02 03:34:02 2020-01-01 00:05:41.000 2020-01-02 03:34:02.000 341 99242 49791.5 4979150 341 99242 49791.5 4979150 -32228 32707 5227.02 522702 -128 127 -0.5 -50 +342 2 10332 99243 1.02702 298.02702 149.52702 14952.7027 1.02702 298.02704 149.52702 14952.70264 1.02702 298.02702 149.52702 14952.70200 2020-01-01 2020-01-02 2020-01-01 00:05:42 2020-01-02 03:34:03 2020-01-01 00:05:42.000 2020-01-02 03:34:03.000 342 99243 49792.5 4979250 342 99243 49792.5 4979250 -32227 32708 5228.02 522802 -128 123 -2.06 -206 +343 2 10333 99244 1.03003 298.03003 149.53003 14953.003 1.03003 298.03003 149.53002 14953.00293 1.03003 298.03003 149.53003 14953.00300 2020-01-01 2020-01-02 2020-01-01 00:05:43 2020-01-02 03:34:04 2020-01-01 00:05:43.000 2020-01-02 03:34:04.000 343 99244 49793.5 4979350 343 99244 49793.5 4979350 -32226 32709 5229.02 522902 -127 124 -1.06 -106 +344 2 10334 99245 1.03303 298.03303 149.53303 14953.3033 1.03303 298.03302 149.53303 14953.30323 1.03303 298.03303 149.53303 14953.30300 2020-01-01 2020-01-02 2020-01-01 00:05:44 2020-01-02 03:34:05 2020-01-01 00:05:44.000 2020-01-02 03:34:05.000 344 99245 49794.5 4979450 344 99245 49794.5 4979450 -32225 32710 5230.02 523002 -126 125 -0.06 -6 +345 2 10335 99246 1.03603 298.03603 149.53603 14953.6036 1.03603 298.03604 149.53603 14953.60386 1.03603 298.03603 149.53602999999998 14953.60300 2020-01-01 2020-01-02 2020-01-01 00:05:45 2020-01-02 03:34:06 2020-01-01 00:05:45.000 2020-01-02 03:34:06.000 345 99246 49795.5 4979550 345 99246 49795.5 4979550 -32224 32711 5231.02 523102 -125 126 0.94 94 +346 2 10336 99247 1.03903 298.03903 149.53903 14953.9039 1.03903 298.03903 149.53903 14953.90352 1.03903 298.03903 149.53903 14953.90300 2020-01-01 2020-01-02 2020-01-01 00:05:46 2020-01-02 03:34:07 2020-01-01 00:05:46.000 2020-01-02 03:34:07.000 346 99247 49796.5 4979650 346 99247 49796.5 4979650 -32223 32712 5232.02 523202 -124 127 1.94 194 +347 2 10337 99248 1.04204 298.04204 149.54204 14954.2042 1.04204 298.04205 149.54204 14954.20427 1.04204 298.04204 149.54204 14954.20400 2020-01-01 2020-01-02 2020-01-01 00:05:47 2020-01-02 03:34:08 2020-01-01 00:05:47.000 2020-01-02 03:34:08.000 347 99248 49797.5 4979750 347 99248 49797.5 4979750 -32222 32713 5233.02 523302 -128 127 0.38 38 +348 2 10338 99249 1.04504 298.04504 149.54504 14954.5045 1.04504 298.04504 149.54504 14954.50441 1.04504 298.04504 149.54504 14954.50400 2020-01-01 2020-01-02 2020-01-01 00:05:48 2020-01-02 03:34:09 2020-01-01 00:05:48.000 2020-01-02 03:34:09.000 348 99249 49798.5 4979850 348 99249 49798.5 4979850 -32221 32714 5234.02 523402 -128 123 -1.18 -118 +349 2 10339 99250 1.04804 298.04804 149.54804 14954.8048 1.04804 298.04803 149.54804 14954.80474 1.04804 298.04804 149.54804000000001 14954.80400 2020-01-01 2020-01-02 2020-01-01 00:05:49 2020-01-02 03:34:10 2020-01-01 00:05:49.000 2020-01-02 03:34:10.000 349 99250 49799.5 4979950 349 99250 49799.5 4979950 -32220 32715 5235.02 523502 -127 124 -0.18 -18 +35 2 10025 99935 0.1051 300.1051 150.1051 15160.61561 0.1051 300.1051 150.1051 15160.61542 0.10510 300.10510 150.10510000000002 15160.61510 2020-01-01 2020-01-02 2020-01-01 00:00:35 2020-01-02 03:45:35 2020-01-01 00:00:35.000 2020-01-02 03:45:35.000 35 99935 49985 5048485 35 99935 49985 5048485 -32534 32401 4564.009900990099 460965 -128 127 -0.900990099009901 -91 350 2 10340 99251 1.05105 298.05105 149.55105 14955.1051 1.05105 298.05106 149.55105 14955.10532 1.05105 298.05105 149.55105 14955.10500 2020-01-01 2020-01-02 2020-01-01 00:05:50 2020-01-02 03:34:11 2020-01-01 00:05:50.000 2020-01-02 03:34:11.000 350 99251 49800.5 4980050 350 99251 49800.5 4980050 -32219 32716 5236.02 523602 -126 125 0.82 82 -351 2 10341 99252 1.05405 298.05405 149.55405 14955.4054 1.05405 298.05405 149.55404 14955.40499 1.05405 298.05405 149.55405000000007 14955.40500 2020-01-01 2020-01-02 2020-01-01 00:05:51 2020-01-02 03:34:12 2020-01-01 00:05:51.000 2020-01-02 03:34:12.000 351 99252 49801.5 4980150 351 99252 49801.5 4980150 -32218 32717 5237.02 523702 -125 126 1.82 182 -352 2 10342 99253 1.05705 298.05705 149.55705 14955.7057 1.05705 298.05707 149.55705 14955.70574 1.05705 298.05705 149.55704999999998 14955.70500 2020-01-01 2020-01-02 2020-01-01 00:05:52 2020-01-02 03:34:13 2020-01-01 00:05:52.000 2020-01-02 03:34:13.000 352 99253 49802.5 4980250 352 99253 49802.5 4980250 -32217 32718 5238.02 523802 -124 127 2.82 282 -353 2 10343 99254 1.06006 298.06006 149.56006 14956.006 1.06006 298.06006 149.56005 14956.00587 1.06006 298.06006 149.56005999999985 14956.00600 2020-01-01 2020-01-02 2020-01-01 00:05:53 2020-01-02 03:34:14 2020-01-01 00:05:53.000 2020-01-02 03:34:14.000 353 99254 49803.5 4980350 353 99254 49803.5 4980350 -32216 32719 5239.02 523902 -128 127 1.26 126 -354 2 10344 99255 1.06306 298.06306 149.56306 14956.3063 1.06306 298.06305 149.56306 14956.3062 1.06306 298.06306 149.5630600000002 14956.30600 2020-01-01 2020-01-02 2020-01-01 00:05:54 2020-01-02 03:34:15 2020-01-01 00:05:54.000 2020-01-02 03:34:15.000 354 99255 49804.5 4980450 354 99255 49804.5 4980450 -32215 32720 5240.02 524002 -128 127 -0.3 -30 -355 2 10345 99256 1.06606 298.06606 149.56606 14956.6066 1.06606 298.06607 149.56606 14956.6068 1.06606 298.06606 149.56605999999988 14956.60600 2020-01-01 2020-01-02 2020-01-01 00:05:55 2020-01-02 03:34:16 2020-01-01 00:05:55.000 2020-01-02 03:34:16.000 355 99256 49805.5 4980550 355 99256 49805.5 4980550 -32214 32721 5241.02 524102 -128 123 -1.86 -186 -356 2 10346 99257 1.06906 298.06906 149.56906 14956.9069 1.06906 298.06906 149.56907 14956.90709 1.06906 298.06906 149.56905999999987 14956.90600 2020-01-01 2020-01-02 2020-01-01 00:05:56 2020-01-02 03:34:17 2020-01-01 00:05:56.000 2020-01-02 03:34:17.000 356 99257 49806.5 4980650 356 99257 49806.5 4980650 -32213 32722 5242.02 524202 -127 124 -0.86 -86 -357 2 10347 99258 1.07207 298.07207 149.57207 14957.2072 1.07207 298.07208 149.57207 14957.20721 1.07207 298.07207 149.5720700000001 14957.20700 2020-01-01 2020-01-02 2020-01-01 00:05:57 2020-01-02 03:34:18 2020-01-01 00:05:57.000 2020-01-02 03:34:18.000 357 99258 49807.5 4980750 357 99258 49807.5 4980750 -32212 32723 5243.02 524302 -126 125 0.14 14 -358 2 10348 99259 1.07507 298.07507 149.57507 14957.5075 1.07507 298.07507 149.57507 14957.50734 1.07507 298.07507 149.57507000000012 14957.50700 2020-01-01 2020-01-02 2020-01-01 00:05:58 2020-01-02 03:34:19 2020-01-01 00:05:58.000 2020-01-02 03:34:19.000 358 99259 49808.5 4980850 358 99259 49808.5 4980850 -32211 32724 5244.02 524402 -125 126 1.14 114 -359 2 10349 99260 1.07807 298.07807 149.57807 14957.8078 1.07807 298.07806 149.57807 14957.80767 1.07807 298.07807 149.57806999999977 14957.80700 2020-01-01 2020-01-02 2020-01-01 00:05:59 2020-01-02 03:34:20 2020-01-01 00:05:59.000 2020-01-02 03:34:20.000 359 99260 49809.5 4980950 359 99260 49809.5 4980950 -32210 32725 5245.02 524502 -124 127 2.14 214 -36 2 10026 99936 0.1081 300.1081 150.1081 15160.91891 0.1081 300.1081 150.1081 15160.91873 0.10810 300.10810 150.10809999999995 15160.91810 2020-01-01 2020-01-02 2020-01-01 00:00:36 2020-01-02 03:45:36 2020-01-01 00:00:36.000 2020-01-02 03:45:36.000 36 99936 49986 5048586 36 99936 49986 5048586 -32533 32402 4565.009900990099 461066 -128 123 -2.4356435643564356 -246 -360 2 10350 99261 1.08108 298.08108 149.58108 14958.1081 1.08108 298.0811 149.58108 14958.10827 1.08108 298.08108 149.58107999999996 14958.10800 2020-01-01 2020-01-02 2020-01-01 00:06:00 2020-01-02 03:34:21 2020-01-01 00:06:00.000 2020-01-02 03:34:21.000 360 99261 49810.5 4981050 360 99261 49810.5 4981050 -32209 32726 5246.02 524602 -128 127 0.58 58 -361 2 10351 99262 1.08408 298.08408 149.58408 14958.4084 1.08408 298.08408 149.58408 14958.40856 1.08408 298.08408 149.58408000000006 14958.40800 2020-01-01 2020-01-02 2020-01-01 00:06:01 2020-01-02 03:34:22 2020-01-01 00:06:01.000 2020-01-02 03:34:22.000 361 99262 49811.5 4981150 361 99262 49811.5 4981150 -32208 32727 5247.02 524702 -128 123 -0.98 -98 -362 2 10352 99263 1.08708 298.08708 149.58708 14958.7087 1.08708 298.0871 149.58708 14958.70868 1.08708 298.08708 149.5870799999999 14958.70800 2020-01-01 2020-01-02 2020-01-01 00:06:02 2020-01-02 03:34:23 2020-01-01 00:06:02.000 2020-01-02 03:34:23.000 362 99263 49812.5 4981250 362 99263 49812.5 4981250 -32207 32728 5248.02 524802 -127 124 0.02 2 -363 2 10353 99264 1.09009 298.09009 149.59009 14959.009 1.09009 298.0901 149.59008 14959.00884 1.09009 298.09009 149.59008999999983 14959.00900 2020-01-01 2020-01-02 2020-01-01 00:06:03 2020-01-02 03:34:24 2020-01-01 00:06:03.000 2020-01-02 03:34:24.000 363 99264 49813.5 4981350 363 99264 49813.5 4981350 -32206 32729 5249.02 524902 -126 125 1.02 102 -364 2 10354 99265 1.09309 298.09309 149.59309 14959.3093 1.09309 298.09308 149.59309 14959.30915 1.09309 298.09309 149.59309000000013 14959.30900 2020-01-01 2020-01-02 2020-01-01 00:06:04 2020-01-02 03:34:25 2020-01-01 00:06:04.000 2020-01-02 03:34:25.000 364 99265 49814.5 4981450 364 99265 49814.5 4981450 -32205 32730 5250.02 525002 -125 126 2.02 202 -365 2 10355 99266 1.09609 298.09609 149.59609 14959.6096 1.09609 298.0961 149.59609 14959.6099 1.09609 298.09609 149.59608999999978 14959.60900 2020-01-01 2020-01-02 2020-01-01 00:06:05 2020-01-02 03:34:26 2020-01-01 00:06:05.000 2020-01-02 03:34:26.000 365 99266 49815.5 4981550 365 99266 49815.5 4981550 -32204 32731 5251.02 525102 -124 127 3.02 302 -366 2 10356 99267 1.09909 298.09909 149.59909 14959.9099 1.09909 298.0991 149.5991 14959.91003 1.09909 298.09909 149.59908999999985 14959.90900 2020-01-01 2020-01-02 2020-01-01 00:06:06 2020-01-02 03:34:27 2020-01-01 00:06:06.000 2020-01-02 03:34:27.000 366 99267 49816.5 4981650 366 99267 49816.5 4981650 -32203 32732 5252.02 525202 -128 127 1.46 146 -367 2 10357 99268 1.1021 298.1021 149.6021 14960.21021 1.1021 298.1021 149.6021 14960.21015 1.10210 298.10210 149.60210000000004 14960.21000 2020-01-01 2020-01-02 2020-01-01 00:06:07 2020-01-02 03:34:28 2020-01-01 00:06:07.000 2020-01-02 03:34:28.000 367 99268 49817.5 4981750 367 99268 49817.5 4981750 -32202 32733 5253.02 525302 -128 123 -0.1 -10 -368 2 10358 99269 1.1051 298.1051 149.6051 14960.51051 1.1051 298.1051 149.6051 14960.51031 1.10510 298.10510 149.6051000000001 14960.51000 2020-01-01 2020-01-02 2020-01-01 00:06:08 2020-01-02 03:34:29 2020-01-01 00:06:08.000 2020-01-02 03:34:29.000 368 99269 49818.5 4981850 368 99269 49818.5 4981850 -32201 32734 5254.02 525402 -127 124 0.9 90 -369 2 10359 99270 1.1081 298.1081 149.6081 14960.81081 1.1081 298.1081 149.6081 14960.81062 1.10810 298.10810 149.60809999999995 14960.81000 2020-01-01 2020-01-02 2020-01-01 00:06:09 2020-01-02 03:34:30 2020-01-01 00:06:09.000 2020-01-02 03:34:30.000 369 99270 49819.5 4981950 369 99270 49819.5 4981950 -32200 32735 5255.02 525502 -126 125 1.9 190 -37 2 10027 99937 0.11111 300.11111 150.11111 15161.22222 0.11111 300.1111 150.11111 15161.22248 0.11111 300.11111 150.11110999999988 15161.22211 2020-01-01 2020-01-02 2020-01-01 00:00:37 2020-01-02 03:45:37 2020-01-01 00:00:37.000 2020-01-02 03:45:37.000 37 99937 49987 5048687 37 99937 49987 5048687 -32532 32403 4566.009900990099 461167 -127 124 -1.4356435643564356 -145 -370 2 10360 99271 1.11111 298.11111 149.61111 14961.11111 1.11111 298.1111 149.61111 14961.11137 1.11111 298.11111 149.6111099999999 14961.11100 2020-01-01 2020-01-02 2020-01-01 00:06:10 2020-01-02 03:34:31 2020-01-01 00:06:10.000 2020-01-02 03:34:31.000 370 99271 49820.5 4982050 370 99271 49820.5 4982050 -32199 32736 5256.02 525602 -125 126 2.9 290 -371 2 10361 99272 1.11411 298.11411 149.61411 14961.41141 1.11411 298.1141 149.61411 14961.4115 1.11411 298.11411 149.61411000000024 14961.41100 2020-01-01 2020-01-02 2020-01-01 00:06:11 2020-01-02 03:34:32 2020-01-01 00:06:11.000 2020-01-02 03:34:32.000 371 99272 49821.5 4982150 371 99272 49821.5 4982150 -32198 32737 5257.02 525702 -124 127 3.9 390 -372 2 10362 99273 1.11711 298.11711 149.61711 14961.71171 1.11711 298.11713 149.61711 14961.71165 1.11711 298.11711 149.61710999999985 14961.71100 2020-01-01 2020-01-02 2020-01-01 00:06:12 2020-01-02 03:34:33 2020-01-01 00:06:12.000 2020-01-02 03:34:33.000 372 99273 49822.5 4982250 372 99273 49822.5 4982250 -32197 32738 5258.02 525802 -128 127 2.34 234 -373 2 10363 99274 1.12012 298.12012 149.62012 14962.01201 1.12012 298.12012 149.62011 14962.01179 1.12012 298.12012 149.6201199999998 14962.01200 2020-01-01 2020-01-02 2020-01-01 00:06:13 2020-01-02 03:34:34 2020-01-01 00:06:13.000 2020-01-02 03:34:34.000 373 99274 49823.5 4982350 373 99274 49823.5 4982350 -32196 32739 5259.02 525902 -128 123 0.78 78 -374 2 10364 99275 1.12312 298.12312 149.62312 14962.31231 1.12312 298.1231 149.62312 14962.31208 1.12312 298.12312 149.62312000000014 14962.31200 2020-01-01 2020-01-02 2020-01-01 00:06:14 2020-01-02 03:34:35 2020-01-01 00:06:14.000 2020-01-02 03:34:35.000 374 99275 49824.5 4982450 374 99275 49824.5 4982450 -32195 32740 5260.02 526002 -127 124 1.78 178 -375 2 10365 99276 1.12612 298.12612 149.62612 14962.61261 1.12612 298.12613 149.62612 14962.61283 1.12612 298.12612 149.62612000000016 14962.61200 2020-01-01 2020-01-02 2020-01-01 00:06:15 2020-01-02 03:34:36 2020-01-01 00:06:15.000 2020-01-02 03:34:36.000 375 99276 49825.5 4982550 375 99276 49825.5 4982550 -32194 32741 5261.02 526102 -126 125 2.78 278 -376 2 10366 99277 1.12912 298.12912 149.62912 14962.91291 1.12912 298.12912 149.62912 14962.91297 1.12912 298.12912 149.6291199999998 14962.91200 2020-01-01 2020-01-02 2020-01-01 00:06:16 2020-01-02 03:34:37 2020-01-01 00:06:16.000 2020-01-02 03:34:37.000 376 99277 49826.5 4982650 376 99277 49826.5 4982650 -32193 32742 5262.02 526202 -125 126 3.78 378 +351 2 10341 99252 1.05405 298.05405 149.55405 14955.4054 1.05405 298.05405 149.55404 14955.40499 1.05405 298.05405 149.55405000000002 14955.40500 2020-01-01 2020-01-02 2020-01-01 00:05:51 2020-01-02 03:34:12 2020-01-01 00:05:51.000 2020-01-02 03:34:12.000 351 99252 49801.5 4980150 351 99252 49801.5 4980150 -32218 32717 5237.02 523702 -125 126 1.82 182 +352 2 10342 99253 1.05705 298.05705 149.55705 14955.7057 1.05705 298.05707 149.55705 14955.70574 1.05705 298.05705 149.55705 14955.70500 2020-01-01 2020-01-02 2020-01-01 00:05:52 2020-01-02 03:34:13 2020-01-01 00:05:52.000 2020-01-02 03:34:13.000 352 99253 49802.5 4980250 352 99253 49802.5 4980250 -32217 32718 5238.02 523802 -124 127 2.82 282 +353 2 10343 99254 1.06006 298.06006 149.56006 14956.006 1.06006 298.06006 149.56005 14956.00587 1.06006 298.06006 149.56006 14956.00600 2020-01-01 2020-01-02 2020-01-01 00:05:53 2020-01-02 03:34:14 2020-01-01 00:05:53.000 2020-01-02 03:34:14.000 353 99254 49803.5 4980350 353 99254 49803.5 4980350 -32216 32719 5239.02 523902 -128 127 1.26 126 +354 2 10344 99255 1.06306 298.06306 149.56306 14956.3063 1.06306 298.06305 149.56306 14956.3062 1.06306 298.06306 149.56306 14956.30600 2020-01-01 2020-01-02 2020-01-01 00:05:54 2020-01-02 03:34:15 2020-01-01 00:05:54.000 2020-01-02 03:34:15.000 354 99255 49804.5 4980450 354 99255 49804.5 4980450 -32215 32720 5240.02 524002 -128 127 -0.3 -30 +355 2 10345 99256 1.06606 298.06606 149.56606 14956.6066 1.06606 298.06607 149.56606 14956.6068 1.06606 298.06606 149.56606 14956.60600 2020-01-01 2020-01-02 2020-01-01 00:05:55 2020-01-02 03:34:16 2020-01-01 00:05:55.000 2020-01-02 03:34:16.000 355 99256 49805.5 4980550 355 99256 49805.5 4980550 -32214 32721 5241.02 524102 -128 123 -1.86 -186 +356 2 10346 99257 1.06906 298.06906 149.56906 14956.9069 1.06906 298.06906 149.56907 14956.90709 1.06906 298.06906 149.56906 14956.90600 2020-01-01 2020-01-02 2020-01-01 00:05:56 2020-01-02 03:34:17 2020-01-01 00:05:56.000 2020-01-02 03:34:17.000 356 99257 49806.5 4980650 356 99257 49806.5 4980650 -32213 32722 5242.02 524202 -127 124 -0.86 -86 +357 2 10347 99258 1.07207 298.07207 149.57207 14957.2072 1.07207 298.07208 149.57207 14957.20721 1.07207 298.07207 149.57207 14957.20700 2020-01-01 2020-01-02 2020-01-01 00:05:57 2020-01-02 03:34:18 2020-01-01 00:05:57.000 2020-01-02 03:34:18.000 357 99258 49807.5 4980750 357 99258 49807.5 4980750 -32212 32723 5243.02 524302 -126 125 0.14 14 +358 2 10348 99259 1.07507 298.07507 149.57507 14957.5075 1.07507 298.07507 149.57507 14957.50734 1.07507 298.07507 149.57506999999998 14957.50700 2020-01-01 2020-01-02 2020-01-01 00:05:58 2020-01-02 03:34:19 2020-01-01 00:05:58.000 2020-01-02 03:34:19.000 358 99259 49808.5 4980850 358 99259 49808.5 4980850 -32211 32724 5244.02 524402 -125 126 1.14 114 +359 2 10349 99260 1.07807 298.07807 149.57807 14957.8078 1.07807 298.07806 149.57807 14957.80767 1.07807 298.07807 149.57807 14957.80700 2020-01-01 2020-01-02 2020-01-01 00:05:59 2020-01-02 03:34:20 2020-01-01 00:05:59.000 2020-01-02 03:34:20.000 359 99260 49809.5 4980950 359 99260 49809.5 4980950 -32210 32725 5245.02 524502 -124 127 2.14 214 +36 2 10026 99936 0.1081 300.1081 150.1081 15160.91891 0.1081 300.1081 150.1081 15160.91873 0.10810 300.10810 150.1081 15160.91810 2020-01-01 2020-01-02 2020-01-01 00:00:36 2020-01-02 03:45:36 2020-01-01 00:00:36.000 2020-01-02 03:45:36.000 36 99936 49986 5048586 36 99936 49986 5048586 -32533 32402 4565.009900990099 461066 -128 123 -2.4356435643564356 -246 +360 2 10350 99261 1.08108 298.08108 149.58108 14958.1081 1.08108 298.0811 149.58108 14958.10827 1.08108 298.08108 149.58108000000001 14958.10800 2020-01-01 2020-01-02 2020-01-01 00:06:00 2020-01-02 03:34:21 2020-01-01 00:06:00.000 2020-01-02 03:34:21.000 360 99261 49810.5 4981050 360 99261 49810.5 4981050 -32209 32726 5246.02 524602 -128 127 0.58 58 +361 2 10351 99262 1.08408 298.08408 149.58408 14958.4084 1.08408 298.08408 149.58408 14958.40856 1.08408 298.08408 149.58408 14958.40800 2020-01-01 2020-01-02 2020-01-01 00:06:01 2020-01-02 03:34:22 2020-01-01 00:06:01.000 2020-01-02 03:34:22.000 361 99262 49811.5 4981150 361 99262 49811.5 4981150 -32208 32727 5247.02 524702 -128 123 -0.98 -98 +362 2 10352 99263 1.08708 298.08708 149.58708 14958.7087 1.08708 298.0871 149.58708 14958.70868 1.08708 298.08708 149.58708000000001 14958.70800 2020-01-01 2020-01-02 2020-01-01 00:06:02 2020-01-02 03:34:23 2020-01-01 00:06:02.000 2020-01-02 03:34:23.000 362 99263 49812.5 4981250 362 99263 49812.5 4981250 -32207 32728 5248.02 524802 -127 124 0.02 2 +363 2 10353 99264 1.09009 298.09009 149.59009 14959.009 1.09009 298.0901 149.59008 14959.00884 1.09009 298.09009 149.59009 14959.00900 2020-01-01 2020-01-02 2020-01-01 00:06:03 2020-01-02 03:34:24 2020-01-01 00:06:03.000 2020-01-02 03:34:24.000 363 99264 49813.5 4981350 363 99264 49813.5 4981350 -32206 32729 5249.02 524902 -126 125 1.02 102 +364 2 10354 99265 1.09309 298.09309 149.59309 14959.3093 1.09309 298.09308 149.59309 14959.30915 1.09309 298.09309 149.59309 14959.30900 2020-01-01 2020-01-02 2020-01-01 00:06:04 2020-01-02 03:34:25 2020-01-01 00:06:04.000 2020-01-02 03:34:25.000 364 99265 49814.5 4981450 364 99265 49814.5 4981450 -32205 32730 5250.02 525002 -125 126 2.02 202 +365 2 10355 99266 1.09609 298.09609 149.59609 14959.6096 1.09609 298.0961 149.59609 14959.6099 1.09609 298.09609 149.59609 14959.60900 2020-01-01 2020-01-02 2020-01-01 00:06:05 2020-01-02 03:34:26 2020-01-01 00:06:05.000 2020-01-02 03:34:26.000 365 99266 49815.5 4981550 365 99266 49815.5 4981550 -32204 32731 5251.02 525102 -124 127 3.02 302 +366 2 10356 99267 1.09909 298.09909 149.59909 14959.9099 1.09909 298.0991 149.5991 14959.91003 1.09909 298.09909 149.59909 14959.90900 2020-01-01 2020-01-02 2020-01-01 00:06:06 2020-01-02 03:34:27 2020-01-01 00:06:06.000 2020-01-02 03:34:27.000 366 99267 49816.5 4981650 366 99267 49816.5 4981650 -32203 32732 5252.02 525202 -128 127 1.46 146 +367 2 10357 99268 1.1021 298.1021 149.6021 14960.21021 1.1021 298.1021 149.6021 14960.21015 1.10210 298.10210 149.60209999999998 14960.21000 2020-01-01 2020-01-02 2020-01-01 00:06:07 2020-01-02 03:34:28 2020-01-01 00:06:07.000 2020-01-02 03:34:28.000 367 99268 49817.5 4981750 367 99268 49817.5 4981750 -32202 32733 5253.02 525302 -128 123 -0.1 -10 +368 2 10358 99269 1.1051 298.1051 149.6051 14960.51051 1.1051 298.1051 149.6051 14960.51031 1.10510 298.10510 149.6051 14960.51000 2020-01-01 2020-01-02 2020-01-01 00:06:08 2020-01-02 03:34:29 2020-01-01 00:06:08.000 2020-01-02 03:34:29.000 368 99269 49818.5 4981850 368 99269 49818.5 4981850 -32201 32734 5254.02 525402 -127 124 0.9 90 +369 2 10359 99270 1.1081 298.1081 149.6081 14960.81081 1.1081 298.1081 149.6081 14960.81062 1.10810 298.10810 149.6081 14960.81000 2020-01-01 2020-01-02 2020-01-01 00:06:09 2020-01-02 03:34:30 2020-01-01 00:06:09.000 2020-01-02 03:34:30.000 369 99270 49819.5 4981950 369 99270 49819.5 4981950 -32200 32735 5255.02 525502 -126 125 1.9 190 +37 2 10027 99937 0.11111 300.11111 150.11111 15161.22222 0.11111 300.1111 150.11111 15161.22248 0.11111 300.11111 150.11111 15161.22211 2020-01-01 2020-01-02 2020-01-01 00:00:37 2020-01-02 03:45:37 2020-01-01 00:00:37.000 2020-01-02 03:45:37.000 37 99937 49987 5048687 37 99937 49987 5048687 -32532 32403 4566.009900990099 461167 -127 124 -1.4356435643564356 -145 +370 2 10360 99271 1.11111 298.11111 149.61111 14961.11111 1.11111 298.1111 149.61111 14961.11137 1.11111 298.11111 149.61111 14961.11100 2020-01-01 2020-01-02 2020-01-01 00:06:10 2020-01-02 03:34:31 2020-01-01 00:06:10.000 2020-01-02 03:34:31.000 370 99271 49820.5 4982050 370 99271 49820.5 4982050 -32199 32736 5256.02 525602 -125 126 2.9 290 +371 2 10361 99272 1.11411 298.11411 149.61411 14961.41141 1.11411 298.1141 149.61411 14961.4115 1.11411 298.11411 149.61411 14961.41100 2020-01-01 2020-01-02 2020-01-01 00:06:11 2020-01-02 03:34:32 2020-01-01 00:06:11.000 2020-01-02 03:34:32.000 371 99272 49821.5 4982150 371 99272 49821.5 4982150 -32198 32737 5257.02 525702 -124 127 3.9 390 +372 2 10362 99273 1.11711 298.11711 149.61711 14961.71171 1.11711 298.11713 149.61711 14961.71165 1.11711 298.11711 149.61711 14961.71100 2020-01-01 2020-01-02 2020-01-01 00:06:12 2020-01-02 03:34:33 2020-01-01 00:06:12.000 2020-01-02 03:34:33.000 372 99273 49822.5 4982250 372 99273 49822.5 4982250 -32197 32738 5258.02 525802 -128 127 2.34 234 +373 2 10363 99274 1.12012 298.12012 149.62012 14962.01201 1.12012 298.12012 149.62011 14962.01179 1.12012 298.12012 149.62012000000001 14962.01200 2020-01-01 2020-01-02 2020-01-01 00:06:13 2020-01-02 03:34:34 2020-01-01 00:06:13.000 2020-01-02 03:34:34.000 373 99274 49823.5 4982350 373 99274 49823.5 4982350 -32196 32739 5259.02 525902 -128 123 0.78 78 +374 2 10364 99275 1.12312 298.12312 149.62312 14962.31231 1.12312 298.1231 149.62312 14962.31208 1.12312 298.12312 149.62312 14962.31200 2020-01-01 2020-01-02 2020-01-01 00:06:14 2020-01-02 03:34:35 2020-01-01 00:06:14.000 2020-01-02 03:34:35.000 374 99275 49824.5 4982450 374 99275 49824.5 4982450 -32195 32740 5260.02 526002 -127 124 1.78 178 +375 2 10365 99276 1.12612 298.12612 149.62612 14962.61261 1.12612 298.12613 149.62612 14962.61283 1.12612 298.12612 149.62612 14962.61200 2020-01-01 2020-01-02 2020-01-01 00:06:15 2020-01-02 03:34:36 2020-01-01 00:06:15.000 2020-01-02 03:34:36.000 375 99276 49825.5 4982550 375 99276 49825.5 4982550 -32194 32741 5261.02 526102 -126 125 2.78 278 +376 2 10366 99277 1.12912 298.12912 149.62912 14962.91291 1.12912 298.12912 149.62912 14962.91297 1.12912 298.12912 149.62912 14962.91200 2020-01-01 2020-01-02 2020-01-01 00:06:16 2020-01-02 03:34:37 2020-01-01 00:06:16.000 2020-01-02 03:34:37.000 376 99277 49826.5 4982650 376 99277 49826.5 4982650 -32193 32742 5262.02 526202 -125 126 3.78 378 377 2 10367 99278 1.13213 298.13213 149.63213 14963.21321 1.13213 298.13214 149.63213 14963.21312 1.13213 298.13213 149.63213 14963.21300 2020-01-01 2020-01-02 2020-01-01 00:06:17 2020-01-02 03:34:38 2020-01-01 00:06:17.000 2020-01-02 03:34:38.000 377 99278 49827.5 4982750 377 99278 49827.5 4982750 -32192 32743 5263.02 526302 -124 127 4.78 478 -378 2 10368 99279 1.13513 298.13513 149.63513 14963.51351 1.13513 298.13513 149.63513 14963.51326 1.13513 298.13513 149.6351300000001 14963.51300 2020-01-01 2020-01-02 2020-01-01 00:06:18 2020-01-02 03:34:39 2020-01-01 00:06:18.000 2020-01-02 03:34:39.000 378 99279 49828.5 4982850 378 99279 49828.5 4982850 -32191 32744 5264.02 526402 -128 127 3.22 322 -379 2 10369 99280 1.13813 298.13813 149.63813 14963.81381 1.13813 298.13815 149.63814 14963.81401 1.13813 298.13813 149.63812999999993 14963.81300 2020-01-01 2020-01-02 2020-01-01 00:06:19 2020-01-02 03:34:40 2020-01-01 00:06:19.000 2020-01-02 03:34:40.000 379 99280 49829.5 4982950 379 99280 49829.5 4982950 -32190 32745 5265.02 526502 -128 127 1.66 166 -38 2 10028 99938 0.11411 300.11411 150.11411 15161.52552 0.11411 300.1141 150.11411 15161.52562 0.11411 300.11411 150.11411000000024 15161.52511 2020-01-01 2020-01-02 2020-01-01 00:00:38 2020-01-02 03:45:38 2020-01-01 00:00:38.000 2020-01-02 03:45:38.000 38 99938 49988 5048788 38 99938 49988 5048788 -32531 32404 4567.009900990099 461268 -126 125 -0.43564356435643564 -44 -380 2 10370 99281 1.14114 298.14114 149.64114 14964.11411 1.14114 298.14114 149.64114 14964.11431 1.14114 298.14114 149.64113999999987 14964.11400 2020-01-01 2020-01-02 2020-01-01 00:06:20 2020-01-02 03:34:41 2020-01-01 00:06:20.000 2020-01-02 03:34:41.000 380 99281 49830.5 4983050 380 99281 49830.5 4983050 -32189 32746 5266.02 526602 -128 124 0.1 10 -381 2 10371 99282 1.14414 298.14414 149.64414 14964.41441 1.14414 298.14413 149.64414 14964.41448 1.14414 298.14414 149.64414000000016 14964.41400 2020-01-01 2020-01-02 2020-01-01 00:06:21 2020-01-02 03:34:42 2020-01-01 00:06:21.000 2020-01-02 03:34:42.000 381 99282 49831.5 4983150 381 99282 49831.5 4983150 -32188 32747 5267.02 526702 -127 125 1.1 110 -382 2 10372 99283 1.14714 298.14714 149.64714 14964.71471 1.14714 298.14716 149.64714 14964.71459 1.14714 298.14714 149.64713999999978 14964.71400 2020-01-01 2020-01-02 2020-01-01 00:06:22 2020-01-02 03:34:43 2020-01-01 00:06:22.000 2020-01-02 03:34:43.000 382 99283 49832.5 4983250 382 99283 49832.5 4983250 -32187 32748 5268.02 526802 -126 126 2.1 210 +378 2 10368 99279 1.13513 298.13513 149.63513 14963.51351 1.13513 298.13513 149.63513 14963.51326 1.13513 298.13513 149.63513 14963.51300 2020-01-01 2020-01-02 2020-01-01 00:06:18 2020-01-02 03:34:39 2020-01-01 00:06:18.000 2020-01-02 03:34:39.000 378 99279 49828.5 4982850 378 99279 49828.5 4982850 -32191 32744 5264.02 526402 -128 127 3.22 322 +379 2 10369 99280 1.13813 298.13813 149.63813 14963.81381 1.13813 298.13815 149.63814 14963.81401 1.13813 298.13813 149.63813 14963.81300 2020-01-01 2020-01-02 2020-01-01 00:06:19 2020-01-02 03:34:40 2020-01-01 00:06:19.000 2020-01-02 03:34:40.000 379 99280 49829.5 4982950 379 99280 49829.5 4982950 -32190 32745 5265.02 526502 -128 127 1.66 166 +38 2 10028 99938 0.11411 300.11411 150.11411 15161.52552 0.11411 300.1141 150.11411 15161.52562 0.11411 300.11411 150.11411 15161.52511 2020-01-01 2020-01-02 2020-01-01 00:00:38 2020-01-02 03:45:38 2020-01-01 00:00:38.000 2020-01-02 03:45:38.000 38 99938 49988 5048788 38 99938 49988 5048788 -32531 32404 4567.009900990099 461268 -126 125 -0.43564356435643564 -44 +380 2 10370 99281 1.14114 298.14114 149.64114 14964.11411 1.14114 298.14114 149.64114 14964.11431 1.14114 298.14114 149.64114 14964.11400 2020-01-01 2020-01-02 2020-01-01 00:06:20 2020-01-02 03:34:41 2020-01-01 00:06:20.000 2020-01-02 03:34:41.000 380 99281 49830.5 4983050 380 99281 49830.5 4983050 -32189 32746 5266.02 526602 -128 124 0.1 10 +381 2 10371 99282 1.14414 298.14414 149.64414 14964.41441 1.14414 298.14413 149.64414 14964.41448 1.14414 298.14414 149.64414 14964.41400 2020-01-01 2020-01-02 2020-01-01 00:06:21 2020-01-02 03:34:42 2020-01-01 00:06:21.000 2020-01-02 03:34:42.000 381 99282 49831.5 4983150 381 99282 49831.5 4983150 -32188 32747 5267.02 526702 -127 125 1.1 110 +382 2 10372 99283 1.14714 298.14714 149.64714 14964.71471 1.14714 298.14716 149.64714 14964.71459 1.14714 298.14714 149.64714 14964.71400 2020-01-01 2020-01-02 2020-01-01 00:06:22 2020-01-02 03:34:43 2020-01-01 00:06:22.000 2020-01-02 03:34:43.000 382 99283 49832.5 4983250 382 99283 49832.5 4983250 -32187 32748 5268.02 526802 -126 126 2.1 210 383 2 10373 99284 1.15015 298.15015 149.65015 14965.01501 1.15015 298.15015 149.65014 14965.01472 1.15015 298.15015 149.65015 14965.01500 2020-01-01 2020-01-02 2020-01-01 00:06:23 2020-01-02 03:34:44 2020-01-01 00:06:23.000 2020-01-02 03:34:44.000 383 99284 49833.5 4983350 383 99284 49833.5 4983350 -32186 32749 5269.02 526902 -125 127 3.1 310 -384 2 10374 99285 1.15315 298.15315 149.65315 14965.31531 1.15315 298.15317 149.65315 14965.31547 1.15315 298.15315 149.65315000000007 14965.31500 2020-01-01 2020-01-02 2020-01-01 00:06:24 2020-01-02 03:34:45 2020-01-01 00:06:24.000 2020-01-02 03:34:45.000 384 99285 49834.5 4983450 384 99285 49834.5 4983450 -32185 32750 5270.02 527002 -128 127 1.54 154 -385 2 10375 99286 1.15615 298.15615 149.65615 14965.61561 1.15615 298.15616 149.65615 14965.61578 1.15615 298.15615 149.65615000000008 14965.61500 2020-01-01 2020-01-02 2020-01-01 00:06:25 2020-01-02 03:34:46 2020-01-01 00:06:25.000 2020-01-02 03:34:46.000 385 99286 49835.5 4983550 385 99286 49835.5 4983550 -32184 32751 5271.02 527102 -128 127 -0.02 -2 -386 2 10376 99287 1.15915 298.15915 149.65915 14965.91591 1.15915 298.15915 149.65915 14965.91594 1.15915 298.15915 149.65914999999998 14965.91500 2020-01-01 2020-01-02 2020-01-01 00:06:26 2020-01-02 03:34:47 2020-01-01 00:06:26.000 2020-01-02 03:34:47.000 386 99287 49836.5 4983650 386 99287 49836.5 4983650 -32183 32752 5272.02 527202 -128 123 -1.58 -158 -387 2 10377 99288 1.16216 298.16216 149.66216 14966.21621 1.16216 298.16217 149.66216 14966.21606 1.16216 298.16216 149.6621599999999 14966.21600 2020-01-01 2020-01-02 2020-01-01 00:06:27 2020-01-02 03:34:48 2020-01-01 00:06:27.000 2020-01-02 03:34:48.000 387 99288 49837.5 4983750 387 99288 49837.5 4983750 -32182 32753 5273.02 527302 -127 124 -0.58 -58 +384 2 10374 99285 1.15315 298.15315 149.65315 14965.31531 1.15315 298.15317 149.65315 14965.31547 1.15315 298.15315 149.65315 14965.31500 2020-01-01 2020-01-02 2020-01-01 00:06:24 2020-01-02 03:34:45 2020-01-01 00:06:24.000 2020-01-02 03:34:45.000 384 99285 49834.5 4983450 384 99285 49834.5 4983450 -32185 32750 5270.02 527002 -128 127 1.54 154 +385 2 10375 99286 1.15615 298.15615 149.65615 14965.61561 1.15615 298.15616 149.65615 14965.61578 1.15615 298.15615 149.65615 14965.61500 2020-01-01 2020-01-02 2020-01-01 00:06:25 2020-01-02 03:34:46 2020-01-01 00:06:25.000 2020-01-02 03:34:46.000 385 99286 49835.5 4983550 385 99286 49835.5 4983550 -32184 32751 5271.02 527102 -128 127 -0.02 -2 +386 2 10376 99287 1.15915 298.15915 149.65915 14965.91591 1.15915 298.15915 149.65915 14965.91594 1.15915 298.15915 149.65915 14965.91500 2020-01-01 2020-01-02 2020-01-01 00:06:26 2020-01-02 03:34:47 2020-01-01 00:06:26.000 2020-01-02 03:34:47.000 386 99287 49836.5 4983650 386 99287 49836.5 4983650 -32183 32752 5272.02 527202 -128 123 -1.58 -158 +387 2 10377 99288 1.16216 298.16216 149.66216 14966.21621 1.16216 298.16217 149.66216 14966.21606 1.16216 298.16216 149.66216 14966.21600 2020-01-01 2020-01-02 2020-01-01 00:06:27 2020-01-02 03:34:48 2020-01-01 00:06:27.000 2020-01-02 03:34:48.000 387 99288 49837.5 4983750 387 99288 49837.5 4983750 -32182 32753 5273.02 527302 -127 124 -0.58 -58 388 2 10378 99289 1.16516 298.16516 149.66516 14966.51651 1.16516 298.16516 149.66516 14966.51636 1.16516 298.16516 149.66516 14966.51600 2020-01-01 2020-01-02 2020-01-01 00:06:28 2020-01-02 03:34:49 2020-01-01 00:06:28.000 2020-01-02 03:34:49.000 388 99289 49838.5 4983850 388 99289 49838.5 4983850 -32181 32754 5274.02 527402 -126 125 0.42 42 -389 2 10379 99290 1.16816 298.16816 149.66816 14966.81681 1.16816 298.16818 149.66816 14966.81695 1.16816 298.16816 149.6681599999999 14966.81600 2020-01-01 2020-01-02 2020-01-01 00:06:29 2020-01-02 03:34:50 2020-01-01 00:06:29.000 2020-01-02 03:34:50.000 389 99290 49839.5 4983950 389 99290 49839.5 4983950 -32180 32755 5275.02 527502 -125 126 1.42 142 -39 2 10029 99939 0.11711 300.11711 150.11711 15161.82882 0.11711 300.11713 150.11711 15161.82876 0.11711 300.11711 150.1171099999999 15161.82811 2020-01-01 2020-01-02 2020-01-01 00:00:39 2020-01-02 03:45:39 2020-01-01 00:00:39.000 2020-01-02 03:45:39.000 39 99939 49989 5048889 39 99939 49989 5048889 -32530 32405 4568.009900990099 461369 -125 126 0.5643564356435643 57 -390 2 10380 99291 1.17117 298.17117 149.67117 14967.11711 1.17117 298.17117 149.67117 14967.11725 1.17117 298.17117 149.67116999999982 14967.11700 2020-01-01 2020-01-02 2020-01-01 00:06:30 2020-01-02 03:34:51 2020-01-01 00:06:30.000 2020-01-02 03:34:51.000 390 99291 49840.5 4984050 390 99291 49840.5 4984050 -32179 32756 5276.02 527602 -124 127 2.42 242 -391 2 10381 99292 1.17417 298.17417 149.67417 14967.41741 1.17417 298.17416 149.67417 14967.41741 1.17417 298.17417 149.67417000000015 14967.41700 2020-01-01 2020-01-02 2020-01-01 00:06:31 2020-01-02 03:34:52 2020-01-01 00:06:31.000 2020-01-02 03:34:52.000 391 99292 49841.5 4984150 391 99292 49841.5 4984150 -32178 32757 5277.02 527702 -128 127 0.86 86 -392 2 10382 99293 1.17717 298.17717 149.67717 14967.71771 1.17717 298.1772 149.67717 14967.71753 1.17717 298.17717 149.67717000000016 14967.71700 2020-01-01 2020-01-02 2020-01-01 00:06:32 2020-01-02 03:34:53 2020-01-01 00:06:32.000 2020-01-02 03:34:53.000 392 99293 49842.5 4984250 392 99293 49842.5 4984250 -32177 32758 5278.02 527802 -128 123 -0.7 -70 -393 2 10383 99294 1.18018 298.18018 149.68018 14968.01801 1.18018 298.18018 149.68017 14968.01782 1.18018 298.18018 149.68017999999995 14968.01800 2020-01-01 2020-01-02 2020-01-01 00:06:33 2020-01-02 03:34:54 2020-01-01 00:06:33.000 2020-01-02 03:34:54.000 393 99294 49843.5 4984350 393 99294 49843.5 4984350 -32176 32759 5279.02 527902 -127 124 0.3 30 +389 2 10379 99290 1.16816 298.16816 149.66816 14966.81681 1.16816 298.16818 149.66816 14966.81695 1.16816 298.16816 149.66816 14966.81600 2020-01-01 2020-01-02 2020-01-01 00:06:29 2020-01-02 03:34:50 2020-01-01 00:06:29.000 2020-01-02 03:34:50.000 389 99290 49839.5 4983950 389 99290 49839.5 4983950 -32180 32755 5275.02 527502 -125 126 1.42 142 +39 2 10029 99939 0.11711 300.11711 150.11711 15161.82882 0.11711 300.11713 150.11711 15161.82876 0.11711 300.11711 150.11711 15161.82811 2020-01-01 2020-01-02 2020-01-01 00:00:39 2020-01-02 03:45:39 2020-01-01 00:00:39.000 2020-01-02 03:45:39.000 39 99939 49989 5048889 39 99939 49989 5048889 -32530 32405 4568.009900990099 461369 -125 126 0.5643564356435643 57 +390 2 10380 99291 1.17117 298.17117 149.67117 14967.11711 1.17117 298.17117 149.67117 14967.11725 1.17117 298.17117 149.67117 14967.11700 2020-01-01 2020-01-02 2020-01-01 00:06:30 2020-01-02 03:34:51 2020-01-01 00:06:30.000 2020-01-02 03:34:51.000 390 99291 49840.5 4984050 390 99291 49840.5 4984050 -32179 32756 5276.02 527602 -124 127 2.42 242 +391 2 10381 99292 1.17417 298.17417 149.67417 14967.41741 1.17417 298.17416 149.67417 14967.41741 1.17417 298.17417 149.67417 14967.41700 2020-01-01 2020-01-02 2020-01-01 00:06:31 2020-01-02 03:34:52 2020-01-01 00:06:31.000 2020-01-02 03:34:52.000 391 99292 49841.5 4984150 391 99292 49841.5 4984150 -32178 32757 5277.02 527702 -128 127 0.86 86 +392 2 10382 99293 1.17717 298.17717 149.67717 14967.71771 1.17717 298.1772 149.67717 14967.71753 1.17717 298.17717 149.67717000000002 14967.71700 2020-01-01 2020-01-02 2020-01-01 00:06:32 2020-01-02 03:34:53 2020-01-01 00:06:32.000 2020-01-02 03:34:53.000 392 99293 49842.5 4984250 392 99293 49842.5 4984250 -32177 32758 5278.02 527802 -128 123 -0.7 -70 +393 2 10383 99294 1.18018 298.18018 149.68018 14968.01801 1.18018 298.18018 149.68017 14968.01782 1.18018 298.18018 149.68018 14968.01800 2020-01-01 2020-01-02 2020-01-01 00:06:33 2020-01-02 03:34:54 2020-01-01 00:06:33.000 2020-01-02 03:34:54.000 393 99294 49843.5 4984350 393 99294 49843.5 4984350 -32176 32759 5279.02 527902 -127 124 0.3 30 394 2 10384 99295 1.18318 298.18318 149.68318 14968.31831 1.18318 298.1832 149.68318 14968.31842 1.18318 298.18318 149.68318 14968.31800 2020-01-01 2020-01-02 2020-01-01 00:06:34 2020-01-02 03:34:55 2020-01-01 00:06:34.000 2020-01-02 03:34:55.000 394 99295 49844.5 4984450 394 99295 49844.5 4984450 -32175 32760 5280.02 528002 -126 125 1.3 130 -395 2 10385 99296 1.18618 298.18618 149.68618 14968.61861 1.18618 298.1862 149.68618 14968.61875 1.18618 298.18618 149.68618000000006 14968.61800 2020-01-01 2020-01-02 2020-01-01 00:06:35 2020-01-02 03:34:56 2020-01-01 00:06:35.000 2020-01-02 03:34:56.000 395 99296 49845.5 4984550 395 99296 49845.5 4984550 -32174 32761 5281.02 528102 -125 126 2.3 230 -396 2 10386 99297 1.18918 298.18918 149.68918 14968.91891 1.18918 298.18918 149.68918 14968.91889 1.18918 298.18918 149.68917999999994 14968.91800 2020-01-01 2020-01-02 2020-01-01 00:06:36 2020-01-02 03:34:57 2020-01-01 00:06:36.000 2020-01-02 03:34:57.000 396 99297 49846.5 4984650 396 99297 49846.5 4984650 -32173 32762 5282.02 528202 -124 127 3.3 330 -397 2 10387 99298 1.19219 298.19219 149.69219 14969.21921 1.19219 298.1922 149.69219 14969.21964 1.19219 298.19219 149.6921899999999 14969.21900 2020-01-01 2020-01-02 2020-01-01 00:06:37 2020-01-02 03:34:58 2020-01-01 00:06:37.000 2020-01-02 03:34:58.000 397 99298 49847.5 4984750 397 99298 49847.5 4984750 -32172 32763 5283.02 528302 -128 127 1.74 174 -398 2 10388 99299 1.19519 298.19519 149.69519 14969.51951 1.19519 298.1952 149.69519 14969.51929 1.19519 298.19519 149.6951900000002 14969.51900 2020-01-01 2020-01-02 2020-01-01 00:06:38 2020-01-02 03:34:59 2020-01-01 00:06:38.000 2020-01-02 03:34:59.000 398 99299 49848.5 4984850 398 99299 49848.5 4984850 -32171 32764 5284.02 528402 -128 123 0.18 18 -399 2 10389 99300 1.19819 298.19819 149.69819 14969.81981 1.19819 298.1982 149.69819 14969.81989 1.19819 298.19819 149.69818999999987 14969.81900 2020-01-01 2020-01-02 2020-01-01 00:06:39 2020-01-02 03:35:00 2020-01-01 00:06:39.000 2020-01-02 03:35:00.000 399 99300 49849.5 4984950 399 99300 49849.5 4984950 -32170 32765 5285.02 528502 -127 124 1.18 118 -4 2 1003 9994 0.01201 300.01201 150.01201 15151.21321 0.01201 300.01202 150.01201 15151.21318 0.01201 300.01201 150.01201000000017 15151.21301 2020-01-01 2020-01-02 2020-01-01 00:00:04 2020-01-02 03:45:04 2020-01-01 00:00:04.000 2020-01-02 03:45:04.000 4 99904 49954 5045354 4 99904 49954 5045354 -32565 32370 4533.009900990099 457834 -128 127 -1.4851485148514851 -150 -40 2 10030 99940 0.12012 300.12012 150.12012 15162.13213 0.12012 300.12012 150.12011 15162.13191 0.12012 300.12012 150.1201199999998 15162.13212 2020-01-01 2020-01-02 2020-01-01 00:00:40 2020-01-02 03:45:40 2020-01-01 00:00:40.000 2020-01-02 03:45:40.000 40 99940 49990 5048990 40 99940 49990 5048990 -32529 32406 4569.009900990099 461470 -124 127 1.5643564356435644 158 -400 2 10390 99301 1.2012 298.2012 149.7012 14970.12012 1.2012 298.2012 149.7012 14970.12022 1.20120 298.20120 149.70120000000003 14970.12000 2020-01-01 2020-01-02 2020-01-01 00:06:40 2020-01-02 03:35:01 2020-01-01 00:06:40.000 2020-01-02 03:35:01.000 400 99301 49850.5 4985050 400 99301 49850.5 4985050 -32169 32766 5286.02 528602 -126 125 2.18 218 -401 2 10391 99302 1.2042 298.2042 149.7042 14970.42042 1.2042 298.2042 149.7042 14970.42035 1.20420 298.20420 149.7042000000001 14970.42000 2020-01-01 2020-01-02 2020-01-01 00:06:41 2020-01-02 03:35:02 2020-01-01 00:06:41.000 2020-01-02 03:35:02.000 401 99302 49851.5 4985150 401 99302 49851.5 4985150 -32168 32767 5287.02 528702 -125 126 3.18 318 -402 2 10392 99303 1.2072 298.2072 149.7072 14970.72072 1.2072 298.2072 149.70721 14970.72111 1.20720 298.20720 149.70720000000006 14970.72000 2020-01-01 2020-01-02 2020-01-01 00:06:42 2020-01-02 03:35:03 2020-01-01 00:06:42.000 2020-01-02 03:35:03.000 402 99303 49852.5 4985250 402 99303 49852.5 4985250 -32768 32370 4632.66 463266 -124 127 4.18 418 -403 2 10393 99304 1.21021 298.21021 149.71021 14971.02102 1.21021 298.2102 149.7102 14971.02077 1.21021 298.21021 149.71020999999993 14971.02100 2020-01-01 2020-01-02 2020-01-01 00:06:43 2020-01-02 03:35:04 2020-01-01 00:06:43.000 2020-01-02 03:35:04.000 403 99304 49853.5 4985350 403 99304 49853.5 4985350 -32767 32371 4633.66 463366 -128 127 2.62 262 -404 2 10394 99305 1.21321 298.21321 149.71321 14971.32132 1.21321 298.21323 149.71321 14971.32139 1.21321 298.21321 149.71320999999992 14971.32100 2020-01-01 2020-01-02 2020-01-01 00:06:44 2020-01-02 03:35:05 2020-01-01 00:06:44.000 2020-01-02 03:35:05.000 404 99305 49854.5 4985450 404 99305 49854.5 4985450 -32766 32372 4634.66 463466 -128 127 1.06 106 +395 2 10385 99296 1.18618 298.18618 149.68618 14968.61861 1.18618 298.1862 149.68618 14968.61875 1.18618 298.18618 149.68618 14968.61800 2020-01-01 2020-01-02 2020-01-01 00:06:35 2020-01-02 03:34:56 2020-01-01 00:06:35.000 2020-01-02 03:34:56.000 395 99296 49845.5 4984550 395 99296 49845.5 4984550 -32174 32761 5281.02 528102 -125 126 2.3 230 +396 2 10386 99297 1.18918 298.18918 149.68918 14968.91891 1.18918 298.18918 149.68918 14968.91889 1.18918 298.18918 149.68918 14968.91800 2020-01-01 2020-01-02 2020-01-01 00:06:36 2020-01-02 03:34:57 2020-01-01 00:06:36.000 2020-01-02 03:34:57.000 396 99297 49846.5 4984650 396 99297 49846.5 4984650 -32173 32762 5282.02 528202 -124 127 3.3 330 +397 2 10387 99298 1.19219 298.19219 149.69219 14969.21921 1.19219 298.1922 149.69219 14969.21964 1.19219 298.19219 149.69218999999998 14969.21900 2020-01-01 2020-01-02 2020-01-01 00:06:37 2020-01-02 03:34:58 2020-01-01 00:06:37.000 2020-01-02 03:34:58.000 397 99298 49847.5 4984750 397 99298 49847.5 4984750 -32172 32763 5283.02 528302 -128 127 1.74 174 +398 2 10388 99299 1.19519 298.19519 149.69519 14969.51951 1.19519 298.1952 149.69519 14969.51929 1.19519 298.19519 149.69519 14969.51900 2020-01-01 2020-01-02 2020-01-01 00:06:38 2020-01-02 03:34:59 2020-01-01 00:06:38.000 2020-01-02 03:34:59.000 398 99299 49848.5 4984850 398 99299 49848.5 4984850 -32171 32764 5284.02 528402 -128 123 0.18 18 +399 2 10389 99300 1.19819 298.19819 149.69819 14969.81981 1.19819 298.1982 149.69819 14969.81989 1.19819 298.19819 149.69818999999998 14969.81900 2020-01-01 2020-01-02 2020-01-01 00:06:39 2020-01-02 03:35:00 2020-01-01 00:06:39.000 2020-01-02 03:35:00.000 399 99300 49849.5 4984950 399 99300 49849.5 4984950 -32170 32765 5285.02 528502 -127 124 1.18 118 +4 2 1003 9994 0.01201 300.01201 150.01201 15151.21321 0.01201 300.01202 150.01201 15151.21318 0.01201 300.01201 150.01201 15151.21301 2020-01-01 2020-01-02 2020-01-01 00:00:04 2020-01-02 03:45:04 2020-01-01 00:00:04.000 2020-01-02 03:45:04.000 4 99904 49954 5045354 4 99904 49954 5045354 -32565 32370 4533.009900990099 457834 -128 127 -1.4851485148514851 -150 +40 2 10030 99940 0.12012 300.12012 150.12012 15162.13213 0.12012 300.12012 150.12011 15162.13191 0.12012 300.12012 150.12012000000001 15162.13212 2020-01-01 2020-01-02 2020-01-01 00:00:40 2020-01-02 03:45:40 2020-01-01 00:00:40.000 2020-01-02 03:45:40.000 40 99940 49990 5048990 40 99940 49990 5048990 -32529 32406 4569.009900990099 461470 -124 127 1.5643564356435644 158 +400 2 10390 99301 1.2012 298.2012 149.7012 14970.12012 1.2012 298.2012 149.7012 14970.12022 1.20120 298.20120 149.7012 14970.12000 2020-01-01 2020-01-02 2020-01-01 00:06:40 2020-01-02 03:35:01 2020-01-01 00:06:40.000 2020-01-02 03:35:01.000 400 99301 49850.5 4985050 400 99301 49850.5 4985050 -32169 32766 5286.02 528602 -126 125 2.18 218 +401 2 10391 99302 1.2042 298.2042 149.7042 14970.42042 1.2042 298.2042 149.7042 14970.42035 1.20420 298.20420 149.70420000000001 14970.42000 2020-01-01 2020-01-02 2020-01-01 00:06:41 2020-01-02 03:35:02 2020-01-01 00:06:41.000 2020-01-02 03:35:02.000 401 99302 49851.5 4985150 401 99302 49851.5 4985150 -32168 32767 5287.02 528702 -125 126 3.18 318 +402 2 10392 99303 1.2072 298.2072 149.7072 14970.72072 1.2072 298.2072 149.70721 14970.72111 1.20720 298.20720 149.7072 14970.72000 2020-01-01 2020-01-02 2020-01-01 00:06:42 2020-01-02 03:35:03 2020-01-01 00:06:42.000 2020-01-02 03:35:03.000 402 99303 49852.5 4985250 402 99303 49852.5 4985250 -32768 32370 4632.66 463266 -124 127 4.18 418 +403 2 10393 99304 1.21021 298.21021 149.71021 14971.02102 1.21021 298.2102 149.7102 14971.02077 1.21021 298.21021 149.71021000000002 14971.02100 2020-01-01 2020-01-02 2020-01-01 00:06:43 2020-01-02 03:35:04 2020-01-01 00:06:43.000 2020-01-02 03:35:04.000 403 99304 49853.5 4985350 403 99304 49853.5 4985350 -32767 32371 4633.66 463366 -128 127 2.62 262 +404 2 10394 99305 1.21321 298.21321 149.71321 14971.32132 1.21321 298.21323 149.71321 14971.32139 1.21321 298.21321 149.71321 14971.32100 2020-01-01 2020-01-02 2020-01-01 00:06:44 2020-01-02 03:35:05 2020-01-01 00:06:44.000 2020-01-02 03:35:05.000 404 99305 49854.5 4985450 404 99305 49854.5 4985450 -32766 32372 4634.66 463466 -128 127 1.06 106 405 2 10395 99306 1.21621 298.21621 149.71621 14971.62162 1.21621 298.21622 149.71621 14971.62169 1.21621 298.21621 149.71621 14971.62100 2020-01-01 2020-01-02 2020-01-01 00:06:45 2020-01-02 03:35:06 2020-01-01 00:06:45.000 2020-01-02 03:35:06.000 405 99306 49855.5 4985550 405 99306 49855.5 4985550 -32765 32373 4635.66 463566 -128 124 -0.5 -50 -406 2 10396 99307 1.21921 298.21921 149.71921 14971.92192 1.21921 298.2192 149.71921 14971.92199 1.21921 298.21921 149.71920999999992 14971.92100 2020-01-01 2020-01-02 2020-01-01 00:06:46 2020-01-02 03:35:07 2020-01-01 00:06:46.000 2020-01-02 03:35:07.000 406 99307 49856.5 4985650 406 99307 49856.5 4985650 -32764 32374 4636.66 463666 -127 125 0.5 50 -407 2 10397 99308 1.22222 298.22222 149.72222 14972.22222 1.22222 298.22223 149.72222 14972.22257 1.22222 298.22222 149.72221999999982 14972.22200 2020-01-01 2020-01-02 2020-01-01 00:06:47 2020-01-02 03:35:08 2020-01-01 00:06:47.000 2020-01-02 03:35:08.000 407 99308 49857.5 4985750 407 99308 49857.5 4985750 -32763 32375 4637.66 463766 -126 126 1.5 150 -408 2 10398 99309 1.22522 298.22522 149.72522 14972.52252 1.22522 298.22522 149.72522 14972.52224 1.22522 298.22522 149.7252200000001 14972.52200 2020-01-01 2020-01-02 2020-01-01 00:06:48 2020-01-02 03:35:09 2020-01-01 00:06:48.000 2020-01-02 03:35:09.000 408 99309 49858.5 4985850 408 99309 49858.5 4985850 -32762 32376 4638.66 463866 -125 127 2.5 250 -409 2 10399 99310 1.22822 298.22822 149.72822 14972.82282 1.22822 298.22824 149.72822 14972.82286 1.22822 298.22822 149.7282200000002 14972.82200 2020-01-01 2020-01-02 2020-01-01 00:06:49 2020-01-02 03:35:10 2020-01-01 00:06:49.000 2020-01-02 03:35:10.000 409 99310 49859.5 4985950 409 99310 49859.5 4985950 -32761 32377 4639.66 463966 -128 127 0.94 94 -41 2 10031 99941 0.12312 300.12312 150.12312 15162.43543 0.12312 300.1231 150.12312 15162.43521 0.12312 300.12312 150.12312000000014 15162.43512 2020-01-01 2020-01-02 2020-01-01 00:00:41 2020-01-02 03:45:41 2020-01-01 00:00:41.000 2020-01-02 03:45:41.000 41 99941 49991 5049091 41 99941 49991 5049091 -32528 32407 4570.009900990099 461571 -128 127 0.0297029702970297 3 -410 2 10400 99311 1.23123 298.23123 149.73123 14973.12312 1.23123 298.23123 149.73123 14973.12316 1.23123 298.23123 149.73122999999995 14973.12300 2020-01-01 2020-01-02 2020-01-01 00:06:50 2020-01-02 03:35:11 2020-01-01 00:06:50.000 2020-01-02 03:35:11.000 410 99311 49860.5 4986050 410 99311 49860.5 4986050 -32760 32378 4640.66 464066 -128 127 -0.62 -62 +406 2 10396 99307 1.21921 298.21921 149.71921 14971.92192 1.21921 298.2192 149.71921 14971.92199 1.21921 298.21921 149.71921 14971.92100 2020-01-01 2020-01-02 2020-01-01 00:06:46 2020-01-02 03:35:07 2020-01-01 00:06:46.000 2020-01-02 03:35:07.000 406 99307 49856.5 4985650 406 99307 49856.5 4985650 -32764 32374 4636.66 463666 -127 125 0.5 50 +407 2 10397 99308 1.22222 298.22222 149.72222 14972.22222 1.22222 298.22223 149.72222 14972.22257 1.22222 298.22222 149.72222 14972.22200 2020-01-01 2020-01-02 2020-01-01 00:06:47 2020-01-02 03:35:08 2020-01-01 00:06:47.000 2020-01-02 03:35:08.000 407 99308 49857.5 4985750 407 99308 49857.5 4985750 -32763 32375 4637.66 463766 -126 126 1.5 150 +408 2 10398 99309 1.22522 298.22522 149.72522 14972.52252 1.22522 298.22522 149.72522 14972.52224 1.22522 298.22522 149.72522 14972.52200 2020-01-01 2020-01-02 2020-01-01 00:06:48 2020-01-02 03:35:09 2020-01-01 00:06:48.000 2020-01-02 03:35:09.000 408 99309 49858.5 4985850 408 99309 49858.5 4985850 -32762 32376 4638.66 463866 -125 127 2.5 250 +409 2 10399 99310 1.22822 298.22822 149.72822 14972.82282 1.22822 298.22824 149.72822 14972.82286 1.22822 298.22822 149.72822 14972.82200 2020-01-01 2020-01-02 2020-01-01 00:06:49 2020-01-02 03:35:10 2020-01-01 00:06:49.000 2020-01-02 03:35:10.000 409 99310 49859.5 4985950 409 99310 49859.5 4985950 -32761 32377 4639.66 463966 -128 127 0.94 94 +41 2 10031 99941 0.12312 300.12312 150.12312 15162.43543 0.12312 300.1231 150.12312 15162.43521 0.12312 300.12312 150.12312 15162.43512 2020-01-01 2020-01-02 2020-01-01 00:00:41 2020-01-02 03:45:41 2020-01-01 00:00:41.000 2020-01-02 03:45:41.000 41 99941 49991 5049091 41 99941 49991 5049091 -32528 32407 4570.009900990099 461571 -128 127 0.0297029702970297 3 +410 2 10400 99311 1.23123 298.23123 149.73123 14973.12312 1.23123 298.23123 149.73123 14973.12316 1.23123 298.23123 149.73122999999998 14973.12300 2020-01-01 2020-01-02 2020-01-01 00:06:50 2020-01-02 03:35:11 2020-01-01 00:06:50.000 2020-01-02 03:35:11.000 410 99311 49860.5 4986050 410 99311 49860.5 4986050 -32760 32378 4640.66 464066 -128 127 -0.62 -62 411 2 10401 99312 1.23423 298.23423 149.73423 14973.42342 1.23423 298.23422 149.73423 14973.42345 1.23423 298.23423 149.73423 14973.42300 2020-01-01 2020-01-02 2020-01-01 00:06:51 2020-01-02 03:35:12 2020-01-01 00:06:51.000 2020-01-02 03:35:12.000 411 99312 49861.5 4986150 411 99312 49861.5 4986150 -32759 32379 4641.66 464166 -128 123 -2.18 -218 -412 2 10402 99313 1.23723 298.23723 149.73723 14973.72372 1.23723 298.23724 149.73724 14973.72405 1.23723 298.23723 149.73723000000007 14973.72300 2020-01-01 2020-01-02 2020-01-01 00:06:52 2020-01-02 03:35:13 2020-01-01 00:06:52.000 2020-01-02 03:35:13.000 412 99313 49862.5 4986250 412 99313 49862.5 4986250 -32758 32380 4642.66 464266 -127 124 -1.18 -118 -413 2 10403 99314 1.24024 298.24024 149.74024 14974.02402 1.24024 298.24023 149.74023 14974.02374 1.24024 298.24024 149.74023999999983 14974.02400 2020-01-01 2020-01-02 2020-01-01 00:06:53 2020-01-02 03:35:14 2020-01-01 00:06:53.000 2020-01-02 03:35:14.000 413 99314 49863.5 4986350 413 99314 49863.5 4986350 -32757 32381 4643.66 464366 -126 125 -0.18 -18 -414 2 10404 99315 1.24324 298.24324 149.74324 14974.32432 1.24324 298.24326 149.74324 14974.32433 1.24324 298.24324 149.74323999999984 14974.32400 2020-01-01 2020-01-02 2020-01-01 00:06:54 2020-01-02 03:35:15 2020-01-01 00:06:54.000 2020-01-02 03:35:15.000 414 99315 49864.5 4986450 414 99315 49864.5 4986450 -32756 32382 4644.66 464466 -125 126 0.82 82 -415 2 10405 99316 1.24624 298.24624 149.74624 14974.62462 1.24624 298.24625 149.74624 14974.62463 1.24624 298.24624 149.74624000000023 14974.62400 2020-01-01 2020-01-02 2020-01-01 00:06:55 2020-01-02 03:35:16 2020-01-01 00:06:55.000 2020-01-02 03:35:16.000 415 99316 49865.5 4986550 415 99316 49865.5 4986550 -32755 32383 4645.66 464566 -124 127 1.82 182 -416 2 10406 99317 1.24924 298.24924 149.74924 14974.92492 1.24924 298.24924 149.74924 14974.92492 1.24924 298.24924 149.74923999999987 14974.92400 2020-01-01 2020-01-02 2020-01-01 00:06:56 2020-01-02 03:35:17 2020-01-01 00:06:56.000 2020-01-02 03:35:17.000 416 99317 49866.5 4986650 416 99317 49866.5 4986650 -32754 32384 4646.66 464666 -128 127 0.26 26 -417 2 10407 99318 1.25225 298.25225 149.75225 14975.22522 1.25225 298.25226 149.75225 14975.22552 1.25225 298.25225 149.75224999999975 14975.22500 2020-01-01 2020-01-02 2020-01-01 00:06:57 2020-01-02 03:35:18 2020-01-01 00:06:57.000 2020-01-02 03:35:18.000 417 99318 49867.5 4986750 417 99318 49867.5 4986750 -32753 32385 4647.66 464766 -128 123 -1.3 -130 -418 2 10408 99319 1.25525 298.25525 149.75525 14975.52552 1.25525 298.25525 149.75525 14975.52521 1.25525 298.25525 149.7552500000001 14975.52500 2020-01-01 2020-01-02 2020-01-01 00:06:58 2020-01-02 03:35:19 2020-01-01 00:06:58.000 2020-01-02 03:35:19.000 418 99319 49868.5 4986850 418 99319 49868.5 4986850 -32752 32386 4648.66 464866 -127 124 -0.3 -30 -419 2 10409 99320 1.25825 298.25825 149.75825 14975.82582 1.25825 298.25827 149.75825 14975.8258 1.25825 298.25825 149.75825000000012 14975.82500 2020-01-01 2020-01-02 2020-01-01 00:06:59 2020-01-02 03:35:20 2020-01-01 00:06:59.000 2020-01-02 03:35:20.000 419 99320 49869.5 4986950 419 99320 49869.5 4986950 -32751 32387 4649.66 464966 -126 125 0.7 70 -42 2 10032 99942 0.12612 300.12612 150.12612 15162.73873 0.12612 300.12613 150.12612 15162.73896 0.12612 300.12612 150.12612000000007 15162.73812 2020-01-01 2020-01-02 2020-01-01 00:00:42 2020-01-02 03:45:42 2020-01-01 00:00:42.000 2020-01-02 03:45:42.000 42 99942 49992 5049192 42 99942 49992 5049192 -32527 32408 4571.009900990099 461672 -128 127 -1.504950495049505 -152 -420 2 10410 99321 1.26126 298.26126 149.76126 14976.12612 1.26126 298.26126 149.76126 14976.12609 1.26126 298.26126 149.76125999999994 14976.12600 2020-01-01 2020-01-02 2020-01-01 00:07:00 2020-01-02 03:35:21 2020-01-01 00:07:00.000 2020-01-02 03:35:21.000 420 99321 49870.5 4987050 420 99321 49870.5 4987050 -32750 32388 4650.66 465066 -125 126 1.7 170 -421 2 10411 99322 1.26426 298.26426 149.76426 14976.42642 1.26426 298.26425 149.76426 14976.4264 1.26426 298.26426 149.76425999999995 14976.42600 2020-01-01 2020-01-02 2020-01-01 00:07:01 2020-01-02 03:35:22 2020-01-01 00:07:01.000 2020-01-02 03:35:22.000 421 99322 49871.5 4987150 421 99322 49871.5 4987150 -32749 32389 4651.66 465166 -124 127 2.7 270 +412 2 10402 99313 1.23723 298.23723 149.73723 14973.72372 1.23723 298.23724 149.73724 14973.72405 1.23723 298.23723 149.73723 14973.72300 2020-01-01 2020-01-02 2020-01-01 00:06:52 2020-01-02 03:35:13 2020-01-01 00:06:52.000 2020-01-02 03:35:13.000 412 99313 49862.5 4986250 412 99313 49862.5 4986250 -32758 32380 4642.66 464266 -127 124 -1.18 -118 +413 2 10403 99314 1.24024 298.24024 149.74024 14974.02402 1.24024 298.24023 149.74023 14974.02374 1.24024 298.24024 149.74024 14974.02400 2020-01-01 2020-01-02 2020-01-01 00:06:53 2020-01-02 03:35:14 2020-01-01 00:06:53.000 2020-01-02 03:35:14.000 413 99314 49863.5 4986350 413 99314 49863.5 4986350 -32757 32381 4643.66 464366 -126 125 -0.18 -18 +414 2 10404 99315 1.24324 298.24324 149.74324 14974.32432 1.24324 298.24326 149.74324 14974.32433 1.24324 298.24324 149.74324000000001 14974.32400 2020-01-01 2020-01-02 2020-01-01 00:06:54 2020-01-02 03:35:15 2020-01-01 00:06:54.000 2020-01-02 03:35:15.000 414 99315 49864.5 4986450 414 99315 49864.5 4986450 -32756 32382 4644.66 464466 -125 126 0.82 82 +415 2 10405 99316 1.24624 298.24624 149.74624 14974.62462 1.24624 298.24625 149.74624 14974.62463 1.24624 298.24624 149.74624 14974.62400 2020-01-01 2020-01-02 2020-01-01 00:06:55 2020-01-02 03:35:16 2020-01-01 00:06:55.000 2020-01-02 03:35:16.000 415 99316 49865.5 4986550 415 99316 49865.5 4986550 -32755 32383 4645.66 464566 -124 127 1.82 182 +416 2 10406 99317 1.24924 298.24924 149.74924 14974.92492 1.24924 298.24924 149.74924 14974.92492 1.24924 298.24924 149.74924000000001 14974.92400 2020-01-01 2020-01-02 2020-01-01 00:06:56 2020-01-02 03:35:17 2020-01-01 00:06:56.000 2020-01-02 03:35:17.000 416 99317 49866.5 4986650 416 99317 49866.5 4986650 -32754 32384 4646.66 464666 -128 127 0.26 26 +417 2 10407 99318 1.25225 298.25225 149.75225 14975.22522 1.25225 298.25226 149.75225 14975.22552 1.25225 298.25225 149.75225 14975.22500 2020-01-01 2020-01-02 2020-01-01 00:06:57 2020-01-02 03:35:18 2020-01-01 00:06:57.000 2020-01-02 03:35:18.000 417 99318 49867.5 4986750 417 99318 49867.5 4986750 -32753 32385 4647.66 464766 -128 123 -1.3 -130 +418 2 10408 99319 1.25525 298.25525 149.75525 14975.52552 1.25525 298.25525 149.75525 14975.52521 1.25525 298.25525 149.75525 14975.52500 2020-01-01 2020-01-02 2020-01-01 00:06:58 2020-01-02 03:35:19 2020-01-01 00:06:58.000 2020-01-02 03:35:19.000 418 99319 49868.5 4986850 418 99319 49868.5 4986850 -32752 32386 4648.66 464866 -127 124 -0.3 -30 +419 2 10409 99320 1.25825 298.25825 149.75825 14975.82582 1.25825 298.25827 149.75825 14975.8258 1.25825 298.25825 149.75825 14975.82500 2020-01-01 2020-01-02 2020-01-01 00:06:59 2020-01-02 03:35:20 2020-01-01 00:06:59.000 2020-01-02 03:35:20.000 419 99320 49869.5 4986950 419 99320 49869.5 4986950 -32751 32387 4649.66 464966 -126 125 0.7 70 +42 2 10032 99942 0.12612 300.12612 150.12612 15162.73873 0.12612 300.12613 150.12612 15162.73896 0.12612 300.12612 150.12612 15162.73812 2020-01-01 2020-01-02 2020-01-01 00:00:42 2020-01-02 03:45:42 2020-01-01 00:00:42.000 2020-01-02 03:45:42.000 42 99942 49992 5049192 42 99942 49992 5049192 -32527 32408 4571.009900990099 461672 -128 127 -1.504950495049505 -152 +420 2 10410 99321 1.26126 298.26126 149.76126 14976.12612 1.26126 298.26126 149.76126 14976.12609 1.26126 298.26126 149.76126 14976.12600 2020-01-01 2020-01-02 2020-01-01 00:07:00 2020-01-02 03:35:21 2020-01-01 00:07:00.000 2020-01-02 03:35:21.000 420 99321 49870.5 4987050 420 99321 49870.5 4987050 -32750 32388 4650.66 465066 -125 126 1.7 170 +421 2 10411 99322 1.26426 298.26426 149.76426 14976.42642 1.26426 298.26425 149.76426 14976.4264 1.26426 298.26426 149.76426 14976.42600 2020-01-01 2020-01-02 2020-01-01 00:07:01 2020-01-02 03:35:22 2020-01-01 00:07:01.000 2020-01-02 03:35:22.000 421 99322 49871.5 4987150 421 99322 49871.5 4987150 -32749 32389 4651.66 465166 -124 127 2.7 270 422 2 10412 99323 1.26726 298.26726 149.76726 14976.72672 1.26726 298.26727 149.76727 14976.72702 1.26726 298.26726 149.76726 14976.72600 2020-01-01 2020-01-02 2020-01-01 00:07:02 2020-01-02 03:35:23 2020-01-01 00:07:02.000 2020-01-02 03:35:23.000 422 99323 49872.5 4987250 422 99323 49872.5 4987250 -32748 32390 4652.66 465266 -128 127 1.14 114 -423 2 10413 99324 1.27027 298.27027 149.77027 14977.02702 1.27027 298.27026 149.77026 14977.02667 1.27027 298.27027 149.7702700000002 14977.02700 2020-01-01 2020-01-02 2020-01-01 00:07:03 2020-01-02 03:35:24 2020-01-01 00:07:03.000 2020-01-02 03:35:24.000 423 99324 49873.5 4987350 423 99324 49873.5 4987350 -32747 32391 4653.66 465366 -128 123 -0.42 -42 -424 2 10414 99325 1.27327 298.27327 149.77327 14977.32732 1.27327 298.2733 149.77327 14977.32727 1.27327 298.27327 149.77326999999985 14977.32700 2020-01-01 2020-01-02 2020-01-01 00:07:04 2020-01-02 03:35:25 2020-01-01 00:07:04.000 2020-01-02 03:35:25.000 424 99325 49874.5 4987450 424 99325 49874.5 4987450 -32746 32392 4654.66 465466 -127 124 0.58 58 -425 2 10415 99326 1.27627 298.27627 149.77627 14977.62762 1.27627 298.27628 149.77627 14977.62756 1.27627 298.27627 149.77627000000012 14977.62700 2020-01-01 2020-01-02 2020-01-01 00:07:05 2020-01-02 03:35:26 2020-01-01 00:07:05.000 2020-01-02 03:35:26.000 425 99326 49875.5 4987550 425 99326 49875.5 4987550 -32745 32393 4655.66 465566 -126 125 1.58 158 -426 2 10416 99327 1.27927 298.27927 149.77927 14977.92792 1.27927 298.27927 149.77927 14977.92787 1.27927 298.27927 149.7792699999999 14977.92700 2020-01-01 2020-01-02 2020-01-01 00:07:06 2020-01-02 03:35:27 2020-01-01 00:07:06.000 2020-01-02 03:35:27.000 426 99327 49876.5 4987650 426 99327 49876.5 4987650 -32744 32394 4656.66 465666 -125 126 2.58 258 -427 2 10417 99328 1.28228 298.28228 149.78228 14978.22822 1.28228 298.2823 149.78228 14978.22849 1.28228 298.28228 149.78227999999996 14978.22800 2020-01-01 2020-01-02 2020-01-01 00:07:07 2020-01-02 03:35:28 2020-01-01 00:07:07.000 2020-01-02 03:35:28.000 427 99328 49877.5 4987750 427 99328 49877.5 4987750 -32743 32395 4657.66 465766 -124 127 3.58 358 -428 2 10418 99329 1.28528 298.28528 149.78528 14978.52852 1.28528 298.28528 149.78528 14978.52815 1.28528 298.28528 149.78528000000003 14978.52800 2020-01-01 2020-01-02 2020-01-01 00:07:08 2020-01-02 03:35:29 2020-01-01 00:07:08.000 2020-01-02 03:35:29.000 428 99329 49878.5 4987850 428 99329 49878.5 4987850 -32742 32396 4658.66 465866 -128 127 2.02 202 -429 2 10419 99330 1.28828 298.28828 149.78828 14978.82882 1.28828 298.2883 149.78828 14978.8289 1.28828 298.28828 149.7882800000001 14978.82800 2020-01-01 2020-01-02 2020-01-01 00:07:09 2020-01-02 03:35:30 2020-01-01 00:07:09.000 2020-01-02 03:35:30.000 429 99330 49879.5 4987950 429 99330 49879.5 4987950 -32741 32397 4659.66 465966 -128 127 0.46 46 -43 2 10033 99943 0.12912 300.12912 150.12912 15163.04204 0.12912 300.12912 150.12912 15163.04211 0.12912 300.12912 150.1291199999998 15163.04112 2020-01-01 2020-01-02 2020-01-01 00:00:43 2020-01-02 03:45:43 2020-01-01 00:00:43.000 2020-01-02 03:45:43.000 43 99943 49993 5049293 43 99943 49993 5049293 -32526 32409 4572.009900990099 461773 -128 124 -3.0396039603960396 -307 -430 2 10420 99331 1.29129 298.29129 149.79129 14979.12912 1.29129 298.2913 149.79129 14979.12904 1.29129 298.29129 149.7912899999999 14979.12900 2020-01-01 2020-01-02 2020-01-01 00:07:10 2020-01-02 03:35:31 2020-01-01 00:07:10.000 2020-01-02 03:35:31.000 430 99331 49880.5 4988050 430 99331 49880.5 4988050 -32740 32398 4660.66 466066 -128 124 -1.1 -110 -431 2 10421 99332 1.29429 298.29429 149.79429 14979.42942 1.29429 298.29428 149.79429 14979.42933 1.29429 298.29429 149.79428999999988 14979.42900 2020-01-01 2020-01-02 2020-01-01 00:07:11 2020-01-02 03:35:32 2020-01-01 00:07:11.000 2020-01-02 03:35:32.000 431 99332 49881.5 4988150 431 99332 49881.5 4988150 -32739 32399 4661.66 466166 -127 125 -0.1 -10 -432 2 10422 99333 1.29729 298.29729 149.79729 14979.72972 1.29729 298.2973 149.79729 14979.72996 1.29729 298.29729 149.79729000000023 14979.72900 2020-01-01 2020-01-02 2020-01-01 00:07:12 2020-01-02 03:35:33 2020-01-01 00:07:12.000 2020-01-02 03:35:33.000 432 99333 49882.5 4988250 432 99333 49882.5 4988250 -32738 32400 4662.66 466266 -126 126 0.9 90 -433 2 10423 99334 1.3003 298.3003 149.8003 14980.03003 1.3003 298.3003 149.80029 14980.02962 1.30030 298.30030 149.8003000000001 14980.03000 2020-01-01 2020-01-02 2020-01-01 00:07:13 2020-01-02 03:35:34 2020-01-01 00:07:13.000 2020-01-02 03:35:34.000 433 99334 49883.5 4988350 433 99334 49883.5 4988350 -32737 32401 4663.66 466366 -125 127 1.9 190 -434 2 10424 99335 1.3033 298.3033 149.8033 14980.33033 1.3033 298.3033 149.8033 14980.33037 1.30330 298.30330 149.80329999999978 14980.33000 2020-01-01 2020-01-02 2020-01-01 00:07:14 2020-01-02 03:35:35 2020-01-01 00:07:14.000 2020-01-02 03:35:35.000 434 99335 49884.5 4988450 434 99335 49884.5 4988450 -32736 32402 4664.66 466466 -128 127 0.34 34 -435 2 10425 99336 1.3063 298.3063 149.8063 14980.63063 1.3063 298.3063 149.8063 14980.63051 1.30630 298.30630 149.80630000000014 14980.63000 2020-01-01 2020-01-02 2020-01-01 00:07:15 2020-01-02 03:35:36 2020-01-01 00:07:15.000 2020-01-02 03:35:36.000 435 99336 49885.5 4988550 435 99336 49885.5 4988550 -32735 32403 4665.66 466566 -128 127 -1.22 -122 -436 2 10426 99337 1.3093 298.3093 149.8093 14980.93093 1.3093 298.3093 149.8093 14980.93084 1.30930 298.30930 149.80930000000018 14980.93000 2020-01-01 2020-01-02 2020-01-01 00:07:16 2020-01-02 03:35:37 2020-01-01 00:07:16.000 2020-01-02 03:35:37.000 436 99337 49886.5 4988650 436 99337 49886.5 4988650 -32734 32404 4666.66 466666 -128 123 -2.78 -278 -437 2 10427 99338 1.31231 298.31231 149.81231 14981.23123 1.31231 298.31232 149.81231 14981.23143 1.31231 298.31231 149.8123099999999 14981.23100 2020-01-01 2020-01-02 2020-01-01 00:07:17 2020-01-02 03:35:38 2020-01-01 00:07:17.000 2020-01-02 03:35:38.000 437 99338 49887.5 4988750 437 99338 49887.5 4988750 -32733 32405 4667.66 466766 -127 124 -1.78 -178 -438 2 10428 99339 1.31531 298.31531 149.81531 14981.53153 1.31531 298.3153 149.81531 14981.53173 1.31531 298.31531 149.81530999999998 14981.53100 2020-01-01 2020-01-02 2020-01-01 00:07:18 2020-01-02 03:35:39 2020-01-01 00:07:18.000 2020-01-02 03:35:39.000 438 99339 49888.5 4988850 438 99339 49888.5 4988850 -32732 32406 4668.66 466866 -126 125 -0.78 -78 -439 2 10429 99340 1.31831 298.31831 149.81831 14981.83183 1.31831 298.31833 149.81831 14981.83184 1.31831 298.31831 149.81831000000005 14981.83100 2020-01-01 2020-01-02 2020-01-01 00:07:19 2020-01-02 03:35:40 2020-01-01 00:07:19.000 2020-01-02 03:35:40.000 439 99340 49889.5 4988950 439 99340 49889.5 4988950 -32731 32407 4669.66 466966 -125 126 0.22 22 +423 2 10413 99324 1.27027 298.27027 149.77027 14977.02702 1.27027 298.27026 149.77026 14977.02667 1.27027 298.27027 149.77027 14977.02700 2020-01-01 2020-01-02 2020-01-01 00:07:03 2020-01-02 03:35:24 2020-01-01 00:07:03.000 2020-01-02 03:35:24.000 423 99324 49873.5 4987350 423 99324 49873.5 4987350 -32747 32391 4653.66 465366 -128 123 -0.42 -42 +424 2 10414 99325 1.27327 298.27327 149.77327 14977.32732 1.27327 298.2733 149.77327 14977.32727 1.27327 298.27327 149.77327 14977.32700 2020-01-01 2020-01-02 2020-01-01 00:07:04 2020-01-02 03:35:25 2020-01-01 00:07:04.000 2020-01-02 03:35:25.000 424 99325 49874.5 4987450 424 99325 49874.5 4987450 -32746 32392 4654.66 465466 -127 124 0.58 58 +425 2 10415 99326 1.27627 298.27627 149.77627 14977.62762 1.27627 298.27628 149.77627 14977.62756 1.27627 298.27627 149.77627 14977.62700 2020-01-01 2020-01-02 2020-01-01 00:07:05 2020-01-02 03:35:26 2020-01-01 00:07:05.000 2020-01-02 03:35:26.000 425 99326 49875.5 4987550 425 99326 49875.5 4987550 -32745 32393 4655.66 465566 -126 125 1.58 158 +426 2 10416 99327 1.27927 298.27927 149.77927 14977.92792 1.27927 298.27927 149.77927 14977.92787 1.27927 298.27927 149.77927 14977.92700 2020-01-01 2020-01-02 2020-01-01 00:07:06 2020-01-02 03:35:27 2020-01-01 00:07:06.000 2020-01-02 03:35:27.000 426 99327 49876.5 4987650 426 99327 49876.5 4987650 -32744 32394 4656.66 465666 -125 126 2.58 258 +427 2 10417 99328 1.28228 298.28228 149.78228 14978.22822 1.28228 298.2823 149.78228 14978.22849 1.28228 298.28228 149.78228 14978.22800 2020-01-01 2020-01-02 2020-01-01 00:07:07 2020-01-02 03:35:28 2020-01-01 00:07:07.000 2020-01-02 03:35:28.000 427 99328 49877.5 4987750 427 99328 49877.5 4987750 -32743 32395 4657.66 465766 -124 127 3.58 358 +428 2 10418 99329 1.28528 298.28528 149.78528 14978.52852 1.28528 298.28528 149.78528 14978.52815 1.28528 298.28528 149.78528 14978.52800 2020-01-01 2020-01-02 2020-01-01 00:07:08 2020-01-02 03:35:29 2020-01-01 00:07:08.000 2020-01-02 03:35:29.000 428 99329 49878.5 4987850 428 99329 49878.5 4987850 -32742 32396 4658.66 465866 -128 127 2.02 202 +429 2 10419 99330 1.28828 298.28828 149.78828 14978.82882 1.28828 298.2883 149.78828 14978.8289 1.28828 298.28828 149.78828 14978.82800 2020-01-01 2020-01-02 2020-01-01 00:07:09 2020-01-02 03:35:30 2020-01-01 00:07:09.000 2020-01-02 03:35:30.000 429 99330 49879.5 4987950 429 99330 49879.5 4987950 -32741 32397 4659.66 465966 -128 127 0.46 46 +43 2 10033 99943 0.12912 300.12912 150.12912 15163.04204 0.12912 300.12912 150.12912 15163.04211 0.12912 300.12912 150.12912 15163.04112 2020-01-01 2020-01-02 2020-01-01 00:00:43 2020-01-02 03:45:43 2020-01-01 00:00:43.000 2020-01-02 03:45:43.000 43 99943 49993 5049293 43 99943 49993 5049293 -32526 32409 4572.009900990099 461773 -128 124 -3.0396039603960396 -307 +430 2 10420 99331 1.29129 298.29129 149.79129 14979.12912 1.29129 298.2913 149.79129 14979.12904 1.29129 298.29129 149.79129 14979.12900 2020-01-01 2020-01-02 2020-01-01 00:07:10 2020-01-02 03:35:31 2020-01-01 00:07:10.000 2020-01-02 03:35:31.000 430 99331 49880.5 4988050 430 99331 49880.5 4988050 -32740 32398 4660.66 466066 -128 124 -1.1 -110 +431 2 10421 99332 1.29429 298.29429 149.79429 14979.42942 1.29429 298.29428 149.79429 14979.42933 1.29429 298.29429 149.79429 14979.42900 2020-01-01 2020-01-02 2020-01-01 00:07:11 2020-01-02 03:35:32 2020-01-01 00:07:11.000 2020-01-02 03:35:32.000 431 99332 49881.5 4988150 431 99332 49881.5 4988150 -32739 32399 4661.66 466166 -127 125 -0.1 -10 +432 2 10422 99333 1.29729 298.29729 149.79729 14979.72972 1.29729 298.2973 149.79729 14979.72996 1.29729 298.29729 149.79729 14979.72900 2020-01-01 2020-01-02 2020-01-01 00:07:12 2020-01-02 03:35:33 2020-01-01 00:07:12.000 2020-01-02 03:35:33.000 432 99333 49882.5 4988250 432 99333 49882.5 4988250 -32738 32400 4662.66 466266 -126 126 0.9 90 +433 2 10423 99334 1.3003 298.3003 149.8003 14980.03003 1.3003 298.3003 149.80029 14980.02962 1.30030 298.30030 149.8003 14980.03000 2020-01-01 2020-01-02 2020-01-01 00:07:13 2020-01-02 03:35:34 2020-01-01 00:07:13.000 2020-01-02 03:35:34.000 433 99334 49883.5 4988350 433 99334 49883.5 4988350 -32737 32401 4663.66 466366 -125 127 1.9 190 +434 2 10424 99335 1.3033 298.3033 149.8033 14980.33033 1.3033 298.3033 149.8033 14980.33037 1.30330 298.30330 149.8033 14980.33000 2020-01-01 2020-01-02 2020-01-01 00:07:14 2020-01-02 03:35:35 2020-01-01 00:07:14.000 2020-01-02 03:35:35.000 434 99335 49884.5 4988450 434 99335 49884.5 4988450 -32736 32402 4664.66 466466 -128 127 0.34 34 +435 2 10425 99336 1.3063 298.3063 149.8063 14980.63063 1.3063 298.3063 149.8063 14980.63051 1.30630 298.30630 149.8063 14980.63000 2020-01-01 2020-01-02 2020-01-01 00:07:15 2020-01-02 03:35:36 2020-01-01 00:07:15.000 2020-01-02 03:35:36.000 435 99336 49885.5 4988550 435 99336 49885.5 4988550 -32735 32403 4665.66 466566 -128 127 -1.22 -122 +436 2 10426 99337 1.3093 298.3093 149.8093 14980.93093 1.3093 298.3093 149.8093 14980.93084 1.30930 298.30930 149.8093 14980.93000 2020-01-01 2020-01-02 2020-01-01 00:07:16 2020-01-02 03:35:37 2020-01-01 00:07:16.000 2020-01-02 03:35:37.000 436 99337 49886.5 4988650 436 99337 49886.5 4988650 -32734 32404 4666.66 466666 -128 123 -2.78 -278 +437 2 10427 99338 1.31231 298.31231 149.81231 14981.23123 1.31231 298.31232 149.81231 14981.23143 1.31231 298.31231 149.81231 14981.23100 2020-01-01 2020-01-02 2020-01-01 00:07:17 2020-01-02 03:35:38 2020-01-01 00:07:17.000 2020-01-02 03:35:38.000 437 99338 49887.5 4988750 437 99338 49887.5 4988750 -32733 32405 4667.66 466766 -127 124 -1.78 -178 +438 2 10428 99339 1.31531 298.31531 149.81531 14981.53153 1.31531 298.3153 149.81531 14981.53173 1.31531 298.31531 149.81531 14981.53100 2020-01-01 2020-01-02 2020-01-01 00:07:18 2020-01-02 03:35:39 2020-01-01 00:07:18.000 2020-01-02 03:35:39.000 438 99339 49888.5 4988850 438 99339 49888.5 4988850 -32732 32406 4668.66 466866 -126 125 -0.78 -78 +439 2 10429 99340 1.31831 298.31831 149.81831 14981.83183 1.31831 298.31833 149.81831 14981.83184 1.31831 298.31831 149.81831 14981.83100 2020-01-01 2020-01-02 2020-01-01 00:07:19 2020-01-02 03:35:40 2020-01-01 00:07:19.000 2020-01-02 03:35:40.000 439 99340 49889.5 4988950 439 99340 49889.5 4988950 -32731 32407 4669.66 466966 -125 126 0.22 22 44 2 10034 99944 0.13213 300.13213 150.13213 15163.34534 0.13213 300.13214 150.13213 15163.34525 0.13213 300.13213 150.13213 15163.34513 2020-01-01 2020-01-02 2020-01-01 00:00:44 2020-01-02 03:45:44 2020-01-01 00:00:44.000 2020-01-02 03:45:44.000 44 99944 49994 5049394 44 99944 49994 5049394 -32525 32410 4573.009900990099 461874 -127 125 -2.0396039603960396 -206 -440 2 10430 99341 1.32132 298.32132 149.82132 14982.13213 1.32132 298.32132 149.82131 14982.13197 1.32132 298.32132 149.82131999999984 14982.13200 2020-01-01 2020-01-02 2020-01-01 00:07:20 2020-01-02 03:35:41 2020-01-01 00:07:20.000 2020-01-02 03:35:41.000 440 99341 49890.5 4989050 440 99341 49890.5 4989050 -32730 32408 4670.66 467066 -124 127 1.22 122 -441 2 10431 99342 1.32432 298.32432 149.82432 14982.43243 1.32432 298.3243 149.82432 14982.4323 1.32432 298.32432 149.8243199999999 14982.43200 2020-01-01 2020-01-02 2020-01-01 00:07:21 2020-01-02 03:35:42 2020-01-01 00:07:21.000 2020-01-02 03:35:42.000 441 99342 49891.5 4989150 441 99342 49891.5 4989150 -32729 32409 4671.66 467166 -128 127 -0.34 -34 -442 2 10432 99343 1.32732 298.32732 149.82732 14982.73273 1.32732 298.32733 149.82732 14982.7329 1.32732 298.32732 149.82732000000016 14982.73200 2020-01-01 2020-01-02 2020-01-01 00:07:22 2020-01-02 03:35:43 2020-01-01 00:07:22.000 2020-01-02 03:35:43.000 442 99343 49892.5 4989250 442 99343 49892.5 4989250 -32728 32410 4672.66 467266 -128 123 -1.9 -190 -443 2 10433 99344 1.33033 298.33033 149.83033 14983.03303 1.33033 298.33032 149.83033 14983.03319 1.33033 298.33033 149.83033000000006 14983.03300 2020-01-01 2020-01-02 2020-01-01 00:07:23 2020-01-02 03:35:44 2020-01-01 00:07:23.000 2020-01-02 03:35:44.000 443 99344 49893.5 4989350 443 99344 49893.5 4989350 -32727 32411 4673.66 467366 -127 124 -0.9 -90 -444 2 10434 99345 1.33333 298.33333 149.83333 14983.33333 1.33333 298.33334 149.83333 14983.33331 1.33333 298.33333 149.83333 14983.33300 2020-01-01 2020-01-02 2020-01-01 00:07:24 2020-01-02 03:35:45 2020-01-01 00:07:24.000 2020-01-02 03:35:45.000 444 99345 49894.5 4989450 444 99345 49894.5 4989450 -32726 32412 4674.66 467466 -126 125 0.1 10 -445 2 10435 99346 1.33633 298.33633 149.83633 14983.63363 1.33633 298.33633 149.83633 14983.63348 1.33633 298.33633 149.83633000000006 14983.63300 2020-01-01 2020-01-02 2020-01-01 00:07:25 2020-01-02 03:35:46 2020-01-01 00:07:25.000 2020-01-02 03:35:46.000 445 99346 49895.5 4989550 445 99346 49895.5 4989550 -32725 32413 4675.66 467566 -125 126 1.1 110 -446 2 10436 99347 1.33933 298.33933 149.83933 14983.93393 1.33933 298.33932 149.83933 14983.93378 1.33933 298.33933 149.83933000000007 14983.93300 2020-01-01 2020-01-02 2020-01-01 00:07:26 2020-01-02 03:35:47 2020-01-01 00:07:26.000 2020-01-02 03:35:47.000 446 99347 49896.5 4989650 446 99347 49896.5 4989650 -32724 32414 4676.66 467666 -124 127 2.1 210 -447 2 10437 99348 1.34234 298.34234 149.84234 14984.23423 1.34234 298.34235 149.84234 14984.23437 1.34234 298.34234 149.84233999999992 14984.23400 2020-01-01 2020-01-02 2020-01-01 00:07:27 2020-01-02 03:35:48 2020-01-01 00:07:27.000 2020-01-02 03:35:48.000 447 99348 49897.5 4989750 447 99348 49897.5 4989750 -32723 32415 4677.66 467766 -128 127 0.54 54 -448 2 10438 99349 1.34534 298.34534 149.84534 14984.53453 1.34534 298.34534 149.84534 14984.53466 1.34534 298.34534 149.8453399999999 14984.53400 2020-01-01 2020-01-02 2020-01-01 00:07:28 2020-01-02 03:35:49 2020-01-01 00:07:28.000 2020-01-02 03:35:49.000 448 99349 49898.5 4989850 448 99349 49898.5 4989850 -32722 32416 4678.66 467866 -128 123 -1.02 -102 -449 2 10439 99350 1.34834 298.34834 149.84834 14984.83483 1.34834 298.34836 149.84834 14984.83478 1.34834 298.34834 149.8483400000001 14984.83400 2020-01-01 2020-01-02 2020-01-01 00:07:29 2020-01-02 03:35:50 2020-01-01 00:07:29.000 2020-01-02 03:35:50.000 449 99350 49899.5 4989950 449 99350 49899.5 4989950 -32721 32417 4679.66 467966 -127 124 -0.02 -2 -45 2 10035 99945 0.13513 300.13513 150.13513 15163.64864 0.13513 300.13513 150.13513 15163.64839 0.13513 300.13513 150.13513000000006 15163.64813 2020-01-01 2020-01-02 2020-01-01 00:00:45 2020-01-02 03:45:45 2020-01-01 00:00:45.000 2020-01-02 03:45:45.000 45 99945 49995 5049495 45 99945 49995 5049495 -32524 32411 4574.009900990099 461975 -126 126 -1.0396039603960396 -105 -450 2 10440 99351 1.35135 298.35135 149.85135 14985.13513 1.35135 298.35135 149.85134 14985.13495 1.35135 298.35135 149.85135000000014 14985.13500 2020-01-01 2020-01-02 2020-01-01 00:07:30 2020-01-02 03:35:51 2020-01-01 00:07:30.000 2020-01-02 03:35:51.000 450 99351 49900.5 4990050 450 99351 49900.5 4990050 -32720 32418 4680.66 468066 -126 125 0.98 98 -451 2 10441 99352 1.35435 298.35435 149.85435 14985.43543 1.35435 298.35434 149.85435 14985.43525 1.35435 298.35435 149.85434999999978 14985.43500 2020-01-01 2020-01-02 2020-01-01 00:07:31 2020-01-02 03:35:52 2020-01-01 00:07:31.000 2020-01-02 03:35:52.000 451 99352 49901.5 4990150 451 99352 49901.5 4990150 -32719 32419 4681.66 468166 -125 126 1.98 198 -452 2 10442 99353 1.35735 298.35735 149.85735 14985.73573 1.35735 298.35736 149.85736 14985.736 1.35735 298.35735 149.85735000000017 14985.73500 2020-01-01 2020-01-02 2020-01-01 00:07:32 2020-01-02 03:35:53 2020-01-01 00:07:32.000 2020-01-02 03:35:53.000 452 99353 49902.5 4990250 452 99353 49902.5 4990250 -32718 32420 4682.66 468266 -124 127 2.98 298 -453 2 10443 99354 1.36036 298.36036 149.86036 14986.03603 1.36036 298.36035 149.86036 14986.03614 1.36036 298.36036 149.86036000000007 14986.03600 2020-01-01 2020-01-02 2020-01-01 00:07:33 2020-01-02 03:35:54 2020-01-01 00:07:33.000 2020-01-02 03:35:54.000 453 99354 49903.5 4990350 453 99354 49903.5 4990350 -32717 32421 4683.66 468366 -128 127 1.42 142 -454 2 10444 99355 1.36336 298.36336 149.86336 14986.33633 1.36336 298.36337 149.86336 14986.33629 1.36336 298.36336 149.8633599999999 14986.33600 2020-01-01 2020-01-02 2020-01-01 00:07:34 2020-01-02 03:35:55 2020-01-01 00:07:34.000 2020-01-02 03:35:55.000 454 99355 49904.5 4990450 454 99355 49904.5 4990450 -32716 32422 4684.66 468466 -128 127 -0.14 -14 -455 2 10445 99356 1.36636 298.36636 149.86636 14986.63663 1.36636 298.36636 149.86636 14986.63641 1.36636 298.36636 149.86636 14986.63600 2020-01-01 2020-01-02 2020-01-01 00:07:35 2020-01-02 03:35:56 2020-01-01 00:07:35.000 2020-01-02 03:35:56.000 455 99356 49905.5 4990550 455 99356 49905.5 4990550 -32715 32423 4685.66 468566 -128 124 -1.7 -170 -456 2 10446 99357 1.36936 298.36936 149.86936 14986.93693 1.36936 298.36935 149.86936 14986.93672 1.36936 298.36936 149.86936000000009 14986.93600 2020-01-01 2020-01-02 2020-01-01 00:07:36 2020-01-02 03:35:57 2020-01-01 00:07:36.000 2020-01-02 03:35:57.000 456 99357 49906.5 4990650 456 99357 49906.5 4990650 -32714 32424 4686.66 468666 -127 125 -0.7 -70 -457 2 10447 99358 1.37237 298.37237 149.87237 14987.23723 1.37237 298.37238 149.87237 14987.23747 1.37237 298.37237 149.87236999999976 14987.23700 2020-01-01 2020-01-02 2020-01-01 00:07:37 2020-01-02 03:35:58 2020-01-01 00:07:37.000 2020-01-02 03:35:58.000 457 99358 49907.5 4990750 457 99358 49907.5 4990750 -32713 32425 4687.66 468766 -126 126 0.3 30 -458 2 10448 99359 1.37537 298.37537 149.87537 14987.53753 1.37537 298.37537 149.87537 14987.5376 1.37537 298.37537 149.87536999999986 14987.53700 2020-01-01 2020-01-02 2020-01-01 00:07:38 2020-01-02 03:35:59 2020-01-01 00:07:38.000 2020-01-02 03:35:59.000 458 99359 49908.5 4990850 458 99359 49908.5 4990850 -32712 32426 4688.66 468866 -125 127 1.3 130 -459 2 10449 99360 1.37837 298.37837 149.87837 14987.83783 1.37837 298.3784 149.87837 14987.83775 1.37837 298.37837 149.87837000000016 14987.83700 2020-01-01 2020-01-02 2020-01-01 00:07:39 2020-01-02 03:36:00 2020-01-01 00:07:39.000 2020-01-02 03:36:00.000 459 99360 49909.5 4990950 459 99360 49909.5 4990950 -32711 32427 4689.66 468966 -128 127 -0.26 -26 -46 2 10036 99946 0.13813 300.13813 150.13813 15163.95195 0.13813 300.13815 150.13814 15163.95214 0.13813 300.13813 150.13812999999993 15163.95113 2020-01-01 2020-01-02 2020-01-01 00:00:46 2020-01-02 03:45:46 2020-01-01 00:00:46.000 2020-01-02 03:45:46.000 46 99946 49996 5049596 46 99946 49996 5049596 -32523 32412 4575.009900990099 462076 -125 127 -0.039603960396039604 -4 -460 2 10450 99361 1.38138 298.38138 149.88138 14988.13813 1.38138 298.38138 149.88137 14988.13789 1.38138 298.38138 149.8813800000001 14988.13800 2020-01-01 2020-01-02 2020-01-01 00:07:40 2020-01-02 03:36:01 2020-01-01 00:07:40.000 2020-01-02 03:36:01.000 460 99361 49910.5 4991050 460 99361 49910.5 4991050 -32710 32428 4690.66 469066 -128 127 -1.82 -182 -461 2 10451 99362 1.38438 298.38438 149.88438 14988.43843 1.38438 298.3844 149.88438 14988.43864 1.38438 298.38438 149.88438000000002 14988.43800 2020-01-01 2020-01-02 2020-01-01 00:07:41 2020-01-02 03:36:02 2020-01-01 00:07:41.000 2020-01-02 03:36:02.000 461 99362 49911.5 4991150 461 99362 49911.5 4991150 -32709 32429 4691.66 469166 -128 123 -3.38 -338 -462 2 10452 99363 1.38738 298.38738 149.88738 14988.73873 1.38738 298.3874 149.88738 14988.73894 1.38738 298.38738 149.8873800000001 14988.73800 2020-01-01 2020-01-02 2020-01-01 00:07:42 2020-01-02 03:36:03 2020-01-01 00:07:42.000 2020-01-02 03:36:03.000 462 99363 49912.5 4991250 462 99363 49912.5 4991250 -32708 32430 4692.66 469266 -127 124 -2.38 -238 +440 2 10430 99341 1.32132 298.32132 149.82132 14982.13213 1.32132 298.32132 149.82131 14982.13197 1.32132 298.32132 149.82132 14982.13200 2020-01-01 2020-01-02 2020-01-01 00:07:20 2020-01-02 03:35:41 2020-01-01 00:07:20.000 2020-01-02 03:35:41.000 440 99341 49890.5 4989050 440 99341 49890.5 4989050 -32730 32408 4670.66 467066 -124 127 1.22 122 +441 2 10431 99342 1.32432 298.32432 149.82432 14982.43243 1.32432 298.3243 149.82432 14982.4323 1.32432 298.32432 149.82432 14982.43200 2020-01-01 2020-01-02 2020-01-01 00:07:21 2020-01-02 03:35:42 2020-01-01 00:07:21.000 2020-01-02 03:35:42.000 441 99342 49891.5 4989150 441 99342 49891.5 4989150 -32729 32409 4671.66 467166 -128 127 -0.34 -34 +442 2 10432 99343 1.32732 298.32732 149.82732 14982.73273 1.32732 298.32733 149.82732 14982.7329 1.32732 298.32732 149.82732 14982.73200 2020-01-01 2020-01-02 2020-01-01 00:07:22 2020-01-02 03:35:43 2020-01-01 00:07:22.000 2020-01-02 03:35:43.000 442 99343 49892.5 4989250 442 99343 49892.5 4989250 -32728 32410 4672.66 467266 -128 123 -1.9 -190 +443 2 10433 99344 1.33033 298.33033 149.83033 14983.03303 1.33033 298.33032 149.83033 14983.03319 1.33033 298.33033 149.83033 14983.03300 2020-01-01 2020-01-02 2020-01-01 00:07:23 2020-01-02 03:35:44 2020-01-01 00:07:23.000 2020-01-02 03:35:44.000 443 99344 49893.5 4989350 443 99344 49893.5 4989350 -32727 32411 4673.66 467366 -127 124 -0.9 -90 +444 2 10434 99345 1.33333 298.33333 149.83333 14983.33333 1.33333 298.33334 149.83333 14983.33331 1.33333 298.33333 149.83333000000002 14983.33300 2020-01-01 2020-01-02 2020-01-01 00:07:24 2020-01-02 03:35:45 2020-01-01 00:07:24.000 2020-01-02 03:35:45.000 444 99345 49894.5 4989450 444 99345 49894.5 4989450 -32726 32412 4674.66 467466 -126 125 0.1 10 +445 2 10435 99346 1.33633 298.33633 149.83633 14983.63363 1.33633 298.33633 149.83633 14983.63348 1.33633 298.33633 149.83633 14983.63300 2020-01-01 2020-01-02 2020-01-01 00:07:25 2020-01-02 03:35:46 2020-01-01 00:07:25.000 2020-01-02 03:35:46.000 445 99346 49895.5 4989550 445 99346 49895.5 4989550 -32725 32413 4675.66 467566 -125 126 1.1 110 +446 2 10436 99347 1.33933 298.33933 149.83933 14983.93393 1.33933 298.33932 149.83933 14983.93378 1.33933 298.33933 149.83933000000002 14983.93300 2020-01-01 2020-01-02 2020-01-01 00:07:26 2020-01-02 03:35:47 2020-01-01 00:07:26.000 2020-01-02 03:35:47.000 446 99347 49896.5 4989650 446 99347 49896.5 4989650 -32724 32414 4676.66 467666 -124 127 2.1 210 +447 2 10437 99348 1.34234 298.34234 149.84234 14984.23423 1.34234 298.34235 149.84234 14984.23437 1.34234 298.34234 149.84234 14984.23400 2020-01-01 2020-01-02 2020-01-01 00:07:27 2020-01-02 03:35:48 2020-01-01 00:07:27.000 2020-01-02 03:35:48.000 447 99348 49897.5 4989750 447 99348 49897.5 4989750 -32723 32415 4677.66 467766 -128 127 0.54 54 +448 2 10438 99349 1.34534 298.34534 149.84534 14984.53453 1.34534 298.34534 149.84534 14984.53466 1.34534 298.34534 149.84534 14984.53400 2020-01-01 2020-01-02 2020-01-01 00:07:28 2020-01-02 03:35:49 2020-01-01 00:07:28.000 2020-01-02 03:35:49.000 448 99349 49898.5 4989850 448 99349 49898.5 4989850 -32722 32416 4678.66 467866 -128 123 -1.02 -102 +449 2 10439 99350 1.34834 298.34834 149.84834 14984.83483 1.34834 298.34836 149.84834 14984.83478 1.34834 298.34834 149.84834 14984.83400 2020-01-01 2020-01-02 2020-01-01 00:07:29 2020-01-02 03:35:50 2020-01-01 00:07:29.000 2020-01-02 03:35:50.000 449 99350 49899.5 4989950 449 99350 49899.5 4989950 -32721 32417 4679.66 467966 -127 124 -0.02 -2 +45 2 10035 99945 0.13513 300.13513 150.13513 15163.64864 0.13513 300.13513 150.13513 15163.64839 0.13513 300.13513 150.13513 15163.64813 2020-01-01 2020-01-02 2020-01-01 00:00:45 2020-01-02 03:45:45 2020-01-01 00:00:45.000 2020-01-02 03:45:45.000 45 99945 49995 5049495 45 99945 49995 5049495 -32524 32411 4574.009900990099 461975 -126 126 -1.0396039603960396 -105 +450 2 10440 99351 1.35135 298.35135 149.85135 14985.13513 1.35135 298.35135 149.85134 14985.13495 1.35135 298.35135 149.85135 14985.13500 2020-01-01 2020-01-02 2020-01-01 00:07:30 2020-01-02 03:35:51 2020-01-01 00:07:30.000 2020-01-02 03:35:51.000 450 99351 49900.5 4990050 450 99351 49900.5 4990050 -32720 32418 4680.66 468066 -126 125 0.98 98 +451 2 10441 99352 1.35435 298.35435 149.85435 14985.43543 1.35435 298.35434 149.85435 14985.43525 1.35435 298.35435 149.85434999999998 14985.43500 2020-01-01 2020-01-02 2020-01-01 00:07:31 2020-01-02 03:35:52 2020-01-01 00:07:31.000 2020-01-02 03:35:52.000 451 99352 49901.5 4990150 451 99352 49901.5 4990150 -32719 32419 4681.66 468166 -125 126 1.98 198 +452 2 10442 99353 1.35735 298.35735 149.85735 14985.73573 1.35735 298.35736 149.85736 14985.736 1.35735 298.35735 149.85735 14985.73500 2020-01-01 2020-01-02 2020-01-01 00:07:32 2020-01-02 03:35:53 2020-01-01 00:07:32.000 2020-01-02 03:35:53.000 452 99353 49902.5 4990250 452 99353 49902.5 4990250 -32718 32420 4682.66 468266 -124 127 2.98 298 +453 2 10443 99354 1.36036 298.36036 149.86036 14986.03603 1.36036 298.36035 149.86036 14986.03614 1.36036 298.36036 149.86036000000001 14986.03600 2020-01-01 2020-01-02 2020-01-01 00:07:33 2020-01-02 03:35:54 2020-01-01 00:07:33.000 2020-01-02 03:35:54.000 453 99354 49903.5 4990350 453 99354 49903.5 4990350 -32717 32421 4683.66 468366 -128 127 1.42 142 +454 2 10444 99355 1.36336 298.36336 149.86336 14986.33633 1.36336 298.36337 149.86336 14986.33629 1.36336 298.36336 149.86336 14986.33600 2020-01-01 2020-01-02 2020-01-01 00:07:34 2020-01-02 03:35:55 2020-01-01 00:07:34.000 2020-01-02 03:35:55.000 454 99355 49904.5 4990450 454 99355 49904.5 4990450 -32716 32422 4684.66 468466 -128 127 -0.14 -14 +455 2 10445 99356 1.36636 298.36636 149.86636 14986.63663 1.36636 298.36636 149.86636 14986.63641 1.36636 298.36636 149.86636000000001 14986.63600 2020-01-01 2020-01-02 2020-01-01 00:07:35 2020-01-02 03:35:56 2020-01-01 00:07:35.000 2020-01-02 03:35:56.000 455 99356 49905.5 4990550 455 99356 49905.5 4990550 -32715 32423 4685.66 468566 -128 124 -1.7 -170 +456 2 10446 99357 1.36936 298.36936 149.86936 14986.93693 1.36936 298.36935 149.86936 14986.93672 1.36936 298.36936 149.86936 14986.93600 2020-01-01 2020-01-02 2020-01-01 00:07:36 2020-01-02 03:35:57 2020-01-01 00:07:36.000 2020-01-02 03:35:57.000 456 99357 49906.5 4990650 456 99357 49906.5 4990650 -32714 32424 4686.66 468666 -127 125 -0.7 -70 +457 2 10447 99358 1.37237 298.37237 149.87237 14987.23723 1.37237 298.37238 149.87237 14987.23747 1.37237 298.37237 149.87237 14987.23700 2020-01-01 2020-01-02 2020-01-01 00:07:37 2020-01-02 03:35:58 2020-01-01 00:07:37.000 2020-01-02 03:35:58.000 457 99358 49907.5 4990750 457 99358 49907.5 4990750 -32713 32425 4687.66 468766 -126 126 0.3 30 +458 2 10448 99359 1.37537 298.37537 149.87537 14987.53753 1.37537 298.37537 149.87537 14987.5376 1.37537 298.37537 149.87537 14987.53700 2020-01-01 2020-01-02 2020-01-01 00:07:38 2020-01-02 03:35:59 2020-01-01 00:07:38.000 2020-01-02 03:35:59.000 458 99359 49908.5 4990850 458 99359 49908.5 4990850 -32712 32426 4688.66 468866 -125 127 1.3 130 +459 2 10449 99360 1.37837 298.37837 149.87837 14987.83783 1.37837 298.3784 149.87837 14987.83775 1.37837 298.37837 149.87837 14987.83700 2020-01-01 2020-01-02 2020-01-01 00:07:39 2020-01-02 03:36:00 2020-01-01 00:07:39.000 2020-01-02 03:36:00.000 459 99360 49909.5 4990950 459 99360 49909.5 4990950 -32711 32427 4689.66 468966 -128 127 -0.26 -26 +46 2 10036 99946 0.13813 300.13813 150.13813 15163.95195 0.13813 300.13815 150.13814 15163.95214 0.13813 300.13813 150.13813 15163.95113 2020-01-01 2020-01-02 2020-01-01 00:00:46 2020-01-02 03:45:46 2020-01-01 00:00:46.000 2020-01-02 03:45:46.000 46 99946 49996 5049596 46 99946 49996 5049596 -32523 32412 4575.009900990099 462076 -125 127 -0.039603960396039604 -4 +460 2 10450 99361 1.38138 298.38138 149.88138 14988.13813 1.38138 298.38138 149.88137 14988.13789 1.38138 298.38138 149.88138 14988.13800 2020-01-01 2020-01-02 2020-01-01 00:07:40 2020-01-02 03:36:01 2020-01-01 00:07:40.000 2020-01-02 03:36:01.000 460 99361 49910.5 4991050 460 99361 49910.5 4991050 -32710 32428 4690.66 469066 -128 127 -1.82 -182 +461 2 10451 99362 1.38438 298.38438 149.88438 14988.43843 1.38438 298.3844 149.88438 14988.43864 1.38438 298.38438 149.88438 14988.43800 2020-01-01 2020-01-02 2020-01-01 00:07:41 2020-01-02 03:36:02 2020-01-01 00:07:41.000 2020-01-02 03:36:02.000 461 99362 49911.5 4991150 461 99362 49911.5 4991150 -32709 32429 4691.66 469166 -128 123 -3.38 -338 +462 2 10452 99363 1.38738 298.38738 149.88738 14988.73873 1.38738 298.3874 149.88738 14988.73894 1.38738 298.38738 149.88738 14988.73800 2020-01-01 2020-01-02 2020-01-01 00:07:42 2020-01-02 03:36:03 2020-01-01 00:07:42.000 2020-01-02 03:36:03.000 462 99363 49912.5 4991250 462 99363 49912.5 4991250 -32708 32430 4692.66 469266 -127 124 -2.38 -238 463 2 10453 99364 1.39039 298.39039 149.89039 14989.03903 1.39039 298.39038 149.89039 14989.03907 1.39039 298.39039 149.89039 14989.03900 2020-01-01 2020-01-02 2020-01-01 00:07:43 2020-01-02 03:36:04 2020-01-01 00:07:43.000 2020-01-02 03:36:04.000 463 99364 49913.5 4991350 463 99364 49913.5 4991350 -32707 32431 4693.66 469366 -126 125 -1.38 -138 -464 2 10454 99365 1.39339 298.39339 149.89339 14989.33933 1.39339 298.3934 149.89339 14989.33922 1.39339 298.39339 149.8933899999999 14989.33900 2020-01-01 2020-01-02 2020-01-01 00:07:44 2020-01-02 03:36:05 2020-01-01 00:07:44.000 2020-01-02 03:36:05.000 464 99365 49914.5 4991450 464 99365 49914.5 4991450 -32706 32432 4694.66 469466 -125 126 -0.38 -38 -465 2 10455 99366 1.39639 298.39639 149.89639 14989.63963 1.39639 298.3964 149.89639 14989.63936 1.39639 298.39639 149.8963899999999 14989.63900 2020-01-01 2020-01-02 2020-01-01 00:07:45 2020-01-02 03:36:06 2020-01-01 00:07:45.000 2020-01-02 03:36:06.000 465 99366 49915.5 4991550 465 99366 49915.5 4991550 -32705 32433 4695.66 469566 -124 127 0.62 62 +464 2 10454 99365 1.39339 298.39339 149.89339 14989.33933 1.39339 298.3934 149.89339 14989.33922 1.39339 298.39339 149.89339 14989.33900 2020-01-01 2020-01-02 2020-01-01 00:07:44 2020-01-02 03:36:05 2020-01-01 00:07:44.000 2020-01-02 03:36:05.000 464 99365 49914.5 4991450 464 99365 49914.5 4991450 -32706 32432 4694.66 469466 -125 126 -0.38 -38 +465 2 10455 99366 1.39639 298.39639 149.89639 14989.63963 1.39639 298.3964 149.89639 14989.63936 1.39639 298.39639 149.89639 14989.63900 2020-01-01 2020-01-02 2020-01-01 00:07:45 2020-01-02 03:36:06 2020-01-01 00:07:45.000 2020-01-02 03:36:06.000 465 99366 49915.5 4991550 465 99366 49915.5 4991550 -32705 32433 4695.66 469566 -124 127 0.62 62 466 2 10456 99367 1.39939 298.39939 149.89939 14989.93993 1.39939 298.3994 149.8994 14989.94011 1.39939 298.39939 149.89939 14989.93900 2020-01-01 2020-01-02 2020-01-01 00:07:46 2020-01-02 03:36:07 2020-01-01 00:07:46.000 2020-01-02 03:36:07.000 466 99367 49916.5 4991650 466 99367 49916.5 4991650 -32704 32434 4696.66 469666 -128 127 -0.94 -94 -467 2 10457 99368 1.4024 298.4024 149.9024 14990.24024 1.4024 298.4024 149.9024 14990.24041 1.40240 298.40240 149.90240000000017 14990.24000 2020-01-01 2020-01-02 2020-01-01 00:07:47 2020-01-02 03:36:08 2020-01-01 00:07:47.000 2020-01-02 03:36:08.000 467 99368 49917.5 4991750 467 99368 49917.5 4991750 -32703 32435 4697.66 469766 -128 123 -2.5 -250 -468 2 10458 99369 1.4054 298.4054 149.9054 14990.54054 1.4054 298.4054 149.9054 14990.54058 1.40540 298.40540 149.90539999999984 14990.54000 2020-01-01 2020-01-02 2020-01-01 00:07:48 2020-01-02 03:36:09 2020-01-01 00:07:48.000 2020-01-02 03:36:09.000 468 99369 49918.5 4991850 468 99369 49918.5 4991850 -32702 32436 4698.66 469866 -127 124 -1.5 -150 -469 2 10459 99370 1.4084 298.4084 149.9084 14990.84084 1.4084 298.40842 149.9084 14990.8407 1.40840 298.40840 149.90840000000009 14990.84000 2020-01-01 2020-01-02 2020-01-01 00:07:49 2020-01-02 03:36:10 2020-01-01 00:07:49.000 2020-01-02 03:36:10.000 469 99370 49919.5 4991950 469 99370 49919.5 4991950 -32701 32437 4699.66 469966 -126 125 -0.5 -50 -47 2 10037 99947 0.14114 300.14114 150.14114 15164.25525 0.14114 300.14114 150.14114 15164.25545 0.14114 300.14114 150.1411399999999 15164.25514 2020-01-01 2020-01-02 2020-01-01 00:00:47 2020-01-02 03:45:47 2020-01-01 00:00:47.000 2020-01-02 03:45:47.000 47 99947 49997 5049697 47 99947 49997 5049697 -32522 32413 4576.009900990099 462177 -128 127 -1.5742574257425743 -159 -470 2 10460 99371 1.41141 298.41141 149.91141 14991.14114 1.41141 298.4114 149.9114 14991.14099 1.41141 298.41141 149.91141000000007 14991.14100 2020-01-01 2020-01-02 2020-01-01 00:07:50 2020-01-02 03:36:11 2020-01-01 00:07:50.000 2020-01-02 03:36:11.000 470 99371 49920.5 4992050 470 99371 49920.5 4992050 -32700 32438 4700.66 470066 -125 126 0.5 50 -471 2 10461 99372 1.41441 298.41441 149.91441 14991.44144 1.41441 298.41443 149.91441 14991.44159 1.41441 298.41441 149.91440999999992 14991.44100 2020-01-01 2020-01-02 2020-01-01 00:07:51 2020-01-02 03:36:12 2020-01-01 00:07:51.000 2020-01-02 03:36:12.000 471 99372 49921.5 4992150 471 99372 49921.5 4992150 -32699 32439 4701.66 470166 -124 127 1.5 150 +467 2 10457 99368 1.4024 298.4024 149.9024 14990.24024 1.4024 298.4024 149.9024 14990.24041 1.40240 298.40240 149.9024 14990.24000 2020-01-01 2020-01-02 2020-01-01 00:07:47 2020-01-02 03:36:08 2020-01-01 00:07:47.000 2020-01-02 03:36:08.000 467 99368 49917.5 4991750 467 99368 49917.5 4991750 -32703 32435 4697.66 469766 -128 123 -2.5 -250 +468 2 10458 99369 1.4054 298.4054 149.9054 14990.54054 1.4054 298.4054 149.9054 14990.54058 1.40540 298.40540 149.90540000000001 14990.54000 2020-01-01 2020-01-02 2020-01-01 00:07:48 2020-01-02 03:36:09 2020-01-01 00:07:48.000 2020-01-02 03:36:09.000 468 99369 49918.5 4991850 468 99369 49918.5 4991850 -32702 32436 4698.66 469866 -127 124 -1.5 -150 +469 2 10459 99370 1.4084 298.4084 149.9084 14990.84084 1.4084 298.40842 149.9084 14990.8407 1.40840 298.40840 149.9084 14990.84000 2020-01-01 2020-01-02 2020-01-01 00:07:49 2020-01-02 03:36:10 2020-01-01 00:07:49.000 2020-01-02 03:36:10.000 469 99370 49919.5 4991950 469 99370 49919.5 4991950 -32701 32437 4699.66 469966 -126 125 -0.5 -50 +47 2 10037 99947 0.14114 300.14114 150.14114 15164.25525 0.14114 300.14114 150.14114 15164.25545 0.14114 300.14114 150.14114 15164.25514 2020-01-01 2020-01-02 2020-01-01 00:00:47 2020-01-02 03:45:47 2020-01-01 00:00:47.000 2020-01-02 03:45:47.000 47 99947 49997 5049697 47 99947 49997 5049697 -32522 32413 4576.009900990099 462177 -128 127 -1.5742574257425743 -159 +470 2 10460 99371 1.41141 298.41141 149.91141 14991.14114 1.41141 298.4114 149.9114 14991.14099 1.41141 298.41141 149.91141 14991.14100 2020-01-01 2020-01-02 2020-01-01 00:07:50 2020-01-02 03:36:11 2020-01-01 00:07:50.000 2020-01-02 03:36:11.000 470 99371 49920.5 4992050 470 99371 49920.5 4992050 -32700 32438 4700.66 470066 -125 126 0.5 50 +471 2 10461 99372 1.41441 298.41441 149.91441 14991.44144 1.41441 298.41443 149.91441 14991.44159 1.41441 298.41441 149.91441 14991.44100 2020-01-01 2020-01-02 2020-01-01 00:07:51 2020-01-02 03:36:12 2020-01-01 00:07:51.000 2020-01-02 03:36:12.000 471 99372 49921.5 4992150 471 99372 49921.5 4992150 -32699 32439 4701.66 470166 -124 127 1.5 150 472 2 10462 99373 1.41741 298.41741 149.91741 14991.74174 1.41741 298.41742 149.91741 14991.74188 1.41741 298.41741 149.91741 14991.74100 2020-01-01 2020-01-02 2020-01-01 00:07:52 2020-01-02 03:36:13 2020-01-01 00:07:52.000 2020-01-02 03:36:13.000 472 99373 49922.5 4992250 472 99373 49922.5 4992250 -32698 32440 4702.66 470266 -128 127 -0.06 -6 -473 2 10463 99374 1.42042 298.42042 149.92042 14992.04204 1.42042 298.4204 149.92042 14992.04204 1.42042 298.42042 149.92042000000018 14992.04200 2020-01-01 2020-01-02 2020-01-01 00:07:53 2020-01-02 03:36:14 2020-01-01 00:07:53.000 2020-01-02 03:36:14.000 473 99374 49923.5 4992350 473 99374 49923.5 4992350 -32697 32441 4703.66 470366 -128 123 -1.62 -162 -474 2 10464 99375 1.42342 298.42342 149.92342 14992.34234 1.42342 298.42343 149.92342 14992.34216 1.42342 298.42342 149.92341999999982 14992.34200 2020-01-01 2020-01-02 2020-01-01 00:07:54 2020-01-02 03:36:15 2020-01-01 00:07:54.000 2020-01-02 03:36:15.000 474 99375 49924.5 4992450 474 99375 49924.5 4992450 -32696 32442 4704.66 470466 -127 124 -0.62 -62 -475 2 10465 99376 1.42642 298.42642 149.92642 14992.64264 1.42642 298.42642 149.92642 14992.64246 1.42642 298.42642 149.92641999999987 14992.64200 2020-01-01 2020-01-02 2020-01-01 00:07:55 2020-01-02 03:36:16 2020-01-01 00:07:55.000 2020-01-02 03:36:16.000 475 99376 49925.5 4992550 475 99376 49925.5 4992550 -32695 32443 4705.66 470566 -126 125 0.38 38 -476 2 10466 99377 1.42942 298.42942 149.92942 14992.94294 1.42942 298.42944 149.92943 14992.94305 1.42942 298.42942 149.9294200000002 14992.94200 2020-01-01 2020-01-02 2020-01-01 00:07:56 2020-01-02 03:36:17 2020-01-01 00:07:56.000 2020-01-02 03:36:17.000 476 99377 49926.5 4992650 476 99377 49926.5 4992650 -32694 32444 4706.66 470666 -125 126 1.38 138 -477 2 10467 99378 1.43243 298.43243 149.93243 14993.24324 1.43243 298.43243 149.93243 14993.24338 1.43243 298.43243 149.9324300000001 14993.24300 2020-01-01 2020-01-02 2020-01-01 00:07:57 2020-01-02 03:36:18 2020-01-01 00:07:57.000 2020-01-02 03:36:18.000 477 99378 49927.5 4992750 477 99378 49927.5 4992750 -32693 32445 4707.66 470766 -124 127 2.38 238 -478 2 10468 99379 1.43543 298.43543 149.93543 14993.54354 1.43543 298.43542 149.93543 14993.54352 1.43543 298.43543 149.9354299999998 14993.54300 2020-01-01 2020-01-02 2020-01-01 00:07:58 2020-01-02 03:36:19 2020-01-01 00:07:58.000 2020-01-02 03:36:19.000 478 99379 49928.5 4992850 478 99379 49928.5 4992850 -32692 32446 4708.66 470866 -128 127 0.82 82 -479 2 10469 99380 1.43843 298.43843 149.93843 14993.84384 1.43843 298.43845 149.93844 14993.84427 1.43843 298.43843 149.9384300000001 14993.84300 2020-01-01 2020-01-02 2020-01-01 00:07:59 2020-01-02 03:36:20 2020-01-01 00:07:59.000 2020-01-02 03:36:20.000 479 99380 49929.5 4992950 479 99380 49929.5 4992950 -32691 32447 4709.66 470966 -128 127 -0.74 -74 -48 2 10038 99948 0.14414 300.14414 150.14414 15164.55855 0.14414 300.14413 150.14414 15164.55863 0.14414 300.14414 150.14414000000016 15164.55814 2020-01-01 2020-01-02 2020-01-01 00:00:48 2020-01-02 03:45:48 2020-01-01 00:00:48.000 2020-01-02 03:45:48.000 48 99948 49998 5049798 48 99948 49998 5049798 -32521 32414 4577.009900990099 462278 -128 127 -3.108910891089109 -314 +473 2 10463 99374 1.42042 298.42042 149.92042 14992.04204 1.42042 298.4204 149.92042 14992.04204 1.42042 298.42042 149.92042 14992.04200 2020-01-01 2020-01-02 2020-01-01 00:07:53 2020-01-02 03:36:14 2020-01-01 00:07:53.000 2020-01-02 03:36:14.000 473 99374 49923.5 4992350 473 99374 49923.5 4992350 -32697 32441 4703.66 470366 -128 123 -1.62 -162 +474 2 10464 99375 1.42342 298.42342 149.92342 14992.34234 1.42342 298.42343 149.92342 14992.34216 1.42342 298.42342 149.92342 14992.34200 2020-01-01 2020-01-02 2020-01-01 00:07:54 2020-01-02 03:36:15 2020-01-01 00:07:54.000 2020-01-02 03:36:15.000 474 99375 49924.5 4992450 474 99375 49924.5 4992450 -32696 32442 4704.66 470466 -127 124 -0.62 -62 +475 2 10465 99376 1.42642 298.42642 149.92642 14992.64264 1.42642 298.42642 149.92642 14992.64246 1.42642 298.42642 149.92642 14992.64200 2020-01-01 2020-01-02 2020-01-01 00:07:55 2020-01-02 03:36:16 2020-01-01 00:07:55.000 2020-01-02 03:36:16.000 475 99376 49925.5 4992550 475 99376 49925.5 4992550 -32695 32443 4705.66 470566 -126 125 0.38 38 +476 2 10466 99377 1.42942 298.42942 149.92942 14992.94294 1.42942 298.42944 149.92943 14992.94305 1.42942 298.42942 149.92942 14992.94200 2020-01-01 2020-01-02 2020-01-01 00:07:56 2020-01-02 03:36:17 2020-01-01 00:07:56.000 2020-01-02 03:36:17.000 476 99377 49926.5 4992650 476 99377 49926.5 4992650 -32694 32444 4706.66 470666 -125 126 1.38 138 +477 2 10467 99378 1.43243 298.43243 149.93243 14993.24324 1.43243 298.43243 149.93243 14993.24338 1.43243 298.43243 149.93243 14993.24300 2020-01-01 2020-01-02 2020-01-01 00:07:57 2020-01-02 03:36:18 2020-01-01 00:07:57.000 2020-01-02 03:36:18.000 477 99378 49927.5 4992750 477 99378 49927.5 4992750 -32693 32445 4707.66 470766 -124 127 2.38 238 +478 2 10468 99379 1.43543 298.43543 149.93543 14993.54354 1.43543 298.43542 149.93543 14993.54352 1.43543 298.43543 149.93543 14993.54300 2020-01-01 2020-01-02 2020-01-01 00:07:58 2020-01-02 03:36:19 2020-01-01 00:07:58.000 2020-01-02 03:36:19.000 478 99379 49928.5 4992850 478 99379 49928.5 4992850 -32692 32446 4708.66 470866 -128 127 0.82 82 +479 2 10469 99380 1.43843 298.43843 149.93843 14993.84384 1.43843 298.43845 149.93844 14993.84427 1.43843 298.43843 149.93843 14993.84300 2020-01-01 2020-01-02 2020-01-01 00:07:59 2020-01-02 03:36:20 2020-01-01 00:07:59.000 2020-01-02 03:36:20.000 479 99380 49929.5 4992950 479 99380 49929.5 4992950 -32691 32447 4709.66 470966 -128 127 -0.74 -74 +48 2 10038 99948 0.14414 300.14414 150.14414 15164.55855 0.14414 300.14413 150.14414 15164.55863 0.14414 300.14414 150.14414 15164.55814 2020-01-01 2020-01-02 2020-01-01 00:00:48 2020-01-02 03:45:48 2020-01-01 00:00:48.000 2020-01-02 03:45:48.000 48 99948 49998 5049798 48 99948 49998 5049798 -32521 32414 4577.009900990099 462278 -128 127 -3.108910891089109 -314 480 2 10470 99381 1.44144 298.44144 149.94144 14994.14414 1.44144 298.44144 149.94143 14994.14392 1.44144 298.44144 149.94144 14994.14400 2020-01-01 2020-01-02 2020-01-01 00:08:00 2020-01-02 03:36:21 2020-01-01 00:08:00.000 2020-01-02 03:36:21.000 480 99381 49930.5 4993050 480 99381 49930.5 4993050 -32690 32448 4710.66 471066 -128 124 -2.3 -230 -481 2 10471 99382 1.44444 298.44444 149.94444 14994.44444 1.44444 298.44446 149.94444 14994.44452 1.44444 298.44444 149.94443999999993 14994.44400 2020-01-01 2020-01-02 2020-01-01 00:08:01 2020-01-02 03:36:22 2020-01-01 00:08:01.000 2020-01-02 03:36:22.000 481 99382 49931.5 4993150 481 99382 49931.5 4993150 -32689 32449 4711.66 471166 -127 125 -1.3 -130 -482 2 10472 99383 1.44744 298.44744 149.94744 14994.74474 1.44744 298.44745 149.94744 14994.74485 1.44744 298.44744 149.94743999999994 14994.74400 2020-01-01 2020-01-02 2020-01-01 00:08:02 2020-01-02 03:36:23 2020-01-01 00:08:02.000 2020-01-02 03:36:23.000 482 99383 49932.5 4993250 482 99383 49932.5 4993250 -32688 32450 4712.66 471266 -126 126 -0.3 -30 -483 2 10473 99384 1.45045 298.45045 149.95045 14995.04504 1.45045 298.45044 149.95044 14995.04499 1.45045 298.45045 149.95045000000013 14995.04500 2020-01-01 2020-01-02 2020-01-01 00:08:03 2020-01-02 03:36:24 2020-01-01 00:08:03.000 2020-01-02 03:36:24.000 483 99384 49933.5 4993350 483 99384 49933.5 4993350 -32687 32451 4713.66 471366 -125 127 0.7 70 -484 2 10474 99385 1.45345 298.45345 149.95345 14995.34534 1.45345 298.45346 149.95345 14995.34574 1.45345 298.45345 149.9534500000002 14995.34500 2020-01-01 2020-01-02 2020-01-01 00:08:04 2020-01-02 03:36:25 2020-01-01 00:08:04.000 2020-01-02 03:36:25.000 484 99385 49934.5 4993450 484 99385 49934.5 4993450 -32686 32452 4714.66 471466 -128 127 -0.86 -86 -485 2 10475 99386 1.45645 298.45645 149.95645 14995.64564 1.45645 298.45645 149.95645 14995.6454 1.45645 298.45645 149.95644999999985 14995.64500 2020-01-01 2020-01-02 2020-01-01 00:08:05 2020-01-02 03:36:26 2020-01-01 00:08:05.000 2020-01-02 03:36:26.000 485 99386 49935.5 4993550 485 99386 49935.5 4993550 -32685 32453 4715.66 471566 -128 127 -2.42 -242 -486 2 10476 99387 1.45945 298.45945 149.95945 14995.94594 1.45945 298.45947 149.95946 14995.94602 1.45945 298.45945 149.95945000000012 14995.94500 2020-01-01 2020-01-02 2020-01-01 00:08:06 2020-01-02 03:36:27 2020-01-01 00:08:06.000 2020-01-02 03:36:27.000 486 99387 49936.5 4993650 486 99387 49936.5 4993650 -32684 32454 4716.66 471666 -128 123 -3.98 -398 -487 2 10477 99388 1.46246 298.46246 149.96246 14996.24624 1.46246 298.46246 149.96246 14996.24633 1.46246 298.46246 149.96246000000014 14996.24600 2020-01-01 2020-01-02 2020-01-01 00:08:07 2020-01-02 03:36:28 2020-01-01 00:08:07.000 2020-01-02 03:36:28.000 487 99388 49937.5 4993750 487 99388 49937.5 4993750 -32683 32455 4717.66 471766 -127 124 -2.98 -298 -488 2 10478 99389 1.46546 298.46546 149.96546 14996.54654 1.46546 298.46545 149.96546 14996.54645 1.46546 298.46546 149.96545999999998 14996.54600 2020-01-01 2020-01-02 2020-01-01 00:08:08 2020-01-02 03:36:29 2020-01-01 00:08:08.000 2020-01-02 03:36:29.000 488 99389 49938.5 4993850 488 99389 49938.5 4993850 -32682 32456 4718.66 471866 -126 125 -1.98 -198 -489 2 10479 99390 1.46846 298.46846 149.96846 14996.84684 1.46846 298.46848 149.96847 14996.84721 1.46846 298.46846 149.96846000000002 14996.84600 2020-01-01 2020-01-02 2020-01-01 00:08:09 2020-01-02 03:36:30 2020-01-01 00:08:09.000 2020-01-02 03:36:30.000 489 99390 49939.5 4993950 489 99390 49939.5 4993950 -32681 32457 4719.66 471966 -125 126 -0.98 -98 -49 2 10039 99949 0.14714 300.14714 150.14714 15164.86186 0.14714 300.14716 150.14714 15164.86173 0.14714 300.14714 150.14713999999984 15164.86114 2020-01-01 2020-01-02 2020-01-01 00:00:49 2020-01-02 03:45:49 2020-01-01 00:00:49.000 2020-01-02 03:45:49.000 49 99949 49999 5049899 49 99949 49999 5049899 -32520 32415 4578.009900990099 462379 -128 123 -4.643564356435643 -469 -490 2 10480 99391 1.47147 298.47147 149.97147 14997.14714 1.47147 298.47147 149.97146 14997.14687 1.47147 298.47147 149.9714700000002 14997.14700 2020-01-01 2020-01-02 2020-01-01 00:08:10 2020-01-02 03:36:31 2020-01-01 00:08:10.000 2020-01-02 03:36:31.000 490 99391 49940.5 4994050 490 99391 49940.5 4994050 -32680 32458 4720.66 472066 -124 127 0.02 2 -491 2 10481 99392 1.47447 298.47447 149.97447 14997.44744 1.47447 298.4745 149.97447 14997.44749 1.47447 298.47447 149.97446999999985 14997.44700 2020-01-01 2020-01-02 2020-01-01 00:08:11 2020-01-02 03:36:32 2020-01-01 00:08:11.000 2020-01-02 03:36:32.000 491 99392 49941.5 4994150 491 99392 49941.5 4994150 -32679 32459 4721.66 472166 -128 127 -1.54 -154 -492 2 10482 99393 1.47747 298.47747 149.97747 14997.74774 1.47747 298.47748 149.97747 14997.74779 1.47747 298.47747 149.97746999999987 14997.74700 2020-01-01 2020-01-02 2020-01-01 00:08:12 2020-01-02 03:36:33 2020-01-01 00:08:12.000 2020-01-02 03:36:33.000 492 99393 49942.5 4994250 492 99393 49942.5 4994250 -32678 32460 4722.66 472266 -128 123 -3.1 -310 -493 2 10483 99394 1.48048 298.48048 149.98048 14998.04804 1.48048 298.48047 149.98048 14998.04809 1.48048 298.48048 149.9804800000001 14998.04800 2020-01-01 2020-01-02 2020-01-01 00:08:13 2020-01-02 03:36:34 2020-01-01 00:08:13.000 2020-01-02 03:36:34.000 493 99394 49943.5 4994350 493 99394 49943.5 4994350 -32677 32461 4723.66 472366 -127 124 -2.1 -210 -494 2 10484 99395 1.48348 298.48348 149.98348 14998.34834 1.48348 298.4835 149.98348 14998.34868 1.48348 298.48348 149.9834800000001 14998.34800 2020-01-01 2020-01-02 2020-01-01 00:08:14 2020-01-02 03:36:35 2020-01-01 00:08:14.000 2020-01-02 03:36:35.000 494 99395 49944.5 4994450 494 99395 49944.5 4994450 -32676 32462 4724.66 472466 -126 125 -1.1 -110 -495 2 10485 99396 1.48648 298.48648 149.98648 14998.64864 1.48648 298.48648 149.98648 14998.64837 1.48648 298.48648 149.98647999999977 14998.64800 2020-01-01 2020-01-02 2020-01-01 00:08:15 2020-01-02 03:36:36 2020-01-01 00:08:15.000 2020-01-02 03:36:36.000 495 99396 49945.5 4994550 495 99396 49945.5 4994550 -32675 32463 4725.66 472566 -125 126 -0.1 -10 -496 2 10486 99397 1.48948 298.48948 149.98948 14998.94894 1.48948 298.4895 149.98948 14998.94896 1.48948 298.48948 149.98948000000013 14998.94800 2020-01-01 2020-01-02 2020-01-01 00:08:16 2020-01-02 03:36:37 2020-01-01 00:08:16.000 2020-01-02 03:36:37.000 496 99397 49946.5 4994650 496 99397 49946.5 4994650 -32674 32464 4726.66 472666 -124 127 0.9 90 -497 2 10487 99398 1.49249 298.49249 149.99249 14999.24924 1.49249 298.4925 149.99249 14999.24926 1.49249 298.49249 149.99249000000003 14999.24900 2020-01-01 2020-01-02 2020-01-01 00:08:17 2020-01-02 03:36:38 2020-01-01 00:08:17.000 2020-01-02 03:36:38.000 497 99398 49947.5 4994750 497 99398 49947.5 4994750 -32673 32465 4727.66 472766 -128 127 -0.66 -66 -498 2 10488 99399 1.49549 298.49549 149.99549 14999.54954 1.49549 298.49548 149.99549 14999.54956 1.49549 298.49549 149.9954899999999 14999.54900 2020-01-01 2020-01-02 2020-01-01 00:08:18 2020-01-02 03:36:39 2020-01-01 00:08:18.000 2020-01-02 03:36:39.000 498 99399 49948.5 4994850 498 99399 49948.5 4994850 -32672 32466 4728.66 472866 -128 123 -2.22 -222 -499 2 10489 99400 1.49849 298.49849 149.99849 14999.84984 1.49849 298.4985 149.9985 14999.85015 1.49849 298.49849 149.99848999999998 14999.84900 2020-01-01 2020-01-02 2020-01-01 00:08:19 2020-01-02 03:36:40 2020-01-01 00:08:19.000 2020-01-02 03:36:40.000 499 99400 49949.5 4994950 499 99400 49949.5 4994950 -32671 32467 4729.66 472966 -127 124 -1.22 -122 -5 2 1004 9995 0.01501 300.01501 150.01501 15151.51651 0.01501 300.015 150.01501 15151.51648 0.01501 300.01501 150.01500999999988 15151.51601 2020-01-01 2020-01-02 2020-01-01 00:00:05 2020-01-02 03:45:05 2020-01-01 00:00:05.000 2020-01-02 03:45:05.000 5 99905 49955 5045455 5 99905 49955 5045455 -32564 32371 4534.009900990099 457935 -128 123 -3.01980198019802 -305 +481 2 10471 99382 1.44444 298.44444 149.94444 14994.44444 1.44444 298.44446 149.94444 14994.44452 1.44444 298.44444 149.94444 14994.44400 2020-01-01 2020-01-02 2020-01-01 00:08:01 2020-01-02 03:36:22 2020-01-01 00:08:01.000 2020-01-02 03:36:22.000 481 99382 49931.5 4993150 481 99382 49931.5 4993150 -32689 32449 4711.66 471166 -127 125 -1.3 -130 +482 2 10472 99383 1.44744 298.44744 149.94744 14994.74474 1.44744 298.44745 149.94744 14994.74485 1.44744 298.44744 149.94744 14994.74400 2020-01-01 2020-01-02 2020-01-01 00:08:02 2020-01-02 03:36:23 2020-01-01 00:08:02.000 2020-01-02 03:36:23.000 482 99383 49932.5 4993250 482 99383 49932.5 4993250 -32688 32450 4712.66 471266 -126 126 -0.3 -30 +483 2 10473 99384 1.45045 298.45045 149.95045 14995.04504 1.45045 298.45044 149.95044 14995.04499 1.45045 298.45045 149.95045 14995.04500 2020-01-01 2020-01-02 2020-01-01 00:08:03 2020-01-02 03:36:24 2020-01-01 00:08:03.000 2020-01-02 03:36:24.000 483 99384 49933.5 4993350 483 99384 49933.5 4993350 -32687 32451 4713.66 471366 -125 127 0.7 70 +484 2 10474 99385 1.45345 298.45345 149.95345 14995.34534 1.45345 298.45346 149.95345 14995.34574 1.45345 298.45345 149.95345 14995.34500 2020-01-01 2020-01-02 2020-01-01 00:08:04 2020-01-02 03:36:25 2020-01-01 00:08:04.000 2020-01-02 03:36:25.000 484 99385 49934.5 4993450 484 99385 49934.5 4993450 -32686 32452 4714.66 471466 -128 127 -0.86 -86 +485 2 10475 99386 1.45645 298.45645 149.95645 14995.64564 1.45645 298.45645 149.95645 14995.6454 1.45645 298.45645 149.95645000000002 14995.64500 2020-01-01 2020-01-02 2020-01-01 00:08:05 2020-01-02 03:36:26 2020-01-01 00:08:05.000 2020-01-02 03:36:26.000 485 99386 49935.5 4993550 485 99386 49935.5 4993550 -32685 32453 4715.66 471566 -128 127 -2.42 -242 +486 2 10476 99387 1.45945 298.45945 149.95945 14995.94594 1.45945 298.45947 149.95946 14995.94602 1.45945 298.45945 149.95945 14995.94500 2020-01-01 2020-01-02 2020-01-01 00:08:06 2020-01-02 03:36:27 2020-01-01 00:08:06.000 2020-01-02 03:36:27.000 486 99387 49936.5 4993650 486 99387 49936.5 4993650 -32684 32454 4716.66 471666 -128 123 -3.98 -398 +487 2 10477 99388 1.46246 298.46246 149.96246 14996.24624 1.46246 298.46246 149.96246 14996.24633 1.46246 298.46246 149.96246 14996.24600 2020-01-01 2020-01-02 2020-01-01 00:08:07 2020-01-02 03:36:28 2020-01-01 00:08:07.000 2020-01-02 03:36:28.000 487 99388 49937.5 4993750 487 99388 49937.5 4993750 -32683 32455 4717.66 471766 -127 124 -2.98 -298 +488 2 10478 99389 1.46546 298.46546 149.96546 14996.54654 1.46546 298.46545 149.96546 14996.54645 1.46546 298.46546 149.96546 14996.54600 2020-01-01 2020-01-02 2020-01-01 00:08:08 2020-01-02 03:36:29 2020-01-01 00:08:08.000 2020-01-02 03:36:29.000 488 99389 49938.5 4993850 488 99389 49938.5 4993850 -32682 32456 4718.66 471866 -126 125 -1.98 -198 +489 2 10479 99390 1.46846 298.46846 149.96846 14996.84684 1.46846 298.46848 149.96847 14996.84721 1.46846 298.46846 149.96846 14996.84600 2020-01-01 2020-01-02 2020-01-01 00:08:09 2020-01-02 03:36:30 2020-01-01 00:08:09.000 2020-01-02 03:36:30.000 489 99390 49939.5 4993950 489 99390 49939.5 4993950 -32681 32457 4719.66 471966 -125 126 -0.98 -98 +49 2 10039 99949 0.14714 300.14714 150.14714 15164.86186 0.14714 300.14716 150.14714 15164.86173 0.14714 300.14714 150.14714 15164.86114 2020-01-01 2020-01-02 2020-01-01 00:00:49 2020-01-02 03:45:49 2020-01-01 00:00:49.000 2020-01-02 03:45:49.000 49 99949 49999 5049899 49 99949 49999 5049899 -32520 32415 4578.009900990099 462379 -128 123 -4.643564356435643 -469 +490 2 10480 99391 1.47147 298.47147 149.97147 14997.14714 1.47147 298.47147 149.97146 14997.14687 1.47147 298.47147 149.97147 14997.14700 2020-01-01 2020-01-02 2020-01-01 00:08:10 2020-01-02 03:36:31 2020-01-01 00:08:10.000 2020-01-02 03:36:31.000 490 99391 49940.5 4994050 490 99391 49940.5 4994050 -32680 32458 4720.66 472066 -124 127 0.02 2 +491 2 10481 99392 1.47447 298.47447 149.97447 14997.44744 1.47447 298.4745 149.97447 14997.44749 1.47447 298.47447 149.97447 14997.44700 2020-01-01 2020-01-02 2020-01-01 00:08:11 2020-01-02 03:36:32 2020-01-01 00:08:11.000 2020-01-02 03:36:32.000 491 99392 49941.5 4994150 491 99392 49941.5 4994150 -32679 32459 4721.66 472166 -128 127 -1.54 -154 +492 2 10482 99393 1.47747 298.47747 149.97747 14997.74774 1.47747 298.47748 149.97747 14997.74779 1.47747 298.47747 149.97746999999998 14997.74700 2020-01-01 2020-01-02 2020-01-01 00:08:12 2020-01-02 03:36:33 2020-01-01 00:08:12.000 2020-01-02 03:36:33.000 492 99393 49942.5 4994250 492 99393 49942.5 4994250 -32678 32460 4722.66 472266 -128 123 -3.1 -310 +493 2 10483 99394 1.48048 298.48048 149.98048 14998.04804 1.48048 298.48047 149.98048 14998.04809 1.48048 298.48048 149.98048 14998.04800 2020-01-01 2020-01-02 2020-01-01 00:08:13 2020-01-02 03:36:34 2020-01-01 00:08:13.000 2020-01-02 03:36:34.000 493 99394 49943.5 4994350 493 99394 49943.5 4994350 -32677 32461 4723.66 472366 -127 124 -2.1 -210 +494 2 10484 99395 1.48348 298.48348 149.98348 14998.34834 1.48348 298.4835 149.98348 14998.34868 1.48348 298.48348 149.98348 14998.34800 2020-01-01 2020-01-02 2020-01-01 00:08:14 2020-01-02 03:36:35 2020-01-01 00:08:14.000 2020-01-02 03:36:35.000 494 99395 49944.5 4994450 494 99395 49944.5 4994450 -32676 32462 4724.66 472466 -126 125 -1.1 -110 +495 2 10485 99396 1.48648 298.48648 149.98648 14998.64864 1.48648 298.48648 149.98648 14998.64837 1.48648 298.48648 149.98648 14998.64800 2020-01-01 2020-01-02 2020-01-01 00:08:15 2020-01-02 03:36:36 2020-01-01 00:08:15.000 2020-01-02 03:36:36.000 495 99396 49945.5 4994550 495 99396 49945.5 4994550 -32675 32463 4725.66 472566 -125 126 -0.1 -10 +496 2 10486 99397 1.48948 298.48948 149.98948 14998.94894 1.48948 298.4895 149.98948 14998.94896 1.48948 298.48948 149.98948000000001 14998.94800 2020-01-01 2020-01-02 2020-01-01 00:08:16 2020-01-02 03:36:37 2020-01-01 00:08:16.000 2020-01-02 03:36:37.000 496 99397 49946.5 4994650 496 99397 49946.5 4994650 -32674 32464 4726.66 472666 -124 127 0.9 90 +497 2 10487 99398 1.49249 298.49249 149.99249 14999.24924 1.49249 298.4925 149.99249 14999.24926 1.49249 298.49249 149.99249 14999.24900 2020-01-01 2020-01-02 2020-01-01 00:08:17 2020-01-02 03:36:38 2020-01-01 00:08:17.000 2020-01-02 03:36:38.000 497 99398 49947.5 4994750 497 99398 49947.5 4994750 -32673 32465 4727.66 472766 -128 127 -0.66 -66 +498 2 10488 99399 1.49549 298.49549 149.99549 14999.54954 1.49549 298.49548 149.99549 14999.54956 1.49549 298.49549 149.99549000000002 14999.54900 2020-01-01 2020-01-02 2020-01-01 00:08:18 2020-01-02 03:36:39 2020-01-01 00:08:18.000 2020-01-02 03:36:39.000 498 99399 49948.5 4994850 498 99399 49948.5 4994850 -32672 32466 4728.66 472866 -128 123 -2.22 -222 +499 2 10489 99400 1.49849 298.49849 149.99849 14999.84984 1.49849 298.4985 149.9985 14999.85015 1.49849 298.49849 149.99849 14999.84900 2020-01-01 2020-01-02 2020-01-01 00:08:19 2020-01-02 03:36:40 2020-01-01 00:08:19.000 2020-01-02 03:36:40.000 499 99400 49949.5 4994950 499 99400 49949.5 4994950 -32671 32467 4729.66 472966 -127 124 -1.22 -122 +5 2 1004 9995 0.01501 300.01501 150.01501 15151.51651 0.01501 300.015 150.01501 15151.51648 0.01501 300.01501 150.01501 15151.51601 2020-01-01 2020-01-02 2020-01-01 00:00:05 2020-01-02 03:45:05 2020-01-01 00:00:05.000 2020-01-02 03:45:05.000 5 99905 49955 5045455 5 99905 49955 5045455 -32564 32371 4534.009900990099 457935 -128 123 -3.01980198019802 -305 50 2 10040 99950 0.15015 300.15015 150.15015 15165.16516 0.15015 300.15015 150.15014 15165.16487 0.15015 300.15015 150.15015 15165.16515 2020-01-01 2020-01-02 2020-01-01 00:00:50 2020-01-02 03:45:50 2020-01-01 00:00:50.000 2020-01-02 03:45:50.000 50 99950 50000 5050000 50 99950 50000 5050000 -32519 32416 4579.009900990099 462480 -127 124 -3.6435643564356437 -368 -500 2 10490 99401 1.5015 298.5015 150.0015 15000.15015 1.5015 298.5015 150.00149 15000.14984 1.50150 298.50150 150.00150000000014 15000.15000 2020-01-01 2020-01-02 2020-01-01 00:08:20 2020-01-02 03:36:41 2020-01-01 00:08:20.000 2020-01-02 03:36:41.000 500 99401 49950.5 4995050 500 99401 49950.5 4995050 -32670 32468 4730.66 473066 -126 125 -0.22 -22 -501 2 10491 99402 1.5045 298.5045 150.0045 15000.45045 1.5045 298.50452 150.0045 15000.45043 1.50450 298.50450 150.0044999999998 15000.45000 2020-01-01 2020-01-02 2020-01-01 00:08:21 2020-01-02 03:36:42 2020-01-01 00:08:21.000 2020-01-02 03:36:42.000 501 99402 49951.5 4995150 501 99402 49951.5 4995150 -32669 32469 4731.66 473166 -125 126 0.78 78 -502 2 10492 99403 1.5075 298.5075 150.0075 15000.75075 1.5075 298.5075 150.0075 15000.75073 1.50750 298.50750 150.00749999999988 15000.75000 2020-01-01 2020-01-02 2020-01-01 00:08:22 2020-01-02 03:36:43 2020-01-01 00:08:22.000 2020-01-02 03:36:43.000 502 99403 49952.5 4995250 502 99403 49952.5 4995250 -32668 32470 4732.66 473266 -124 127 1.78 178 -503 2 10493 99404 1.51051 298.51051 150.01051 15001.05105 1.51051 298.5105 150.01051 15001.05103 1.51051 298.51051 150.01051000000004 15001.05100 2020-01-01 2020-01-02 2020-01-01 00:08:23 2020-01-02 03:36:44 2020-01-01 00:08:23.000 2020-01-02 03:36:44.000 503 99404 49953.5 4995350 503 99404 49953.5 4995350 -32667 32471 4733.66 473366 -128 127 0.22 22 -504 2 10494 99405 1.51351 298.51351 150.01351 15001.35135 1.51351 298.51352 150.01351 15001.35162 1.51351 298.51351 150.01351000000005 15001.35100 2020-01-01 2020-01-02 2020-01-01 00:08:24 2020-01-02 03:36:45 2020-01-01 00:08:24.000 2020-01-02 03:36:45.000 504 99405 49954.5 4995450 504 99405 49954.5 4995450 -32666 32472 4734.66 473466 -128 127 -1.34 -134 -505 2 10495 99406 1.51651 298.51651 150.01651 15001.65165 1.51651 298.5165 150.01651 15001.65131 1.51651 298.51651 150.01650999999998 15001.65100 2020-01-01 2020-01-02 2020-01-01 00:08:25 2020-01-02 03:36:46 2020-01-01 00:08:25.000 2020-01-02 03:36:46.000 505 99406 49955.5 4995550 505 99406 49955.5 4995550 -32665 32473 4735.66 473566 -128 124 -2.9 -290 -506 2 10496 99407 1.51951 298.51951 150.01951 15001.95195 1.51951 298.51953 150.01951 15001.9519 1.51951 298.51951 150.01951000000005 15001.95100 2020-01-01 2020-01-02 2020-01-01 00:08:26 2020-01-02 03:36:47 2020-01-01 00:08:26.000 2020-01-02 03:36:47.000 506 99407 49956.5 4995650 506 99407 49956.5 4995650 -32664 32474 4736.66 473666 -127 125 -1.9 -190 -507 2 10497 99408 1.52252 298.52252 150.02252 15002.25225 1.52252 298.52252 150.02252 15002.2522 1.52252 298.52252 150.0225200000002 15002.25200 2020-01-01 2020-01-02 2020-01-01 00:08:27 2020-01-02 03:36:48 2020-01-01 00:08:27.000 2020-01-02 03:36:48.000 507 99408 49957.5 4995750 507 99408 49957.5 4995750 -32663 32475 4737.66 473766 -126 126 -0.9 -90 -508 2 10498 99409 1.52552 298.52552 150.02552 15002.55255 1.52552 298.5255 150.02552 15002.5525 1.52552 298.52552 150.02551999999991 15002.55200 2020-01-01 2020-01-02 2020-01-01 00:08:28 2020-01-02 03:36:49 2020-01-01 00:08:28.000 2020-01-02 03:36:49.000 508 99409 49958.5 4995850 508 99409 49958.5 4995850 -32662 32476 4738.66 473866 -125 127 0.1 10 -509 2 10499 99410 1.52852 298.52852 150.02852 15002.85285 1.52852 298.52853 150.02853 15002.85312 1.52852 298.52852 150.0285199999999 15002.85200 2020-01-01 2020-01-02 2020-01-01 00:08:29 2020-01-02 03:36:50 2020-01-01 00:08:29.000 2020-01-02 03:36:50.000 509 99410 49959.5 4995950 509 99410 49959.5 4995950 -32661 32477 4739.66 473966 -128 127 -1.46 -146 -51 2 10041 99951 0.15315 300.15315 150.15315 15165.46846 0.15315 300.15317 150.15315 15165.46863 0.15315 300.15315 150.15315000000007 15165.46815 2020-01-01 2020-01-02 2020-01-01 00:00:51 2020-01-02 03:45:51 2020-01-01 00:00:51.000 2020-01-02 03:45:51.000 51 99951 50001 5050101 51 99951 50001 5050101 -32518 32417 4580.009900990099 462581 -126 125 -2.6435643564356437 -267 -510 2 10500 99411 1.53153 298.53153 150.03153 15003.15315 1.53153 298.53152 150.03152 15003.15278 1.53153 298.53153 150.03153000000012 15003.15300 2020-01-01 2020-01-02 2020-01-01 00:08:30 2020-01-02 03:36:51 2020-01-01 00:08:30.000 2020-01-02 03:36:51.000 510 99411 49960.5 4996050 510 99411 49960.5 4996050 -32660 32478 4740.66 474066 -128 127 -3.02 -302 -511 2 10501 99412 1.53453 298.53453 150.03453 15003.45345 1.53453 298.53455 150.03453 15003.45354 1.53453 298.53453 150.03453000000013 15003.45300 2020-01-01 2020-01-02 2020-01-01 00:08:31 2020-01-02 03:36:52 2020-01-01 00:08:31.000 2020-01-02 03:36:52.000 511 99412 49961.5 4996150 511 99412 49961.5 4996150 -32659 32479 4741.66 474166 -128 123 -4.58 -458 -512 2 10502 99413 1.53753 298.53753 150.03753 15003.75375 1.53753 298.53754 150.03753 15003.75366 1.53753 298.53753 150.0375299999998 15003.75300 2020-01-01 2020-01-02 2020-01-01 00:08:32 2020-01-02 03:36:53 2020-01-01 00:08:32.000 2020-01-02 03:36:53.000 512 99413 49962.5 4996250 512 99413 49962.5 4996250 -32658 32480 4742.66 474266 -127 124 -3.58 -358 +500 2 10490 99401 1.5015 298.5015 150.0015 15000.15015 1.5015 298.5015 150.00149 15000.14984 1.50150 298.50150 150.0015 15000.15000 2020-01-01 2020-01-02 2020-01-01 00:08:20 2020-01-02 03:36:41 2020-01-01 00:08:20.000 2020-01-02 03:36:41.000 500 99401 49950.5 4995050 500 99401 49950.5 4995050 -32670 32468 4730.66 473066 -126 125 -0.22 -22 +501 2 10491 99402 1.5045 298.5045 150.0045 15000.45045 1.5045 298.50452 150.0045 15000.45043 1.50450 298.50450 150.0045 15000.45000 2020-01-01 2020-01-02 2020-01-01 00:08:21 2020-01-02 03:36:42 2020-01-01 00:08:21.000 2020-01-02 03:36:42.000 501 99402 49951.5 4995150 501 99402 49951.5 4995150 -32669 32469 4731.66 473166 -125 126 0.78 78 +502 2 10492 99403 1.5075 298.5075 150.0075 15000.75075 1.5075 298.5075 150.0075 15000.75073 1.50750 298.50750 150.0075 15000.75000 2020-01-01 2020-01-02 2020-01-01 00:08:22 2020-01-02 03:36:43 2020-01-01 00:08:22.000 2020-01-02 03:36:43.000 502 99403 49952.5 4995250 502 99403 49952.5 4995250 -32668 32470 4732.66 473266 -124 127 1.78 178 +503 2 10493 99404 1.51051 298.51051 150.01051 15001.05105 1.51051 298.5105 150.01051 15001.05103 1.51051 298.51051 150.01050999999998 15001.05100 2020-01-01 2020-01-02 2020-01-01 00:08:23 2020-01-02 03:36:44 2020-01-01 00:08:23.000 2020-01-02 03:36:44.000 503 99404 49953.5 4995350 503 99404 49953.5 4995350 -32667 32471 4733.66 473366 -128 127 0.22 22 +504 2 10494 99405 1.51351 298.51351 150.01351 15001.35135 1.51351 298.51352 150.01351 15001.35162 1.51351 298.51351 150.01351 15001.35100 2020-01-01 2020-01-02 2020-01-01 00:08:24 2020-01-02 03:36:45 2020-01-01 00:08:24.000 2020-01-02 03:36:45.000 504 99405 49954.5 4995450 504 99405 49954.5 4995450 -32666 32472 4734.66 473466 -128 127 -1.34 -134 +505 2 10495 99406 1.51651 298.51651 150.01651 15001.65165 1.51651 298.5165 150.01651 15001.65131 1.51651 298.51651 150.01651 15001.65100 2020-01-01 2020-01-02 2020-01-01 00:08:25 2020-01-02 03:36:46 2020-01-01 00:08:25.000 2020-01-02 03:36:46.000 505 99406 49955.5 4995550 505 99406 49955.5 4995550 -32665 32473 4735.66 473566 -128 124 -2.9 -290 +506 2 10496 99407 1.51951 298.51951 150.01951 15001.95195 1.51951 298.51953 150.01951 15001.9519 1.51951 298.51951 150.01951 15001.95100 2020-01-01 2020-01-02 2020-01-01 00:08:26 2020-01-02 03:36:47 2020-01-01 00:08:26.000 2020-01-02 03:36:47.000 506 99407 49956.5 4995650 506 99407 49956.5 4995650 -32664 32474 4736.66 473666 -127 125 -1.9 -190 +507 2 10497 99408 1.52252 298.52252 150.02252 15002.25225 1.52252 298.52252 150.02252 15002.2522 1.52252 298.52252 150.02252000000001 15002.25200 2020-01-01 2020-01-02 2020-01-01 00:08:27 2020-01-02 03:36:48 2020-01-01 00:08:27.000 2020-01-02 03:36:48.000 507 99408 49957.5 4995750 507 99408 49957.5 4995750 -32663 32475 4737.66 473766 -126 126 -0.9 -90 +508 2 10498 99409 1.52552 298.52552 150.02552 15002.55255 1.52552 298.5255 150.02552 15002.5525 1.52552 298.52552 150.02552 15002.55200 2020-01-01 2020-01-02 2020-01-01 00:08:28 2020-01-02 03:36:49 2020-01-01 00:08:28.000 2020-01-02 03:36:49.000 508 99409 49958.5 4995850 508 99409 49958.5 4995850 -32662 32476 4738.66 473866 -125 127 0.1 10 +509 2 10499 99410 1.52852 298.52852 150.02852 15002.85285 1.52852 298.52853 150.02853 15002.85312 1.52852 298.52852 150.02852000000001 15002.85200 2020-01-01 2020-01-02 2020-01-01 00:08:29 2020-01-02 03:36:50 2020-01-01 00:08:29.000 2020-01-02 03:36:50.000 509 99410 49959.5 4995950 509 99410 49959.5 4995950 -32661 32477 4739.66 473966 -128 127 -1.46 -146 +51 2 10041 99951 0.15315 300.15315 150.15315 15165.46846 0.15315 300.15317 150.15315 15165.46863 0.15315 300.15315 150.15315 15165.46815 2020-01-01 2020-01-02 2020-01-01 00:00:51 2020-01-02 03:45:51 2020-01-01 00:00:51.000 2020-01-02 03:45:51.000 51 99951 50001 5050101 51 99951 50001 5050101 -32518 32417 4580.009900990099 462581 -126 125 -2.6435643564356437 -267 +510 2 10500 99411 1.53153 298.53153 150.03153 15003.15315 1.53153 298.53152 150.03152 15003.15278 1.53153 298.53153 150.03153 15003.15300 2020-01-01 2020-01-02 2020-01-01 00:08:30 2020-01-02 03:36:51 2020-01-01 00:08:30.000 2020-01-02 03:36:51.000 510 99411 49960.5 4996050 510 99411 49960.5 4996050 -32660 32478 4740.66 474066 -128 127 -3.02 -302 +511 2 10501 99412 1.53453 298.53453 150.03453 15003.45345 1.53453 298.53455 150.03453 15003.45354 1.53453 298.53453 150.03453 15003.45300 2020-01-01 2020-01-02 2020-01-01 00:08:31 2020-01-02 03:36:52 2020-01-01 00:08:31.000 2020-01-02 03:36:52.000 511 99412 49961.5 4996150 511 99412 49961.5 4996150 -32659 32479 4741.66 474166 -128 123 -4.58 -458 +512 2 10502 99413 1.53753 298.53753 150.03753 15003.75375 1.53753 298.53754 150.03753 15003.75366 1.53753 298.53753 150.03753 15003.75300 2020-01-01 2020-01-02 2020-01-01 00:08:32 2020-01-02 03:36:53 2020-01-01 00:08:32.000 2020-01-02 03:36:53.000 512 99413 49962.5 4996250 512 99413 49962.5 4996250 -32658 32480 4742.66 474266 -127 124 -3.58 -358 513 2 10503 99414 1.54054 298.54054 150.04054 15004.05405 1.54054 298.54053 150.04053 15004.05397 1.54054 298.54054 150.04054 15004.05400 2020-01-01 2020-01-02 2020-01-01 00:08:33 2020-01-02 03:36:54 2020-01-01 00:08:33.000 2020-01-02 03:36:54.000 513 99414 49963.5 4996350 513 99414 49963.5 4996350 -32657 32481 4743.66 474366 -126 125 -2.58 -258 -514 2 10504 99415 1.54354 298.54354 150.04354 15004.35435 1.54354 298.54355 150.04354 15004.35459 1.54354 298.54354 150.04354000000004 15004.35400 2020-01-01 2020-01-02 2020-01-01 00:08:34 2020-01-02 03:36:55 2020-01-01 00:08:34.000 2020-01-02 03:36:55.000 514 99415 49964.5 4996450 514 99415 49964.5 4996450 -32656 32482 4744.66 474466 -125 126 -1.58 -158 -515 2 10505 99416 1.54654 298.54654 150.04654 15004.65465 1.54654 298.54654 150.04654 15004.65425 1.54654 298.54654 150.0465399999999 15004.65400 2020-01-01 2020-01-02 2020-01-01 00:08:35 2020-01-02 03:36:56 2020-01-01 00:08:35.000 2020-01-02 03:36:56.000 515 99416 49965.5 4996550 515 99416 49965.5 4996550 -32655 32483 4745.66 474566 -124 127 -0.58 -58 +514 2 10504 99415 1.54354 298.54354 150.04354 15004.35435 1.54354 298.54355 150.04354 15004.35459 1.54354 298.54354 150.04354 15004.35400 2020-01-01 2020-01-02 2020-01-01 00:08:34 2020-01-02 03:36:55 2020-01-01 00:08:34.000 2020-01-02 03:36:55.000 514 99415 49964.5 4996450 514 99415 49964.5 4996450 -32656 32482 4744.66 474466 -125 126 -1.58 -158 +515 2 10505 99416 1.54654 298.54654 150.04654 15004.65465 1.54654 298.54654 150.04654 15004.65425 1.54654 298.54654 150.04654 15004.65400 2020-01-01 2020-01-02 2020-01-01 00:08:35 2020-01-02 03:36:56 2020-01-01 00:08:35.000 2020-01-02 03:36:56.000 515 99416 49965.5 4996550 515 99416 49965.5 4996550 -32655 32483 4745.66 474566 -124 127 -0.58 -58 516 2 10506 99417 1.54954 298.54954 150.04954 15004.95495 1.54954 298.54956 150.04955 15004.955 1.54954 298.54954 150.04954 15004.95400 2020-01-01 2020-01-02 2020-01-01 00:08:36 2020-01-02 03:36:57 2020-01-01 00:08:36.000 2020-01-02 03:36:57.000 516 99417 49966.5 4996650 516 99417 49966.5 4996650 -32654 32484 4746.66 474666 -128 127 -2.14 -214 -517 2 10507 99418 1.55255 298.55255 150.05255 15005.25525 1.55255 298.55255 150.05255 15005.25514 1.55255 298.55255 150.05255000000017 15005.25500 2020-01-01 2020-01-02 2020-01-01 00:08:37 2020-01-02 03:36:58 2020-01-01 00:08:37.000 2020-01-02 03:36:58.000 517 99418 49967.5 4996750 517 99418 49967.5 4996750 -32653 32485 4747.66 474766 -128 123 -3.7 -370 -518 2 10508 99419 1.55555 298.55555 150.05555 15005.55555 1.55555 298.55554 150.05555 15005.55547 1.55555 298.55555 150.0555499999998 15005.55500 2020-01-01 2020-01-02 2020-01-01 00:08:38 2020-01-02 03:36:59 2020-01-01 00:08:38.000 2020-01-02 03:36:59.000 518 99419 49968.5 4996850 518 99419 49968.5 4996850 -32652 32486 4748.66 474866 -127 124 -2.7 -270 -519 2 10509 99420 1.55855 298.55855 150.05855 15005.85585 1.55855 298.55856 150.05856 15005.85607 1.55855 298.55855 150.0585499999999 15005.85500 2020-01-01 2020-01-02 2020-01-01 00:08:39 2020-01-02 03:37:00 2020-01-01 00:08:39.000 2020-01-02 03:37:00.000 519 99420 49969.5 4996950 519 99420 49969.5 4996950 -32651 32487 4749.66 474966 -126 125 -1.7 -170 -52 2 10042 99952 0.15615 300.15615 150.15615 15165.77177 0.15615 300.15616 150.15615 15165.77193 0.15615 300.15615 150.15615000000003 15165.77115 2020-01-01 2020-01-02 2020-01-01 00:00:52 2020-01-02 03:45:52 2020-01-01 00:00:52.000 2020-01-02 03:45:52.000 52 99952 50002 5050202 52 99952 50002 5050202 -32517 32418 4581.009900990099 462682 -125 126 -1.6435643564356435 -166 -520 2 10510 99421 1.56156 298.56156 150.06156 15006.15615 1.56156 298.56155 150.06155 15006.15572 1.56156 298.56156 150.06156000000007 15006.15600 2020-01-01 2020-01-02 2020-01-01 00:08:40 2020-01-02 03:37:01 2020-01-01 00:08:40.000 2020-01-02 03:37:01.000 520 99421 49970.5 4997050 520 99421 49970.5 4997050 -32650 32488 4750.66 475066 -125 126 -0.7 -70 -521 2 10511 99422 1.56456 298.56456 150.06456 15006.45645 1.56456 298.56458 150.06456 15006.45647 1.56456 298.56456 150.06456000000009 15006.45600 2020-01-01 2020-01-02 2020-01-01 00:08:41 2020-01-02 03:37:02 2020-01-01 00:08:41.000 2020-01-02 03:37:02.000 521 99422 49971.5 4997150 521 99422 49971.5 4997150 -32649 32489 4751.66 475166 -124 127 0.3 30 -522 2 10512 99423 1.56756 298.56756 150.06756 15006.75675 1.56756 298.56757 150.06756 15006.75661 1.56756 298.56756 150.06756000000004 15006.75600 2020-01-01 2020-01-02 2020-01-01 00:08:42 2020-01-02 03:37:03 2020-01-01 00:08:42.000 2020-01-02 03:37:03.000 522 99423 49972.5 4997250 522 99423 49972.5 4997250 -32648 32490 4752.66 475266 -128 127 -1.26 -126 -523 2 10513 99424 1.57057 298.57057 150.07057 15007.05705 1.57057 298.57056 150.07056 15007.05694 1.57057 298.57057 150.0705699999999 15007.05700 2020-01-01 2020-01-02 2020-01-01 00:08:43 2020-01-02 03:37:04 2020-01-01 00:08:43.000 2020-01-02 03:37:04.000 523 99424 49973.5 4997350 523 99424 49973.5 4997350 -32647 32491 4753.66 475366 -128 123 -2.82 -282 -524 2 10514 99425 1.57357 298.57357 150.07357 15007.35735 1.57357 298.57358 150.07357 15007.35753 1.57357 298.57357 150.07356999999996 15007.35700 2020-01-01 2020-01-02 2020-01-01 00:08:44 2020-01-02 03:37:05 2020-01-01 00:08:44.000 2020-01-02 03:37:05.000 524 99425 49974.5 4997450 524 99425 49974.5 4997450 -32646 32492 4754.66 475466 -127 124 -1.82 -182 -525 2 10515 99426 1.57657 298.57657 150.07657 15007.65765 1.57657 298.57657 150.07657 15007.65783 1.57657 298.57657 150.07656999999992 15007.65700 2020-01-01 2020-01-02 2020-01-01 00:08:45 2020-01-02 03:37:06 2020-01-01 00:08:45.000 2020-01-02 03:37:06.000 525 99426 49975.5 4997550 525 99426 49975.5 4997550 -32645 32493 4755.66 475566 -126 125 -0.82 -82 -526 2 10516 99427 1.57957 298.57957 150.07957 15007.95795 1.57957 298.5796 150.07957 15007.95795 1.57957 298.57957 150.0795699999999 15007.95700 2020-01-01 2020-01-02 2020-01-01 00:08:46 2020-01-02 03:37:07 2020-01-01 00:08:46.000 2020-01-02 03:37:07.000 526 99427 49976.5 4997650 526 99427 49976.5 4997650 -32644 32494 4756.66 475666 -125 126 0.18 18 -527 2 10517 99428 1.58258 298.58258 150.08258 15008.25825 1.58258 298.58258 150.08258 15008.25811 1.58258 298.58258 150.08258000000012 15008.25800 2020-01-01 2020-01-02 2020-01-01 00:08:47 2020-01-02 03:37:08 2020-01-01 00:08:47.000 2020-01-02 03:37:08.000 527 99428 49977.5 4997750 527 99428 49977.5 4997750 -32643 32495 4757.66 475766 -124 127 1.18 118 -528 2 10518 99429 1.58558 298.58558 150.08558 15008.55855 1.58558 298.58557 150.08558 15008.5584 1.58558 298.58558 150.08558000000014 15008.55800 2020-01-01 2020-01-02 2020-01-01 00:08:48 2020-01-02 03:37:09 2020-01-01 00:08:48.000 2020-01-02 03:37:09.000 528 99429 49978.5 4997850 528 99429 49978.5 4997850 -32642 32496 4758.66 475866 -128 127 -0.38 -38 -529 2 10519 99430 1.58858 298.58858 150.08858 15008.85885 1.58858 298.5886 150.08859 15008.859 1.58858 298.58858 150.08857999999984 15008.85800 2020-01-01 2020-01-02 2020-01-01 00:08:49 2020-01-02 03:37:10 2020-01-01 00:08:49.000 2020-01-02 03:37:10.000 529 99430 49979.5 4997950 529 99430 49979.5 4997950 -32641 32497 4759.66 475966 -128 127 -1.94 -194 -53 2 10043 99953 0.15915 300.15915 150.15915 15166.07507 0.15915 300.15915 150.15915 15166.07511 0.15915 300.15915 150.15914999999998 15166.07415 2020-01-01 2020-01-02 2020-01-01 00:00:53 2020-01-02 03:45:53 2020-01-01 00:00:53.000 2020-01-02 03:45:53.000 53 99953 50003 5050303 53 99953 50003 5050303 -32516 32419 4582.009900990099 462783 -124 127 -0.6435643564356436 -65 +517 2 10507 99418 1.55255 298.55255 150.05255 15005.25525 1.55255 298.55255 150.05255 15005.25514 1.55255 298.55255 150.05255 15005.25500 2020-01-01 2020-01-02 2020-01-01 00:08:37 2020-01-02 03:36:58 2020-01-01 00:08:37.000 2020-01-02 03:36:58.000 517 99418 49967.5 4996750 517 99418 49967.5 4996750 -32653 32485 4747.66 474766 -128 123 -3.7 -370 +518 2 10508 99419 1.55555 298.55555 150.05555 15005.55555 1.55555 298.55554 150.05555 15005.55547 1.55555 298.55555 150.05555 15005.55500 2020-01-01 2020-01-02 2020-01-01 00:08:38 2020-01-02 03:36:59 2020-01-01 00:08:38.000 2020-01-02 03:36:59.000 518 99419 49968.5 4996850 518 99419 49968.5 4996850 -32652 32486 4748.66 474866 -127 124 -2.7 -270 +519 2 10509 99420 1.55855 298.55855 150.05855 15005.85585 1.55855 298.55856 150.05856 15005.85607 1.55855 298.55855 150.05855 15005.85500 2020-01-01 2020-01-02 2020-01-01 00:08:39 2020-01-02 03:37:00 2020-01-01 00:08:39.000 2020-01-02 03:37:00.000 519 99420 49969.5 4996950 519 99420 49969.5 4996950 -32651 32487 4749.66 474966 -126 125 -1.7 -170 +52 2 10042 99952 0.15615 300.15615 150.15615 15165.77177 0.15615 300.15616 150.15615 15165.77193 0.15615 300.15615 150.15615 15165.77115 2020-01-01 2020-01-02 2020-01-01 00:00:52 2020-01-02 03:45:52 2020-01-01 00:00:52.000 2020-01-02 03:45:52.000 52 99952 50002 5050202 52 99952 50002 5050202 -32517 32418 4581.009900990099 462682 -125 126 -1.6435643564356435 -166 +520 2 10510 99421 1.56156 298.56156 150.06156 15006.15615 1.56156 298.56155 150.06155 15006.15572 1.56156 298.56156 150.06156000000001 15006.15600 2020-01-01 2020-01-02 2020-01-01 00:08:40 2020-01-02 03:37:01 2020-01-01 00:08:40.000 2020-01-02 03:37:01.000 520 99421 49970.5 4997050 520 99421 49970.5 4997050 -32650 32488 4750.66 475066 -125 126 -0.7 -70 +521 2 10511 99422 1.56456 298.56456 150.06456 15006.45645 1.56456 298.56458 150.06456 15006.45647 1.56456 298.56456 150.06456 15006.45600 2020-01-01 2020-01-02 2020-01-01 00:08:41 2020-01-02 03:37:02 2020-01-01 00:08:41.000 2020-01-02 03:37:02.000 521 99422 49971.5 4997150 521 99422 49971.5 4997150 -32649 32489 4751.66 475166 -124 127 0.3 30 +522 2 10512 99423 1.56756 298.56756 150.06756 15006.75675 1.56756 298.56757 150.06756 15006.75661 1.56756 298.56756 150.06756 15006.75600 2020-01-01 2020-01-02 2020-01-01 00:08:42 2020-01-02 03:37:03 2020-01-01 00:08:42.000 2020-01-02 03:37:03.000 522 99423 49972.5 4997250 522 99423 49972.5 4997250 -32648 32490 4752.66 475266 -128 127 -1.26 -126 +523 2 10513 99424 1.57057 298.57057 150.07057 15007.05705 1.57057 298.57056 150.07056 15007.05694 1.57057 298.57057 150.07057 15007.05700 2020-01-01 2020-01-02 2020-01-01 00:08:43 2020-01-02 03:37:04 2020-01-01 00:08:43.000 2020-01-02 03:37:04.000 523 99424 49973.5 4997350 523 99424 49973.5 4997350 -32647 32491 4753.66 475366 -128 123 -2.82 -282 +524 2 10514 99425 1.57357 298.57357 150.07357 15007.35735 1.57357 298.57358 150.07357 15007.35753 1.57357 298.57357 150.07357 15007.35700 2020-01-01 2020-01-02 2020-01-01 00:08:44 2020-01-02 03:37:05 2020-01-01 00:08:44.000 2020-01-02 03:37:05.000 524 99425 49974.5 4997450 524 99425 49974.5 4997450 -32646 32492 4754.66 475466 -127 124 -1.82 -182 +525 2 10515 99426 1.57657 298.57657 150.07657 15007.65765 1.57657 298.57657 150.07657 15007.65783 1.57657 298.57657 150.07657 15007.65700 2020-01-01 2020-01-02 2020-01-01 00:08:45 2020-01-02 03:37:06 2020-01-01 00:08:45.000 2020-01-02 03:37:06.000 525 99426 49975.5 4997550 525 99426 49975.5 4997550 -32645 32493 4755.66 475566 -126 125 -0.82 -82 +526 2 10516 99427 1.57957 298.57957 150.07957 15007.95795 1.57957 298.5796 150.07957 15007.95795 1.57957 298.57957 150.07957 15007.95700 2020-01-01 2020-01-02 2020-01-01 00:08:46 2020-01-02 03:37:07 2020-01-01 00:08:46.000 2020-01-02 03:37:07.000 526 99427 49976.5 4997650 526 99427 49976.5 4997650 -32644 32494 4756.66 475666 -125 126 0.18 18 +527 2 10517 99428 1.58258 298.58258 150.08258 15008.25825 1.58258 298.58258 150.08258 15008.25811 1.58258 298.58258 150.08258 15008.25800 2020-01-01 2020-01-02 2020-01-01 00:08:47 2020-01-02 03:37:08 2020-01-01 00:08:47.000 2020-01-02 03:37:08.000 527 99428 49977.5 4997750 527 99428 49977.5 4997750 -32643 32495 4757.66 475766 -124 127 1.18 118 +528 2 10518 99429 1.58558 298.58558 150.08558 15008.55855 1.58558 298.58557 150.08558 15008.5584 1.58558 298.58558 150.08558000000002 15008.55800 2020-01-01 2020-01-02 2020-01-01 00:08:48 2020-01-02 03:37:09 2020-01-01 00:08:48.000 2020-01-02 03:37:09.000 528 99429 49978.5 4997850 528 99429 49978.5 4997850 -32642 32496 4758.66 475866 -128 127 -0.38 -38 +529 2 10519 99430 1.58858 298.58858 150.08858 15008.85885 1.58858 298.5886 150.08859 15008.859 1.58858 298.58858 150.08858 15008.85800 2020-01-01 2020-01-02 2020-01-01 00:08:49 2020-01-02 03:37:10 2020-01-01 00:08:49.000 2020-01-02 03:37:10.000 529 99430 49979.5 4997950 529 99430 49979.5 4997950 -32641 32497 4759.66 475966 -128 127 -1.94 -194 +53 2 10043 99953 0.15915 300.15915 150.15915 15166.07507 0.15915 300.15915 150.15915 15166.07511 0.15915 300.15915 150.15915 15166.07415 2020-01-01 2020-01-02 2020-01-01 00:00:53 2020-01-02 03:45:53 2020-01-01 00:00:53.000 2020-01-02 03:45:53.000 53 99953 50003 5050303 53 99953 50003 5050303 -32516 32419 4582.009900990099 462783 -124 127 -0.6435643564356436 -65 530 2 10520 99431 1.59159 298.59159 150.09159 15009.15915 1.59159 298.59158 150.09159 15009.15929 1.59159 298.59159 150.09159 15009.15900 2020-01-01 2020-01-02 2020-01-01 00:08:50 2020-01-02 03:37:11 2020-01-01 00:08:50.000 2020-01-02 03:37:11.000 530 99431 49980.5 4998050 530 99431 49980.5 4998050 -32640 32498 4760.66 476066 -128 124 -3.5 -350 -531 2 10521 99432 1.59459 298.59459 150.09459 15009.45945 1.59459 298.5946 150.09459 15009.45941 1.59459 298.59459 150.09459000000007 15009.45900 2020-01-01 2020-01-02 2020-01-01 00:08:51 2020-01-02 03:37:12 2020-01-01 00:08:51.000 2020-01-02 03:37:12.000 531 99432 49981.5 4998150 531 99432 49981.5 4998150 -32639 32499 4761.66 476166 -127 125 -2.5 -250 -532 2 10522 99433 1.59759 298.59759 150.09759 15009.75975 1.59759 298.5976 150.09759 15009.75958 1.59759 298.59759 150.09758999999994 15009.75900 2020-01-01 2020-01-02 2020-01-01 00:08:52 2020-01-02 03:37:13 2020-01-01 00:08:52.000 2020-01-02 03:37:13.000 532 99433 49982.5 4998250 532 99433 49982.5 4998250 -32638 32500 4762.66 476266 -126 126 -1.5 -150 -533 2 10523 99434 1.6006 298.6006 150.1006 15010.06006 1.6006 298.6006 150.10059 15010.05988 1.60060 298.60060 150.10059999999984 15010.06000 2020-01-01 2020-01-02 2020-01-01 00:08:53 2020-01-02 03:37:14 2020-01-01 00:08:53.000 2020-01-02 03:37:14.000 533 99434 49983.5 4998350 533 99434 49983.5 4998350 -32637 32501 4763.66 476366 -125 127 -0.5 -50 -534 2 10524 99435 1.6036 298.6036 150.1036 15010.36036 1.6036 298.6036 150.1036 15010.36063 1.60360 298.60360 150.10360000000017 15010.36000 2020-01-01 2020-01-02 2020-01-01 00:08:54 2020-01-02 03:37:15 2020-01-01 00:08:54.000 2020-01-02 03:37:15.000 534 99435 49984.5 4998450 534 99435 49984.5 4998450 -32636 32502 4764.66 476466 -128 127 -2.06 -206 -535 2 10525 99436 1.6066 298.6066 150.1066 15010.66066 1.6066 298.6066 150.1066 15010.66077 1.60660 298.60660 150.10659999999987 15010.66000 2020-01-01 2020-01-02 2020-01-01 00:08:55 2020-01-02 03:37:16 2020-01-01 00:08:55.000 2020-01-02 03:37:16.000 535 99436 49985.5 4998550 535 99436 49985.5 4998550 -32635 32503 4765.66 476566 -128 127 -3.62 -362 -536 2 10526 99437 1.6096 298.6096 150.1096 15010.96096 1.6096 298.60962 150.1096 15010.96092 1.60960 298.60960 150.10959999999986 15010.96000 2020-01-01 2020-01-02 2020-01-01 00:08:56 2020-01-02 03:37:17 2020-01-01 00:08:56.000 2020-01-02 03:37:17.000 536 99437 49986.5 4998650 536 99437 49986.5 4998650 -32634 32504 4766.66 476666 -128 123 -5.18 -518 -537 2 10527 99438 1.61261 298.61261 150.11261 15011.26126 1.61261 298.6126 150.11261 15011.26105 1.61261 298.61261 150.1126100000001 15011.26100 2020-01-01 2020-01-02 2020-01-01 00:08:57 2020-01-02 03:37:18 2020-01-01 00:08:57.000 2020-01-02 03:37:18.000 537 99438 49987.5 4998750 537 99438 49987.5 4998750 -32633 32505 4767.66 476766 -127 124 -4.18 -418 -538 2 10528 99439 1.61561 298.61561 150.11561 15011.56156 1.61561 298.6156 150.11561 15011.56135 1.61561 298.61561 150.11561000000012 15011.56100 2020-01-01 2020-01-02 2020-01-01 00:08:58 2020-01-02 03:37:19 2020-01-01 00:08:58.000 2020-01-02 03:37:19.000 538 99439 49988.5 4998850 538 99439 49988.5 4998850 -32632 32506 4768.66 476866 -126 125 -3.18 -318 -539 2 10529 99440 1.61861 298.61861 150.11861 15011.86186 1.61861 298.61862 150.11862 15011.8621 1.61861 298.61861 150.1186099999999 15011.86100 2020-01-01 2020-01-02 2020-01-01 00:08:59 2020-01-02 03:37:20 2020-01-01 00:08:59.000 2020-01-02 03:37:20.000 539 99440 49989.5 4998950 539 99440 49989.5 4998950 -32631 32507 4769.66 476966 -125 126 -2.18 -218 -54 2 10044 99954 0.16216 300.16216 150.16216 15166.37837 0.16216 300.16217 150.16216 15166.37822 0.16216 300.16216 150.1621599999999 15166.37816 2020-01-01 2020-01-02 2020-01-01 00:00:54 2020-01-02 03:45:54 2020-01-01 00:00:54.000 2020-01-02 03:45:54.000 54 99954 50004 5050404 54 99954 50004 5050404 -32515 32420 4583.009900990099 462884 -128 127 -2.1782178217821784 -220 -540 2 10530 99441 1.62162 298.62162 150.12162 15012.16216 1.62162 298.6216 150.12162 15012.16224 1.62162 298.62162 150.12161999999992 15012.16200 2020-01-01 2020-01-02 2020-01-01 00:09:00 2020-01-02 03:37:21 2020-01-01 00:09:00.000 2020-01-02 03:37:21.000 540 99441 49990.5 4999050 540 99441 49990.5 4999050 -32630 32508 4770.66 477066 -124 127 -1.18 -118 +531 2 10521 99432 1.59459 298.59459 150.09459 15009.45945 1.59459 298.5946 150.09459 15009.45941 1.59459 298.59459 150.09459 15009.45900 2020-01-01 2020-01-02 2020-01-01 00:08:51 2020-01-02 03:37:12 2020-01-01 00:08:51.000 2020-01-02 03:37:12.000 531 99432 49981.5 4998150 531 99432 49981.5 4998150 -32639 32499 4761.66 476166 -127 125 -2.5 -250 +532 2 10522 99433 1.59759 298.59759 150.09759 15009.75975 1.59759 298.5976 150.09759 15009.75958 1.59759 298.59759 150.09759 15009.75900 2020-01-01 2020-01-02 2020-01-01 00:08:52 2020-01-02 03:37:13 2020-01-01 00:08:52.000 2020-01-02 03:37:13.000 532 99433 49982.5 4998250 532 99433 49982.5 4998250 -32638 32500 4762.66 476266 -126 126 -1.5 -150 +533 2 10523 99434 1.6006 298.6006 150.1006 15010.06006 1.6006 298.6006 150.10059 15010.05988 1.60060 298.60060 150.1006 15010.06000 2020-01-01 2020-01-02 2020-01-01 00:08:53 2020-01-02 03:37:14 2020-01-01 00:08:53.000 2020-01-02 03:37:14.000 533 99434 49983.5 4998350 533 99434 49983.5 4998350 -32637 32501 4763.66 476366 -125 127 -0.5 -50 +534 2 10524 99435 1.6036 298.6036 150.1036 15010.36036 1.6036 298.6036 150.1036 15010.36063 1.60360 298.60360 150.1036 15010.36000 2020-01-01 2020-01-02 2020-01-01 00:08:54 2020-01-02 03:37:15 2020-01-01 00:08:54.000 2020-01-02 03:37:15.000 534 99435 49984.5 4998450 534 99435 49984.5 4998450 -32636 32502 4764.66 476466 -128 127 -2.06 -206 +535 2 10525 99436 1.6066 298.6066 150.1066 15010.66066 1.6066 298.6066 150.1066 15010.66077 1.60660 298.60660 150.1066 15010.66000 2020-01-01 2020-01-02 2020-01-01 00:08:55 2020-01-02 03:37:16 2020-01-01 00:08:55.000 2020-01-02 03:37:16.000 535 99436 49985.5 4998550 535 99436 49985.5 4998550 -32635 32503 4765.66 476566 -128 127 -3.62 -362 +536 2 10526 99437 1.6096 298.6096 150.1096 15010.96096 1.6096 298.60962 150.1096 15010.96092 1.60960 298.60960 150.1096 15010.96000 2020-01-01 2020-01-02 2020-01-01 00:08:56 2020-01-02 03:37:17 2020-01-01 00:08:56.000 2020-01-02 03:37:17.000 536 99437 49986.5 4998650 536 99437 49986.5 4998650 -32634 32504 4766.66 476666 -128 123 -5.18 -518 +537 2 10527 99438 1.61261 298.61261 150.11261 15011.26126 1.61261 298.6126 150.11261 15011.26105 1.61261 298.61261 150.11261000000002 15011.26100 2020-01-01 2020-01-02 2020-01-01 00:08:57 2020-01-02 03:37:18 2020-01-01 00:08:57.000 2020-01-02 03:37:18.000 537 99438 49987.5 4998750 537 99438 49987.5 4998750 -32633 32505 4767.66 476766 -127 124 -4.18 -418 +538 2 10528 99439 1.61561 298.61561 150.11561 15011.56156 1.61561 298.6156 150.11561 15011.56135 1.61561 298.61561 150.11561 15011.56100 2020-01-01 2020-01-02 2020-01-01 00:08:58 2020-01-02 03:37:19 2020-01-01 00:08:58.000 2020-01-02 03:37:19.000 538 99439 49988.5 4998850 538 99439 49988.5 4998850 -32632 32506 4768.66 476866 -126 125 -3.18 -318 +539 2 10529 99440 1.61861 298.61861 150.11861 15011.86186 1.61861 298.61862 150.11862 15011.8621 1.61861 298.61861 150.11861000000002 15011.86100 2020-01-01 2020-01-02 2020-01-01 00:08:59 2020-01-02 03:37:20 2020-01-01 00:08:59.000 2020-01-02 03:37:20.000 539 99440 49989.5 4998950 539 99440 49989.5 4998950 -32631 32507 4769.66 476966 -125 126 -2.18 -218 +54 2 10044 99954 0.16216 300.16216 150.16216 15166.37837 0.16216 300.16217 150.16216 15166.37822 0.16216 300.16216 150.16216 15166.37816 2020-01-01 2020-01-02 2020-01-01 00:00:54 2020-01-02 03:45:54 2020-01-01 00:00:54.000 2020-01-02 03:45:54.000 54 99954 50004 5050404 54 99954 50004 5050404 -32515 32420 4583.009900990099 462884 -128 127 -2.1782178217821784 -220 +540 2 10530 99441 1.62162 298.62162 150.12162 15012.16216 1.62162 298.6216 150.12162 15012.16224 1.62162 298.62162 150.12162 15012.16200 2020-01-01 2020-01-02 2020-01-01 00:09:00 2020-01-02 03:37:21 2020-01-01 00:09:00.000 2020-01-02 03:37:21.000 540 99441 49990.5 4999050 540 99441 49990.5 4999050 -32630 32508 4770.66 477066 -124 127 -1.18 -118 541 2 10531 99442 1.62462 298.62462 150.12462 15012.46246 1.62462 298.62463 150.12462 15012.46239 1.62462 298.62462 150.12462 15012.46200 2020-01-01 2020-01-02 2020-01-01 00:09:01 2020-01-02 03:37:22 2020-01-01 00:09:01.000 2020-01-02 03:37:22.000 541 99442 49991.5 4999150 541 99442 49991.5 4999150 -32629 32509 4771.66 477166 -128 127 -2.74 -274 -542 2 10532 99443 1.62762 298.62762 150.12762 15012.76276 1.62762 298.62762 150.12762 15012.76252 1.62762 298.62762 150.12761999999998 15012.76200 2020-01-01 2020-01-02 2020-01-01 00:09:02 2020-01-02 03:37:23 2020-01-01 00:09:02.000 2020-01-02 03:37:23.000 542 99443 49992.5 4999250 542 99443 49992.5 4999250 -32628 32510 4772.66 477266 -128 123 -4.3 -430 -543 2 10533 99444 1.63063 298.63063 150.13063 15013.06306 1.63063 298.63065 150.13063 15013.06327 1.63063 298.63063 150.13062999999985 15013.06300 2020-01-01 2020-01-02 2020-01-01 00:09:03 2020-01-02 03:37:24 2020-01-01 00:09:03.000 2020-01-02 03:37:24.000 543 99444 49993.5 4999350 543 99444 49993.5 4999350 -32627 32511 4773.66 477366 -127 124 -3.3 -330 -544 2 10534 99445 1.63363 298.63363 150.13363 15013.36336 1.63363 298.63364 150.13363 15013.36358 1.63363 298.63363 150.13363000000012 15013.36300 2020-01-01 2020-01-02 2020-01-01 00:09:04 2020-01-02 03:37:25 2020-01-01 00:09:04.000 2020-01-02 03:37:25.000 544 99445 49994.5 4999450 544 99445 49994.5 4999450 -32626 32512 4774.66 477466 -126 125 -2.3 -230 -545 2 10535 99446 1.63663 298.63663 150.13663 15013.66366 1.63663 298.63663 150.13663 15013.6637 1.63663 298.63663 150.1366300000002 15013.66300 2020-01-01 2020-01-02 2020-01-01 00:09:05 2020-01-02 03:37:26 2020-01-01 00:09:05.000 2020-01-02 03:37:26.000 545 99446 49995.5 4999550 545 99446 49995.5 4999550 -32625 32513 4775.66 477566 -125 126 -1.3 -130 -546 2 10536 99447 1.63963 298.63963 150.13963 15013.96396 1.63963 298.63965 150.13963 15013.96385 1.63963 298.63963 150.13962999999984 15013.96300 2020-01-01 2020-01-02 2020-01-01 00:09:06 2020-01-02 03:37:27 2020-01-01 00:09:06.000 2020-01-02 03:37:27.000 546 99447 49996.5 4999650 546 99447 49996.5 4999650 -32624 32514 4776.66 477666 -124 127 -0.3 -30 +542 2 10532 99443 1.62762 298.62762 150.12762 15012.76276 1.62762 298.62762 150.12762 15012.76252 1.62762 298.62762 150.12762 15012.76200 2020-01-01 2020-01-02 2020-01-01 00:09:02 2020-01-02 03:37:23 2020-01-01 00:09:02.000 2020-01-02 03:37:23.000 542 99443 49992.5 4999250 542 99443 49992.5 4999250 -32628 32510 4772.66 477266 -128 123 -4.3 -430 +543 2 10533 99444 1.63063 298.63063 150.13063 15013.06306 1.63063 298.63065 150.13063 15013.06327 1.63063 298.63063 150.13063 15013.06300 2020-01-01 2020-01-02 2020-01-01 00:09:03 2020-01-02 03:37:24 2020-01-01 00:09:03.000 2020-01-02 03:37:24.000 543 99444 49993.5 4999350 543 99444 49993.5 4999350 -32627 32511 4773.66 477366 -127 124 -3.3 -330 +544 2 10534 99445 1.63363 298.63363 150.13363 15013.36336 1.63363 298.63364 150.13363 15013.36358 1.63363 298.63363 150.13362999999998 15013.36300 2020-01-01 2020-01-02 2020-01-01 00:09:04 2020-01-02 03:37:25 2020-01-01 00:09:04.000 2020-01-02 03:37:25.000 544 99445 49994.5 4999450 544 99445 49994.5 4999450 -32626 32512 4774.66 477466 -126 125 -2.3 -230 +545 2 10535 99446 1.63663 298.63663 150.13663 15013.66366 1.63663 298.63663 150.13663 15013.6637 1.63663 298.63663 150.13663 15013.66300 2020-01-01 2020-01-02 2020-01-01 00:09:05 2020-01-02 03:37:26 2020-01-01 00:09:05.000 2020-01-02 03:37:26.000 545 99446 49995.5 4999550 545 99446 49995.5 4999550 -32625 32513 4775.66 477566 -125 126 -1.3 -130 +546 2 10536 99447 1.63963 298.63963 150.13963 15013.96396 1.63963 298.63965 150.13963 15013.96385 1.63963 298.63963 150.13963 15013.96300 2020-01-01 2020-01-02 2020-01-01 00:09:06 2020-01-02 03:37:27 2020-01-01 00:09:06.000 2020-01-02 03:37:27.000 546 99447 49996.5 4999650 546 99447 49996.5 4999650 -32624 32514 4776.66 477666 -124 127 -0.3 -30 547 2 10537 99448 1.64264 298.64264 150.14264 15014.26426 1.64264 298.64264 150.14263 15014.26399 1.64264 298.64264 150.14264 15014.26400 2020-01-01 2020-01-02 2020-01-01 00:09:07 2020-01-02 03:37:28 2020-01-01 00:09:07.000 2020-01-02 03:37:28.000 547 99448 49997.5 4999750 547 99448 49997.5 4999750 -32623 32515 4777.66 477766 -128 127 -1.86 -186 -548 2 10538 99449 1.64564 298.64564 150.14564 15014.56456 1.64564 298.64566 150.14564 15014.56474 1.64564 298.64564 150.1456400000001 15014.56400 2020-01-01 2020-01-02 2020-01-01 00:09:08 2020-01-02 03:37:29 2020-01-01 00:09:08.000 2020-01-02 03:37:29.000 548 99449 49998.5 4999850 548 99449 49998.5 4999850 -32622 32516 4778.66 477866 -128 123 -3.42 -342 -549 2 10539 99450 1.64864 298.64864 150.14864 15014.86486 1.64864 298.64865 150.14865 15014.86504 1.64864 298.64864 150.14863999999997 15014.86400 2020-01-01 2020-01-02 2020-01-01 00:09:09 2020-01-02 03:37:30 2020-01-01 00:09:09.000 2020-01-02 03:37:30.000 549 99450 49999.5 4999950 549 99450 49999.5 4999950 -32621 32517 4779.66 477966 -127 124 -2.42 -242 -55 2 10045 99955 0.16516 300.16516 150.16516 15166.68168 0.16516 300.16516 150.16516 15166.68151 0.16516 300.16516 150.16515999999996 15166.68116 2020-01-01 2020-01-02 2020-01-01 00:00:55 2020-01-02 03:45:55 2020-01-01 00:00:55.000 2020-01-02 03:45:55.000 55 99955 50005 5050505 55 99955 50005 5050505 -32514 32421 4584.009900990099 462985 -128 123 -3.712871287128713 -375 -550 2 10540 99451 1.65165 298.65165 150.15165 15015.16516 1.65165 298.65164 150.15165 15015.16521 1.65165 298.65165 150.15164999999985 15015.16500 2020-01-01 2020-01-02 2020-01-01 00:09:10 2020-01-02 03:37:31 2020-01-01 00:09:10.000 2020-01-02 03:37:31.000 550 99451 50000.5 5000050 550 99451 50000.5 5000050 -32620 32518 4780.66 478066 -126 125 -1.42 -142 -551 2 10541 99452 1.65465 298.65465 150.15465 15015.46546 1.65465 298.65466 150.15465 15015.46533 1.65465 298.65465 150.1546500000002 15015.46500 2020-01-01 2020-01-02 2020-01-01 00:09:11 2020-01-02 03:37:32 2020-01-01 00:09:11.000 2020-01-02 03:37:32.000 551 99452 50001.5 5000150 551 99452 50001.5 5000150 -32619 32519 4781.66 478166 -125 126 -0.42 -42 -552 2 10542 99453 1.65765 298.65765 150.15765 15015.76576 1.65765 298.65765 150.15765 15015.76562 1.65765 298.65765 150.15764999999985 15015.76500 2020-01-01 2020-01-02 2020-01-01 00:09:12 2020-01-02 03:37:33 2020-01-01 00:09:12.000 2020-01-02 03:37:33.000 552 99453 50002.5 5000250 552 99453 50002.5 5000250 -32618 32520 4782.66 478266 -124 127 0.58 58 -553 2 10543 99454 1.66066 298.66066 150.16066 15016.06606 1.66066 298.66068 150.16066 15016.06621 1.66066 298.66066 150.16065999999978 15016.06600 2020-01-01 2020-01-02 2020-01-01 00:09:13 2020-01-02 03:37:34 2020-01-01 00:09:13.000 2020-01-02 03:37:34.000 553 99454 50003.5 5000350 553 99454 50003.5 5000350 -32617 32521 4783.66 478366 -128 127 -0.98 -98 -554 2 10544 99455 1.66366 298.66366 150.16366 15016.36636 1.66366 298.66367 150.16366 15016.36651 1.66366 298.66366 150.1636600000001 15016.36600 2020-01-01 2020-01-02 2020-01-01 00:09:14 2020-01-02 03:37:35 2020-01-01 00:09:14.000 2020-01-02 03:37:35.000 554 99455 50004.5 5000450 554 99455 50004.5 5000450 -32616 32522 4784.66 478466 -128 127 -2.54 -254 -555 2 10545 99456 1.66666 298.66666 150.16666 15016.66666 1.66666 298.66666 150.16666 15016.66668 1.66666 298.66666 150.16666000000012 15016.66600 2020-01-01 2020-01-02 2020-01-01 00:09:15 2020-01-02 03:37:36 2020-01-01 00:09:15.000 2020-01-02 03:37:36.000 555 99456 50005.5 5000550 555 99456 50005.5 5000550 -32615 32523 4785.66 478566 -128 124 -4.1 -410 -556 2 10546 99457 1.66966 298.66966 150.16966 15016.96696 1.66966 298.66968 150.16966 15016.9668 1.66966 298.66966 150.1696599999998 15016.96600 2020-01-01 2020-01-02 2020-01-01 00:09:16 2020-01-02 03:37:37 2020-01-01 00:09:16.000 2020-01-02 03:37:37.000 556 99457 50006.5 5000650 556 99457 50006.5 5000650 -32614 32524 4786.66 478666 -127 125 -3.1 -310 -557 2 10547 99458 1.67267 298.67267 150.17267 15017.26726 1.67267 298.67267 150.17267 15017.26709 1.67267 298.67267 150.17266999999995 15017.26700 2020-01-01 2020-01-02 2020-01-01 00:09:17 2020-01-02 03:37:38 2020-01-01 00:09:17.000 2020-01-02 03:37:38.000 557 99458 50007.5 5000750 557 99458 50007.5 5000750 -32613 32525 4787.66 478766 -126 126 -2.1 -210 +548 2 10538 99449 1.64564 298.64564 150.14564 15014.56456 1.64564 298.64566 150.14564 15014.56474 1.64564 298.64564 150.14564000000001 15014.56400 2020-01-01 2020-01-02 2020-01-01 00:09:08 2020-01-02 03:37:29 2020-01-01 00:09:08.000 2020-01-02 03:37:29.000 548 99449 49998.5 4999850 548 99449 49998.5 4999850 -32622 32516 4778.66 477866 -128 123 -3.42 -342 +549 2 10539 99450 1.64864 298.64864 150.14864 15014.86486 1.64864 298.64865 150.14865 15014.86504 1.64864 298.64864 150.14864 15014.86400 2020-01-01 2020-01-02 2020-01-01 00:09:09 2020-01-02 03:37:30 2020-01-01 00:09:09.000 2020-01-02 03:37:30.000 549 99450 49999.5 4999950 549 99450 49999.5 4999950 -32621 32517 4779.66 477966 -127 124 -2.42 -242 +55 2 10045 99955 0.16516 300.16516 150.16516 15166.68168 0.16516 300.16516 150.16516 15166.68151 0.16516 300.16516 150.16516000000001 15166.68116 2020-01-01 2020-01-02 2020-01-01 00:00:55 2020-01-02 03:45:55 2020-01-01 00:00:55.000 2020-01-02 03:45:55.000 55 99955 50005 5050505 55 99955 50005 5050505 -32514 32421 4584.009900990099 462985 -128 123 -3.712871287128713 -375 +550 2 10540 99451 1.65165 298.65165 150.15165 15015.16516 1.65165 298.65164 150.15165 15015.16521 1.65165 298.65165 150.15165000000002 15015.16500 2020-01-01 2020-01-02 2020-01-01 00:09:10 2020-01-02 03:37:31 2020-01-01 00:09:10.000 2020-01-02 03:37:31.000 550 99451 50000.5 5000050 550 99451 50000.5 5000050 -32620 32518 4780.66 478066 -126 125 -1.42 -142 +551 2 10541 99452 1.65465 298.65465 150.15465 15015.46546 1.65465 298.65466 150.15465 15015.46533 1.65465 298.65465 150.15465 15015.46500 2020-01-01 2020-01-02 2020-01-01 00:09:11 2020-01-02 03:37:32 2020-01-01 00:09:11.000 2020-01-02 03:37:32.000 551 99452 50001.5 5000150 551 99452 50001.5 5000150 -32619 32519 4781.66 478166 -125 126 -0.42 -42 +552 2 10542 99453 1.65765 298.65765 150.15765 15015.76576 1.65765 298.65765 150.15765 15015.76562 1.65765 298.65765 150.15765 15015.76500 2020-01-01 2020-01-02 2020-01-01 00:09:12 2020-01-02 03:37:33 2020-01-01 00:09:12.000 2020-01-02 03:37:33.000 552 99453 50002.5 5000250 552 99453 50002.5 5000250 -32618 32520 4782.66 478266 -124 127 0.58 58 +553 2 10543 99454 1.66066 298.66066 150.16066 15016.06606 1.66066 298.66068 150.16066 15016.06621 1.66066 298.66066 150.16066 15016.06600 2020-01-01 2020-01-02 2020-01-01 00:09:13 2020-01-02 03:37:34 2020-01-01 00:09:13.000 2020-01-02 03:37:34.000 553 99454 50003.5 5000350 553 99454 50003.5 5000350 -32617 32521 4783.66 478366 -128 127 -0.98 -98 +554 2 10544 99455 1.66366 298.66366 150.16366 15016.36636 1.66366 298.66367 150.16366 15016.36651 1.66366 298.66366 150.16366 15016.36600 2020-01-01 2020-01-02 2020-01-01 00:09:14 2020-01-02 03:37:35 2020-01-01 00:09:14.000 2020-01-02 03:37:35.000 554 99455 50004.5 5000450 554 99455 50004.5 5000450 -32616 32522 4784.66 478466 -128 127 -2.54 -254 +555 2 10545 99456 1.66666 298.66666 150.16666 15016.66666 1.66666 298.66666 150.16666 15016.66668 1.66666 298.66666 150.16665999999998 15016.66600 2020-01-01 2020-01-02 2020-01-01 00:09:15 2020-01-02 03:37:36 2020-01-01 00:09:15.000 2020-01-02 03:37:36.000 555 99456 50005.5 5000550 555 99456 50005.5 5000550 -32615 32523 4785.66 478566 -128 124 -4.1 -410 +556 2 10546 99457 1.66966 298.66966 150.16966 15016.96696 1.66966 298.66968 150.16966 15016.9668 1.66966 298.66966 150.16966 15016.96600 2020-01-01 2020-01-02 2020-01-01 00:09:16 2020-01-02 03:37:37 2020-01-01 00:09:16.000 2020-01-02 03:37:37.000 556 99457 50006.5 5000650 556 99457 50006.5 5000650 -32614 32524 4786.66 478666 -127 125 -3.1 -310 +557 2 10547 99458 1.67267 298.67267 150.17267 15017.26726 1.67267 298.67267 150.17267 15017.26709 1.67267 298.67267 150.17267 15017.26700 2020-01-01 2020-01-02 2020-01-01 00:09:17 2020-01-02 03:37:38 2020-01-01 00:09:17.000 2020-01-02 03:37:38.000 557 99458 50007.5 5000750 557 99458 50007.5 5000750 -32613 32525 4787.66 478766 -126 126 -2.1 -210 558 2 10548 99459 1.67567 298.67567 150.17567 15017.56756 1.67567 298.6757 150.17567 15017.56769 1.67567 298.67567 150.17567 15017.56700 2020-01-01 2020-01-02 2020-01-01 00:09:18 2020-01-02 03:37:39 2020-01-01 00:09:18.000 2020-01-02 03:37:39.000 558 99459 50008.5 5000850 558 99459 50008.5 5000850 -32612 32526 4788.66 478866 -125 127 -1.1 -110 -559 2 10549 99460 1.67867 298.67867 150.17867 15017.86786 1.67867 298.67868 150.17868 15017.86802 1.67867 298.67867 150.17866999999995 15017.86700 2020-01-01 2020-01-02 2020-01-01 00:09:19 2020-01-02 03:37:40 2020-01-01 00:09:19.000 2020-01-02 03:37:40.000 559 99460 50009.5 5000950 559 99460 50009.5 5000950 -32611 32527 4789.66 478966 -128 127 -2.66 -266 -56 2 10046 99956 0.16816 300.16816 150.16816 15166.98498 0.16816 300.16818 150.16816 15166.98512 0.16816 300.16816 150.1681599999999 15166.98416 2020-01-01 2020-01-02 2020-01-01 00:00:56 2020-01-02 03:45:56 2020-01-01 00:00:56.000 2020-01-02 03:45:56.000 56 99956 50006 5050606 56 99956 50006 5050606 -32513 32422 4585.009900990099 463086 -127 124 -2.712871287128713 -274 -560 2 10550 99461 1.68168 298.68168 150.18168 15018.16816 1.68168 298.68167 150.18168 15018.16815 1.68168 298.68168 150.18167999999986 15018.16800 2020-01-01 2020-01-02 2020-01-01 00:09:20 2020-01-02 03:37:41 2020-01-01 00:09:20.000 2020-01-02 03:37:41.000 560 99461 50010.5 5001050 560 99461 50010.5 5001050 -32610 32528 4790.66 479066 -128 127 -4.22 -422 -561 2 10551 99462 1.68468 298.68468 150.18468 15018.46846 1.68468 298.6847 150.18468 15018.46826 1.68468 298.68468 150.18468000000013 15018.46800 2020-01-01 2020-01-02 2020-01-01 00:09:21 2020-01-02 03:37:42 2020-01-01 00:09:21.000 2020-01-02 03:37:42.000 561 99462 50011.5 5001150 561 99462 50011.5 5001150 -32609 32529 4791.66 479166 -128 123 -5.78 -578 -562 2 10552 99463 1.68768 298.68768 150.18768 15018.76876 1.68768 298.68768 150.18768 15018.76856 1.68768 298.68768 150.1876799999998 15018.76800 2020-01-01 2020-01-02 2020-01-01 00:09:22 2020-01-02 03:37:43 2020-01-01 00:09:22.000 2020-01-02 03:37:43.000 562 99463 50012.5 5001250 562 99463 50012.5 5001250 -32608 32530 4792.66 479266 -127 124 -4.78 -478 +559 2 10549 99460 1.67867 298.67867 150.17867 15017.86786 1.67867 298.67868 150.17868 15017.86802 1.67867 298.67867 150.17867 15017.86700 2020-01-01 2020-01-02 2020-01-01 00:09:19 2020-01-02 03:37:40 2020-01-01 00:09:19.000 2020-01-02 03:37:40.000 559 99460 50009.5 5000950 559 99460 50009.5 5000950 -32611 32527 4789.66 478966 -128 127 -2.66 -266 +56 2 10046 99956 0.16816 300.16816 150.16816 15166.98498 0.16816 300.16818 150.16816 15166.98512 0.16816 300.16816 150.16816 15166.98416 2020-01-01 2020-01-02 2020-01-01 00:00:56 2020-01-02 03:45:56 2020-01-01 00:00:56.000 2020-01-02 03:45:56.000 56 99956 50006 5050606 56 99956 50006 5050606 -32513 32422 4585.009900990099 463086 -127 124 -2.712871287128713 -274 +560 2 10550 99461 1.68168 298.68168 150.18168 15018.16816 1.68168 298.68167 150.18168 15018.16815 1.68168 298.68168 150.18168 15018.16800 2020-01-01 2020-01-02 2020-01-01 00:09:20 2020-01-02 03:37:41 2020-01-01 00:09:20.000 2020-01-02 03:37:41.000 560 99461 50010.5 5001050 560 99461 50010.5 5001050 -32610 32528 4790.66 479066 -128 127 -4.22 -422 +561 2 10551 99462 1.68468 298.68468 150.18468 15018.46846 1.68468 298.6847 150.18468 15018.46826 1.68468 298.68468 150.18468000000001 15018.46800 2020-01-01 2020-01-02 2020-01-01 00:09:21 2020-01-02 03:37:42 2020-01-01 00:09:21.000 2020-01-02 03:37:42.000 561 99462 50011.5 5001150 561 99462 50011.5 5001150 -32609 32529 4791.66 479166 -128 123 -5.78 -578 +562 2 10552 99463 1.68768 298.68768 150.18768 15018.76876 1.68768 298.68768 150.18768 15018.76856 1.68768 298.68768 150.18768 15018.76800 2020-01-01 2020-01-02 2020-01-01 00:09:22 2020-01-02 03:37:43 2020-01-01 00:09:22.000 2020-01-02 03:37:43.000 562 99463 50012.5 5001250 562 99463 50012.5 5001250 -32608 32530 4792.66 479266 -127 124 -4.78 -478 563 2 10553 99464 1.69069 298.69069 150.19069 15019.06906 1.69069 298.6907 150.19069 15019.06915 1.69069 298.69069 150.19069 15019.06900 2020-01-01 2020-01-02 2020-01-01 00:09:23 2020-01-02 03:37:44 2020-01-01 00:09:23.000 2020-01-02 03:37:44.000 563 99464 50013.5 5001350 563 99464 50013.5 5001350 -32607 32531 4793.66 479366 -126 125 -3.78 -378 -564 2 10554 99465 1.69369 298.69369 150.19369 15019.36936 1.69369 298.6937 150.19369 15019.36948 1.69369 298.69369 150.19369000000003 15019.36900 2020-01-01 2020-01-02 2020-01-01 00:09:24 2020-01-02 03:37:45 2020-01-01 00:09:24.000 2020-01-02 03:37:45.000 564 99465 50014.5 5001450 564 99465 50014.5 5001450 -32606 32532 4794.66 479466 -125 126 -2.78 -278 -565 2 10555 99466 1.69669 298.69669 150.19669 15019.66966 1.69669 298.6967 150.19669 15019.66962 1.69669 298.69669 150.1966900000001 15019.66900 2020-01-01 2020-01-02 2020-01-01 00:09:25 2020-01-02 03:37:46 2020-01-01 00:09:25.000 2020-01-02 03:37:46.000 565 99466 50015.5 5001550 565 99466 50015.5 5001550 -32605 32533 4795.66 479566 -124 127 -1.78 -178 +564 2 10554 99465 1.69369 298.69369 150.19369 15019.36936 1.69369 298.6937 150.19369 15019.36948 1.69369 298.69369 150.19369 15019.36900 2020-01-01 2020-01-02 2020-01-01 00:09:24 2020-01-02 03:37:45 2020-01-01 00:09:24.000 2020-01-02 03:37:45.000 564 99465 50014.5 5001450 564 99465 50014.5 5001450 -32606 32532 4794.66 479466 -125 126 -2.78 -278 +565 2 10555 99466 1.69669 298.69669 150.19669 15019.66966 1.69669 298.6967 150.19669 15019.66962 1.69669 298.69669 150.19669 15019.66900 2020-01-01 2020-01-02 2020-01-01 00:09:25 2020-01-02 03:37:46 2020-01-01 00:09:25.000 2020-01-02 03:37:46.000 565 99466 50015.5 5001550 565 99466 50015.5 5001550 -32605 32533 4795.66 479566 -124 127 -1.78 -178 566 2 10556 99467 1.69969 298.69969 150.19969 15019.96996 1.69969 298.6997 150.1997 15019.97037 1.69969 298.69969 150.19969 15019.96900 2020-01-01 2020-01-02 2020-01-01 00:09:26 2020-01-02 03:37:47 2020-01-01 00:09:26.000 2020-01-02 03:37:47.000 566 99467 50016.5 5001650 566 99467 50016.5 5001650 -32604 32534 4796.66 479666 -128 127 -3.34 -334 -567 2 10557 99468 1.7027 298.7027 150.2027 15020.27027 1.7027 298.7027 150.2027 15020.27003 1.70270 298.70270 150.20269999999988 15020.27000 2020-01-01 2020-01-02 2020-01-01 00:09:27 2020-01-02 03:37:48 2020-01-01 00:09:27.000 2020-01-02 03:37:48.000 567 99468 50017.5 5001750 567 99468 50017.5 5001750 -32603 32535 4797.66 479766 -128 123 -4.9 -490 -568 2 10558 99469 1.7057 298.7057 150.2057 15020.57057 1.7057 298.70572 150.2057 15020.57066 1.70570 298.70570 150.2057000000002 15020.57000 2020-01-01 2020-01-02 2020-01-01 00:09:28 2020-01-02 03:37:49 2020-01-01 00:09:28.000 2020-01-02 03:37:49.000 568 99469 50018.5 5001850 568 99469 50018.5 5001850 -32602 32536 4798.66 479866 -127 124 -3.9 -390 -569 2 10559 99470 1.7087 298.7087 150.2087 15020.87087 1.7087 298.7087 150.2087 15020.87095 1.70870 298.70870 150.20869999999988 15020.87000 2020-01-01 2020-01-02 2020-01-01 00:09:29 2020-01-02 03:37:50 2020-01-01 00:09:29.000 2020-01-02 03:37:50.000 569 99470 50019.5 5001950 569 99470 50019.5 5001950 -32601 32537 4799.66 479966 -126 125 -2.9 -290 -57 2 10047 99957 0.17117 300.17117 150.17117 15167.28828 0.17117 300.17117 150.17117 15167.28841 0.17117 300.17117 150.1711699999998 15167.28817 2020-01-01 2020-01-02 2020-01-01 00:00:57 2020-01-02 03:45:57 2020-01-01 00:00:57.000 2020-01-02 03:45:57.000 57 99957 50007 5050707 57 99957 50007 5050707 -32512 32423 4586.009900990099 463187 -126 125 -1.7128712871287128 -173 -570 2 10560 99471 1.71171 298.71171 150.21171 15021.17117 1.71171 298.7117 150.21171 15021.17109 1.71171 298.71171 150.2117099999998 15021.17100 2020-01-01 2020-01-02 2020-01-01 00:09:30 2020-01-02 03:37:51 2020-01-01 00:09:30.000 2020-01-02 03:37:51.000 570 99471 50020.5 5002050 570 99471 50020.5 5002050 -32600 32538 4800.66 480066 -125 126 -1.9 -190 -571 2 10561 99472 1.71471 298.71471 150.21471 15021.47147 1.71471 298.71472 150.21471 15021.47184 1.71471 298.71471 150.21471000000014 15021.47100 2020-01-01 2020-01-02 2020-01-01 00:09:31 2020-01-02 03:37:52 2020-01-01 00:09:31.000 2020-01-02 03:37:52.000 571 99472 50021.5 5002150 571 99472 50021.5 5002150 -32599 32539 4801.66 480166 -124 127 -0.9 -90 -572 2 10562 99473 1.71771 298.71771 150.21771 15021.77177 1.71771 298.7177 150.21771 15021.7715 1.71771 298.71771 150.21771000000012 15021.77100 2020-01-01 2020-01-02 2020-01-01 00:09:32 2020-01-02 03:37:53 2020-01-01 00:09:32.000 2020-01-02 03:37:53.000 572 99473 50022.5 5002250 572 99473 50022.5 5002250 -32598 32540 4802.66 480266 -128 127 -2.46 -246 -573 2 10563 99474 1.72072 298.72072 150.22072 15022.07207 1.72072 298.72073 150.22072 15022.07212 1.72072 298.72072 150.2207199999999 15022.07200 2020-01-01 2020-01-02 2020-01-01 00:09:33 2020-01-02 03:37:54 2020-01-01 00:09:33.000 2020-01-02 03:37:54.000 573 99474 50023.5 5002350 573 99474 50023.5 5002350 -32597 32541 4803.66 480366 -128 123 -4.02 -402 +567 2 10557 99468 1.7027 298.7027 150.2027 15020.27027 1.7027 298.7027 150.2027 15020.27003 1.70270 298.70270 150.2027 15020.27000 2020-01-01 2020-01-02 2020-01-01 00:09:27 2020-01-02 03:37:48 2020-01-01 00:09:27.000 2020-01-02 03:37:48.000 567 99468 50017.5 5001750 567 99468 50017.5 5001750 -32603 32535 4797.66 479766 -128 123 -4.9 -490 +568 2 10558 99469 1.7057 298.7057 150.2057 15020.57057 1.7057 298.70572 150.2057 15020.57066 1.70570 298.70570 150.2057 15020.57000 2020-01-01 2020-01-02 2020-01-01 00:09:28 2020-01-02 03:37:49 2020-01-01 00:09:28.000 2020-01-02 03:37:49.000 568 99469 50018.5 5001850 568 99469 50018.5 5001850 -32602 32536 4798.66 479866 -127 124 -3.9 -390 +569 2 10559 99470 1.7087 298.7087 150.2087 15020.87087 1.7087 298.7087 150.2087 15020.87095 1.70870 298.70870 150.20870000000002 15020.87000 2020-01-01 2020-01-02 2020-01-01 00:09:29 2020-01-02 03:37:50 2020-01-01 00:09:29.000 2020-01-02 03:37:50.000 569 99470 50019.5 5001950 569 99470 50019.5 5001950 -32601 32537 4799.66 479966 -126 125 -2.9 -290 +57 2 10047 99957 0.17117 300.17117 150.17117 15167.28828 0.17117 300.17117 150.17117 15167.28841 0.17117 300.17117 150.17117 15167.28817 2020-01-01 2020-01-02 2020-01-01 00:00:57 2020-01-02 03:45:57 2020-01-01 00:00:57.000 2020-01-02 03:45:57.000 57 99957 50007 5050707 57 99957 50007 5050707 -32512 32423 4586.009900990099 463187 -126 125 -1.7128712871287128 -173 +570 2 10560 99471 1.71171 298.71171 150.21171 15021.17117 1.71171 298.7117 150.21171 15021.17109 1.71171 298.71171 150.21171 15021.17100 2020-01-01 2020-01-02 2020-01-01 00:09:30 2020-01-02 03:37:51 2020-01-01 00:09:30.000 2020-01-02 03:37:51.000 570 99471 50020.5 5002050 570 99471 50020.5 5002050 -32600 32538 4800.66 480066 -125 126 -1.9 -190 +571 2 10561 99472 1.71471 298.71471 150.21471 15021.47147 1.71471 298.71472 150.21471 15021.47184 1.71471 298.71471 150.21471 15021.47100 2020-01-01 2020-01-02 2020-01-01 00:09:31 2020-01-02 03:37:52 2020-01-01 00:09:31.000 2020-01-02 03:37:52.000 571 99472 50021.5 5002150 571 99472 50021.5 5002150 -32599 32539 4801.66 480166 -124 127 -0.9 -90 +572 2 10562 99473 1.71771 298.71771 150.21771 15021.77177 1.71771 298.7177 150.21771 15021.7715 1.71771 298.71771 150.21771 15021.77100 2020-01-01 2020-01-02 2020-01-01 00:09:32 2020-01-02 03:37:53 2020-01-01 00:09:32.000 2020-01-02 03:37:53.000 572 99473 50022.5 5002250 572 99473 50022.5 5002250 -32598 32540 4802.66 480266 -128 127 -2.46 -246 +573 2 10563 99474 1.72072 298.72072 150.22072 15022.07207 1.72072 298.72073 150.22072 15022.07212 1.72072 298.72072 150.22072 15022.07200 2020-01-01 2020-01-02 2020-01-01 00:09:33 2020-01-02 03:37:54 2020-01-01 00:09:33.000 2020-01-02 03:37:54.000 573 99474 50023.5 5002350 573 99474 50023.5 5002350 -32597 32541 4803.66 480366 -128 123 -4.02 -402 574 2 10564 99475 1.72372 298.72372 150.22372 15022.37237 1.72372 298.72372 150.22372 15022.37243 1.72372 298.72372 150.22372 15022.37200 2020-01-01 2020-01-02 2020-01-01 00:09:34 2020-01-02 03:37:55 2020-01-01 00:09:34.000 2020-01-02 03:37:55.000 574 99475 50024.5 5002450 574 99475 50024.5 5002450 -32596 32542 4804.66 480466 -127 124 -3.02 -302 -575 2 10565 99476 1.72672 298.72672 150.22672 15022.67267 1.72672 298.7267 150.22672 15022.67272 1.72672 298.72672 150.22672000000006 15022.67200 2020-01-01 2020-01-02 2020-01-01 00:09:35 2020-01-02 03:37:56 2020-01-01 00:09:35.000 2020-01-02 03:37:56.000 575 99476 50025.5 5002550 575 99476 50025.5 5002550 -32595 32543 4805.66 480566 -126 125 -2.02 -202 -576 2 10566 99477 1.72972 298.72972 150.22972 15022.97297 1.72972 298.72974 150.22973 15022.97332 1.72972 298.72972 150.22971999999993 15022.97200 2020-01-01 2020-01-02 2020-01-01 00:09:36 2020-01-02 03:37:57 2020-01-01 00:09:36.000 2020-01-02 03:37:57.000 576 99477 50026.5 5002650 576 99477 50026.5 5002650 -32594 32544 4806.66 480666 -125 126 -1.02 -102 -577 2 10567 99478 1.73273 298.73273 150.23273 15023.27327 1.73273 298.73273 150.23272 15023.27297 1.73273 298.73273 150.2327299999999 15023.27300 2020-01-01 2020-01-02 2020-01-01 00:09:37 2020-01-02 03:37:58 2020-01-01 00:09:37.000 2020-01-02 03:37:58.000 577 99478 50027.5 5002750 577 99478 50027.5 5002750 -32593 32545 4807.66 480766 -124 127 -0.02 -2 -578 2 10568 99479 1.73573 298.73573 150.23573 15023.57357 1.73573 298.73575 150.23573 15023.57359 1.73573 298.73573 150.23573000000016 15023.57300 2020-01-01 2020-01-02 2020-01-01 00:09:38 2020-01-02 03:37:59 2020-01-01 00:09:38.000 2020-01-02 03:37:59.000 578 99479 50028.5 5002850 578 99479 50028.5 5002850 -32592 32546 4808.66 480866 -128 127 -1.58 -158 -579 2 10569 99480 1.73873 298.73873 150.23873 15023.87387 1.73873 298.73874 150.23873 15023.8739 1.73873 298.73873 150.23872999999983 15023.87300 2020-01-01 2020-01-02 2020-01-01 00:09:39 2020-01-02 03:38:00 2020-01-01 00:09:39.000 2020-01-02 03:38:00.000 579 99480 50029.5 5002950 579 99480 50029.5 5002950 -32591 32547 4809.66 480966 -128 123 -3.14 -314 -58 2 10048 99958 0.17417 300.17417 150.17417 15167.59159 0.17417 300.17416 150.17417 15167.59159 0.17417 300.17417 150.17417000000012 15167.59117 2020-01-01 2020-01-02 2020-01-01 00:00:58 2020-01-02 03:45:58 2020-01-01 00:00:58.000 2020-01-02 03:45:58.000 58 99958 50008 5050808 58 99958 50008 5050808 -32511 32424 4587.009900990099 463288 -125 126 -0.7128712871287128 -72 +575 2 10565 99476 1.72672 298.72672 150.22672 15022.67267 1.72672 298.7267 150.22672 15022.67272 1.72672 298.72672 150.22672 15022.67200 2020-01-01 2020-01-02 2020-01-01 00:09:35 2020-01-02 03:37:56 2020-01-01 00:09:35.000 2020-01-02 03:37:56.000 575 99476 50025.5 5002550 575 99476 50025.5 5002550 -32595 32543 4805.66 480566 -126 125 -2.02 -202 +576 2 10566 99477 1.72972 298.72972 150.22972 15022.97297 1.72972 298.72974 150.22973 15022.97332 1.72972 298.72972 150.22972 15022.97200 2020-01-01 2020-01-02 2020-01-01 00:09:36 2020-01-02 03:37:57 2020-01-01 00:09:36.000 2020-01-02 03:37:57.000 576 99477 50026.5 5002650 576 99477 50026.5 5002650 -32594 32544 4806.66 480666 -125 126 -1.02 -102 +577 2 10567 99478 1.73273 298.73273 150.23273 15023.27327 1.73273 298.73273 150.23272 15023.27297 1.73273 298.73273 150.23273 15023.27300 2020-01-01 2020-01-02 2020-01-01 00:09:37 2020-01-02 03:37:58 2020-01-01 00:09:37.000 2020-01-02 03:37:58.000 577 99478 50027.5 5002750 577 99478 50027.5 5002750 -32593 32545 4807.66 480766 -124 127 -0.02 -2 +578 2 10568 99479 1.73573 298.73573 150.23573 15023.57357 1.73573 298.73575 150.23573 15023.57359 1.73573 298.73573 150.23573 15023.57300 2020-01-01 2020-01-02 2020-01-01 00:09:38 2020-01-02 03:37:59 2020-01-01 00:09:38.000 2020-01-02 03:37:59.000 578 99479 50028.5 5002850 578 99479 50028.5 5002850 -32592 32546 4808.66 480866 -128 127 -1.58 -158 +579 2 10569 99480 1.73873 298.73873 150.23873 15023.87387 1.73873 298.73874 150.23873 15023.8739 1.73873 298.73873 150.23873 15023.87300 2020-01-01 2020-01-02 2020-01-01 00:09:39 2020-01-02 03:38:00 2020-01-01 00:09:39.000 2020-01-02 03:38:00.000 579 99480 50029.5 5002950 579 99480 50029.5 5002950 -32591 32547 4809.66 480966 -128 123 -3.14 -314 +58 2 10048 99958 0.17417 300.17417 150.17417 15167.59159 0.17417 300.17416 150.17417 15167.59159 0.17417 300.17417 150.17417 15167.59117 2020-01-01 2020-01-02 2020-01-01 00:00:58 2020-01-02 03:45:58 2020-01-01 00:00:58.000 2020-01-02 03:45:58.000 58 99958 50008 5050808 58 99958 50008 5050808 -32511 32424 4587.009900990099 463288 -125 126 -0.7128712871287128 -72 580 2 10570 99481 1.74174 298.74174 150.24174 15024.17417 1.74174 298.74173 150.24174 15024.17419 1.74174 298.74174 150.24174000000002 15024.17400 2020-01-01 2020-01-02 2020-01-01 00:09:40 2020-01-02 03:38:01 2020-01-01 00:09:40.000 2020-01-02 03:38:01.000 580 99481 50030.5 5003050 580 99481 50030.5 5003050 -32590 32548 4810.66 481066 -127 124 -2.14 -214 -581 2 10571 99482 1.74474 298.74474 150.24474 15024.47447 1.74474 298.74475 150.24474 15024.47478 1.74474 298.74474 150.24474000000006 15024.47400 2020-01-01 2020-01-02 2020-01-01 00:09:41 2020-01-02 03:38:02 2020-01-01 00:09:41.000 2020-01-02 03:38:02.000 581 99482 50031.5 5003150 581 99482 50031.5 5003150 -32589 32549 4811.66 481166 -126 125 -1.14 -114 -582 2 10572 99483 1.74774 298.74774 150.24774 15024.77477 1.74774 298.74774 150.24774 15024.77447 1.74774 298.74774 150.24774000000005 15024.77400 2020-01-01 2020-01-02 2020-01-01 00:09:42 2020-01-02 03:38:03 2020-01-01 00:09:42.000 2020-01-02 03:38:03.000 582 99483 50032.5 5003250 582 99483 50032.5 5003250 -32588 32550 4812.66 481266 -125 126 -0.14 -14 -583 2 10573 99484 1.75075 298.75075 150.25075 15025.07507 1.75075 298.75076 150.25075 15025.07507 1.75075 298.75075 150.25074999999993 15025.07500 2020-01-01 2020-01-02 2020-01-01 00:09:43 2020-01-02 03:38:04 2020-01-01 00:09:43.000 2020-01-02 03:38:04.000 583 99484 50033.5 5003350 583 99484 50033.5 5003350 -32587 32551 4813.66 481366 -124 127 0.86 86 -584 2 10574 99485 1.75375 298.75375 150.25375 15025.37537 1.75375 298.75375 150.25375 15025.37536 1.75375 298.75375 150.2537499999999 15025.37500 2020-01-01 2020-01-02 2020-01-01 00:09:44 2020-01-02 03:38:05 2020-01-01 00:09:44.000 2020-01-02 03:38:05.000 584 99485 50034.5 5003450 584 99485 50034.5 5003450 -32586 32552 4814.66 481466 -128 127 -0.7 -70 -585 2 10575 99486 1.75675 298.75675 150.25675 15025.67567 1.75675 298.75674 150.25675 15025.67566 1.75675 298.75675 150.2567500000001 15025.67500 2020-01-01 2020-01-02 2020-01-01 00:09:45 2020-01-02 03:38:06 2020-01-01 00:09:45.000 2020-01-02 03:38:06.000 585 99486 50035.5 5003550 585 99486 50035.5 5003550 -32585 32553 4815.66 481566 -128 127 -2.26 -226 -586 2 10576 99487 1.75975 298.75975 150.25975 15025.97597 1.75975 298.75977 150.25976 15025.97625 1.75975 298.75975 150.25974999999988 15025.97500 2020-01-01 2020-01-02 2020-01-01 00:09:46 2020-01-02 03:38:07 2020-01-01 00:09:46.000 2020-01-02 03:38:07.000 586 99487 50036.5 5003650 586 99487 50036.5 5003650 -32584 32554 4816.66 481666 -128 123 -3.82 -382 -587 2 10577 99488 1.76276 298.76276 150.26276 15026.27627 1.76276 298.76276 150.26275 15026.27594 1.76276 298.76276 150.26275999999982 15026.27600 2020-01-01 2020-01-02 2020-01-01 00:09:47 2020-01-02 03:38:08 2020-01-01 00:09:47.000 2020-01-02 03:38:08.000 587 99488 50037.5 5003750 587 99488 50037.5 5003750 -32583 32555 4817.66 481766 -127 124 -2.82 -282 -588 2 10578 99489 1.76576 298.76576 150.26576 15026.57657 1.76576 298.76578 150.26576 15026.57654 1.76576 298.76576 150.26576000000014 15026.57600 2020-01-01 2020-01-02 2020-01-01 00:09:48 2020-01-02 03:38:09 2020-01-01 00:09:48.000 2020-01-02 03:38:09.000 588 99489 50038.5 5003850 588 99489 50038.5 5003850 -32582 32556 4818.66 481866 -126 125 -1.82 -182 -589 2 10579 99490 1.76876 298.76876 150.26876 15026.87687 1.76876 298.76877 150.26876 15026.87683 1.76876 298.76876 150.26876000000013 15026.87600 2020-01-01 2020-01-02 2020-01-01 00:09:49 2020-01-02 03:38:10 2020-01-01 00:09:49.000 2020-01-02 03:38:10.000 589 99490 50039.5 5003950 589 99490 50039.5 5003950 -32581 32557 4819.66 481966 -125 126 -0.82 -82 -59 2 10049 99959 0.17717 300.17717 150.17717 15167.89489 0.17717 300.1772 150.17717 15167.8947 0.17717 300.17717 150.17717000000013 15167.89417 2020-01-01 2020-01-02 2020-01-01 00:00:59 2020-01-02 03:45:59 2020-01-01 00:00:59.000 2020-01-02 03:45:59.000 59 99959 50009 5050909 59 99959 50009 5050909 -32510 32425 4588.009900990099 463389 -124 127 0.2871287128712871 29 -590 2 10580 99491 1.77177 298.77177 150.27177 15027.17717 1.77177 298.77176 150.27177 15027.17713 1.77177 298.77177 150.27176999999992 15027.17700 2020-01-01 2020-01-02 2020-01-01 00:09:50 2020-01-02 03:38:11 2020-01-01 00:09:50.000 2020-01-02 03:38:11.000 590 99491 50040.5 5004050 590 99491 50040.5 5004050 -32580 32558 4820.66 482066 -124 127 0.18 18 -591 2 10581 99492 1.77477 298.77477 150.27477 15027.47747 1.77477 298.77478 150.27477 15027.47775 1.77477 298.77477 150.27477 15027.47700 2020-01-01 2020-01-02 2020-01-01 00:09:51 2020-01-02 03:38:12 2020-01-01 00:09:51.000 2020-01-02 03:38:12.000 591 99492 50041.5 5004150 591 99492 50041.5 5004150 -32579 32559 4821.66 482166 -128 127 -1.38 -138 -592 2 10582 99493 1.77777 298.77777 150.27777 15027.77777 1.77777 298.77777 150.27777 15027.77742 1.77777 298.77777 150.27777000000006 15027.77700 2020-01-01 2020-01-02 2020-01-01 00:09:52 2020-01-02 03:38:13 2020-01-01 00:09:52.000 2020-01-02 03:38:13.000 592 99493 50042.5 5004250 592 99493 50042.5 5004250 -32578 32560 4822.66 482266 -128 123 -2.94 -294 -593 2 10583 99494 1.78078 298.78078 150.28078 15028.07807 1.78078 298.7808 150.28078 15028.078 1.78078 298.78078 150.28077999999985 15028.07800 2020-01-01 2020-01-02 2020-01-01 00:09:53 2020-01-02 03:38:14 2020-01-01 00:09:53.000 2020-01-02 03:38:14.000 593 99494 50043.5 5004350 593 99494 50043.5 5004350 -32577 32561 4823.66 482366 -127 124 -1.94 -194 -594 2 10584 99495 1.78378 298.78378 150.28378 15028.37837 1.78378 298.78378 150.28378 15028.3783 1.78378 298.78378 150.2837799999999 15028.37800 2020-01-01 2020-01-02 2020-01-01 00:09:54 2020-01-02 03:38:15 2020-01-01 00:09:54.000 2020-01-02 03:38:15.000 594 99495 50044.5 5004450 594 99495 50044.5 5004450 -32576 32562 4824.66 482466 -126 125 -0.94 -94 -595 2 10585 99496 1.78678 298.78678 150.28678 15028.67867 1.78678 298.78677 150.28678 15028.6786 1.78678 298.78678 150.28678000000016 15028.67800 2020-01-01 2020-01-02 2020-01-01 00:09:55 2020-01-02 03:38:16 2020-01-01 00:09:55.000 2020-01-02 03:38:16.000 595 99496 50045.5 5004550 595 99496 50045.5 5004550 -32575 32563 4825.66 482566 -125 126 0.06 6 -596 2 10586 99497 1.78978 298.78978 150.28978 15028.97897 1.78978 298.7898 150.28979 15028.97922 1.78978 298.78978 150.28977999999984 15028.97800 2020-01-01 2020-01-02 2020-01-01 00:09:56 2020-01-02 03:38:17 2020-01-01 00:09:56.000 2020-01-02 03:38:17.000 596 99497 50046.5 5004650 596 99497 50046.5 5004650 -32574 32564 4826.66 482666 -124 127 1.06 106 -597 2 10587 99498 1.79279 298.79279 150.29279 15029.27927 1.79279 298.7928 150.29278 15029.27888 1.79279 298.79279 150.29279000000005 15029.27900 2020-01-01 2020-01-02 2020-01-01 00:09:57 2020-01-02 03:38:18 2020-01-01 00:09:57.000 2020-01-02 03:38:18.000 597 99498 50047.5 5004750 597 99498 50047.5 5004750 -32573 32565 4827.66 482766 -128 127 -0.5 -50 -598 2 10588 99499 1.79579 298.79579 150.29579 15029.57957 1.79579 298.7958 150.29579 15029.57964 1.79579 298.79579 150.2957900000001 15029.57900 2020-01-01 2020-01-02 2020-01-01 00:09:58 2020-01-02 03:38:19 2020-01-01 00:09:58.000 2020-01-02 03:38:19.000 598 99499 50048.5 5004850 598 99499 50048.5 5004850 -32572 32566 4828.66 482866 -128 123 -2.06 -206 -599 2 10589 99500 1.79879 298.79879 150.29879 15029.87987 1.79879 298.7988 150.29879 15029.87977 1.79879 298.79879 150.2987900000001 15029.87900 2020-01-01 2020-01-02 2020-01-01 00:09:59 2020-01-02 03:38:20 2020-01-01 00:09:59.000 2020-01-02 03:38:20.000 599 99500 50049.5 5004950 599 99500 50049.5 5004950 -32571 32567 4829.66 482966 -127 124 -1.06 -106 -6 2 1005 9996 0.01801 300.01801 150.01801 15151.81981 0.01801 300.018 150.01801 15151.81978 0.01801 300.01801 150.01800999999986 15151.81901 2020-01-01 2020-01-02 2020-01-01 00:00:06 2020-01-02 03:45:06 2020-01-01 00:00:06.000 2020-01-02 03:45:06.000 6 99906 49956 5045556 6 99906 49956 5045556 -32563 32372 4535.009900990099 458036 -127 124 -2.01980198019802 -204 -60 2 10050 99960 0.18018 300.18018 150.18018 15168.19819 0.18018 300.18018 150.18017 15168.198 0.18018 300.18018 150.1801799999999 15168.19818 2020-01-01 2020-01-02 2020-01-01 00:01:00 2020-01-02 03:46:00 2020-01-01 00:01:00.000 2020-01-02 03:46:00.000 60 99960 50010 5051010 60 99960 50010 5051010 -32509 32426 4589.009900990099 463490 -128 127 -1.2475247524752475 -126 -600 2 10590 99501 1.8018 298.8018 150.3018 15030.18018 1.8018 298.8018 150.3018 15030.1801 1.80180 298.80180 150.3017999999999 15030.18000 2020-01-01 2020-01-02 2020-01-01 00:10:00 2020-01-02 03:38:21 2020-01-01 00:10:00.000 2020-01-02 03:38:21.000 600 99501 50050.5 5005050 600 99501 50050.5 5005050 -32570 32568 4830.66 483066 -126 125 -0.06 -6 -601 2 10591 99502 1.8048 298.8048 150.3048 15030.48048 1.8048 298.8048 150.3048 15030.4807 1.80480 298.80480 150.30479999999991 15030.48000 2020-01-01 2020-01-02 2020-01-01 00:10:01 2020-01-02 03:38:22 2020-01-01 00:10:01.000 2020-01-02 03:38:22.000 601 99502 50051.5 5005150 601 99502 50051.5 5005150 -32569 32569 4831.66 483166 -125 126 0.94 94 -602 2 10592 99503 1.8078 298.8078 150.3078 15030.78078 1.8078 298.8078 150.3078 15030.78035 1.80780 298.80780 150.3078 15030.78000 2020-01-01 2020-01-02 2020-01-01 00:10:02 2020-01-02 03:38:23 2020-01-01 00:10:02.000 2020-01-02 03:38:23.000 602 99503 50052.5 5005250 602 99503 50052.5 5005250 -32568 32570 4832.66 483266 -124 127 1.94 194 -603 2 10593 99504 1.81081 298.81081 150.31081 15031.08108 1.81081 298.81082 150.31081 15031.0811 1.81081 298.81081 150.31081000000017 15031.08100 2020-01-01 2020-01-02 2020-01-01 00:10:03 2020-01-02 03:38:24 2020-01-01 00:10:03.000 2020-01-02 03:38:24.000 603 99504 50053.5 5005350 603 99504 50053.5 5005350 -32567 32571 4833.66 483366 -128 127 0.38 38 -604 2 10594 99505 1.81381 298.81381 150.31381 15031.38138 1.81381 298.8138 150.31381 15031.38124 1.81381 298.81381 150.31380999999985 15031.38100 2020-01-01 2020-01-02 2020-01-01 00:10:04 2020-01-02 03:38:25 2020-01-01 00:10:04.000 2020-01-02 03:38:25.000 604 99505 50054.5 5005450 604 99505 50054.5 5005450 -32566 32572 4834.66 483466 -128 123 -1.18 -118 -605 2 10595 99506 1.81681 298.81681 150.31681 15031.68168 1.81681 298.8168 150.31681 15031.68157 1.81681 298.81681 150.3168100000001 15031.68100 2020-01-01 2020-01-02 2020-01-01 00:10:05 2020-01-02 03:38:26 2020-01-01 00:10:05.000 2020-01-02 03:38:26.000 605 99506 50055.5 5005550 605 99506 50055.5 5005550 -32565 32573 4835.66 483566 -127 124 -0.18 -18 -606 2 10596 99507 1.81981 298.81981 150.31981 15031.98198 1.81981 298.81982 150.31982 15031.98217 1.81981 298.81981 150.3198100000002 15031.98100 2020-01-01 2020-01-02 2020-01-01 00:10:06 2020-01-02 03:38:27 2020-01-01 00:10:06.000 2020-01-02 03:38:27.000 606 99507 50056.5 5005650 606 99507 50056.5 5005650 -32564 32574 4836.66 483666 -126 125 0.82 82 -607 2 10597 99508 1.82282 298.82282 150.32282 15032.28228 1.82282 298.8228 150.32282 15032.28246 1.82282 298.82282 150.32281999999995 15032.28200 2020-01-01 2020-01-02 2020-01-01 00:10:07 2020-01-02 03:38:28 2020-01-01 00:10:07.000 2020-01-02 03:38:28.000 607 99508 50057.5 5005750 607 99508 50057.5 5005750 -32563 32575 4837.66 483766 -125 126 1.82 182 -608 2 10598 99509 1.82582 298.82582 150.32582 15032.58258 1.82582 298.82584 150.32582 15032.58258 1.82582 298.82582 150.32582000000002 15032.58200 2020-01-01 2020-01-02 2020-01-01 00:10:08 2020-01-02 03:38:29 2020-01-01 00:10:08.000 2020-01-02 03:38:29.000 608 99509 50058.5 5005850 608 99509 50058.5 5005850 -32562 32576 4838.66 483866 -124 127 2.82 282 -609 2 10599 99510 1.82882 298.82882 150.32882 15032.88288 1.82882 298.82883 150.32882 15032.88274 1.82882 298.82882 150.3288200000001 15032.88200 2020-01-01 2020-01-02 2020-01-01 00:10:09 2020-01-02 03:38:30 2020-01-01 00:10:09.000 2020-01-02 03:38:30.000 609 99510 50059.5 5005950 609 99510 50059.5 5005950 -32561 32577 4839.66 483966 -128 127 1.26 126 +581 2 10571 99482 1.74474 298.74474 150.24474 15024.47447 1.74474 298.74475 150.24474 15024.47478 1.74474 298.74474 150.24474 15024.47400 2020-01-01 2020-01-02 2020-01-01 00:09:41 2020-01-02 03:38:02 2020-01-01 00:09:41.000 2020-01-02 03:38:02.000 581 99482 50031.5 5003150 581 99482 50031.5 5003150 -32589 32549 4811.66 481166 -126 125 -1.14 -114 +582 2 10572 99483 1.74774 298.74774 150.24774 15024.77477 1.74774 298.74774 150.24774 15024.77447 1.74774 298.74774 150.24774 15024.77400 2020-01-01 2020-01-02 2020-01-01 00:09:42 2020-01-02 03:38:03 2020-01-01 00:09:42.000 2020-01-02 03:38:03.000 582 99483 50032.5 5003250 582 99483 50032.5 5003250 -32588 32550 4812.66 481266 -125 126 -0.14 -14 +583 2 10573 99484 1.75075 298.75075 150.25075 15025.07507 1.75075 298.75076 150.25075 15025.07507 1.75075 298.75075 150.25075 15025.07500 2020-01-01 2020-01-02 2020-01-01 00:09:43 2020-01-02 03:38:04 2020-01-01 00:09:43.000 2020-01-02 03:38:04.000 583 99484 50033.5 5003350 583 99484 50033.5 5003350 -32587 32551 4813.66 481366 -124 127 0.86 86 +584 2 10574 99485 1.75375 298.75375 150.25375 15025.37537 1.75375 298.75375 150.25375 15025.37536 1.75375 298.75375 150.25375 15025.37500 2020-01-01 2020-01-02 2020-01-01 00:09:44 2020-01-02 03:38:05 2020-01-01 00:09:44.000 2020-01-02 03:38:05.000 584 99485 50034.5 5003450 584 99485 50034.5 5003450 -32586 32552 4814.66 481466 -128 127 -0.7 -70 +585 2 10575 99486 1.75675 298.75675 150.25675 15025.67567 1.75675 298.75674 150.25675 15025.67566 1.75675 298.75675 150.25674999999998 15025.67500 2020-01-01 2020-01-02 2020-01-01 00:09:45 2020-01-02 03:38:06 2020-01-01 00:09:45.000 2020-01-02 03:38:06.000 585 99486 50035.5 5003550 585 99486 50035.5 5003550 -32585 32553 4815.66 481566 -128 127 -2.26 -226 +586 2 10576 99487 1.75975 298.75975 150.25975 15025.97597 1.75975 298.75977 150.25976 15025.97625 1.75975 298.75975 150.25975 15025.97500 2020-01-01 2020-01-02 2020-01-01 00:09:46 2020-01-02 03:38:07 2020-01-01 00:09:46.000 2020-01-02 03:38:07.000 586 99487 50036.5 5003650 586 99487 50036.5 5003650 -32584 32554 4816.66 481666 -128 123 -3.82 -382 +587 2 10577 99488 1.76276 298.76276 150.26276 15026.27627 1.76276 298.76276 150.26275 15026.27594 1.76276 298.76276 150.26276 15026.27600 2020-01-01 2020-01-02 2020-01-01 00:09:47 2020-01-02 03:38:08 2020-01-01 00:09:47.000 2020-01-02 03:38:08.000 587 99488 50037.5 5003750 587 99488 50037.5 5003750 -32583 32555 4817.66 481766 -127 124 -2.82 -282 +588 2 10578 99489 1.76576 298.76576 150.26576 15026.57657 1.76576 298.76578 150.26576 15026.57654 1.76576 298.76576 150.26576 15026.57600 2020-01-01 2020-01-02 2020-01-01 00:09:48 2020-01-02 03:38:09 2020-01-01 00:09:48.000 2020-01-02 03:38:09.000 588 99489 50038.5 5003850 588 99489 50038.5 5003850 -32582 32556 4818.66 481866 -126 125 -1.82 -182 +589 2 10579 99490 1.76876 298.76876 150.26876 15026.87687 1.76876 298.76877 150.26876 15026.87683 1.76876 298.76876 150.26876000000001 15026.87600 2020-01-01 2020-01-02 2020-01-01 00:09:49 2020-01-02 03:38:10 2020-01-01 00:09:49.000 2020-01-02 03:38:10.000 589 99490 50039.5 5003950 589 99490 50039.5 5003950 -32581 32557 4819.66 481966 -125 126 -0.82 -82 +59 2 10049 99959 0.17717 300.17717 150.17717 15167.89489 0.17717 300.1772 150.17717 15167.8947 0.17717 300.17717 150.17717 15167.89417 2020-01-01 2020-01-02 2020-01-01 00:00:59 2020-01-02 03:45:59 2020-01-01 00:00:59.000 2020-01-02 03:45:59.000 59 99959 50009 5050909 59 99959 50009 5050909 -32510 32425 4588.009900990099 463389 -124 127 0.2871287128712871 29 +590 2 10580 99491 1.77177 298.77177 150.27177 15027.17717 1.77177 298.77176 150.27177 15027.17713 1.77177 298.77177 150.27177 15027.17700 2020-01-01 2020-01-02 2020-01-01 00:09:50 2020-01-02 03:38:11 2020-01-01 00:09:50.000 2020-01-02 03:38:11.000 590 99491 50040.5 5004050 590 99491 50040.5 5004050 -32580 32558 4820.66 482066 -124 127 0.18 18 +591 2 10581 99492 1.77477 298.77477 150.27477 15027.47747 1.77477 298.77478 150.27477 15027.47775 1.77477 298.77477 150.27477000000002 15027.47700 2020-01-01 2020-01-02 2020-01-01 00:09:51 2020-01-02 03:38:12 2020-01-01 00:09:51.000 2020-01-02 03:38:12.000 591 99492 50041.5 5004150 591 99492 50041.5 5004150 -32579 32559 4821.66 482166 -128 127 -1.38 -138 +592 2 10582 99493 1.77777 298.77777 150.27777 15027.77777 1.77777 298.77777 150.27777 15027.77742 1.77777 298.77777 150.27777 15027.77700 2020-01-01 2020-01-02 2020-01-01 00:09:52 2020-01-02 03:38:13 2020-01-01 00:09:52.000 2020-01-02 03:38:13.000 592 99493 50042.5 5004250 592 99493 50042.5 5004250 -32578 32560 4822.66 482266 -128 123 -2.94 -294 +593 2 10583 99494 1.78078 298.78078 150.28078 15028.07807 1.78078 298.7808 150.28078 15028.078 1.78078 298.78078 150.28078 15028.07800 2020-01-01 2020-01-02 2020-01-01 00:09:53 2020-01-02 03:38:14 2020-01-01 00:09:53.000 2020-01-02 03:38:14.000 593 99494 50043.5 5004350 593 99494 50043.5 5004350 -32577 32561 4823.66 482366 -127 124 -1.94 -194 +594 2 10584 99495 1.78378 298.78378 150.28378 15028.37837 1.78378 298.78378 150.28378 15028.3783 1.78378 298.78378 150.28378 15028.37800 2020-01-01 2020-01-02 2020-01-01 00:09:54 2020-01-02 03:38:15 2020-01-01 00:09:54.000 2020-01-02 03:38:15.000 594 99495 50044.5 5004450 594 99495 50044.5 5004450 -32576 32562 4824.66 482466 -126 125 -0.94 -94 +595 2 10585 99496 1.78678 298.78678 150.28678 15028.67867 1.78678 298.78677 150.28678 15028.6786 1.78678 298.78678 150.28678 15028.67800 2020-01-01 2020-01-02 2020-01-01 00:09:55 2020-01-02 03:38:16 2020-01-01 00:09:55.000 2020-01-02 03:38:16.000 595 99496 50045.5 5004550 595 99496 50045.5 5004550 -32575 32563 4825.66 482566 -125 126 0.06 6 +596 2 10586 99497 1.78978 298.78978 150.28978 15028.97897 1.78978 298.7898 150.28979 15028.97922 1.78978 298.78978 150.28977999999998 15028.97800 2020-01-01 2020-01-02 2020-01-01 00:09:56 2020-01-02 03:38:17 2020-01-01 00:09:56.000 2020-01-02 03:38:17.000 596 99497 50046.5 5004650 596 99497 50046.5 5004650 -32574 32564 4826.66 482666 -124 127 1.06 106 +597 2 10587 99498 1.79279 298.79279 150.29279 15029.27927 1.79279 298.7928 150.29278 15029.27888 1.79279 298.79279 150.29279 15029.27900 2020-01-01 2020-01-02 2020-01-01 00:09:57 2020-01-02 03:38:18 2020-01-01 00:09:57.000 2020-01-02 03:38:18.000 597 99498 50047.5 5004750 597 99498 50047.5 5004750 -32573 32565 4827.66 482766 -128 127 -0.5 -50 +598 2 10588 99499 1.79579 298.79579 150.29579 15029.57957 1.79579 298.7958 150.29579 15029.57964 1.79579 298.79579 150.29579 15029.57900 2020-01-01 2020-01-02 2020-01-01 00:09:58 2020-01-02 03:38:19 2020-01-01 00:09:58.000 2020-01-02 03:38:19.000 598 99499 50048.5 5004850 598 99499 50048.5 5004850 -32572 32566 4828.66 482866 -128 123 -2.06 -206 +599 2 10589 99500 1.79879 298.79879 150.29879 15029.87987 1.79879 298.7988 150.29879 15029.87977 1.79879 298.79879 150.29879 15029.87900 2020-01-01 2020-01-02 2020-01-01 00:09:59 2020-01-02 03:38:20 2020-01-01 00:09:59.000 2020-01-02 03:38:20.000 599 99500 50049.5 5004950 599 99500 50049.5 5004950 -32571 32567 4829.66 482966 -127 124 -1.06 -106 +6 2 1005 9996 0.01801 300.01801 150.01801 15151.81981 0.01801 300.018 150.01801 15151.81978 0.01801 300.01801 150.01801 15151.81901 2020-01-01 2020-01-02 2020-01-01 00:00:06 2020-01-02 03:45:06 2020-01-01 00:00:06.000 2020-01-02 03:45:06.000 6 99906 49956 5045556 6 99906 49956 5045556 -32563 32372 4535.009900990099 458036 -127 124 -2.01980198019802 -204 +60 2 10050 99960 0.18018 300.18018 150.18018 15168.19819 0.18018 300.18018 150.18017 15168.198 0.18018 300.18018 150.18018 15168.19818 2020-01-01 2020-01-02 2020-01-01 00:01:00 2020-01-02 03:46:00 2020-01-01 00:01:00.000 2020-01-02 03:46:00.000 60 99960 50010 5051010 60 99960 50010 5051010 -32509 32426 4589.009900990099 463490 -128 127 -1.2475247524752475 -126 +600 2 10590 99501 1.8018 298.8018 150.3018 15030.18018 1.8018 298.8018 150.3018 15030.1801 1.80180 298.80180 150.30180000000001 15030.18000 2020-01-01 2020-01-02 2020-01-01 00:10:00 2020-01-02 03:38:21 2020-01-01 00:10:00.000 2020-01-02 03:38:21.000 600 99501 50050.5 5005050 600 99501 50050.5 5005050 -32570 32568 4830.66 483066 -126 125 -0.06 -6 +601 2 10591 99502 1.8048 298.8048 150.3048 15030.48048 1.8048 298.8048 150.3048 15030.4807 1.80480 298.80480 150.3048 15030.48000 2020-01-01 2020-01-02 2020-01-01 00:10:01 2020-01-02 03:38:22 2020-01-01 00:10:01.000 2020-01-02 03:38:22.000 601 99502 50051.5 5005150 601 99502 50051.5 5005150 -32569 32569 4831.66 483166 -125 126 0.94 94 +602 2 10592 99503 1.8078 298.8078 150.3078 15030.78078 1.8078 298.8078 150.3078 15030.78035 1.80780 298.80780 150.30780000000001 15030.78000 2020-01-01 2020-01-02 2020-01-01 00:10:02 2020-01-02 03:38:23 2020-01-01 00:10:02.000 2020-01-02 03:38:23.000 602 99503 50052.5 5005250 602 99503 50052.5 5005250 -32568 32570 4832.66 483266 -124 127 1.94 194 +603 2 10593 99504 1.81081 298.81081 150.31081 15031.08108 1.81081 298.81082 150.31081 15031.0811 1.81081 298.81081 150.31081 15031.08100 2020-01-01 2020-01-02 2020-01-01 00:10:03 2020-01-02 03:38:24 2020-01-01 00:10:03.000 2020-01-02 03:38:24.000 603 99504 50053.5 5005350 603 99504 50053.5 5005350 -32567 32571 4833.66 483366 -128 127 0.38 38 +604 2 10594 99505 1.81381 298.81381 150.31381 15031.38138 1.81381 298.8138 150.31381 15031.38124 1.81381 298.81381 150.31381 15031.38100 2020-01-01 2020-01-02 2020-01-01 00:10:04 2020-01-02 03:38:25 2020-01-01 00:10:04.000 2020-01-02 03:38:25.000 604 99505 50054.5 5005450 604 99505 50054.5 5005450 -32566 32572 4834.66 483466 -128 123 -1.18 -118 +605 2 10595 99506 1.81681 298.81681 150.31681 15031.68168 1.81681 298.8168 150.31681 15031.68157 1.81681 298.81681 150.31681 15031.68100 2020-01-01 2020-01-02 2020-01-01 00:10:05 2020-01-02 03:38:26 2020-01-01 00:10:05.000 2020-01-02 03:38:26.000 605 99506 50055.5 5005550 605 99506 50055.5 5005550 -32565 32573 4835.66 483566 -127 124 -0.18 -18 +606 2 10596 99507 1.81981 298.81981 150.31981 15031.98198 1.81981 298.81982 150.31982 15031.98217 1.81981 298.81981 150.31981 15031.98100 2020-01-01 2020-01-02 2020-01-01 00:10:06 2020-01-02 03:38:27 2020-01-01 00:10:06.000 2020-01-02 03:38:27.000 606 99507 50056.5 5005650 606 99507 50056.5 5005650 -32564 32574 4836.66 483666 -126 125 0.82 82 +607 2 10597 99508 1.82282 298.82282 150.32282 15032.28228 1.82282 298.8228 150.32282 15032.28246 1.82282 298.82282 150.32281999999998 15032.28200 2020-01-01 2020-01-02 2020-01-01 00:10:07 2020-01-02 03:38:28 2020-01-01 00:10:07.000 2020-01-02 03:38:28.000 607 99508 50057.5 5005750 607 99508 50057.5 5005750 -32563 32575 4837.66 483766 -125 126 1.82 182 +608 2 10598 99509 1.82582 298.82582 150.32582 15032.58258 1.82582 298.82584 150.32582 15032.58258 1.82582 298.82582 150.32582 15032.58200 2020-01-01 2020-01-02 2020-01-01 00:10:08 2020-01-02 03:38:29 2020-01-01 00:10:08.000 2020-01-02 03:38:29.000 608 99509 50058.5 5005850 608 99509 50058.5 5005850 -32562 32576 4838.66 483866 -124 127 2.82 282 +609 2 10599 99510 1.82882 298.82882 150.32882 15032.88288 1.82882 298.82883 150.32882 15032.88274 1.82882 298.82882 150.32882 15032.88200 2020-01-01 2020-01-02 2020-01-01 00:10:09 2020-01-02 03:38:30 2020-01-01 00:10:09.000 2020-01-02 03:38:30.000 609 99510 50059.5 5005950 609 99510 50059.5 5005950 -32561 32577 4839.66 483966 -128 127 1.26 126 61 2 10051 99961 0.18318 300.18318 150.18318 15168.5015 0.18318 300.1832 150.18318 15168.5016 0.18318 300.18318 150.18318 15168.50118 2020-01-01 2020-01-02 2020-01-01 00:01:01 2020-01-02 03:46:01 2020-01-01 00:01:01.000 2020-01-02 03:46:01.000 61 99961 50011 5051111 61 99961 50011 5051111 -32508 32427 4590.009900990099 463591 -128 123 -2.782178217821782 -281 -610 2 10600 99511 1.83183 298.83183 150.33183 15033.18318 1.83183 298.83182 150.33183 15033.18304 1.83183 298.83183 150.33182999999985 15033.18300 2020-01-01 2020-01-02 2020-01-01 00:10:10 2020-01-02 03:38:31 2020-01-01 00:10:10.000 2020-01-02 03:38:31.000 610 99511 50060.5 5006050 610 99511 50060.5 5006050 -32560 32578 4840.66 484066 -128 127 -0.3 -30 -611 2 10601 99512 1.83483 298.83483 150.33483 15033.48348 1.83483 298.83484 150.33483 15033.48363 1.83483 298.83483 150.33482999999984 15033.48300 2020-01-01 2020-01-02 2020-01-01 00:10:11 2020-01-02 03:38:32 2020-01-01 00:10:11.000 2020-01-02 03:38:32.000 611 99512 50061.5 5006150 611 99512 50061.5 5006150 -32559 32579 4841.66 484166 -128 123 -1.86 -186 -612 2 10602 99513 1.83783 298.83783 150.33783 15033.78378 1.83783 298.83783 150.33783 15033.78393 1.83783 298.83783 150.33783000000022 15033.78300 2020-01-01 2020-01-02 2020-01-01 00:10:12 2020-01-02 03:38:33 2020-01-01 00:10:12.000 2020-01-02 03:38:33.000 612 99513 50062.5 5006250 612 99513 50062.5 5006250 -32558 32580 4842.66 484266 -127 124 -0.86 -86 -613 2 10603 99514 1.84084 298.84084 150.34084 15034.08408 1.84084 298.84085 150.34084 15034.08405 1.84084 298.84084 150.34084000000007 15034.08400 2020-01-01 2020-01-02 2020-01-01 00:10:13 2020-01-02 03:38:34 2020-01-01 00:10:13.000 2020-01-02 03:38:34.000 613 99514 50063.5 5006350 613 99514 50063.5 5006350 -32557 32581 4843.66 484366 -126 125 0.14 14 -614 2 10604 99515 1.84384 298.84384 150.34384 15034.38438 1.84384 298.84384 150.34384 15034.38421 1.84384 298.84384 150.34383999999977 15034.38400 2020-01-01 2020-01-02 2020-01-01 00:10:14 2020-01-02 03:38:35 2020-01-01 00:10:14.000 2020-01-02 03:38:35.000 614 99515 50064.5 5006450 614 99515 50064.5 5006450 -32556 32582 4844.66 484466 -125 126 1.14 114 -615 2 10605 99516 1.84684 298.84684 150.34684 15034.68468 1.84684 298.84683 150.34684 15034.68452 1.84684 298.84684 150.34684000000007 15034.68400 2020-01-01 2020-01-02 2020-01-01 00:10:15 2020-01-02 03:38:36 2020-01-01 00:10:15.000 2020-01-02 03:38:36.000 615 99516 50065.5 5006550 615 99516 50065.5 5006550 -32555 32583 4845.66 484566 -124 127 2.14 214 -616 2 10606 99517 1.84984 298.84984 150.34984 15034.98498 1.84984 298.84985 150.34985 15034.98527 1.84984 298.84984 150.34984000000014 15034.98400 2020-01-01 2020-01-02 2020-01-01 00:10:16 2020-01-02 03:38:37 2020-01-01 00:10:16.000 2020-01-02 03:38:37.000 616 99517 50066.5 5006650 616 99517 50066.5 5006650 -32554 32584 4846.66 484666 -128 127 0.58 58 -617 2 10607 99518 1.85285 298.85285 150.35285 15035.28528 1.85285 298.85284 150.35285 15035.2854 1.85285 298.85285 150.35284999999993 15035.28500 2020-01-01 2020-01-02 2020-01-01 00:10:17 2020-01-02 03:38:38 2020-01-01 00:10:17.000 2020-01-02 03:38:38.000 617 99518 50067.5 5006750 617 99518 50067.5 5006750 -32553 32585 4847.66 484766 -128 123 -0.98 -98 -618 2 10608 99519 1.85585 298.85585 150.35585 15035.58558 1.85585 298.85587 150.35585 15035.58551 1.85585 298.85585 150.35584999999995 15035.58500 2020-01-01 2020-01-02 2020-01-01 00:10:18 2020-01-02 03:38:39 2020-01-01 00:10:18.000 2020-01-02 03:38:39.000 618 99519 50068.5 5006850 618 99519 50068.5 5006850 -32552 32586 4848.66 484866 -127 124 0.02 2 -619 2 10609 99520 1.85885 298.85885 150.35885 15035.88588 1.85885 298.85886 150.35885 15035.88568 1.85885 298.85885 150.35885000000002 15035.88500 2020-01-01 2020-01-02 2020-01-01 00:10:19 2020-01-02 03:38:40 2020-01-01 00:10:19.000 2020-01-02 03:38:40.000 619 99520 50069.5 5006950 619 99520 50069.5 5006950 -32551 32587 4849.66 484966 -126 125 1.02 102 -62 2 10052 99962 0.18618 300.18618 150.18618 15168.8048 0.18618 300.1862 150.18618 15168.80494 0.18618 300.18618 150.18618000000006 15168.80418 2020-01-01 2020-01-02 2020-01-01 00:01:02 2020-01-02 03:46:02 2020-01-01 00:01:02.000 2020-01-02 03:46:02.000 62 99962 50012 5051212 62 99962 50012 5051212 -32507 32428 4591.009900990099 463692 -127 124 -1.7821782178217822 -180 -620 2 10610 99521 1.86186 298.86186 150.36186 15036.18618 1.86186 298.86185 150.36185 15036.18598 1.86186 298.86186 150.36186000000018 15036.18600 2020-01-01 2020-01-02 2020-01-01 00:10:20 2020-01-02 03:38:41 2020-01-01 00:10:20.000 2020-01-02 03:38:41.000 620 99521 50070.5 5007050 620 99521 50070.5 5007050 -32550 32588 4850.66 485066 -125 126 2.02 202 -621 2 10611 99522 1.86486 298.86486 150.36486 15036.48648 1.86486 298.86487 150.36486 15036.48673 1.86486 298.86486 150.36485999999985 15036.48600 2020-01-01 2020-01-02 2020-01-01 00:10:21 2020-01-02 03:38:42 2020-01-01 00:10:21.000 2020-01-02 03:38:42.000 621 99522 50071.5 5007150 621 99522 50071.5 5007150 -32549 32589 4851.66 485166 -124 127 3.02 302 -622 2 10612 99523 1.86786 298.86786 150.36786 15036.78678 1.86786 298.86786 150.36786 15036.78687 1.86786 298.86786 150.36786000000012 15036.78600 2020-01-01 2020-01-02 2020-01-01 00:10:22 2020-01-02 03:38:43 2020-01-01 00:10:22.000 2020-01-02 03:38:43.000 622 99523 50072.5 5007250 622 99523 50072.5 5007250 -32548 32590 4852.66 485266 -128 127 1.46 146 -623 2 10613 99524 1.87087 298.87087 150.37087 15037.08708 1.87087 298.87088 150.37087 15037.08702 1.87087 298.87087 150.3708700000001 15037.08700 2020-01-01 2020-01-02 2020-01-01 00:10:23 2020-01-02 03:38:44 2020-01-01 00:10:23.000 2020-01-02 03:38:44.000 623 99524 50073.5 5007350 623 99524 50073.5 5007350 -32547 32591 4853.66 485366 -128 123 -0.1 -10 -624 2 10614 99525 1.87387 298.87387 150.37387 15037.38738 1.87387 298.87387 150.37387 15037.38716 1.87387 298.87387 150.37386999999998 15037.38700 2020-01-01 2020-01-02 2020-01-01 00:10:24 2020-01-02 03:38:45 2020-01-01 00:10:24.000 2020-01-02 03:38:45.000 624 99525 50074.5 5007450 624 99525 50074.5 5007450 -32546 32592 4854.66 485466 -127 124 0.9 90 -625 2 10615 99526 1.87687 298.87687 150.37687 15037.68768 1.87687 298.8769 150.37687 15037.68791 1.87687 298.87687 150.37687000000003 15037.68700 2020-01-01 2020-01-02 2020-01-01 00:10:25 2020-01-02 03:38:46 2020-01-01 00:10:25.000 2020-01-02 03:38:46.000 625 99526 50075.5 5007550 625 99526 50075.5 5007550 -32545 32593 4855.66 485566 -126 125 1.9 190 -626 2 10616 99527 1.87987 298.87987 150.37987 15037.98798 1.87987 298.87988 150.37988 15037.9882 1.87987 298.87987 150.3798700000001 15037.98700 2020-01-01 2020-01-02 2020-01-01 00:10:26 2020-01-02 03:38:47 2020-01-01 00:10:26.000 2020-01-02 03:38:47.000 626 99527 50076.5 5007650 626 99527 50076.5 5007650 -32544 32594 4856.66 485666 -125 126 2.9 290 -627 2 10617 99528 1.88288 298.88288 150.38288 15038.28828 1.88288 298.88287 150.38288 15038.28834 1.88288 298.88288 150.38287999999991 15038.28800 2020-01-01 2020-01-02 2020-01-01 00:10:27 2020-01-02 03:38:48 2020-01-01 00:10:27.000 2020-01-02 03:38:48.000 627 99528 50077.5 5007750 627 99528 50077.5 5007750 -32543 32595 4857.66 485766 -124 127 3.9 390 -628 2 10618 99529 1.88588 298.88588 150.38588 15038.58858 1.88588 298.8859 150.38588 15038.58849 1.88588 298.88588 150.38587999999987 15038.58800 2020-01-01 2020-01-02 2020-01-01 00:10:28 2020-01-02 03:38:49 2020-01-01 00:10:28.000 2020-01-02 03:38:49.000 628 99529 50078.5 5007850 628 99529 50078.5 5007850 -32542 32596 4858.66 485866 -128 127 2.34 234 -629 2 10619 99530 1.88888 298.88888 150.38888 15038.88888 1.88888 298.8889 150.38888 15038.88862 1.88888 298.88888 150.3888800000002 15038.88800 2020-01-01 2020-01-02 2020-01-01 00:10:29 2020-01-02 03:38:50 2020-01-01 00:10:29.000 2020-01-02 03:38:50.000 629 99530 50079.5 5007950 629 99530 50079.5 5007950 -32541 32597 4859.66 485966 -128 123 0.78 78 -63 2 10053 99963 0.18918 300.18918 150.18918 15169.1081 0.18918 300.18918 150.18918 15169.10808 0.18918 300.18918 150.1891799999999 15169.10718 2020-01-01 2020-01-02 2020-01-01 00:01:03 2020-01-02 03:46:03 2020-01-01 00:01:03.000 2020-01-02 03:46:03.000 63 99963 50013 5051313 63 99963 50013 5051313 -32506 32429 4592.009900990099 463793 -126 125 -0.7821782178217822 -79 -630 2 10620 99531 1.89189 298.89189 150.39189 15039.18918 1.89189 298.8919 150.39189 15039.18937 1.89189 298.89189 150.3918900000001 15039.18900 2020-01-01 2020-01-02 2020-01-01 00:10:30 2020-01-02 03:38:51 2020-01-01 00:10:30.000 2020-01-02 03:38:51.000 630 99531 50080.5 5008050 630 99531 50080.5 5008050 -32540 32598 4860.66 486066 -127 124 1.78 178 -631 2 10621 99532 1.89489 298.89489 150.39489 15039.48948 1.89489 298.8949 150.39489 15039.48968 1.89489 298.89489 150.39488999999978 15039.48900 2020-01-01 2020-01-02 2020-01-01 00:10:31 2020-01-02 03:38:52 2020-01-01 00:10:31.000 2020-01-02 03:38:52.000 631 99532 50081.5 5008150 631 99532 50081.5 5008150 -32539 32599 4861.66 486166 -126 125 2.78 278 -632 2 10622 99533 1.89789 298.89789 150.39789 15039.78978 1.89789 298.8979 150.39789 15039.78984 1.89789 298.89789 150.39789000000013 15039.78900 2020-01-01 2020-01-02 2020-01-01 00:10:32 2020-01-02 03:38:53 2020-01-01 00:10:32.000 2020-01-02 03:38:53.000 632 99533 50082.5 5008250 632 99533 50082.5 5008250 -32538 32600 4862.66 486266 -125 126 3.78 378 -633 2 10623 99534 1.9009 298.9009 150.4009 15040.09009 1.9009 298.9009 150.40089 15040.08996 1.90090 298.90090 150.40090000000004 15040.09000 2020-01-01 2020-01-02 2020-01-01 00:10:33 2020-01-02 03:38:54 2020-01-01 00:10:33.000 2020-01-02 03:38:54.000 633 99534 50083.5 5008350 633 99534 50083.5 5008350 -32537 32601 4863.66 486366 -124 127 4.78 478 -634 2 10624 99535 1.9039 298.9039 150.4039 15040.39039 1.9039 298.9039 150.4039 15040.39009 1.90390 298.90390 150.4038999999999 15040.39000 2020-01-01 2020-01-02 2020-01-01 00:10:34 2020-01-02 03:38:55 2020-01-01 00:10:34.000 2020-01-02 03:38:55.000 634 99535 50084.5 5008450 634 99535 50084.5 5008450 -32536 32602 4864.66 486466 -128 127 3.22 322 -635 2 10625 99536 1.9069 298.9069 150.4069 15040.69069 1.9069 298.90692 150.4069 15040.69084 1.90690 298.90690 150.40689999999998 15040.69000 2020-01-01 2020-01-02 2020-01-01 00:10:35 2020-01-02 03:38:56 2020-01-01 00:10:35.000 2020-01-02 03:38:56.000 635 99536 50085.5 5008550 635 99536 50085.5 5008550 -32535 32603 4865.66 486566 -128 127 1.66 166 -636 2 10626 99537 1.9099 298.9099 150.4099 15040.99099 1.90991 298.9099 150.40991 15040.99115 1.90990 298.90990 150.40990000000005 15040.99000 2020-01-01 2020-01-02 2020-01-01 00:10:36 2020-01-02 03:38:57 2020-01-01 00:10:36.000 2020-01-02 03:38:57.000 636 99537 50086.5 5008650 636 99537 50086.5 5008650 -32534 32604 4866.66 486666 -128 124 0.1 10 -637 2 10627 99538 1.91291 298.91291 150.41291 15041.29129 1.91291 298.9129 150.41291 15041.29131 1.91291 298.91291 150.4129099999998 15041.29100 2020-01-01 2020-01-02 2020-01-01 00:10:37 2020-01-02 03:38:58 2020-01-01 00:10:37.000 2020-01-02 03:38:58.000 637 99538 50087.5 5008750 637 99538 50087.5 5008750 -32533 32605 4867.66 486766 -127 125 1.1 110 -638 2 10628 99539 1.91591 298.91591 150.41591 15041.59159 1.91591 298.91592 150.41591 15041.59143 1.91591 298.91591 150.41590999999988 15041.59100 2020-01-01 2020-01-02 2020-01-01 00:10:38 2020-01-02 03:38:59 2020-01-01 00:10:38.000 2020-01-02 03:38:59.000 638 99539 50088.5 5008850 638 99539 50088.5 5008850 -32532 32606 4868.66 486866 -126 126 2.1 210 -639 2 10629 99540 1.91891 298.91891 150.41891 15041.89189 1.91891 298.9189 150.41891 15041.89172 1.91891 298.91891 150.41891000000015 15041.89100 2020-01-01 2020-01-02 2020-01-01 00:10:39 2020-01-02 03:39:00 2020-01-01 00:10:39.000 2020-01-02 03:39:00.000 639 99540 50089.5 5008950 639 99540 50089.5 5008950 -32531 32607 4869.66 486966 -125 127 3.1 310 -64 2 10054 99964 0.19219 300.19219 150.19219 15169.41141 0.19219 300.1922 150.19219 15169.41184 0.19219 300.19219 150.1921899999999 15169.41119 2020-01-01 2020-01-02 2020-01-01 00:01:04 2020-01-02 03:46:04 2020-01-01 00:01:04.000 2020-01-02 03:46:04.000 64 99964 50014 5051414 64 99964 50014 5051414 -32505 32430 4593.009900990099 463894 -125 126 0.21782178217821782 22 -640 2 10630 99541 1.92192 298.92192 150.42192 15042.19219 1.92192 298.92194 150.42192 15042.19232 1.92192 298.92192 150.42192000000006 15042.19200 2020-01-01 2020-01-02 2020-01-01 00:10:40 2020-01-02 03:39:01 2020-01-01 00:10:40.000 2020-01-02 03:39:01.000 640 99541 50090.5 5009050 640 99541 50090.5 5009050 -32530 32608 4870.66 487066 -128 127 1.54 154 -641 2 10631 99542 1.92492 298.92492 150.42492 15042.49249 1.92492 298.92493 150.42492 15042.49265 1.92492 298.92492 150.42491999999996 15042.49200 2020-01-01 2020-01-02 2020-01-01 00:10:41 2020-01-02 03:39:02 2020-01-01 00:10:41.000 2020-01-02 03:39:02.000 641 99542 50091.5 5009150 641 99542 50091.5 5009150 -32529 32609 4871.66 487166 -128 127 -0.02 -2 -642 2 10632 99543 1.92792 298.92792 150.42792 15042.79279 1.92792 298.92792 150.42792 15042.79278 1.92792 298.92792 150.42792000000006 15042.79200 2020-01-01 2020-01-02 2020-01-01 00:10:42 2020-01-02 03:39:03 2020-01-01 00:10:42.000 2020-01-02 03:39:03.000 642 99543 50092.5 5009250 642 99543 50092.5 5009250 -32528 32610 4872.66 487266 -128 123 -1.58 -158 -643 2 10633 99544 1.93093 298.93093 150.43093 15043.09309 1.93093 298.93094 150.43092 15043.0929 1.93093 298.93093 150.43093000000022 15043.09300 2020-01-01 2020-01-02 2020-01-01 00:10:43 2020-01-02 03:39:04 2020-01-01 00:10:43.000 2020-01-02 03:39:04.000 643 99544 50093.5 5009350 643 99544 50093.5 5009350 -32527 32611 4873.66 487366 -127 124 -0.58 -58 -644 2 10634 99545 1.93393 298.93393 150.43393 15043.39339 1.93393 298.93393 150.43393 15043.39319 1.93393 298.93393 150.4339299999999 15043.39300 2020-01-01 2020-01-02 2020-01-01 00:10:44 2020-01-02 03:39:05 2020-01-01 00:10:44.000 2020-01-02 03:39:05.000 644 99545 50094.5 5009450 644 99545 50094.5 5009450 -32526 32612 4874.66 487466 -126 125 0.42 42 -645 2 10635 99546 1.93693 298.93693 150.43693 15043.69369 1.93693 298.93695 150.43693 15043.69379 1.93693 298.93693 150.4369299999999 15043.69300 2020-01-01 2020-01-02 2020-01-01 00:10:45 2020-01-02 03:39:06 2020-01-01 00:10:45.000 2020-01-02 03:39:06.000 645 99546 50095.5 5009550 645 99546 50095.5 5009550 -32525 32613 4875.66 487566 -125 126 1.42 142 -646 2 10636 99547 1.93993 298.93993 150.43993 15043.99399 1.93994 298.93994 150.43994 15043.99412 1.93993 298.93993 150.4399300000002 15043.99300 2020-01-01 2020-01-02 2020-01-01 00:10:46 2020-01-02 03:39:07 2020-01-01 00:10:46.000 2020-01-02 03:39:07.000 646 99547 50096.5 5009650 646 99547 50096.5 5009650 -32524 32614 4876.66 487666 -124 127 2.42 242 -647 2 10637 99548 1.94294 298.94294 150.44294 15044.29429 1.94294 298.94293 150.44294 15044.29425 1.94294 298.94294 150.44294000000014 15044.29400 2020-01-01 2020-01-02 2020-01-01 00:10:47 2020-01-02 03:39:08 2020-01-01 00:10:47.000 2020-01-02 03:39:08.000 647 99548 50097.5 5009750 647 99548 50097.5 5009750 -32523 32615 4877.66 487766 -128 127 0.86 86 -648 2 10638 99549 1.94594 298.94594 150.44594 15044.59459 1.94594 298.94595 150.44595 15044.595 1.94594 298.94594 150.44593999999978 15044.59400 2020-01-01 2020-01-02 2020-01-01 00:10:48 2020-01-02 03:39:09 2020-01-01 00:10:48.000 2020-01-02 03:39:09.000 648 99549 50098.5 5009850 648 99549 50098.5 5009850 -32522 32616 4878.66 487866 -128 123 -0.7 -70 -649 2 10639 99550 1.94894 298.94894 150.44894 15044.89489 1.94894 298.94894 150.44894 15044.89467 1.94894 298.94894 150.44894000000016 15044.89400 2020-01-01 2020-01-02 2020-01-01 00:10:49 2020-01-02 03:39:10 2020-01-01 00:10:49.000 2020-01-02 03:39:10.000 649 99550 50099.5 5009950 649 99550 50099.5 5009950 -32521 32617 4879.66 487966 -127 124 0.3 30 -65 2 10055 99965 0.19519 300.19519 150.19519 15169.71471 0.19519 300.1952 150.19519 15169.71448 0.19519 300.19519 150.1951900000002 15169.71419 2020-01-01 2020-01-02 2020-01-01 00:01:05 2020-01-02 03:46:05 2020-01-01 00:01:05.000 2020-01-02 03:46:05.000 65 99965 50015 5051515 65 99965 50015 5051515 -32504 32431 4594.009900990099 463995 -124 127 1.2178217821782178 123 -650 2 10640 99551 1.95195 298.95195 150.45195 15045.19519 1.95195 298.95197 150.45195 15045.19525 1.95195 298.95195 150.4519500000001 15045.19500 2020-01-01 2020-01-02 2020-01-01 00:10:50 2020-01-02 03:39:11 2020-01-01 00:10:50.000 2020-01-02 03:39:11.000 650 99551 50100.5 5010050 650 99551 50100.5 5010050 -32520 32618 4880.66 488066 -126 125 1.3 130 -651 2 10641 99552 1.95495 298.95495 150.45495 15045.49549 1.95495 298.95496 150.45495 15045.49558 1.95495 298.95495 150.4549499999999 15045.49500 2020-01-01 2020-01-02 2020-01-01 00:10:51 2020-01-02 03:39:12 2020-01-01 00:10:51.000 2020-01-02 03:39:12.000 651 99552 50101.5 5010150 651 99552 50101.5 5010150 -32519 32619 4881.66 488166 -125 126 2.3 230 +610 2 10600 99511 1.83183 298.83183 150.33183 15033.18318 1.83183 298.83182 150.33183 15033.18304 1.83183 298.83183 150.33183 15033.18300 2020-01-01 2020-01-02 2020-01-01 00:10:10 2020-01-02 03:38:31 2020-01-01 00:10:10.000 2020-01-02 03:38:31.000 610 99511 50060.5 5006050 610 99511 50060.5 5006050 -32560 32578 4840.66 484066 -128 127 -0.3 -30 +611 2 10601 99512 1.83483 298.83483 150.33483 15033.48348 1.83483 298.83484 150.33483 15033.48363 1.83483 298.83483 150.33483 15033.48300 2020-01-01 2020-01-02 2020-01-01 00:10:11 2020-01-02 03:38:32 2020-01-01 00:10:11.000 2020-01-02 03:38:32.000 611 99512 50061.5 5006150 611 99512 50061.5 5006150 -32559 32579 4841.66 484166 -128 123 -1.86 -186 +612 2 10602 99513 1.83783 298.83783 150.33783 15033.78378 1.83783 298.83783 150.33783 15033.78393 1.83783 298.83783 150.33783 15033.78300 2020-01-01 2020-01-02 2020-01-01 00:10:12 2020-01-02 03:38:33 2020-01-01 00:10:12.000 2020-01-02 03:38:33.000 612 99513 50062.5 5006250 612 99513 50062.5 5006250 -32558 32580 4842.66 484266 -127 124 -0.86 -86 +613 2 10603 99514 1.84084 298.84084 150.34084 15034.08408 1.84084 298.84085 150.34084 15034.08405 1.84084 298.84084 150.34084000000001 15034.08400 2020-01-01 2020-01-02 2020-01-01 00:10:13 2020-01-02 03:38:34 2020-01-01 00:10:13.000 2020-01-02 03:38:34.000 613 99514 50063.5 5006350 613 99514 50063.5 5006350 -32557 32581 4843.66 484366 -126 125 0.14 14 +614 2 10604 99515 1.84384 298.84384 150.34384 15034.38438 1.84384 298.84384 150.34384 15034.38421 1.84384 298.84384 150.34384 15034.38400 2020-01-01 2020-01-02 2020-01-01 00:10:14 2020-01-02 03:38:35 2020-01-01 00:10:14.000 2020-01-02 03:38:35.000 614 99515 50064.5 5006450 614 99515 50064.5 5006450 -32556 32582 4844.66 484466 -125 126 1.14 114 +615 2 10605 99516 1.84684 298.84684 150.34684 15034.68468 1.84684 298.84683 150.34684 15034.68452 1.84684 298.84684 150.34684 15034.68400 2020-01-01 2020-01-02 2020-01-01 00:10:15 2020-01-02 03:38:36 2020-01-01 00:10:15.000 2020-01-02 03:38:36.000 615 99516 50065.5 5006550 615 99516 50065.5 5006550 -32555 32583 4845.66 484566 -124 127 2.14 214 +616 2 10606 99517 1.84984 298.84984 150.34984 15034.98498 1.84984 298.84985 150.34985 15034.98527 1.84984 298.84984 150.34984 15034.98400 2020-01-01 2020-01-02 2020-01-01 00:10:16 2020-01-02 03:38:37 2020-01-01 00:10:16.000 2020-01-02 03:38:37.000 616 99517 50066.5 5006650 616 99517 50066.5 5006650 -32554 32584 4846.66 484666 -128 127 0.58 58 +617 2 10607 99518 1.85285 298.85285 150.35285 15035.28528 1.85285 298.85284 150.35285 15035.2854 1.85285 298.85285 150.35285 15035.28500 2020-01-01 2020-01-02 2020-01-01 00:10:17 2020-01-02 03:38:38 2020-01-01 00:10:17.000 2020-01-02 03:38:38.000 617 99518 50067.5 5006750 617 99518 50067.5 5006750 -32553 32585 4847.66 484766 -128 123 -0.98 -98 +618 2 10608 99519 1.85585 298.85585 150.35585 15035.58558 1.85585 298.85587 150.35585 15035.58551 1.85585 298.85585 150.35585 15035.58500 2020-01-01 2020-01-02 2020-01-01 00:10:18 2020-01-02 03:38:39 2020-01-01 00:10:18.000 2020-01-02 03:38:39.000 618 99519 50068.5 5006850 618 99519 50068.5 5006850 -32552 32586 4848.66 484866 -127 124 0.02 2 +619 2 10609 99520 1.85885 298.85885 150.35885 15035.88588 1.85885 298.85886 150.35885 15035.88568 1.85885 298.85885 150.35885 15035.88500 2020-01-01 2020-01-02 2020-01-01 00:10:19 2020-01-02 03:38:40 2020-01-01 00:10:19.000 2020-01-02 03:38:40.000 619 99520 50069.5 5006950 619 99520 50069.5 5006950 -32551 32587 4849.66 484966 -126 125 1.02 102 +62 2 10052 99962 0.18618 300.18618 150.18618 15168.8048 0.18618 300.1862 150.18618 15168.80494 0.18618 300.18618 150.18617999999998 15168.80418 2020-01-01 2020-01-02 2020-01-01 00:01:02 2020-01-02 03:46:02 2020-01-01 00:01:02.000 2020-01-02 03:46:02.000 62 99962 50012 5051212 62 99962 50012 5051212 -32507 32428 4591.009900990099 463692 -127 124 -1.7821782178217822 -180 +620 2 10610 99521 1.86186 298.86186 150.36186 15036.18618 1.86186 298.86185 150.36185 15036.18598 1.86186 298.86186 150.36186 15036.18600 2020-01-01 2020-01-02 2020-01-01 00:10:20 2020-01-02 03:38:41 2020-01-01 00:10:20.000 2020-01-02 03:38:41.000 620 99521 50070.5 5007050 620 99521 50070.5 5007050 -32550 32588 4850.66 485066 -125 126 2.02 202 +621 2 10611 99522 1.86486 298.86486 150.36486 15036.48648 1.86486 298.86487 150.36486 15036.48673 1.86486 298.86486 150.36486000000002 15036.48600 2020-01-01 2020-01-02 2020-01-01 00:10:21 2020-01-02 03:38:42 2020-01-01 00:10:21.000 2020-01-02 03:38:42.000 621 99522 50071.5 5007150 621 99522 50071.5 5007150 -32549 32589 4851.66 485166 -124 127 3.02 302 +622 2 10612 99523 1.86786 298.86786 150.36786 15036.78678 1.86786 298.86786 150.36786 15036.78687 1.86786 298.86786 150.36786 15036.78600 2020-01-01 2020-01-02 2020-01-01 00:10:22 2020-01-02 03:38:43 2020-01-01 00:10:22.000 2020-01-02 03:38:43.000 622 99523 50072.5 5007250 622 99523 50072.5 5007250 -32548 32590 4852.66 485266 -128 127 1.46 146 +623 2 10613 99524 1.87087 298.87087 150.37087 15037.08708 1.87087 298.87088 150.37087 15037.08702 1.87087 298.87087 150.37087 15037.08700 2020-01-01 2020-01-02 2020-01-01 00:10:23 2020-01-02 03:38:44 2020-01-01 00:10:23.000 2020-01-02 03:38:44.000 623 99524 50073.5 5007350 623 99524 50073.5 5007350 -32547 32591 4853.66 485366 -128 123 -0.1 -10 +624 2 10614 99525 1.87387 298.87387 150.37387 15037.38738 1.87387 298.87387 150.37387 15037.38716 1.87387 298.87387 150.37387 15037.38700 2020-01-01 2020-01-02 2020-01-01 00:10:24 2020-01-02 03:38:45 2020-01-01 00:10:24.000 2020-01-02 03:38:45.000 624 99525 50074.5 5007450 624 99525 50074.5 5007450 -32546 32592 4854.66 485466 -127 124 0.9 90 +625 2 10615 99526 1.87687 298.87687 150.37687 15037.68768 1.87687 298.8769 150.37687 15037.68791 1.87687 298.87687 150.37687 15037.68700 2020-01-01 2020-01-02 2020-01-01 00:10:25 2020-01-02 03:38:46 2020-01-01 00:10:25.000 2020-01-02 03:38:46.000 625 99526 50075.5 5007550 625 99526 50075.5 5007550 -32545 32593 4855.66 485566 -126 125 1.9 190 +626 2 10616 99527 1.87987 298.87987 150.37987 15037.98798 1.87987 298.87988 150.37988 15037.9882 1.87987 298.87987 150.37986999999998 15037.98700 2020-01-01 2020-01-02 2020-01-01 00:10:26 2020-01-02 03:38:47 2020-01-01 00:10:26.000 2020-01-02 03:38:47.000 626 99527 50076.5 5007650 626 99527 50076.5 5007650 -32544 32594 4856.66 485666 -125 126 2.9 290 +627 2 10617 99528 1.88288 298.88288 150.38288 15038.28828 1.88288 298.88287 150.38288 15038.28834 1.88288 298.88288 150.38288 15038.28800 2020-01-01 2020-01-02 2020-01-01 00:10:27 2020-01-02 03:38:48 2020-01-01 00:10:27.000 2020-01-02 03:38:48.000 627 99528 50077.5 5007750 627 99528 50077.5 5007750 -32543 32595 4857.66 485766 -124 127 3.9 390 +628 2 10618 99529 1.88588 298.88588 150.38588 15038.58858 1.88588 298.8859 150.38588 15038.58849 1.88588 298.88588 150.38588 15038.58800 2020-01-01 2020-01-02 2020-01-01 00:10:28 2020-01-02 03:38:49 2020-01-01 00:10:28.000 2020-01-02 03:38:49.000 628 99529 50078.5 5007850 628 99529 50078.5 5007850 -32542 32596 4858.66 485866 -128 127 2.34 234 +629 2 10619 99530 1.88888 298.88888 150.38888 15038.88888 1.88888 298.8889 150.38888 15038.88862 1.88888 298.88888 150.38888 15038.88800 2020-01-01 2020-01-02 2020-01-01 00:10:29 2020-01-02 03:38:50 2020-01-01 00:10:29.000 2020-01-02 03:38:50.000 629 99530 50079.5 5007950 629 99530 50079.5 5007950 -32541 32597 4859.66 485966 -128 123 0.78 78 +63 2 10053 99963 0.18918 300.18918 150.18918 15169.1081 0.18918 300.18918 150.18918 15169.10808 0.18918 300.18918 150.18918000000002 15169.10718 2020-01-01 2020-01-02 2020-01-01 00:01:03 2020-01-02 03:46:03 2020-01-01 00:01:03.000 2020-01-02 03:46:03.000 63 99963 50013 5051313 63 99963 50013 5051313 -32506 32429 4592.009900990099 463793 -126 125 -0.7821782178217822 -79 +630 2 10620 99531 1.89189 298.89189 150.39189 15039.18918 1.89189 298.8919 150.39189 15039.18937 1.89189 298.89189 150.39189 15039.18900 2020-01-01 2020-01-02 2020-01-01 00:10:30 2020-01-02 03:38:51 2020-01-01 00:10:30.000 2020-01-02 03:38:51.000 630 99531 50080.5 5008050 630 99531 50080.5 5008050 -32540 32598 4860.66 486066 -127 124 1.78 178 +631 2 10621 99532 1.89489 298.89489 150.39489 15039.48948 1.89489 298.8949 150.39489 15039.48968 1.89489 298.89489 150.39489 15039.48900 2020-01-01 2020-01-02 2020-01-01 00:10:31 2020-01-02 03:38:52 2020-01-01 00:10:31.000 2020-01-02 03:38:52.000 631 99532 50081.5 5008150 631 99532 50081.5 5008150 -32539 32599 4861.66 486166 -126 125 2.78 278 +632 2 10622 99533 1.89789 298.89789 150.39789 15039.78978 1.89789 298.8979 150.39789 15039.78984 1.89789 298.89789 150.39789000000002 15039.78900 2020-01-01 2020-01-02 2020-01-01 00:10:32 2020-01-02 03:38:53 2020-01-01 00:10:32.000 2020-01-02 03:38:53.000 632 99533 50082.5 5008250 632 99533 50082.5 5008250 -32538 32600 4862.66 486266 -125 126 3.78 378 +633 2 10623 99534 1.9009 298.9009 150.4009 15040.09009 1.9009 298.9009 150.40089 15040.08996 1.90090 298.90090 150.4009 15040.09000 2020-01-01 2020-01-02 2020-01-01 00:10:33 2020-01-02 03:38:54 2020-01-01 00:10:33.000 2020-01-02 03:38:54.000 633 99534 50083.5 5008350 633 99534 50083.5 5008350 -32537 32601 4863.66 486366 -124 127 4.78 478 +634 2 10624 99535 1.9039 298.9039 150.4039 15040.39039 1.9039 298.9039 150.4039 15040.39009 1.90390 298.90390 150.4039 15040.39000 2020-01-01 2020-01-02 2020-01-01 00:10:34 2020-01-02 03:38:55 2020-01-01 00:10:34.000 2020-01-02 03:38:55.000 634 99535 50084.5 5008450 634 99535 50084.5 5008450 -32536 32602 4864.66 486466 -128 127 3.22 322 +635 2 10625 99536 1.9069 298.9069 150.4069 15040.69069 1.9069 298.90692 150.4069 15040.69084 1.90690 298.90690 150.4069 15040.69000 2020-01-01 2020-01-02 2020-01-01 00:10:35 2020-01-02 03:38:56 2020-01-01 00:10:35.000 2020-01-02 03:38:56.000 635 99536 50085.5 5008550 635 99536 50085.5 5008550 -32535 32603 4865.66 486566 -128 127 1.66 166 +636 2 10626 99537 1.9099 298.9099 150.4099 15040.99099 1.90991 298.9099 150.40991 15040.99115 1.90990 298.90990 150.4099 15040.99000 2020-01-01 2020-01-02 2020-01-01 00:10:36 2020-01-02 03:38:57 2020-01-01 00:10:36.000 2020-01-02 03:38:57.000 636 99537 50086.5 5008650 636 99537 50086.5 5008650 -32534 32604 4866.66 486666 -128 124 0.1 10 +637 2 10627 99538 1.91291 298.91291 150.41291 15041.29129 1.91291 298.9129 150.41291 15041.29131 1.91291 298.91291 150.41290999999998 15041.29100 2020-01-01 2020-01-02 2020-01-01 00:10:37 2020-01-02 03:38:58 2020-01-01 00:10:37.000 2020-01-02 03:38:58.000 637 99538 50087.5 5008750 637 99538 50087.5 5008750 -32533 32605 4867.66 486766 -127 125 1.1 110 +638 2 10628 99539 1.91591 298.91591 150.41591 15041.59159 1.91591 298.91592 150.41591 15041.59143 1.91591 298.91591 150.41591 15041.59100 2020-01-01 2020-01-02 2020-01-01 00:10:38 2020-01-02 03:38:59 2020-01-01 00:10:38.000 2020-01-02 03:38:59.000 638 99539 50088.5 5008850 638 99539 50088.5 5008850 -32532 32606 4868.66 486866 -126 126 2.1 210 +639 2 10629 99540 1.91891 298.91891 150.41891 15041.89189 1.91891 298.9189 150.41891 15041.89172 1.91891 298.91891 150.41890999999998 15041.89100 2020-01-01 2020-01-02 2020-01-01 00:10:39 2020-01-02 03:39:00 2020-01-01 00:10:39.000 2020-01-02 03:39:00.000 639 99540 50089.5 5008950 639 99540 50089.5 5008950 -32531 32607 4869.66 486966 -125 127 3.1 310 +64 2 10054 99964 0.19219 300.19219 150.19219 15169.41141 0.19219 300.1922 150.19219 15169.41184 0.19219 300.19219 150.19219 15169.41119 2020-01-01 2020-01-02 2020-01-01 00:01:04 2020-01-02 03:46:04 2020-01-01 00:01:04.000 2020-01-02 03:46:04.000 64 99964 50014 5051414 64 99964 50014 5051414 -32505 32430 4593.009900990099 463894 -125 126 0.21782178217821782 22 +640 2 10630 99541 1.92192 298.92192 150.42192 15042.19219 1.92192 298.92194 150.42192 15042.19232 1.92192 298.92192 150.42192 15042.19200 2020-01-01 2020-01-02 2020-01-01 00:10:40 2020-01-02 03:39:01 2020-01-01 00:10:40.000 2020-01-02 03:39:01.000 640 99541 50090.5 5009050 640 99541 50090.5 5009050 -32530 32608 4870.66 487066 -128 127 1.54 154 +641 2 10631 99542 1.92492 298.92492 150.42492 15042.49249 1.92492 298.92493 150.42492 15042.49265 1.92492 298.92492 150.42492000000001 15042.49200 2020-01-01 2020-01-02 2020-01-01 00:10:41 2020-01-02 03:39:02 2020-01-01 00:10:41.000 2020-01-02 03:39:02.000 641 99542 50091.5 5009150 641 99542 50091.5 5009150 -32529 32609 4871.66 487166 -128 127 -0.02 -2 +642 2 10632 99543 1.92792 298.92792 150.42792 15042.79279 1.92792 298.92792 150.42792 15042.79278 1.92792 298.92792 150.42792 15042.79200 2020-01-01 2020-01-02 2020-01-01 00:10:42 2020-01-02 03:39:03 2020-01-01 00:10:42.000 2020-01-02 03:39:03.000 642 99543 50092.5 5009250 642 99543 50092.5 5009250 -32528 32610 4872.66 487266 -128 123 -1.58 -158 +643 2 10633 99544 1.93093 298.93093 150.43093 15043.09309 1.93093 298.93094 150.43092 15043.0929 1.93093 298.93093 150.43093000000002 15043.09300 2020-01-01 2020-01-02 2020-01-01 00:10:43 2020-01-02 03:39:04 2020-01-01 00:10:43.000 2020-01-02 03:39:04.000 643 99544 50093.5 5009350 643 99544 50093.5 5009350 -32527 32611 4873.66 487366 -127 124 -0.58 -58 +644 2 10634 99545 1.93393 298.93393 150.43393 15043.39339 1.93393 298.93393 150.43393 15043.39319 1.93393 298.93393 150.43393 15043.39300 2020-01-01 2020-01-02 2020-01-01 00:10:44 2020-01-02 03:39:05 2020-01-01 00:10:44.000 2020-01-02 03:39:05.000 644 99545 50094.5 5009450 644 99545 50094.5 5009450 -32526 32612 4874.66 487466 -126 125 0.42 42 +645 2 10635 99546 1.93693 298.93693 150.43693 15043.69369 1.93693 298.93695 150.43693 15043.69379 1.93693 298.93693 150.43693 15043.69300 2020-01-01 2020-01-02 2020-01-01 00:10:45 2020-01-02 03:39:06 2020-01-01 00:10:45.000 2020-01-02 03:39:06.000 645 99546 50095.5 5009550 645 99546 50095.5 5009550 -32525 32613 4875.66 487566 -125 126 1.42 142 +646 2 10636 99547 1.93993 298.93993 150.43993 15043.99399 1.93994 298.93994 150.43994 15043.99412 1.93993 298.93993 150.43993 15043.99300 2020-01-01 2020-01-02 2020-01-01 00:10:46 2020-01-02 03:39:07 2020-01-01 00:10:46.000 2020-01-02 03:39:07.000 646 99547 50096.5 5009650 646 99547 50096.5 5009650 -32524 32614 4876.66 487666 -124 127 2.42 242 +647 2 10637 99548 1.94294 298.94294 150.44294 15044.29429 1.94294 298.94293 150.44294 15044.29425 1.94294 298.94294 150.44294 15044.29400 2020-01-01 2020-01-02 2020-01-01 00:10:47 2020-01-02 03:39:08 2020-01-01 00:10:47.000 2020-01-02 03:39:08.000 647 99548 50097.5 5009750 647 99548 50097.5 5009750 -32523 32615 4877.66 487766 -128 127 0.86 86 +648 2 10638 99549 1.94594 298.94594 150.44594 15044.59459 1.94594 298.94595 150.44595 15044.595 1.94594 298.94594 150.44593999999998 15044.59400 2020-01-01 2020-01-02 2020-01-01 00:10:48 2020-01-02 03:39:09 2020-01-01 00:10:48.000 2020-01-02 03:39:09.000 648 99549 50098.5 5009850 648 99549 50098.5 5009850 -32522 32616 4878.66 487866 -128 123 -0.7 -70 +649 2 10639 99550 1.94894 298.94894 150.44894 15044.89489 1.94894 298.94894 150.44894 15044.89467 1.94894 298.94894 150.44894 15044.89400 2020-01-01 2020-01-02 2020-01-01 00:10:49 2020-01-02 03:39:10 2020-01-01 00:10:49.000 2020-01-02 03:39:10.000 649 99550 50099.5 5009950 649 99550 50099.5 5009950 -32521 32617 4879.66 487966 -127 124 0.3 30 +65 2 10055 99965 0.19519 300.19519 150.19519 15169.71471 0.19519 300.1952 150.19519 15169.71448 0.19519 300.19519 150.19519 15169.71419 2020-01-01 2020-01-02 2020-01-01 00:01:05 2020-01-02 03:46:05 2020-01-01 00:01:05.000 2020-01-02 03:46:05.000 65 99965 50015 5051515 65 99965 50015 5051515 -32504 32431 4594.009900990099 463995 -124 127 1.2178217821782178 123 +650 2 10640 99551 1.95195 298.95195 150.45195 15045.19519 1.95195 298.95197 150.45195 15045.19525 1.95195 298.95195 150.45195 15045.19500 2020-01-01 2020-01-02 2020-01-01 00:10:50 2020-01-02 03:39:11 2020-01-01 00:10:50.000 2020-01-02 03:39:11.000 650 99551 50100.5 5010050 650 99551 50100.5 5010050 -32520 32618 4880.66 488066 -126 125 1.3 130 +651 2 10641 99552 1.95495 298.95495 150.45495 15045.49549 1.95495 298.95496 150.45495 15045.49558 1.95495 298.95495 150.45495 15045.49500 2020-01-01 2020-01-02 2020-01-01 00:10:51 2020-01-02 03:39:12 2020-01-01 00:10:51.000 2020-01-02 03:39:12.000 651 99552 50101.5 5010150 651 99552 50101.5 5010150 -32519 32619 4881.66 488166 -125 126 2.3 230 652 2 10642 99553 1.95795 298.95795 150.45795 15045.79579 1.95795 298.95795 150.45795 15045.79572 1.95795 298.95795 150.45795 15045.79500 2020-01-01 2020-01-02 2020-01-01 00:10:52 2020-01-02 03:39:13 2020-01-01 00:10:52.000 2020-01-02 03:39:13.000 652 99553 50102.5 5010250 652 99553 50102.5 5010250 -32518 32620 4882.66 488266 -124 127 3.3 330 -653 2 10643 99554 1.96096 298.96096 150.46096 15046.09609 1.96096 298.96097 150.46096 15046.09647 1.96096 298.96096 150.46096000000014 15046.09600 2020-01-01 2020-01-02 2020-01-01 00:10:53 2020-01-02 03:39:14 2020-01-01 00:10:53.000 2020-01-02 03:39:14.000 653 99554 50103.5 5010350 653 99554 50103.5 5010350 -32517 32621 4883.66 488366 -128 127 1.74 174 -654 2 10644 99555 1.96396 298.96396 150.46396 15046.39639 1.96396 298.96396 150.46396 15046.39613 1.96396 298.96396 150.46395999999982 15046.39600 2020-01-01 2020-01-02 2020-01-01 00:10:54 2020-01-02 03:39:15 2020-01-01 00:10:54.000 2020-01-02 03:39:15.000 654 99555 50104.5 5010450 654 99555 50104.5 5010450 -32516 32622 4884.66 488466 -128 123 0.18 18 -655 2 10645 99556 1.96696 298.96696 150.46696 15046.69669 1.96696 298.96698 150.46696 15046.69676 1.96696 298.96696 150.46695999999986 15046.69600 2020-01-01 2020-01-02 2020-01-01 00:10:55 2020-01-02 03:39:16 2020-01-01 00:10:55.000 2020-01-02 03:39:16.000 655 99556 50105.5 5010550 655 99556 50105.5 5010550 -32515 32623 4885.66 488566 -127 124 1.18 118 -656 2 10646 99557 1.96996 298.96996 150.46996 15046.99699 1.96997 298.96997 150.46997 15046.99706 1.96996 298.96996 150.46996000000016 15046.99600 2020-01-01 2020-01-02 2020-01-01 00:10:56 2020-01-02 03:39:17 2020-01-01 00:10:56.000 2020-01-02 03:39:17.000 656 99557 50106.5 5010650 656 99557 50106.5 5010650 -32514 32624 4886.66 488666 -126 125 2.18 218 -657 2 10647 99558 1.97297 298.97297 150.47297 15047.29729 1.97297 298.97296 150.47297 15047.29735 1.97297 298.97297 150.47297000000006 15047.29700 2020-01-01 2020-01-02 2020-01-01 00:10:57 2020-01-02 03:39:18 2020-01-01 00:10:57.000 2020-01-02 03:39:18.000 657 99558 50107.5 5010750 657 99558 50107.5 5010750 -32513 32625 4887.66 488766 -125 126 3.18 318 +653 2 10643 99554 1.96096 298.96096 150.46096 15046.09609 1.96096 298.96097 150.46096 15046.09647 1.96096 298.96096 150.46096 15046.09600 2020-01-01 2020-01-02 2020-01-01 00:10:53 2020-01-02 03:39:14 2020-01-01 00:10:53.000 2020-01-02 03:39:14.000 653 99554 50103.5 5010350 653 99554 50103.5 5010350 -32517 32621 4883.66 488366 -128 127 1.74 174 +654 2 10644 99555 1.96396 298.96396 150.46396 15046.39639 1.96396 298.96396 150.46396 15046.39613 1.96396 298.96396 150.46396000000001 15046.39600 2020-01-01 2020-01-02 2020-01-01 00:10:54 2020-01-02 03:39:15 2020-01-01 00:10:54.000 2020-01-02 03:39:15.000 654 99555 50104.5 5010450 654 99555 50104.5 5010450 -32516 32622 4884.66 488466 -128 123 0.18 18 +655 2 10645 99556 1.96696 298.96696 150.46696 15046.69669 1.96696 298.96698 150.46696 15046.69676 1.96696 298.96696 150.46696 15046.69600 2020-01-01 2020-01-02 2020-01-01 00:10:55 2020-01-02 03:39:16 2020-01-01 00:10:55.000 2020-01-02 03:39:16.000 655 99556 50105.5 5010550 655 99556 50105.5 5010550 -32515 32623 4885.66 488566 -127 124 1.18 118 +656 2 10646 99557 1.96996 298.96996 150.46996 15046.99699 1.96997 298.96997 150.46997 15046.99706 1.96996 298.96996 150.46996 15046.99600 2020-01-01 2020-01-02 2020-01-01 00:10:56 2020-01-02 03:39:17 2020-01-01 00:10:56.000 2020-01-02 03:39:17.000 656 99557 50106.5 5010650 656 99557 50106.5 5010650 -32514 32624 4886.66 488666 -126 125 2.18 218 +657 2 10647 99558 1.97297 298.97297 150.47297 15047.29729 1.97297 298.97296 150.47297 15047.29735 1.97297 298.97297 150.47297 15047.29700 2020-01-01 2020-01-02 2020-01-01 00:10:57 2020-01-02 03:39:18 2020-01-01 00:10:57.000 2020-01-02 03:39:18.000 657 99558 50107.5 5010750 657 99558 50107.5 5010750 -32513 32625 4887.66 488766 -125 126 3.18 318 658 2 10648 99559 1.97597 298.97597 150.47597 15047.59759 1.97597 298.97598 150.47597 15047.59794 1.97597 298.97597 150.47597 15047.59700 2020-01-01 2020-01-02 2020-01-01 00:10:58 2020-01-02 03:39:19 2020-01-01 00:10:58.000 2020-01-02 03:39:19.000 658 99559 50108.5 5010850 658 99559 50108.5 5010850 -32512 32626 4888.66 488866 -124 127 4.18 418 -659 2 10649 99560 1.97897 298.97897 150.47897 15047.89789 1.97897 298.97897 150.47897 15047.8976 1.97897 298.97897 150.4789700000001 15047.89700 2020-01-01 2020-01-02 2020-01-01 00:10:59 2020-01-02 03:39:20 2020-01-01 00:10:59.000 2020-01-02 03:39:20.000 659 99560 50109.5 5010950 659 99560 50109.5 5010950 -32511 32627 4889.66 488966 -128 127 2.62 262 -66 2 10056 99966 0.19819 300.19819 150.19819 15170.01801 0.19819 300.1982 150.19819 15170.01808 0.19819 300.19819 150.19818999999987 15170.01719 2020-01-01 2020-01-02 2020-01-01 00:01:06 2020-01-02 03:46:06 2020-01-01 00:01:06.000 2020-01-02 03:46:06.000 66 99966 50016 5051616 66 99966 50016 5051616 -32503 32432 4595.009900990099 464096 -128 127 -0.31683168316831684 -32 -660 2 10650 99561 1.98198 298.98198 150.48198 15048.19819 1.98198 298.982 150.48198 15048.19822 1.98198 298.98198 150.48197999999996 15048.19800 2020-01-01 2020-01-02 2020-01-01 00:11:00 2020-01-02 03:39:21 2020-01-01 00:11:00.000 2020-01-02 03:39:21.000 660 99561 50110.5 5011050 660 99561 50110.5 5011050 -32510 32628 4890.66 489066 -128 127 1.06 106 -661 2 10651 99562 1.98498 298.98498 150.48498 15048.49849 1.98498 298.985 150.48498 15048.49853 1.98498 298.98498 150.4849799999999 15048.49800 2020-01-01 2020-01-02 2020-01-01 00:11:01 2020-01-02 03:39:22 2020-01-01 00:11:01.000 2020-01-02 03:39:22.000 661 99562 50111.5 5011150 661 99562 50111.5 5011150 -32509 32629 4891.66 489166 -128 124 -0.5 -50 -662 2 10652 99563 1.98798 298.98798 150.48798 15048.79879 1.98798 298.98798 150.48798 15048.79882 1.98798 298.98798 150.4879799999999 15048.79800 2020-01-01 2020-01-02 2020-01-01 00:11:02 2020-01-02 03:39:23 2020-01-01 00:11:02.000 2020-01-02 03:39:23.000 662 99563 50112.5 5011250 662 99563 50112.5 5011250 -32508 32630 4892.66 489266 -127 125 0.5 50 -663 2 10653 99564 1.99099 298.99099 150.49099 15049.09909 1.99099 298.991 150.49099 15049.09942 1.99099 298.99099 150.49099000000015 15049.09900 2020-01-01 2020-01-02 2020-01-01 00:11:03 2020-01-02 03:39:24 2020-01-01 00:11:03.000 2020-01-02 03:39:24.000 663 99564 50113.5 5011350 663 99564 50113.5 5011350 -32507 32631 4893.66 489366 -126 126 1.5 150 -664 2 10654 99565 1.99399 298.99399 150.49399 15049.39939 1.99399 298.994 150.49399 15049.39911 1.99399 298.99399 150.49399000000014 15049.39900 2020-01-01 2020-01-02 2020-01-01 00:11:04 2020-01-02 03:39:25 2020-01-01 00:11:04.000 2020-01-02 03:39:25.000 664 99565 50114.5 5011450 664 99565 50114.5 5011450 -32506 32632 4894.66 489466 -125 127 2.5 250 -665 2 10655 99566 1.99699 298.99699 150.49699 15049.69969 1.99699 298.997 150.49699 15049.6997 1.99699 298.99699 150.4969899999998 15049.69900 2020-01-01 2020-01-02 2020-01-01 00:11:05 2020-01-02 03:39:26 2020-01-01 00:11:05.000 2020-01-02 03:39:26.000 665 99566 50115.5 5011550 665 99566 50115.5 5011550 -32505 32633 4895.66 489566 -128 127 0.94 94 +659 2 10649 99560 1.97897 298.97897 150.47897 15047.89789 1.97897 298.97897 150.47897 15047.8976 1.97897 298.97897 150.47897 15047.89700 2020-01-01 2020-01-02 2020-01-01 00:10:59 2020-01-02 03:39:20 2020-01-01 00:10:59.000 2020-01-02 03:39:20.000 659 99560 50109.5 5010950 659 99560 50109.5 5010950 -32511 32627 4889.66 488966 -128 127 2.62 262 +66 2 10056 99966 0.19819 300.19819 150.19819 15170.01801 0.19819 300.1982 150.19819 15170.01808 0.19819 300.19819 150.19819 15170.01719 2020-01-01 2020-01-02 2020-01-01 00:01:06 2020-01-02 03:46:06 2020-01-01 00:01:06.000 2020-01-02 03:46:06.000 66 99966 50016 5051616 66 99966 50016 5051616 -32503 32432 4595.009900990099 464096 -128 127 -0.31683168316831684 -32 +660 2 10650 99561 1.98198 298.98198 150.48198 15048.19819 1.98198 298.982 150.48198 15048.19822 1.98198 298.98198 150.48198 15048.19800 2020-01-01 2020-01-02 2020-01-01 00:11:00 2020-01-02 03:39:21 2020-01-01 00:11:00.000 2020-01-02 03:39:21.000 660 99561 50110.5 5011050 660 99561 50110.5 5011050 -32510 32628 4890.66 489066 -128 127 1.06 106 +661 2 10651 99562 1.98498 298.98498 150.48498 15048.49849 1.98498 298.985 150.48498 15048.49853 1.98498 298.98498 150.48498 15048.49800 2020-01-01 2020-01-02 2020-01-01 00:11:01 2020-01-02 03:39:22 2020-01-01 00:11:01.000 2020-01-02 03:39:22.000 661 99562 50111.5 5011150 661 99562 50111.5 5011150 -32509 32629 4891.66 489166 -128 124 -0.5 -50 +662 2 10652 99563 1.98798 298.98798 150.48798 15048.79879 1.98798 298.98798 150.48798 15048.79882 1.98798 298.98798 150.48798 15048.79800 2020-01-01 2020-01-02 2020-01-01 00:11:02 2020-01-02 03:39:23 2020-01-01 00:11:02.000 2020-01-02 03:39:23.000 662 99563 50112.5 5011250 662 99563 50112.5 5011250 -32508 32630 4892.66 489266 -127 125 0.5 50 +663 2 10653 99564 1.99099 298.99099 150.49099 15049.09909 1.99099 298.991 150.49099 15049.09942 1.99099 298.99099 150.49099 15049.09900 2020-01-01 2020-01-02 2020-01-01 00:11:03 2020-01-02 03:39:24 2020-01-01 00:11:03.000 2020-01-02 03:39:24.000 663 99564 50113.5 5011350 663 99564 50113.5 5011350 -32507 32631 4893.66 489366 -126 126 1.5 150 +664 2 10654 99565 1.99399 298.99399 150.49399 15049.39939 1.99399 298.994 150.49399 15049.39911 1.99399 298.99399 150.49399 15049.39900 2020-01-01 2020-01-02 2020-01-01 00:11:04 2020-01-02 03:39:25 2020-01-01 00:11:04.000 2020-01-02 03:39:25.000 664 99565 50114.5 5011450 664 99565 50114.5 5011450 -32506 32632 4894.66 489466 -125 127 2.5 250 +665 2 10655 99566 1.99699 298.99699 150.49699 15049.69969 1.99699 298.997 150.49699 15049.6997 1.99699 298.99699 150.49699 15049.69900 2020-01-01 2020-01-02 2020-01-01 00:11:05 2020-01-02 03:39:26 2020-01-01 00:11:05.000 2020-01-02 03:39:26.000 665 99566 50115.5 5011550 665 99566 50115.5 5011550 -32505 32633 4895.66 489566 -128 127 0.94 94 666 2 10656 99567 2 299 150.5 15050 2 299 150.5 15050 2.00000 299.00000 150.5 15050.00000 2020-01-01 2020-01-02 2020-01-01 00:11:06 2020-01-02 03:39:27 2020-01-01 00:11:06.000 2020-01-02 03:39:27.000 666 99567 50116.5 5011650 666 99567 50116.5 5011650 -32504 32634 4896.66 489666 -128 127 -0.62 -62 -667 2 10657 99568 2.003 299.003 150.503 15050.3003 2.003 299.003 150.503 15050.30029 2.00300 299.00300 150.50300000000004 15050.30000 2020-01-01 2020-01-02 2020-01-01 00:11:07 2020-01-02 03:39:28 2020-01-01 00:11:07.000 2020-01-02 03:39:28.000 667 99568 50117.5 5011750 667 99568 50117.5 5011750 -32503 32635 4897.66 489766 -128 123 -2.18 -218 -668 2 10658 99569 2.006 299.006 150.506 15050.6006 2.006 299.006 150.506 15050.60089 2.00600 299.00600 150.50599999999991 15050.60000 2020-01-01 2020-01-02 2020-01-01 00:11:08 2020-01-02 03:39:29 2020-01-01 00:11:08.000 2020-01-02 03:39:29.000 668 99569 50118.5 5011850 668 99569 50118.5 5011850 -32502 32636 4898.66 489866 -127 124 -1.18 -118 +667 2 10657 99568 2.003 299.003 150.503 15050.3003 2.003 299.003 150.503 15050.30029 2.00300 299.00300 150.503 15050.30000 2020-01-01 2020-01-02 2020-01-01 00:11:07 2020-01-02 03:39:28 2020-01-01 00:11:07.000 2020-01-02 03:39:28.000 667 99568 50117.5 5011750 667 99568 50117.5 5011750 -32503 32635 4897.66 489766 -128 123 -2.18 -218 +668 2 10658 99569 2.006 299.006 150.506 15050.6006 2.006 299.006 150.506 15050.60089 2.00600 299.00600 150.506 15050.60000 2020-01-01 2020-01-02 2020-01-01 00:11:08 2020-01-02 03:39:29 2020-01-01 00:11:08.000 2020-01-02 03:39:29.000 668 99569 50118.5 5011850 668 99569 50118.5 5011850 -32502 32636 4898.66 489866 -127 124 -1.18 -118 669 2 10659 99570 2.009 299.009 150.509 15050.9009 2.009 299.009 150.509 15050.90057 2.00900 299.00900 150.509 15050.90000 2020-01-01 2020-01-02 2020-01-01 00:11:09 2020-01-02 03:39:30 2020-01-01 00:11:09.000 2020-01-02 03:39:30.000 669 99570 50119.5 5011950 669 99570 50119.5 5011950 -32501 32637 4899.66 489966 -126 125 -0.18 -18 -67 2 10057 99967 0.2012 300.2012 150.2012 15170.32132 0.2012 300.2012 150.2012 15170.32142 0.20120 300.20120 150.20120000000003 15170.32120 2020-01-01 2020-01-02 2020-01-01 00:01:07 2020-01-02 03:46:07 2020-01-01 00:01:07.000 2020-01-02 03:46:07.000 67 99967 50017 5051717 67 99967 50017 5051717 -32502 32433 4596.009900990099 464197 -128 127 -1.8514851485148516 -187 -670 2 10660 99571 2.01201 299.01201 150.51201 15051.2012 2.01201 299.01202 150.51201 15051.20117 2.01201 299.01201 150.51201000000015 15051.20100 2020-01-01 2020-01-02 2020-01-01 00:11:10 2020-01-02 03:39:31 2020-01-01 00:11:10.000 2020-01-02 03:39:31.000 670 99571 50120.5 5012050 670 99571 50120.5 5012050 -32500 32638 4900.66 490066 -125 126 0.82 82 -671 2 10661 99572 2.01501 299.01501 150.51501 15051.5015 2.01501 299.015 150.51501 15051.50146 2.01501 299.01501 150.51500999999985 15051.50100 2020-01-01 2020-01-02 2020-01-01 00:11:11 2020-01-02 03:39:32 2020-01-01 00:11:11.000 2020-01-02 03:39:32.000 671 99572 50121.5 5012150 671 99572 50121.5 5012150 -32499 32639 4901.66 490166 -124 127 1.82 182 -672 2 10662 99573 2.01801 299.01801 150.51801 15051.8018 2.01801 299.018 150.51801 15051.80176 2.01801 299.01801 150.51800999999986 15051.80100 2020-01-01 2020-01-02 2020-01-01 00:11:12 2020-01-02 03:39:33 2020-01-01 00:11:12.000 2020-01-02 03:39:33.000 672 99573 50122.5 5012250 672 99573 50122.5 5012250 -32498 32640 4902.66 490266 -128 127 0.26 26 -673 2 10663 99574 2.02102 299.02102 150.52102 15052.1021 2.02102 299.02103 150.52102 15052.1024 2.02102 299.02102 150.5210200000001 15052.10200 2020-01-01 2020-01-02 2020-01-01 00:11:13 2020-01-02 03:39:34 2020-01-01 00:11:13.000 2020-01-02 03:39:34.000 673 99574 50123.5 5012350 673 99574 50123.5 5012350 -32497 32641 4903.66 490366 -128 123 -1.3 -130 -674 2 10664 99575 2.02402 299.02402 150.52402 15052.4024 2.02402 299.02402 150.52402 15052.40204 2.02402 299.02402 150.52402000000006 15052.40200 2020-01-01 2020-01-02 2020-01-01 00:11:14 2020-01-02 03:39:35 2020-01-01 00:11:14.000 2020-01-02 03:39:35.000 674 99575 50124.5 5012450 674 99575 50124.5 5012450 -32496 32642 4904.66 490466 -127 124 -0.3 -30 -675 2 10665 99576 2.02702 299.02702 150.52702 15052.7027 2.02702 299.02704 150.52702 15052.70264 2.02702 299.02702 150.5270199999999 15052.70200 2020-01-01 2020-01-02 2020-01-01 00:11:15 2020-01-02 03:39:36 2020-01-01 00:11:15.000 2020-01-02 03:39:36.000 675 99576 50125.5 5012550 675 99576 50125.5 5012550 -32495 32643 4905.66 490566 -126 125 0.7 70 -676 2 10666 99577 2.03003 299.03003 150.53003 15053.003 2.03003 299.03003 150.53002 15053.00293 2.03003 299.03003 150.53002999999993 15053.00300 2020-01-01 2020-01-02 2020-01-01 00:11:16 2020-01-02 03:39:37 2020-01-01 00:11:16.000 2020-01-02 03:39:37.000 676 99577 50126.5 5012650 676 99577 50126.5 5012650 -32494 32644 4906.66 490666 -125 126 1.7 170 +67 2 10057 99967 0.2012 300.2012 150.2012 15170.32132 0.2012 300.2012 150.2012 15170.32142 0.20120 300.20120 150.2012 15170.32120 2020-01-01 2020-01-02 2020-01-01 00:01:07 2020-01-02 03:46:07 2020-01-01 00:01:07.000 2020-01-02 03:46:07.000 67 99967 50017 5051717 67 99967 50017 5051717 -32502 32433 4596.009900990099 464197 -128 127 -1.8514851485148516 -187 +670 2 10660 99571 2.01201 299.01201 150.51201 15051.2012 2.01201 299.01202 150.51201 15051.20117 2.01201 299.01201 150.51201 15051.20100 2020-01-01 2020-01-02 2020-01-01 00:11:10 2020-01-02 03:39:31 2020-01-01 00:11:10.000 2020-01-02 03:39:31.000 670 99571 50120.5 5012050 670 99571 50120.5 5012050 -32500 32638 4900.66 490066 -125 126 0.82 82 +671 2 10661 99572 2.01501 299.01501 150.51501 15051.5015 2.01501 299.015 150.51501 15051.50146 2.01501 299.01501 150.51501 15051.50100 2020-01-01 2020-01-02 2020-01-01 00:11:11 2020-01-02 03:39:32 2020-01-01 00:11:11.000 2020-01-02 03:39:32.000 671 99572 50121.5 5012150 671 99572 50121.5 5012150 -32499 32639 4901.66 490166 -124 127 1.82 182 +672 2 10662 99573 2.01801 299.01801 150.51801 15051.8018 2.01801 299.018 150.51801 15051.80176 2.01801 299.01801 150.51801 15051.80100 2020-01-01 2020-01-02 2020-01-01 00:11:12 2020-01-02 03:39:33 2020-01-01 00:11:12.000 2020-01-02 03:39:33.000 672 99573 50122.5 5012250 672 99573 50122.5 5012250 -32498 32640 4902.66 490266 -128 127 0.26 26 +673 2 10663 99574 2.02102 299.02102 150.52102 15052.1021 2.02102 299.02103 150.52102 15052.1024 2.02102 299.02102 150.52102000000002 15052.10200 2020-01-01 2020-01-02 2020-01-01 00:11:13 2020-01-02 03:39:34 2020-01-01 00:11:13.000 2020-01-02 03:39:34.000 673 99574 50123.5 5012350 673 99574 50123.5 5012350 -32497 32641 4903.66 490366 -128 123 -1.3 -130 +674 2 10664 99575 2.02402 299.02402 150.52402 15052.4024 2.02402 299.02402 150.52402 15052.40204 2.02402 299.02402 150.52402 15052.40200 2020-01-01 2020-01-02 2020-01-01 00:11:14 2020-01-02 03:39:35 2020-01-01 00:11:14.000 2020-01-02 03:39:35.000 674 99575 50124.5 5012450 674 99575 50124.5 5012450 -32496 32642 4904.66 490466 -127 124 -0.3 -30 +675 2 10665 99576 2.02702 299.02702 150.52702 15052.7027 2.02702 299.02704 150.52702 15052.70264 2.02702 299.02702 150.52702 15052.70200 2020-01-01 2020-01-02 2020-01-01 00:11:15 2020-01-02 03:39:36 2020-01-01 00:11:15.000 2020-01-02 03:39:36.000 675 99576 50125.5 5012550 675 99576 50125.5 5012550 -32495 32643 4905.66 490566 -126 125 0.7 70 +676 2 10666 99577 2.03003 299.03003 150.53003 15053.003 2.03003 299.03003 150.53002 15053.00293 2.03003 299.03003 150.53003 15053.00300 2020-01-01 2020-01-02 2020-01-01 00:11:16 2020-01-02 03:39:37 2020-01-01 00:11:16.000 2020-01-02 03:39:37.000 676 99577 50126.5 5012650 676 99577 50126.5 5012650 -32494 32644 4906.66 490666 -125 126 1.7 170 677 2 10667 99578 2.03303 299.03303 150.53303 15053.3033 2.03303 299.03302 150.53303 15053.30323 2.03303 299.03303 150.53303 15053.30300 2020-01-01 2020-01-02 2020-01-01 00:11:17 2020-01-02 03:39:38 2020-01-01 00:11:17.000 2020-01-02 03:39:38.000 677 99578 50127.5 5012750 677 99578 50127.5 5012750 -32493 32645 4907.66 490766 -124 127 2.7 270 -678 2 10668 99579 2.03603 299.03603 150.53603 15053.6036 2.03603 299.03604 150.53603 15053.60387 2.03603 299.03603 150.53602999999993 15053.60300 2020-01-01 2020-01-02 2020-01-01 00:11:18 2020-01-02 03:39:39 2020-01-01 00:11:18.000 2020-01-02 03:39:39.000 678 99579 50128.5 5012850 678 99579 50128.5 5012850 -32492 32646 4908.66 490866 -128 127 1.14 114 -679 2 10669 99580 2.03903 299.03903 150.53903 15053.9039 2.03903 299.03903 150.53903 15053.90351 2.03903 299.03903 150.53902999999994 15053.90300 2020-01-01 2020-01-02 2020-01-01 00:11:19 2020-01-02 03:39:40 2020-01-01 00:11:19.000 2020-01-02 03:39:40.000 679 99580 50129.5 5012950 679 99580 50129.5 5012950 -32491 32647 4909.66 490966 -128 123 -0.42 -42 -68 2 10058 99968 0.2042 300.2042 150.2042 15170.62462 0.2042 300.2042 150.2042 15170.62457 0.20420 300.20420 150.2042000000001 15170.62420 2020-01-01 2020-01-02 2020-01-01 00:01:08 2020-01-02 03:46:08 2020-01-01 00:01:08.000 2020-01-02 03:46:08.000 68 99968 50018 5051818 68 99968 50018 5051818 -32501 32434 4597.009900990099 464298 -128 124 -3.386138613861386 -342 -680 2 10670 99581 2.04204 299.04204 150.54204 15054.2042 2.04204 299.04205 150.54204 15054.20426 2.04204 299.04204 150.5420400000001 15054.20400 2020-01-01 2020-01-02 2020-01-01 00:11:20 2020-01-02 03:39:41 2020-01-01 00:11:20.000 2020-01-02 03:39:41.000 680 99581 50130.5 5013050 680 99581 50130.5 5013050 -32490 32648 4910.66 491066 -127 124 0.58 58 -681 2 10671 99582 2.04504 299.04504 150.54504 15054.5045 2.04504 299.04504 150.54504 15054.5044 2.04504 299.04504 150.5450400000002 15054.50400 2020-01-01 2020-01-02 2020-01-01 00:11:21 2020-01-02 03:39:42 2020-01-01 00:11:21.000 2020-01-02 03:39:42.000 681 99582 50131.5 5013150 681 99582 50131.5 5013150 -32489 32649 4911.66 491166 -126 125 1.58 158 -682 2 10672 99583 2.04804 299.04804 150.54804 15054.8048 2.04804 299.04803 150.54804 15054.80474 2.04804 299.04804 150.54803999999984 15054.80400 2020-01-01 2020-01-02 2020-01-01 00:11:22 2020-01-02 03:39:43 2020-01-01 00:11:22.000 2020-01-02 03:39:43.000 682 99583 50132.5 5013250 682 99583 50132.5 5013250 -32488 32650 4912.66 491266 -125 126 2.58 258 +678 2 10668 99579 2.03603 299.03603 150.53603 15053.6036 2.03603 299.03604 150.53603 15053.60387 2.03603 299.03603 150.53602999999998 15053.60300 2020-01-01 2020-01-02 2020-01-01 00:11:18 2020-01-02 03:39:39 2020-01-01 00:11:18.000 2020-01-02 03:39:39.000 678 99579 50128.5 5012850 678 99579 50128.5 5012850 -32492 32646 4908.66 490866 -128 127 1.14 114 +679 2 10669 99580 2.03903 299.03903 150.53903 15053.9039 2.03903 299.03903 150.53903 15053.90351 2.03903 299.03903 150.53903 15053.90300 2020-01-01 2020-01-02 2020-01-01 00:11:19 2020-01-02 03:39:40 2020-01-01 00:11:19.000 2020-01-02 03:39:40.000 679 99580 50129.5 5012950 679 99580 50129.5 5012950 -32491 32647 4909.66 490966 -128 123 -0.42 -42 +68 2 10058 99968 0.2042 300.2042 150.2042 15170.62462 0.2042 300.2042 150.2042 15170.62457 0.20420 300.20420 150.20420000000001 15170.62420 2020-01-01 2020-01-02 2020-01-01 00:01:08 2020-01-02 03:46:08 2020-01-01 00:01:08.000 2020-01-02 03:46:08.000 68 99968 50018 5051818 68 99968 50018 5051818 -32501 32434 4597.009900990099 464298 -128 124 -3.386138613861386 -342 +680 2 10670 99581 2.04204 299.04204 150.54204 15054.2042 2.04204 299.04205 150.54204 15054.20426 2.04204 299.04204 150.54204 15054.20400 2020-01-01 2020-01-02 2020-01-01 00:11:20 2020-01-02 03:39:41 2020-01-01 00:11:20.000 2020-01-02 03:39:41.000 680 99581 50130.5 5013050 680 99581 50130.5 5013050 -32490 32648 4910.66 491066 -127 124 0.58 58 +681 2 10671 99582 2.04504 299.04504 150.54504 15054.5045 2.04504 299.04504 150.54504 15054.5044 2.04504 299.04504 150.54504 15054.50400 2020-01-01 2020-01-02 2020-01-01 00:11:21 2020-01-02 03:39:42 2020-01-01 00:11:21.000 2020-01-02 03:39:42.000 681 99582 50131.5 5013150 681 99582 50131.5 5013150 -32489 32649 4911.66 491166 -126 125 1.58 158 +682 2 10672 99583 2.04804 299.04804 150.54804 15054.8048 2.04804 299.04803 150.54804 15054.80474 2.04804 299.04804 150.54804000000001 15054.80400 2020-01-01 2020-01-02 2020-01-01 00:11:22 2020-01-02 03:39:43 2020-01-01 00:11:22.000 2020-01-02 03:39:43.000 682 99583 50132.5 5013250 682 99583 50132.5 5013250 -32488 32650 4912.66 491266 -125 126 2.58 258 683 2 10673 99584 2.05105 299.05105 150.55105 15055.1051 2.05105 299.05106 150.55105 15055.10533 2.05105 299.05105 150.55105 15055.10500 2020-01-01 2020-01-02 2020-01-01 00:11:23 2020-01-02 03:39:44 2020-01-01 00:11:23.000 2020-01-02 03:39:44.000 683 99584 50133.5 5013350 683 99584 50133.5 5013350 -32487 32651 4913.66 491366 -124 127 3.58 358 -684 2 10674 99585 2.05405 299.05405 150.55405 15055.4054 2.05405 299.05405 150.55404 15055.40498 2.05405 299.05405 150.55405000000013 15055.40500 2020-01-01 2020-01-02 2020-01-01 00:11:24 2020-01-02 03:39:45 2020-01-01 00:11:24.000 2020-01-02 03:39:45.000 684 99585 50134.5 5013450 684 99585 50134.5 5013450 -32486 32652 4914.66 491466 -128 127 2.02 202 -685 2 10675 99586 2.05705 299.05705 150.55705 15055.7057 2.05705 299.05707 150.55705 15055.70573 2.05705 299.05705 150.55704999999992 15055.70500 2020-01-01 2020-01-02 2020-01-01 00:11:25 2020-01-02 03:39:46 2020-01-01 00:11:25.000 2020-01-02 03:39:46.000 685 99586 50135.5 5013550 685 99586 50135.5 5013550 -32485 32653 4915.66 491566 -128 127 0.46 46 -686 2 10676 99587 2.06006 299.06006 150.56006 15056.006 2.06006 299.06006 150.56005 15056.00587 2.06006 299.06006 150.56005999999988 15056.00600 2020-01-01 2020-01-02 2020-01-01 00:11:26 2020-01-02 03:39:47 2020-01-01 00:11:26.000 2020-01-02 03:39:47.000 686 99587 50136.5 5013650 686 99587 50136.5 5013650 -32484 32654 4916.66 491666 -128 124 -1.1 -110 -687 2 10677 99588 2.06306 299.06306 150.56306 15056.3063 2.06306 299.06305 150.56306 15056.30621 2.06306 299.06306 150.5630600000002 15056.30600 2020-01-01 2020-01-02 2020-01-01 00:11:27 2020-01-02 03:39:48 2020-01-01 00:11:27.000 2020-01-02 03:39:48.000 687 99588 50137.5 5013750 687 99588 50137.5 5013750 -32483 32655 4917.66 491766 -127 125 -0.1 -10 -688 2 10678 99589 2.06606 299.06606 150.56606 15056.6066 2.06606 299.06607 150.56606 15056.60681 2.06606 299.06606 150.56605999999988 15056.60600 2020-01-01 2020-01-02 2020-01-01 00:11:28 2020-01-02 03:39:49 2020-01-01 00:11:28.000 2020-01-02 03:39:49.000 688 99589 50138.5 5013850 688 99589 50138.5 5013850 -32482 32656 4918.66 491866 -126 126 0.9 90 -689 2 10679 99590 2.06906 299.06906 150.56906 15056.9069 2.06906 299.06906 150.56907 15056.9071 2.06906 299.06906 150.56905999999987 15056.90600 2020-01-01 2020-01-02 2020-01-01 00:11:29 2020-01-02 03:39:50 2020-01-01 00:11:29.000 2020-01-02 03:39:50.000 689 99590 50139.5 5013950 689 99590 50139.5 5013950 -32481 32657 4919.66 491966 -125 127 1.9 190 -69 2 10059 99969 0.2072 300.2072 150.2072 15170.92792 0.2072 300.2072 150.20721 15170.92832 0.20720 300.20720 150.20720000000009 15170.92720 2020-01-01 2020-01-02 2020-01-01 00:01:09 2020-01-02 03:46:09 2020-01-01 00:01:09.000 2020-01-02 03:46:09.000 69 99969 50019 5051919 69 99969 50019 5051919 -32500 32435 4598.009900990099 464399 -127 125 -2.386138613861386 -241 -690 2 10680 99591 2.07207 299.07207 150.57207 15057.2072 2.07207 299.07208 150.57207 15057.2072 2.07207 299.07207 150.5720700000001 15057.20700 2020-01-01 2020-01-02 2020-01-01 00:11:30 2020-01-02 03:39:51 2020-01-01 00:11:30.000 2020-01-02 03:39:51.000 690 99591 50140.5 5014050 690 99591 50140.5 5014050 -32480 32658 4920.66 492066 -128 127 0.34 34 -691 2 10681 99592 2.07507 299.07507 150.57507 15057.5075 2.07507 299.07507 150.57507 15057.50734 2.07507 299.07507 150.57507000000012 15057.50700 2020-01-01 2020-01-02 2020-01-01 00:11:31 2020-01-02 03:39:52 2020-01-01 00:11:31.000 2020-01-02 03:39:52.000 691 99592 50141.5 5014150 691 99592 50141.5 5014150 -32479 32659 4921.66 492166 -128 127 -1.22 -122 -692 2 10682 99593 2.07807 299.07807 150.57807 15057.8078 2.07807 299.07806 150.57807 15057.80767 2.07807 299.07807 150.5780699999998 15057.80700 2020-01-01 2020-01-02 2020-01-01 00:11:32 2020-01-02 03:39:53 2020-01-01 00:11:32.000 2020-01-02 03:39:53.000 692 99593 50142.5 5014250 692 99593 50142.5 5014250 -32478 32660 4922.66 492266 -128 123 -2.78 -278 -693 2 10683 99594 2.08108 299.08108 150.58108 15058.1081 2.08108 299.0811 150.58108 15058.10827 2.08108 299.08108 150.58107999999996 15058.10800 2020-01-01 2020-01-02 2020-01-01 00:11:33 2020-01-02 03:39:54 2020-01-01 00:11:33.000 2020-01-02 03:39:54.000 693 99594 50143.5 5014350 693 99594 50143.5 5014350 -32477 32661 4923.66 492366 -127 124 -1.78 -178 -694 2 10684 99595 2.08408 299.08408 150.58408 15058.4084 2.08408 299.08408 150.58408 15058.40857 2.08408 299.08408 150.58408000000003 15058.40800 2020-01-01 2020-01-02 2020-01-01 00:11:34 2020-01-02 03:39:55 2020-01-01 00:11:34.000 2020-01-02 03:39:55.000 694 99595 50144.5 5014450 694 99595 50144.5 5014450 -32476 32662 4924.66 492466 -126 125 -0.78 -78 -695 2 10685 99596 2.08708 299.08708 150.58708 15058.7087 2.08708 299.0871 150.58708 15058.70867 2.08708 299.08708 150.5870799999999 15058.70800 2020-01-01 2020-01-02 2020-01-01 00:11:35 2020-01-02 03:39:56 2020-01-01 00:11:35.000 2020-01-02 03:39:56.000 695 99596 50145.5 5014550 695 99596 50145.5 5014550 -32475 32663 4925.66 492566 -125 126 0.22 22 -696 2 10686 99597 2.09009 299.09009 150.59009 15059.009 2.09009 299.0901 150.59008 15059.00885 2.09009 299.09009 150.59008999999986 15059.00900 2020-01-01 2020-01-02 2020-01-01 00:11:36 2020-01-02 03:39:57 2020-01-01 00:11:36.000 2020-01-02 03:39:57.000 696 99597 50146.5 5014650 696 99597 50146.5 5014650 -32474 32664 4926.66 492666 -124 127 1.22 122 -697 2 10687 99598 2.09309 299.09309 150.59309 15059.3093 2.09309 299.09308 150.59309 15059.30915 2.09309 299.09309 150.59309000000013 15059.30900 2020-01-01 2020-01-02 2020-01-01 00:11:37 2020-01-02 03:39:58 2020-01-01 00:11:37.000 2020-01-02 03:39:58.000 697 99598 50147.5 5014750 697 99598 50147.5 5014750 -32473 32665 4927.66 492766 -128 127 -0.34 -34 -698 2 10688 99599 2.09609 299.09609 150.59609 15059.6096 2.09609 299.0961 150.59609 15059.6099 2.09609 299.09609 150.5960899999998 15059.60900 2020-01-01 2020-01-02 2020-01-01 00:11:38 2020-01-02 03:39:59 2020-01-01 00:11:38.000 2020-01-02 03:39:59.000 698 99599 50148.5 5014850 698 99599 50148.5 5014850 -32472 32666 4928.66 492866 -128 123 -1.9 -190 -699 2 10689 99600 2.09909 299.09909 150.59909 15059.9099 2.09909 299.0991 150.5991 15059.91003 2.09909 299.09909 150.59908999999988 15059.90900 2020-01-01 2020-01-02 2020-01-01 00:11:39 2020-01-02 03:40:00 2020-01-01 00:11:39.000 2020-01-02 03:40:00.000 699 99600 50149.5 5014950 699 99600 50149.5 5014950 -32471 32667 4929.66 492966 -127 124 -0.9 -90 -7 2 1006 9997 0.02102 300.02102 150.02102 15152.12312 0.02102 300.02103 150.02102 15152.12342 0.02102 300.02102 150.0210200000001 15152.12302 2020-01-01 2020-01-02 2020-01-01 00:00:07 2020-01-02 03:45:07 2020-01-01 00:00:07.000 2020-01-02 03:45:07.000 7 99907 49957 5045657 7 99907 49957 5045657 -32562 32373 4536.009900990099 458137 -126 125 -1.0198019801980198 -103 -70 2 10060 99970 0.21021 300.21021 150.21021 15171.23123 0.21021 300.2102 150.2102 15171.23097 0.21021 300.21021 150.2102099999999 15171.23121 2020-01-01 2020-01-02 2020-01-01 00:01:10 2020-01-02 03:46:10 2020-01-01 00:01:10.000 2020-01-02 03:46:10.000 70 99970 50020 5052020 70 99970 50020 5052020 -32499 32436 4599.009900990099 464500 -126 126 -1.386138613861386 -140 -700 2 10690 99601 2.1021 299.1021 150.6021 15060.21021 2.1021 299.1021 150.6021 15060.21014 2.10210 299.10210 150.60210000000004 15060.21000 2020-01-01 2020-01-02 2020-01-01 00:11:40 2020-01-02 03:40:01 2020-01-01 00:11:40.000 2020-01-02 03:40:01.000 700 99601 50150.5 5015050 700 99601 50150.5 5015050 -32470 32668 4930.66 493066 -126 125 0.1 10 -701 2 10691 99602 2.1051 299.1051 150.6051 15060.51051 2.1051 299.1051 150.6051 15060.51031 2.10510 299.10510 150.60510000000005 15060.51000 2020-01-01 2020-01-02 2020-01-01 00:11:41 2020-01-02 03:40:02 2020-01-01 00:11:41.000 2020-01-02 03:40:02.000 701 99602 50151.5 5015150 701 99602 50151.5 5015150 -32469 32669 4931.66 493166 -125 126 1.1 110 -702 2 10692 99603 2.1081 299.1081 150.6081 15060.81081 2.1081 299.1081 150.6081 15060.81062 2.10810 299.10810 150.60809999999998 15060.81000 2020-01-01 2020-01-02 2020-01-01 00:11:42 2020-01-02 03:40:03 2020-01-01 00:11:42.000 2020-01-02 03:40:03.000 702 99603 50152.5 5015250 702 99603 50152.5 5015250 -32468 32670 4932.66 493266 -124 127 2.1 210 -703 2 10693 99604 2.11111 299.11111 150.61111 15061.11111 2.11111 299.1111 150.61111 15061.11137 2.11111 299.11111 150.61110999999988 15061.11100 2020-01-01 2020-01-02 2020-01-01 00:11:43 2020-01-02 03:40:04 2020-01-01 00:11:43.000 2020-01-02 03:40:04.000 703 99604 50153.5 5015350 703 99604 50153.5 5015350 -32467 32671 4933.66 493366 -128 127 0.54 54 -704 2 10694 99605 2.11411 299.11411 150.61411 15061.41141 2.11411 299.1141 150.61411 15061.41151 2.11411 299.11411 150.6141100000002 15061.41100 2020-01-01 2020-01-02 2020-01-01 00:11:44 2020-01-02 03:40:05 2020-01-01 00:11:44.000 2020-01-02 03:40:05.000 704 99605 50154.5 5015450 704 99605 50154.5 5015450 -32466 32672 4934.66 493466 -128 123 -1.02 -102 -705 2 10695 99606 2.11711 299.11711 150.61711 15061.71171 2.11711 299.11713 150.61711 15061.71165 2.11711 299.11711 150.6171099999999 15061.71100 2020-01-01 2020-01-02 2020-01-01 00:11:45 2020-01-02 03:40:06 2020-01-01 00:11:45.000 2020-01-02 03:40:06.000 705 99606 50155.5 5015550 705 99606 50155.5 5015550 -32465 32673 4935.66 493566 -127 124 -0.02 -2 -706 2 10696 99607 2.12012 299.12012 150.62012 15062.01201 2.12012 299.12012 150.62011 15062.01179 2.12012 299.12012 150.6201199999998 15062.01200 2020-01-01 2020-01-02 2020-01-01 00:11:46 2020-01-02 03:40:07 2020-01-01 00:11:46.000 2020-01-02 03:40:07.000 706 99607 50156.5 5015650 706 99607 50156.5 5015650 -32464 32674 4936.66 493666 -126 125 0.98 98 -707 2 10697 99608 2.12312 299.12312 150.62312 15062.31231 2.12312 299.1231 150.62312 15062.31208 2.12312 299.12312 150.62312000000014 15062.31200 2020-01-01 2020-01-02 2020-01-01 00:11:47 2020-01-02 03:40:08 2020-01-01 00:11:47.000 2020-01-02 03:40:08.000 707 99608 50157.5 5015750 707 99608 50157.5 5015750 -32463 32675 4937.66 493766 -125 126 1.98 198 -708 2 10698 99609 2.12612 299.12612 150.62612 15062.61261 2.12612 299.12613 150.62612 15062.61283 2.12612 299.12612 150.62612000000013 15062.61200 2020-01-01 2020-01-02 2020-01-01 00:11:48 2020-01-02 03:40:09 2020-01-01 00:11:48.000 2020-01-02 03:40:09.000 708 99609 50158.5 5015850 708 99609 50158.5 5015850 -32462 32676 4938.66 493866 -124 127 2.98 298 -709 2 10699 99610 2.12912 299.12912 150.62912 15062.91291 2.12912 299.12912 150.62912 15062.91298 2.12912 299.12912 150.6291199999998 15062.91200 2020-01-01 2020-01-02 2020-01-01 00:11:49 2020-01-02 03:40:10 2020-01-01 00:11:49.000 2020-01-02 03:40:10.000 709 99610 50159.5 5015950 709 99610 50159.5 5015950 -32461 32677 4939.66 493966 -128 127 1.42 142 -71 2 10061 99971 0.21321 300.21321 150.21321 15171.53453 0.21321 300.21323 150.21321 15171.5346 0.21321 300.21321 150.21320999999992 15171.53421 2020-01-01 2020-01-02 2020-01-01 00:01:11 2020-01-02 03:46:11 2020-01-01 00:01:11.000 2020-01-02 03:46:11.000 71 99971 50021 5052121 71 99971 50021 5052121 -32498 32437 4600.009900990099 464601 -125 127 -0.38613861386138615 -39 +684 2 10674 99585 2.05405 299.05405 150.55405 15055.4054 2.05405 299.05405 150.55404 15055.40498 2.05405 299.05405 150.55405000000002 15055.40500 2020-01-01 2020-01-02 2020-01-01 00:11:24 2020-01-02 03:39:45 2020-01-01 00:11:24.000 2020-01-02 03:39:45.000 684 99585 50134.5 5013450 684 99585 50134.5 5013450 -32486 32652 4914.66 491466 -128 127 2.02 202 +685 2 10675 99586 2.05705 299.05705 150.55705 15055.7057 2.05705 299.05707 150.55705 15055.70573 2.05705 299.05705 150.55705 15055.70500 2020-01-01 2020-01-02 2020-01-01 00:11:25 2020-01-02 03:39:46 2020-01-01 00:11:25.000 2020-01-02 03:39:46.000 685 99586 50135.5 5013550 685 99586 50135.5 5013550 -32485 32653 4915.66 491566 -128 127 0.46 46 +686 2 10676 99587 2.06006 299.06006 150.56006 15056.006 2.06006 299.06006 150.56005 15056.00587 2.06006 299.06006 150.56006 15056.00600 2020-01-01 2020-01-02 2020-01-01 00:11:26 2020-01-02 03:39:47 2020-01-01 00:11:26.000 2020-01-02 03:39:47.000 686 99587 50136.5 5013650 686 99587 50136.5 5013650 -32484 32654 4916.66 491666 -128 124 -1.1 -110 +687 2 10677 99588 2.06306 299.06306 150.56306 15056.3063 2.06306 299.06305 150.56306 15056.30621 2.06306 299.06306 150.56306 15056.30600 2020-01-01 2020-01-02 2020-01-01 00:11:27 2020-01-02 03:39:48 2020-01-01 00:11:27.000 2020-01-02 03:39:48.000 687 99588 50137.5 5013750 687 99588 50137.5 5013750 -32483 32655 4917.66 491766 -127 125 -0.1 -10 +688 2 10678 99589 2.06606 299.06606 150.56606 15056.6066 2.06606 299.06607 150.56606 15056.60681 2.06606 299.06606 150.56606 15056.60600 2020-01-01 2020-01-02 2020-01-01 00:11:28 2020-01-02 03:39:49 2020-01-01 00:11:28.000 2020-01-02 03:39:49.000 688 99589 50138.5 5013850 688 99589 50138.5 5013850 -32482 32656 4918.66 491866 -126 126 0.9 90 +689 2 10679 99590 2.06906 299.06906 150.56906 15056.9069 2.06906 299.06906 150.56907 15056.9071 2.06906 299.06906 150.56906 15056.90600 2020-01-01 2020-01-02 2020-01-01 00:11:29 2020-01-02 03:39:50 2020-01-01 00:11:29.000 2020-01-02 03:39:50.000 689 99590 50139.5 5013950 689 99590 50139.5 5013950 -32481 32657 4919.66 491966 -125 127 1.9 190 +69 2 10059 99969 0.2072 300.2072 150.2072 15170.92792 0.2072 300.2072 150.20721 15170.92832 0.20720 300.20720 150.2072 15170.92720 2020-01-01 2020-01-02 2020-01-01 00:01:09 2020-01-02 03:46:09 2020-01-01 00:01:09.000 2020-01-02 03:46:09.000 69 99969 50019 5051919 69 99969 50019 5051919 -32500 32435 4598.009900990099 464399 -127 125 -2.386138613861386 -241 +690 2 10680 99591 2.07207 299.07207 150.57207 15057.2072 2.07207 299.07208 150.57207 15057.2072 2.07207 299.07207 150.57207 15057.20700 2020-01-01 2020-01-02 2020-01-01 00:11:30 2020-01-02 03:39:51 2020-01-01 00:11:30.000 2020-01-02 03:39:51.000 690 99591 50140.5 5014050 690 99591 50140.5 5014050 -32480 32658 4920.66 492066 -128 127 0.34 34 +691 2 10681 99592 2.07507 299.07507 150.57507 15057.5075 2.07507 299.07507 150.57507 15057.50734 2.07507 299.07507 150.57506999999998 15057.50700 2020-01-01 2020-01-02 2020-01-01 00:11:31 2020-01-02 03:39:52 2020-01-01 00:11:31.000 2020-01-02 03:39:52.000 691 99592 50141.5 5014150 691 99592 50141.5 5014150 -32479 32659 4921.66 492166 -128 127 -1.22 -122 +692 2 10682 99593 2.07807 299.07807 150.57807 15057.8078 2.07807 299.07806 150.57807 15057.80767 2.07807 299.07807 150.57807 15057.80700 2020-01-01 2020-01-02 2020-01-01 00:11:32 2020-01-02 03:39:53 2020-01-01 00:11:32.000 2020-01-02 03:39:53.000 692 99593 50142.5 5014250 692 99593 50142.5 5014250 -32478 32660 4922.66 492266 -128 123 -2.78 -278 +693 2 10683 99594 2.08108 299.08108 150.58108 15058.1081 2.08108 299.0811 150.58108 15058.10827 2.08108 299.08108 150.58108000000001 15058.10800 2020-01-01 2020-01-02 2020-01-01 00:11:33 2020-01-02 03:39:54 2020-01-01 00:11:33.000 2020-01-02 03:39:54.000 693 99594 50143.5 5014350 693 99594 50143.5 5014350 -32477 32661 4923.66 492366 -127 124 -1.78 -178 +694 2 10684 99595 2.08408 299.08408 150.58408 15058.4084 2.08408 299.08408 150.58408 15058.40857 2.08408 299.08408 150.58408 15058.40800 2020-01-01 2020-01-02 2020-01-01 00:11:34 2020-01-02 03:39:55 2020-01-01 00:11:34.000 2020-01-02 03:39:55.000 694 99595 50144.5 5014450 694 99595 50144.5 5014450 -32476 32662 4924.66 492466 -126 125 -0.78 -78 +695 2 10685 99596 2.08708 299.08708 150.58708 15058.7087 2.08708 299.0871 150.58708 15058.70867 2.08708 299.08708 150.58708000000001 15058.70800 2020-01-01 2020-01-02 2020-01-01 00:11:35 2020-01-02 03:39:56 2020-01-01 00:11:35.000 2020-01-02 03:39:56.000 695 99596 50145.5 5014550 695 99596 50145.5 5014550 -32475 32663 4925.66 492566 -125 126 0.22 22 +696 2 10686 99597 2.09009 299.09009 150.59009 15059.009 2.09009 299.0901 150.59008 15059.00885 2.09009 299.09009 150.59009 15059.00900 2020-01-01 2020-01-02 2020-01-01 00:11:36 2020-01-02 03:39:57 2020-01-01 00:11:36.000 2020-01-02 03:39:57.000 696 99597 50146.5 5014650 696 99597 50146.5 5014650 -32474 32664 4926.66 492666 -124 127 1.22 122 +697 2 10687 99598 2.09309 299.09309 150.59309 15059.3093 2.09309 299.09308 150.59309 15059.30915 2.09309 299.09309 150.59309 15059.30900 2020-01-01 2020-01-02 2020-01-01 00:11:37 2020-01-02 03:39:58 2020-01-01 00:11:37.000 2020-01-02 03:39:58.000 697 99598 50147.5 5014750 697 99598 50147.5 5014750 -32473 32665 4927.66 492766 -128 127 -0.34 -34 +698 2 10688 99599 2.09609 299.09609 150.59609 15059.6096 2.09609 299.0961 150.59609 15059.6099 2.09609 299.09609 150.59609 15059.60900 2020-01-01 2020-01-02 2020-01-01 00:11:38 2020-01-02 03:39:59 2020-01-01 00:11:38.000 2020-01-02 03:39:59.000 698 99599 50148.5 5014850 698 99599 50148.5 5014850 -32472 32666 4928.66 492866 -128 123 -1.9 -190 +699 2 10689 99600 2.09909 299.09909 150.59909 15059.9099 2.09909 299.0991 150.5991 15059.91003 2.09909 299.09909 150.59909 15059.90900 2020-01-01 2020-01-02 2020-01-01 00:11:39 2020-01-02 03:40:00 2020-01-01 00:11:39.000 2020-01-02 03:40:00.000 699 99600 50149.5 5014950 699 99600 50149.5 5014950 -32471 32667 4929.66 492966 -127 124 -0.9 -90 +7 2 1006 9997 0.02102 300.02102 150.02102 15152.12312 0.02102 300.02103 150.02102 15152.12342 0.02102 300.02102 150.02102000000002 15152.12302 2020-01-01 2020-01-02 2020-01-01 00:00:07 2020-01-02 03:45:07 2020-01-01 00:00:07.000 2020-01-02 03:45:07.000 7 99907 49957 5045657 7 99907 49957 5045657 -32562 32373 4536.009900990099 458137 -126 125 -1.0198019801980198 -103 +70 2 10060 99970 0.21021 300.21021 150.21021 15171.23123 0.21021 300.2102 150.2102 15171.23097 0.21021 300.21021 150.21021 15171.23121 2020-01-01 2020-01-02 2020-01-01 00:01:10 2020-01-02 03:46:10 2020-01-01 00:01:10.000 2020-01-02 03:46:10.000 70 99970 50020 5052020 70 99970 50020 5052020 -32499 32436 4599.009900990099 464500 -126 126 -1.386138613861386 -140 +700 2 10690 99601 2.1021 299.1021 150.6021 15060.21021 2.1021 299.1021 150.6021 15060.21014 2.10210 299.10210 150.60209999999998 15060.21000 2020-01-01 2020-01-02 2020-01-01 00:11:40 2020-01-02 03:40:01 2020-01-01 00:11:40.000 2020-01-02 03:40:01.000 700 99601 50150.5 5015050 700 99601 50150.5 5015050 -32470 32668 4930.66 493066 -126 125 0.1 10 +701 2 10691 99602 2.1051 299.1051 150.6051 15060.51051 2.1051 299.1051 150.6051 15060.51031 2.10510 299.10510 150.6051 15060.51000 2020-01-01 2020-01-02 2020-01-01 00:11:41 2020-01-02 03:40:02 2020-01-01 00:11:41.000 2020-01-02 03:40:02.000 701 99602 50151.5 5015150 701 99602 50151.5 5015150 -32469 32669 4931.66 493166 -125 126 1.1 110 +702 2 10692 99603 2.1081 299.1081 150.6081 15060.81081 2.1081 299.1081 150.6081 15060.81062 2.10810 299.10810 150.6081 15060.81000 2020-01-01 2020-01-02 2020-01-01 00:11:42 2020-01-02 03:40:03 2020-01-01 00:11:42.000 2020-01-02 03:40:03.000 702 99603 50152.5 5015250 702 99603 50152.5 5015250 -32468 32670 4932.66 493266 -124 127 2.1 210 +703 2 10693 99604 2.11111 299.11111 150.61111 15061.11111 2.11111 299.1111 150.61111 15061.11137 2.11111 299.11111 150.61111 15061.11100 2020-01-01 2020-01-02 2020-01-01 00:11:43 2020-01-02 03:40:04 2020-01-01 00:11:43.000 2020-01-02 03:40:04.000 703 99604 50153.5 5015350 703 99604 50153.5 5015350 -32467 32671 4933.66 493366 -128 127 0.54 54 +704 2 10694 99605 2.11411 299.11411 150.61411 15061.41141 2.11411 299.1141 150.61411 15061.41151 2.11411 299.11411 150.61411 15061.41100 2020-01-01 2020-01-02 2020-01-01 00:11:44 2020-01-02 03:40:05 2020-01-01 00:11:44.000 2020-01-02 03:40:05.000 704 99605 50154.5 5015450 704 99605 50154.5 5015450 -32466 32672 4934.66 493466 -128 123 -1.02 -102 +705 2 10695 99606 2.11711 299.11711 150.61711 15061.71171 2.11711 299.11713 150.61711 15061.71165 2.11711 299.11711 150.61711 15061.71100 2020-01-01 2020-01-02 2020-01-01 00:11:45 2020-01-02 03:40:06 2020-01-01 00:11:45.000 2020-01-02 03:40:06.000 705 99606 50155.5 5015550 705 99606 50155.5 5015550 -32465 32673 4935.66 493566 -127 124 -0.02 -2 +706 2 10696 99607 2.12012 299.12012 150.62012 15062.01201 2.12012 299.12012 150.62011 15062.01179 2.12012 299.12012 150.62012000000001 15062.01200 2020-01-01 2020-01-02 2020-01-01 00:11:46 2020-01-02 03:40:07 2020-01-01 00:11:46.000 2020-01-02 03:40:07.000 706 99607 50156.5 5015650 706 99607 50156.5 5015650 -32464 32674 4936.66 493666 -126 125 0.98 98 +707 2 10697 99608 2.12312 299.12312 150.62312 15062.31231 2.12312 299.1231 150.62312 15062.31208 2.12312 299.12312 150.62312 15062.31200 2020-01-01 2020-01-02 2020-01-01 00:11:47 2020-01-02 03:40:08 2020-01-01 00:11:47.000 2020-01-02 03:40:08.000 707 99608 50157.5 5015750 707 99608 50157.5 5015750 -32463 32675 4937.66 493766 -125 126 1.98 198 +708 2 10698 99609 2.12612 299.12612 150.62612 15062.61261 2.12612 299.12613 150.62612 15062.61283 2.12612 299.12612 150.62612 15062.61200 2020-01-01 2020-01-02 2020-01-01 00:11:48 2020-01-02 03:40:09 2020-01-01 00:11:48.000 2020-01-02 03:40:09.000 708 99609 50158.5 5015850 708 99609 50158.5 5015850 -32462 32676 4938.66 493866 -124 127 2.98 298 +709 2 10699 99610 2.12912 299.12912 150.62912 15062.91291 2.12912 299.12912 150.62912 15062.91298 2.12912 299.12912 150.62912 15062.91200 2020-01-01 2020-01-02 2020-01-01 00:11:49 2020-01-02 03:40:10 2020-01-01 00:11:49.000 2020-01-02 03:40:10.000 709 99610 50159.5 5015950 709 99610 50159.5 5015950 -32461 32677 4939.66 493966 -128 127 1.42 142 +71 2 10061 99971 0.21321 300.21321 150.21321 15171.53453 0.21321 300.21323 150.21321 15171.5346 0.21321 300.21321 150.21321 15171.53421 2020-01-01 2020-01-02 2020-01-01 00:01:11 2020-01-02 03:46:11 2020-01-01 00:01:11.000 2020-01-02 03:46:11.000 71 99971 50021 5052121 71 99971 50021 5052121 -32498 32437 4600.009900990099 464601 -125 127 -0.38613861386138615 -39 710 2 10700 99611 2.13213 299.13213 150.63213 15063.21321 2.13213 299.13214 150.63213 15063.21311 2.13213 299.13213 150.63213 15063.21300 2020-01-01 2020-01-02 2020-01-01 00:11:50 2020-01-02 03:40:11 2020-01-01 00:11:50.000 2020-01-02 03:40:11.000 710 99611 50160.5 5016050 710 99611 50160.5 5016050 -32460 32678 4940.66 494066 -128 127 -0.14 -14 -711 2 10701 99612 2.13513 299.13513 150.63513 15063.51351 2.13513 299.13513 150.63513 15063.51325 2.13513 299.13513 150.63513000000006 15063.51300 2020-01-01 2020-01-02 2020-01-01 00:11:51 2020-01-02 03:40:12 2020-01-01 00:11:51.000 2020-01-02 03:40:12.000 711 99612 50161.5 5016150 711 99612 50161.5 5016150 -32459 32679 4941.66 494166 -128 124 -1.7 -170 -712 2 10702 99613 2.13813 299.13813 150.63813 15063.81381 2.13813 299.13815 150.63814 15063.81401 2.13813 299.13813 150.6381299999999 15063.81300 2020-01-01 2020-01-02 2020-01-01 00:11:52 2020-01-02 03:40:13 2020-01-01 00:11:52.000 2020-01-02 03:40:13.000 712 99613 50162.5 5016250 712 99613 50162.5 5016250 -32458 32680 4942.66 494266 -127 125 -0.7 -70 -713 2 10703 99614 2.14114 299.14114 150.64114 15064.11411 2.14114 299.14114 150.64114 15064.11431 2.14114 299.14114 150.6411399999999 15064.11400 2020-01-01 2020-01-02 2020-01-01 00:11:53 2020-01-02 03:40:14 2020-01-01 00:11:53.000 2020-01-02 03:40:14.000 713 99614 50163.5 5016350 713 99614 50163.5 5016350 -32457 32681 4943.66 494366 -126 126 0.3 30 -714 2 10704 99615 2.14414 299.14414 150.64414 15064.41441 2.14414 299.14413 150.64414 15064.41448 2.14414 299.14414 150.64414000000014 15064.41400 2020-01-01 2020-01-02 2020-01-01 00:11:54 2020-01-02 03:40:15 2020-01-01 00:11:54.000 2020-01-02 03:40:15.000 714 99615 50164.5 5016450 714 99615 50164.5 5016450 -32456 32682 4944.66 494466 -125 127 1.3 130 -715 2 10705 99616 2.14714 299.14714 150.64714 15064.71471 2.14714 299.14716 150.64714 15064.71458 2.14714 299.14714 150.6471399999998 15064.71400 2020-01-01 2020-01-02 2020-01-01 00:11:55 2020-01-02 03:40:16 2020-01-01 00:11:55.000 2020-01-02 03:40:16.000 715 99616 50165.5 5016550 715 99616 50165.5 5016550 -32455 32683 4945.66 494566 -128 127 -0.26 -26 -716 2 10706 99617 2.15015 299.15015 150.65015 15065.01501 2.15015 299.15015 150.65014 15065.01472 2.15015 299.15015 150.65015000000002 15065.01500 2020-01-01 2020-01-02 2020-01-01 00:11:56 2020-01-02 03:40:17 2020-01-01 00:11:56.000 2020-01-02 03:40:17.000 716 99617 50166.5 5016650 716 99617 50166.5 5016650 -32454 32684 4946.66 494666 -128 127 -1.82 -182 -717 2 10707 99618 2.15315 299.15315 150.65315 15065.31531 2.15315 299.15317 150.65315 15065.31547 2.15315 299.15315 150.65315000000007 15065.31500 2020-01-01 2020-01-02 2020-01-01 00:11:57 2020-01-02 03:40:18 2020-01-01 00:11:57.000 2020-01-02 03:40:18.000 717 99618 50167.5 5016750 717 99618 50167.5 5016750 -32453 32685 4947.66 494766 -128 123 -3.38 -338 -718 2 10708 99619 2.15615 299.15615 150.65615 15065.61561 2.15615 299.15616 150.65615 15065.61578 2.15615 299.15615 150.65615000000005 15065.61500 2020-01-01 2020-01-02 2020-01-01 00:11:58 2020-01-02 03:40:19 2020-01-01 00:11:58.000 2020-01-02 03:40:19.000 718 99619 50168.5 5016850 718 99619 50168.5 5016850 -32452 32686 4948.66 494866 -127 124 -2.38 -238 +711 2 10701 99612 2.13513 299.13513 150.63513 15063.51351 2.13513 299.13513 150.63513 15063.51325 2.13513 299.13513 150.63513 15063.51300 2020-01-01 2020-01-02 2020-01-01 00:11:51 2020-01-02 03:40:12 2020-01-01 00:11:51.000 2020-01-02 03:40:12.000 711 99612 50161.5 5016150 711 99612 50161.5 5016150 -32459 32679 4941.66 494166 -128 124 -1.7 -170 +712 2 10702 99613 2.13813 299.13813 150.63813 15063.81381 2.13813 299.13815 150.63814 15063.81401 2.13813 299.13813 150.63813 15063.81300 2020-01-01 2020-01-02 2020-01-01 00:11:52 2020-01-02 03:40:13 2020-01-01 00:11:52.000 2020-01-02 03:40:13.000 712 99613 50162.5 5016250 712 99613 50162.5 5016250 -32458 32680 4942.66 494266 -127 125 -0.7 -70 +713 2 10703 99614 2.14114 299.14114 150.64114 15064.11411 2.14114 299.14114 150.64114 15064.11431 2.14114 299.14114 150.64114 15064.11400 2020-01-01 2020-01-02 2020-01-01 00:11:53 2020-01-02 03:40:14 2020-01-01 00:11:53.000 2020-01-02 03:40:14.000 713 99614 50163.5 5016350 713 99614 50163.5 5016350 -32457 32681 4943.66 494366 -126 126 0.3 30 +714 2 10704 99615 2.14414 299.14414 150.64414 15064.41441 2.14414 299.14413 150.64414 15064.41448 2.14414 299.14414 150.64414 15064.41400 2020-01-01 2020-01-02 2020-01-01 00:11:54 2020-01-02 03:40:15 2020-01-01 00:11:54.000 2020-01-02 03:40:15.000 714 99615 50164.5 5016450 714 99615 50164.5 5016450 -32456 32682 4944.66 494466 -125 127 1.3 130 +715 2 10705 99616 2.14714 299.14714 150.64714 15064.71471 2.14714 299.14716 150.64714 15064.71458 2.14714 299.14714 150.64714 15064.71400 2020-01-01 2020-01-02 2020-01-01 00:11:55 2020-01-02 03:40:16 2020-01-01 00:11:55.000 2020-01-02 03:40:16.000 715 99616 50165.5 5016550 715 99616 50165.5 5016550 -32455 32683 4945.66 494566 -128 127 -0.26 -26 +716 2 10706 99617 2.15015 299.15015 150.65015 15065.01501 2.15015 299.15015 150.65014 15065.01472 2.15015 299.15015 150.65015 15065.01500 2020-01-01 2020-01-02 2020-01-01 00:11:56 2020-01-02 03:40:17 2020-01-01 00:11:56.000 2020-01-02 03:40:17.000 716 99617 50166.5 5016650 716 99617 50166.5 5016650 -32454 32684 4946.66 494666 -128 127 -1.82 -182 +717 2 10707 99618 2.15315 299.15315 150.65315 15065.31531 2.15315 299.15317 150.65315 15065.31547 2.15315 299.15315 150.65315 15065.31500 2020-01-01 2020-01-02 2020-01-01 00:11:57 2020-01-02 03:40:18 2020-01-01 00:11:57.000 2020-01-02 03:40:18.000 717 99618 50167.5 5016750 717 99618 50167.5 5016750 -32453 32685 4947.66 494766 -128 123 -3.38 -338 +718 2 10708 99619 2.15615 299.15615 150.65615 15065.61561 2.15615 299.15616 150.65615 15065.61578 2.15615 299.15615 150.65615 15065.61500 2020-01-01 2020-01-02 2020-01-01 00:11:58 2020-01-02 03:40:19 2020-01-01 00:11:58.000 2020-01-02 03:40:19.000 718 99619 50168.5 5016850 718 99619 50168.5 5016850 -32452 32686 4948.66 494866 -127 124 -2.38 -238 719 2 10709 99620 2.15915 299.15915 150.65915 15065.91591 2.15915 299.15915 150.65915 15065.91595 2.15915 299.15915 150.65915 15065.91500 2020-01-01 2020-01-02 2020-01-01 00:11:59 2020-01-02 03:40:20 2020-01-01 00:11:59.000 2020-01-02 03:40:20.000 719 99620 50169.5 5016950 719 99620 50169.5 5016950 -32451 32687 4949.66 494966 -126 125 -1.38 -138 72 2 10062 99972 0.21621 300.21621 150.21621 15171.83783 0.21621 300.21622 150.21621 15171.83791 0.21621 300.21621 150.21621 15171.83721 2020-01-01 2020-01-02 2020-01-01 00:01:12 2020-01-02 03:46:12 2020-01-01 00:01:12.000 2020-01-02 03:46:12.000 72 99972 50022 5052222 72 99972 50022 5052222 -32497 32438 4601.009900990099 464702 -128 127 -1.9207920792079207 -194 -720 2 10710 99621 2.16216 299.16216 150.66216 15066.21621 2.16216 299.16217 150.66216 15066.21606 2.16216 299.16216 150.6621599999999 15066.21600 2020-01-01 2020-01-02 2020-01-01 00:12:00 2020-01-02 03:40:21 2020-01-01 00:12:00.000 2020-01-02 03:40:21.000 720 99621 50170.5 5017050 720 99621 50170.5 5017050 -32450 32688 4950.66 495066 -125 126 -0.38 -38 -721 2 10711 99622 2.16516 299.16516 150.66516 15066.51651 2.16516 299.16516 150.66516 15066.51635 2.16516 299.16516 150.66515999999996 15066.51600 2020-01-01 2020-01-02 2020-01-01 00:12:01 2020-01-02 03:40:22 2020-01-01 00:12:01.000 2020-01-02 03:40:22.000 721 99622 50171.5 5017150 721 99622 50171.5 5017150 -32449 32689 4951.66 495166 -124 127 0.62 62 -722 2 10712 99623 2.16816 299.16816 150.66816 15066.81681 2.16816 299.16818 150.66816 15066.81695 2.16816 299.16816 150.66815999999992 15066.81600 2020-01-01 2020-01-02 2020-01-01 00:12:02 2020-01-02 03:40:23 2020-01-01 00:12:02.000 2020-01-02 03:40:23.000 722 99623 50172.5 5017250 722 99623 50172.5 5017250 -32448 32690 4952.66 495266 -128 127 -0.94 -94 -723 2 10713 99624 2.17117 299.17117 150.67117 15067.11711 2.17117 299.17117 150.67117 15067.11724 2.17117 299.17117 150.6711699999998 15067.11700 2020-01-01 2020-01-02 2020-01-01 00:12:03 2020-01-02 03:40:24 2020-01-01 00:12:03.000 2020-01-02 03:40:24.000 723 99624 50173.5 5017350 723 99624 50173.5 5017350 -32447 32691 4953.66 495366 -128 123 -2.5 -250 -724 2 10714 99625 2.17417 299.17417 150.67417 15067.41741 2.17417 299.17416 150.67417 15067.41742 2.17417 299.17417 150.67417000000015 15067.41700 2020-01-01 2020-01-02 2020-01-01 00:12:04 2020-01-02 03:40:25 2020-01-01 00:12:04.000 2020-01-02 03:40:25.000 724 99625 50174.5 5017450 724 99625 50174.5 5017450 -32446 32692 4954.66 495466 -127 124 -1.5 -150 -725 2 10715 99626 2.17717 299.17717 150.67717 15067.71771 2.17717 299.1772 150.67717 15067.71752 2.17717 299.17717 150.67717000000016 15067.71700 2020-01-01 2020-01-02 2020-01-01 00:12:05 2020-01-02 03:40:26 2020-01-01 00:12:05.000 2020-01-02 03:40:26.000 725 99626 50175.5 5017550 725 99626 50175.5 5017550 -32445 32693 4955.66 495566 -126 125 -0.5 -50 -726 2 10716 99627 2.18018 299.18018 150.68018 15068.01801 2.18018 299.18018 150.68017 15068.01782 2.18018 299.18018 150.68017999999992 15068.01800 2020-01-01 2020-01-02 2020-01-01 00:12:06 2020-01-02 03:40:27 2020-01-01 00:12:06.000 2020-01-02 03:40:27.000 726 99627 50176.5 5017650 726 99627 50176.5 5017650 -32444 32694 4956.66 495666 -125 126 0.5 50 +720 2 10710 99621 2.16216 299.16216 150.66216 15066.21621 2.16216 299.16217 150.66216 15066.21606 2.16216 299.16216 150.66216 15066.21600 2020-01-01 2020-01-02 2020-01-01 00:12:00 2020-01-02 03:40:21 2020-01-01 00:12:00.000 2020-01-02 03:40:21.000 720 99621 50170.5 5017050 720 99621 50170.5 5017050 -32450 32688 4950.66 495066 -125 126 -0.38 -38 +721 2 10711 99622 2.16516 299.16516 150.66516 15066.51651 2.16516 299.16516 150.66516 15066.51635 2.16516 299.16516 150.66516 15066.51600 2020-01-01 2020-01-02 2020-01-01 00:12:01 2020-01-02 03:40:22 2020-01-01 00:12:01.000 2020-01-02 03:40:22.000 721 99622 50171.5 5017150 721 99622 50171.5 5017150 -32449 32689 4951.66 495166 -124 127 0.62 62 +722 2 10712 99623 2.16816 299.16816 150.66816 15066.81681 2.16816 299.16818 150.66816 15066.81695 2.16816 299.16816 150.66816 15066.81600 2020-01-01 2020-01-02 2020-01-01 00:12:02 2020-01-02 03:40:23 2020-01-01 00:12:02.000 2020-01-02 03:40:23.000 722 99623 50172.5 5017250 722 99623 50172.5 5017250 -32448 32690 4952.66 495266 -128 127 -0.94 -94 +723 2 10713 99624 2.17117 299.17117 150.67117 15067.11711 2.17117 299.17117 150.67117 15067.11724 2.17117 299.17117 150.67117 15067.11700 2020-01-01 2020-01-02 2020-01-01 00:12:03 2020-01-02 03:40:24 2020-01-01 00:12:03.000 2020-01-02 03:40:24.000 723 99624 50173.5 5017350 723 99624 50173.5 5017350 -32447 32691 4953.66 495366 -128 123 -2.5 -250 +724 2 10714 99625 2.17417 299.17417 150.67417 15067.41741 2.17417 299.17416 150.67417 15067.41742 2.17417 299.17417 150.67417 15067.41700 2020-01-01 2020-01-02 2020-01-01 00:12:04 2020-01-02 03:40:25 2020-01-01 00:12:04.000 2020-01-02 03:40:25.000 724 99625 50174.5 5017450 724 99625 50174.5 5017450 -32446 32692 4954.66 495466 -127 124 -1.5 -150 +725 2 10715 99626 2.17717 299.17717 150.67717 15067.71771 2.17717 299.1772 150.67717 15067.71752 2.17717 299.17717 150.67717000000002 15067.71700 2020-01-01 2020-01-02 2020-01-01 00:12:05 2020-01-02 03:40:26 2020-01-01 00:12:05.000 2020-01-02 03:40:26.000 725 99626 50175.5 5017550 725 99626 50175.5 5017550 -32445 32693 4955.66 495566 -126 125 -0.5 -50 +726 2 10716 99627 2.18018 299.18018 150.68018 15068.01801 2.18018 299.18018 150.68017 15068.01782 2.18018 299.18018 150.68018 15068.01800 2020-01-01 2020-01-02 2020-01-01 00:12:06 2020-01-02 03:40:27 2020-01-01 00:12:06.000 2020-01-02 03:40:27.000 726 99627 50176.5 5017650 726 99627 50176.5 5017650 -32444 32694 4956.66 495666 -125 126 0.5 50 727 2 10717 99628 2.18318 299.18318 150.68318 15068.31831 2.18318 299.1832 150.68318 15068.31842 2.18318 299.18318 150.68318 15068.31800 2020-01-01 2020-01-02 2020-01-01 00:12:07 2020-01-02 03:40:28 2020-01-01 00:12:07.000 2020-01-02 03:40:28.000 727 99628 50177.5 5017750 727 99628 50177.5 5017750 -32443 32695 4957.66 495766 -124 127 1.5 150 -728 2 10718 99629 2.18618 299.18618 150.68618 15068.61861 2.18618 299.1862 150.68618 15068.61875 2.18618 299.18618 150.6861800000001 15068.61800 2020-01-01 2020-01-02 2020-01-01 00:12:08 2020-01-02 03:40:29 2020-01-01 00:12:08.000 2020-01-02 03:40:29.000 728 99629 50178.5 5017850 728 99629 50178.5 5017850 -32442 32696 4958.66 495866 -128 127 -0.06 -6 -729 2 10719 99630 2.18918 299.18918 150.68918 15068.91891 2.18918 299.18918 150.68918 15068.91889 2.18918 299.18918 150.6891799999999 15068.91800 2020-01-01 2020-01-02 2020-01-01 00:12:09 2020-01-02 03:40:30 2020-01-01 00:12:09.000 2020-01-02 03:40:30.000 729 99630 50179.5 5017950 729 99630 50179.5 5017950 -32441 32697 4959.66 495966 -128 123 -1.62 -162 -73 2 10063 99973 0.21921 300.21921 150.21921 15172.14114 0.21921 300.2192 150.21921 15172.14121 0.21921 300.21921 150.21920999999992 15172.14021 2020-01-01 2020-01-02 2020-01-01 00:01:13 2020-01-02 03:46:13 2020-01-01 00:01:13.000 2020-01-02 03:46:13.000 73 99973 50023 5052323 73 99973 50023 5052323 -32496 32439 4602.009900990099 464803 -128 127 -3.4554455445544554 -349 -730 2 10720 99631 2.19219 299.19219 150.69219 15069.21921 2.19219 299.1922 150.69219 15069.21965 2.19219 299.19219 150.6921899999999 15069.21900 2020-01-01 2020-01-02 2020-01-01 00:12:10 2020-01-02 03:40:31 2020-01-01 00:12:10.000 2020-01-02 03:40:31.000 730 99631 50180.5 5018050 730 99631 50180.5 5018050 -32440 32698 4960.66 496066 -127 124 -0.62 -62 -731 2 10721 99632 2.19519 299.19519 150.69519 15069.51951 2.19519 299.1952 150.69519 15069.51928 2.19519 299.19519 150.6951900000002 15069.51900 2020-01-01 2020-01-02 2020-01-01 00:12:11 2020-01-02 03:40:32 2020-01-01 00:12:11.000 2020-01-02 03:40:32.000 731 99632 50181.5 5018150 731 99632 50181.5 5018150 -32439 32699 4961.66 496166 -126 125 0.38 38 -732 2 10722 99633 2.19819 299.19819 150.69819 15069.81981 2.19819 299.1982 150.69819 15069.81988 2.19819 299.19819 150.69818999999984 15069.81900 2020-01-01 2020-01-02 2020-01-01 00:12:12 2020-01-02 03:40:33 2020-01-01 00:12:12.000 2020-01-02 03:40:33.000 732 99633 50182.5 5018250 732 99633 50182.5 5018250 -32438 32700 4962.66 496266 -125 126 1.38 138 -733 2 10723 99634 2.2012 299.2012 150.7012 15070.12012 2.2012 299.2012 150.7012 15070.12022 2.20120 299.20120 150.70120000000003 15070.12000 2020-01-01 2020-01-02 2020-01-01 00:12:13 2020-01-02 03:40:34 2020-01-01 00:12:13.000 2020-01-02 03:40:34.000 733 99634 50183.5 5018350 733 99634 50183.5 5018350 -32437 32701 4963.66 496366 -124 127 2.38 238 -734 2 10724 99635 2.2042 299.2042 150.7042 15070.42042 2.2042 299.2042 150.7042 15070.42036 2.20420 299.20420 150.7042000000001 15070.42000 2020-01-01 2020-01-02 2020-01-01 00:12:14 2020-01-02 03:40:35 2020-01-01 00:12:14.000 2020-01-02 03:40:35.000 734 99635 50184.5 5018450 734 99635 50184.5 5018450 -32436 32702 4964.66 496466 -128 127 0.82 82 -735 2 10725 99636 2.2072 299.2072 150.7072 15070.72072 2.2072 299.2072 150.70721 15070.72111 2.20720 299.20720 150.70720000000009 15070.72000 2020-01-01 2020-01-02 2020-01-01 00:12:15 2020-01-02 03:40:36 2020-01-01 00:12:15.000 2020-01-02 03:40:36.000 735 99636 50185.5 5018550 735 99636 50185.5 5018550 -32435 32703 4965.66 496566 -128 127 -0.74 -74 -736 2 10726 99637 2.21021 299.21021 150.71021 15071.02102 2.21021 299.2102 150.7102 15071.02076 2.21021 299.21021 150.71020999999996 15071.02100 2020-01-01 2020-01-02 2020-01-01 00:12:16 2020-01-02 03:40:37 2020-01-01 00:12:16.000 2020-01-02 03:40:37.000 736 99637 50186.5 5018650 736 99637 50186.5 5018650 -32434 32704 4966.66 496666 -128 124 -2.3 -230 -737 2 10727 99638 2.21321 299.21321 150.71321 15071.32132 2.21321 299.21323 150.71321 15071.32139 2.21321 299.21321 150.71320999999992 15071.32100 2020-01-01 2020-01-02 2020-01-01 00:12:17 2020-01-02 03:40:38 2020-01-01 00:12:17.000 2020-01-02 03:40:38.000 737 99638 50187.5 5018750 737 99638 50187.5 5018750 -32433 32705 4967.66 496766 -127 125 -1.3 -130 +728 2 10718 99629 2.18618 299.18618 150.68618 15068.61861 2.18618 299.1862 150.68618 15068.61875 2.18618 299.18618 150.68618 15068.61800 2020-01-01 2020-01-02 2020-01-01 00:12:08 2020-01-02 03:40:29 2020-01-01 00:12:08.000 2020-01-02 03:40:29.000 728 99629 50178.5 5017850 728 99629 50178.5 5017850 -32442 32696 4958.66 495866 -128 127 -0.06 -6 +729 2 10719 99630 2.18918 299.18918 150.68918 15068.91891 2.18918 299.18918 150.68918 15068.91889 2.18918 299.18918 150.68918 15068.91800 2020-01-01 2020-01-02 2020-01-01 00:12:09 2020-01-02 03:40:30 2020-01-01 00:12:09.000 2020-01-02 03:40:30.000 729 99630 50179.5 5017950 729 99630 50179.5 5017950 -32441 32697 4959.66 495966 -128 123 -1.62 -162 +73 2 10063 99973 0.21921 300.21921 150.21921 15172.14114 0.21921 300.2192 150.21921 15172.14121 0.21921 300.21921 150.21921 15172.14021 2020-01-01 2020-01-02 2020-01-01 00:01:13 2020-01-02 03:46:13 2020-01-01 00:01:13.000 2020-01-02 03:46:13.000 73 99973 50023 5052323 73 99973 50023 5052323 -32496 32439 4602.009900990099 464803 -128 127 -3.4554455445544554 -349 +730 2 10720 99631 2.19219 299.19219 150.69219 15069.21921 2.19219 299.1922 150.69219 15069.21965 2.19219 299.19219 150.69218999999998 15069.21900 2020-01-01 2020-01-02 2020-01-01 00:12:10 2020-01-02 03:40:31 2020-01-01 00:12:10.000 2020-01-02 03:40:31.000 730 99631 50180.5 5018050 730 99631 50180.5 5018050 -32440 32698 4960.66 496066 -127 124 -0.62 -62 +731 2 10721 99632 2.19519 299.19519 150.69519 15069.51951 2.19519 299.1952 150.69519 15069.51928 2.19519 299.19519 150.69519 15069.51900 2020-01-01 2020-01-02 2020-01-01 00:12:11 2020-01-02 03:40:32 2020-01-01 00:12:11.000 2020-01-02 03:40:32.000 731 99632 50181.5 5018150 731 99632 50181.5 5018150 -32439 32699 4961.66 496166 -126 125 0.38 38 +732 2 10722 99633 2.19819 299.19819 150.69819 15069.81981 2.19819 299.1982 150.69819 15069.81988 2.19819 299.19819 150.69818999999998 15069.81900 2020-01-01 2020-01-02 2020-01-01 00:12:12 2020-01-02 03:40:33 2020-01-01 00:12:12.000 2020-01-02 03:40:33.000 732 99633 50182.5 5018250 732 99633 50182.5 5018250 -32438 32700 4962.66 496266 -125 126 1.38 138 +733 2 10723 99634 2.2012 299.2012 150.7012 15070.12012 2.2012 299.2012 150.7012 15070.12022 2.20120 299.20120 150.7012 15070.12000 2020-01-01 2020-01-02 2020-01-01 00:12:13 2020-01-02 03:40:34 2020-01-01 00:12:13.000 2020-01-02 03:40:34.000 733 99634 50183.5 5018350 733 99634 50183.5 5018350 -32437 32701 4963.66 496366 -124 127 2.38 238 +734 2 10724 99635 2.2042 299.2042 150.7042 15070.42042 2.2042 299.2042 150.7042 15070.42036 2.20420 299.20420 150.70420000000001 15070.42000 2020-01-01 2020-01-02 2020-01-01 00:12:14 2020-01-02 03:40:35 2020-01-01 00:12:14.000 2020-01-02 03:40:35.000 734 99635 50184.5 5018450 734 99635 50184.5 5018450 -32436 32702 4964.66 496466 -128 127 0.82 82 +735 2 10725 99636 2.2072 299.2072 150.7072 15070.72072 2.2072 299.2072 150.70721 15070.72111 2.20720 299.20720 150.7072 15070.72000 2020-01-01 2020-01-02 2020-01-01 00:12:15 2020-01-02 03:40:36 2020-01-01 00:12:15.000 2020-01-02 03:40:36.000 735 99636 50185.5 5018550 735 99636 50185.5 5018550 -32435 32703 4965.66 496566 -128 127 -0.74 -74 +736 2 10726 99637 2.21021 299.21021 150.71021 15071.02102 2.21021 299.2102 150.7102 15071.02076 2.21021 299.21021 150.71021000000002 15071.02100 2020-01-01 2020-01-02 2020-01-01 00:12:16 2020-01-02 03:40:37 2020-01-01 00:12:16.000 2020-01-02 03:40:37.000 736 99637 50186.5 5018650 736 99637 50186.5 5018650 -32434 32704 4966.66 496666 -128 124 -2.3 -230 +737 2 10727 99638 2.21321 299.21321 150.71321 15071.32132 2.21321 299.21323 150.71321 15071.32139 2.21321 299.21321 150.71321 15071.32100 2020-01-01 2020-01-02 2020-01-01 00:12:17 2020-01-02 03:40:38 2020-01-01 00:12:17.000 2020-01-02 03:40:38.000 737 99638 50187.5 5018750 737 99638 50187.5 5018750 -32433 32705 4967.66 496766 -127 125 -1.3 -130 738 2 10728 99639 2.21621 299.21621 150.71621 15071.62162 2.21621 299.21622 150.71621 15071.62169 2.21621 299.21621 150.71621 15071.62100 2020-01-01 2020-01-02 2020-01-01 00:12:18 2020-01-02 03:40:39 2020-01-01 00:12:18.000 2020-01-02 03:40:39.000 738 99639 50188.5 5018850 738 99639 50188.5 5018850 -32432 32706 4968.66 496866 -126 126 -0.3 -30 -739 2 10729 99640 2.21921 299.21921 150.71921 15071.92192 2.21921 299.2192 150.71921 15071.92199 2.21921 299.21921 150.71920999999995 15071.92100 2020-01-01 2020-01-02 2020-01-01 00:12:19 2020-01-02 03:40:40 2020-01-01 00:12:19.000 2020-01-02 03:40:40.000 739 99640 50189.5 5018950 739 99640 50189.5 5018950 -32431 32707 4969.66 496966 -125 127 0.7 70 -74 2 10064 99974 0.22222 300.22222 150.22222 15172.44444 0.22222 300.22223 150.22222 15172.4448 0.22222 300.22222 150.22221999999985 15172.44422 2020-01-01 2020-01-02 2020-01-01 00:01:14 2020-01-02 03:46:14 2020-01-01 00:01:14.000 2020-01-02 03:46:14.000 74 99974 50024 5052424 74 99974 50024 5052424 -32495 32440 4603.009900990099 464904 -128 123 -4.99009900990099 -504 -740 2 10730 99641 2.22222 299.22222 150.72222 15072.22222 2.22222 299.22223 150.72222 15072.22258 2.22222 299.22222 150.72221999999985 15072.22200 2020-01-01 2020-01-02 2020-01-01 00:12:20 2020-01-02 03:40:41 2020-01-01 00:12:20.000 2020-01-02 03:40:41.000 740 99641 50190.5 5019050 740 99641 50190.5 5019050 -32430 32708 4970.66 497066 -128 127 -0.86 -86 -741 2 10731 99642 2.22522 299.22522 150.72522 15072.52252 2.22522 299.22522 150.72522 15072.52223 2.22522 299.22522 150.7252200000001 15072.52200 2020-01-01 2020-01-02 2020-01-01 00:12:21 2020-01-02 03:40:42 2020-01-01 00:12:21.000 2020-01-02 03:40:42.000 741 99642 50191.5 5019150 741 99642 50191.5 5019150 -32429 32709 4971.66 497166 -128 127 -2.42 -242 -742 2 10732 99643 2.22822 299.22822 150.72822 15072.82282 2.22822 299.22824 150.72822 15072.82286 2.22822 299.22822 150.7282200000002 15072.82200 2020-01-01 2020-01-02 2020-01-01 00:12:22 2020-01-02 03:40:43 2020-01-01 00:12:22.000 2020-01-02 03:40:43.000 742 99643 50192.5 5019250 742 99643 50192.5 5019250 -32428 32710 4972.66 497266 -128 123 -3.98 -398 -743 2 10733 99644 2.23123 299.23123 150.73123 15073.12312 2.23123 299.23123 150.73123 15073.12316 2.23123 299.23123 150.73122999999993 15073.12300 2020-01-01 2020-01-02 2020-01-01 00:12:23 2020-01-02 03:40:44 2020-01-01 00:12:23.000 2020-01-02 03:40:44.000 743 99644 50193.5 5019350 743 99644 50193.5 5019350 -32427 32711 4973.66 497366 -127 124 -2.98 -298 +739 2 10729 99640 2.21921 299.21921 150.71921 15071.92192 2.21921 299.2192 150.71921 15071.92199 2.21921 299.21921 150.71921 15071.92100 2020-01-01 2020-01-02 2020-01-01 00:12:19 2020-01-02 03:40:40 2020-01-01 00:12:19.000 2020-01-02 03:40:40.000 739 99640 50189.5 5018950 739 99640 50189.5 5018950 -32431 32707 4969.66 496966 -125 127 0.7 70 +74 2 10064 99974 0.22222 300.22222 150.22222 15172.44444 0.22222 300.22223 150.22222 15172.4448 0.22222 300.22222 150.22222 15172.44422 2020-01-01 2020-01-02 2020-01-01 00:01:14 2020-01-02 03:46:14 2020-01-01 00:01:14.000 2020-01-02 03:46:14.000 74 99974 50024 5052424 74 99974 50024 5052424 -32495 32440 4603.009900990099 464904 -128 123 -4.99009900990099 -504 +740 2 10730 99641 2.22222 299.22222 150.72222 15072.22222 2.22222 299.22223 150.72222 15072.22258 2.22222 299.22222 150.72222 15072.22200 2020-01-01 2020-01-02 2020-01-01 00:12:20 2020-01-02 03:40:41 2020-01-01 00:12:20.000 2020-01-02 03:40:41.000 740 99641 50190.5 5019050 740 99641 50190.5 5019050 -32430 32708 4970.66 497066 -128 127 -0.86 -86 +741 2 10731 99642 2.22522 299.22522 150.72522 15072.52252 2.22522 299.22522 150.72522 15072.52223 2.22522 299.22522 150.72522 15072.52200 2020-01-01 2020-01-02 2020-01-01 00:12:21 2020-01-02 03:40:42 2020-01-01 00:12:21.000 2020-01-02 03:40:42.000 741 99642 50191.5 5019150 741 99642 50191.5 5019150 -32429 32709 4971.66 497166 -128 127 -2.42 -242 +742 2 10732 99643 2.22822 299.22822 150.72822 15072.82282 2.22822 299.22824 150.72822 15072.82286 2.22822 299.22822 150.72822 15072.82200 2020-01-01 2020-01-02 2020-01-01 00:12:22 2020-01-02 03:40:43 2020-01-01 00:12:22.000 2020-01-02 03:40:43.000 742 99643 50192.5 5019250 742 99643 50192.5 5019250 -32428 32710 4972.66 497266 -128 123 -3.98 -398 +743 2 10733 99644 2.23123 299.23123 150.73123 15073.12312 2.23123 299.23123 150.73123 15073.12316 2.23123 299.23123 150.73122999999998 15073.12300 2020-01-01 2020-01-02 2020-01-01 00:12:23 2020-01-02 03:40:44 2020-01-01 00:12:23.000 2020-01-02 03:40:44.000 743 99644 50193.5 5019350 743 99644 50193.5 5019350 -32427 32711 4973.66 497366 -127 124 -2.98 -298 744 2 10734 99645 2.23423 299.23423 150.73423 15073.42342 2.23423 299.23422 150.73423 15073.42345 2.23423 299.23423 150.73423 15073.42300 2020-01-01 2020-01-02 2020-01-01 00:12:24 2020-01-02 03:40:45 2020-01-01 00:12:24.000 2020-01-02 03:40:45.000 744 99645 50194.5 5019450 744 99645 50194.5 5019450 -32426 32712 4974.66 497466 -126 125 -1.98 -198 -745 2 10735 99646 2.23723 299.23723 150.73723 15073.72372 2.23723 299.23724 150.73724 15073.72405 2.23723 299.23723 150.73723000000012 15073.72300 2020-01-01 2020-01-02 2020-01-01 00:12:25 2020-01-02 03:40:46 2020-01-01 00:12:25.000 2020-01-02 03:40:46.000 745 99646 50195.5 5019550 745 99646 50195.5 5019550 -32425 32713 4975.66 497566 -125 126 -0.98 -98 -746 2 10736 99647 2.24024 299.24024 150.74024 15074.02402 2.24024 299.24023 150.74023 15074.02373 2.24024 299.24024 150.7402399999999 15074.02400 2020-01-01 2020-01-02 2020-01-01 00:12:26 2020-01-02 03:40:47 2020-01-01 00:12:26.000 2020-01-02 03:40:47.000 746 99647 50196.5 5019650 746 99647 50196.5 5019650 -32424 32714 4976.66 497666 -124 127 0.02 2 -747 2 10737 99648 2.24324 299.24324 150.74324 15074.32432 2.24324 299.24326 150.74324 15074.32433 2.24324 299.24324 150.74323999999984 15074.32400 2020-01-01 2020-01-02 2020-01-01 00:12:27 2020-01-02 03:40:48 2020-01-01 00:12:27.000 2020-01-02 03:40:48.000 747 99648 50197.5 5019750 747 99648 50197.5 5019750 -32423 32715 4977.66 497766 -128 127 -1.54 -154 -748 2 10738 99649 2.24624 299.24624 150.74624 15074.62462 2.24624 299.24625 150.74624 15074.62463 2.24624 299.24624 150.74624000000017 15074.62400 2020-01-01 2020-01-02 2020-01-01 00:12:28 2020-01-02 03:40:49 2020-01-01 00:12:28.000 2020-01-02 03:40:49.000 748 99649 50198.5 5019850 748 99649 50198.5 5019850 -32422 32716 4978.66 497866 -128 123 -3.1 -310 -749 2 10739 99650 2.24924 299.24924 150.74924 15074.92492 2.24924 299.24924 150.74924 15074.92492 2.24924 299.24924 150.74923999999987 15074.92400 2020-01-01 2020-01-02 2020-01-01 00:12:29 2020-01-02 03:40:50 2020-01-01 00:12:29.000 2020-01-02 03:40:50.000 749 99650 50199.5 5019950 749 99650 50199.5 5019950 -32421 32717 4979.66 497966 -127 124 -2.1 -210 -75 2 10065 99975 0.22522 300.22522 150.22522 15172.74774 0.22522 300.22522 150.22522 15172.74745 0.22522 300.22522 150.2252200000001 15172.74722 2020-01-01 2020-01-02 2020-01-01 00:01:15 2020-01-02 03:46:15 2020-01-01 00:01:15.000 2020-01-02 03:46:15.000 75 99975 50025 5052525 75 99975 50025 5052525 -32494 32441 4604.009900990099 465005 -127 124 -3.99009900990099 -403 -750 2 10740 99651 2.25225 299.25225 150.75225 15075.22522 2.25225 299.25226 150.75225 15075.22552 2.25225 299.25225 150.75224999999978 15075.22500 2020-01-01 2020-01-02 2020-01-01 00:12:30 2020-01-02 03:40:51 2020-01-01 00:12:30.000 2020-01-02 03:40:51.000 750 99651 50200.5 5020050 750 99651 50200.5 5020050 -32420 32718 4980.66 498066 -126 125 -1.1 -110 -751 2 10741 99652 2.25525 299.25525 150.75525 15075.52552 2.25525 299.25525 150.75525 15075.5252 2.25525 299.25525 150.7552500000001 15075.52500 2020-01-01 2020-01-02 2020-01-01 00:12:31 2020-01-02 03:40:52 2020-01-01 00:12:31.000 2020-01-02 03:40:52.000 751 99652 50201.5 5020150 751 99652 50201.5 5020150 -32419 32719 4981.66 498166 -125 126 -0.1 -10 -752 2 10742 99653 2.25825 299.25825 150.75825 15075.82582 2.25825 299.25827 150.75825 15075.8258 2.25825 299.25825 150.75825000000015 15075.82500 2020-01-01 2020-01-02 2020-01-01 00:12:32 2020-01-02 03:40:53 2020-01-01 00:12:32.000 2020-01-02 03:40:53.000 752 99653 50202.5 5020250 752 99653 50202.5 5020250 -32418 32720 4982.66 498266 -124 127 0.9 90 -753 2 10743 99654 2.26126 299.26126 150.76126 15076.12612 2.26126 299.26126 150.76126 15076.12609 2.26126 299.26126 150.76125999999994 15076.12600 2020-01-01 2020-01-02 2020-01-01 00:12:33 2020-01-02 03:40:54 2020-01-01 00:12:33.000 2020-01-02 03:40:54.000 753 99654 50203.5 5020350 753 99654 50203.5 5020350 -32417 32721 4983.66 498366 -128 127 -0.66 -66 -754 2 10744 99655 2.26426 299.26426 150.76426 15076.42642 2.26426 299.26425 150.76426 15076.4264 2.26426 299.26426 150.76425999999995 15076.42600 2020-01-01 2020-01-02 2020-01-01 00:12:34 2020-01-02 03:40:55 2020-01-01 00:12:34.000 2020-01-02 03:40:55.000 754 99655 50204.5 5020450 754 99655 50204.5 5020450 -32416 32722 4984.66 498466 -128 123 -2.22 -222 +745 2 10735 99646 2.23723 299.23723 150.73723 15073.72372 2.23723 299.23724 150.73724 15073.72405 2.23723 299.23723 150.73723 15073.72300 2020-01-01 2020-01-02 2020-01-01 00:12:25 2020-01-02 03:40:46 2020-01-01 00:12:25.000 2020-01-02 03:40:46.000 745 99646 50195.5 5019550 745 99646 50195.5 5019550 -32425 32713 4975.66 497566 -125 126 -0.98 -98 +746 2 10736 99647 2.24024 299.24024 150.74024 15074.02402 2.24024 299.24023 150.74023 15074.02373 2.24024 299.24024 150.74024 15074.02400 2020-01-01 2020-01-02 2020-01-01 00:12:26 2020-01-02 03:40:47 2020-01-01 00:12:26.000 2020-01-02 03:40:47.000 746 99647 50196.5 5019650 746 99647 50196.5 5019650 -32424 32714 4976.66 497666 -124 127 0.02 2 +747 2 10737 99648 2.24324 299.24324 150.74324 15074.32432 2.24324 299.24326 150.74324 15074.32433 2.24324 299.24324 150.74324000000001 15074.32400 2020-01-01 2020-01-02 2020-01-01 00:12:27 2020-01-02 03:40:48 2020-01-01 00:12:27.000 2020-01-02 03:40:48.000 747 99648 50197.5 5019750 747 99648 50197.5 5019750 -32423 32715 4977.66 497766 -128 127 -1.54 -154 +748 2 10738 99649 2.24624 299.24624 150.74624 15074.62462 2.24624 299.24625 150.74624 15074.62463 2.24624 299.24624 150.74624 15074.62400 2020-01-01 2020-01-02 2020-01-01 00:12:28 2020-01-02 03:40:49 2020-01-01 00:12:28.000 2020-01-02 03:40:49.000 748 99649 50198.5 5019850 748 99649 50198.5 5019850 -32422 32716 4978.66 497866 -128 123 -3.1 -310 +749 2 10739 99650 2.24924 299.24924 150.74924 15074.92492 2.24924 299.24924 150.74924 15074.92492 2.24924 299.24924 150.74924000000001 15074.92400 2020-01-01 2020-01-02 2020-01-01 00:12:29 2020-01-02 03:40:50 2020-01-01 00:12:29.000 2020-01-02 03:40:50.000 749 99650 50199.5 5019950 749 99650 50199.5 5019950 -32421 32717 4979.66 497966 -127 124 -2.1 -210 +75 2 10065 99975 0.22522 300.22522 150.22522 15172.74774 0.22522 300.22522 150.22522 15172.74745 0.22522 300.22522 150.22521999999998 15172.74722 2020-01-01 2020-01-02 2020-01-01 00:01:15 2020-01-02 03:46:15 2020-01-01 00:01:15.000 2020-01-02 03:46:15.000 75 99975 50025 5052525 75 99975 50025 5052525 -32494 32441 4604.009900990099 465005 -127 124 -3.99009900990099 -403 +750 2 10740 99651 2.25225 299.25225 150.75225 15075.22522 2.25225 299.25226 150.75225 15075.22552 2.25225 299.25225 150.75225 15075.22500 2020-01-01 2020-01-02 2020-01-01 00:12:30 2020-01-02 03:40:51 2020-01-01 00:12:30.000 2020-01-02 03:40:51.000 750 99651 50200.5 5020050 750 99651 50200.5 5020050 -32420 32718 4980.66 498066 -126 125 -1.1 -110 +751 2 10741 99652 2.25525 299.25525 150.75525 15075.52552 2.25525 299.25525 150.75525 15075.5252 2.25525 299.25525 150.75525 15075.52500 2020-01-01 2020-01-02 2020-01-01 00:12:31 2020-01-02 03:40:52 2020-01-01 00:12:31.000 2020-01-02 03:40:52.000 751 99652 50201.5 5020150 751 99652 50201.5 5020150 -32419 32719 4981.66 498166 -125 126 -0.1 -10 +752 2 10742 99653 2.25825 299.25825 150.75825 15075.82582 2.25825 299.25827 150.75825 15075.8258 2.25825 299.25825 150.75825 15075.82500 2020-01-01 2020-01-02 2020-01-01 00:12:32 2020-01-02 03:40:53 2020-01-01 00:12:32.000 2020-01-02 03:40:53.000 752 99653 50202.5 5020250 752 99653 50202.5 5020250 -32418 32720 4982.66 498266 -124 127 0.9 90 +753 2 10743 99654 2.26126 299.26126 150.76126 15076.12612 2.26126 299.26126 150.76126 15076.12609 2.26126 299.26126 150.76126 15076.12600 2020-01-01 2020-01-02 2020-01-01 00:12:33 2020-01-02 03:40:54 2020-01-01 00:12:33.000 2020-01-02 03:40:54.000 753 99654 50203.5 5020350 753 99654 50203.5 5020350 -32417 32721 4983.66 498366 -128 127 -0.66 -66 +754 2 10744 99655 2.26426 299.26426 150.76426 15076.42642 2.26426 299.26425 150.76426 15076.4264 2.26426 299.26426 150.76426 15076.42600 2020-01-01 2020-01-02 2020-01-01 00:12:34 2020-01-02 03:40:55 2020-01-01 00:12:34.000 2020-01-02 03:40:55.000 754 99655 50204.5 5020450 754 99655 50204.5 5020450 -32416 32722 4984.66 498466 -128 123 -2.22 -222 755 2 10745 99656 2.26726 299.26726 150.76726 15076.72672 2.26726 299.26727 150.76727 15076.72703 2.26726 299.26726 150.76726 15076.72600 2020-01-01 2020-01-02 2020-01-01 00:12:35 2020-01-02 03:40:56 2020-01-01 00:12:35.000 2020-01-02 03:40:56.000 755 99656 50205.5 5020550 755 99656 50205.5 5020550 -32415 32723 4985.66 498566 -127 124 -1.22 -122 -756 2 10746 99657 2.27027 299.27027 150.77027 15077.02702 2.27027 299.27026 150.77026 15077.02667 2.27027 299.27027 150.7702700000002 15077.02700 2020-01-01 2020-01-02 2020-01-01 00:12:36 2020-01-02 03:40:57 2020-01-01 00:12:36.000 2020-01-02 03:40:57.000 756 99657 50206.5 5020650 756 99657 50206.5 5020650 -32414 32724 4986.66 498666 -126 125 -0.22 -22 -757 2 10747 99658 2.27327 299.27327 150.77327 15077.32732 2.27327 299.2733 150.77327 15077.32727 2.27327 299.27327 150.77326999999985 15077.32700 2020-01-01 2020-01-02 2020-01-01 00:12:37 2020-01-02 03:40:58 2020-01-01 00:12:37.000 2020-01-02 03:40:58.000 757 99658 50207.5 5020750 757 99658 50207.5 5020750 -32413 32725 4987.66 498766 -125 126 0.78 78 -758 2 10748 99659 2.27627 299.27627 150.77627 15077.62762 2.27627 299.27628 150.77627 15077.62756 2.27627 299.27627 150.77627000000012 15077.62700 2020-01-01 2020-01-02 2020-01-01 00:12:38 2020-01-02 03:40:59 2020-01-01 00:12:38.000 2020-01-02 03:40:59.000 758 99659 50208.5 5020850 758 99659 50208.5 5020850 -32412 32726 4988.66 498866 -124 127 1.78 178 -759 2 10749 99660 2.27927 299.27927 150.77927 15077.92792 2.27927 299.27927 150.77927 15077.92787 2.27927 299.27927 150.7792699999999 15077.92700 2020-01-01 2020-01-02 2020-01-01 00:12:39 2020-01-02 03:41:00 2020-01-01 00:12:39.000 2020-01-02 03:41:00.000 759 99660 50209.5 5020950 759 99660 50209.5 5020950 -32411 32727 4989.66 498966 -128 127 0.22 22 -76 2 10066 99976 0.22822 300.22822 150.22822 15173.05105 0.22822 300.22824 150.22822 15173.05109 0.22822 300.22822 150.2282200000002 15173.05022 2020-01-01 2020-01-02 2020-01-01 00:01:16 2020-01-02 03:46:16 2020-01-01 00:01:16.000 2020-01-02 03:46:16.000 76 99976 50026 5052626 76 99976 50026 5052626 -32493 32442 4605.009900990099 465106 -126 125 -2.99009900990099 -302 -760 2 10750 99661 2.28228 299.28228 150.78228 15078.22822 2.28228 299.2823 150.78228 15078.2285 2.28228 299.28228 150.78228000000001 15078.22800 2020-01-01 2020-01-02 2020-01-01 00:12:40 2020-01-02 03:41:01 2020-01-01 00:12:40.000 2020-01-02 03:41:01.000 760 99661 50210.5 5021050 760 99661 50210.5 5021050 -32410 32728 4990.66 499066 -128 127 -1.34 -134 -761 2 10751 99662 2.28528 299.28528 150.78528 15078.52852 2.28528 299.28528 150.78528 15078.52814 2.28528 299.28528 150.78528000000003 15078.52800 2020-01-01 2020-01-02 2020-01-01 00:12:41 2020-01-02 03:41:02 2020-01-01 00:12:41.000 2020-01-02 03:41:02.000 761 99662 50211.5 5021150 761 99662 50211.5 5021150 -32409 32729 4991.66 499166 -128 124 -2.9 -290 -762 2 10752 99663 2.28828 299.28828 150.78828 15078.82882 2.28828 299.2883 150.78828 15078.82889 2.28828 299.28828 150.78828000000007 15078.82800 2020-01-01 2020-01-02 2020-01-01 00:12:42 2020-01-02 03:41:03 2020-01-01 00:12:42.000 2020-01-02 03:41:03.000 762 99663 50212.5 5021250 762 99663 50212.5 5021250 -32408 32730 4992.66 499266 -127 125 -1.9 -190 -763 2 10753 99664 2.29129 299.29129 150.79129 15079.12912 2.29129 299.2913 150.79129 15079.12904 2.29129 299.29129 150.79128999999992 15079.12900 2020-01-01 2020-01-02 2020-01-01 00:12:43 2020-01-02 03:41:04 2020-01-01 00:12:43.000 2020-01-02 03:41:04.000 763 99664 50213.5 5021350 763 99664 50213.5 5021350 -32407 32731 4993.66 499366 -126 126 -0.9 -90 -764 2 10754 99665 2.29429 299.29429 150.79429 15079.42942 2.29429 299.29428 150.79429 15079.42933 2.29429 299.29429 150.79428999999988 15079.42900 2020-01-01 2020-01-02 2020-01-01 00:12:44 2020-01-02 03:41:05 2020-01-01 00:12:44.000 2020-01-02 03:41:05.000 764 99665 50214.5 5021450 764 99665 50214.5 5021450 -32406 32732 4994.66 499466 -125 127 0.1 10 -765 2 10755 99666 2.29729 299.29729 150.79729 15079.72972 2.29729 299.2973 150.79729 15079.72996 2.29729 299.29729 150.7972900000002 15079.72900 2020-01-01 2020-01-02 2020-01-01 00:12:45 2020-01-02 03:41:06 2020-01-01 00:12:45.000 2020-01-02 03:41:06.000 765 99666 50215.5 5021550 765 99666 50215.5 5021550 -32405 32733 4995.66 499566 -128 127 -1.46 -146 -766 2 10756 99667 2.3003 299.3003 150.8003 15080.03003 2.3003 299.3003 150.80029 15080.02961 2.30030 299.30030 150.8003000000001 15080.03000 2020-01-01 2020-01-02 2020-01-01 00:12:46 2020-01-02 03:41:07 2020-01-01 00:12:46.000 2020-01-02 03:41:07.000 766 99667 50216.5 5021650 766 99667 50216.5 5021650 -32404 32734 4996.66 499666 -128 127 -3.02 -302 -767 2 10757 99668 2.3033 299.3033 150.8033 15080.33033 2.3033 299.3033 150.8033 15080.33036 2.30330 299.30330 150.80329999999978 15080.33000 2020-01-01 2020-01-02 2020-01-01 00:12:47 2020-01-02 03:41:08 2020-01-01 00:12:47.000 2020-01-02 03:41:08.000 767 99668 50217.5 5021750 767 99668 50217.5 5021750 -32403 32735 4997.66 499766 -128 123 -4.58 -458 -768 2 10758 99669 2.3063 299.3063 150.8063 15080.63063 2.3063 299.3063 150.8063 15080.6305 2.30630 299.30630 150.80630000000014 15080.63000 2020-01-01 2020-01-02 2020-01-01 00:12:48 2020-01-02 03:41:09 2020-01-01 00:12:48.000 2020-01-02 03:41:09.000 768 99669 50218.5 5021850 768 99669 50218.5 5021850 -32402 32736 4998.66 499866 -127 124 -3.58 -358 -769 2 10759 99670 2.3093 299.3093 150.8093 15080.93093 2.3093 299.3093 150.8093 15080.93084 2.30930 299.30930 150.80930000000012 15080.93000 2020-01-01 2020-01-02 2020-01-01 00:12:49 2020-01-02 03:41:10 2020-01-01 00:12:49.000 2020-01-02 03:41:10.000 769 99670 50219.5 5021950 769 99670 50219.5 5021950 -32401 32737 4999.66 499966 -126 125 -2.58 -258 -77 2 10067 99977 0.23123 300.23123 150.23123 15173.35435 0.23123 300.23123 150.23123 15173.35439 0.23123 300.23123 150.23122999999993 15173.35423 2020-01-01 2020-01-02 2020-01-01 00:01:17 2020-01-02 03:46:17 2020-01-01 00:01:17.000 2020-01-02 03:46:17.000 77 99977 50027 5052727 77 99977 50027 5052727 -32492 32443 4606.009900990099 465207 -125 126 -1.99009900990099 -201 -770 2 10760 99671 2.31231 299.31231 150.81231 15081.23123 2.31231 299.31232 150.81231 15081.23144 2.31231 299.31231 150.8123099999999 15081.23100 2020-01-01 2020-01-02 2020-01-01 00:12:50 2020-01-02 03:41:11 2020-01-01 00:12:50.000 2020-01-02 03:41:11.000 770 99671 50220.5 5022050 770 99671 50220.5 5022050 -32400 32738 5000.66 500066 -125 126 -1.58 -158 -771 2 10761 99672 2.31531 299.31531 150.81531 15081.53153 2.31531 299.3153 150.81531 15081.53173 2.31531 299.31531 150.81530999999998 15081.53100 2020-01-01 2020-01-02 2020-01-01 00:12:51 2020-01-02 03:41:12 2020-01-01 00:12:51.000 2020-01-02 03:41:12.000 771 99672 50221.5 5022150 771 99672 50221.5 5022150 -32399 32739 5001.66 500166 -124 127 -0.58 -58 -772 2 10762 99673 2.31831 299.31831 150.81831 15081.83183 2.31831 299.31833 150.81831 15081.83183 2.31831 299.31831 150.81831000000003 15081.83100 2020-01-01 2020-01-02 2020-01-01 00:12:52 2020-01-02 03:41:13 2020-01-01 00:12:52.000 2020-01-02 03:41:13.000 772 99673 50222.5 5022250 772 99673 50222.5 5022250 -32398 32740 5002.66 500266 -128 127 -2.14 -214 -773 2 10763 99674 2.32132 299.32132 150.82132 15082.13213 2.32132 299.32132 150.82131 15082.13197 2.32132 299.32132 150.8213199999998 15082.13200 2020-01-01 2020-01-02 2020-01-01 00:12:53 2020-01-02 03:41:14 2020-01-01 00:12:53.000 2020-01-02 03:41:14.000 773 99674 50223.5 5022350 773 99674 50223.5 5022350 -32397 32741 5003.66 500366 -128 123 -3.7 -370 -774 2 10764 99675 2.32432 299.32432 150.82432 15082.43243 2.32432 299.3243 150.82432 15082.43231 2.32432 299.32432 150.8243199999999 15082.43200 2020-01-01 2020-01-02 2020-01-01 00:12:54 2020-01-02 03:41:15 2020-01-01 00:12:54.000 2020-01-02 03:41:15.000 774 99675 50224.5 5022450 774 99675 50224.5 5022450 -32396 32742 5004.66 500466 -127 124 -2.7 -270 -775 2 10765 99676 2.32732 299.32732 150.82732 15082.73273 2.32732 299.32733 150.82732 15082.73291 2.32732 299.32732 150.82732000000016 15082.73200 2020-01-01 2020-01-02 2020-01-01 00:12:55 2020-01-02 03:41:16 2020-01-01 00:12:55.000 2020-01-02 03:41:16.000 775 99676 50225.5 5022550 775 99676 50225.5 5022550 -32395 32743 5005.66 500566 -126 125 -1.7 -170 -776 2 10766 99677 2.33033 299.33033 150.83033 15083.03303 2.33033 299.33032 150.83033 15083.0332 2.33033 299.33033 150.83033000000003 15083.03300 2020-01-01 2020-01-02 2020-01-01 00:12:56 2020-01-02 03:41:17 2020-01-01 00:12:56.000 2020-01-02 03:41:17.000 776 99677 50226.5 5022650 776 99677 50226.5 5022650 -32394 32744 5006.66 500666 -125 126 -0.7 -70 +756 2 10746 99657 2.27027 299.27027 150.77027 15077.02702 2.27027 299.27026 150.77026 15077.02667 2.27027 299.27027 150.77027 15077.02700 2020-01-01 2020-01-02 2020-01-01 00:12:36 2020-01-02 03:40:57 2020-01-01 00:12:36.000 2020-01-02 03:40:57.000 756 99657 50206.5 5020650 756 99657 50206.5 5020650 -32414 32724 4986.66 498666 -126 125 -0.22 -22 +757 2 10747 99658 2.27327 299.27327 150.77327 15077.32732 2.27327 299.2733 150.77327 15077.32727 2.27327 299.27327 150.77327 15077.32700 2020-01-01 2020-01-02 2020-01-01 00:12:37 2020-01-02 03:40:58 2020-01-01 00:12:37.000 2020-01-02 03:40:58.000 757 99658 50207.5 5020750 757 99658 50207.5 5020750 -32413 32725 4987.66 498766 -125 126 0.78 78 +758 2 10748 99659 2.27627 299.27627 150.77627 15077.62762 2.27627 299.27628 150.77627 15077.62756 2.27627 299.27627 150.77627 15077.62700 2020-01-01 2020-01-02 2020-01-01 00:12:38 2020-01-02 03:40:59 2020-01-01 00:12:38.000 2020-01-02 03:40:59.000 758 99659 50208.5 5020850 758 99659 50208.5 5020850 -32412 32726 4988.66 498866 -124 127 1.78 178 +759 2 10749 99660 2.27927 299.27927 150.77927 15077.92792 2.27927 299.27927 150.77927 15077.92787 2.27927 299.27927 150.77927 15077.92700 2020-01-01 2020-01-02 2020-01-01 00:12:39 2020-01-02 03:41:00 2020-01-01 00:12:39.000 2020-01-02 03:41:00.000 759 99660 50209.5 5020950 759 99660 50209.5 5020950 -32411 32727 4989.66 498966 -128 127 0.22 22 +76 2 10066 99976 0.22822 300.22822 150.22822 15173.05105 0.22822 300.22824 150.22822 15173.05109 0.22822 300.22822 150.22822 15173.05022 2020-01-01 2020-01-02 2020-01-01 00:01:16 2020-01-02 03:46:16 2020-01-01 00:01:16.000 2020-01-02 03:46:16.000 76 99976 50026 5052626 76 99976 50026 5052626 -32493 32442 4605.009900990099 465106 -126 125 -2.99009900990099 -302 +760 2 10750 99661 2.28228 299.28228 150.78228 15078.22822 2.28228 299.2823 150.78228 15078.2285 2.28228 299.28228 150.78228 15078.22800 2020-01-01 2020-01-02 2020-01-01 00:12:40 2020-01-02 03:41:01 2020-01-01 00:12:40.000 2020-01-02 03:41:01.000 760 99661 50210.5 5021050 760 99661 50210.5 5021050 -32410 32728 4990.66 499066 -128 127 -1.34 -134 +761 2 10751 99662 2.28528 299.28528 150.78528 15078.52852 2.28528 299.28528 150.78528 15078.52814 2.28528 299.28528 150.78528 15078.52800 2020-01-01 2020-01-02 2020-01-01 00:12:41 2020-01-02 03:41:02 2020-01-01 00:12:41.000 2020-01-02 03:41:02.000 761 99662 50211.5 5021150 761 99662 50211.5 5021150 -32409 32729 4991.66 499166 -128 124 -2.9 -290 +762 2 10752 99663 2.28828 299.28828 150.78828 15078.82882 2.28828 299.2883 150.78828 15078.82889 2.28828 299.28828 150.78828 15078.82800 2020-01-01 2020-01-02 2020-01-01 00:12:42 2020-01-02 03:41:03 2020-01-01 00:12:42.000 2020-01-02 03:41:03.000 762 99663 50212.5 5021250 762 99663 50212.5 5021250 -32408 32730 4992.66 499266 -127 125 -1.9 -190 +763 2 10753 99664 2.29129 299.29129 150.79129 15079.12912 2.29129 299.2913 150.79129 15079.12904 2.29129 299.29129 150.79129 15079.12900 2020-01-01 2020-01-02 2020-01-01 00:12:43 2020-01-02 03:41:04 2020-01-01 00:12:43.000 2020-01-02 03:41:04.000 763 99664 50213.5 5021350 763 99664 50213.5 5021350 -32407 32731 4993.66 499366 -126 126 -0.9 -90 +764 2 10754 99665 2.29429 299.29429 150.79429 15079.42942 2.29429 299.29428 150.79429 15079.42933 2.29429 299.29429 150.79429 15079.42900 2020-01-01 2020-01-02 2020-01-01 00:12:44 2020-01-02 03:41:05 2020-01-01 00:12:44.000 2020-01-02 03:41:05.000 764 99665 50214.5 5021450 764 99665 50214.5 5021450 -32406 32732 4994.66 499466 -125 127 0.1 10 +765 2 10755 99666 2.29729 299.29729 150.79729 15079.72972 2.29729 299.2973 150.79729 15079.72996 2.29729 299.29729 150.79729 15079.72900 2020-01-01 2020-01-02 2020-01-01 00:12:45 2020-01-02 03:41:06 2020-01-01 00:12:45.000 2020-01-02 03:41:06.000 765 99666 50215.5 5021550 765 99666 50215.5 5021550 -32405 32733 4995.66 499566 -128 127 -1.46 -146 +766 2 10756 99667 2.3003 299.3003 150.8003 15080.03003 2.3003 299.3003 150.80029 15080.02961 2.30030 299.30030 150.8003 15080.03000 2020-01-01 2020-01-02 2020-01-01 00:12:46 2020-01-02 03:41:07 2020-01-01 00:12:46.000 2020-01-02 03:41:07.000 766 99667 50216.5 5021650 766 99667 50216.5 5021650 -32404 32734 4996.66 499666 -128 127 -3.02 -302 +767 2 10757 99668 2.3033 299.3033 150.8033 15080.33033 2.3033 299.3033 150.8033 15080.33036 2.30330 299.30330 150.8033 15080.33000 2020-01-01 2020-01-02 2020-01-01 00:12:47 2020-01-02 03:41:08 2020-01-01 00:12:47.000 2020-01-02 03:41:08.000 767 99668 50217.5 5021750 767 99668 50217.5 5021750 -32403 32735 4997.66 499766 -128 123 -4.58 -458 +768 2 10758 99669 2.3063 299.3063 150.8063 15080.63063 2.3063 299.3063 150.8063 15080.6305 2.30630 299.30630 150.8063 15080.63000 2020-01-01 2020-01-02 2020-01-01 00:12:48 2020-01-02 03:41:09 2020-01-01 00:12:48.000 2020-01-02 03:41:09.000 768 99669 50218.5 5021850 768 99669 50218.5 5021850 -32402 32736 4998.66 499866 -127 124 -3.58 -358 +769 2 10759 99670 2.3093 299.3093 150.8093 15080.93093 2.3093 299.3093 150.8093 15080.93084 2.30930 299.30930 150.8093 15080.93000 2020-01-01 2020-01-02 2020-01-01 00:12:49 2020-01-02 03:41:10 2020-01-01 00:12:49.000 2020-01-02 03:41:10.000 769 99670 50219.5 5021950 769 99670 50219.5 5021950 -32401 32737 4999.66 499966 -126 125 -2.58 -258 +77 2 10067 99977 0.23123 300.23123 150.23123 15173.35435 0.23123 300.23123 150.23123 15173.35439 0.23123 300.23123 150.23123 15173.35423 2020-01-01 2020-01-02 2020-01-01 00:01:17 2020-01-02 03:46:17 2020-01-01 00:01:17.000 2020-01-02 03:46:17.000 77 99977 50027 5052727 77 99977 50027 5052727 -32492 32443 4606.009900990099 465207 -125 126 -1.99009900990099 -201 +770 2 10760 99671 2.31231 299.31231 150.81231 15081.23123 2.31231 299.31232 150.81231 15081.23144 2.31231 299.31231 150.81231 15081.23100 2020-01-01 2020-01-02 2020-01-01 00:12:50 2020-01-02 03:41:11 2020-01-01 00:12:50.000 2020-01-02 03:41:11.000 770 99671 50220.5 5022050 770 99671 50220.5 5022050 -32400 32738 5000.66 500066 -125 126 -1.58 -158 +771 2 10761 99672 2.31531 299.31531 150.81531 15081.53153 2.31531 299.3153 150.81531 15081.53173 2.31531 299.31531 150.81531 15081.53100 2020-01-01 2020-01-02 2020-01-01 00:12:51 2020-01-02 03:41:12 2020-01-01 00:12:51.000 2020-01-02 03:41:12.000 771 99672 50221.5 5022150 771 99672 50221.5 5022150 -32399 32739 5001.66 500166 -124 127 -0.58 -58 +772 2 10762 99673 2.31831 299.31831 150.81831 15081.83183 2.31831 299.31833 150.81831 15081.83183 2.31831 299.31831 150.81831 15081.83100 2020-01-01 2020-01-02 2020-01-01 00:12:52 2020-01-02 03:41:13 2020-01-01 00:12:52.000 2020-01-02 03:41:13.000 772 99673 50222.5 5022250 772 99673 50222.5 5022250 -32398 32740 5002.66 500266 -128 127 -2.14 -214 +773 2 10763 99674 2.32132 299.32132 150.82132 15082.13213 2.32132 299.32132 150.82131 15082.13197 2.32132 299.32132 150.82132 15082.13200 2020-01-01 2020-01-02 2020-01-01 00:12:53 2020-01-02 03:41:14 2020-01-01 00:12:53.000 2020-01-02 03:41:14.000 773 99674 50223.5 5022350 773 99674 50223.5 5022350 -32397 32741 5003.66 500366 -128 123 -3.7 -370 +774 2 10764 99675 2.32432 299.32432 150.82432 15082.43243 2.32432 299.3243 150.82432 15082.43231 2.32432 299.32432 150.82432 15082.43200 2020-01-01 2020-01-02 2020-01-01 00:12:54 2020-01-02 03:41:15 2020-01-01 00:12:54.000 2020-01-02 03:41:15.000 774 99675 50224.5 5022450 774 99675 50224.5 5022450 -32396 32742 5004.66 500466 -127 124 -2.7 -270 +775 2 10765 99676 2.32732 299.32732 150.82732 15082.73273 2.32732 299.32733 150.82732 15082.73291 2.32732 299.32732 150.82732 15082.73200 2020-01-01 2020-01-02 2020-01-01 00:12:55 2020-01-02 03:41:16 2020-01-01 00:12:55.000 2020-01-02 03:41:16.000 775 99676 50225.5 5022550 775 99676 50225.5 5022550 -32395 32743 5005.66 500566 -126 125 -1.7 -170 +776 2 10766 99677 2.33033 299.33033 150.83033 15083.03303 2.33033 299.33032 150.83033 15083.0332 2.33033 299.33033 150.83033 15083.03300 2020-01-01 2020-01-02 2020-01-01 00:12:56 2020-01-02 03:41:17 2020-01-01 00:12:56.000 2020-01-02 03:41:17.000 776 99677 50226.5 5022650 776 99677 50226.5 5022650 -32394 32744 5006.66 500666 -125 126 -0.7 -70 777 2 10767 99678 2.33333 299.33333 150.83333 15083.33333 2.33333 299.33334 150.83333 15083.3333 2.33333 299.33333 150.83333000000002 15083.33300 2020-01-01 2020-01-02 2020-01-01 00:12:57 2020-01-02 03:41:18 2020-01-01 00:12:57.000 2020-01-02 03:41:18.000 777 99678 50227.5 5022750 777 99678 50227.5 5022750 -32393 32745 5007.66 500766 -124 127 0.3 30 -778 2 10768 99679 2.33633 299.33633 150.83633 15083.63363 2.33633 299.33633 150.83633 15083.63348 2.33633 299.33633 150.83633000000006 15083.63300 2020-01-01 2020-01-02 2020-01-01 00:12:58 2020-01-02 03:41:19 2020-01-01 00:12:58.000 2020-01-02 03:41:19.000 778 99679 50228.5 5022850 778 99679 50228.5 5022850 -32392 32746 5008.66 500866 -128 127 -1.26 -126 +778 2 10768 99679 2.33633 299.33633 150.83633 15083.63363 2.33633 299.33633 150.83633 15083.63348 2.33633 299.33633 150.83633 15083.63300 2020-01-01 2020-01-02 2020-01-01 00:12:58 2020-01-02 03:41:19 2020-01-01 00:12:58.000 2020-01-02 03:41:19.000 778 99679 50228.5 5022850 778 99679 50228.5 5022850 -32392 32746 5008.66 500866 -128 127 -1.26 -126 779 2 10769 99680 2.33933 299.33933 150.83933 15083.93393 2.33933 299.33932 150.83933 15083.93378 2.33933 299.33933 150.83933000000002 15083.93300 2020-01-01 2020-01-02 2020-01-01 00:12:59 2020-01-02 03:41:20 2020-01-01 00:12:59.000 2020-01-02 03:41:20.000 779 99680 50229.5 5022950 779 99680 50229.5 5022950 -32391 32747 5009.66 500966 -128 123 -2.82 -282 -78 2 10068 99978 0.23423 300.23423 150.23423 15173.65765 0.23423 300.23422 150.23423 15173.65769 0.23423 300.23423 150.23423000000003 15173.65723 2020-01-01 2020-01-02 2020-01-01 00:01:18 2020-01-02 03:46:18 2020-01-01 00:01:18.000 2020-01-02 03:46:18.000 78 99978 50028 5052828 78 99978 50028 5052828 -32491 32444 4607.009900990099 465308 -124 127 -0.9900990099009901 -100 -780 2 10770 99681 2.34234 299.34234 150.84234 15084.23423 2.34234 299.34235 150.84234 15084.23437 2.34234 299.34234 150.8423399999999 15084.23400 2020-01-01 2020-01-02 2020-01-01 00:13:00 2020-01-02 03:41:21 2020-01-01 00:13:00.000 2020-01-02 03:41:21.000 780 99681 50230.5 5023050 780 99681 50230.5 5023050 -32390 32748 5010.66 501066 -127 124 -1.82 -182 -781 2 10771 99682 2.34534 299.34534 150.84534 15084.53453 2.34534 299.34534 150.84534 15084.53467 2.34534 299.34534 150.8453399999999 15084.53400 2020-01-01 2020-01-02 2020-01-01 00:13:01 2020-01-02 03:41:22 2020-01-01 00:13:01.000 2020-01-02 03:41:22.000 781 99682 50231.5 5023150 781 99682 50231.5 5023150 -32389 32749 5011.66 501166 -126 125 -0.82 -82 -782 2 10772 99683 2.34834 299.34834 150.84834 15084.83483 2.34834 299.34836 150.84834 15084.83477 2.34834 299.34834 150.84834000000006 15084.83400 2020-01-01 2020-01-02 2020-01-01 00:13:02 2020-01-02 03:41:23 2020-01-01 00:13:02.000 2020-01-02 03:41:23.000 782 99683 50232.5 5023250 782 99683 50232.5 5023250 -32388 32750 5012.66 501266 -125 126 0.18 18 -783 2 10773 99684 2.35135 299.35135 150.85135 15085.13513 2.35135 299.35135 150.85134 15085.13495 2.35135 299.35135 150.85135000000014 15085.13500 2020-01-01 2020-01-02 2020-01-01 00:13:03 2020-01-02 03:41:24 2020-01-01 00:13:03.000 2020-01-02 03:41:24.000 783 99684 50233.5 5023350 783 99684 50233.5 5023350 -32387 32751 5013.66 501366 -124 127 1.18 118 -784 2 10774 99685 2.35435 299.35435 150.85435 15085.43543 2.35435 299.35434 150.85435 15085.43525 2.35435 299.35435 150.85434999999978 15085.43500 2020-01-01 2020-01-02 2020-01-01 00:13:04 2020-01-02 03:41:25 2020-01-01 00:13:04.000 2020-01-02 03:41:25.000 784 99685 50234.5 5023450 784 99685 50234.5 5023450 -32386 32752 5014.66 501466 -128 127 -0.38 -38 -785 2 10775 99686 2.35735 299.35735 150.85735 15085.73573 2.35735 299.35736 150.85736 15085.736 2.35735 299.35735 150.85735000000017 15085.73500 2020-01-01 2020-01-02 2020-01-01 00:13:05 2020-01-02 03:41:26 2020-01-01 00:13:05.000 2020-01-02 03:41:26.000 785 99686 50235.5 5023550 785 99686 50235.5 5023550 -32385 32753 5015.66 501566 -128 127 -1.94 -194 -786 2 10776 99687 2.36036 299.36036 150.86036 15086.03603 2.36036 299.36035 150.86036 15086.03614 2.36036 299.36036 150.86036000000004 15086.03600 2020-01-01 2020-01-02 2020-01-01 00:13:06 2020-01-02 03:41:27 2020-01-01 00:13:06.000 2020-01-02 03:41:27.000 786 99687 50236.5 5023650 786 99687 50236.5 5023650 -32384 32754 5016.66 501666 -128 124 -3.5 -350 -787 2 10777 99688 2.36336 299.36336 150.86336 15086.33633 2.36336 299.36337 150.86336 15086.33628 2.36336 299.36336 150.86335999999991 15086.33600 2020-01-01 2020-01-02 2020-01-01 00:13:07 2020-01-02 03:41:28 2020-01-01 00:13:07.000 2020-01-02 03:41:28.000 787 99688 50237.5 5023750 787 99688 50237.5 5023750 -32383 32755 5017.66 501766 -127 125 -2.5 -250 -788 2 10778 99689 2.36636 299.36636 150.86636 15086.63663 2.36636 299.36636 150.86636 15086.63641 2.36636 299.36636 150.86636 15086.63600 2020-01-01 2020-01-02 2020-01-01 00:13:08 2020-01-02 03:41:29 2020-01-01 00:13:08.000 2020-01-02 03:41:29.000 788 99689 50238.5 5023850 788 99689 50238.5 5023850 -32382 32756 5018.66 501866 -126 126 -1.5 -150 -789 2 10779 99690 2.36936 299.36936 150.86936 15086.93693 2.36936 299.36935 150.86936 15086.93672 2.36936 299.36936 150.86936000000006 15086.93600 2020-01-01 2020-01-02 2020-01-01 00:13:09 2020-01-02 03:41:30 2020-01-01 00:13:09.000 2020-01-02 03:41:30.000 789 99690 50239.5 5023950 789 99690 50239.5 5023950 -32381 32757 5019.66 501966 -125 127 -0.5 -50 -79 2 10069 99979 0.23723 300.23723 150.23723 15173.96096 0.23723 300.23724 150.23724 15173.96129 0.23723 300.23723 150.23723000000015 15173.96023 2020-01-01 2020-01-02 2020-01-01 00:01:19 2020-01-02 03:46:19 2020-01-01 00:01:19.000 2020-01-02 03:46:19.000 79 99979 50029 5052929 79 99979 50029 5052929 -32490 32445 4608.009900990099 465409 -128 127 -2.5247524752475248 -255 -790 2 10780 99691 2.37237 299.37237 150.87237 15087.23723 2.37237 299.37238 150.87237 15087.23747 2.37237 299.37237 150.87236999999982 15087.23700 2020-01-01 2020-01-02 2020-01-01 00:13:10 2020-01-02 03:41:31 2020-01-01 00:13:10.000 2020-01-02 03:41:31.000 790 99691 50240.5 5024050 790 99691 50240.5 5024050 -32380 32758 5020.66 502066 -128 127 -2.06 -206 -791 2 10781 99692 2.37537 299.37537 150.87537 15087.53753 2.37537 299.37537 150.87537 15087.53761 2.37537 299.37537 150.87536999999986 15087.53700 2020-01-01 2020-01-02 2020-01-01 00:13:11 2020-01-02 03:41:32 2020-01-01 00:13:11.000 2020-01-02 03:41:32.000 791 99692 50241.5 5024150 791 99692 50241.5 5024150 -32379 32759 5021.66 502166 -128 127 -3.62 -362 -792 2 10782 99693 2.37837 299.37837 150.87837 15087.83783 2.37837 299.3784 150.87837 15087.83775 2.37837 299.37837 150.87837000000016 15087.83700 2020-01-01 2020-01-02 2020-01-01 00:13:12 2020-01-02 03:41:33 2020-01-01 00:13:12.000 2020-01-02 03:41:33.000 792 99693 50242.5 5024250 792 99693 50242.5 5024250 -32378 32760 5022.66 502266 -128 123 -5.18 -518 -793 2 10783 99694 2.38138 299.38138 150.88138 15088.13813 2.38138 299.38138 150.88137 15088.13789 2.38138 299.38138 150.8813800000001 15088.13800 2020-01-01 2020-01-02 2020-01-01 00:13:13 2020-01-02 03:41:34 2020-01-01 00:13:13.000 2020-01-02 03:41:34.000 793 99694 50243.5 5024350 793 99694 50243.5 5024350 -32377 32761 5023.66 502366 -127 124 -4.18 -418 -794 2 10784 99695 2.38438 299.38438 150.88438 15088.43843 2.38438 299.3844 150.88438 15088.43864 2.38438 299.38438 150.88438000000005 15088.43800 2020-01-01 2020-01-02 2020-01-01 00:13:14 2020-01-02 03:41:35 2020-01-01 00:13:14.000 2020-01-02 03:41:35.000 794 99695 50244.5 5024450 794 99695 50244.5 5024450 -32376 32762 5024.66 502466 -126 125 -3.18 -318 -795 2 10785 99696 2.38738 299.38738 150.88738 15088.73873 2.38738 299.3874 150.88738 15088.73894 2.38738 299.38738 150.8873800000001 15088.73800 2020-01-01 2020-01-02 2020-01-01 00:13:15 2020-01-02 03:41:36 2020-01-01 00:13:15.000 2020-01-02 03:41:36.000 795 99696 50245.5 5024550 795 99696 50245.5 5024550 -32375 32763 5025.66 502566 -125 126 -2.18 -218 -796 2 10786 99697 2.39039 299.39039 150.89039 15089.03903 2.39039 299.39038 150.89039 15089.03908 2.39039 299.39039 150.89038999999997 15089.03900 2020-01-01 2020-01-02 2020-01-01 00:13:16 2020-01-02 03:41:37 2020-01-01 00:13:16.000 2020-01-02 03:41:37.000 796 99697 50246.5 5024650 796 99697 50246.5 5024650 -32374 32764 5026.66 502666 -124 127 -1.18 -118 -797 2 10787 99698 2.39339 299.39339 150.89339 15089.33933 2.39339 299.3934 150.89339 15089.33921 2.39339 299.39339 150.8933899999999 15089.33900 2020-01-01 2020-01-02 2020-01-01 00:13:17 2020-01-02 03:41:38 2020-01-01 00:13:17.000 2020-01-02 03:41:38.000 797 99698 50247.5 5024750 797 99698 50247.5 5024750 -32373 32765 5027.66 502766 -128 127 -2.74 -274 -798 2 10788 99699 2.39639 299.39639 150.89639 15089.63963 2.39639 299.3964 150.89639 15089.63936 2.39639 299.39639 150.8963899999999 15089.63900 2020-01-01 2020-01-02 2020-01-01 00:13:18 2020-01-02 03:41:39 2020-01-01 00:13:18.000 2020-01-02 03:41:39.000 798 99699 50248.5 5024850 798 99699 50248.5 5024850 -32372 32766 5028.66 502866 -128 123 -4.3 -430 -799 2 10789 99700 2.39939 299.39939 150.89939 15089.93993 2.39939 299.3994 150.8994 15089.94011 2.39939 299.39939 150.89938999999998 15089.93900 2020-01-01 2020-01-02 2020-01-01 00:13:19 2020-01-02 03:41:40 2020-01-01 00:13:19.000 2020-01-02 03:41:40.000 799 99700 50249.5 5024950 799 99700 50249.5 5024950 -32371 32767 5029.66 502966 -127 124 -3.3 -330 -8 2 1007 9998 0.02402 300.02402 150.02402 15152.42642 0.02402 300.02402 150.02402 15152.42607 0.02402 300.02402 150.02402000000012 15152.42602 2020-01-01 2020-01-02 2020-01-01 00:00:08 2020-01-02 03:45:08 2020-01-01 00:00:08.000 2020-01-02 03:45:08.000 8 99908 49958 5045758 8 99908 49958 5045758 -32561 32374 4537.009900990099 458238 -125 126 -0.019801980198019802 -2 -80 2 10070 99980 0.24024 300.24024 150.24024 15174.26426 0.24024 300.24023 150.24023 15174.26397 0.24024 300.24024 150.2402399999998 15174.26424 2020-01-01 2020-01-02 2020-01-01 00:01:20 2020-01-02 03:46:20 2020-01-01 00:01:20.000 2020-01-02 03:46:20.000 80 99980 50030 5053030 80 99980 50030 5053030 -32489 32446 4609.009900990099 465510 -128 123 -4.0594059405940595 -410 -800 2 10790 99701 2.4024 299.4024 150.9024 15090.24024 2.4024 299.4024 150.9024 15090.24041 2.40240 299.40240 150.90240000000017 15090.24000 2020-01-01 2020-01-02 2020-01-01 00:13:20 2020-01-02 03:41:41 2020-01-01 00:13:20.000 2020-01-02 03:41:41.000 800 99701 50250.5 5025050 800 99701 50250.5 5025050 -32768 32167 4375.3 437530 -126 125 -2.3 -230 -801 2 10791 99702 2.4054 299.4054 150.9054 15090.54054 2.4054 299.4054 150.9054 15090.54058 2.40540 299.40540 150.90539999999984 15090.54000 2020-01-01 2020-01-02 2020-01-01 00:13:21 2020-01-02 03:41:42 2020-01-01 00:13:21.000 2020-01-02 03:41:42.000 801 99702 50251.5 5025150 801 99702 50251.5 5025150 -32767 32168 4376.3 437630 -125 126 -1.3 -130 -802 2 10792 99703 2.4084 299.4084 150.9084 15090.84084 2.4084 299.40842 150.9084 15090.84069 2.40840 299.40840 150.90840000000009 15090.84000 2020-01-01 2020-01-02 2020-01-01 00:13:22 2020-01-02 03:41:43 2020-01-01 00:13:22.000 2020-01-02 03:41:43.000 802 99703 50252.5 5025250 802 99703 50252.5 5025250 -32766 32169 4377.3 437730 -124 127 -0.3 -30 -803 2 10793 99704 2.41141 299.41141 150.91141 15091.14114 2.41141 299.4114 150.9114 15091.14098 2.41141 299.41141 150.91141000000007 15091.14100 2020-01-01 2020-01-02 2020-01-01 00:13:23 2020-01-02 03:41:44 2020-01-01 00:13:23.000 2020-01-02 03:41:44.000 803 99704 50253.5 5025350 803 99704 50253.5 5025350 -32765 32170 4378.3 437830 -128 127 -1.86 -186 -804 2 10794 99705 2.41441 299.41441 150.91441 15091.44144 2.41441 299.41443 150.91441 15091.44158 2.41441 299.41441 150.91440999999995 15091.44100 2020-01-01 2020-01-02 2020-01-01 00:13:24 2020-01-02 03:41:45 2020-01-01 00:13:24.000 2020-01-02 03:41:45.000 804 99705 50254.5 5025450 804 99705 50254.5 5025450 -32764 32171 4379.3 437930 -128 123 -3.42 -342 +78 2 10068 99978 0.23423 300.23423 150.23423 15173.65765 0.23423 300.23422 150.23423 15173.65769 0.23423 300.23423 150.23423 15173.65723 2020-01-01 2020-01-02 2020-01-01 00:01:18 2020-01-02 03:46:18 2020-01-01 00:01:18.000 2020-01-02 03:46:18.000 78 99978 50028 5052828 78 99978 50028 5052828 -32491 32444 4607.009900990099 465308 -124 127 -0.9900990099009901 -100 +780 2 10770 99681 2.34234 299.34234 150.84234 15084.23423 2.34234 299.34235 150.84234 15084.23437 2.34234 299.34234 150.84234 15084.23400 2020-01-01 2020-01-02 2020-01-01 00:13:00 2020-01-02 03:41:21 2020-01-01 00:13:00.000 2020-01-02 03:41:21.000 780 99681 50230.5 5023050 780 99681 50230.5 5023050 -32390 32748 5010.66 501066 -127 124 -1.82 -182 +781 2 10771 99682 2.34534 299.34534 150.84534 15084.53453 2.34534 299.34534 150.84534 15084.53467 2.34534 299.34534 150.84534 15084.53400 2020-01-01 2020-01-02 2020-01-01 00:13:01 2020-01-02 03:41:22 2020-01-01 00:13:01.000 2020-01-02 03:41:22.000 781 99682 50231.5 5023150 781 99682 50231.5 5023150 -32389 32749 5011.66 501166 -126 125 -0.82 -82 +782 2 10772 99683 2.34834 299.34834 150.84834 15084.83483 2.34834 299.34836 150.84834 15084.83477 2.34834 299.34834 150.84834 15084.83400 2020-01-01 2020-01-02 2020-01-01 00:13:02 2020-01-02 03:41:23 2020-01-01 00:13:02.000 2020-01-02 03:41:23.000 782 99683 50232.5 5023250 782 99683 50232.5 5023250 -32388 32750 5012.66 501266 -125 126 0.18 18 +783 2 10773 99684 2.35135 299.35135 150.85135 15085.13513 2.35135 299.35135 150.85134 15085.13495 2.35135 299.35135 150.85135 15085.13500 2020-01-01 2020-01-02 2020-01-01 00:13:03 2020-01-02 03:41:24 2020-01-01 00:13:03.000 2020-01-02 03:41:24.000 783 99684 50233.5 5023350 783 99684 50233.5 5023350 -32387 32751 5013.66 501366 -124 127 1.18 118 +784 2 10774 99685 2.35435 299.35435 150.85435 15085.43543 2.35435 299.35434 150.85435 15085.43525 2.35435 299.35435 150.85434999999998 15085.43500 2020-01-01 2020-01-02 2020-01-01 00:13:04 2020-01-02 03:41:25 2020-01-01 00:13:04.000 2020-01-02 03:41:25.000 784 99685 50234.5 5023450 784 99685 50234.5 5023450 -32386 32752 5014.66 501466 -128 127 -0.38 -38 +785 2 10775 99686 2.35735 299.35735 150.85735 15085.73573 2.35735 299.35736 150.85736 15085.736 2.35735 299.35735 150.85735 15085.73500 2020-01-01 2020-01-02 2020-01-01 00:13:05 2020-01-02 03:41:26 2020-01-01 00:13:05.000 2020-01-02 03:41:26.000 785 99686 50235.5 5023550 785 99686 50235.5 5023550 -32385 32753 5015.66 501566 -128 127 -1.94 -194 +786 2 10776 99687 2.36036 299.36036 150.86036 15086.03603 2.36036 299.36035 150.86036 15086.03614 2.36036 299.36036 150.86036000000001 15086.03600 2020-01-01 2020-01-02 2020-01-01 00:13:06 2020-01-02 03:41:27 2020-01-01 00:13:06.000 2020-01-02 03:41:27.000 786 99687 50236.5 5023650 786 99687 50236.5 5023650 -32384 32754 5016.66 501666 -128 124 -3.5 -350 +787 2 10777 99688 2.36336 299.36336 150.86336 15086.33633 2.36336 299.36337 150.86336 15086.33628 2.36336 299.36336 150.86336 15086.33600 2020-01-01 2020-01-02 2020-01-01 00:13:07 2020-01-02 03:41:28 2020-01-01 00:13:07.000 2020-01-02 03:41:28.000 787 99688 50237.5 5023750 787 99688 50237.5 5023750 -32383 32755 5017.66 501766 -127 125 -2.5 -250 +788 2 10778 99689 2.36636 299.36636 150.86636 15086.63663 2.36636 299.36636 150.86636 15086.63641 2.36636 299.36636 150.86636000000001 15086.63600 2020-01-01 2020-01-02 2020-01-01 00:13:08 2020-01-02 03:41:29 2020-01-01 00:13:08.000 2020-01-02 03:41:29.000 788 99689 50238.5 5023850 788 99689 50238.5 5023850 -32382 32756 5018.66 501866 -126 126 -1.5 -150 +789 2 10779 99690 2.36936 299.36936 150.86936 15086.93693 2.36936 299.36935 150.86936 15086.93672 2.36936 299.36936 150.86936 15086.93600 2020-01-01 2020-01-02 2020-01-01 00:13:09 2020-01-02 03:41:30 2020-01-01 00:13:09.000 2020-01-02 03:41:30.000 789 99690 50239.5 5023950 789 99690 50239.5 5023950 -32381 32757 5019.66 501966 -125 127 -0.5 -50 +79 2 10069 99979 0.23723 300.23723 150.23723 15173.96096 0.23723 300.23724 150.23724 15173.96129 0.23723 300.23723 150.23723 15173.96023 2020-01-01 2020-01-02 2020-01-01 00:01:19 2020-01-02 03:46:19 2020-01-01 00:01:19.000 2020-01-02 03:46:19.000 79 99979 50029 5052929 79 99979 50029 5052929 -32490 32445 4608.009900990099 465409 -128 127 -2.5247524752475248 -255 +790 2 10780 99691 2.37237 299.37237 150.87237 15087.23723 2.37237 299.37238 150.87237 15087.23747 2.37237 299.37237 150.87237 15087.23700 2020-01-01 2020-01-02 2020-01-01 00:13:10 2020-01-02 03:41:31 2020-01-01 00:13:10.000 2020-01-02 03:41:31.000 790 99691 50240.5 5024050 790 99691 50240.5 5024050 -32380 32758 5020.66 502066 -128 127 -2.06 -206 +791 2 10781 99692 2.37537 299.37537 150.87537 15087.53753 2.37537 299.37537 150.87537 15087.53761 2.37537 299.37537 150.87537 15087.53700 2020-01-01 2020-01-02 2020-01-01 00:13:11 2020-01-02 03:41:32 2020-01-01 00:13:11.000 2020-01-02 03:41:32.000 791 99692 50241.5 5024150 791 99692 50241.5 5024150 -32379 32759 5021.66 502166 -128 127 -3.62 -362 +792 2 10782 99693 2.37837 299.37837 150.87837 15087.83783 2.37837 299.3784 150.87837 15087.83775 2.37837 299.37837 150.87837 15087.83700 2020-01-01 2020-01-02 2020-01-01 00:13:12 2020-01-02 03:41:33 2020-01-01 00:13:12.000 2020-01-02 03:41:33.000 792 99693 50242.5 5024250 792 99693 50242.5 5024250 -32378 32760 5022.66 502266 -128 123 -5.18 -518 +793 2 10783 99694 2.38138 299.38138 150.88138 15088.13813 2.38138 299.38138 150.88137 15088.13789 2.38138 299.38138 150.88138 15088.13800 2020-01-01 2020-01-02 2020-01-01 00:13:13 2020-01-02 03:41:34 2020-01-01 00:13:13.000 2020-01-02 03:41:34.000 793 99694 50243.5 5024350 793 99694 50243.5 5024350 -32377 32761 5023.66 502366 -127 124 -4.18 -418 +794 2 10784 99695 2.38438 299.38438 150.88438 15088.43843 2.38438 299.3844 150.88438 15088.43864 2.38438 299.38438 150.88438 15088.43800 2020-01-01 2020-01-02 2020-01-01 00:13:14 2020-01-02 03:41:35 2020-01-01 00:13:14.000 2020-01-02 03:41:35.000 794 99695 50244.5 5024450 794 99695 50244.5 5024450 -32376 32762 5024.66 502466 -126 125 -3.18 -318 +795 2 10785 99696 2.38738 299.38738 150.88738 15088.73873 2.38738 299.3874 150.88738 15088.73894 2.38738 299.38738 150.88738 15088.73800 2020-01-01 2020-01-02 2020-01-01 00:13:15 2020-01-02 03:41:36 2020-01-01 00:13:15.000 2020-01-02 03:41:36.000 795 99696 50245.5 5024550 795 99696 50245.5 5024550 -32375 32763 5025.66 502566 -125 126 -2.18 -218 +796 2 10786 99697 2.39039 299.39039 150.89039 15089.03903 2.39039 299.39038 150.89039 15089.03908 2.39039 299.39039 150.89039 15089.03900 2020-01-01 2020-01-02 2020-01-01 00:13:16 2020-01-02 03:41:37 2020-01-01 00:13:16.000 2020-01-02 03:41:37.000 796 99697 50246.5 5024650 796 99697 50246.5 5024650 -32374 32764 5026.66 502666 -124 127 -1.18 -118 +797 2 10787 99698 2.39339 299.39339 150.89339 15089.33933 2.39339 299.3934 150.89339 15089.33921 2.39339 299.39339 150.89339 15089.33900 2020-01-01 2020-01-02 2020-01-01 00:13:17 2020-01-02 03:41:38 2020-01-01 00:13:17.000 2020-01-02 03:41:38.000 797 99698 50247.5 5024750 797 99698 50247.5 5024750 -32373 32765 5027.66 502766 -128 127 -2.74 -274 +798 2 10788 99699 2.39639 299.39639 150.89639 15089.63963 2.39639 299.3964 150.89639 15089.63936 2.39639 299.39639 150.89639 15089.63900 2020-01-01 2020-01-02 2020-01-01 00:13:18 2020-01-02 03:41:39 2020-01-01 00:13:18.000 2020-01-02 03:41:39.000 798 99699 50248.5 5024850 798 99699 50248.5 5024850 -32372 32766 5028.66 502866 -128 123 -4.3 -430 +799 2 10789 99700 2.39939 299.39939 150.89939 15089.93993 2.39939 299.3994 150.8994 15089.94011 2.39939 299.39939 150.89939 15089.93900 2020-01-01 2020-01-02 2020-01-01 00:13:19 2020-01-02 03:41:40 2020-01-01 00:13:19.000 2020-01-02 03:41:40.000 799 99700 50249.5 5024950 799 99700 50249.5 5024950 -32371 32767 5029.66 502966 -127 124 -3.3 -330 +8 2 1007 9998 0.02402 300.02402 150.02402 15152.42642 0.02402 300.02402 150.02402 15152.42607 0.02402 300.02402 150.02402 15152.42602 2020-01-01 2020-01-02 2020-01-01 00:00:08 2020-01-02 03:45:08 2020-01-01 00:00:08.000 2020-01-02 03:45:08.000 8 99908 49958 5045758 8 99908 49958 5045758 -32561 32374 4537.009900990099 458238 -125 126 -0.019801980198019802 -2 +80 2 10070 99980 0.24024 300.24024 150.24024 15174.26426 0.24024 300.24023 150.24023 15174.26397 0.24024 300.24024 150.24024 15174.26424 2020-01-01 2020-01-02 2020-01-01 00:01:20 2020-01-02 03:46:20 2020-01-01 00:01:20.000 2020-01-02 03:46:20.000 80 99980 50030 5053030 80 99980 50030 5053030 -32489 32446 4609.009900990099 465510 -128 123 -4.0594059405940595 -410 +800 2 10790 99701 2.4024 299.4024 150.9024 15090.24024 2.4024 299.4024 150.9024 15090.24041 2.40240 299.40240 150.9024 15090.24000 2020-01-01 2020-01-02 2020-01-01 00:13:20 2020-01-02 03:41:41 2020-01-01 00:13:20.000 2020-01-02 03:41:41.000 800 99701 50250.5 5025050 800 99701 50250.5 5025050 -32768 32167 4375.3 437530 -126 125 -2.3 -230 +801 2 10791 99702 2.4054 299.4054 150.9054 15090.54054 2.4054 299.4054 150.9054 15090.54058 2.40540 299.40540 150.90540000000001 15090.54000 2020-01-01 2020-01-02 2020-01-01 00:13:21 2020-01-02 03:41:42 2020-01-01 00:13:21.000 2020-01-02 03:41:42.000 801 99702 50251.5 5025150 801 99702 50251.5 5025150 -32767 32168 4376.3 437630 -125 126 -1.3 -130 +802 2 10792 99703 2.4084 299.4084 150.9084 15090.84084 2.4084 299.40842 150.9084 15090.84069 2.40840 299.40840 150.9084 15090.84000 2020-01-01 2020-01-02 2020-01-01 00:13:22 2020-01-02 03:41:43 2020-01-01 00:13:22.000 2020-01-02 03:41:43.000 802 99703 50252.5 5025250 802 99703 50252.5 5025250 -32766 32169 4377.3 437730 -124 127 -0.3 -30 +803 2 10793 99704 2.41141 299.41141 150.91141 15091.14114 2.41141 299.4114 150.9114 15091.14098 2.41141 299.41141 150.91141 15091.14100 2020-01-01 2020-01-02 2020-01-01 00:13:23 2020-01-02 03:41:44 2020-01-01 00:13:23.000 2020-01-02 03:41:44.000 803 99704 50253.5 5025350 803 99704 50253.5 5025350 -32765 32170 4378.3 437830 -128 127 -1.86 -186 +804 2 10794 99705 2.41441 299.41441 150.91441 15091.44144 2.41441 299.41443 150.91441 15091.44158 2.41441 299.41441 150.91441 15091.44100 2020-01-01 2020-01-02 2020-01-01 00:13:24 2020-01-02 03:41:45 2020-01-01 00:13:24.000 2020-01-02 03:41:45.000 804 99705 50254.5 5025450 804 99705 50254.5 5025450 -32764 32171 4379.3 437930 -128 123 -3.42 -342 805 2 10795 99706 2.41741 299.41741 150.91741 15091.74174 2.41741 299.41742 150.91741 15091.74188 2.41741 299.41741 150.91741 15091.74100 2020-01-01 2020-01-02 2020-01-01 00:13:25 2020-01-02 03:41:46 2020-01-01 00:13:25.000 2020-01-02 03:41:46.000 805 99706 50255.5 5025550 805 99706 50255.5 5025550 -32763 32172 4380.3 438030 -127 124 -2.42 -242 -806 2 10796 99707 2.42042 299.42042 150.92042 15092.04204 2.42042 299.4204 150.92042 15092.04205 2.42042 299.42042 150.92042000000018 15092.04200 2020-01-01 2020-01-02 2020-01-01 00:13:26 2020-01-02 03:41:47 2020-01-01 00:13:26.000 2020-01-02 03:41:47.000 806 99707 50256.5 5025650 806 99707 50256.5 5025650 -32762 32173 4381.3 438130 -126 125 -1.42 -142 -807 2 10797 99708 2.42342 299.42342 150.92342 15092.34234 2.42342 299.42343 150.92342 15092.34216 2.42342 299.42342 150.92341999999985 15092.34200 2020-01-01 2020-01-02 2020-01-01 00:13:27 2020-01-02 03:41:48 2020-01-01 00:13:27.000 2020-01-02 03:41:48.000 807 99708 50257.5 5025750 807 99708 50257.5 5025750 -32761 32174 4382.3 438230 -125 126 -0.42 -42 -808 2 10798 99709 2.42642 299.42642 150.92642 15092.64264 2.42642 299.42642 150.92642 15092.64245 2.42642 299.42642 150.92641999999987 15092.64200 2020-01-01 2020-01-02 2020-01-01 00:13:28 2020-01-02 03:41:49 2020-01-01 00:13:28.000 2020-01-02 03:41:49.000 808 99709 50258.5 5025850 808 99709 50258.5 5025850 -32760 32175 4383.3 438330 -124 127 0.58 58 -809 2 10799 99710 2.42942 299.42942 150.92942 15092.94294 2.42942 299.42944 150.92943 15092.94305 2.42942 299.42942 150.9294200000002 15092.94200 2020-01-01 2020-01-02 2020-01-01 00:13:29 2020-01-02 03:41:50 2020-01-01 00:13:29.000 2020-01-02 03:41:50.000 809 99710 50259.5 5025950 809 99710 50259.5 5025950 -32759 32176 4384.3 438430 -128 127 -0.98 -98 -81 2 10071 99981 0.24324 300.24324 150.24324 15174.56756 0.24324 300.24326 150.24324 15174.56758 0.24324 300.24324 150.24323999999987 15174.56724 2020-01-01 2020-01-02 2020-01-01 00:01:21 2020-01-02 03:46:21 2020-01-01 00:01:21.000 2020-01-02 03:46:21.000 81 99981 50031 5053131 81 99981 50031 5053131 -32488 32447 4610.009900990099 465611 -127 124 -3.0594059405940595 -309 -810 2 10800 99711 2.43243 299.43243 150.93243 15093.24324 2.43243 299.43243 150.93243 15093.24338 2.43243 299.43243 150.93243000000012 15093.24300 2020-01-01 2020-01-02 2020-01-01 00:13:30 2020-01-02 03:41:51 2020-01-01 00:13:30.000 2020-01-02 03:41:51.000 810 99711 50260.5 5026050 810 99711 50260.5 5026050 -32758 32177 4385.3 438530 -128 127 -2.54 -254 -811 2 10801 99712 2.43543 299.43543 150.93543 15093.54354 2.43543 299.43542 150.93543 15093.54353 2.43543 299.43543 150.9354299999998 15093.54300 2020-01-01 2020-01-02 2020-01-01 00:13:31 2020-01-02 03:41:52 2020-01-01 00:13:31.000 2020-01-02 03:41:52.000 811 99712 50261.5 5026150 811 99712 50261.5 5026150 -32757 32178 4386.3 438630 -128 124 -4.1 -410 -812 2 10802 99713 2.43843 299.43843 150.93843 15093.84384 2.43843 299.43845 150.93844 15093.84428 2.43843 299.43843 150.9384300000001 15093.84300 2020-01-01 2020-01-02 2020-01-01 00:13:32 2020-01-02 03:41:53 2020-01-01 00:13:32.000 2020-01-02 03:41:53.000 812 99713 50262.5 5026250 812 99713 50262.5 5026250 -32756 32179 4387.3 438730 -127 125 -3.1 -310 +806 2 10796 99707 2.42042 299.42042 150.92042 15092.04204 2.42042 299.4204 150.92042 15092.04205 2.42042 299.42042 150.92042 15092.04200 2020-01-01 2020-01-02 2020-01-01 00:13:26 2020-01-02 03:41:47 2020-01-01 00:13:26.000 2020-01-02 03:41:47.000 806 99707 50256.5 5025650 806 99707 50256.5 5025650 -32762 32173 4381.3 438130 -126 125 -1.42 -142 +807 2 10797 99708 2.42342 299.42342 150.92342 15092.34234 2.42342 299.42343 150.92342 15092.34216 2.42342 299.42342 150.92342 15092.34200 2020-01-01 2020-01-02 2020-01-01 00:13:27 2020-01-02 03:41:48 2020-01-01 00:13:27.000 2020-01-02 03:41:48.000 807 99708 50257.5 5025750 807 99708 50257.5 5025750 -32761 32174 4382.3 438230 -125 126 -0.42 -42 +808 2 10798 99709 2.42642 299.42642 150.92642 15092.64264 2.42642 299.42642 150.92642 15092.64245 2.42642 299.42642 150.92642 15092.64200 2020-01-01 2020-01-02 2020-01-01 00:13:28 2020-01-02 03:41:49 2020-01-01 00:13:28.000 2020-01-02 03:41:49.000 808 99709 50258.5 5025850 808 99709 50258.5 5025850 -32760 32175 4383.3 438330 -124 127 0.58 58 +809 2 10799 99710 2.42942 299.42942 150.92942 15092.94294 2.42942 299.42944 150.92943 15092.94305 2.42942 299.42942 150.92942 15092.94200 2020-01-01 2020-01-02 2020-01-01 00:13:29 2020-01-02 03:41:50 2020-01-01 00:13:29.000 2020-01-02 03:41:50.000 809 99710 50259.5 5025950 809 99710 50259.5 5025950 -32759 32176 4384.3 438430 -128 127 -0.98 -98 +81 2 10071 99981 0.24324 300.24324 150.24324 15174.56756 0.24324 300.24326 150.24324 15174.56758 0.24324 300.24324 150.24324000000001 15174.56724 2020-01-01 2020-01-02 2020-01-01 00:01:21 2020-01-02 03:46:21 2020-01-01 00:01:21.000 2020-01-02 03:46:21.000 81 99981 50031 5053131 81 99981 50031 5053131 -32488 32447 4610.009900990099 465611 -127 124 -3.0594059405940595 -309 +810 2 10800 99711 2.43243 299.43243 150.93243 15093.24324 2.43243 299.43243 150.93243 15093.24338 2.43243 299.43243 150.93243 15093.24300 2020-01-01 2020-01-02 2020-01-01 00:13:30 2020-01-02 03:41:51 2020-01-01 00:13:30.000 2020-01-02 03:41:51.000 810 99711 50260.5 5026050 810 99711 50260.5 5026050 -32758 32177 4385.3 438530 -128 127 -2.54 -254 +811 2 10801 99712 2.43543 299.43543 150.93543 15093.54354 2.43543 299.43542 150.93543 15093.54353 2.43543 299.43543 150.93543 15093.54300 2020-01-01 2020-01-02 2020-01-01 00:13:31 2020-01-02 03:41:52 2020-01-01 00:13:31.000 2020-01-02 03:41:52.000 811 99712 50261.5 5026150 811 99712 50261.5 5026150 -32757 32178 4386.3 438630 -128 124 -4.1 -410 +812 2 10802 99713 2.43843 299.43843 150.93843 15093.84384 2.43843 299.43845 150.93844 15093.84428 2.43843 299.43843 150.93843 15093.84300 2020-01-01 2020-01-02 2020-01-01 00:13:32 2020-01-02 03:41:53 2020-01-01 00:13:32.000 2020-01-02 03:41:53.000 812 99713 50262.5 5026250 812 99713 50262.5 5026250 -32756 32179 4387.3 438730 -127 125 -3.1 -310 813 2 10803 99714 2.44144 299.44144 150.94144 15094.14414 2.44144 299.44144 150.94143 15094.14392 2.44144 299.44144 150.94144 15094.14400 2020-01-01 2020-01-02 2020-01-01 00:13:33 2020-01-02 03:41:54 2020-01-01 00:13:33.000 2020-01-02 03:41:54.000 813 99714 50263.5 5026350 813 99714 50263.5 5026350 -32755 32180 4388.3 438830 -126 126 -2.1 -210 -814 2 10804 99715 2.44444 299.44444 150.94444 15094.44444 2.44444 299.44446 150.94444 15094.44452 2.44444 299.44444 150.94443999999996 15094.44400 2020-01-01 2020-01-02 2020-01-01 00:13:34 2020-01-02 03:41:55 2020-01-01 00:13:34.000 2020-01-02 03:41:55.000 814 99715 50264.5 5026450 814 99715 50264.5 5026450 -32754 32181 4389.3 438930 -125 127 -1.1 -110 -815 2 10805 99716 2.44744 299.44744 150.94744 15094.74474 2.44744 299.44745 150.94744 15094.74485 2.44744 299.44744 150.94743999999994 15094.74400 2020-01-01 2020-01-02 2020-01-01 00:13:35 2020-01-02 03:41:56 2020-01-01 00:13:35.000 2020-01-02 03:41:56.000 815 99716 50265.5 5026550 815 99716 50265.5 5026550 -32753 32182 4390.3 439030 -128 127 -2.66 -266 -816 2 10806 99717 2.45045 299.45045 150.95045 15095.04504 2.45045 299.45044 150.95045 15095.045 2.45045 299.45045 150.9504500000001 15095.04500 2020-01-01 2020-01-02 2020-01-01 00:13:36 2020-01-02 03:41:57 2020-01-01 00:13:36.000 2020-01-02 03:41:57.000 816 99717 50266.5 5026650 816 99717 50266.5 5026650 -32752 32183 4391.3 439130 -128 127 -4.22 -422 -817 2 10807 99718 2.45345 299.45345 150.95345 15095.34534 2.45345 299.45346 150.95345 15095.34574 2.45345 299.45345 150.9534500000002 15095.34500 2020-01-01 2020-01-02 2020-01-01 00:13:37 2020-01-02 03:41:58 2020-01-01 00:13:37.000 2020-01-02 03:41:58.000 817 99718 50267.5 5026750 817 99718 50267.5 5026750 -32751 32184 4392.3 439230 -128 123 -5.78 -578 -818 2 10808 99719 2.45645 299.45645 150.95645 15095.64564 2.45645 299.45645 150.95645 15095.64539 2.45645 299.45645 150.95644999999985 15095.64500 2020-01-01 2020-01-02 2020-01-01 00:13:38 2020-01-02 03:41:59 2020-01-01 00:13:38.000 2020-01-02 03:41:59.000 818 99719 50268.5 5026850 818 99719 50268.5 5026850 -32750 32185 4393.3 439330 -127 124 -4.78 -478 -819 2 10809 99720 2.45945 299.45945 150.95945 15095.94594 2.45945 299.45947 150.95946 15095.94602 2.45945 299.45945 150.95945000000012 15095.94500 2020-01-01 2020-01-02 2020-01-01 00:13:39 2020-01-02 03:42:00 2020-01-01 00:13:39.000 2020-01-02 03:42:00.000 819 99720 50269.5 5026950 819 99720 50269.5 5026950 -32749 32186 4394.3 439430 -126 125 -3.78 -378 -82 2 10072 99982 0.24624 300.24624 150.24624 15174.87087 0.24624 300.24625 150.24624 15174.87088 0.24624 300.24624 150.2462400000002 15174.87024 2020-01-01 2020-01-02 2020-01-01 00:01:22 2020-01-02 03:46:22 2020-01-01 00:01:22.000 2020-01-02 03:46:22.000 82 99982 50032 5053232 82 99982 50032 5053232 -32487 32448 4611.009900990099 465712 -126 125 -2.0594059405940595 -208 -820 2 10810 99721 2.46246 299.46246 150.96246 15096.24624 2.46246 299.46246 150.96246 15096.24633 2.46246 299.46246 150.9624600000001 15096.24600 2020-01-01 2020-01-02 2020-01-01 00:13:40 2020-01-02 03:42:01 2020-01-01 00:13:40.000 2020-01-02 03:42:01.000 820 99721 50270.5 5027050 820 99721 50270.5 5027050 -32748 32187 4395.3 439530 -125 126 -2.78 -278 -821 2 10811 99722 2.46546 299.46546 150.96546 15096.54654 2.46546 299.46545 150.96546 15096.54646 2.46546 299.46546 150.96545999999995 15096.54600 2020-01-01 2020-01-02 2020-01-01 00:13:41 2020-01-02 03:42:02 2020-01-01 00:13:41.000 2020-01-02 03:42:02.000 821 99722 50271.5 5027150 821 99722 50271.5 5027150 -32747 32188 4396.3 439630 -124 127 -1.78 -178 -822 2 10812 99723 2.46846 299.46846 150.96846 15096.84684 2.46846 299.46848 150.96847 15096.84721 2.46846 299.46846 150.96846000000002 15096.84600 2020-01-01 2020-01-02 2020-01-01 00:13:42 2020-01-02 03:42:03 2020-01-01 00:13:42.000 2020-01-02 03:42:03.000 822 99723 50272.5 5027250 822 99723 50272.5 5027250 -32746 32189 4397.3 439730 -128 127 -3.34 -334 -823 2 10813 99724 2.47147 299.47147 150.97147 15097.14714 2.47147 299.47147 150.97146 15097.14686 2.47147 299.47147 150.97147000000024 15097.14700 2020-01-01 2020-01-02 2020-01-01 00:13:43 2020-01-02 03:42:04 2020-01-01 00:13:43.000 2020-01-02 03:42:04.000 823 99724 50273.5 5027350 823 99724 50273.5 5027350 -32745 32190 4398.3 439830 -128 123 -4.9 -490 -824 2 10814 99725 2.47447 299.47447 150.97447 15097.44744 2.47447 299.4745 150.97447 15097.44749 2.47447 299.47447 150.97446999999985 15097.44700 2020-01-01 2020-01-02 2020-01-01 00:13:44 2020-01-02 03:42:05 2020-01-01 00:13:44.000 2020-01-02 03:42:05.000 824 99725 50274.5 5027450 824 99725 50274.5 5027450 -32744 32191 4399.3 439930 -127 124 -3.9 -390 -825 2 10815 99726 2.47747 299.47747 150.97747 15097.74774 2.47747 299.47748 150.97747 15097.74779 2.47747 299.47747 150.97746999999987 15097.74700 2020-01-01 2020-01-02 2020-01-01 00:13:45 2020-01-02 03:42:06 2020-01-01 00:13:45.000 2020-01-02 03:42:06.000 825 99726 50275.5 5027550 825 99726 50275.5 5027550 -32743 32192 4400.3 440030 -126 125 -2.9 -290 -826 2 10816 99727 2.48048 299.48048 150.98048 15098.04804 2.48048 299.48047 150.98048 15098.04809 2.48048 299.48048 150.9804800000001 15098.04800 2020-01-01 2020-01-02 2020-01-01 00:13:46 2020-01-02 03:42:07 2020-01-01 00:13:46.000 2020-01-02 03:42:07.000 826 99727 50276.5 5027650 826 99727 50276.5 5027650 -32742 32193 4401.3 440130 -125 126 -1.9 -190 -827 2 10817 99728 2.48348 299.48348 150.98348 15098.34834 2.48348 299.4835 150.98348 15098.34869 2.48348 299.48348 150.98348000000013 15098.34800 2020-01-01 2020-01-02 2020-01-01 00:13:47 2020-01-02 03:42:08 2020-01-01 00:13:47.000 2020-01-02 03:42:08.000 827 99728 50277.5 5027750 827 99728 50277.5 5027750 -32741 32194 4402.3 440230 -124 127 -0.9 -90 -828 2 10818 99729 2.48648 299.48648 150.98648 15098.64864 2.48648 299.48648 150.98648 15098.64837 2.48648 299.48648 150.98647999999977 15098.64800 2020-01-01 2020-01-02 2020-01-01 00:13:48 2020-01-02 03:42:09 2020-01-01 00:13:48.000 2020-01-02 03:42:09.000 828 99729 50278.5 5027850 828 99729 50278.5 5027850 -32740 32195 4403.3 440330 -128 127 -2.46 -246 -829 2 10819 99730 2.48948 299.48948 150.98948 15098.94894 2.48948 299.4895 150.98948 15098.94896 2.48948 299.48948 150.98948000000013 15098.94800 2020-01-01 2020-01-02 2020-01-01 00:13:49 2020-01-02 03:42:10 2020-01-01 00:13:49.000 2020-01-02 03:42:10.000 829 99730 50279.5 5027950 829 99730 50279.5 5027950 -32739 32196 4404.3 440430 -128 123 -4.02 -402 -83 2 10073 99983 0.24924 300.24924 150.24924 15175.17417 0.24924 300.24924 150.24924 15175.17417 0.24924 300.24924 150.24923999999987 15175.17324 2020-01-01 2020-01-02 2020-01-01 00:01:23 2020-01-02 03:46:23 2020-01-01 00:01:23.000 2020-01-02 03:46:23.000 83 99983 50033 5053333 83 99983 50033 5053333 -32486 32449 4612.009900990099 465813 -125 126 -1.0594059405940595 -107 -830 2 10820 99731 2.49249 299.49249 150.99249 15099.24924 2.49249 299.4925 150.99249 15099.24926 2.49249 299.49249 150.99249000000003 15099.24900 2020-01-01 2020-01-02 2020-01-01 00:13:50 2020-01-02 03:42:11 2020-01-01 00:13:50.000 2020-01-02 03:42:11.000 830 99731 50280.5 5028050 830 99731 50280.5 5028050 -32738 32197 4405.3 440530 -127 124 -3.02 -302 -831 2 10821 99732 2.49549 299.49549 150.99549 15099.54954 2.49549 299.49548 150.99549 15099.54956 2.49549 299.49549 150.9954899999999 15099.54900 2020-01-01 2020-01-02 2020-01-01 00:13:51 2020-01-02 03:42:12 2020-01-01 00:13:51.000 2020-01-02 03:42:12.000 831 99732 50281.5 5028150 831 99732 50281.5 5028150 -32737 32198 4406.3 440630 -126 125 -2.02 -202 -832 2 10822 99733 2.49849 299.49849 150.99849 15099.84984 2.49849 299.4985 150.9985 15099.85016 2.49849 299.49849 150.99848999999998 15099.84900 2020-01-01 2020-01-02 2020-01-01 00:13:52 2020-01-02 03:42:13 2020-01-01 00:13:52.000 2020-01-02 03:42:13.000 832 99733 50282.5 5028250 832 99733 50282.5 5028250 -32736 32199 4407.3 440730 -125 126 -1.02 -102 -833 2 10823 99734 2.5015 299.5015 151.0015 15100.15015 2.5015 299.5015 151.00149 15100.14983 2.50150 299.50150 151.00150000000014 15100.15000 2020-01-01 2020-01-02 2020-01-01 00:13:53 2020-01-02 03:42:14 2020-01-01 00:13:53.000 2020-01-02 03:42:14.000 833 99734 50283.5 5028350 833 99734 50283.5 5028350 -32735 32200 4408.3 440830 -124 127 -0.02 -2 -834 2 10824 99735 2.5045 299.5045 151.0045 15100.45045 2.5045 299.50452 151.0045 15100.45043 2.50450 299.50450 151.00449999999984 15100.45000 2020-01-01 2020-01-02 2020-01-01 00:13:54 2020-01-02 03:42:15 2020-01-01 00:13:54.000 2020-01-02 03:42:15.000 834 99735 50284.5 5028450 834 99735 50284.5 5028450 -32734 32201 4409.3 440930 -128 127 -1.58 -158 -835 2 10825 99736 2.5075 299.5075 151.0075 15100.75075 2.5075 299.5075 151.0075 15100.75073 2.50750 299.50750 151.00749999999988 15100.75000 2020-01-01 2020-01-02 2020-01-01 00:13:55 2020-01-02 03:42:16 2020-01-01 00:13:55.000 2020-01-02 03:42:16.000 835 99736 50285.5 5028550 835 99736 50285.5 5028550 -32733 32202 4410.3 441030 -128 123 -3.14 -314 -836 2 10826 99737 2.51051 299.51051 151.01051 15101.05105 2.51051 299.5105 151.01051 15101.05103 2.51051 299.51051 151.01051000000004 15101.05100 2020-01-01 2020-01-02 2020-01-01 00:13:56 2020-01-02 03:42:17 2020-01-01 00:13:56.000 2020-01-02 03:42:17.000 836 99737 50286.5 5028650 836 99737 50286.5 5028650 -32732 32203 4411.3 441130 -127 124 -2.14 -214 -837 2 10827 99738 2.51351 299.51351 151.01351 15101.35135 2.51351 299.51352 151.01351 15101.35162 2.51351 299.51351 151.01351000000005 15101.35100 2020-01-01 2020-01-02 2020-01-01 00:13:57 2020-01-02 03:42:18 2020-01-01 00:13:57.000 2020-01-02 03:42:18.000 837 99738 50287.5 5028750 837 99738 50287.5 5028750 -32731 32204 4412.3 441230 -126 125 -1.14 -114 -838 2 10828 99739 2.51651 299.51651 151.01651 15101.65165 2.51651 299.5165 151.01651 15101.6513 2.51651 299.51651 151.01650999999995 15101.65100 2020-01-01 2020-01-02 2020-01-01 00:13:58 2020-01-02 03:42:19 2020-01-01 00:13:58.000 2020-01-02 03:42:19.000 838 99739 50288.5 5028850 838 99739 50288.5 5028850 -32730 32205 4413.3 441330 -125 126 -0.14 -14 -839 2 10829 99740 2.51951 299.51951 151.01951 15101.95195 2.51951 299.51953 151.01951 15101.9519 2.51951 299.51951 151.01951000000005 15101.95100 2020-01-01 2020-01-02 2020-01-01 00:13:59 2020-01-02 03:42:20 2020-01-01 00:13:59.000 2020-01-02 03:42:20.000 839 99740 50289.5 5028950 839 99740 50289.5 5028950 -32729 32206 4414.3 441430 -124 127 0.86 86 -84 2 10074 99984 0.25225 300.25225 150.25225 15175.47747 0.25225 300.25226 150.25225 15175.47778 0.25225 300.25225 150.25224999999975 15175.47725 2020-01-01 2020-01-02 2020-01-01 00:01:24 2020-01-02 03:46:24 2020-01-01 00:01:24.000 2020-01-02 03:46:24.000 84 99984 50034 5053434 84 99984 50034 5053434 -32485 32450 4613.009900990099 465914 -124 127 -0.0594059405940594 -6 -840 2 10830 99741 2.52252 299.52252 151.02252 15102.25225 2.52252 299.52252 151.02252 15102.2522 2.52252 299.52252 151.0225200000002 15102.25200 2020-01-01 2020-01-02 2020-01-01 00:14:00 2020-01-02 03:42:21 2020-01-01 00:14:00.000 2020-01-02 03:42:21.000 840 99741 50290.5 5029050 840 99741 50290.5 5029050 -32728 32207 4415.3 441530 -128 127 -0.7 -70 -841 2 10831 99742 2.52552 299.52552 151.02552 15102.55255 2.52552 299.5255 151.02552 15102.5525 2.52552 299.52552 151.02551999999991 15102.55200 2020-01-01 2020-01-02 2020-01-01 00:14:01 2020-01-02 03:42:22 2020-01-01 00:14:01.000 2020-01-02 03:42:22.000 841 99742 50291.5 5029150 841 99742 50291.5 5029150 -32727 32208 4416.3 441630 -128 127 -2.26 -226 -842 2 10832 99743 2.52852 299.52852 151.02852 15102.85285 2.52852 299.52853 151.02853 15102.85313 2.52852 299.52852 151.0285199999999 15102.85200 2020-01-01 2020-01-02 2020-01-01 00:14:02 2020-01-02 03:42:23 2020-01-01 00:14:02.000 2020-01-02 03:42:23.000 842 99743 50292.5 5029250 842 99743 50292.5 5029250 -32726 32209 4417.3 441730 -128 123 -3.82 -382 -843 2 10833 99744 2.53153 299.53153 151.03153 15103.15315 2.53153 299.53152 151.03152 15103.15278 2.53153 299.53153 151.03153000000015 15103.15300 2020-01-01 2020-01-02 2020-01-01 00:14:03 2020-01-02 03:42:24 2020-01-01 00:14:03.000 2020-01-02 03:42:24.000 843 99744 50293.5 5029350 843 99744 50293.5 5029350 -32725 32210 4418.3 441830 -127 124 -2.82 -282 -844 2 10834 99745 2.53453 299.53453 151.03453 15103.45345 2.53453 299.53455 151.03453 15103.45353 2.53453 299.53453 151.03453000000013 15103.45300 2020-01-01 2020-01-02 2020-01-01 00:14:04 2020-01-02 03:42:25 2020-01-01 00:14:04.000 2020-01-02 03:42:25.000 844 99745 50294.5 5029450 844 99745 50294.5 5029450 -32724 32211 4419.3 441930 -126 125 -1.82 -182 -845 2 10835 99746 2.53753 299.53753 151.03753 15103.75375 2.53753 299.53754 151.03753 15103.75366 2.53753 299.53753 151.0375299999998 15103.75300 2020-01-01 2020-01-02 2020-01-01 00:14:05 2020-01-02 03:42:26 2020-01-01 00:14:05.000 2020-01-02 03:42:26.000 845 99746 50295.5 5029550 845 99746 50295.5 5029550 -32723 32212 4420.3 442030 -125 126 -0.82 -82 +814 2 10804 99715 2.44444 299.44444 150.94444 15094.44444 2.44444 299.44446 150.94444 15094.44452 2.44444 299.44444 150.94444 15094.44400 2020-01-01 2020-01-02 2020-01-01 00:13:34 2020-01-02 03:41:55 2020-01-01 00:13:34.000 2020-01-02 03:41:55.000 814 99715 50264.5 5026450 814 99715 50264.5 5026450 -32754 32181 4389.3 438930 -125 127 -1.1 -110 +815 2 10805 99716 2.44744 299.44744 150.94744 15094.74474 2.44744 299.44745 150.94744 15094.74485 2.44744 299.44744 150.94744 15094.74400 2020-01-01 2020-01-02 2020-01-01 00:13:35 2020-01-02 03:41:56 2020-01-01 00:13:35.000 2020-01-02 03:41:56.000 815 99716 50265.5 5026550 815 99716 50265.5 5026550 -32753 32182 4390.3 439030 -128 127 -2.66 -266 +816 2 10806 99717 2.45045 299.45045 150.95045 15095.04504 2.45045 299.45044 150.95045 15095.045 2.45045 299.45045 150.95045 15095.04500 2020-01-01 2020-01-02 2020-01-01 00:13:36 2020-01-02 03:41:57 2020-01-01 00:13:36.000 2020-01-02 03:41:57.000 816 99717 50266.5 5026650 816 99717 50266.5 5026650 -32752 32183 4391.3 439130 -128 127 -4.22 -422 +817 2 10807 99718 2.45345 299.45345 150.95345 15095.34534 2.45345 299.45346 150.95345 15095.34574 2.45345 299.45345 150.95345 15095.34500 2020-01-01 2020-01-02 2020-01-01 00:13:37 2020-01-02 03:41:58 2020-01-01 00:13:37.000 2020-01-02 03:41:58.000 817 99718 50267.5 5026750 817 99718 50267.5 5026750 -32751 32184 4392.3 439230 -128 123 -5.78 -578 +818 2 10808 99719 2.45645 299.45645 150.95645 15095.64564 2.45645 299.45645 150.95645 15095.64539 2.45645 299.45645 150.95645000000002 15095.64500 2020-01-01 2020-01-02 2020-01-01 00:13:38 2020-01-02 03:41:59 2020-01-01 00:13:38.000 2020-01-02 03:41:59.000 818 99719 50268.5 5026850 818 99719 50268.5 5026850 -32750 32185 4393.3 439330 -127 124 -4.78 -478 +819 2 10809 99720 2.45945 299.45945 150.95945 15095.94594 2.45945 299.45947 150.95946 15095.94602 2.45945 299.45945 150.95945 15095.94500 2020-01-01 2020-01-02 2020-01-01 00:13:39 2020-01-02 03:42:00 2020-01-01 00:13:39.000 2020-01-02 03:42:00.000 819 99720 50269.5 5026950 819 99720 50269.5 5026950 -32749 32186 4394.3 439430 -126 125 -3.78 -378 +82 2 10072 99982 0.24624 300.24624 150.24624 15174.87087 0.24624 300.24625 150.24624 15174.87088 0.24624 300.24624 150.24624 15174.87024 2020-01-01 2020-01-02 2020-01-01 00:01:22 2020-01-02 03:46:22 2020-01-01 00:01:22.000 2020-01-02 03:46:22.000 82 99982 50032 5053232 82 99982 50032 5053232 -32487 32448 4611.009900990099 465712 -126 125 -2.0594059405940595 -208 +820 2 10810 99721 2.46246 299.46246 150.96246 15096.24624 2.46246 299.46246 150.96246 15096.24633 2.46246 299.46246 150.96246 15096.24600 2020-01-01 2020-01-02 2020-01-01 00:13:40 2020-01-02 03:42:01 2020-01-01 00:13:40.000 2020-01-02 03:42:01.000 820 99721 50270.5 5027050 820 99721 50270.5 5027050 -32748 32187 4395.3 439530 -125 126 -2.78 -278 +821 2 10811 99722 2.46546 299.46546 150.96546 15096.54654 2.46546 299.46545 150.96546 15096.54646 2.46546 299.46546 150.96546 15096.54600 2020-01-01 2020-01-02 2020-01-01 00:13:41 2020-01-02 03:42:02 2020-01-01 00:13:41.000 2020-01-02 03:42:02.000 821 99722 50271.5 5027150 821 99722 50271.5 5027150 -32747 32188 4396.3 439630 -124 127 -1.78 -178 +822 2 10812 99723 2.46846 299.46846 150.96846 15096.84684 2.46846 299.46848 150.96847 15096.84721 2.46846 299.46846 150.96846 15096.84600 2020-01-01 2020-01-02 2020-01-01 00:13:42 2020-01-02 03:42:03 2020-01-01 00:13:42.000 2020-01-02 03:42:03.000 822 99723 50272.5 5027250 822 99723 50272.5 5027250 -32746 32189 4397.3 439730 -128 127 -3.34 -334 +823 2 10813 99724 2.47147 299.47147 150.97147 15097.14714 2.47147 299.47147 150.97146 15097.14686 2.47147 299.47147 150.97147 15097.14700 2020-01-01 2020-01-02 2020-01-01 00:13:43 2020-01-02 03:42:04 2020-01-01 00:13:43.000 2020-01-02 03:42:04.000 823 99724 50273.5 5027350 823 99724 50273.5 5027350 -32745 32190 4398.3 439830 -128 123 -4.9 -490 +824 2 10814 99725 2.47447 299.47447 150.97447 15097.44744 2.47447 299.4745 150.97447 15097.44749 2.47447 299.47447 150.97447 15097.44700 2020-01-01 2020-01-02 2020-01-01 00:13:44 2020-01-02 03:42:05 2020-01-01 00:13:44.000 2020-01-02 03:42:05.000 824 99725 50274.5 5027450 824 99725 50274.5 5027450 -32744 32191 4399.3 439930 -127 124 -3.9 -390 +825 2 10815 99726 2.47747 299.47747 150.97747 15097.74774 2.47747 299.47748 150.97747 15097.74779 2.47747 299.47747 150.97746999999998 15097.74700 2020-01-01 2020-01-02 2020-01-01 00:13:45 2020-01-02 03:42:06 2020-01-01 00:13:45.000 2020-01-02 03:42:06.000 825 99726 50275.5 5027550 825 99726 50275.5 5027550 -32743 32192 4400.3 440030 -126 125 -2.9 -290 +826 2 10816 99727 2.48048 299.48048 150.98048 15098.04804 2.48048 299.48047 150.98048 15098.04809 2.48048 299.48048 150.98048 15098.04800 2020-01-01 2020-01-02 2020-01-01 00:13:46 2020-01-02 03:42:07 2020-01-01 00:13:46.000 2020-01-02 03:42:07.000 826 99727 50276.5 5027650 826 99727 50276.5 5027650 -32742 32193 4401.3 440130 -125 126 -1.9 -190 +827 2 10817 99728 2.48348 299.48348 150.98348 15098.34834 2.48348 299.4835 150.98348 15098.34869 2.48348 299.48348 150.98348 15098.34800 2020-01-01 2020-01-02 2020-01-01 00:13:47 2020-01-02 03:42:08 2020-01-01 00:13:47.000 2020-01-02 03:42:08.000 827 99728 50277.5 5027750 827 99728 50277.5 5027750 -32741 32194 4402.3 440230 -124 127 -0.9 -90 +828 2 10818 99729 2.48648 299.48648 150.98648 15098.64864 2.48648 299.48648 150.98648 15098.64837 2.48648 299.48648 150.98648 15098.64800 2020-01-01 2020-01-02 2020-01-01 00:13:48 2020-01-02 03:42:09 2020-01-01 00:13:48.000 2020-01-02 03:42:09.000 828 99729 50278.5 5027850 828 99729 50278.5 5027850 -32740 32195 4403.3 440330 -128 127 -2.46 -246 +829 2 10819 99730 2.48948 299.48948 150.98948 15098.94894 2.48948 299.4895 150.98948 15098.94896 2.48948 299.48948 150.98948000000001 15098.94800 2020-01-01 2020-01-02 2020-01-01 00:13:49 2020-01-02 03:42:10 2020-01-01 00:13:49.000 2020-01-02 03:42:10.000 829 99730 50279.5 5027950 829 99730 50279.5 5027950 -32739 32196 4404.3 440430 -128 123 -4.02 -402 +83 2 10073 99983 0.24924 300.24924 150.24924 15175.17417 0.24924 300.24924 150.24924 15175.17417 0.24924 300.24924 150.24924000000001 15175.17324 2020-01-01 2020-01-02 2020-01-01 00:01:23 2020-01-02 03:46:23 2020-01-01 00:01:23.000 2020-01-02 03:46:23.000 83 99983 50033 5053333 83 99983 50033 5053333 -32486 32449 4612.009900990099 465813 -125 126 -1.0594059405940595 -107 +830 2 10820 99731 2.49249 299.49249 150.99249 15099.24924 2.49249 299.4925 150.99249 15099.24926 2.49249 299.49249 150.99249 15099.24900 2020-01-01 2020-01-02 2020-01-01 00:13:50 2020-01-02 03:42:11 2020-01-01 00:13:50.000 2020-01-02 03:42:11.000 830 99731 50280.5 5028050 830 99731 50280.5 5028050 -32738 32197 4405.3 440530 -127 124 -3.02 -302 +831 2 10821 99732 2.49549 299.49549 150.99549 15099.54954 2.49549 299.49548 150.99549 15099.54956 2.49549 299.49549 150.99549000000002 15099.54900 2020-01-01 2020-01-02 2020-01-01 00:13:51 2020-01-02 03:42:12 2020-01-01 00:13:51.000 2020-01-02 03:42:12.000 831 99732 50281.5 5028150 831 99732 50281.5 5028150 -32737 32198 4406.3 440630 -126 125 -2.02 -202 +832 2 10822 99733 2.49849 299.49849 150.99849 15099.84984 2.49849 299.4985 150.9985 15099.85016 2.49849 299.49849 150.99849 15099.84900 2020-01-01 2020-01-02 2020-01-01 00:13:52 2020-01-02 03:42:13 2020-01-01 00:13:52.000 2020-01-02 03:42:13.000 832 99733 50282.5 5028250 832 99733 50282.5 5028250 -32736 32199 4407.3 440730 -125 126 -1.02 -102 +833 2 10823 99734 2.5015 299.5015 151.0015 15100.15015 2.5015 299.5015 151.00149 15100.14983 2.50150 299.50150 151.0015 15100.15000 2020-01-01 2020-01-02 2020-01-01 00:13:53 2020-01-02 03:42:14 2020-01-01 00:13:53.000 2020-01-02 03:42:14.000 833 99734 50283.5 5028350 833 99734 50283.5 5028350 -32735 32200 4408.3 440830 -124 127 -0.02 -2 +834 2 10824 99735 2.5045 299.5045 151.0045 15100.45045 2.5045 299.50452 151.0045 15100.45043 2.50450 299.50450 151.0045 15100.45000 2020-01-01 2020-01-02 2020-01-01 00:13:54 2020-01-02 03:42:15 2020-01-01 00:13:54.000 2020-01-02 03:42:15.000 834 99735 50284.5 5028450 834 99735 50284.5 5028450 -32734 32201 4409.3 440930 -128 127 -1.58 -158 +835 2 10825 99736 2.5075 299.5075 151.0075 15100.75075 2.5075 299.5075 151.0075 15100.75073 2.50750 299.50750 151.0075 15100.75000 2020-01-01 2020-01-02 2020-01-01 00:13:55 2020-01-02 03:42:16 2020-01-01 00:13:55.000 2020-01-02 03:42:16.000 835 99736 50285.5 5028550 835 99736 50285.5 5028550 -32733 32202 4410.3 441030 -128 123 -3.14 -314 +836 2 10826 99737 2.51051 299.51051 151.01051 15101.05105 2.51051 299.5105 151.01051 15101.05103 2.51051 299.51051 151.01050999999998 15101.05100 2020-01-01 2020-01-02 2020-01-01 00:13:56 2020-01-02 03:42:17 2020-01-01 00:13:56.000 2020-01-02 03:42:17.000 836 99737 50286.5 5028650 836 99737 50286.5 5028650 -32732 32203 4411.3 441130 -127 124 -2.14 -214 +837 2 10827 99738 2.51351 299.51351 151.01351 15101.35135 2.51351 299.51352 151.01351 15101.35162 2.51351 299.51351 151.01351 15101.35100 2020-01-01 2020-01-02 2020-01-01 00:13:57 2020-01-02 03:42:18 2020-01-01 00:13:57.000 2020-01-02 03:42:18.000 837 99738 50287.5 5028750 837 99738 50287.5 5028750 -32731 32204 4412.3 441230 -126 125 -1.14 -114 +838 2 10828 99739 2.51651 299.51651 151.01651 15101.65165 2.51651 299.5165 151.01651 15101.6513 2.51651 299.51651 151.01651 15101.65100 2020-01-01 2020-01-02 2020-01-01 00:13:58 2020-01-02 03:42:19 2020-01-01 00:13:58.000 2020-01-02 03:42:19.000 838 99739 50288.5 5028850 838 99739 50288.5 5028850 -32730 32205 4413.3 441330 -125 126 -0.14 -14 +839 2 10829 99740 2.51951 299.51951 151.01951 15101.95195 2.51951 299.51953 151.01951 15101.9519 2.51951 299.51951 151.01951 15101.95100 2020-01-01 2020-01-02 2020-01-01 00:13:59 2020-01-02 03:42:20 2020-01-01 00:13:59.000 2020-01-02 03:42:20.000 839 99740 50289.5 5028950 839 99740 50289.5 5028950 -32729 32206 4414.3 441430 -124 127 0.86 86 +84 2 10074 99984 0.25225 300.25225 150.25225 15175.47747 0.25225 300.25226 150.25225 15175.47778 0.25225 300.25225 150.25225 15175.47725 2020-01-01 2020-01-02 2020-01-01 00:01:24 2020-01-02 03:46:24 2020-01-01 00:01:24.000 2020-01-02 03:46:24.000 84 99984 50034 5053434 84 99984 50034 5053434 -32485 32450 4613.009900990099 465914 -124 127 -0.0594059405940594 -6 +840 2 10830 99741 2.52252 299.52252 151.02252 15102.25225 2.52252 299.52252 151.02252 15102.2522 2.52252 299.52252 151.02252000000001 15102.25200 2020-01-01 2020-01-02 2020-01-01 00:14:00 2020-01-02 03:42:21 2020-01-01 00:14:00.000 2020-01-02 03:42:21.000 840 99741 50290.5 5029050 840 99741 50290.5 5029050 -32728 32207 4415.3 441530 -128 127 -0.7 -70 +841 2 10831 99742 2.52552 299.52552 151.02552 15102.55255 2.52552 299.5255 151.02552 15102.5525 2.52552 299.52552 151.02552 15102.55200 2020-01-01 2020-01-02 2020-01-01 00:14:01 2020-01-02 03:42:22 2020-01-01 00:14:01.000 2020-01-02 03:42:22.000 841 99742 50291.5 5029150 841 99742 50291.5 5029150 -32727 32208 4416.3 441630 -128 127 -2.26 -226 +842 2 10832 99743 2.52852 299.52852 151.02852 15102.85285 2.52852 299.52853 151.02853 15102.85313 2.52852 299.52852 151.02852000000001 15102.85200 2020-01-01 2020-01-02 2020-01-01 00:14:02 2020-01-02 03:42:23 2020-01-01 00:14:02.000 2020-01-02 03:42:23.000 842 99743 50292.5 5029250 842 99743 50292.5 5029250 -32726 32209 4417.3 441730 -128 123 -3.82 -382 +843 2 10833 99744 2.53153 299.53153 151.03153 15103.15315 2.53153 299.53152 151.03152 15103.15278 2.53153 299.53153 151.03153 15103.15300 2020-01-01 2020-01-02 2020-01-01 00:14:03 2020-01-02 03:42:24 2020-01-01 00:14:03.000 2020-01-02 03:42:24.000 843 99744 50293.5 5029350 843 99744 50293.5 5029350 -32725 32210 4418.3 441830 -127 124 -2.82 -282 +844 2 10834 99745 2.53453 299.53453 151.03453 15103.45345 2.53453 299.53455 151.03453 15103.45353 2.53453 299.53453 151.03453 15103.45300 2020-01-01 2020-01-02 2020-01-01 00:14:04 2020-01-02 03:42:25 2020-01-01 00:14:04.000 2020-01-02 03:42:25.000 844 99745 50294.5 5029450 844 99745 50294.5 5029450 -32724 32211 4419.3 441930 -126 125 -1.82 -182 +845 2 10835 99746 2.53753 299.53753 151.03753 15103.75375 2.53753 299.53754 151.03753 15103.75366 2.53753 299.53753 151.03753 15103.75300 2020-01-01 2020-01-02 2020-01-01 00:14:05 2020-01-02 03:42:26 2020-01-01 00:14:05.000 2020-01-02 03:42:26.000 845 99746 50295.5 5029550 845 99746 50295.5 5029550 -32723 32212 4420.3 442030 -125 126 -0.82 -82 846 2 10836 99747 2.54054 299.54054 151.04054 15104.05405 2.54054 299.54053 151.04053 15104.05397 2.54054 299.54054 151.04054 15104.05400 2020-01-01 2020-01-02 2020-01-01 00:14:06 2020-01-02 03:42:27 2020-01-01 00:14:06.000 2020-01-02 03:42:27.000 846 99747 50296.5 5029650 846 99747 50296.5 5029650 -32722 32213 4421.3 442130 -124 127 0.18 18 -847 2 10837 99748 2.54354 299.54354 151.04354 15104.35435 2.54354 299.54355 151.04354 15104.3546 2.54354 299.54354 151.04354000000006 15104.35400 2020-01-01 2020-01-02 2020-01-01 00:14:07 2020-01-02 03:42:28 2020-01-01 00:14:07.000 2020-01-02 03:42:28.000 847 99748 50297.5 5029750 847 99748 50297.5 5029750 -32721 32214 4422.3 442230 -128 127 -1.38 -138 -848 2 10838 99749 2.54654 299.54654 151.04654 15104.65465 2.54654 299.54654 151.04654 15104.65425 2.54654 299.54654 151.0465399999999 15104.65400 2020-01-01 2020-01-02 2020-01-01 00:14:08 2020-01-02 03:42:29 2020-01-01 00:14:08.000 2020-01-02 03:42:29.000 848 99749 50298.5 5029850 848 99749 50298.5 5029850 -32720 32215 4423.3 442330 -128 123 -2.94 -294 -849 2 10839 99750 2.54954 299.54954 151.04954 15104.95495 2.54954 299.54956 151.04954 15104.95499 2.54954 299.54954 151.04953999999998 15104.95400 2020-01-01 2020-01-02 2020-01-01 00:14:09 2020-01-02 03:42:30 2020-01-01 00:14:09.000 2020-01-02 03:42:30.000 849 99750 50299.5 5029950 849 99750 50299.5 5029950 -32719 32216 4424.3 442430 -127 124 -1.94 -194 -85 2 10075 99985 0.25525 300.25525 150.25525 15175.78078 0.25525 300.25525 150.25525 15175.78046 0.25525 300.25525 150.2552500000001 15175.78025 2020-01-01 2020-01-02 2020-01-01 00:01:25 2020-01-02 03:46:25 2020-01-01 00:01:25.000 2020-01-02 03:46:25.000 85 99985 50035 5053535 85 99985 50035 5053535 -32484 32451 4614.009900990099 466015 -128 127 -1.5940594059405941 -161 -850 2 10840 99751 2.55255 299.55255 151.05255 15105.25525 2.55255 299.55255 151.05255 15105.25514 2.55255 299.55255 151.05255000000014 15105.25500 2020-01-01 2020-01-02 2020-01-01 00:14:10 2020-01-02 03:42:31 2020-01-01 00:14:10.000 2020-01-02 03:42:31.000 850 99751 50300.5 5030050 850 99751 50300.5 5030050 -32718 32217 4425.3 442530 -126 125 -0.94 -94 -851 2 10841 99752 2.55555 299.55555 151.05555 15105.55555 2.55555 299.55554 151.05555 15105.55547 2.55555 299.55555 151.0555499999998 15105.55500 2020-01-01 2020-01-02 2020-01-01 00:14:11 2020-01-02 03:42:32 2020-01-01 00:14:11.000 2020-01-02 03:42:32.000 851 99752 50301.5 5030150 851 99752 50301.5 5030150 -32717 32218 4426.3 442630 -125 126 0.06 6 -852 2 10842 99753 2.55855 299.55855 151.05855 15105.85585 2.55855 299.55856 151.05856 15105.85607 2.55855 299.55855 151.0585499999999 15105.85500 2020-01-01 2020-01-02 2020-01-01 00:14:12 2020-01-02 03:42:33 2020-01-01 00:14:12.000 2020-01-02 03:42:33.000 852 99753 50302.5 5030250 852 99753 50302.5 5030250 -32716 32219 4427.3 442730 -124 127 1.06 106 -853 2 10843 99754 2.56156 299.56156 151.06156 15106.15615 2.56156 299.56155 151.06155 15106.15571 2.56156 299.56156 151.06156000000007 15106.15600 2020-01-01 2020-01-02 2020-01-01 00:14:13 2020-01-02 03:42:34 2020-01-01 00:14:13.000 2020-01-02 03:42:34.000 853 99754 50303.5 5030350 853 99754 50303.5 5030350 -32715 32220 4428.3 442830 -128 127 -0.5 -50 -854 2 10844 99755 2.56456 299.56456 151.06456 15106.45645 2.56456 299.56458 151.06456 15106.45646 2.56456 299.56456 151.06456000000009 15106.45600 2020-01-01 2020-01-02 2020-01-01 00:14:14 2020-01-02 03:42:35 2020-01-01 00:14:14.000 2020-01-02 03:42:35.000 854 99755 50304.5 5030450 854 99755 50304.5 5030450 -32714 32221 4429.3 442930 -128 123 -2.06 -206 -855 2 10845 99756 2.56756 299.56756 151.06756 15106.75675 2.56756 299.56757 151.06756 15106.75661 2.56756 299.56756 151.06756000000001 15106.75600 2020-01-01 2020-01-02 2020-01-01 00:14:15 2020-01-02 03:42:36 2020-01-01 00:14:15.000 2020-01-02 03:42:36.000 855 99756 50305.5 5030550 855 99756 50305.5 5030550 -32713 32222 4430.3 443030 -127 124 -1.06 -106 -856 2 10846 99757 2.57057 299.57057 151.07057 15107.05705 2.57057 299.57056 151.07056 15107.05694 2.57057 299.57057 151.0705699999999 15107.05700 2020-01-01 2020-01-02 2020-01-01 00:14:16 2020-01-02 03:42:37 2020-01-01 00:14:16.000 2020-01-02 03:42:37.000 856 99757 50306.5 5030650 856 99757 50306.5 5030650 -32712 32223 4431.3 443130 -126 125 -0.06 -6 +847 2 10837 99748 2.54354 299.54354 151.04354 15104.35435 2.54354 299.54355 151.04354 15104.3546 2.54354 299.54354 151.04354 15104.35400 2020-01-01 2020-01-02 2020-01-01 00:14:07 2020-01-02 03:42:28 2020-01-01 00:14:07.000 2020-01-02 03:42:28.000 847 99748 50297.5 5029750 847 99748 50297.5 5029750 -32721 32214 4422.3 442230 -128 127 -1.38 -138 +848 2 10838 99749 2.54654 299.54654 151.04654 15104.65465 2.54654 299.54654 151.04654 15104.65425 2.54654 299.54654 151.04654 15104.65400 2020-01-01 2020-01-02 2020-01-01 00:14:08 2020-01-02 03:42:29 2020-01-01 00:14:08.000 2020-01-02 03:42:29.000 848 99749 50298.5 5029850 848 99749 50298.5 5029850 -32720 32215 4423.3 442330 -128 123 -2.94 -294 +849 2 10839 99750 2.54954 299.54954 151.04954 15104.95495 2.54954 299.54956 151.04954 15104.95499 2.54954 299.54954 151.04954 15104.95400 2020-01-01 2020-01-02 2020-01-01 00:14:09 2020-01-02 03:42:30 2020-01-01 00:14:09.000 2020-01-02 03:42:30.000 849 99750 50299.5 5029950 849 99750 50299.5 5029950 -32719 32216 4424.3 442430 -127 124 -1.94 -194 +85 2 10075 99985 0.25525 300.25525 150.25525 15175.78078 0.25525 300.25525 150.25525 15175.78046 0.25525 300.25525 150.25525 15175.78025 2020-01-01 2020-01-02 2020-01-01 00:01:25 2020-01-02 03:46:25 2020-01-01 00:01:25.000 2020-01-02 03:46:25.000 85 99985 50035 5053535 85 99985 50035 5053535 -32484 32451 4614.009900990099 466015 -128 127 -1.5940594059405941 -161 +850 2 10840 99751 2.55255 299.55255 151.05255 15105.25525 2.55255 299.55255 151.05255 15105.25514 2.55255 299.55255 151.05255 15105.25500 2020-01-01 2020-01-02 2020-01-01 00:14:10 2020-01-02 03:42:31 2020-01-01 00:14:10.000 2020-01-02 03:42:31.000 850 99751 50300.5 5030050 850 99751 50300.5 5030050 -32718 32217 4425.3 442530 -126 125 -0.94 -94 +851 2 10841 99752 2.55555 299.55555 151.05555 15105.55555 2.55555 299.55554 151.05555 15105.55547 2.55555 299.55555 151.05555 15105.55500 2020-01-01 2020-01-02 2020-01-01 00:14:11 2020-01-02 03:42:32 2020-01-01 00:14:11.000 2020-01-02 03:42:32.000 851 99752 50301.5 5030150 851 99752 50301.5 5030150 -32717 32218 4426.3 442630 -125 126 0.06 6 +852 2 10842 99753 2.55855 299.55855 151.05855 15105.85585 2.55855 299.55856 151.05856 15105.85607 2.55855 299.55855 151.05855 15105.85500 2020-01-01 2020-01-02 2020-01-01 00:14:12 2020-01-02 03:42:33 2020-01-01 00:14:12.000 2020-01-02 03:42:33.000 852 99753 50302.5 5030250 852 99753 50302.5 5030250 -32716 32219 4427.3 442730 -124 127 1.06 106 +853 2 10843 99754 2.56156 299.56156 151.06156 15106.15615 2.56156 299.56155 151.06155 15106.15571 2.56156 299.56156 151.06156000000001 15106.15600 2020-01-01 2020-01-02 2020-01-01 00:14:13 2020-01-02 03:42:34 2020-01-01 00:14:13.000 2020-01-02 03:42:34.000 853 99754 50303.5 5030350 853 99754 50303.5 5030350 -32715 32220 4428.3 442830 -128 127 -0.5 -50 +854 2 10844 99755 2.56456 299.56456 151.06456 15106.45645 2.56456 299.56458 151.06456 15106.45646 2.56456 299.56456 151.06456 15106.45600 2020-01-01 2020-01-02 2020-01-01 00:14:14 2020-01-02 03:42:35 2020-01-01 00:14:14.000 2020-01-02 03:42:35.000 854 99755 50304.5 5030450 854 99755 50304.5 5030450 -32714 32221 4429.3 442930 -128 123 -2.06 -206 +855 2 10845 99756 2.56756 299.56756 151.06756 15106.75675 2.56756 299.56757 151.06756 15106.75661 2.56756 299.56756 151.06756 15106.75600 2020-01-01 2020-01-02 2020-01-01 00:14:15 2020-01-02 03:42:36 2020-01-01 00:14:15.000 2020-01-02 03:42:36.000 855 99756 50305.5 5030550 855 99756 50305.5 5030550 -32713 32222 4430.3 443030 -127 124 -1.06 -106 +856 2 10846 99757 2.57057 299.57057 151.07057 15107.05705 2.57057 299.57056 151.07056 15107.05694 2.57057 299.57057 151.07057 15107.05700 2020-01-01 2020-01-02 2020-01-01 00:14:16 2020-01-02 03:42:37 2020-01-01 00:14:16.000 2020-01-02 03:42:37.000 856 99757 50306.5 5030650 856 99757 50306.5 5030650 -32712 32223 4431.3 443130 -126 125 -0.06 -6 857 2 10847 99758 2.57357 299.57357 151.07357 15107.35735 2.57357 299.57358 151.07357 15107.35754 2.57357 299.57357 151.07357 15107.35700 2020-01-01 2020-01-02 2020-01-01 00:14:17 2020-01-02 03:42:38 2020-01-01 00:14:17.000 2020-01-02 03:42:38.000 857 99758 50307.5 5030750 857 99758 50307.5 5030750 -32711 32224 4432.3 443230 -125 126 0.94 94 -858 2 10848 99759 2.57657 299.57657 151.07657 15107.65765 2.57657 299.57657 151.07657 15107.65783 2.57657 299.57657 151.07656999999995 15107.65700 2020-01-01 2020-01-02 2020-01-01 00:14:18 2020-01-02 03:42:39 2020-01-01 00:14:18.000 2020-01-02 03:42:39.000 858 99759 50308.5 5030850 858 99759 50308.5 5030850 -32710 32225 4433.3 443330 -124 127 1.94 194 -859 2 10849 99760 2.57957 299.57957 151.07957 15107.95795 2.57957 299.5796 151.07957 15107.95794 2.57957 299.57957 151.0795699999999 15107.95700 2020-01-01 2020-01-02 2020-01-01 00:14:19 2020-01-02 03:42:40 2020-01-01 00:14:19.000 2020-01-02 03:42:40.000 859 99760 50309.5 5030950 859 99760 50309.5 5030950 -32709 32226 4434.3 443430 -128 127 0.38 38 -86 2 10076 99986 0.25825 300.25825 150.25825 15176.08408 0.25825 300.25827 150.25825 15176.08406 0.25825 300.25825 150.25825000000012 15176.08325 2020-01-01 2020-01-02 2020-01-01 00:01:26 2020-01-02 03:46:26 2020-01-01 00:01:26.000 2020-01-02 03:46:26.000 86 99986 50036 5053636 86 99986 50036 5053636 -32483 32452 4615.009900990099 466116 -128 123 -3.128712871287129 -316 -860 2 10850 99761 2.58258 299.58258 151.08258 15108.25825 2.58258 299.58258 151.08258 15108.25811 2.58258 299.58258 151.08258000000012 15108.25800 2020-01-01 2020-01-02 2020-01-01 00:14:20 2020-01-02 03:42:41 2020-01-01 00:14:20.000 2020-01-02 03:42:41.000 860 99761 50310.5 5031050 860 99761 50310.5 5031050 -32708 32227 4435.3 443530 -128 123 -1.18 -118 -861 2 10851 99762 2.58558 299.58558 151.08558 15108.55855 2.58558 299.58557 151.08558 15108.55841 2.58558 299.58558 151.08558000000016 15108.55800 2020-01-01 2020-01-02 2020-01-01 00:14:21 2020-01-02 03:42:42 2020-01-01 00:14:21.000 2020-01-02 03:42:42.000 861 99762 50311.5 5031150 861 99762 50311.5 5031150 -32707 32228 4436.3 443630 -127 124 -0.18 -18 -862 2 10852 99763 2.58858 299.58858 151.08858 15108.85885 2.58858 299.5886 151.08859 15108.85901 2.58858 299.58858 151.08857999999984 15108.85800 2020-01-01 2020-01-02 2020-01-01 00:14:22 2020-01-02 03:42:43 2020-01-01 00:14:22.000 2020-01-02 03:42:43.000 862 99763 50312.5 5031250 862 99763 50312.5 5031250 -32706 32229 4437.3 443730 -126 125 0.82 82 +858 2 10848 99759 2.57657 299.57657 151.07657 15107.65765 2.57657 299.57657 151.07657 15107.65783 2.57657 299.57657 151.07657 15107.65700 2020-01-01 2020-01-02 2020-01-01 00:14:18 2020-01-02 03:42:39 2020-01-01 00:14:18.000 2020-01-02 03:42:39.000 858 99759 50308.5 5030850 858 99759 50308.5 5030850 -32710 32225 4433.3 443330 -124 127 1.94 194 +859 2 10849 99760 2.57957 299.57957 151.07957 15107.95795 2.57957 299.5796 151.07957 15107.95794 2.57957 299.57957 151.07957 15107.95700 2020-01-01 2020-01-02 2020-01-01 00:14:19 2020-01-02 03:42:40 2020-01-01 00:14:19.000 2020-01-02 03:42:40.000 859 99760 50309.5 5030950 859 99760 50309.5 5030950 -32709 32226 4434.3 443430 -128 127 0.38 38 +86 2 10076 99986 0.25825 300.25825 150.25825 15176.08408 0.25825 300.25827 150.25825 15176.08406 0.25825 300.25825 150.25825 15176.08325 2020-01-01 2020-01-02 2020-01-01 00:01:26 2020-01-02 03:46:26 2020-01-01 00:01:26.000 2020-01-02 03:46:26.000 86 99986 50036 5053636 86 99986 50036 5053636 -32483 32452 4615.009900990099 466116 -128 123 -3.128712871287129 -316 +860 2 10850 99761 2.58258 299.58258 151.08258 15108.25825 2.58258 299.58258 151.08258 15108.25811 2.58258 299.58258 151.08258 15108.25800 2020-01-01 2020-01-02 2020-01-01 00:14:20 2020-01-02 03:42:41 2020-01-01 00:14:20.000 2020-01-02 03:42:41.000 860 99761 50310.5 5031050 860 99761 50310.5 5031050 -32708 32227 4435.3 443530 -128 123 -1.18 -118 +861 2 10851 99762 2.58558 299.58558 151.08558 15108.55855 2.58558 299.58557 151.08558 15108.55841 2.58558 299.58558 151.08558000000002 15108.55800 2020-01-01 2020-01-02 2020-01-01 00:14:21 2020-01-02 03:42:42 2020-01-01 00:14:21.000 2020-01-02 03:42:42.000 861 99762 50311.5 5031150 861 99762 50311.5 5031150 -32707 32228 4436.3 443630 -127 124 -0.18 -18 +862 2 10852 99763 2.58858 299.58858 151.08858 15108.85885 2.58858 299.5886 151.08859 15108.85901 2.58858 299.58858 151.08858 15108.85800 2020-01-01 2020-01-02 2020-01-01 00:14:22 2020-01-02 03:42:43 2020-01-01 00:14:22.000 2020-01-02 03:42:43.000 862 99763 50312.5 5031250 862 99763 50312.5 5031250 -32706 32229 4437.3 443730 -126 125 0.82 82 863 2 10853 99764 2.59159 299.59159 151.09159 15109.15915 2.59159 299.59158 151.09159 15109.1593 2.59159 299.59159 151.09159 15109.15900 2020-01-01 2020-01-02 2020-01-01 00:14:23 2020-01-02 03:42:44 2020-01-01 00:14:23.000 2020-01-02 03:42:44.000 863 99764 50313.5 5031350 863 99764 50313.5 5031350 -32705 32230 4438.3 443830 -125 126 1.82 182 -864 2 10854 99765 2.59459 299.59459 151.09459 15109.45945 2.59459 299.5946 151.09459 15109.45941 2.59459 299.59459 151.09459000000007 15109.45900 2020-01-01 2020-01-02 2020-01-01 00:14:24 2020-01-02 03:42:45 2020-01-01 00:14:24.000 2020-01-02 03:42:45.000 864 99765 50314.5 5031450 864 99765 50314.5 5031450 -32704 32231 4439.3 443930 -124 127 2.82 282 -865 2 10855 99766 2.59759 299.59759 151.09759 15109.75975 2.59759 299.5976 151.09759 15109.75958 2.59759 299.59759 151.0975899999999 15109.75900 2020-01-01 2020-01-02 2020-01-01 00:14:25 2020-01-02 03:42:46 2020-01-01 00:14:25.000 2020-01-02 03:42:46.000 865 99766 50315.5 5031550 865 99766 50315.5 5031550 -32703 32232 4440.3 444030 -128 127 1.26 126 -866 2 10856 99767 2.6006 299.6006 151.1006 15110.06006 2.6006 299.6006 151.10059 15110.05988 2.60060 299.60060 151.10059999999984 15110.06000 2020-01-01 2020-01-02 2020-01-01 00:14:26 2020-01-02 03:42:47 2020-01-01 00:14:26.000 2020-01-02 03:42:47.000 866 99767 50316.5 5031650 866 99767 50316.5 5031650 -32702 32233 4441.3 444130 -128 127 -0.3 -30 -867 2 10857 99768 2.6036 299.6036 151.1036 15110.36036 2.6036 299.6036 151.1036 15110.36063 2.60360 299.60360 151.10360000000017 15110.36000 2020-01-01 2020-01-02 2020-01-01 00:14:27 2020-01-02 03:42:48 2020-01-01 00:14:27.000 2020-01-02 03:42:48.000 867 99768 50317.5 5031750 867 99768 50317.5 5031750 -32701 32234 4442.3 444230 -128 123 -1.86 -186 -868 2 10858 99769 2.6066 299.6066 151.1066 15110.66066 2.6066 299.6066 151.1066 15110.66078 2.60660 299.60660 151.10659999999984 15110.66000 2020-01-01 2020-01-02 2020-01-01 00:14:28 2020-01-02 03:42:49 2020-01-01 00:14:28.000 2020-01-02 03:42:49.000 868 99769 50318.5 5031850 868 99769 50318.5 5031850 -32700 32235 4443.3 444330 -127 124 -0.86 -86 -869 2 10859 99770 2.6096 299.6096 151.1096 15110.96096 2.6096 299.60962 151.1096 15110.96091 2.60960 299.60960 151.10959999999983 15110.96000 2020-01-01 2020-01-02 2020-01-01 00:14:29 2020-01-02 03:42:50 2020-01-01 00:14:29.000 2020-01-02 03:42:50.000 869 99770 50319.5 5031950 869 99770 50319.5 5031950 -32699 32236 4444.3 444430 -126 125 0.14 14 -87 2 10077 99987 0.26126 300.26126 150.26126 15176.38738 0.26126 300.26126 150.26126 15176.38736 0.26126 300.26126 150.26125999999994 15176.38726 2020-01-01 2020-01-02 2020-01-01 00:01:27 2020-01-02 03:46:27 2020-01-01 00:01:27.000 2020-01-02 03:46:27.000 87 99987 50037 5053737 87 99987 50037 5053737 -32482 32453 4616.009900990099 466217 -127 124 -2.128712871287129 -215 -870 2 10860 99771 2.61261 299.61261 151.11261 15111.26126 2.61261 299.6126 151.11261 15111.26105 2.61261 299.61261 151.1126100000001 15111.26100 2020-01-01 2020-01-02 2020-01-01 00:14:30 2020-01-02 03:42:51 2020-01-01 00:14:30.000 2020-01-02 03:42:51.000 870 99771 50320.5 5032050 870 99771 50320.5 5032050 -32698 32237 4445.3 444530 -125 126 1.14 114 -871 2 10861 99772 2.61561 299.61561 151.11561 15111.56156 2.61561 299.6156 151.11561 15111.56135 2.61561 299.61561 151.11561000000012 15111.56100 2020-01-01 2020-01-02 2020-01-01 00:14:31 2020-01-02 03:42:52 2020-01-01 00:14:31.000 2020-01-02 03:42:52.000 871 99772 50321.5 5032150 871 99772 50321.5 5032150 -32697 32238 4446.3 444630 -124 127 2.14 214 -872 2 10862 99773 2.61861 299.61861 151.11861 15111.86186 2.61861 299.61862 151.11862 15111.8621 2.61861 299.61861 151.1186099999999 15111.86100 2020-01-01 2020-01-02 2020-01-01 00:14:32 2020-01-02 03:42:53 2020-01-01 00:14:32.000 2020-01-02 03:42:53.000 872 99773 50322.5 5032250 872 99773 50322.5 5032250 -32696 32239 4447.3 444730 -128 127 0.58 58 -873 2 10863 99774 2.62162 299.62162 151.12162 15112.16216 2.62162 299.6216 151.12162 15112.16224 2.62162 299.62162 151.12161999999992 15112.16200 2020-01-01 2020-01-02 2020-01-01 00:14:33 2020-01-02 03:42:54 2020-01-01 00:14:33.000 2020-01-02 03:42:54.000 873 99774 50323.5 5032350 873 99774 50323.5 5032350 -32695 32240 4448.3 444830 -128 123 -0.98 -98 +864 2 10854 99765 2.59459 299.59459 151.09459 15109.45945 2.59459 299.5946 151.09459 15109.45941 2.59459 299.59459 151.09459 15109.45900 2020-01-01 2020-01-02 2020-01-01 00:14:24 2020-01-02 03:42:45 2020-01-01 00:14:24.000 2020-01-02 03:42:45.000 864 99765 50314.5 5031450 864 99765 50314.5 5031450 -32704 32231 4439.3 443930 -124 127 2.82 282 +865 2 10855 99766 2.59759 299.59759 151.09759 15109.75975 2.59759 299.5976 151.09759 15109.75958 2.59759 299.59759 151.09759 15109.75900 2020-01-01 2020-01-02 2020-01-01 00:14:25 2020-01-02 03:42:46 2020-01-01 00:14:25.000 2020-01-02 03:42:46.000 865 99766 50315.5 5031550 865 99766 50315.5 5031550 -32703 32232 4440.3 444030 -128 127 1.26 126 +866 2 10856 99767 2.6006 299.6006 151.1006 15110.06006 2.6006 299.6006 151.10059 15110.05988 2.60060 299.60060 151.1006 15110.06000 2020-01-01 2020-01-02 2020-01-01 00:14:26 2020-01-02 03:42:47 2020-01-01 00:14:26.000 2020-01-02 03:42:47.000 866 99767 50316.5 5031650 866 99767 50316.5 5031650 -32702 32233 4441.3 444130 -128 127 -0.3 -30 +867 2 10857 99768 2.6036 299.6036 151.1036 15110.36036 2.6036 299.6036 151.1036 15110.36063 2.60360 299.60360 151.1036 15110.36000 2020-01-01 2020-01-02 2020-01-01 00:14:27 2020-01-02 03:42:48 2020-01-01 00:14:27.000 2020-01-02 03:42:48.000 867 99768 50317.5 5031750 867 99768 50317.5 5031750 -32701 32234 4442.3 444230 -128 123 -1.86 -186 +868 2 10858 99769 2.6066 299.6066 151.1066 15110.66066 2.6066 299.6066 151.1066 15110.66078 2.60660 299.60660 151.1066 15110.66000 2020-01-01 2020-01-02 2020-01-01 00:14:28 2020-01-02 03:42:49 2020-01-01 00:14:28.000 2020-01-02 03:42:49.000 868 99769 50318.5 5031850 868 99769 50318.5 5031850 -32700 32235 4443.3 444330 -127 124 -0.86 -86 +869 2 10859 99770 2.6096 299.6096 151.1096 15110.96096 2.6096 299.60962 151.1096 15110.96091 2.60960 299.60960 151.1096 15110.96000 2020-01-01 2020-01-02 2020-01-01 00:14:29 2020-01-02 03:42:50 2020-01-01 00:14:29.000 2020-01-02 03:42:50.000 869 99770 50319.5 5031950 869 99770 50319.5 5031950 -32699 32236 4444.3 444430 -126 125 0.14 14 +87 2 10077 99987 0.26126 300.26126 150.26126 15176.38738 0.26126 300.26126 150.26126 15176.38736 0.26126 300.26126 150.26126 15176.38726 2020-01-01 2020-01-02 2020-01-01 00:01:27 2020-01-02 03:46:27 2020-01-01 00:01:27.000 2020-01-02 03:46:27.000 87 99987 50037 5053737 87 99987 50037 5053737 -32482 32453 4616.009900990099 466217 -127 124 -2.128712871287129 -215 +870 2 10860 99771 2.61261 299.61261 151.11261 15111.26126 2.61261 299.6126 151.11261 15111.26105 2.61261 299.61261 151.11261000000002 15111.26100 2020-01-01 2020-01-02 2020-01-01 00:14:30 2020-01-02 03:42:51 2020-01-01 00:14:30.000 2020-01-02 03:42:51.000 870 99771 50320.5 5032050 870 99771 50320.5 5032050 -32698 32237 4445.3 444530 -125 126 1.14 114 +871 2 10861 99772 2.61561 299.61561 151.11561 15111.56156 2.61561 299.6156 151.11561 15111.56135 2.61561 299.61561 151.11561 15111.56100 2020-01-01 2020-01-02 2020-01-01 00:14:31 2020-01-02 03:42:52 2020-01-01 00:14:31.000 2020-01-02 03:42:52.000 871 99772 50321.5 5032150 871 99772 50321.5 5032150 -32697 32238 4446.3 444630 -124 127 2.14 214 +872 2 10862 99773 2.61861 299.61861 151.11861 15111.86186 2.61861 299.61862 151.11862 15111.8621 2.61861 299.61861 151.11861000000002 15111.86100 2020-01-01 2020-01-02 2020-01-01 00:14:32 2020-01-02 03:42:53 2020-01-01 00:14:32.000 2020-01-02 03:42:53.000 872 99773 50322.5 5032250 872 99773 50322.5 5032250 -32696 32239 4447.3 444730 -128 127 0.58 58 +873 2 10863 99774 2.62162 299.62162 151.12162 15112.16216 2.62162 299.6216 151.12162 15112.16224 2.62162 299.62162 151.12162 15112.16200 2020-01-01 2020-01-02 2020-01-01 00:14:33 2020-01-02 03:42:54 2020-01-01 00:14:33.000 2020-01-02 03:42:54.000 873 99774 50323.5 5032350 873 99774 50323.5 5032350 -32695 32240 4448.3 444830 -128 123 -0.98 -98 874 2 10864 99775 2.62462 299.62462 151.12462 15112.46246 2.62462 299.62463 151.12462 15112.46238 2.62462 299.62462 151.12462 15112.46200 2020-01-01 2020-01-02 2020-01-01 00:14:34 2020-01-02 03:42:55 2020-01-01 00:14:34.000 2020-01-02 03:42:55.000 874 99775 50324.5 5032450 874 99775 50324.5 5032450 -32694 32241 4449.3 444930 -127 124 0.02 2 -875 2 10865 99776 2.62762 299.62762 151.12762 15112.76276 2.62762 299.62762 151.12762 15112.76252 2.62762 299.62762 151.12761999999992 15112.76200 2020-01-01 2020-01-02 2020-01-01 00:14:35 2020-01-02 03:42:56 2020-01-01 00:14:35.000 2020-01-02 03:42:56.000 875 99776 50325.5 5032550 875 99776 50325.5 5032550 -32693 32242 4450.3 445030 -126 125 1.02 102 -876 2 10866 99777 2.63063 299.63063 151.13063 15113.06306 2.63063 299.63065 151.13063 15113.06327 2.63063 299.63063 151.13062999999985 15113.06300 2020-01-01 2020-01-02 2020-01-01 00:14:36 2020-01-02 03:42:57 2020-01-01 00:14:36.000 2020-01-02 03:42:57.000 876 99777 50326.5 5032650 876 99777 50326.5 5032650 -32692 32243 4451.3 445130 -125 126 2.02 202 -877 2 10867 99778 2.63363 299.63363 151.13363 15113.36336 2.63363 299.63364 151.13363 15113.36358 2.63363 299.63363 151.1336300000001 15113.36300 2020-01-01 2020-01-02 2020-01-01 00:14:37 2020-01-02 03:42:58 2020-01-01 00:14:37.000 2020-01-02 03:42:58.000 877 99778 50327.5 5032750 877 99778 50327.5 5032750 -32691 32244 4452.3 445230 -124 127 3.02 302 -878 2 10868 99779 2.63663 299.63663 151.13663 15113.66366 2.63663 299.63663 151.13663 15113.66371 2.63663 299.63663 151.13663000000017 15113.66300 2020-01-01 2020-01-02 2020-01-01 00:14:38 2020-01-02 03:42:59 2020-01-01 00:14:38.000 2020-01-02 03:42:59.000 878 99779 50328.5 5032850 878 99779 50328.5 5032850 -32690 32245 4453.3 445330 -128 127 1.46 146 -879 2 10869 99780 2.63963 299.63963 151.13963 15113.96396 2.63963 299.63965 151.13963 15113.96385 2.63963 299.63963 151.13962999999984 15113.96300 2020-01-01 2020-01-02 2020-01-01 00:14:39 2020-01-02 03:43:00 2020-01-01 00:14:39.000 2020-01-02 03:43:00.000 879 99780 50329.5 5032950 879 99780 50329.5 5032950 -32689 32246 4454.3 445430 -128 123 -0.1 -10 -88 2 10078 99988 0.26426 300.26426 150.26426 15176.69069 0.26426 300.26425 150.26426 15176.69066 0.26426 300.26426 150.26425999999995 15176.69026 2020-01-01 2020-01-02 2020-01-01 00:01:28 2020-01-02 03:46:28 2020-01-01 00:01:28.000 2020-01-02 03:46:28.000 88 99988 50038 5053838 88 99988 50038 5053838 -32481 32454 4617.009900990099 466318 -126 125 -1.1287128712871286 -114 +875 2 10865 99776 2.62762 299.62762 151.12762 15112.76276 2.62762 299.62762 151.12762 15112.76252 2.62762 299.62762 151.12762 15112.76200 2020-01-01 2020-01-02 2020-01-01 00:14:35 2020-01-02 03:42:56 2020-01-01 00:14:35.000 2020-01-02 03:42:56.000 875 99776 50325.5 5032550 875 99776 50325.5 5032550 -32693 32242 4450.3 445030 -126 125 1.02 102 +876 2 10866 99777 2.63063 299.63063 151.13063 15113.06306 2.63063 299.63065 151.13063 15113.06327 2.63063 299.63063 151.13063 15113.06300 2020-01-01 2020-01-02 2020-01-01 00:14:36 2020-01-02 03:42:57 2020-01-01 00:14:36.000 2020-01-02 03:42:57.000 876 99777 50326.5 5032650 876 99777 50326.5 5032650 -32692 32243 4451.3 445130 -125 126 2.02 202 +877 2 10867 99778 2.63363 299.63363 151.13363 15113.36336 2.63363 299.63364 151.13363 15113.36358 2.63363 299.63363 151.13362999999998 15113.36300 2020-01-01 2020-01-02 2020-01-01 00:14:37 2020-01-02 03:42:58 2020-01-01 00:14:37.000 2020-01-02 03:42:58.000 877 99778 50327.5 5032750 877 99778 50327.5 5032750 -32691 32244 4452.3 445230 -124 127 3.02 302 +878 2 10868 99779 2.63663 299.63663 151.13663 15113.66366 2.63663 299.63663 151.13663 15113.66371 2.63663 299.63663 151.13663 15113.66300 2020-01-01 2020-01-02 2020-01-01 00:14:38 2020-01-02 03:42:59 2020-01-01 00:14:38.000 2020-01-02 03:42:59.000 878 99779 50328.5 5032850 878 99779 50328.5 5032850 -32690 32245 4453.3 445330 -128 127 1.46 146 +879 2 10869 99780 2.63963 299.63963 151.13963 15113.96396 2.63963 299.63965 151.13963 15113.96385 2.63963 299.63963 151.13963 15113.96300 2020-01-01 2020-01-02 2020-01-01 00:14:39 2020-01-02 03:43:00 2020-01-01 00:14:39.000 2020-01-02 03:43:00.000 879 99780 50329.5 5032950 879 99780 50329.5 5032950 -32689 32246 4454.3 445430 -128 123 -0.1 -10 +88 2 10078 99988 0.26426 300.26426 150.26426 15176.69069 0.26426 300.26425 150.26426 15176.69066 0.26426 300.26426 150.26426 15176.69026 2020-01-01 2020-01-02 2020-01-01 00:01:28 2020-01-02 03:46:28 2020-01-01 00:01:28.000 2020-01-02 03:46:28.000 88 99988 50038 5053838 88 99988 50038 5053838 -32481 32454 4617.009900990099 466318 -126 125 -1.1287128712871286 -114 880 2 10870 99781 2.64264 299.64264 151.14264 15114.26426 2.64264 299.64264 151.14263 15114.26399 2.64264 299.64264 151.14264 15114.26400 2020-01-01 2020-01-02 2020-01-01 00:14:40 2020-01-02 03:43:01 2020-01-01 00:14:40.000 2020-01-02 03:43:01.000 880 99781 50330.5 5033050 880 99781 50330.5 5033050 -32688 32247 4455.3 445530 -127 124 0.9 90 -881 2 10871 99782 2.64564 299.64564 151.14564 15114.56456 2.64564 299.64566 151.14564 15114.56474 2.64564 299.64564 151.1456400000001 15114.56400 2020-01-01 2020-01-02 2020-01-01 00:14:41 2020-01-02 03:43:02 2020-01-01 00:14:41.000 2020-01-02 03:43:02.000 881 99782 50331.5 5033150 881 99782 50331.5 5033150 -32687 32248 4456.3 445630 -126 125 1.9 190 -882 2 10872 99783 2.64864 299.64864 151.14864 15114.86486 2.64864 299.64865 151.14865 15114.86504 2.64864 299.64864 151.14863999999992 15114.86400 2020-01-01 2020-01-02 2020-01-01 00:14:42 2020-01-02 03:43:03 2020-01-01 00:14:42.000 2020-01-02 03:43:03.000 882 99783 50332.5 5033250 882 99783 50332.5 5033250 -32686 32249 4457.3 445730 -125 126 2.9 290 -883 2 10873 99784 2.65165 299.65165 151.15165 15115.16516 2.65165 299.65164 151.15165 15115.16522 2.65165 299.65165 151.15164999999988 15115.16500 2020-01-01 2020-01-02 2020-01-01 00:14:43 2020-01-02 03:43:04 2020-01-01 00:14:43.000 2020-01-02 03:43:04.000 883 99784 50333.5 5033350 883 99784 50333.5 5033350 -32685 32250 4458.3 445830 -124 127 3.9 390 -884 2 10874 99785 2.65465 299.65465 151.15465 15115.46546 2.65465 299.65466 151.15465 15115.46532 2.65465 299.65465 151.1546500000002 15115.46500 2020-01-01 2020-01-02 2020-01-01 00:14:44 2020-01-02 03:43:05 2020-01-01 00:14:44.000 2020-01-02 03:43:05.000 884 99785 50334.5 5033450 884 99785 50334.5 5033450 -32684 32251 4459.3 445930 -128 127 2.34 234 -885 2 10875 99786 2.65765 299.65765 151.15765 15115.76576 2.65765 299.65765 151.15765 15115.76562 2.65765 299.65765 151.15764999999988 15115.76500 2020-01-01 2020-01-02 2020-01-01 00:14:45 2020-01-02 03:43:06 2020-01-01 00:14:45.000 2020-01-02 03:43:06.000 885 99786 50335.5 5033550 885 99786 50335.5 5033550 -32683 32252 4460.3 446030 -128 123 0.78 78 -886 2 10876 99787 2.66066 299.66066 151.16066 15116.06606 2.66066 299.66068 151.16066 15116.06621 2.66066 299.66066 151.16065999999978 15116.06600 2020-01-01 2020-01-02 2020-01-01 00:14:46 2020-01-02 03:43:07 2020-01-01 00:14:46.000 2020-01-02 03:43:07.000 886 99787 50336.5 5033650 886 99787 50336.5 5033650 -32682 32253 4461.3 446130 -127 124 1.78 178 -887 2 10877 99788 2.66366 299.66366 151.16366 15116.36636 2.66366 299.66367 151.16366 15116.36651 2.66366 299.66366 151.1636600000001 15116.36600 2020-01-01 2020-01-02 2020-01-01 00:14:47 2020-01-02 03:43:08 2020-01-01 00:14:47.000 2020-01-02 03:43:08.000 887 99788 50337.5 5033750 887 99788 50337.5 5033750 -32681 32254 4462.3 446230 -126 125 2.78 278 -888 2 10878 99789 2.66666 299.66666 151.16666 15116.66666 2.66666 299.66666 151.16666 15116.66669 2.66666 299.66666 151.1666600000001 15116.66600 2020-01-01 2020-01-02 2020-01-01 00:14:48 2020-01-02 03:43:09 2020-01-01 00:14:48.000 2020-01-02 03:43:09.000 888 99789 50338.5 5033850 888 99789 50338.5 5033850 -32680 32255 4463.3 446330 -125 126 3.78 378 -889 2 10879 99790 2.66966 299.66966 151.16966 15116.96696 2.66966 299.66968 151.16966 15116.96679 2.66966 299.66966 151.1696599999998 15116.96600 2020-01-01 2020-01-02 2020-01-01 00:14:49 2020-01-02 03:43:10 2020-01-01 00:14:49.000 2020-01-02 03:43:10.000 889 99790 50339.5 5033950 889 99790 50339.5 5033950 -32679 32256 4464.3 446430 -124 127 4.78 478 -89 2 10079 99989 0.26726 300.26726 150.26726 15176.99399 0.26726 300.26727 150.26727 15176.9943 0.26726 300.26726 150.26726000000005 15176.99326 2020-01-01 2020-01-02 2020-01-01 00:01:29 2020-01-02 03:46:29 2020-01-01 00:01:29.000 2020-01-02 03:46:29.000 89 99989 50039 5053939 89 99989 50039 5053939 -32480 32455 4618.009900990099 466419 -125 126 -0.12871287128712872 -13 -890 2 10880 99791 2.67267 299.67267 151.17267 15117.26726 2.67267 299.67267 151.17267 15117.26708 2.67267 299.67267 151.17266999999995 15117.26700 2020-01-01 2020-01-02 2020-01-01 00:14:50 2020-01-02 03:43:11 2020-01-01 00:14:50.000 2020-01-02 03:43:11.000 890 99791 50340.5 5034050 890 99791 50340.5 5034050 -32678 32257 4465.3 446530 -128 127 3.22 322 +881 2 10871 99782 2.64564 299.64564 151.14564 15114.56456 2.64564 299.64566 151.14564 15114.56474 2.64564 299.64564 151.14564000000001 15114.56400 2020-01-01 2020-01-02 2020-01-01 00:14:41 2020-01-02 03:43:02 2020-01-01 00:14:41.000 2020-01-02 03:43:02.000 881 99782 50331.5 5033150 881 99782 50331.5 5033150 -32687 32248 4456.3 445630 -126 125 1.9 190 +882 2 10872 99783 2.64864 299.64864 151.14864 15114.86486 2.64864 299.64865 151.14865 15114.86504 2.64864 299.64864 151.14864 15114.86400 2020-01-01 2020-01-02 2020-01-01 00:14:42 2020-01-02 03:43:03 2020-01-01 00:14:42.000 2020-01-02 03:43:03.000 882 99783 50332.5 5033250 882 99783 50332.5 5033250 -32686 32249 4457.3 445730 -125 126 2.9 290 +883 2 10873 99784 2.65165 299.65165 151.15165 15115.16516 2.65165 299.65164 151.15165 15115.16522 2.65165 299.65165 151.15165000000002 15115.16500 2020-01-01 2020-01-02 2020-01-01 00:14:43 2020-01-02 03:43:04 2020-01-01 00:14:43.000 2020-01-02 03:43:04.000 883 99784 50333.5 5033350 883 99784 50333.5 5033350 -32685 32250 4458.3 445830 -124 127 3.9 390 +884 2 10874 99785 2.65465 299.65465 151.15465 15115.46546 2.65465 299.65466 151.15465 15115.46532 2.65465 299.65465 151.15465 15115.46500 2020-01-01 2020-01-02 2020-01-01 00:14:44 2020-01-02 03:43:05 2020-01-01 00:14:44.000 2020-01-02 03:43:05.000 884 99785 50334.5 5033450 884 99785 50334.5 5033450 -32684 32251 4459.3 445930 -128 127 2.34 234 +885 2 10875 99786 2.65765 299.65765 151.15765 15115.76576 2.65765 299.65765 151.15765 15115.76562 2.65765 299.65765 151.15765 15115.76500 2020-01-01 2020-01-02 2020-01-01 00:14:45 2020-01-02 03:43:06 2020-01-01 00:14:45.000 2020-01-02 03:43:06.000 885 99786 50335.5 5033550 885 99786 50335.5 5033550 -32683 32252 4460.3 446030 -128 123 0.78 78 +886 2 10876 99787 2.66066 299.66066 151.16066 15116.06606 2.66066 299.66068 151.16066 15116.06621 2.66066 299.66066 151.16066 15116.06600 2020-01-01 2020-01-02 2020-01-01 00:14:46 2020-01-02 03:43:07 2020-01-01 00:14:46.000 2020-01-02 03:43:07.000 886 99787 50336.5 5033650 886 99787 50336.5 5033650 -32682 32253 4461.3 446130 -127 124 1.78 178 +887 2 10877 99788 2.66366 299.66366 151.16366 15116.36636 2.66366 299.66367 151.16366 15116.36651 2.66366 299.66366 151.16366 15116.36600 2020-01-01 2020-01-02 2020-01-01 00:14:47 2020-01-02 03:43:08 2020-01-01 00:14:47.000 2020-01-02 03:43:08.000 887 99788 50337.5 5033750 887 99788 50337.5 5033750 -32681 32254 4462.3 446230 -126 125 2.78 278 +888 2 10878 99789 2.66666 299.66666 151.16666 15116.66666 2.66666 299.66666 151.16666 15116.66669 2.66666 299.66666 151.16665999999998 15116.66600 2020-01-01 2020-01-02 2020-01-01 00:14:48 2020-01-02 03:43:09 2020-01-01 00:14:48.000 2020-01-02 03:43:09.000 888 99789 50338.5 5033850 888 99789 50338.5 5033850 -32680 32255 4463.3 446330 -125 126 3.78 378 +889 2 10879 99790 2.66966 299.66966 151.16966 15116.96696 2.66966 299.66968 151.16966 15116.96679 2.66966 299.66966 151.16966 15116.96600 2020-01-01 2020-01-02 2020-01-01 00:14:49 2020-01-02 03:43:10 2020-01-01 00:14:49.000 2020-01-02 03:43:10.000 889 99790 50339.5 5033950 889 99790 50339.5 5033950 -32679 32256 4464.3 446430 -124 127 4.78 478 +89 2 10079 99989 0.26726 300.26726 150.26726 15176.99399 0.26726 300.26727 150.26727 15176.9943 0.26726 300.26726 150.26726 15176.99326 2020-01-01 2020-01-02 2020-01-01 00:01:29 2020-01-02 03:46:29 2020-01-01 00:01:29.000 2020-01-02 03:46:29.000 89 99989 50039 5053939 89 99989 50039 5053939 -32480 32455 4618.009900990099 466419 -125 126 -0.12871287128712872 -13 +890 2 10880 99791 2.67267 299.67267 151.17267 15117.26726 2.67267 299.67267 151.17267 15117.26708 2.67267 299.67267 151.17267 15117.26700 2020-01-01 2020-01-02 2020-01-01 00:14:50 2020-01-02 03:43:11 2020-01-01 00:14:50.000 2020-01-02 03:43:11.000 890 99791 50340.5 5034050 890 99791 50340.5 5034050 -32678 32257 4465.3 446530 -128 127 3.22 322 891 2 10881 99792 2.67567 299.67567 151.17567 15117.56756 2.67567 299.6757 151.17567 15117.56768 2.67567 299.67567 151.17567 15117.56700 2020-01-01 2020-01-02 2020-01-01 00:14:51 2020-01-02 03:43:12 2020-01-01 00:14:51.000 2020-01-02 03:43:12.000 891 99792 50341.5 5034150 891 99792 50341.5 5034150 -32677 32258 4466.3 446630 -128 127 1.66 166 -892 2 10882 99793 2.67867 299.67867 151.17867 15117.86786 2.67867 299.67868 151.17868 15117.86802 2.67867 299.67867 151.17866999999993 15117.86700 2020-01-01 2020-01-02 2020-01-01 00:14:52 2020-01-02 03:43:13 2020-01-01 00:14:52.000 2020-01-02 03:43:13.000 892 99793 50342.5 5034250 892 99793 50342.5 5034250 -32676 32259 4467.3 446730 -128 124 0.1 10 -893 2 10883 99794 2.68168 299.68168 151.18168 15118.16816 2.68168 299.68167 151.18168 15118.16816 2.68168 299.68168 151.18167999999986 15118.16800 2020-01-01 2020-01-02 2020-01-01 00:14:53 2020-01-02 03:43:14 2020-01-01 00:14:53.000 2020-01-02 03:43:14.000 893 99794 50343.5 5034350 893 99794 50343.5 5034350 -32675 32260 4468.3 446830 -127 125 1.1 110 -894 2 10884 99795 2.68468 299.68468 151.18468 15118.46846 2.68468 299.6847 151.18468 15118.46826 2.68468 299.68468 151.18468000000013 15118.46800 2020-01-01 2020-01-02 2020-01-01 00:14:54 2020-01-02 03:43:15 2020-01-01 00:14:54.000 2020-01-02 03:43:15.000 894 99795 50344.5 5034450 894 99795 50344.5 5034450 -32674 32261 4469.3 446930 -126 126 2.1 210 -895 2 10885 99796 2.68768 299.68768 151.18768 15118.76876 2.68768 299.68768 151.18768 15118.76855 2.68768 299.68768 151.1876799999998 15118.76800 2020-01-01 2020-01-02 2020-01-01 00:14:55 2020-01-02 03:43:16 2020-01-01 00:14:55.000 2020-01-02 03:43:16.000 895 99796 50345.5 5034550 895 99796 50345.5 5034550 -32673 32262 4470.3 447030 -125 127 3.1 310 -896 2 10886 99797 2.69069 299.69069 151.19069 15119.06906 2.69069 299.6907 151.19069 15119.06915 2.69069 299.69069 151.19068999999993 15119.06900 2020-01-01 2020-01-02 2020-01-01 00:14:56 2020-01-02 03:43:17 2020-01-01 00:14:56.000 2020-01-02 03:43:17.000 896 99797 50346.5 5034650 896 99797 50346.5 5034650 -32672 32263 4471.3 447130 -128 127 1.54 154 -897 2 10887 99798 2.69369 299.69369 151.19369 15119.36936 2.69369 299.6937 151.19369 15119.36949 2.69369 299.69369 151.19369000000003 15119.36900 2020-01-01 2020-01-02 2020-01-01 00:14:57 2020-01-02 03:43:18 2020-01-01 00:14:57.000 2020-01-02 03:43:18.000 897 99798 50347.5 5034750 897 99798 50347.5 5034750 -32671 32264 4472.3 447230 -128 127 -0.02 -2 -898 2 10888 99799 2.69669 299.69669 151.19669 15119.66966 2.69669 299.6967 151.19669 15119.66963 2.69669 299.69669 151.1966900000001 15119.66900 2020-01-01 2020-01-02 2020-01-01 00:14:58 2020-01-02 03:43:19 2020-01-01 00:14:58.000 2020-01-02 03:43:19.000 898 99799 50348.5 5034850 898 99799 50348.5 5034850 -32670 32265 4473.3 447330 -128 123 -1.58 -158 -899 2 10889 99800 2.69969 299.69969 151.19969 15119.96996 2.69969 299.6997 151.1997 15119.97038 2.69969 299.69969 151.19968999999998 15119.96900 2020-01-01 2020-01-02 2020-01-01 00:14:59 2020-01-02 03:43:20 2020-01-01 00:14:59.000 2020-01-02 03:43:20.000 899 99800 50349.5 5034950 899 99800 50349.5 5034950 -32669 32266 4474.3 447430 -127 124 -0.58 -58 -9 2 1008 9999 0.02702 300.02702 150.02702 15152.72972 0.02702 300.02704 150.02702 15152.72966 0.02702 300.02702 150.02701999999985 15152.72902 2020-01-01 2020-01-02 2020-01-01 00:00:09 2020-01-02 03:45:09 2020-01-01 00:00:09.000 2020-01-02 03:45:09.000 9 99909 49959 5045859 9 99909 49959 5045859 -32560 32375 4538.009900990099 458339 -124 127 0.9801980198019802 99 -90 2 10080 99990 0.27027 300.27027 150.27027 15177.29729 0.27027 300.27026 150.27026 15177.29694 0.27027 300.27027 150.27027000000024 15177.29727 2020-01-01 2020-01-02 2020-01-01 00:01:30 2020-01-02 03:46:30 2020-01-01 00:01:30.000 2020-01-02 03:46:30.000 90 99990 50040 5054040 90 99990 50040 5054040 -32479 32456 4619.009900990099 466520 -124 127 0.8712871287128713 88 -900 2 10890 99801 2.7027 299.7027 151.2027 15120.27027 2.7027 299.7027 151.2027 15120.27003 2.70270 299.70270 151.20269999999988 15120.27000 2020-01-01 2020-01-02 2020-01-01 00:15:00 2020-01-02 03:43:21 2020-01-01 00:15:00.000 2020-01-02 03:43:21.000 900 99801 50350.5 5035050 900 99801 50350.5 5035050 -32668 32267 4475.3 447530 -126 125 0.42 42 -901 2 10891 99802 2.7057 299.7057 151.2057 15120.57057 2.7057 299.70572 151.2057 15120.57066 2.70570 299.70570 151.2057000000002 15120.57000 2020-01-01 2020-01-02 2020-01-01 00:15:01 2020-01-02 03:43:22 2020-01-01 00:15:01.000 2020-01-02 03:43:22.000 901 99802 50351.5 5035150 901 99802 50351.5 5035150 -32667 32268 4476.3 447630 -125 126 1.42 142 -902 2 10892 99803 2.7087 299.7087 151.2087 15120.87087 2.7087 299.7087 151.2087 15120.87095 2.70870 299.70870 151.2086999999999 15120.87000 2020-01-01 2020-01-02 2020-01-01 00:15:02 2020-01-02 03:43:23 2020-01-01 00:15:02.000 2020-01-02 03:43:23.000 902 99803 50352.5 5035250 902 99803 50352.5 5035250 -32666 32269 4477.3 447730 -124 127 2.42 242 -903 2 10893 99804 2.71171 299.71171 151.21171 15121.17117 2.71171 299.7117 151.21171 15121.1711 2.71171 299.71171 151.21170999999978 15121.17100 2020-01-01 2020-01-02 2020-01-01 00:15:03 2020-01-02 03:43:24 2020-01-01 00:15:03.000 2020-01-02 03:43:24.000 903 99804 50353.5 5035350 903 99804 50353.5 5035350 -32665 32270 4478.3 447830 -128 127 0.86 86 -904 2 10894 99805 2.71471 299.71471 151.21471 15121.47147 2.71471 299.71472 151.21471 15121.47185 2.71471 299.71471 151.2147100000001 15121.47100 2020-01-01 2020-01-02 2020-01-01 00:15:04 2020-01-02 03:43:25 2020-01-01 00:15:04.000 2020-01-02 03:43:25.000 904 99805 50354.5 5035450 904 99805 50354.5 5035450 -32664 32271 4479.3 447930 -128 123 -0.7 -70 -905 2 10895 99806 2.71771 299.71771 151.21771 15121.77177 2.71771 299.7177 151.21771 15121.77149 2.71771 299.71771 151.21771000000012 15121.77100 2020-01-01 2020-01-02 2020-01-01 00:15:05 2020-01-02 03:43:26 2020-01-01 00:15:05.000 2020-01-02 03:43:26.000 905 99806 50355.5 5035550 905 99806 50355.5 5035550 -32663 32272 4480.3 448030 -127 124 0.3 30 -906 2 10896 99807 2.72072 299.72072 151.22072 15122.07207 2.72072 299.72073 151.22072 15122.07212 2.72072 299.72072 151.2207199999999 15122.07200 2020-01-01 2020-01-02 2020-01-01 00:15:06 2020-01-02 03:43:27 2020-01-01 00:15:06.000 2020-01-02 03:43:27.000 906 99807 50356.5 5035650 906 99807 50356.5 5035650 -32662 32273 4481.3 448130 -126 125 1.3 130 +892 2 10882 99793 2.67867 299.67867 151.17867 15117.86786 2.67867 299.67868 151.17868 15117.86802 2.67867 299.67867 151.17867 15117.86700 2020-01-01 2020-01-02 2020-01-01 00:14:52 2020-01-02 03:43:13 2020-01-01 00:14:52.000 2020-01-02 03:43:13.000 892 99793 50342.5 5034250 892 99793 50342.5 5034250 -32676 32259 4467.3 446730 -128 124 0.1 10 +893 2 10883 99794 2.68168 299.68168 151.18168 15118.16816 2.68168 299.68167 151.18168 15118.16816 2.68168 299.68168 151.18168 15118.16800 2020-01-01 2020-01-02 2020-01-01 00:14:53 2020-01-02 03:43:14 2020-01-01 00:14:53.000 2020-01-02 03:43:14.000 893 99794 50343.5 5034350 893 99794 50343.5 5034350 -32675 32260 4468.3 446830 -127 125 1.1 110 +894 2 10884 99795 2.68468 299.68468 151.18468 15118.46846 2.68468 299.6847 151.18468 15118.46826 2.68468 299.68468 151.18468000000001 15118.46800 2020-01-01 2020-01-02 2020-01-01 00:14:54 2020-01-02 03:43:15 2020-01-01 00:14:54.000 2020-01-02 03:43:15.000 894 99795 50344.5 5034450 894 99795 50344.5 5034450 -32674 32261 4469.3 446930 -126 126 2.1 210 +895 2 10885 99796 2.68768 299.68768 151.18768 15118.76876 2.68768 299.68768 151.18768 15118.76855 2.68768 299.68768 151.18768 15118.76800 2020-01-01 2020-01-02 2020-01-01 00:14:55 2020-01-02 03:43:16 2020-01-01 00:14:55.000 2020-01-02 03:43:16.000 895 99796 50345.5 5034550 895 99796 50345.5 5034550 -32673 32262 4470.3 447030 -125 127 3.1 310 +896 2 10886 99797 2.69069 299.69069 151.19069 15119.06906 2.69069 299.6907 151.19069 15119.06915 2.69069 299.69069 151.19069 15119.06900 2020-01-01 2020-01-02 2020-01-01 00:14:56 2020-01-02 03:43:17 2020-01-01 00:14:56.000 2020-01-02 03:43:17.000 896 99797 50346.5 5034650 896 99797 50346.5 5034650 -32672 32263 4471.3 447130 -128 127 1.54 154 +897 2 10887 99798 2.69369 299.69369 151.19369 15119.36936 2.69369 299.6937 151.19369 15119.36949 2.69369 299.69369 151.19369 15119.36900 2020-01-01 2020-01-02 2020-01-01 00:14:57 2020-01-02 03:43:18 2020-01-01 00:14:57.000 2020-01-02 03:43:18.000 897 99798 50347.5 5034750 897 99798 50347.5 5034750 -32671 32264 4472.3 447230 -128 127 -0.02 -2 +898 2 10888 99799 2.69669 299.69669 151.19669 15119.66966 2.69669 299.6967 151.19669 15119.66963 2.69669 299.69669 151.19669 15119.66900 2020-01-01 2020-01-02 2020-01-01 00:14:58 2020-01-02 03:43:19 2020-01-01 00:14:58.000 2020-01-02 03:43:19.000 898 99799 50348.5 5034850 898 99799 50348.5 5034850 -32670 32265 4473.3 447330 -128 123 -1.58 -158 +899 2 10889 99800 2.69969 299.69969 151.19969 15119.96996 2.69969 299.6997 151.1997 15119.97038 2.69969 299.69969 151.19969 15119.96900 2020-01-01 2020-01-02 2020-01-01 00:14:59 2020-01-02 03:43:20 2020-01-01 00:14:59.000 2020-01-02 03:43:20.000 899 99800 50349.5 5034950 899 99800 50349.5 5034950 -32669 32266 4474.3 447430 -127 124 -0.58 -58 +9 2 1008 9999 0.02702 300.02702 150.02702 15152.72972 0.02702 300.02704 150.02702 15152.72966 0.02702 300.02702 150.02702 15152.72902 2020-01-01 2020-01-02 2020-01-01 00:00:09 2020-01-02 03:45:09 2020-01-01 00:00:09.000 2020-01-02 03:45:09.000 9 99909 49959 5045859 9 99909 49959 5045859 -32560 32375 4538.009900990099 458339 -124 127 0.9801980198019802 99 +90 2 10080 99990 0.27027 300.27027 150.27027 15177.29729 0.27027 300.27026 150.27026 15177.29694 0.27027 300.27027 150.27026999999998 15177.29727 2020-01-01 2020-01-02 2020-01-01 00:01:30 2020-01-02 03:46:30 2020-01-01 00:01:30.000 2020-01-02 03:46:30.000 90 99990 50040 5054040 90 99990 50040 5054040 -32479 32456 4619.009900990099 466520 -124 127 0.8712871287128713 88 +900 2 10890 99801 2.7027 299.7027 151.2027 15120.27027 2.7027 299.7027 151.2027 15120.27003 2.70270 299.70270 151.2027 15120.27000 2020-01-01 2020-01-02 2020-01-01 00:15:00 2020-01-02 03:43:21 2020-01-01 00:15:00.000 2020-01-02 03:43:21.000 900 99801 50350.5 5035050 900 99801 50350.5 5035050 -32668 32267 4475.3 447530 -126 125 0.42 42 +901 2 10891 99802 2.7057 299.7057 151.2057 15120.57057 2.7057 299.70572 151.2057 15120.57066 2.70570 299.70570 151.2057 15120.57000 2020-01-01 2020-01-02 2020-01-01 00:15:01 2020-01-02 03:43:22 2020-01-01 00:15:01.000 2020-01-02 03:43:22.000 901 99802 50351.5 5035150 901 99802 50351.5 5035150 -32667 32268 4476.3 447630 -125 126 1.42 142 +902 2 10892 99803 2.7087 299.7087 151.2087 15120.87087 2.7087 299.7087 151.2087 15120.87095 2.70870 299.70870 151.20870000000002 15120.87000 2020-01-01 2020-01-02 2020-01-01 00:15:02 2020-01-02 03:43:23 2020-01-01 00:15:02.000 2020-01-02 03:43:23.000 902 99803 50352.5 5035250 902 99803 50352.5 5035250 -32666 32269 4477.3 447730 -124 127 2.42 242 +903 2 10893 99804 2.71171 299.71171 151.21171 15121.17117 2.71171 299.7117 151.21171 15121.1711 2.71171 299.71171 151.21171 15121.17100 2020-01-01 2020-01-02 2020-01-01 00:15:03 2020-01-02 03:43:24 2020-01-01 00:15:03.000 2020-01-02 03:43:24.000 903 99804 50353.5 5035350 903 99804 50353.5 5035350 -32665 32270 4478.3 447830 -128 127 0.86 86 +904 2 10894 99805 2.71471 299.71471 151.21471 15121.47147 2.71471 299.71472 151.21471 15121.47185 2.71471 299.71471 151.21471 15121.47100 2020-01-01 2020-01-02 2020-01-01 00:15:04 2020-01-02 03:43:25 2020-01-01 00:15:04.000 2020-01-02 03:43:25.000 904 99805 50354.5 5035450 904 99805 50354.5 5035450 -32664 32271 4479.3 447930 -128 123 -0.7 -70 +905 2 10895 99806 2.71771 299.71771 151.21771 15121.77177 2.71771 299.7177 151.21771 15121.77149 2.71771 299.71771 151.21771 15121.77100 2020-01-01 2020-01-02 2020-01-01 00:15:05 2020-01-02 03:43:26 2020-01-01 00:15:05.000 2020-01-02 03:43:26.000 905 99806 50355.5 5035550 905 99806 50355.5 5035550 -32663 32272 4480.3 448030 -127 124 0.3 30 +906 2 10896 99807 2.72072 299.72072 151.22072 15122.07207 2.72072 299.72073 151.22072 15122.07212 2.72072 299.72072 151.22072 15122.07200 2020-01-01 2020-01-02 2020-01-01 00:15:06 2020-01-02 03:43:27 2020-01-01 00:15:06.000 2020-01-02 03:43:27.000 906 99807 50356.5 5035650 906 99807 50356.5 5035650 -32662 32273 4481.3 448130 -126 125 1.3 130 907 2 10897 99808 2.72372 299.72372 151.22372 15122.37237 2.72372 299.72372 151.22372 15122.37243 2.72372 299.72372 151.22372 15122.37200 2020-01-01 2020-01-02 2020-01-01 00:15:07 2020-01-02 03:43:28 2020-01-01 00:15:07.000 2020-01-02 03:43:28.000 907 99808 50357.5 5035750 907 99808 50357.5 5035750 -32661 32274 4482.3 448230 -125 126 2.3 230 -908 2 10898 99809 2.72672 299.72672 151.22672 15122.67267 2.72672 299.7267 151.22672 15122.67272 2.72672 299.72672 151.22672000000006 15122.67200 2020-01-01 2020-01-02 2020-01-01 00:15:08 2020-01-02 03:43:29 2020-01-01 00:15:08.000 2020-01-02 03:43:29.000 908 99809 50358.5 5035850 908 99809 50358.5 5035850 -32660 32275 4483.3 448330 -124 127 3.3 330 -909 2 10899 99810 2.72972 299.72972 151.22972 15122.97297 2.72972 299.72974 151.22973 15122.97332 2.72972 299.72972 151.22971999999987 15122.97200 2020-01-01 2020-01-02 2020-01-01 00:15:09 2020-01-02 03:43:30 2020-01-01 00:15:09.000 2020-01-02 03:43:30.000 909 99810 50359.5 5035950 909 99810 50359.5 5035950 -32659 32276 4484.3 448430 -128 127 1.74 174 -91 2 10081 99991 0.27327 300.27327 150.27327 15177.6006 0.27327 300.2733 150.27327 15177.60054 0.27327 300.27327 150.27326999999985 15177.60027 2020-01-01 2020-01-02 2020-01-01 00:01:31 2020-01-02 03:46:31 2020-01-01 00:01:31.000 2020-01-02 03:46:31.000 91 99991 50041 5054141 91 99991 50041 5054141 -32478 32457 4620.009900990099 466621 -128 127 -0.6633663366336634 -67 -910 2 10900 99811 2.73273 299.73273 151.23273 15123.27327 2.73273 299.73273 151.23272 15123.27296 2.73273 299.73273 151.2327299999999 15123.27300 2020-01-01 2020-01-02 2020-01-01 00:15:10 2020-01-02 03:43:31 2020-01-01 00:15:10.000 2020-01-02 03:43:31.000 910 99811 50360.5 5036050 910 99811 50360.5 5036050 -32658 32277 4485.3 448530 -128 123 0.18 18 -911 2 10901 99812 2.73573 299.73573 151.23573 15123.57357 2.73573 299.73575 151.23573 15123.57359 2.73573 299.73573 151.23573000000016 15123.57300 2020-01-01 2020-01-02 2020-01-01 00:15:11 2020-01-02 03:43:32 2020-01-01 00:15:11.000 2020-01-02 03:43:32.000 911 99812 50361.5 5036150 911 99812 50361.5 5036150 -32657 32278 4486.3 448630 -127 124 1.18 118 -912 2 10902 99813 2.73873 299.73873 151.23873 15123.87387 2.73873 299.73874 151.23873 15123.8739 2.73873 299.73873 151.2387299999998 15123.87300 2020-01-01 2020-01-02 2020-01-01 00:15:12 2020-01-02 03:43:33 2020-01-01 00:15:12.000 2020-01-02 03:43:33.000 912 99813 50362.5 5036250 912 99813 50362.5 5036250 -32656 32279 4487.3 448730 -126 125 2.18 218 -913 2 10903 99814 2.74174 299.74174 151.24174 15124.17417 2.74174 299.74173 151.24174 15124.17419 2.74174 299.74174 151.24174 15124.17400 2020-01-01 2020-01-02 2020-01-01 00:15:13 2020-01-02 03:43:34 2020-01-01 00:15:13.000 2020-01-02 03:43:34.000 913 99814 50363.5 5036350 913 99814 50363.5 5036350 -32655 32280 4488.3 448830 -125 126 3.18 318 -914 2 10904 99815 2.74474 299.74474 151.24474 15124.47447 2.74474 299.74475 151.24474 15124.47479 2.74474 299.74474 151.24474000000006 15124.47400 2020-01-01 2020-01-02 2020-01-01 00:15:14 2020-01-02 03:43:35 2020-01-01 00:15:14.000 2020-01-02 03:43:35.000 914 99815 50364.5 5036450 914 99815 50364.5 5036450 -32654 32281 4489.3 448930 -124 127 4.18 418 -915 2 10905 99816 2.74774 299.74774 151.24774 15124.77477 2.74774 299.74774 151.24774 15124.77447 2.74774 299.74774 151.24774000000008 15124.77400 2020-01-01 2020-01-02 2020-01-01 00:15:15 2020-01-02 03:43:36 2020-01-01 00:15:15.000 2020-01-02 03:43:36.000 915 99816 50365.5 5036550 915 99816 50365.5 5036550 -32653 32282 4490.3 449030 -128 127 2.62 262 -916 2 10906 99817 2.75075 299.75075 151.25075 15125.07507 2.75075 299.75076 151.25075 15125.07507 2.75075 299.75075 151.25074999999987 15125.07500 2020-01-01 2020-01-02 2020-01-01 00:15:16 2020-01-02 03:43:37 2020-01-01 00:15:16.000 2020-01-02 03:43:37.000 916 99817 50366.5 5036650 916 99817 50366.5 5036650 -32652 32283 4491.3 449130 -128 127 1.06 106 -917 2 10907 99818 2.75375 299.75375 151.25375 15125.37537 2.75375 299.75375 151.25375 15125.37536 2.75375 299.75375 151.2537499999999 15125.37500 2020-01-01 2020-01-02 2020-01-01 00:15:17 2020-01-02 03:43:38 2020-01-01 00:15:17.000 2020-01-02 03:43:38.000 917 99818 50367.5 5036750 917 99818 50367.5 5036750 -32651 32284 4492.3 449230 -128 124 -0.5 -50 -918 2 10908 99819 2.75675 299.75675 151.25675 15125.67567 2.75675 299.75674 151.25675 15125.67566 2.75675 299.75675 151.25675000000004 15125.67500 2020-01-01 2020-01-02 2020-01-01 00:15:18 2020-01-02 03:43:39 2020-01-01 00:15:18.000 2020-01-02 03:43:39.000 918 99819 50368.5 5036850 918 99819 50368.5 5036850 -32650 32285 4493.3 449330 -127 125 0.5 50 -919 2 10909 99820 2.75975 299.75975 151.25975 15125.97597 2.75975 299.75977 151.25976 15125.97626 2.75975 299.75975 151.25974999999994 15125.97500 2020-01-01 2020-01-02 2020-01-01 00:15:19 2020-01-02 03:43:40 2020-01-01 00:15:19.000 2020-01-02 03:43:40.000 919 99820 50369.5 5036950 919 99820 50369.5 5036950 -32649 32286 4494.3 449430 -126 126 1.5 150 -92 2 10082 99992 0.27627 300.27627 150.27627 15177.9039 0.27627 300.27628 150.27627 15177.90384 0.27627 300.27627 150.27627000000012 15177.90327 2020-01-01 2020-01-02 2020-01-01 00:01:32 2020-01-02 03:46:32 2020-01-01 00:01:32.000 2020-01-02 03:46:32.000 92 99992 50042 5054242 92 99992 50042 5054242 -32477 32458 4621.009900990099 466722 -128 123 -2.198019801980198 -222 -920 2 10910 99821 2.76276 299.76276 151.26276 15126.27627 2.76276 299.76276 151.26275 15126.27594 2.76276 299.76276 151.2627599999998 15126.27600 2020-01-01 2020-01-02 2020-01-01 00:15:20 2020-01-02 03:43:41 2020-01-01 00:15:20.000 2020-01-02 03:43:41.000 920 99821 50370.5 5037050 920 99821 50370.5 5037050 -32648 32287 4495.3 449530 -125 127 2.5 250 -921 2 10911 99822 2.76576 299.76576 151.26576 15126.57657 2.76576 299.76578 151.26576 15126.57654 2.76576 299.76576 151.26576000000017 15126.57600 2020-01-01 2020-01-02 2020-01-01 00:15:21 2020-01-02 03:43:42 2020-01-01 00:15:21.000 2020-01-02 03:43:42.000 921 99822 50371.5 5037150 921 99822 50371.5 5037150 -32647 32288 4496.3 449630 -128 127 0.94 94 -922 2 10912 99823 2.76876 299.76876 151.26876 15126.87687 2.76876 299.76877 151.26876 15126.87683 2.76876 299.76876 151.26876000000016 15126.87600 2020-01-01 2020-01-02 2020-01-01 00:15:22 2020-01-02 03:43:43 2020-01-01 00:15:22.000 2020-01-02 03:43:43.000 922 99823 50372.5 5037250 922 99823 50372.5 5037250 -32646 32289 4497.3 449730 -128 127 -0.62 -62 -923 2 10913 99824 2.77177 299.77177 151.27177 15127.17717 2.77177 299.77176 151.27177 15127.17713 2.77177 299.77177 151.27176999999992 15127.17700 2020-01-01 2020-01-02 2020-01-01 00:15:23 2020-01-02 03:43:44 2020-01-01 00:15:23.000 2020-01-02 03:43:44.000 923 99824 50373.5 5037350 923 99824 50373.5 5037350 -32645 32290 4498.3 449830 -128 123 -2.18 -218 -924 2 10914 99825 2.77477 299.77477 151.27477 15127.47747 2.77477 299.77478 151.27477 15127.47776 2.77477 299.77477 151.27477 15127.47700 2020-01-01 2020-01-02 2020-01-01 00:15:24 2020-01-02 03:43:45 2020-01-01 00:15:24.000 2020-01-02 03:43:45.000 924 99825 50374.5 5037450 924 99825 50374.5 5037450 -32644 32291 4499.3 449930 -127 124 -1.18 -118 -925 2 10915 99826 2.77777 299.77777 151.27777 15127.77777 2.77777 299.77777 151.27777 15127.77741 2.77777 299.77777 151.2777700000001 15127.77700 2020-01-01 2020-01-02 2020-01-01 00:15:25 2020-01-02 03:43:46 2020-01-01 00:15:25.000 2020-01-02 03:43:46.000 925 99826 50375.5 5037550 925 99826 50375.5 5037550 -32643 32292 4500.3 450030 -126 125 -0.18 -18 -926 2 10916 99827 2.78078 299.78078 151.28078 15128.07807 2.78078 299.7808 151.28078 15128.078 2.78078 299.78078 151.28077999999982 15128.07800 2020-01-01 2020-01-02 2020-01-01 00:15:26 2020-01-02 03:43:47 2020-01-01 00:15:26.000 2020-01-02 03:43:47.000 926 99827 50376.5 5037650 926 99827 50376.5 5037650 -32642 32293 4501.3 450130 -125 126 0.82 82 -927 2 10917 99828 2.78378 299.78378 151.28378 15128.37837 2.78378 299.78378 151.28378 15128.3783 2.78378 299.78378 151.28377999999987 15128.37800 2020-01-01 2020-01-02 2020-01-01 00:15:27 2020-01-02 03:43:48 2020-01-01 00:15:27.000 2020-01-02 03:43:48.000 927 99828 50377.5 5037750 927 99828 50377.5 5037750 -32641 32294 4502.3 450230 -124 127 1.82 182 -928 2 10918 99829 2.78678 299.78678 151.28678 15128.67867 2.78678 299.78677 151.28678 15128.6786 2.78678 299.78678 151.2867800000002 15128.67800 2020-01-01 2020-01-02 2020-01-01 00:15:28 2020-01-02 03:43:49 2020-01-01 00:15:28.000 2020-01-02 03:43:49.000 928 99829 50378.5 5037850 928 99829 50378.5 5037850 -32640 32295 4503.3 450330 -128 127 0.26 26 -929 2 10919 99830 2.78978 299.78978 151.28978 15128.97897 2.78978 299.7898 151.28979 15128.97923 2.78978 299.78978 151.28977999999984 15128.97800 2020-01-01 2020-01-02 2020-01-01 00:15:29 2020-01-02 03:43:50 2020-01-01 00:15:29.000 2020-01-02 03:43:50.000 929 99830 50379.5 5037950 929 99830 50379.5 5037950 -32639 32296 4504.3 450430 -128 123 -1.3 -130 -93 2 10083 99993 0.27927 300.27927 150.27927 15178.2072 0.27927 300.27927 150.27927 15178.20715 0.27927 300.27927 150.27926999999983 15178.20627 2020-01-01 2020-01-02 2020-01-01 00:01:33 2020-01-02 03:46:33 2020-01-01 00:01:33.000 2020-01-02 03:46:33.000 93 99993 50043 5054343 93 99993 50043 5054343 -32476 32459 4622.009900990099 466823 -127 124 -1.198019801980198 -121 +908 2 10898 99809 2.72672 299.72672 151.22672 15122.67267 2.72672 299.7267 151.22672 15122.67272 2.72672 299.72672 151.22672 15122.67200 2020-01-01 2020-01-02 2020-01-01 00:15:08 2020-01-02 03:43:29 2020-01-01 00:15:08.000 2020-01-02 03:43:29.000 908 99809 50358.5 5035850 908 99809 50358.5 5035850 -32660 32275 4483.3 448330 -124 127 3.3 330 +909 2 10899 99810 2.72972 299.72972 151.22972 15122.97297 2.72972 299.72974 151.22973 15122.97332 2.72972 299.72972 151.22972 15122.97200 2020-01-01 2020-01-02 2020-01-01 00:15:09 2020-01-02 03:43:30 2020-01-01 00:15:09.000 2020-01-02 03:43:30.000 909 99810 50359.5 5035950 909 99810 50359.5 5035950 -32659 32276 4484.3 448430 -128 127 1.74 174 +91 2 10081 99991 0.27327 300.27327 150.27327 15177.6006 0.27327 300.2733 150.27327 15177.60054 0.27327 300.27327 150.27327 15177.60027 2020-01-01 2020-01-02 2020-01-01 00:01:31 2020-01-02 03:46:31 2020-01-01 00:01:31.000 2020-01-02 03:46:31.000 91 99991 50041 5054141 91 99991 50041 5054141 -32478 32457 4620.009900990099 466621 -128 127 -0.6633663366336634 -67 +910 2 10900 99811 2.73273 299.73273 151.23273 15123.27327 2.73273 299.73273 151.23272 15123.27296 2.73273 299.73273 151.23273 15123.27300 2020-01-01 2020-01-02 2020-01-01 00:15:10 2020-01-02 03:43:31 2020-01-01 00:15:10.000 2020-01-02 03:43:31.000 910 99811 50360.5 5036050 910 99811 50360.5 5036050 -32658 32277 4485.3 448530 -128 123 0.18 18 +911 2 10901 99812 2.73573 299.73573 151.23573 15123.57357 2.73573 299.73575 151.23573 15123.57359 2.73573 299.73573 151.23573 15123.57300 2020-01-01 2020-01-02 2020-01-01 00:15:11 2020-01-02 03:43:32 2020-01-01 00:15:11.000 2020-01-02 03:43:32.000 911 99812 50361.5 5036150 911 99812 50361.5 5036150 -32657 32278 4486.3 448630 -127 124 1.18 118 +912 2 10902 99813 2.73873 299.73873 151.23873 15123.87387 2.73873 299.73874 151.23873 15123.8739 2.73873 299.73873 151.23873 15123.87300 2020-01-01 2020-01-02 2020-01-01 00:15:12 2020-01-02 03:43:33 2020-01-01 00:15:12.000 2020-01-02 03:43:33.000 912 99813 50362.5 5036250 912 99813 50362.5 5036250 -32656 32279 4487.3 448730 -126 125 2.18 218 +913 2 10903 99814 2.74174 299.74174 151.24174 15124.17417 2.74174 299.74173 151.24174 15124.17419 2.74174 299.74174 151.24174000000002 15124.17400 2020-01-01 2020-01-02 2020-01-01 00:15:13 2020-01-02 03:43:34 2020-01-01 00:15:13.000 2020-01-02 03:43:34.000 913 99814 50363.5 5036350 913 99814 50363.5 5036350 -32655 32280 4488.3 448830 -125 126 3.18 318 +914 2 10904 99815 2.74474 299.74474 151.24474 15124.47447 2.74474 299.74475 151.24474 15124.47479 2.74474 299.74474 151.24474 15124.47400 2020-01-01 2020-01-02 2020-01-01 00:15:14 2020-01-02 03:43:35 2020-01-01 00:15:14.000 2020-01-02 03:43:35.000 914 99815 50364.5 5036450 914 99815 50364.5 5036450 -32654 32281 4489.3 448930 -124 127 4.18 418 +915 2 10905 99816 2.74774 299.74774 151.24774 15124.77477 2.74774 299.74774 151.24774 15124.77447 2.74774 299.74774 151.24774 15124.77400 2020-01-01 2020-01-02 2020-01-01 00:15:15 2020-01-02 03:43:36 2020-01-01 00:15:15.000 2020-01-02 03:43:36.000 915 99816 50365.5 5036550 915 99816 50365.5 5036550 -32653 32282 4490.3 449030 -128 127 2.62 262 +916 2 10906 99817 2.75075 299.75075 151.25075 15125.07507 2.75075 299.75076 151.25075 15125.07507 2.75075 299.75075 151.25075 15125.07500 2020-01-01 2020-01-02 2020-01-01 00:15:16 2020-01-02 03:43:37 2020-01-01 00:15:16.000 2020-01-02 03:43:37.000 916 99817 50366.5 5036650 916 99817 50366.5 5036650 -32652 32283 4491.3 449130 -128 127 1.06 106 +917 2 10907 99818 2.75375 299.75375 151.25375 15125.37537 2.75375 299.75375 151.25375 15125.37536 2.75375 299.75375 151.25375 15125.37500 2020-01-01 2020-01-02 2020-01-01 00:15:17 2020-01-02 03:43:38 2020-01-01 00:15:17.000 2020-01-02 03:43:38.000 917 99818 50367.5 5036750 917 99818 50367.5 5036750 -32651 32284 4492.3 449230 -128 124 -0.5 -50 +918 2 10908 99819 2.75675 299.75675 151.25675 15125.67567 2.75675 299.75674 151.25675 15125.67566 2.75675 299.75675 151.25674999999998 15125.67500 2020-01-01 2020-01-02 2020-01-01 00:15:18 2020-01-02 03:43:39 2020-01-01 00:15:18.000 2020-01-02 03:43:39.000 918 99819 50368.5 5036850 918 99819 50368.5 5036850 -32650 32285 4493.3 449330 -127 125 0.5 50 +919 2 10909 99820 2.75975 299.75975 151.25975 15125.97597 2.75975 299.75977 151.25976 15125.97626 2.75975 299.75975 151.25975 15125.97500 2020-01-01 2020-01-02 2020-01-01 00:15:19 2020-01-02 03:43:40 2020-01-01 00:15:19.000 2020-01-02 03:43:40.000 919 99820 50369.5 5036950 919 99820 50369.5 5036950 -32649 32286 4494.3 449430 -126 126 1.5 150 +92 2 10082 99992 0.27627 300.27627 150.27627 15177.9039 0.27627 300.27628 150.27627 15177.90384 0.27627 300.27627 150.27627 15177.90327 2020-01-01 2020-01-02 2020-01-01 00:01:32 2020-01-02 03:46:32 2020-01-01 00:01:32.000 2020-01-02 03:46:32.000 92 99992 50042 5054242 92 99992 50042 5054242 -32477 32458 4621.009900990099 466722 -128 123 -2.198019801980198 -222 +920 2 10910 99821 2.76276 299.76276 151.26276 15126.27627 2.76276 299.76276 151.26275 15126.27594 2.76276 299.76276 151.26276 15126.27600 2020-01-01 2020-01-02 2020-01-01 00:15:20 2020-01-02 03:43:41 2020-01-01 00:15:20.000 2020-01-02 03:43:41.000 920 99821 50370.5 5037050 920 99821 50370.5 5037050 -32648 32287 4495.3 449530 -125 127 2.5 250 +921 2 10911 99822 2.76576 299.76576 151.26576 15126.57657 2.76576 299.76578 151.26576 15126.57654 2.76576 299.76576 151.26576 15126.57600 2020-01-01 2020-01-02 2020-01-01 00:15:21 2020-01-02 03:43:42 2020-01-01 00:15:21.000 2020-01-02 03:43:42.000 921 99822 50371.5 5037150 921 99822 50371.5 5037150 -32647 32288 4496.3 449630 -128 127 0.94 94 +922 2 10912 99823 2.76876 299.76876 151.26876 15126.87687 2.76876 299.76877 151.26876 15126.87683 2.76876 299.76876 151.26876000000001 15126.87600 2020-01-01 2020-01-02 2020-01-01 00:15:22 2020-01-02 03:43:43 2020-01-01 00:15:22.000 2020-01-02 03:43:43.000 922 99823 50372.5 5037250 922 99823 50372.5 5037250 -32646 32289 4497.3 449730 -128 127 -0.62 -62 +923 2 10913 99824 2.77177 299.77177 151.27177 15127.17717 2.77177 299.77176 151.27177 15127.17713 2.77177 299.77177 151.27177 15127.17700 2020-01-01 2020-01-02 2020-01-01 00:15:23 2020-01-02 03:43:44 2020-01-01 00:15:23.000 2020-01-02 03:43:44.000 923 99824 50373.5 5037350 923 99824 50373.5 5037350 -32645 32290 4498.3 449830 -128 123 -2.18 -218 +924 2 10914 99825 2.77477 299.77477 151.27477 15127.47747 2.77477 299.77478 151.27477 15127.47776 2.77477 299.77477 151.27477000000002 15127.47700 2020-01-01 2020-01-02 2020-01-01 00:15:24 2020-01-02 03:43:45 2020-01-01 00:15:24.000 2020-01-02 03:43:45.000 924 99825 50374.5 5037450 924 99825 50374.5 5037450 -32644 32291 4499.3 449930 -127 124 -1.18 -118 +925 2 10915 99826 2.77777 299.77777 151.27777 15127.77777 2.77777 299.77777 151.27777 15127.77741 2.77777 299.77777 151.27777 15127.77700 2020-01-01 2020-01-02 2020-01-01 00:15:25 2020-01-02 03:43:46 2020-01-01 00:15:25.000 2020-01-02 03:43:46.000 925 99826 50375.5 5037550 925 99826 50375.5 5037550 -32643 32292 4500.3 450030 -126 125 -0.18 -18 +926 2 10916 99827 2.78078 299.78078 151.28078 15128.07807 2.78078 299.7808 151.28078 15128.078 2.78078 299.78078 151.28078 15128.07800 2020-01-01 2020-01-02 2020-01-01 00:15:26 2020-01-02 03:43:47 2020-01-01 00:15:26.000 2020-01-02 03:43:47.000 926 99827 50376.5 5037650 926 99827 50376.5 5037650 -32642 32293 4501.3 450130 -125 126 0.82 82 +927 2 10917 99828 2.78378 299.78378 151.28378 15128.37837 2.78378 299.78378 151.28378 15128.3783 2.78378 299.78378 151.28378 15128.37800 2020-01-01 2020-01-02 2020-01-01 00:15:27 2020-01-02 03:43:48 2020-01-01 00:15:27.000 2020-01-02 03:43:48.000 927 99828 50377.5 5037750 927 99828 50377.5 5037750 -32641 32294 4502.3 450230 -124 127 1.82 182 +928 2 10918 99829 2.78678 299.78678 151.28678 15128.67867 2.78678 299.78677 151.28678 15128.6786 2.78678 299.78678 151.28678 15128.67800 2020-01-01 2020-01-02 2020-01-01 00:15:28 2020-01-02 03:43:49 2020-01-01 00:15:28.000 2020-01-02 03:43:49.000 928 99829 50378.5 5037850 928 99829 50378.5 5037850 -32640 32295 4503.3 450330 -128 127 0.26 26 +929 2 10919 99830 2.78978 299.78978 151.28978 15128.97897 2.78978 299.7898 151.28979 15128.97923 2.78978 299.78978 151.28977999999998 15128.97800 2020-01-01 2020-01-02 2020-01-01 00:15:29 2020-01-02 03:43:50 2020-01-01 00:15:29.000 2020-01-02 03:43:50.000 929 99830 50379.5 5037950 929 99830 50379.5 5037950 -32639 32296 4504.3 450430 -128 123 -1.3 -130 +93 2 10083 99993 0.27927 300.27927 150.27927 15178.2072 0.27927 300.27927 150.27927 15178.20715 0.27927 300.27927 150.27927 15178.20627 2020-01-01 2020-01-02 2020-01-01 00:01:33 2020-01-02 03:46:33 2020-01-01 00:01:33.000 2020-01-02 03:46:33.000 93 99993 50043 5054343 93 99993 50043 5054343 -32476 32459 4622.009900990099 466823 -127 124 -1.198019801980198 -121 930 2 10920 99831 2.79279 299.79279 151.29279 15129.27927 2.79279 299.7928 151.29278 15129.27888 2.79279 299.79279 151.29279 15129.27900 2020-01-01 2020-01-02 2020-01-01 00:15:30 2020-01-02 03:43:51 2020-01-01 00:15:30.000 2020-01-02 03:43:51.000 930 99831 50380.5 5038050 930 99831 50380.5 5038050 -32638 32297 4505.3 450530 -127 124 -0.3 -30 -931 2 10921 99832 2.79579 299.79579 151.29579 15129.57957 2.79579 299.7958 151.29579 15129.57963 2.79579 299.79579 151.2957900000001 15129.57900 2020-01-01 2020-01-02 2020-01-01 00:15:31 2020-01-02 03:43:52 2020-01-01 00:15:31.000 2020-01-02 03:43:52.000 931 99832 50381.5 5038150 931 99832 50381.5 5038150 -32637 32298 4506.3 450630 -126 125 0.7 70 -932 2 10922 99833 2.79879 299.79879 151.29879 15129.87987 2.79879 299.7988 151.29879 15129.87977 2.79879 299.79879 151.2987900000001 15129.87900 2020-01-01 2020-01-02 2020-01-01 00:15:32 2020-01-02 03:43:53 2020-01-01 00:15:32.000 2020-01-02 03:43:53.000 932 99833 50382.5 5038250 932 99833 50382.5 5038250 -32636 32299 4507.3 450730 -125 126 1.7 170 -933 2 10923 99834 2.8018 299.8018 151.3018 15130.18018 2.8018 299.8018 151.3018 15130.18011 2.80180 299.80180 151.3017999999999 15130.18000 2020-01-01 2020-01-02 2020-01-01 00:15:33 2020-01-02 03:43:54 2020-01-01 00:15:33.000 2020-01-02 03:43:54.000 933 99834 50383.5 5038350 933 99834 50383.5 5038350 -32635 32300 4508.3 450830 -124 127 2.7 270 -934 2 10924 99835 2.8048 299.8048 151.3048 15130.48048 2.8048 299.8048 151.3048 15130.48071 2.80480 299.80480 151.30479999999991 15130.48000 2020-01-01 2020-01-02 2020-01-01 00:15:34 2020-01-02 03:43:55 2020-01-01 00:15:34.000 2020-01-02 03:43:55.000 934 99835 50384.5 5038450 934 99835 50384.5 5038450 -32634 32301 4509.3 450930 -128 127 1.14 114 +931 2 10921 99832 2.79579 299.79579 151.29579 15129.57957 2.79579 299.7958 151.29579 15129.57963 2.79579 299.79579 151.29579 15129.57900 2020-01-01 2020-01-02 2020-01-01 00:15:31 2020-01-02 03:43:52 2020-01-01 00:15:31.000 2020-01-02 03:43:52.000 931 99832 50381.5 5038150 931 99832 50381.5 5038150 -32637 32298 4506.3 450630 -126 125 0.7 70 +932 2 10922 99833 2.79879 299.79879 151.29879 15129.87987 2.79879 299.7988 151.29879 15129.87977 2.79879 299.79879 151.29879 15129.87900 2020-01-01 2020-01-02 2020-01-01 00:15:32 2020-01-02 03:43:53 2020-01-01 00:15:32.000 2020-01-02 03:43:53.000 932 99833 50382.5 5038250 932 99833 50382.5 5038250 -32636 32299 4507.3 450730 -125 126 1.7 170 +933 2 10923 99834 2.8018 299.8018 151.3018 15130.18018 2.8018 299.8018 151.3018 15130.18011 2.80180 299.80180 151.30180000000001 15130.18000 2020-01-01 2020-01-02 2020-01-01 00:15:33 2020-01-02 03:43:54 2020-01-01 00:15:33.000 2020-01-02 03:43:54.000 933 99834 50383.5 5038350 933 99834 50383.5 5038350 -32635 32300 4508.3 450830 -124 127 2.7 270 +934 2 10924 99835 2.8048 299.8048 151.3048 15130.48048 2.8048 299.8048 151.3048 15130.48071 2.80480 299.80480 151.3048 15130.48000 2020-01-01 2020-01-02 2020-01-01 00:15:34 2020-01-02 03:43:55 2020-01-01 00:15:34.000 2020-01-02 03:43:55.000 934 99835 50384.5 5038450 934 99835 50384.5 5038450 -32634 32301 4509.3 450930 -128 127 1.14 114 935 2 10925 99836 2.8078 299.8078 151.3078 15130.78078 2.8078 299.8078 151.3078 15130.78034 2.80780 299.80780 151.30780000000001 15130.78000 2020-01-01 2020-01-02 2020-01-01 00:15:35 2020-01-02 03:43:56 2020-01-01 00:15:35.000 2020-01-02 03:43:56.000 935 99836 50385.5 5038550 935 99836 50385.5 5038550 -32633 32302 4510.3 451030 -128 123 -0.42 -42 -936 2 10926 99837 2.81081 299.81081 151.31081 15131.08108 2.81081 299.81082 151.31081 15131.0811 2.81081 299.81081 151.31081000000017 15131.08100 2020-01-01 2020-01-02 2020-01-01 00:15:36 2020-01-02 03:43:57 2020-01-01 00:15:36.000 2020-01-02 03:43:57.000 936 99837 50386.5 5038650 936 99837 50386.5 5038650 -32632 32303 4511.3 451130 -127 124 0.58 58 -937 2 10927 99838 2.81381 299.81381 151.31381 15131.38138 2.81381 299.8138 151.31381 15131.38124 2.81381 299.81381 151.31380999999985 15131.38100 2020-01-01 2020-01-02 2020-01-01 00:15:37 2020-01-02 03:43:58 2020-01-01 00:15:37.000 2020-01-02 03:43:58.000 937 99838 50387.5 5038750 937 99838 50387.5 5038750 -32631 32304 4512.3 451230 -126 125 1.58 158 -938 2 10928 99839 2.81681 299.81681 151.31681 15131.68168 2.81681 299.8168 151.31681 15131.68157 2.81681 299.81681 151.3168100000001 15131.68100 2020-01-01 2020-01-02 2020-01-01 00:15:38 2020-01-02 03:43:59 2020-01-01 00:15:38.000 2020-01-02 03:43:59.000 938 99839 50388.5 5038850 938 99839 50388.5 5038850 -32630 32305 4513.3 451330 -125 126 2.58 258 -939 2 10929 99840 2.81981 299.81981 151.31981 15131.98198 2.81982 299.81982 151.31982 15131.98217 2.81981 299.81981 151.3198100000002 15131.98100 2020-01-01 2020-01-02 2020-01-01 00:15:39 2020-01-02 03:44:00 2020-01-01 00:15:39.000 2020-01-02 03:44:00.000 939 99840 50389.5 5038950 939 99840 50389.5 5038950 -32629 32306 4514.3 451430 -124 127 3.58 358 -94 2 10084 99994 0.28228 300.28228 150.28228 15178.51051 0.28228 300.2823 150.28228 15178.51078 0.28228 300.28228 150.28227999999996 15178.51028 2020-01-01 2020-01-02 2020-01-01 00:01:34 2020-01-02 03:46:34 2020-01-01 00:01:34.000 2020-01-02 03:46:34.000 94 99994 50044 5054444 94 99994 50044 5054444 -32475 32460 4623.009900990099 466924 -126 125 -0.19801980198019803 -20 -940 2 10930 99841 2.82282 299.82282 151.32282 15132.28228 2.82282 299.8228 151.32282 15132.28247 2.82282 299.82282 151.32281999999995 15132.28200 2020-01-01 2020-01-02 2020-01-01 00:15:40 2020-01-02 03:44:01 2020-01-01 00:15:40.000 2020-01-02 03:44:01.000 940 99841 50390.5 5039050 940 99841 50390.5 5039050 -32628 32307 4515.3 451530 -128 127 2.02 202 +936 2 10926 99837 2.81081 299.81081 151.31081 15131.08108 2.81081 299.81082 151.31081 15131.0811 2.81081 299.81081 151.31081 15131.08100 2020-01-01 2020-01-02 2020-01-01 00:15:36 2020-01-02 03:43:57 2020-01-01 00:15:36.000 2020-01-02 03:43:57.000 936 99837 50386.5 5038650 936 99837 50386.5 5038650 -32632 32303 4511.3 451130 -127 124 0.58 58 +937 2 10927 99838 2.81381 299.81381 151.31381 15131.38138 2.81381 299.8138 151.31381 15131.38124 2.81381 299.81381 151.31381 15131.38100 2020-01-01 2020-01-02 2020-01-01 00:15:37 2020-01-02 03:43:58 2020-01-01 00:15:37.000 2020-01-02 03:43:58.000 937 99838 50387.5 5038750 937 99838 50387.5 5038750 -32631 32304 4512.3 451230 -126 125 1.58 158 +938 2 10928 99839 2.81681 299.81681 151.31681 15131.68168 2.81681 299.8168 151.31681 15131.68157 2.81681 299.81681 151.31681 15131.68100 2020-01-01 2020-01-02 2020-01-01 00:15:38 2020-01-02 03:43:59 2020-01-01 00:15:38.000 2020-01-02 03:43:59.000 938 99839 50388.5 5038850 938 99839 50388.5 5038850 -32630 32305 4513.3 451330 -125 126 2.58 258 +939 2 10929 99840 2.81981 299.81981 151.31981 15131.98198 2.81982 299.81982 151.31982 15131.98217 2.81981 299.81981 151.31981 15131.98100 2020-01-01 2020-01-02 2020-01-01 00:15:39 2020-01-02 03:44:00 2020-01-01 00:15:39.000 2020-01-02 03:44:00.000 939 99840 50389.5 5038950 939 99840 50389.5 5038950 -32629 32306 4514.3 451430 -124 127 3.58 358 +94 2 10084 99994 0.28228 300.28228 150.28228 15178.51051 0.28228 300.2823 150.28228 15178.51078 0.28228 300.28228 150.28228000000001 15178.51028 2020-01-01 2020-01-02 2020-01-01 00:01:34 2020-01-02 03:46:34 2020-01-01 00:01:34.000 2020-01-02 03:46:34.000 94 99994 50044 5054444 94 99994 50044 5054444 -32475 32460 4623.009900990099 466924 -126 125 -0.19801980198019803 -20 +940 2 10930 99841 2.82282 299.82282 151.32282 15132.28228 2.82282 299.8228 151.32282 15132.28247 2.82282 299.82282 151.32281999999998 15132.28200 2020-01-01 2020-01-02 2020-01-01 00:15:40 2020-01-02 03:44:01 2020-01-01 00:15:40.000 2020-01-02 03:44:01.000 940 99841 50390.5 5039050 940 99841 50390.5 5039050 -32628 32307 4515.3 451530 -128 127 2.02 202 941 2 10931 99842 2.82582 299.82582 151.32582 15132.58258 2.82582 299.82584 151.32582 15132.58257 2.82582 299.82582 151.32582 15132.58200 2020-01-01 2020-01-02 2020-01-01 00:15:41 2020-01-02 03:44:02 2020-01-01 00:15:41.000 2020-01-02 03:44:02.000 941 99842 50391.5 5039150 941 99842 50391.5 5039150 -32627 32308 4516.3 451630 -128 127 0.46 46 -942 2 10932 99843 2.82882 299.82882 151.32882 15132.88288 2.82882 299.82883 151.32882 15132.88275 2.82882 299.82882 151.3288200000001 15132.88200 2020-01-01 2020-01-02 2020-01-01 00:15:42 2020-01-02 03:44:03 2020-01-01 00:15:42.000 2020-01-02 03:44:03.000 942 99843 50392.5 5039250 942 99843 50392.5 5039250 -32626 32309 4517.3 451730 -128 124 -1.1 -110 -943 2 10933 99844 2.83183 299.83183 151.33183 15133.18318 2.83183 299.83182 151.33183 15133.18304 2.83183 299.83183 151.33182999999985 15133.18300 2020-01-01 2020-01-02 2020-01-01 00:15:43 2020-01-02 03:44:04 2020-01-01 00:15:43.000 2020-01-02 03:44:04.000 943 99844 50393.5 5039350 943 99844 50393.5 5039350 -32625 32310 4518.3 451830 -127 125 -0.1 -10 -944 2 10934 99845 2.83483 299.83483 151.33483 15133.48348 2.83483 299.83484 151.33483 15133.48364 2.83483 299.83483 151.33482999999984 15133.48300 2020-01-01 2020-01-02 2020-01-01 00:15:44 2020-01-02 03:44:05 2020-01-01 00:15:44.000 2020-01-02 03:44:05.000 944 99845 50394.5 5039450 944 99845 50394.5 5039450 -32624 32311 4519.3 451930 -126 126 0.9 90 -945 2 10935 99846 2.83783 299.83783 151.33783 15133.78378 2.83783 299.83783 151.33783 15133.78393 2.83783 299.83783 151.3378300000002 15133.78300 2020-01-01 2020-01-02 2020-01-01 00:15:45 2020-01-02 03:44:06 2020-01-01 00:15:45.000 2020-01-02 03:44:06.000 945 99846 50395.5 5039550 945 99846 50395.5 5039550 -32623 32312 4520.3 452030 -125 127 1.9 190 -946 2 10936 99847 2.84084 299.84084 151.34084 15134.08408 2.84084 299.84085 151.34084 15134.08404 2.84084 299.84084 151.34084000000007 15134.08400 2020-01-01 2020-01-02 2020-01-01 00:15:46 2020-01-02 03:44:07 2020-01-01 00:15:46.000 2020-01-02 03:44:07.000 946 99847 50396.5 5039650 946 99847 50396.5 5039650 -32622 32313 4521.3 452130 -128 127 0.34 34 -947 2 10937 99848 2.84384 299.84384 151.34384 15134.38438 2.84384 299.84384 151.34384 15134.38421 2.84384 299.84384 151.34383999999977 15134.38400 2020-01-01 2020-01-02 2020-01-01 00:15:47 2020-01-02 03:44:08 2020-01-01 00:15:47.000 2020-01-02 03:44:08.000 947 99848 50397.5 5039750 947 99848 50397.5 5039750 -32621 32314 4522.3 452230 -128 127 -1.22 -122 -948 2 10938 99849 2.84684 299.84684 151.34684 15134.68468 2.84684 299.84683 151.34684 15134.68452 2.84684 299.84684 151.3468400000001 15134.68400 2020-01-01 2020-01-02 2020-01-01 00:15:48 2020-01-02 03:44:09 2020-01-01 00:15:48.000 2020-01-02 03:44:09.000 948 99849 50398.5 5039850 948 99849 50398.5 5039850 -32620 32315 4523.3 452330 -128 123 -2.78 -278 -949 2 10939 99850 2.84984 299.84984 151.34984 15134.98498 2.84985 299.84985 151.34985 15134.98527 2.84984 299.84984 151.34984000000009 15134.98400 2020-01-01 2020-01-02 2020-01-01 00:15:49 2020-01-02 03:44:10 2020-01-01 00:15:49.000 2020-01-02 03:44:10.000 949 99850 50399.5 5039950 949 99850 50399.5 5039950 -32619 32316 4524.3 452430 -127 124 -1.78 -178 -95 2 10085 99995 0.28528 300.28528 150.28528 15178.81381 0.28528 300.28528 150.28528 15178.81343 0.28528 300.28528 150.28528000000003 15178.81328 2020-01-01 2020-01-02 2020-01-01 00:01:35 2020-01-02 03:46:35 2020-01-01 00:01:35.000 2020-01-02 03:46:35.000 95 99995 50045 5054545 95 99995 50045 5054545 -32474 32461 4624.009900990099 467025 -125 126 0.801980198019802 81 -950 2 10940 99851 2.85285 299.85285 151.35285 15135.28528 2.85285 299.85284 151.35285 15135.28541 2.85285 299.85285 151.35284999999996 15135.28500 2020-01-01 2020-01-02 2020-01-01 00:15:50 2020-01-02 03:44:11 2020-01-01 00:15:50.000 2020-01-02 03:44:11.000 950 99851 50400.5 5040050 950 99851 50400.5 5040050 -32618 32317 4525.3 452530 -126 125 -0.78 -78 -951 2 10941 99852 2.85585 299.85585 151.35585 15135.58558 2.85585 299.85587 151.35585 15135.58551 2.85585 299.85585 151.35584999999995 15135.58500 2020-01-01 2020-01-02 2020-01-01 00:15:51 2020-01-02 03:44:12 2020-01-01 00:15:51.000 2020-01-02 03:44:12.000 951 99852 50401.5 5040150 951 99852 50401.5 5040150 -32617 32318 4526.3 452630 -125 126 0.22 22 -952 2 10942 99853 2.85885 299.85885 151.35885 15135.88588 2.85885 299.85886 151.35885 15135.88568 2.85885 299.85885 151.35885000000002 15135.88500 2020-01-01 2020-01-02 2020-01-01 00:15:52 2020-01-02 03:44:13 2020-01-01 00:15:52.000 2020-01-02 03:44:13.000 952 99853 50402.5 5040250 952 99853 50402.5 5040250 -32616 32319 4527.3 452730 -124 127 1.22 122 -953 2 10943 99854 2.86186 299.86186 151.36186 15136.18618 2.86186 299.86185 151.36185 15136.18598 2.86186 299.86186 151.36186000000018 15136.18600 2020-01-01 2020-01-02 2020-01-01 00:15:53 2020-01-02 03:44:14 2020-01-01 00:15:53.000 2020-01-02 03:44:14.000 953 99854 50403.5 5040350 953 99854 50403.5 5040350 -32615 32320 4528.3 452830 -128 127 -0.34 -34 -954 2 10944 99855 2.86486 299.86486 151.36486 15136.48648 2.86486 299.86487 151.36486 15136.48674 2.86486 299.86486 151.36485999999985 15136.48600 2020-01-01 2020-01-02 2020-01-01 00:15:54 2020-01-02 03:44:15 2020-01-01 00:15:54.000 2020-01-02 03:44:15.000 954 99855 50404.5 5040450 954 99855 50404.5 5040450 -32614 32321 4529.3 452930 -128 123 -1.9 -190 -955 2 10945 99856 2.86786 299.86786 151.36786 15136.78678 2.86786 299.86786 151.36786 15136.78688 2.86786 299.86786 151.36786000000012 15136.78600 2020-01-01 2020-01-02 2020-01-01 00:15:55 2020-01-02 03:44:16 2020-01-01 00:15:55.000 2020-01-02 03:44:16.000 955 99856 50405.5 5040550 955 99856 50405.5 5040550 -32613 32322 4530.3 453030 -127 124 -0.9 -90 -956 2 10946 99857 2.87087 299.87087 151.37087 15137.08708 2.87087 299.87088 151.37087 15137.08701 2.87087 299.87087 151.37087000000014 15137.08700 2020-01-01 2020-01-02 2020-01-01 00:15:56 2020-01-02 03:44:17 2020-01-01 00:15:56.000 2020-01-02 03:44:17.000 956 99857 50406.5 5040650 956 99857 50406.5 5040650 -32612 32323 4531.3 453130 -126 125 0.1 10 -957 2 10947 99858 2.87387 299.87387 151.37387 15137.38738 2.87387 299.87387 151.37387 15137.38716 2.87387 299.87387 151.37386999999995 15137.38700 2020-01-01 2020-01-02 2020-01-01 00:15:57 2020-01-02 03:44:18 2020-01-01 00:15:57.000 2020-01-02 03:44:18.000 957 99858 50407.5 5040750 957 99858 50407.5 5040750 -32611 32324 4532.3 453230 -125 126 1.1 110 -958 2 10948 99859 2.87687 299.87687 151.37687 15137.68768 2.87687 299.8769 151.37687 15137.68791 2.87687 299.87687 151.37687000000003 15137.68700 2020-01-01 2020-01-02 2020-01-01 00:15:58 2020-01-02 03:44:19 2020-01-01 00:15:58.000 2020-01-02 03:44:19.000 958 99859 50408.5 5040850 958 99859 50408.5 5040850 -32610 32325 4533.3 453330 -124 127 2.1 210 -959 2 10949 99860 2.87987 299.87987 151.37987 15137.98798 2.87988 299.87988 151.37988 15137.9882 2.87987 299.87987 151.3798700000001 15137.98700 2020-01-01 2020-01-02 2020-01-01 00:15:59 2020-01-02 03:44:20 2020-01-01 00:15:59.000 2020-01-02 03:44:20.000 959 99860 50409.5 5040950 959 99860 50409.5 5040950 -32609 32326 4534.3 453430 -128 127 0.54 54 -96 2 10086 99996 0.28828 300.28828 150.28828 15179.11711 0.28828 300.2883 150.28828 15179.11718 0.28828 300.28828 150.28828000000007 15179.11628 2020-01-01 2020-01-02 2020-01-01 00:01:36 2020-01-02 03:46:36 2020-01-01 00:01:36.000 2020-01-02 03:46:36.000 96 99996 50046 5054646 96 99996 50046 5054646 -32473 32462 4625.009900990099 467126 -124 127 1.801980198019802 182 -960 2 10950 99861 2.88288 299.88288 151.38288 15138.28828 2.88288 299.88287 151.38288 15138.28834 2.88288 299.88288 151.3828799999999 15138.28800 2020-01-01 2020-01-02 2020-01-01 00:16:00 2020-01-02 03:44:21 2020-01-01 00:16:00.000 2020-01-02 03:44:21.000 960 99861 50410.5 5041050 960 99861 50410.5 5041050 -32608 32327 4535.3 453530 -128 123 -1.02 -102 -961 2 10951 99862 2.88588 299.88588 151.38588 15138.58858 2.88588 299.8859 151.38588 15138.58848 2.88588 299.88588 151.38587999999987 15138.58800 2020-01-01 2020-01-02 2020-01-01 00:16:01 2020-01-02 03:44:22 2020-01-01 00:16:01.000 2020-01-02 03:44:22.000 961 99862 50411.5 5041150 961 99862 50411.5 5041150 -32607 32328 4536.3 453630 -127 124 -0.02 -2 -962 2 10952 99863 2.88888 299.88888 151.38888 15138.88888 2.88888 299.8889 151.38888 15138.88862 2.88888 299.88888 151.3888800000002 15138.88800 2020-01-01 2020-01-02 2020-01-01 00:16:02 2020-01-02 03:44:23 2020-01-01 00:16:02.000 2020-01-02 03:44:23.000 962 99863 50412.5 5041250 962 99863 50412.5 5041250 -32606 32329 4537.3 453730 -126 125 0.98 98 -963 2 10953 99864 2.89189 299.89189 151.39189 15139.18918 2.89189 299.8919 151.39189 15139.18937 2.89189 299.89189 151.39189000000013 15139.18900 2020-01-01 2020-01-02 2020-01-01 00:16:03 2020-01-02 03:44:24 2020-01-01 00:16:03.000 2020-01-02 03:44:24.000 963 99864 50413.5 5041350 963 99864 50413.5 5041350 -32605 32330 4538.3 453830 -125 126 1.98 198 -964 2 10954 99865 2.89489 299.89489 151.39489 15139.48948 2.89489 299.8949 151.39489 15139.48968 2.89489 299.89489 151.39488999999978 15139.48900 2020-01-01 2020-01-02 2020-01-01 00:16:04 2020-01-02 03:44:25 2020-01-01 00:16:04.000 2020-01-02 03:44:25.000 964 99865 50414.5 5041450 964 99865 50414.5 5041450 -32604 32331 4539.3 453930 -124 127 2.98 298 -965 2 10955 99866 2.89789 299.89789 151.39789 15139.78978 2.89789 299.8979 151.39789 15139.78985 2.89789 299.89789 151.39789000000013 15139.78900 2020-01-01 2020-01-02 2020-01-01 00:16:05 2020-01-02 03:44:26 2020-01-01 00:16:05.000 2020-01-02 03:44:26.000 965 99866 50415.5 5041550 965 99866 50415.5 5041550 -32603 32332 4540.3 454030 -128 127 1.42 142 +942 2 10932 99843 2.82882 299.82882 151.32882 15132.88288 2.82882 299.82883 151.32882 15132.88275 2.82882 299.82882 151.32882 15132.88200 2020-01-01 2020-01-02 2020-01-01 00:15:42 2020-01-02 03:44:03 2020-01-01 00:15:42.000 2020-01-02 03:44:03.000 942 99843 50392.5 5039250 942 99843 50392.5 5039250 -32626 32309 4517.3 451730 -128 124 -1.1 -110 +943 2 10933 99844 2.83183 299.83183 151.33183 15133.18318 2.83183 299.83182 151.33183 15133.18304 2.83183 299.83183 151.33183 15133.18300 2020-01-01 2020-01-02 2020-01-01 00:15:43 2020-01-02 03:44:04 2020-01-01 00:15:43.000 2020-01-02 03:44:04.000 943 99844 50393.5 5039350 943 99844 50393.5 5039350 -32625 32310 4518.3 451830 -127 125 -0.1 -10 +944 2 10934 99845 2.83483 299.83483 151.33483 15133.48348 2.83483 299.83484 151.33483 15133.48364 2.83483 299.83483 151.33483 15133.48300 2020-01-01 2020-01-02 2020-01-01 00:15:44 2020-01-02 03:44:05 2020-01-01 00:15:44.000 2020-01-02 03:44:05.000 944 99845 50394.5 5039450 944 99845 50394.5 5039450 -32624 32311 4519.3 451930 -126 126 0.9 90 +945 2 10935 99846 2.83783 299.83783 151.33783 15133.78378 2.83783 299.83783 151.33783 15133.78393 2.83783 299.83783 151.33783 15133.78300 2020-01-01 2020-01-02 2020-01-01 00:15:45 2020-01-02 03:44:06 2020-01-01 00:15:45.000 2020-01-02 03:44:06.000 945 99846 50395.5 5039550 945 99846 50395.5 5039550 -32623 32312 4520.3 452030 -125 127 1.9 190 +946 2 10936 99847 2.84084 299.84084 151.34084 15134.08408 2.84084 299.84085 151.34084 15134.08404 2.84084 299.84084 151.34084000000001 15134.08400 2020-01-01 2020-01-02 2020-01-01 00:15:46 2020-01-02 03:44:07 2020-01-01 00:15:46.000 2020-01-02 03:44:07.000 946 99847 50396.5 5039650 946 99847 50396.5 5039650 -32622 32313 4521.3 452130 -128 127 0.34 34 +947 2 10937 99848 2.84384 299.84384 151.34384 15134.38438 2.84384 299.84384 151.34384 15134.38421 2.84384 299.84384 151.34384 15134.38400 2020-01-01 2020-01-02 2020-01-01 00:15:47 2020-01-02 03:44:08 2020-01-01 00:15:47.000 2020-01-02 03:44:08.000 947 99848 50397.5 5039750 947 99848 50397.5 5039750 -32621 32314 4522.3 452230 -128 127 -1.22 -122 +948 2 10938 99849 2.84684 299.84684 151.34684 15134.68468 2.84684 299.84683 151.34684 15134.68452 2.84684 299.84684 151.34684 15134.68400 2020-01-01 2020-01-02 2020-01-01 00:15:48 2020-01-02 03:44:09 2020-01-01 00:15:48.000 2020-01-02 03:44:09.000 948 99849 50398.5 5039850 948 99849 50398.5 5039850 -32620 32315 4523.3 452330 -128 123 -2.78 -278 +949 2 10939 99850 2.84984 299.84984 151.34984 15134.98498 2.84985 299.84985 151.34985 15134.98527 2.84984 299.84984 151.34984 15134.98400 2020-01-01 2020-01-02 2020-01-01 00:15:49 2020-01-02 03:44:10 2020-01-01 00:15:49.000 2020-01-02 03:44:10.000 949 99850 50399.5 5039950 949 99850 50399.5 5039950 -32619 32316 4524.3 452430 -127 124 -1.78 -178 +95 2 10085 99995 0.28528 300.28528 150.28528 15178.81381 0.28528 300.28528 150.28528 15178.81343 0.28528 300.28528 150.28528 15178.81328 2020-01-01 2020-01-02 2020-01-01 00:01:35 2020-01-02 03:46:35 2020-01-01 00:01:35.000 2020-01-02 03:46:35.000 95 99995 50045 5054545 95 99995 50045 5054545 -32474 32461 4624.009900990099 467025 -125 126 0.801980198019802 81 +950 2 10940 99851 2.85285 299.85285 151.35285 15135.28528 2.85285 299.85284 151.35285 15135.28541 2.85285 299.85285 151.35285 15135.28500 2020-01-01 2020-01-02 2020-01-01 00:15:50 2020-01-02 03:44:11 2020-01-01 00:15:50.000 2020-01-02 03:44:11.000 950 99851 50400.5 5040050 950 99851 50400.5 5040050 -32618 32317 4525.3 452530 -126 125 -0.78 -78 +951 2 10941 99852 2.85585 299.85585 151.35585 15135.58558 2.85585 299.85587 151.35585 15135.58551 2.85585 299.85585 151.35585 15135.58500 2020-01-01 2020-01-02 2020-01-01 00:15:51 2020-01-02 03:44:12 2020-01-01 00:15:51.000 2020-01-02 03:44:12.000 951 99852 50401.5 5040150 951 99852 50401.5 5040150 -32617 32318 4526.3 452630 -125 126 0.22 22 +952 2 10942 99853 2.85885 299.85885 151.35885 15135.88588 2.85885 299.85886 151.35885 15135.88568 2.85885 299.85885 151.35885 15135.88500 2020-01-01 2020-01-02 2020-01-01 00:15:52 2020-01-02 03:44:13 2020-01-01 00:15:52.000 2020-01-02 03:44:13.000 952 99853 50402.5 5040250 952 99853 50402.5 5040250 -32616 32319 4527.3 452730 -124 127 1.22 122 +953 2 10943 99854 2.86186 299.86186 151.36186 15136.18618 2.86186 299.86185 151.36185 15136.18598 2.86186 299.86186 151.36186 15136.18600 2020-01-01 2020-01-02 2020-01-01 00:15:53 2020-01-02 03:44:14 2020-01-01 00:15:53.000 2020-01-02 03:44:14.000 953 99854 50403.5 5040350 953 99854 50403.5 5040350 -32615 32320 4528.3 452830 -128 127 -0.34 -34 +954 2 10944 99855 2.86486 299.86486 151.36486 15136.48648 2.86486 299.86487 151.36486 15136.48674 2.86486 299.86486 151.36486000000002 15136.48600 2020-01-01 2020-01-02 2020-01-01 00:15:54 2020-01-02 03:44:15 2020-01-01 00:15:54.000 2020-01-02 03:44:15.000 954 99855 50404.5 5040450 954 99855 50404.5 5040450 -32614 32321 4529.3 452930 -128 123 -1.9 -190 +955 2 10945 99856 2.86786 299.86786 151.36786 15136.78678 2.86786 299.86786 151.36786 15136.78688 2.86786 299.86786 151.36786 15136.78600 2020-01-01 2020-01-02 2020-01-01 00:15:55 2020-01-02 03:44:16 2020-01-01 00:15:55.000 2020-01-02 03:44:16.000 955 99856 50405.5 5040550 955 99856 50405.5 5040550 -32613 32322 4530.3 453030 -127 124 -0.9 -90 +956 2 10946 99857 2.87087 299.87087 151.37087 15137.08708 2.87087 299.87088 151.37087 15137.08701 2.87087 299.87087 151.37087 15137.08700 2020-01-01 2020-01-02 2020-01-01 00:15:56 2020-01-02 03:44:17 2020-01-01 00:15:56.000 2020-01-02 03:44:17.000 956 99857 50406.5 5040650 956 99857 50406.5 5040650 -32612 32323 4531.3 453130 -126 125 0.1 10 +957 2 10947 99858 2.87387 299.87387 151.37387 15137.38738 2.87387 299.87387 151.37387 15137.38716 2.87387 299.87387 151.37387 15137.38700 2020-01-01 2020-01-02 2020-01-01 00:15:57 2020-01-02 03:44:18 2020-01-01 00:15:57.000 2020-01-02 03:44:18.000 957 99858 50407.5 5040750 957 99858 50407.5 5040750 -32611 32324 4532.3 453230 -125 126 1.1 110 +958 2 10948 99859 2.87687 299.87687 151.37687 15137.68768 2.87687 299.8769 151.37687 15137.68791 2.87687 299.87687 151.37687 15137.68700 2020-01-01 2020-01-02 2020-01-01 00:15:58 2020-01-02 03:44:19 2020-01-01 00:15:58.000 2020-01-02 03:44:19.000 958 99859 50408.5 5040850 958 99859 50408.5 5040850 -32610 32325 4533.3 453330 -124 127 2.1 210 +959 2 10949 99860 2.87987 299.87987 151.37987 15137.98798 2.87988 299.87988 151.37988 15137.9882 2.87987 299.87987 151.37986999999998 15137.98700 2020-01-01 2020-01-02 2020-01-01 00:15:59 2020-01-02 03:44:20 2020-01-01 00:15:59.000 2020-01-02 03:44:20.000 959 99860 50409.5 5040950 959 99860 50409.5 5040950 -32609 32326 4534.3 453430 -128 127 0.54 54 +96 2 10086 99996 0.28828 300.28828 150.28828 15179.11711 0.28828 300.2883 150.28828 15179.11718 0.28828 300.28828 150.28828000000001 15179.11628 2020-01-01 2020-01-02 2020-01-01 00:01:36 2020-01-02 03:46:36 2020-01-01 00:01:36.000 2020-01-02 03:46:36.000 96 99996 50046 5054646 96 99996 50046 5054646 -32473 32462 4625.009900990099 467126 -124 127 1.801980198019802 182 +960 2 10950 99861 2.88288 299.88288 151.38288 15138.28828 2.88288 299.88287 151.38288 15138.28834 2.88288 299.88288 151.38288 15138.28800 2020-01-01 2020-01-02 2020-01-01 00:16:00 2020-01-02 03:44:21 2020-01-01 00:16:00.000 2020-01-02 03:44:21.000 960 99861 50410.5 5041050 960 99861 50410.5 5041050 -32608 32327 4535.3 453530 -128 123 -1.02 -102 +961 2 10951 99862 2.88588 299.88588 151.38588 15138.58858 2.88588 299.8859 151.38588 15138.58848 2.88588 299.88588 151.38588 15138.58800 2020-01-01 2020-01-02 2020-01-01 00:16:01 2020-01-02 03:44:22 2020-01-01 00:16:01.000 2020-01-02 03:44:22.000 961 99862 50411.5 5041150 961 99862 50411.5 5041150 -32607 32328 4536.3 453630 -127 124 -0.02 -2 +962 2 10952 99863 2.88888 299.88888 151.38888 15138.88888 2.88888 299.8889 151.38888 15138.88862 2.88888 299.88888 151.38888 15138.88800 2020-01-01 2020-01-02 2020-01-01 00:16:02 2020-01-02 03:44:23 2020-01-01 00:16:02.000 2020-01-02 03:44:23.000 962 99863 50412.5 5041250 962 99863 50412.5 5041250 -32606 32329 4537.3 453730 -126 125 0.98 98 +963 2 10953 99864 2.89189 299.89189 151.39189 15139.18918 2.89189 299.8919 151.39189 15139.18937 2.89189 299.89189 151.39189 15139.18900 2020-01-01 2020-01-02 2020-01-01 00:16:03 2020-01-02 03:44:24 2020-01-01 00:16:03.000 2020-01-02 03:44:24.000 963 99864 50413.5 5041350 963 99864 50413.5 5041350 -32605 32330 4538.3 453830 -125 126 1.98 198 +964 2 10954 99865 2.89489 299.89489 151.39489 15139.48948 2.89489 299.8949 151.39489 15139.48968 2.89489 299.89489 151.39489 15139.48900 2020-01-01 2020-01-02 2020-01-01 00:16:04 2020-01-02 03:44:25 2020-01-01 00:16:04.000 2020-01-02 03:44:25.000 964 99865 50414.5 5041450 964 99865 50414.5 5041450 -32604 32331 4539.3 453930 -124 127 2.98 298 +965 2 10955 99866 2.89789 299.89789 151.39789 15139.78978 2.89789 299.8979 151.39789 15139.78985 2.89789 299.89789 151.39789000000002 15139.78900 2020-01-01 2020-01-02 2020-01-01 00:16:05 2020-01-02 03:44:26 2020-01-01 00:16:05.000 2020-01-02 03:44:26.000 965 99866 50415.5 5041550 965 99866 50415.5 5041550 -32603 32332 4540.3 454030 -128 127 1.42 142 966 2 10956 99867 2.9009 299.9009 151.4009 15140.09009 2.9009 299.9009 151.40089 15140.08996 2.90090 299.90090 151.4009 15140.09000 2020-01-01 2020-01-02 2020-01-01 00:16:06 2020-01-02 03:44:27 2020-01-01 00:16:06.000 2020-01-02 03:44:27.000 966 99867 50416.5 5041650 966 99867 50416.5 5041650 -32602 32333 4541.3 454130 -128 127 -0.14 -14 -967 2 10957 99868 2.9039 299.9039 151.4039 15140.39039 2.9039 299.9039 151.4039 15140.39009 2.90390 299.90390 151.4038999999999 15140.39000 2020-01-01 2020-01-02 2020-01-01 00:16:07 2020-01-02 03:44:28 2020-01-01 00:16:07.000 2020-01-02 03:44:28.000 967 99868 50417.5 5041750 967 99868 50417.5 5041750 -32601 32334 4542.3 454230 -128 124 -1.7 -170 -968 2 10958 99869 2.9069 299.9069 151.4069 15140.69069 2.9069 299.90692 151.4069 15140.69084 2.90690 299.90690 151.40689999999998 15140.69000 2020-01-01 2020-01-02 2020-01-01 00:16:08 2020-01-02 03:44:29 2020-01-01 00:16:08.000 2020-01-02 03:44:29.000 968 99869 50418.5 5041850 968 99869 50418.5 5041850 -32600 32335 4543.3 454330 -127 125 -0.7 -70 -969 2 10959 99870 2.9099 299.9099 151.4099 15140.99099 2.90991 299.9099 151.40991 15140.99114 2.90990 299.90990 151.40990000000002 15140.99000 2020-01-01 2020-01-02 2020-01-01 00:16:09 2020-01-02 03:44:30 2020-01-01 00:16:09.000 2020-01-02 03:44:30.000 969 99870 50419.5 5041950 969 99870 50419.5 5041950 -32599 32336 4544.3 454430 -126 126 0.3 30 -97 2 10087 99997 0.29129 300.29129 150.29129 15179.42042 0.29129 300.2913 150.29129 15179.42033 0.29129 300.29129 150.29128999999986 15179.42029 2020-01-01 2020-01-02 2020-01-01 00:01:37 2020-01-02 03:46:37 2020-01-01 00:01:37.000 2020-01-02 03:46:37.000 97 99997 50047 5054747 97 99997 50047 5054747 -32472 32463 4626.009900990099 467227 -128 127 0.26732673267326734 27 -970 2 10960 99871 2.91291 299.91291 151.41291 15141.29129 2.91291 299.9129 151.41291 15141.29132 2.91291 299.91291 151.41290999999984 15141.29100 2020-01-01 2020-01-02 2020-01-01 00:16:10 2020-01-02 03:44:31 2020-01-01 00:16:10.000 2020-01-02 03:44:31.000 970 99871 50420.5 5042050 970 99871 50420.5 5042050 -32598 32337 4545.3 454530 -125 127 1.3 130 -971 2 10961 99872 2.91591 299.91591 151.41591 15141.59159 2.91591 299.91592 151.41591 15141.59142 2.91591 299.91591 151.41590999999988 15141.59100 2020-01-01 2020-01-02 2020-01-01 00:16:11 2020-01-02 03:44:32 2020-01-01 00:16:11.000 2020-01-02 03:44:32.000 971 99872 50421.5 5042150 971 99872 50421.5 5042150 -32597 32338 4546.3 454630 -128 127 -0.26 -26 -972 2 10962 99873 2.91891 299.91891 151.41891 15141.89189 2.91891 299.9189 151.41891 15141.89172 2.91891 299.91891 151.41891000000015 15141.89100 2020-01-01 2020-01-02 2020-01-01 00:16:12 2020-01-02 03:44:33 2020-01-01 00:16:12.000 2020-01-02 03:44:33.000 972 99873 50422.5 5042250 972 99873 50422.5 5042250 -32596 32339 4547.3 454730 -128 127 -1.82 -182 -973 2 10963 99874 2.92192 299.92192 151.42192 15142.19219 2.92192 299.92194 151.42192 15142.19232 2.92192 299.92192 151.42192000000006 15142.19200 2020-01-01 2020-01-02 2020-01-01 00:16:13 2020-01-02 03:44:34 2020-01-01 00:16:13.000 2020-01-02 03:44:34.000 973 99874 50423.5 5042350 973 99874 50423.5 5042350 -32595 32340 4548.3 454830 -128 123 -3.38 -338 -974 2 10964 99875 2.92492 299.92492 151.42492 15142.49249 2.92492 299.92493 151.42492 15142.49265 2.92492 299.92492 151.42492 15142.49200 2020-01-01 2020-01-02 2020-01-01 00:16:14 2020-01-02 03:44:35 2020-01-01 00:16:14.000 2020-01-02 03:44:35.000 974 99875 50424.5 5042450 974 99875 50424.5 5042450 -32594 32341 4549.3 454930 -127 124 -2.38 -238 -975 2 10965 99876 2.92792 299.92792 151.42792 15142.79279 2.92792 299.92792 151.42792 15142.79279 2.92792 299.92792 151.42792000000006 15142.79200 2020-01-01 2020-01-02 2020-01-01 00:16:15 2020-01-02 03:44:36 2020-01-01 00:16:15.000 2020-01-02 03:44:36.000 975 99876 50425.5 5042550 975 99876 50425.5 5042550 -32593 32342 4550.3 455030 -126 125 -1.38 -138 -976 2 10966 99877 2.93093 299.93093 151.43093 15143.09309 2.93093 299.93094 151.43092 15143.09289 2.93093 299.93093 151.43093000000022 15143.09300 2020-01-01 2020-01-02 2020-01-01 00:16:16 2020-01-02 03:44:37 2020-01-01 00:16:16.000 2020-01-02 03:44:37.000 976 99877 50426.5 5042650 976 99877 50426.5 5042650 -32592 32343 4551.3 455130 -125 126 -0.38 -38 -977 2 10967 99878 2.93393 299.93393 151.43393 15143.39339 2.93393 299.93393 151.43393 15143.39318 2.93393 299.93393 151.4339299999999 15143.39300 2020-01-01 2020-01-02 2020-01-01 00:16:17 2020-01-02 03:44:38 2020-01-01 00:16:17.000 2020-01-02 03:44:38.000 977 99878 50427.5 5042750 977 99878 50427.5 5042750 -32591 32344 4552.3 455230 -124 127 0.62 62 -978 2 10968 99879 2.93693 299.93693 151.43693 15143.69369 2.93693 299.93695 151.43693 15143.69378 2.93693 299.93693 151.4369299999999 15143.69300 2020-01-01 2020-01-02 2020-01-01 00:16:18 2020-01-02 03:44:39 2020-01-01 00:16:18.000 2020-01-02 03:44:39.000 978 99879 50428.5 5042850 978 99879 50428.5 5042850 -32590 32345 4553.3 455330 -128 127 -0.94 -94 -979 2 10969 99880 2.93993 299.93993 151.43993 15143.99399 2.93994 299.93994 151.43994 15143.99412 2.93993 299.93993 151.43993000000017 15143.99300 2020-01-01 2020-01-02 2020-01-01 00:16:19 2020-01-02 03:44:40 2020-01-01 00:16:19.000 2020-01-02 03:44:40.000 979 99880 50429.5 5042950 979 99880 50429.5 5042950 -32589 32346 4554.3 455430 -128 123 -2.5 -250 -98 2 10088 99998 0.29429 300.29429 150.29429 15179.72372 0.29429 300.29428 150.29429 15179.72363 0.29429 300.29429 150.29428999999988 15179.72329 2020-01-01 2020-01-02 2020-01-01 00:01:38 2020-01-02 03:46:38 2020-01-01 00:01:38.000 2020-01-02 03:46:38.000 98 99998 50048 5054848 98 99998 50048 5054848 -32471 32464 4627.009900990099 467328 -128 127 -1.2673267326732673 -128 -980 2 10970 99881 2.94294 299.94294 151.44294 15144.29429 2.94294 299.94293 151.44294 15144.29426 2.94294 299.94294 151.44294000000014 15144.29400 2020-01-01 2020-01-02 2020-01-01 00:16:20 2020-01-02 03:44:41 2020-01-01 00:16:20.000 2020-01-02 03:44:41.000 980 99881 50430.5 5043050 980 99881 50430.5 5043050 -32588 32347 4555.3 455530 -127 124 -1.5 -150 -981 2 10971 99882 2.94594 299.94594 151.44594 15144.59459 2.94594 299.94595 151.44595 15144.59501 2.94594 299.94594 151.4459399999998 15144.59400 2020-01-01 2020-01-02 2020-01-01 00:16:21 2020-01-02 03:44:42 2020-01-01 00:16:21.000 2020-01-02 03:44:42.000 981 99882 50431.5 5043150 981 99882 50431.5 5043150 -32587 32348 4556.3 455630 -126 125 -0.5 -50 -982 2 10972 99883 2.94894 299.94894 151.44894 15144.89489 2.94894 299.94894 151.44894 15144.89466 2.94894 299.94894 151.44894000000014 15144.89400 2020-01-01 2020-01-02 2020-01-01 00:16:22 2020-01-02 03:44:43 2020-01-01 00:16:22.000 2020-01-02 03:44:43.000 982 99883 50432.5 5043250 982 99883 50432.5 5043250 -32586 32349 4557.3 455730 -125 126 0.5 50 -983 2 10973 99884 2.95195 299.95195 151.45195 15145.19519 2.95195 299.95197 151.45195 15145.19525 2.95195 299.95195 151.45195000000004 15145.19500 2020-01-01 2020-01-02 2020-01-01 00:16:23 2020-01-02 03:44:44 2020-01-01 00:16:23.000 2020-01-02 03:44:44.000 983 99884 50433.5 5043350 983 99884 50433.5 5043350 -32585 32350 4558.3 455830 -124 127 1.5 150 -984 2 10974 99885 2.95495 299.95495 151.45495 15145.49549 2.95495 299.95496 151.45495 15145.49559 2.95495 299.95495 151.4549499999999 15145.49500 2020-01-01 2020-01-02 2020-01-01 00:16:24 2020-01-02 03:44:45 2020-01-01 00:16:24.000 2020-01-02 03:44:45.000 984 99885 50434.5 5043450 984 99885 50434.5 5043450 -32584 32351 4559.3 455930 -128 127 -0.06 -6 -985 2 10975 99886 2.95795 299.95795 151.45795 15145.79579 2.95795 299.95795 151.45795 15145.79573 2.95795 299.95795 151.45794999999998 15145.79500 2020-01-01 2020-01-02 2020-01-01 00:16:25 2020-01-02 03:44:46 2020-01-01 00:16:25.000 2020-01-02 03:44:46.000 985 99886 50435.5 5043550 985 99886 50435.5 5043550 -32583 32352 4560.3 456030 -128 123 -1.62 -162 -986 2 10976 99887 2.96096 299.96096 151.46096 15146.09609 2.96096 299.96097 151.46096 15146.09648 2.96096 299.96096 151.46096000000014 15146.09600 2020-01-01 2020-01-02 2020-01-01 00:16:26 2020-01-02 03:44:47 2020-01-01 00:16:26.000 2020-01-02 03:44:47.000 986 99887 50436.5 5043650 986 99887 50436.5 5043650 -32582 32353 4561.3 456130 -127 124 -0.62 -62 -987 2 10977 99888 2.96396 299.96396 151.46396 15146.39639 2.96396 299.96396 151.46396 15146.39612 2.96396 299.96396 151.46395999999982 15146.39600 2020-01-01 2020-01-02 2020-01-01 00:16:27 2020-01-02 03:44:48 2020-01-01 00:16:27.000 2020-01-02 03:44:48.000 987 99888 50437.5 5043750 987 99888 50437.5 5043750 -32581 32354 4562.3 456230 -126 125 0.38 38 -988 2 10978 99889 2.96696 299.96696 151.46696 15146.69669 2.96696 299.96698 151.46696 15146.69676 2.96696 299.96696 151.46695999999986 15146.69600 2020-01-01 2020-01-02 2020-01-01 00:16:28 2020-01-02 03:44:49 2020-01-01 00:16:28.000 2020-01-02 03:44:49.000 988 99889 50438.5 5043850 988 99889 50438.5 5043850 -32580 32355 4563.3 456330 -125 126 1.38 138 -989 2 10979 99890 2.96996 299.96996 151.46996 15146.99699 2.96997 299.96997 151.46997 15146.99706 2.96996 299.96996 151.46996000000016 15146.99600 2020-01-01 2020-01-02 2020-01-01 00:16:29 2020-01-02 03:44:50 2020-01-01 00:16:29.000 2020-01-02 03:44:50.000 989 99890 50439.5 5043950 989 99890 50439.5 5043950 -32579 32356 4564.3 456430 -124 127 2.38 238 -99 2 10089 99999 0.29729 300.29729 150.29729 15180.02702 0.29729 300.2973 150.29729 15180.02726 0.29729 300.29729 150.29729000000023 15180.02629 2020-01-01 2020-01-02 2020-01-01 00:01:39 2020-01-02 03:46:39 2020-01-01 00:01:39.000 2020-01-02 03:46:39.000 99 99999 50049 5054949 99 99999 50049 5054949 -32470 32465 4628.009900990099 467429 -128 123 -2.801980198019802 -283 -990 2 10980 99891 2.97297 299.97297 151.47297 15147.29729 2.97297 299.97296 151.47297 15147.29735 2.97297 299.97297 151.4729700000001 15147.29700 2020-01-01 2020-01-02 2020-01-01 00:16:30 2020-01-02 03:44:51 2020-01-01 00:16:30.000 2020-01-02 03:44:51.000 990 99891 50440.5 5044050 990 99891 50440.5 5044050 -32578 32357 4565.3 456530 -128 127 0.82 82 +967 2 10957 99868 2.9039 299.9039 151.4039 15140.39039 2.9039 299.9039 151.4039 15140.39009 2.90390 299.90390 151.4039 15140.39000 2020-01-01 2020-01-02 2020-01-01 00:16:07 2020-01-02 03:44:28 2020-01-01 00:16:07.000 2020-01-02 03:44:28.000 967 99868 50417.5 5041750 967 99868 50417.5 5041750 -32601 32334 4542.3 454230 -128 124 -1.7 -170 +968 2 10958 99869 2.9069 299.9069 151.4069 15140.69069 2.9069 299.90692 151.4069 15140.69084 2.90690 299.90690 151.4069 15140.69000 2020-01-01 2020-01-02 2020-01-01 00:16:08 2020-01-02 03:44:29 2020-01-01 00:16:08.000 2020-01-02 03:44:29.000 968 99869 50418.5 5041850 968 99869 50418.5 5041850 -32600 32335 4543.3 454330 -127 125 -0.7 -70 +969 2 10959 99870 2.9099 299.9099 151.4099 15140.99099 2.90991 299.9099 151.40991 15140.99114 2.90990 299.90990 151.4099 15140.99000 2020-01-01 2020-01-02 2020-01-01 00:16:09 2020-01-02 03:44:30 2020-01-01 00:16:09.000 2020-01-02 03:44:30.000 969 99870 50419.5 5041950 969 99870 50419.5 5041950 -32599 32336 4544.3 454430 -126 126 0.3 30 +97 2 10087 99997 0.29129 300.29129 150.29129 15179.42042 0.29129 300.2913 150.29129 15179.42033 0.29129 300.29129 150.29129 15179.42029 2020-01-01 2020-01-02 2020-01-01 00:01:37 2020-01-02 03:46:37 2020-01-01 00:01:37.000 2020-01-02 03:46:37.000 97 99997 50047 5054747 97 99997 50047 5054747 -32472 32463 4626.009900990099 467227 -128 127 0.26732673267326734 27 +970 2 10960 99871 2.91291 299.91291 151.41291 15141.29129 2.91291 299.9129 151.41291 15141.29132 2.91291 299.91291 151.41290999999998 15141.29100 2020-01-01 2020-01-02 2020-01-01 00:16:10 2020-01-02 03:44:31 2020-01-01 00:16:10.000 2020-01-02 03:44:31.000 970 99871 50420.5 5042050 970 99871 50420.5 5042050 -32598 32337 4545.3 454530 -125 127 1.3 130 +971 2 10961 99872 2.91591 299.91591 151.41591 15141.59159 2.91591 299.91592 151.41591 15141.59142 2.91591 299.91591 151.41591 15141.59100 2020-01-01 2020-01-02 2020-01-01 00:16:11 2020-01-02 03:44:32 2020-01-01 00:16:11.000 2020-01-02 03:44:32.000 971 99872 50421.5 5042150 971 99872 50421.5 5042150 -32597 32338 4546.3 454630 -128 127 -0.26 -26 +972 2 10962 99873 2.91891 299.91891 151.41891 15141.89189 2.91891 299.9189 151.41891 15141.89172 2.91891 299.91891 151.41890999999998 15141.89100 2020-01-01 2020-01-02 2020-01-01 00:16:12 2020-01-02 03:44:33 2020-01-01 00:16:12.000 2020-01-02 03:44:33.000 972 99873 50422.5 5042250 972 99873 50422.5 5042250 -32596 32339 4547.3 454730 -128 127 -1.82 -182 +973 2 10963 99874 2.92192 299.92192 151.42192 15142.19219 2.92192 299.92194 151.42192 15142.19232 2.92192 299.92192 151.42192 15142.19200 2020-01-01 2020-01-02 2020-01-01 00:16:13 2020-01-02 03:44:34 2020-01-01 00:16:13.000 2020-01-02 03:44:34.000 973 99874 50423.5 5042350 973 99874 50423.5 5042350 -32595 32340 4548.3 454830 -128 123 -3.38 -338 +974 2 10964 99875 2.92492 299.92492 151.42492 15142.49249 2.92492 299.92493 151.42492 15142.49265 2.92492 299.92492 151.42492000000001 15142.49200 2020-01-01 2020-01-02 2020-01-01 00:16:14 2020-01-02 03:44:35 2020-01-01 00:16:14.000 2020-01-02 03:44:35.000 974 99875 50424.5 5042450 974 99875 50424.5 5042450 -32594 32341 4549.3 454930 -127 124 -2.38 -238 +975 2 10965 99876 2.92792 299.92792 151.42792 15142.79279 2.92792 299.92792 151.42792 15142.79279 2.92792 299.92792 151.42792 15142.79200 2020-01-01 2020-01-02 2020-01-01 00:16:15 2020-01-02 03:44:36 2020-01-01 00:16:15.000 2020-01-02 03:44:36.000 975 99876 50425.5 5042550 975 99876 50425.5 5042550 -32593 32342 4550.3 455030 -126 125 -1.38 -138 +976 2 10966 99877 2.93093 299.93093 151.43093 15143.09309 2.93093 299.93094 151.43092 15143.09289 2.93093 299.93093 151.43093000000002 15143.09300 2020-01-01 2020-01-02 2020-01-01 00:16:16 2020-01-02 03:44:37 2020-01-01 00:16:16.000 2020-01-02 03:44:37.000 976 99877 50426.5 5042650 976 99877 50426.5 5042650 -32592 32343 4551.3 455130 -125 126 -0.38 -38 +977 2 10967 99878 2.93393 299.93393 151.43393 15143.39339 2.93393 299.93393 151.43393 15143.39318 2.93393 299.93393 151.43393 15143.39300 2020-01-01 2020-01-02 2020-01-01 00:16:17 2020-01-02 03:44:38 2020-01-01 00:16:17.000 2020-01-02 03:44:38.000 977 99878 50427.5 5042750 977 99878 50427.5 5042750 -32591 32344 4552.3 455230 -124 127 0.62 62 +978 2 10968 99879 2.93693 299.93693 151.43693 15143.69369 2.93693 299.93695 151.43693 15143.69378 2.93693 299.93693 151.43693 15143.69300 2020-01-01 2020-01-02 2020-01-01 00:16:18 2020-01-02 03:44:39 2020-01-01 00:16:18.000 2020-01-02 03:44:39.000 978 99879 50428.5 5042850 978 99879 50428.5 5042850 -32590 32345 4553.3 455330 -128 127 -0.94 -94 +979 2 10969 99880 2.93993 299.93993 151.43993 15143.99399 2.93994 299.93994 151.43994 15143.99412 2.93993 299.93993 151.43993 15143.99300 2020-01-01 2020-01-02 2020-01-01 00:16:19 2020-01-02 03:44:40 2020-01-01 00:16:19.000 2020-01-02 03:44:40.000 979 99880 50429.5 5042950 979 99880 50429.5 5042950 -32589 32346 4554.3 455430 -128 123 -2.5 -250 +98 2 10088 99998 0.29429 300.29429 150.29429 15179.72372 0.29429 300.29428 150.29429 15179.72363 0.29429 300.29429 150.29429 15179.72329 2020-01-01 2020-01-02 2020-01-01 00:01:38 2020-01-02 03:46:38 2020-01-01 00:01:38.000 2020-01-02 03:46:38.000 98 99998 50048 5054848 98 99998 50048 5054848 -32471 32464 4627.009900990099 467328 -128 127 -1.2673267326732673 -128 +980 2 10970 99881 2.94294 299.94294 151.44294 15144.29429 2.94294 299.94293 151.44294 15144.29426 2.94294 299.94294 151.44294 15144.29400 2020-01-01 2020-01-02 2020-01-01 00:16:20 2020-01-02 03:44:41 2020-01-01 00:16:20.000 2020-01-02 03:44:41.000 980 99881 50430.5 5043050 980 99881 50430.5 5043050 -32588 32347 4555.3 455530 -127 124 -1.5 -150 +981 2 10971 99882 2.94594 299.94594 151.44594 15144.59459 2.94594 299.94595 151.44595 15144.59501 2.94594 299.94594 151.44593999999998 15144.59400 2020-01-01 2020-01-02 2020-01-01 00:16:21 2020-01-02 03:44:42 2020-01-01 00:16:21.000 2020-01-02 03:44:42.000 981 99882 50431.5 5043150 981 99882 50431.5 5043150 -32587 32348 4556.3 455630 -126 125 -0.5 -50 +982 2 10972 99883 2.94894 299.94894 151.44894 15144.89489 2.94894 299.94894 151.44894 15144.89466 2.94894 299.94894 151.44894 15144.89400 2020-01-01 2020-01-02 2020-01-01 00:16:22 2020-01-02 03:44:43 2020-01-01 00:16:22.000 2020-01-02 03:44:43.000 982 99883 50432.5 5043250 982 99883 50432.5 5043250 -32586 32349 4557.3 455730 -125 126 0.5 50 +983 2 10973 99884 2.95195 299.95195 151.45195 15145.19519 2.95195 299.95197 151.45195 15145.19525 2.95195 299.95195 151.45195 15145.19500 2020-01-01 2020-01-02 2020-01-01 00:16:23 2020-01-02 03:44:44 2020-01-01 00:16:23.000 2020-01-02 03:44:44.000 983 99884 50433.5 5043350 983 99884 50433.5 5043350 -32585 32350 4558.3 455830 -124 127 1.5 150 +984 2 10974 99885 2.95495 299.95495 151.45495 15145.49549 2.95495 299.95496 151.45495 15145.49559 2.95495 299.95495 151.45495 15145.49500 2020-01-01 2020-01-02 2020-01-01 00:16:24 2020-01-02 03:44:45 2020-01-01 00:16:24.000 2020-01-02 03:44:45.000 984 99885 50434.5 5043450 984 99885 50434.5 5043450 -32584 32351 4559.3 455930 -128 127 -0.06 -6 +985 2 10975 99886 2.95795 299.95795 151.45795 15145.79579 2.95795 299.95795 151.45795 15145.79573 2.95795 299.95795 151.45795 15145.79500 2020-01-01 2020-01-02 2020-01-01 00:16:25 2020-01-02 03:44:46 2020-01-01 00:16:25.000 2020-01-02 03:44:46.000 985 99886 50435.5 5043550 985 99886 50435.5 5043550 -32583 32352 4560.3 456030 -128 123 -1.62 -162 +986 2 10976 99887 2.96096 299.96096 151.46096 15146.09609 2.96096 299.96097 151.46096 15146.09648 2.96096 299.96096 151.46096 15146.09600 2020-01-01 2020-01-02 2020-01-01 00:16:26 2020-01-02 03:44:47 2020-01-01 00:16:26.000 2020-01-02 03:44:47.000 986 99887 50436.5 5043650 986 99887 50436.5 5043650 -32582 32353 4561.3 456130 -127 124 -0.62 -62 +987 2 10977 99888 2.96396 299.96396 151.46396 15146.39639 2.96396 299.96396 151.46396 15146.39612 2.96396 299.96396 151.46396000000001 15146.39600 2020-01-01 2020-01-02 2020-01-01 00:16:27 2020-01-02 03:44:48 2020-01-01 00:16:27.000 2020-01-02 03:44:48.000 987 99888 50437.5 5043750 987 99888 50437.5 5043750 -32581 32354 4562.3 456230 -126 125 0.38 38 +988 2 10978 99889 2.96696 299.96696 151.46696 15146.69669 2.96696 299.96698 151.46696 15146.69676 2.96696 299.96696 151.46696 15146.69600 2020-01-01 2020-01-02 2020-01-01 00:16:28 2020-01-02 03:44:49 2020-01-01 00:16:28.000 2020-01-02 03:44:49.000 988 99889 50438.5 5043850 988 99889 50438.5 5043850 -32580 32355 4563.3 456330 -125 126 1.38 138 +989 2 10979 99890 2.96996 299.96996 151.46996 15146.99699 2.96997 299.96997 151.46997 15146.99706 2.96996 299.96996 151.46996 15146.99600 2020-01-01 2020-01-02 2020-01-01 00:16:29 2020-01-02 03:44:50 2020-01-01 00:16:29.000 2020-01-02 03:44:50.000 989 99890 50439.5 5043950 989 99890 50439.5 5043950 -32579 32356 4564.3 456430 -124 127 2.38 238 +99 2 10089 99999 0.29729 300.29729 150.29729 15180.02702 0.29729 300.2973 150.29729 15180.02726 0.29729 300.29729 150.29729 15180.02629 2020-01-01 2020-01-02 2020-01-01 00:01:39 2020-01-02 03:46:39 2020-01-01 00:01:39.000 2020-01-02 03:46:39.000 99 99999 50049 5054949 99 99999 50049 5054949 -32470 32465 4628.009900990099 467429 -128 123 -2.801980198019802 -283 +990 2 10980 99891 2.97297 299.97297 151.47297 15147.29729 2.97297 299.97296 151.47297 15147.29735 2.97297 299.97297 151.47297 15147.29700 2020-01-01 2020-01-02 2020-01-01 00:16:30 2020-01-02 03:44:51 2020-01-01 00:16:30.000 2020-01-02 03:44:51.000 990 99891 50440.5 5044050 990 99891 50440.5 5044050 -32578 32357 4565.3 456530 -128 127 0.82 82 991 2 10981 99892 2.97597 299.97597 151.47597 15147.59759 2.97597 299.97598 151.47597 15147.59795 2.97597 299.97597 151.47597 15147.59700 2020-01-01 2020-01-02 2020-01-01 00:16:31 2020-01-02 03:44:52 2020-01-01 00:16:31.000 2020-01-02 03:44:52.000 991 99892 50441.5 5044150 991 99892 50441.5 5044150 -32577 32358 4566.3 456630 -128 127 -0.74 -74 -992 2 10982 99893 2.97897 299.97897 151.47897 15147.89789 2.97897 299.97897 151.47897 15147.89759 2.97897 299.97897 151.4789700000001 15147.89700 2020-01-01 2020-01-02 2020-01-01 00:16:32 2020-01-02 03:44:53 2020-01-01 00:16:32.000 2020-01-02 03:44:53.000 992 99893 50442.5 5044250 992 99893 50442.5 5044250 -32576 32359 4567.3 456730 -128 124 -2.3 -230 +992 2 10982 99893 2.97897 299.97897 151.47897 15147.89789 2.97897 299.97897 151.47897 15147.89759 2.97897 299.97897 151.47897 15147.89700 2020-01-01 2020-01-02 2020-01-01 00:16:32 2020-01-02 03:44:53 2020-01-01 00:16:32.000 2020-01-02 03:44:53.000 992 99893 50442.5 5044250 992 99893 50442.5 5044250 -32576 32359 4567.3 456730 -128 124 -2.3 -230 993 2 10983 99894 2.98198 299.98198 151.48198 15148.19819 2.98198 299.982 151.48198 15148.19823 2.98198 299.98198 151.48198 15148.19800 2020-01-01 2020-01-02 2020-01-01 00:16:33 2020-01-02 03:44:54 2020-01-01 00:16:33.000 2020-01-02 03:44:54.000 993 99894 50443.5 5044350 993 99894 50443.5 5044350 -32575 32360 4568.3 456830 -127 125 -1.3 -130 -994 2 10984 99895 2.98498 299.98498 151.48498 15148.49849 2.98498 299.985 151.48498 15148.49853 2.98498 299.98498 151.48497999999995 15148.49800 2020-01-01 2020-01-02 2020-01-01 00:16:34 2020-01-02 03:44:55 2020-01-01 00:16:34.000 2020-01-02 03:44:55.000 994 99895 50444.5 5044450 994 99895 50444.5 5044450 -32574 32361 4569.3 456930 -126 126 -0.3 -30 -995 2 10985 99896 2.98798 299.98798 151.48798 15148.79879 2.98798 299.98798 151.48798 15148.79882 2.98798 299.98798 151.4879799999999 15148.79800 2020-01-01 2020-01-02 2020-01-01 00:16:35 2020-01-02 03:44:56 2020-01-01 00:16:35.000 2020-01-02 03:44:56.000 995 99896 50445.5 5044550 995 99896 50445.5 5044550 -32573 32362 4570.3 457030 -125 127 0.7 70 -996 2 10986 99897 2.99099 299.99099 151.49099 15149.09909 2.99099 299.991 151.49099 15149.09942 2.99099 299.99099 151.49099000000015 15149.09900 2020-01-01 2020-01-02 2020-01-01 00:16:36 2020-01-02 03:44:57 2020-01-01 00:16:36.000 2020-01-02 03:44:57.000 996 99897 50446.5 5044650 996 99897 50446.5 5044650 -32572 32363 4571.3 457130 -128 127 -0.86 -86 -997 2 10987 99898 2.99399 299.99399 151.49399 15149.39939 2.99399 299.994 151.49399 15149.3991 2.99399 299.99399 151.49399000000017 15149.39900 2020-01-01 2020-01-02 2020-01-01 00:16:37 2020-01-02 03:44:58 2020-01-01 00:16:37.000 2020-01-02 03:44:58.000 997 99898 50447.5 5044750 997 99898 50447.5 5044750 -32571 32364 4572.3 457230 -128 127 -2.42 -242 -998 2 10988 99899 2.99699 299.99699 151.49699 15149.69969 2.99699 299.997 151.49699 15149.6997 2.99699 299.99699 151.49698999999984 15149.69900 2020-01-01 2020-01-02 2020-01-01 00:16:38 2020-01-02 03:44:59 2020-01-01 00:16:38.000 2020-01-02 03:44:59.000 998 99899 50448.5 5044850 998 99899 50448.5 5044850 -32570 32365 4573.3 457330 -128 123 -3.98 -398 +994 2 10984 99895 2.98498 299.98498 151.48498 15148.49849 2.98498 299.985 151.48498 15148.49853 2.98498 299.98498 151.48498 15148.49800 2020-01-01 2020-01-02 2020-01-01 00:16:34 2020-01-02 03:44:55 2020-01-01 00:16:34.000 2020-01-02 03:44:55.000 994 99895 50444.5 5044450 994 99895 50444.5 5044450 -32574 32361 4569.3 456930 -126 126 -0.3 -30 +995 2 10985 99896 2.98798 299.98798 151.48798 15148.79879 2.98798 299.98798 151.48798 15148.79882 2.98798 299.98798 151.48798 15148.79800 2020-01-01 2020-01-02 2020-01-01 00:16:35 2020-01-02 03:44:56 2020-01-01 00:16:35.000 2020-01-02 03:44:56.000 995 99896 50445.5 5044550 995 99896 50445.5 5044550 -32573 32362 4570.3 457030 -125 127 0.7 70 +996 2 10986 99897 2.99099 299.99099 151.49099 15149.09909 2.99099 299.991 151.49099 15149.09942 2.99099 299.99099 151.49099 15149.09900 2020-01-01 2020-01-02 2020-01-01 00:16:36 2020-01-02 03:44:57 2020-01-01 00:16:36.000 2020-01-02 03:44:57.000 996 99897 50446.5 5044650 996 99897 50446.5 5044650 -32572 32363 4571.3 457130 -128 127 -0.86 -86 +997 2 10987 99898 2.99399 299.99399 151.49399 15149.39939 2.99399 299.994 151.49399 15149.3991 2.99399 299.99399 151.49399 15149.39900 2020-01-01 2020-01-02 2020-01-01 00:16:37 2020-01-02 03:44:58 2020-01-01 00:16:37.000 2020-01-02 03:44:58.000 997 99898 50447.5 5044750 997 99898 50447.5 5044750 -32571 32364 4572.3 457230 -128 127 -2.42 -242 +998 2 10988 99899 2.99699 299.99699 151.49699 15149.69969 2.99699 299.997 151.49699 15149.6997 2.99699 299.99699 151.49699 15149.69900 2020-01-01 2020-01-02 2020-01-01 00:16:38 2020-01-02 03:44:59 2020-01-01 00:16:38.000 2020-01-02 03:44:59.000 998 99899 50448.5 5044850 998 99899 50448.5 5044850 -32570 32365 4573.3 457330 -128 123 -3.98 -398 ---- select row with nulls without states ---- -2 1 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N ---- select row with nulls with states ---- From c09fcf846dcb858d5b03cd30ef7724f6a56385c7 Mon Sep 17 00:00:00 2001 From: myrrc Date: Thu, 5 Nov 2020 11:12:04 +0300 Subject: [PATCH 076/425] added proper test for avg() --- tests/queries/0_stateless/01035_avg.reference | 7 ++- tests/queries/0_stateless/01035_avg.sql | 48 ++++++++++++++++--- 2 files changed, 46 insertions(+), 9 deletions(-) diff --git a/tests/queries/0_stateless/01035_avg.reference b/tests/queries/0_stateless/01035_avg.reference index 8e5b888b523..f76c532ea69 100644 --- a/tests/queries/0_stateless/01035_avg.reference +++ b/tests/queries/0_stateless/01035_avg.reference @@ -1,2 +1,5 @@ -nan -499.5 +nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan +-0.5 -0.5 -0.5 -0.5 -0.5 -0.5 127.493856 32355.57552 499999.5 499999.5 499999.5 499999.5 499999.5 -0.000500002 0.49999949943727 -0.000005 1.7009999999999985e-8 +-2767.546272 +999999 +-0.50000449943727 diff --git a/tests/queries/0_stateless/01035_avg.sql b/tests/queries/0_stateless/01035_avg.sql index ee58587736f..a185ce816fb 100644 --- a/tests/queries/0_stateless/01035_avg.sql +++ b/tests/queries/0_stateless/01035_avg.sql @@ -1,9 +1,43 @@ -CREATE TABLE IF NOT EXISTS test_01035 ( - t UInt16 -) ENGINE = Memory; +SET allow_experimental_bigint_types=1; -SELECT avg(t) FROM test_01035; -INSERT INTO test_01035 SELECT * FROM system.numbers LIMIT 1000; -SELECT avg(t) FROM test_01035; +-- no UInt128 as for now +CREATE TABLE IF NOT EXISTS test_01035_avg ( + i8 Int8 DEFAULT i64, + i16 Int16 DEFAULT i64, + i32 Int32 DEFAULT i64, + i64 Int64 DEFAULT if(u64 % 2 = 0, toInt64(u64), toInt64(-u64)), + i128 Int128 DEFAULT i64, + i256 Int256 DEFAULT i64, -DROP TABLE IF EXISTS test_01035 + u8 UInt8 DEFAULT u64, + u16 UInt16 DEFAULT u64, + u32 UInt32 DEFAULT u64, + u64 UInt64, + u256 UInt256 DEFAULT u64, + + f32 Float32 DEFAULT u64, + f64 Float64 DEFAULT u64, + + d32 Decimal32(4) DEFAULT toDecimal32(i32 / 1000, 4), + d64 Decimal64(18) DEFAULT toDecimal64(u64 / 1000000, 8), + d128 Decimal128(20) DEFAULT toDecimal128(i128 / 100000, 20), + d256 Decimal256(40) DEFAULT toDecimal256(i256 / 100000, 40) +) ENGINE = MergeTree() ORDER BY i64; + +SELECT avg(i8), avg(i16), avg(i32), avg(i64), avg(i128), avg(i256), + avg(u8), avg(u16), avg(u32), avg(u64), avg(u256), + avg(f32), avg(f64), + avg(d32), avg(d64), avg(d128), avg(d256) FROM test_01035_avg; + +INSERT INTO test_01035_avg (u64) SELECT number FROM system.numbers LIMIT 1000000; + +SELECT avg(i8), avg(i16), avg(i32), avg(i64), avg(i128), avg(i256), + avg(u8), avg(u16), avg(u32), avg(u64), avg(u256), + avg(f32), avg(f64), + avg(d32), avg(d64), avg(d128), avg(d256) FROM test_01035_avg; + +SELECT avg(i8 * i16) FROM test_01035_avg; +SELECT avg(f32 + f64) FROM test_01035_avg; +SELECT avg(d128 - d64) FROM test_01035_avg; + +DROP TABLE IF EXISTS test_01035_avg; From bcd8f1896f79a1218d5388b98bfe9742a38459f2 Mon Sep 17 00:00:00 2001 From: myrrc Date: Thu, 5 Nov 2020 12:10:26 +0300 Subject: [PATCH 077/425] fixed the MSan exception on ColumnConst(ColumnDecimal) ctor --- src/Columns/ColumnDecimal.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Columns/ColumnDecimal.h b/src/Columns/ColumnDecimal.h index 1939d87e357..1f96ab00647 100644 --- a/src/Columns/ColumnDecimal.h +++ b/src/Columns/ColumnDecimal.h @@ -127,7 +127,9 @@ public: bool isNumeric() const override { return false; } bool canBeInsideNullable() const override { return true; } - bool isFixedAndContiguous() const override { return true; } + + bool isFixedAndContiguous() const final { return is_POD; } + size_t sizeOfValueIfFixed() const override { return sizeof(T); } size_t size() const override { return data.size(); } From ddd40fc4ce15e8277fd0978d3fbb08212b14e38a Mon Sep 17 00:00:00 2001 From: myrrc Date: Thu, 5 Nov 2020 12:20:05 +0300 Subject: [PATCH 078/425] fixed the perf test --- tests/performance/avg_weighted.xml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tests/performance/avg_weighted.xml b/tests/performance/avg_weighted.xml index 13bc7e58c44..a55fe245399 100644 --- a/tests/performance/avg_weighted.xml +++ b/tests/performance/avg_weighted.xml @@ -1,20 +1,22 @@ + + hits_100m_single + + DROP TABLE IF EXISTS perf_avg SET allow_experimental_bigint_types=1 CREATE TABLE perf_avg( num UInt64, num_u Decimal256(75) DEFAULT toDecimal256(num / 400000, 75), - num_f Float64 DEFAULT num + num_f Float64 DEFAULT num / 100 ) ENGINE = MergeTree() ORDER BY tuple() INSERT INTO perf_avg(num) - SELECT number / r - FROM system.numbers - ARRAY JOIN range(1, 400000) AS r - LIMIT 200000000 + SELECT toUInt64(UserID / (WatchID + 1) * 1000000) + FROM hits_100m_single SELECT avg(num) FROM perf_avg From 2a0d9da5e4bd3a2f95615a0bb23cc47c7efb12c4 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Thu, 5 Nov 2020 12:25:42 +0300 Subject: [PATCH 079/425] cleanup --- docs/en/sql-reference/statements/select/union-all.md | 2 +- src/Common/ErrorCodes.cpp | 8 -------- src/Interpreters/executeQuery.cpp | 11 +++++++++-- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/docs/en/sql-reference/statements/select/union-all.md b/docs/en/sql-reference/statements/select/union-all.md index 1784da37c9a..f150efbdc80 100644 --- a/docs/en/sql-reference/statements/select/union-all.md +++ b/docs/en/sql-reference/statements/select/union-all.md @@ -29,7 +29,7 @@ Queries that are parts of `UNION ALL` can’t be enclosed in round brackets. [OR The difference between `UNION ALL` and `UNION DISTINCT` is that `UNION DISTINCT` will do a distinct transform for union result, it is equivalent to `SELECT DISTINCT` from a subquery containing `UNION ALL`. # UNION Clause {#union-clause} -By defaul, `UNION` has same react as `UNION DISTINCT`, but you can specify union mode by setting `union_default_mode`, values can be 'ALL', 'DISTINCT' or empty string. However, if you use `UNION` with setting `union_default_mode` to empty string, it will throw an exception. +By default, `UNION` has the same behavior as `UNION DISTINCT`, but you can specify union mode by setting `union_default_mode`, values can be 'ALL', 'DISTINCT' or empty string. However, if you use `UNION` with setting `union_default_mode` to empty string, it will throw an exception. ## Implementation Details {#implementation-details} diff --git a/src/Common/ErrorCodes.cpp b/src/Common/ErrorCodes.cpp index 501f655154b..6f46dd861d0 100644 --- a/src/Common/ErrorCodes.cpp +++ b/src/Common/ErrorCodes.cpp @@ -559,15 +559,7 @@ namespace ErrorCodes return error_codes_names.names[error_code]; } -<<<<<<< HEAD - extern const int CONDITIONAL_TREE_PARENT_NOT_FOUND = 2001; - extern const int ILLEGAL_PROJECTION_MANIPULATOR = 2002; - extern const int UNRECOGNIZED_ARGUMENTS = 2003; - extern const int UNKNOWN_UNION = 2004; - extern const int EXPECTED_ALL_OR_DISTINCT = 2005; -======= ErrorCode end() { return END+1; } ->>>>>>> origin/master } } diff --git a/src/Interpreters/executeQuery.cpp b/src/Interpreters/executeQuery.cpp index 8faccf7bc7b..3551d58444a 100644 --- a/src/Interpreters/executeQuery.cpp +++ b/src/Interpreters/executeQuery.cpp @@ -349,8 +349,15 @@ static std::tuple executeQueryImpl( { if (!select_with_union_query->list_of_selects->children.empty()) { - if (auto new_settings = select_with_union_query->list_of_selects->children.back()->as()->settings()) - InterpreterSetQuery(new_settings, context).executeForCurrentContext(); + select_with_union_query->dumpTree(std::cerr); + // We might have an arbitrarily complex UNION tree, so just give + // up if the last first-order child is not a plain SELECT. + // It is flattened later, when we process UNION ALL/DISTINCT. + const auto * last_select = select_with_union_query->list_of_selects->children.back()->as(); + if (last_select && last_select->settings()) + { + InterpreterSetQuery(last_select->settings(), context).executeForCurrentContext(); + } } } else if (const auto * query_with_output = dynamic_cast(ast.get())) From 6b35657f59fdcca5571a80edcb3dc98eca24968d Mon Sep 17 00:00:00 2001 From: myrrc Date: Thu, 5 Nov 2020 12:38:46 +0300 Subject: [PATCH 080/425] updated the mem check code --- src/Columns/ColumnConst.cpp | 9 --------- src/Columns/ColumnDecimal.h | 4 +--- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/src/Columns/ColumnConst.cpp b/src/Columns/ColumnConst.cpp index 550a44a23a2..36b8a74ec94 100644 --- a/src/Columns/ColumnConst.cpp +++ b/src/Columns/ColumnConst.cpp @@ -32,15 +32,6 @@ ColumnConst::ColumnConst(const ColumnPtr & data_, size_t s_) if (data->size() != 1) throw Exception("Incorrect size of nested column in constructor of ColumnConst: " + toString(data->size()) + ", must be 1.", ErrorCodes::SIZES_OF_COLUMNS_DOESNT_MATCH); - - /// Check that the value is initialized. We do it earlier, before it will be used, to ease debugging. -#if defined(MEMORY_SANITIZER) - if (data->isFixedAndContiguous()) - { - StringRef value = data->getDataAt(0); - __msan_check_mem_is_initialized(value.data, value.size); - } -#endif } ColumnPtr ColumnConst::convertToFullColumn() const diff --git a/src/Columns/ColumnDecimal.h b/src/Columns/ColumnDecimal.h index 1f96ab00647..85ea7de88bc 100644 --- a/src/Columns/ColumnDecimal.h +++ b/src/Columns/ColumnDecimal.h @@ -127,9 +127,7 @@ public: bool isNumeric() const override { return false; } bool canBeInsideNullable() const override { return true; } - - bool isFixedAndContiguous() const final { return is_POD; } - + bool isFixedAndContiguous() const final { return true; } size_t sizeOfValueIfFixed() const override { return sizeof(T); } size_t size() const override { return data.size(); } From 8cf203c21c803db0b21e89dc781d86454695da16 Mon Sep 17 00:00:00 2001 From: myrrc Date: Thu, 5 Nov 2020 12:47:04 +0300 Subject: [PATCH 081/425] simplified the ColumnDecimal --- src/Columns/ColumnConst.cpp | 9 +++++ src/Columns/ColumnDecimal.h | 81 +++++-------------------------------- 2 files changed, 18 insertions(+), 72 deletions(-) diff --git a/src/Columns/ColumnConst.cpp b/src/Columns/ColumnConst.cpp index 36b8a74ec94..550a44a23a2 100644 --- a/src/Columns/ColumnConst.cpp +++ b/src/Columns/ColumnConst.cpp @@ -32,6 +32,15 @@ ColumnConst::ColumnConst(const ColumnPtr & data_, size_t s_) if (data->size() != 1) throw Exception("Incorrect size of nested column in constructor of ColumnConst: " + toString(data->size()) + ", must be 1.", ErrorCodes::SIZES_OF_COLUMNS_DOESNT_MATCH); + + /// Check that the value is initialized. We do it earlier, before it will be used, to ease debugging. +#if defined(MEMORY_SANITIZER) + if (data->isFixedAndContiguous()) + { + StringRef value = data->getDataAt(0); + __msan_check_mem_is_initialized(value.data, value.size); + } +#endif } ColumnPtr ColumnConst::convertToFullColumn() const diff --git a/src/Columns/ColumnDecimal.h b/src/Columns/ColumnDecimal.h index 85ea7de88bc..2242c0eecbc 100644 --- a/src/Columns/ColumnDecimal.h +++ b/src/Columns/ColumnDecimal.h @@ -55,43 +55,6 @@ private: UInt32 scale; }; -/// std::vector extended by Decimal scale -template -class DecimalVector : public std::vector -{ -public: - using Base = std::vector; - using Base::operator[]; - - DecimalVector(size_t size, UInt32 scale_) - : Base(size), - scale(scale_) - {} - - DecimalVector(const DecimalVector & other) - : Base(other.begin(), other.end()), - scale(other.scale) - {} - - DecimalVector(DecimalVector && other) - { - this->swap(other); - std::swap(scale, other.scale); - } - - DecimalVector & operator=(DecimalVector && other) - { - this->swap(other); - std::swap(scale, other.scale); - return *this; - } - - UInt32 getScale() const { return scale; } - -private: - UInt32 scale; -}; - /// A ColumnVector for Decimals template class ColumnDecimal final : public COWHelper> @@ -105,10 +68,6 @@ private: public: using ValueType = T; using NativeT = typename T::NativeType; - static constexpr bool is_POD = !is_big_int_v; - using Container = std::conditional_t, - DecimalVector>; private: ColumnDecimal(const size_t n, UInt32 scale_) @@ -132,18 +91,8 @@ public: size_t size() const override { return data.size(); } size_t byteSize() const override { return data.size() * sizeof(data[0]); } - size_t allocatedBytes() const override - { - if constexpr (is_POD) - return data.allocated_bytes(); - else - return data.capacity() * sizeof(data[0]); - } - void protect() override - { - if constexpr (is_POD) - data.protect(); - } + size_t allocatedBytes() const override { return data.allocated_bytes(); } + void protect() override { data.protect(); } void reserve(size_t n) override { data.reserve(n); } void insertFrom(const IColumn & src, size_t n) override { data.push_back(static_cast(src).getData()[n]); } @@ -151,36 +100,24 @@ public: void insertDefault() override { data.push_back(T()); } virtual void insertManyDefaults(size_t length) override { - if constexpr (is_POD) - data.resize_fill(data.size() + length); - else - data.resize(data.size() + length); + data.resize_fill(data.size() + length); } void insert(const Field & x) override { data.push_back(DB::get>(x)); } void insertRangeFrom(const IColumn & src, size_t start, size_t length) override; void popBack(size_t n) override { - if constexpr (is_POD) - data.resize_assume_reserved(data.size() - n); - else - data.resize(data.size() - n); + data.resize_assume_reserved(data.size() - n); } StringRef getRawData() const override { - if constexpr (is_POD) - return StringRef(reinterpret_cast(data.data()), byteSize()); - else - throw Exception("getRawData() is not implemented for big integers", ErrorCodes::NOT_IMPLEMENTED); + return StringRef(reinterpret_cast(data.data()), byteSize()); } StringRef getDataAt(size_t n) const override { - if constexpr (is_POD) - return StringRef(reinterpret_cast(&data[n]), sizeof(data[n])); - else - throw Exception("getDataAt() is not implemented for big integers", ErrorCodes::NOT_IMPLEMENTED); + return StringRef(reinterpret_cast(&data[n]), sizeof(data[n])); } Float64 getFloat64(size_t n) const final { return DecimalUtils::convertTo(data[n], scale); } @@ -232,15 +169,15 @@ public: void insertValue(const T value) { data.push_back(value); } - Container & getData() { return data; } - const Container & getData() const { return data; } + DecimalPaddedPODArray & getData() { return data; } + const DecimalPaddedPODArray & getData() const { return data; } const T & getElement(size_t n) const { return data[n]; } T & getElement(size_t n) { return data[n]; } UInt32 getScale() const {return scale;} protected: - Container data; + DecimalPaddedPODArray data; UInt32 scale; template From 680e2a5af155d0059ebad5b1ece08755ca635f8d Mon Sep 17 00:00:00 2001 From: myrrc Date: Thu, 5 Nov 2020 13:11:56 +0300 Subject: [PATCH 082/425] fixing Decimal is_POD --- src/Columns/ColumnDecimal.cpp | 69 ++++++++--------------------------- src/Columns/ColumnDecimal.h | 13 ++----- src/Core/DecimalComparison.h | 1 + 3 files changed, 20 insertions(+), 63 deletions(-) diff --git a/src/Columns/ColumnDecimal.cpp b/src/Columns/ColumnDecimal.cpp index b9549175f6c..ce2475f06c2 100644 --- a/src/Columns/ColumnDecimal.cpp +++ b/src/Columns/ColumnDecimal.cpp @@ -53,32 +53,16 @@ void ColumnDecimal::compareColumn(const IColumn & rhs, size_t rhs_row_num, template StringRef ColumnDecimal::serializeValueIntoArena(size_t n, Arena & arena, char const *& begin) const { - if constexpr (is_POD) - { - auto * pos = arena.allocContinue(sizeof(T), begin); - memcpy(pos, &data[n], sizeof(T)); - return StringRef(pos, sizeof(T)); - } - else - { - char * pos = arena.allocContinue(BigInt::size, begin); - return BigInt::serialize(data[n], pos); - } + auto * pos = arena.allocContinue(sizeof(T), begin); + memcpy(pos, &data[n], sizeof(T)); + return StringRef(pos, sizeof(T)); } template const char * ColumnDecimal::deserializeAndInsertFromArena(const char * pos) { - if constexpr (is_POD) - { - data.push_back(unalignedLoad(pos)); - return pos + sizeof(T); - } - else - { - data.push_back(BigInt::deserialize(pos)); - return pos + BigInt::size; - } + data.push_back(unalignedLoad(pos)); + return pos + sizeof(T); } template @@ -251,24 +235,13 @@ MutableColumnPtr ColumnDecimal::cloneResized(size_t size) const new_col.data.resize(size); size_t count = std::min(this->size(), size); - if constexpr (is_POD) - { - memcpy(new_col.data.data(), data.data(), count * sizeof(data[0])); - if (size > count) - { - void * tail = &new_col.data[count]; - memset(tail, 0, (size - count) * sizeof(T)); - } - } - else - { - for (size_t i = 0; i < count; i++) - new_col.data[i] = data[i]; + memcpy(new_col.data.data(), data.data(), count * sizeof(data[0])); - if (size > count) - for (size_t i = count; i < size; i++) - new_col.data[i] = T{}; + if (size > count) + { + void * tail = &new_col.data[count]; + memset(tail, 0, (size - count) * sizeof(T)); } } @@ -278,16 +251,9 @@ MutableColumnPtr ColumnDecimal::cloneResized(size_t size) const template void ColumnDecimal::insertData(const char * src, size_t /*length*/) { - if constexpr (is_POD) - { - T tmp; - memcpy(&tmp, src, sizeof(T)); - data.emplace_back(tmp); - } - else - { - data.push_back(BigInt::deserialize(src)); - } + T tmp; + memcpy(&tmp, src, sizeof(T)); + data.emplace_back(tmp); } template @@ -302,13 +268,8 @@ void ColumnDecimal::insertRangeFrom(const IColumn & src, size_t start, size_t size_t old_size = data.size(); data.resize(old_size + length); - if constexpr (is_POD) - memcpy(data.data() + old_size, &src_vec.data[start], length * sizeof(data[0])); - else - { - for (size_t i = 0; i < length; i++) - data[old_size + i] = src_vec.data[start + i]; - } + + memcpy(data.data() + old_size, &src_vec.data[start], length * sizeof(data[0])); } template diff --git a/src/Columns/ColumnDecimal.h b/src/Columns/ColumnDecimal.h index 2242c0eecbc..bcbf85e0ff4 100644 --- a/src/Columns/ColumnDecimal.h +++ b/src/Columns/ColumnDecimal.h @@ -12,12 +12,6 @@ namespace DB { - -namespace ErrorCodes -{ - extern const int NOT_IMPLEMENTED; -} - /// PaddedPODArray extended by Decimal scale template class DecimalPaddedPODArray : public PaddedPODArray @@ -68,6 +62,7 @@ private: public: using ValueType = T; using NativeT = typename T::NativeType; + using Container = DecimalPaddedPODArray; private: ColumnDecimal(const size_t n, UInt32 scale_) @@ -169,15 +164,15 @@ public: void insertValue(const T value) { data.push_back(value); } - DecimalPaddedPODArray & getData() { return data; } - const DecimalPaddedPODArray & getData() const { return data; } + Container & getData() { return data; } + const Container & getData() const { return data; } const T & getElement(size_t n) const { return data[n]; } T & getElement(size_t n) { return data[n]; } UInt32 getScale() const {return scale;} protected: - DecimalPaddedPODArray data; + Container data; UInt32 scale; template diff --git a/src/Core/DecimalComparison.h b/src/Core/DecimalComparison.h index 674ed31683b..6da1fc00b7c 100644 --- a/src/Core/DecimalComparison.h +++ b/src/Core/DecimalComparison.h @@ -57,6 +57,7 @@ public: using Op = Operation; using ColVecA = std::conditional_t, ColumnDecimal, ColumnVector>; using ColVecB = std::conditional_t, ColumnDecimal, ColumnVector>; + using ArrayA = typename ColVecA::Container; using ArrayB = typename ColVecB::Container; From 4bf7b54dffac29be4c0fc8daddd4b8b3648ec353 Mon Sep 17 00:00:00 2001 From: feng lv Date: Fri, 6 Nov 2020 11:35:26 +0000 Subject: [PATCH 083/425] fix --- src/Interpreters/executeQuery.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Interpreters/executeQuery.cpp b/src/Interpreters/executeQuery.cpp index 3551d58444a..1fa28389bb7 100644 --- a/src/Interpreters/executeQuery.cpp +++ b/src/Interpreters/executeQuery.cpp @@ -349,7 +349,6 @@ static std::tuple executeQueryImpl( { if (!select_with_union_query->list_of_selects->children.empty()) { - select_with_union_query->dumpTree(std::cerr); // We might have an arbitrarily complex UNION tree, so just give // up if the last first-order child is not a plain SELECT. // It is flattened later, when we process UNION ALL/DISTINCT. From 125eb0272674f7e086d73faecd7a8c9d4378b279 Mon Sep 17 00:00:00 2001 From: feng lv Date: Sat, 7 Nov 2020 11:38:20 +0000 Subject: [PATCH 084/425] nomalize ASTSelectWithUnionQuery --- .../InterpreterSelectWithUnionQuery.cpp | 25 +++- .../InterpreterSelectWithUnionQuery.h | 2 +- src/Parsers/ASTSelectWithUnionQuery.cpp | 25 ++-- src/Parsers/ASTSelectWithUnionQuery.h | 4 +- src/Parsers/ExpressionListParsers.cpp | 2 +- src/Parsers/ExpressionListParsers.h | 2 +- src/Parsers/ParserSelectWithUnionQuery.cpp | 116 +++++++++++++++- ...t_and_setting_union_default_mode.reference | 23 ---- ..._explain_select_with_union_query.reference | 126 ++++++++++++++++++ .../01556_explain_select_with_union_query.sql | 13 ++ 10 files changed, 284 insertions(+), 54 deletions(-) create mode 100644 tests/queries/0_stateless/01556_explain_select_with_union_query.reference create mode 100644 tests/queries/0_stateless/01556_explain_select_with_union_query.sql diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp index 7cc0e890fc2..976dcaddd9c 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp @@ -170,6 +170,7 @@ Block InterpreterSelectWithUnionQuery::getSampleBlock(const ASTPtr & query_ptr_, return cache[key] = InterpreterSelectWithUnionQuery(query_ptr_, context_, SelectQueryOptions().analyze()).getSampleBlock(); } +#if 0 size_t InterpreterSelectWithUnionQuery::optimizeUnionList() { auto union_distinct_num = 0; @@ -213,10 +214,11 @@ size_t InterpreterSelectWithUnionQuery::optimizeUnionList() } return union_distinct_num; } +#endif void InterpreterSelectWithUnionQuery::buildQueryPlan(QueryPlan & query_plan) { - auto num_distinct_union = optimizeUnionList(); + // auto num_distinct_union = optimizeUnionList(); size_t num_plans = nested_interpreters.size(); /// Skip union for single interpreter. @@ -227,8 +229,8 @@ void InterpreterSelectWithUnionQuery::buildQueryPlan(QueryPlan & query_plan) } /// All UNION streams in the chain does not need to do DISTINCT transform - if (num_distinct_union == 0) - { + // if (num_distinct_union == 0) + // { std::vector> plans(num_plans); DataStreams data_streams(num_plans); @@ -243,9 +245,23 @@ void InterpreterSelectWithUnionQuery::buildQueryPlan(QueryPlan & query_plan) auto union_step = std::make_unique(std::move(data_streams), result_header, max_threads); query_plan.unitePlans(std::move(union_step), std::move(plans)); - } + + const auto & query = query_ptr->as(); + if (query.union_mode == ASTSelectWithUnionQuery::Mode::DISTINCT) + { + /// Add distinct transform + const Settings & settings = context->getSettingsRef(); + SizeLimits limits(settings.max_rows_in_distinct, settings.max_bytes_in_distinct, settings.distinct_overflow_mode); + + auto distinct_step + = std::make_unique(query_plan.getCurrentDataStream(), limits, 0, result_header.getNames(), false); + + query_plan.addStep(std::move(distinct_step)); + } + // } /// The first union_distinct_num UNION streams need to do a DISTINCT transform after unite +#if 0 else { QueryPlan distinct_query_plan; @@ -298,6 +314,7 @@ void InterpreterSelectWithUnionQuery::buildQueryPlan(QueryPlan & query_plan) auto final_union_step = std::make_unique(std::move(final_data_streams), result_header, max_threads); query_plan.unitePlans(std::move(final_union_step), std::move(final_plans)); } +#endif } BlockIO InterpreterSelectWithUnionQuery::execute() diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.h b/src/Interpreters/InterpreterSelectWithUnionQuery.h index 06d31c92a67..9a3035f117c 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.h +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.h @@ -49,7 +49,7 @@ private: std::unique_ptr buildCurrentChildInterpreter(const ASTPtr & ast_ptr_, const Names & current_required_result_column_names); - size_t optimizeUnionList(); + // size_t optimizeUnionList(); }; } diff --git a/src/Parsers/ASTSelectWithUnionQuery.cpp b/src/Parsers/ASTSelectWithUnionQuery.cpp index 639c8ec1b6e..610c82ee03a 100644 --- a/src/Parsers/ASTSelectWithUnionQuery.cpp +++ b/src/Parsers/ASTSelectWithUnionQuery.cpp @@ -14,7 +14,7 @@ ASTPtr ASTSelectWithUnionQuery::clone() const res->list_of_selects = list_of_selects->clone(); res->children.push_back(res->list_of_selects); - res->union_modes = union_modes; + res->union_mode = union_mode; cloneOutputOptions(*res); return res; @@ -38,24 +38,15 @@ void ASTSelectWithUnionQuery::formatQueryImpl(const FormatSettings & settings, F for (ASTs::const_iterator it = list_of_selects->children.begin(); it != list_of_selects->children.end(); ++it) { if (it != list_of_selects->children.begin()) - settings.ostr << settings.nl_or_ws << indent_str << (settings.hilite ? hilite_keyword : "") << "UNION " - << mode_to_str(union_modes[it - list_of_selects->children.begin() - 1]) << (settings.hilite ? hilite_none : ""); + settings.ostr + << settings.nl_or_ws << indent_str << (settings.hilite ? hilite_keyword : "") + << "UNION " + << mode_to_str(union_mode) << (settings.hilite ? hilite_none : ""); if (auto * node = (*it)->as()) { - // just one child in subquery, () is not need - if (node->list_of_selects->children.size() == 1) - { - if (it != list_of_selects->children.begin()) - settings.ostr << settings.nl_or_ws; - node->list_of_selects->children.at(0)->formatImpl(settings, state, frame); - } - // more than one child in subquery - else - { - auto sub_query = std::make_shared(); - sub_query->children.push_back(*it); - sub_query->formatImpl(settings, state, frame); - } + auto sub_query = std::make_shared(); + sub_query->children.push_back(*it); + sub_query->formatImpl(settings, state, frame); } else { diff --git a/src/Parsers/ASTSelectWithUnionQuery.h b/src/Parsers/ASTSelectWithUnionQuery.h index 5600dd4b43a..fd5eeae2d7a 100644 --- a/src/Parsers/ASTSelectWithUnionQuery.h +++ b/src/Parsers/ASTSelectWithUnionQuery.h @@ -23,9 +23,9 @@ public: DISTINCT }; - using Modes = std::vector; + using UnionModes = std::vector; - Modes union_modes; + Mode union_mode; ASTPtr list_of_selects; }; diff --git a/src/Parsers/ExpressionListParsers.cpp b/src/Parsers/ExpressionListParsers.cpp index 1cc72f5fb8b..4eecc9754bf 100644 --- a/src/Parsers/ExpressionListParsers.cpp +++ b/src/Parsers/ExpressionListParsers.cpp @@ -128,7 +128,7 @@ bool ParserUnionList::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) } // SELECT ... UNION SELECT ... else - union_modes.push_back(ASTSelectWithUnionQuery::Mode::Unspecified); + union_modes.push_back(ASTSelectWithUnionQuery::Mode::DISTINCT); return true; } return false; diff --git a/src/Parsers/ExpressionListParsers.h b/src/Parsers/ExpressionListParsers.h index d93952923a9..a239676b7e2 100644 --- a/src/Parsers/ExpressionListParsers.h +++ b/src/Parsers/ExpressionListParsers.h @@ -119,7 +119,7 @@ private: ParserPtr s_union_parser; ParserPtr s_all_parser; ParserPtr s_distinct_parser; - ASTSelectWithUnionQuery::Modes union_modes; + ASTSelectWithUnionQuery::UnionModes union_modes; }; /** An expression with an infix binary left-associative operator. diff --git a/src/Parsers/ParserSelectWithUnionQuery.cpp b/src/Parsers/ParserSelectWithUnionQuery.cpp index db586867db0..49f5aa719e5 100644 --- a/src/Parsers/ParserSelectWithUnionQuery.cpp +++ b/src/Parsers/ParserSelectWithUnionQuery.cpp @@ -6,6 +6,84 @@ namespace DB { +static void getSelectsFromUnionListNode(ASTPtr & ast_select, ASTs & selects) +{ + if (auto * inner_union = ast_select->as()) + { + /// We need flatten from last to first + for (auto child = inner_union->list_of_selects->children.rbegin(); child != inner_union->list_of_selects->children.rend(); ++child) + getSelectsFromUnionListNode(*child, selects); + + return; + } + + selects.push_back(std::move(ast_select)); +} + +void normalizeSelectList(ASTs & select_list, const ASTSelectWithUnionQuery::UnionModes & union_modes, ASTs & selects) +{ + int i; + for (i = union_modes.size() - 1; i >= 0; --i) + { + if (union_modes[i] == ASTSelectWithUnionQuery::Mode::ALL) + { + if (auto * inner_union = select_list[i + 1]->as()) + { + /// If inner_union is an UNION ALL list, just lift up + if (inner_union->union_mode == ASTSelectWithUnionQuery::Mode::ALL) + { + for (auto child = inner_union->list_of_selects->children.rbegin(); + child != inner_union->list_of_selects->children.rend(); + ++child) + selects.push_back(std::move(*child)); + } + /// inner_union is an UNION DISTINCT list, + // we cann't lift up + else + selects.push_back(std::move(select_list[i + 1])); + } + else + selects.push_back(std::move(select_list[i + 1])); + } + /// flatten all left nodes and current node to a UNION DISTINCT list + else if (union_modes[i] == ASTSelectWithUnionQuery::Mode::DISTINCT) + { + auto distinct_list = std::make_shared(); + distinct_list->list_of_selects = std::make_shared(); + distinct_list->children.push_back(distinct_list->list_of_selects); + for (int j = i + 1; j >= 0; j--) + { + getSelectsFromUnionListNode(select_list[j], distinct_list->list_of_selects->children); + } + distinct_list->union_mode = ASTSelectWithUnionQuery::Mode::DISTINCT; + // Reverse children list + std::reverse(distinct_list->list_of_selects->children.begin(), distinct_list->list_of_selects->children.end()); + selects.push_back(std::move(distinct_list)); + return; + } + } + /// No UNION DISTINCT or only one SELECT in select_list + if (i == -1) + { + if (auto * inner_union = select_list[0]->as()) + { + /// If inner_union is an UNION ALL list, just lift it up + if (inner_union->union_mode == ASTSelectWithUnionQuery::Mode::ALL) + { + for (auto child = inner_union->list_of_selects->children.rbegin(); + child != inner_union->list_of_selects->children.rend(); + ++child) + selects.push_back(std::move(*child)); + } + /// inner_union is an UNION DISTINCT list, + // we cann't lift it up + else + selects.push_back(std::move(select_list[i + 1])); + } + else + selects.push_back(std::move(select_list[0])); + } +} bool ParserSelectWithUnionQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) { @@ -20,16 +98,44 @@ bool ParserSelectWithUnionQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & if (!parser.parse(pos, list_node, expected)) return false; + /// NOTE: We cann't simply flatten inner union query now, since we may have different union mode in query, + /// so flatten may change it's semantics. For example: + /// flatten `SELECT 1 UNION (SELECT 1 UNION ALL SELETC 1)` -> `SELECT 1 UNION SELECT 1 UNION ALL SELECT 1` + + /// Before normalize, if we got only one child which is ASTSelectWithUnionQuery, just lift it up + auto & expr_list = list_node->as(); + if (expr_list.children.size() == 1) + { + if (expr_list.children.at(0)->as()) + { + node = std::move(expr_list.children.at(0)); + return true; + } + } + auto select_with_union_query = std::make_shared(); node = select_with_union_query; - select_with_union_query->list_of_selects = list_node; + select_with_union_query->list_of_selects = std::make_shared(); select_with_union_query->children.push_back(select_with_union_query->list_of_selects); - select_with_union_query->union_modes = parser.getUnionModes(); - /// NOTE: We cann't flatten inner union query now, since we may have different union mode in query, - /// so flatten may change it's semantics. For example: - /// flatten `SELECT 1 UNION (SELECT 1 UNION ALL SELETC 1)` -> `SELECT 1 UNION SELECT 1 UNION ALL SELECT 1` + auto union_modes = parser.getUnionModes(); + + normalizeSelectList(expr_list.children, union_modes, select_with_union_query->list_of_selects->children); + /// We need reverse children list + std::reverse(select_with_union_query->list_of_selects->children.begin(), select_with_union_query->list_of_selects->children.end()); + + select_with_union_query->union_mode = ASTSelectWithUnionQuery::Mode::ALL; + + /// After normalize, if we only have one ASTSelectWithUnionQuery child, lift if up + if (select_with_union_query->list_of_selects->children.size() == 1) + { + if (select_with_union_query->list_of_selects->children.at(0)->as()) + { + node = std::move(select_with_union_query->list_of_selects->children.at(0)); + } + } + return true; } diff --git a/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.reference b/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.reference index f9f3ee818e9..ff0086583fa 100644 --- a/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.reference +++ b/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.reference @@ -44,16 +44,6 @@ all 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -all all all 1 @@ -77,16 +67,3 @@ all 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 diff --git a/tests/queries/0_stateless/01556_explain_select_with_union_query.reference b/tests/queries/0_stateless/01556_explain_select_with_union_query.reference new file mode 100644 index 00000000000..c1b07cedd05 --- /dev/null +++ b/tests/queries/0_stateless/01556_explain_select_with_union_query.reference @@ -0,0 +1,126 @@ +Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) +Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) +Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) +Distinct + Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) +Distinct + Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) +Distinct + Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) +Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Distinct + Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Distinct + Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) +Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) +Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) +Distinct + Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) diff --git a/tests/queries/0_stateless/01556_explain_select_with_union_query.sql b/tests/queries/0_stateless/01556_explain_select_with_union_query.sql new file mode 100644 index 00000000000..abb7f602af5 --- /dev/null +++ b/tests/queries/0_stateless/01556_explain_select_with_union_query.sql @@ -0,0 +1,13 @@ +EXPLAIN SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1; +EXPLAIN (SELECT 1 UNION ALL SELECT 1) UNION ALL SELECT 1; +EXPLAIN SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1); + +EXPLAIN SELECT 1 UNION DISTINCT SELECT 1 UNION DISTINCT SELECT 1; +EXPLAIN (SELECT 1 UNION DISTINCT SELECT 1) UNION DISTINCT SELECT 1; +EXPLAIN SELECT 1 UNION DISTINCT (SELECT 1 UNION DISTINCT SELECT 1); + +EXPLAIN (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1 UNION DISTINCT SELECT 1))) UNION ALL (((SELECT 1) UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1 ) UNION DISTINCT SELECT 1)))); + +EXPLAIN (((((((((((((((SELECT 1 UNION ALL SELECT 1) UNION ALL SELECT 1)))))))))))))); +EXPLAIN (((((((((((((((((((((((((((((SELECT 1 UNION ALL SELECT 1))))))))))))))))))))))))))))); +EXPLAIN (((((((((((((((((((((((((((((SELECT 1 UNION DISTINCT SELECT 1))))))))))))))))))))))))))))); From a67f5b780f0582f88951bbd38e9f884ab874bbd7 Mon Sep 17 00:00:00 2001 From: vdimir Date: Sun, 8 Nov 2020 19:01:12 +0300 Subject: [PATCH 085/425] Use sorted ip array instead of trie in TrieDictionary --- programs/server/config.xml | 2 +- src/Common/IPv6ToBinary.cpp | 27 ++ src/Common/IPv6ToBinary.h | 5 + src/Dictionaries/TrieDictionary.cpp | 274 ++++++++---------- src/Dictionaries/TrieDictionary.h | 37 ++- .../01018_ddl_dictionaries_special.reference | 5 + .../01018_ddl_dictionaries_special.sql | 8 +- 7 files changed, 200 insertions(+), 158 deletions(-) diff --git a/programs/server/config.xml b/programs/server/config.xml index e17b59671af..a03270aa7b9 100644 --- a/programs/server/config.xml +++ b/programs/server/config.xml @@ -675,7 +675,7 @@ *_dictionary.xml diff --git a/src/Common/IPv6ToBinary.cpp b/src/Common/IPv6ToBinary.cpp index bfa6992de9e..00c1b520a7a 100644 --- a/src/Common/IPv6ToBinary.cpp +++ b/src/Common/IPv6ToBinary.cpp @@ -1,5 +1,7 @@ #include "IPv6ToBinary.h" #include +#include + #include @@ -28,4 +30,29 @@ std::array IPv6ToBinary(const Poco::Net::IPAddress & address) return res; } + +UInt32 IPv4ToBinary(const Poco::Net::IPAddress & address, bool & success) +{ + if (!address.isIPv4Mapped()) + { + success = false; + return 0; + } + + success = true; + if (Poco::Net::IPAddress::IPv6 == address.family()) + { + auto raw = reinterpret_cast(address.addr()); + return *reinterpret_cast(&raw[12]); + } + else if (Poco::Net::IPAddress::IPv4 == address.family()) + { + auto raw = reinterpret_cast(address.addr()); + return *reinterpret_cast(raw); + } + + success = false; + return 0; +} + } diff --git a/src/Common/IPv6ToBinary.h b/src/Common/IPv6ToBinary.h index e95dfa10223..4f2cdd0ea21 100644 --- a/src/Common/IPv6ToBinary.h +++ b/src/Common/IPv6ToBinary.h @@ -1,5 +1,6 @@ #pragma once #include +#include namespace Poco { namespace Net { class IPAddress; }} @@ -9,4 +10,8 @@ namespace DB /// Convert IP address to 16-byte array with IPv6 data (big endian). If it's an IPv4, map it to IPv6. std::array IPv6ToBinary(const Poco::Net::IPAddress & address); +/// Convert IP address to UInt32 (big endian) if it's IPv4 or IPv4 mapped to IPv6. +/// Sets success variable to true if succeed. +UInt32 IPv4ToBinary(const Poco::Net::IPAddress & address, bool & success); + } diff --git a/src/Dictionaries/TrieDictionary.cpp b/src/Dictionaries/TrieDictionary.cpp index d8267047b92..a2e2bcf0bd8 100644 --- a/src/Dictionaries/TrieDictionary.cpp +++ b/src/Dictionaries/TrieDictionary.cpp @@ -3,11 +3,11 @@ #include #include #include +#include #include #include #include #include -#include #include #include #include @@ -15,14 +15,6 @@ #include "DictionaryBlockInputStream.h" #include "DictionaryFactory.h" -#ifdef __clang__ - #pragma clang diagnostic ignored "-Wold-style-cast" - #pragma clang diagnostic ignored "-Wnewline-eof" -#endif - -#include - - namespace DB { namespace ErrorCodes @@ -31,7 +23,6 @@ namespace ErrorCodes extern const int TYPE_MISMATCH; extern const int BAD_ARGUMENTS; extern const int DICTIONARY_IS_EMPTY; - extern const int NOT_IMPLEMENTED; } static void validateKeyTypes(const DataTypes & key_types) @@ -45,6 +36,18 @@ static void validateKeyTypes(const DataTypes & key_types) throw Exception{"Key does not match, expected either UInt32 or FixedString(16)", ErrorCodes::TYPE_MISMATCH}; } +/// Create IPAddress from 16 byte array converting to ipv4 if possible +static Poco::Net::IPAddress ip4or6fromBytes(const uint8_t * data) +{ + Poco::Net::IPAddress ipaddr(reinterpret_cast(data), IPV6_BINARY_LENGTH); + + // try to consider as ipv4 + bool is_v4 = false; + if (auto addr_v4 = IPv4ToBinary(ipaddr, is_v4); is_v4) + return Poco::Net::IPAddress(reinterpret_cast(&addr_v4), IPV4_BINARY_LENGTH); + + return ipaddr; +} TrieDictionary::TrieDictionary( const StorageID & dict_id_, @@ -57,17 +60,16 @@ TrieDictionary::TrieDictionary( , source_ptr{std::move(source_ptr_)} , dict_lifetime(dict_lifetime_) , require_nonempty(require_nonempty_) + , total_ip_length(0) , logger(&Poco::Logger::get("TrieDictionary")) { createAttributes(); - trie = btrie_create(); loadData(); calculateBytesAllocated(); } TrieDictionary::~TrieDictionary() { - btrie_destroy(trie); } #define DECLARE(TYPE) \ @@ -305,7 +307,8 @@ void TrieDictionary::loadData() /// created upfront to avoid excess allocations const auto keys_size = dict_struct.key->size(); - StringRefs keys(keys_size); + + ip_records.reserve(keys_size); const auto attributes_size = attributes.size(); @@ -331,11 +334,42 @@ void TrieDictionary::loadData() { const auto & attribute_column = *attribute_column_ptrs[attribute_idx]; auto & attribute = attributes[attribute_idx]; - setAttributeValue(attribute, key_column->getDataAt(row_idx), attribute_column[row_idx]); + + setAttributeValue(attribute, attribute_column[row_idx]); } + + size_t row_number = ip_records.size(); + + std::string addr_str(key_column->getDataAt(row_idx).toString()); + size_t pos = addr_str.find('/'); + if (pos != std::string::npos) + { + IPAddress addr(addr_str.substr(0, pos)); + UInt8 prefix = std::stoi(addr_str.substr(pos + 1), nullptr, 10); + addr = addr & IPAddress(prefix, addr.family()); + ip_records.emplace_back(IPRecord{addr, prefix, row_number}); + } + else + { + IPAddress addr(addr_str); + UInt8 prefix = addr.length() * 8; + ip_records.emplace_back(IPRecord{addr, prefix, row_number}); + } + total_ip_length += ip_records.back().addr.length(); } } + LOG_TRACE(logger, "{} ip records are read", ip_records.size()); + + std::sort(ip_records.begin(), ip_records.end(), [](const auto & a, const auto & b) + { + if (a.addr.family() != b.addr.family()) + return a.addr.family() < b.addr.family(); + if (a.addr == b.addr) + return a.prefix > b.prefix; + return a.addr < b.addr; + }); + stream->readSuffix(); if (require_nonempty && 0 == element_count) @@ -352,6 +386,8 @@ void TrieDictionary::addAttributeSize(const Attribute & attribute) void TrieDictionary::calculateBytesAllocated() { + bytes_allocated += ip_records.size() * sizeof(ip_records.front()); + bytes_allocated += total_ip_length; bytes_allocated += attributes.size() * sizeof(attributes.front()); for (const auto & attribute : attributes) @@ -411,8 +447,6 @@ void TrieDictionary::calculateBytesAllocated() } } } - - bytes_allocated += btrie_allocated(trie); } @@ -494,16 +528,15 @@ void TrieDictionary::getItemsImpl( const auto first_column = key_columns.front(); const auto rows = first_column->size(); + if (first_column->isNumeric()) { for (const auto i : ext::range(0, rows)) { - auto addr = Int32(first_column->get64(i)); - uintptr_t slot = btrie_find(trie, addr); -#pragma GCC diagnostic push -#pragma GCC diagnostic warning "-Wold-style-cast" - set_value(i, slot != BTRIE_NULL ? static_cast(vec[slot]) : get_default(i)); -#pragma GCC diagnostic pop + auto addr = Poco::ByteOrder::toNetwork(UInt32(first_column->get64(i))); + auto ipaddr = IPAddress(reinterpret_cast(&addr), IPV4_BINARY_LENGTH); + auto found = lookupIPRecord(ipaddr); + set_value(i, (found != ipRecordNotFound()) ? static_cast(vec[found->row]) : get_default(i)); } } else @@ -511,107 +544,66 @@ void TrieDictionary::getItemsImpl( for (const auto i : ext::range(0, rows)) { auto addr = first_column->getDataAt(i); - if (addr.size != 16) + if (addr.size != IPV6_BINARY_LENGTH) throw Exception("Expected key to be FixedString(16)", ErrorCodes::LOGICAL_ERROR); - uintptr_t slot = btrie_find_a6(trie, reinterpret_cast(addr.data)); -#pragma GCC diagnostic push -#pragma GCC diagnostic warning "-Wold-style-cast" - set_value(i, slot != BTRIE_NULL ? static_cast(vec[slot]) : get_default(i)); -#pragma GCC diagnostic pop + auto ipaddr = ip4or6fromBytes(reinterpret_cast(addr.data)); + auto found = lookupIPRecord(ipaddr); + set_value(i, (found != ipRecordNotFound()) ? static_cast(vec[found->row]) : get_default(i)); } } query_count.fetch_add(rows, std::memory_order_relaxed); } - template -bool TrieDictionary::setAttributeValueImpl(Attribute & attribute, const StringRef key, const T value) +void TrieDictionary::setAttributeValueImpl(Attribute & attribute, const T value) { - // Insert value into appropriate vector type auto & vec = std::get>(attribute.maps); - size_t row = vec.size(); vec.push_back(value); - - // Parse IP address and subnet length from string (e.g. 2a02:6b8::3/64) - Poco::Net::IPAddress addr, mask; - std::string addr_str(key.toString()); - size_t pos = addr_str.find('/'); - if (pos != std::string::npos) - { - addr = Poco::Net::IPAddress(addr_str.substr(0, pos)); - mask = Poco::Net::IPAddress(std::stoi(addr_str.substr(pos + 1), nullptr, 10), addr.family()); - } - else - { - addr = Poco::Net::IPAddress(addr_str); - mask = Poco::Net::IPAddress(addr.length() * 8, addr.family()); - } - - /* - * Here we might overwrite the same key with the same slot as each key can map to multiple attributes. - * However, all columns have equal number of rows so it is okay to store only row number for each key - * instead of building a trie for each column. This comes at the cost of additional lookup in attribute - * vector on lookup time to return cell from row + column. The reason for this is to save space, - * and build only single trie instead of trie for each column. - */ - if (addr.family() == Poco::Net::IPAddress::IPv4) - { - UInt32 addr_v4 = Poco::ByteOrder::toNetwork(*reinterpret_cast(addr.addr())); - UInt32 mask_v4 = Poco::ByteOrder::toNetwork(*reinterpret_cast(mask.addr())); - return btrie_insert(trie, addr_v4, mask_v4, row) == 0; - } - - const uint8_t * addr_v6 = reinterpret_cast(addr.addr()); - const uint8_t * mask_v6 = reinterpret_cast(mask.addr()); - return btrie_insert_a6(trie, addr_v6, mask_v6, row) == 0; } -bool TrieDictionary::setAttributeValue(Attribute & attribute, const StringRef key, const Field & value) +void TrieDictionary::setAttributeValue(Attribute & attribute, const Field & value) { switch (attribute.type) { case AttributeUnderlyingType::utUInt8: - return setAttributeValueImpl(attribute, key, value.get()); + return setAttributeValueImpl(attribute, value.get()); case AttributeUnderlyingType::utUInt16: - return setAttributeValueImpl(attribute, key, value.get()); + return setAttributeValueImpl(attribute, value.get()); case AttributeUnderlyingType::utUInt32: - return setAttributeValueImpl(attribute, key, value.get()); + return setAttributeValueImpl(attribute, value.get()); case AttributeUnderlyingType::utUInt64: - return setAttributeValueImpl(attribute, key, value.get()); + return setAttributeValueImpl(attribute, value.get()); case AttributeUnderlyingType::utUInt128: - return setAttributeValueImpl(attribute, key, value.get()); + return setAttributeValueImpl(attribute, value.get()); case AttributeUnderlyingType::utInt8: - return setAttributeValueImpl(attribute, key, value.get()); + return setAttributeValueImpl(attribute, value.get()); case AttributeUnderlyingType::utInt16: - return setAttributeValueImpl(attribute, key, value.get()); + return setAttributeValueImpl(attribute, value.get()); case AttributeUnderlyingType::utInt32: - return setAttributeValueImpl(attribute, key, value.get()); + return setAttributeValueImpl(attribute, value.get()); case AttributeUnderlyingType::utInt64: - return setAttributeValueImpl(attribute, key, value.get()); + return setAttributeValueImpl(attribute, value.get()); case AttributeUnderlyingType::utFloat32: - return setAttributeValueImpl(attribute, key, value.get()); + return setAttributeValueImpl(attribute, value.get()); case AttributeUnderlyingType::utFloat64: - return setAttributeValueImpl(attribute, key, value.get()); + return setAttributeValueImpl(attribute, value.get()); case AttributeUnderlyingType::utDecimal32: - return setAttributeValueImpl(attribute, key, value.get()); + return setAttributeValueImpl(attribute, value.get()); case AttributeUnderlyingType::utDecimal64: - return setAttributeValueImpl(attribute, key, value.get()); + return setAttributeValueImpl(attribute, value.get()); case AttributeUnderlyingType::utDecimal128: - return setAttributeValueImpl(attribute, key, value.get()); + return setAttributeValueImpl(attribute, value.get()); case AttributeUnderlyingType::utString: { const auto & string = value.get(); const auto * string_in_arena = attribute.string_arena->insert(string.data(), string.size()); - setAttributeValueImpl(attribute, key, StringRef{string_in_arena, string.size()}); - return true; + return setAttributeValueImpl(attribute, StringRef{string_in_arena, string.size()}); } } - - return {}; } const TrieDictionary::Attribute & TrieDictionary::getAttribute(const std::string & attribute_name) const @@ -633,11 +625,9 @@ void TrieDictionary::has(const Attribute &, const Columns & key_columns, PaddedP for (const auto i : ext::range(0, rows)) { auto addr = Int32(first_column->get64(i)); - uintptr_t slot = btrie_find(trie, addr); -#pragma GCC diagnostic push -#pragma GCC diagnostic warning "-Wold-style-cast" - out[i] = (slot != BTRIE_NULL); -#pragma GCC diagnostic pop + auto ipaddr = IPAddress(reinterpret_cast(&addr), IPV4_BINARY_LENGTH); + auto found = lookupIPRecord(ipaddr); + out[i] = (found != ipRecordNotFound()); } } else @@ -648,78 +638,27 @@ void TrieDictionary::has(const Attribute &, const Columns & key_columns, PaddedP if (unlikely(addr.size != 16)) throw Exception("Expected key to be FixedString(16)", ErrorCodes::LOGICAL_ERROR); - uintptr_t slot = btrie_find_a6(trie, reinterpret_cast(addr.data)); -#pragma GCC diagnostic push -#pragma GCC diagnostic warning "-Wold-style-cast" - out[i] = (slot != BTRIE_NULL); -#pragma GCC diagnostic pop + auto ipaddr = ip4or6fromBytes(reinterpret_cast(addr.data)); + auto found = lookupIPRecord(ipaddr); + out[i] = (found != ipRecordNotFound()); } } query_count.fetch_add(rows, std::memory_order_relaxed); } -template -static void trieTraverse(const btrie_t * trie, Getter && getter) -{ - KeyType key = 0; - const KeyType high_bit = ~((~key) >> 1); - - btrie_node_t * node; - node = trie->root; - - std::stack stack; - while (node) - { - stack.push(node); - node = node->left; - } - - auto get_bit = [&high_bit](size_t size) { return size ? (high_bit >> (size - 1)) : 0; }; - - while (!stack.empty()) - { - node = stack.top(); - stack.pop(); -#pragma GCC diagnostic push -#pragma GCC diagnostic warning "-Wold-style-cast" - if (node && node->value != BTRIE_NULL) -#pragma GCC diagnostic pop - getter(key, stack.size()); - - if (node && node->right) - { - stack.push(nullptr); - key |= get_bit(stack.size()); - stack.push(node->right); - while (stack.top()->left) - stack.push(stack.top()->left); - } - else - key &= ~get_bit(stack.size()); - } -} - Columns TrieDictionary::getKeyColumns() const { auto ip_column = ColumnFixedString::create(IPV6_BINARY_LENGTH); auto mask_column = ColumnVector::create(); -#if defined(__SIZEOF_INT128__) - auto getter = [&ip_column, &mask_column](__uint128_t ip, size_t mask) + for (const auto & record : ip_records) { - Poco::UInt64 * ip_array = reinterpret_cast(&ip); // Poco:: for old poco + macos - ip_array[0] = Poco::ByteOrder::fromNetwork(ip_array[0]); - ip_array[1] = Poco::ByteOrder::fromNetwork(ip_array[1]); - std::swap(ip_array[0], ip_array[1]); - ip_column->insertData(reinterpret_cast(ip_array), IPV6_BINARY_LENGTH); - mask_column->insertValue(static_cast(mask)); - }; + auto ip_array = IPv6ToBinary(record.addr); + ip_column->insertData(ip_array.data(), IPV6_BINARY_LENGTH); + mask_column->insertValue(record.prefix); + } - trieTraverse(trie, std::move(getter)); -#else - throw Exception("TrieDictionary::getKeyColumns is not implemented for 32bit arch", ErrorCodes::NOT_IMPLEMENTED); -#endif return {std::move(ip_column), std::move(mask_column)}; } @@ -755,6 +694,45 @@ BlockInputStreamPtr TrieDictionary::getBlockInputStream(const Names & column_nam shared_from_this(), max_block_size, getKeyColumns(), column_names, std::move(get_keys), std::move(get_view)); } +int TrieDictionary::matchIPAddrWithRecord(const IPAddress & ipaddr, const IPRecord & record) const +{ + if (ipaddr.family() != record.addr.family()) + return ipaddr.family() < record.addr.family() ? -1 : 1; + + auto masked_ipaddr = ipaddr & IPAddress(record.prefix, record.addr.family()); + if (masked_ipaddr < record.addr) + return -1; + if (masked_ipaddr == record.addr) + return 0; + return 1; +} + +TrieDictionary::IPRecordConstIt TrieDictionary::ipRecordNotFound() const +{ + return ip_records.end(); +} + +TrieDictionary::IPRecordConstIt TrieDictionary::lookupIPRecord(const IPAddress & target) const +{ + if (ip_records.empty()) + return ipRecordNotFound(); + + auto comp = [&](const IPAddress & needle, const IPRecord & record) -> bool + { + return matchIPAddrWithRecord(needle, record) < 0; + }; + + auto next_it = std::upper_bound(ip_records.begin(), ip_records.end(), target, comp); + + if (next_it == ip_records.begin()) + return ipRecordNotFound(); + + auto found = next_it - 1; + if (matchIPAddrWithRecord(target, *found) == 0) + return found; + + return ipRecordNotFound(); +} void registerDictionaryTrie(DictionaryFactory & factory) { diff --git a/src/Dictionaries/TrieDictionary.h b/src/Dictionaries/TrieDictionary.h index 1849f161935..891dadd3be8 100644 --- a/src/Dictionaries/TrieDictionary.h +++ b/src/Dictionaries/TrieDictionary.h @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -14,9 +15,6 @@ #include "IDictionary.h" #include "IDictionarySource.h" -struct btrie_s; -typedef struct btrie_s btrie_t; - namespace DB { class TrieDictionary final : public IDictionaryBase @@ -150,9 +148,22 @@ public: BlockInputStreamPtr getBlockInputStream(const Names & column_names, size_t max_block_size) const override; private: + template using ContainerType = std::vector; + using IPAddress = Poco::Net::IPAddress; + + struct IPRecord; + using IPRecordConstIt = ContainerType::const_iterator; + + struct IPRecord final + { + IPAddress addr; + UInt8 prefix; + size_t row; + }; + struct Attribute final { AttributeUnderlyingType type; @@ -212,11 +223,10 @@ private: void getItemsImpl(const Attribute & attribute, const Columns & key_columns, ValueSetter && set_value, DefaultGetter && get_default) const; - template - bool setAttributeValueImpl(Attribute & attribute, const StringRef key, const T value); + void setAttributeValueImpl(Attribute & attribute, const T value); - bool setAttributeValue(Attribute & attribute, const StringRef key, const Field & value); + void setAttributeValue(Attribute & attribute, const Field & value); const Attribute & getAttribute(const std::string & attribute_name) const; @@ -225,14 +235,27 @@ private: Columns getKeyColumns() const; + /** + * Compare ip addresses. + * + * @return negative value if ipaddr less than address in record + * @return zero if ipaddr in record subnet + * @return positive value if ipaddr greater than address in record + */ + int matchIPAddrWithRecord(const IPAddress & ipaddr, const IPRecord & record) const; + + IPRecordConstIt ipRecordNotFound() const; + IPRecordConstIt lookupIPRecord(const IPAddress & target) const; + const DictionaryStructure dict_struct; const DictionarySourcePtr source_ptr; const DictionaryLifetime dict_lifetime; const bool require_nonempty; const std::string key_description{dict_struct.getKeyDescription()}; + ContainerType ip_records; + size_t total_ip_length; - btrie_t * trie = nullptr; std::map attribute_index_by_name; std::vector attributes; diff --git a/tests/queries/0_stateless/01018_ddl_dictionaries_special.reference b/tests/queries/0_stateless/01018_ddl_dictionaries_special.reference index c6c6993faa8..a6332b85f4e 100644 --- a/tests/queries/0_stateless/01018_ddl_dictionaries_special.reference +++ b/tests/queries/0_stateless/01018_ddl_dictionaries_special.reference @@ -10,6 +10,11 @@ 0 ***ip trie dict*** 17501 +17501 +17502 +0 +11211 +11211 NP ***hierarchy dict*** Moscow diff --git a/tests/queries/0_stateless/01018_ddl_dictionaries_special.sql b/tests/queries/0_stateless/01018_ddl_dictionaries_special.sql index ede5897bdf7..6c4a325a3b5 100644 --- a/tests/queries/0_stateless/01018_ddl_dictionaries_special.sql +++ b/tests/queries/0_stateless/01018_ddl_dictionaries_special.sql @@ -82,8 +82,7 @@ CREATE TABLE database_for_dict.table_ip_trie ) engine = TinyLog; -INSERT INTO database_for_dict.table_ip_trie VALUES ('202.79.32.0/20', 17501, 'NP'), ('2620:0:870::/48', 3856, 'US'), ('2a02:6b8:1::/48', 13238, 'RU'), ('2001:db8::/32', 65536, 'ZZ'); - +INSERT INTO database_for_dict.table_ip_trie VALUES ('202.79.32.0/20', 17501, 'NP'), ('202.79.32.2', 17502, 'NP'), ('101.79.55.22', 11211, 'UK'), ('2620:0:870::/48', 3856, 'US'), ('2a02:6b8:1::/48', 13238, 'RU'), ('2001:db8::/32', 65536, 'ZZ'); CREATE DICTIONARY database_for_dict.dict_ip_trie ( @@ -97,6 +96,11 @@ LAYOUT(IP_TRIE()) LIFETIME(MIN 10 MAX 100); SELECT dictGetUInt32('database_for_dict.dict_ip_trie', 'asn', tuple(IPv4StringToNum('202.79.32.0'))); +SELECT dictGetUInt32('database_for_dict.dict_ip_trie', 'asn', tuple(IPv4StringToNum('202.79.32.1'))); +SELECT dictGetUInt32('database_for_dict.dict_ip_trie', 'asn', tuple(IPv4StringToNum('202.79.32.2'))); +SELECT dictHas('database_for_dict.dict_ip_trie', tuple(IPv6StringToNum('654f:3716::'))); +SELECT dictGetUInt32('database_for_dict.dict_ip_trie', 'asn', tuple(IPv6StringToNum('::ffff:654f:3716'))); +SELECT dictGetUInt32('database_for_dict.dict_ip_trie', 'asn', tuple(IPv6StringToNum('::ffff:101.79.55.22'))); SELECT dictGetString('database_for_dict.dict_ip_trie', 'cca2', tuple(IPv4StringToNum('202.79.32.0'))); SELECT '***hierarchy dict***'; From 81671ceb39c0d4bfedb1a36c298499aad345dd1c Mon Sep 17 00:00:00 2001 From: vdimir Date: Sun, 8 Nov 2020 21:32:22 +0300 Subject: [PATCH 086/425] Add tests/performance/ip_trie.xml [wip] --- tests/performance/ip_trie.xml | 66 +++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 tests/performance/ip_trie.xml diff --git a/tests/performance/ip_trie.xml b/tests/performance/ip_trie.xml new file mode 100644 index 00000000000..41b6ef99abb --- /dev/null +++ b/tests/performance/ip_trie.xml @@ -0,0 +1,66 @@ + + + CREATE TABLE table_ip_trie + ( + ip String, + val Float32 + ) ENGINE = TinyLog + + + + INSERT INTO table_ip_trie + SELECT + IPv4NumToString(ipv4) || '/' || toString(rand() % 32 + 1) as ip, + val + FROM generateRandom('ipv4 UInt32, val Float32', 0, 30, 30) + LIMIT 1000000 + + + + INSERT INTO table_ip_trie + SELECT + IPv6NumToString(ipv6) || '/' || toString(rand() % 128 + 1) as ip, + val + FROM generateRandom('ipv6 FixedString(16), val Float32', 0, 30, 30) + LIMIT 1000000 + + + + CREATE DICTIONARY dict_ip_trie + ( + ip String, + val Float32 + ) + PRIMARY KEY ip + SOURCE(CLICKHOUSE( + HOST 'localhost' + PORT 9000 + USER 'default' + DB 'default' + TABLE 'table_ip_trie')) + LAYOUT(IP_TRIE()) + LIFETIME(300) + + + + CREATE TABLE dict_ip_trie_table + ( + `id` String, + `val` Float32 + ) ENGINE = Dictionary(default.dict_ip_trie) + + + + SELECT dictGetFloat32('default.dict_ip_trie', 'value', tuple(rand32())) + FROM numbers(500000) + + + + SELECT dictGetFloat32('default.dict_ip_trie', 'value', tuple(randomFixedString(16))) + FROM numbers(500000) + + + DROP DICTIONARY IF EXISTS default.dict_ip_trie + DROP TABLE IF EXISTS table_ip_trie + DROP TABLE IF EXISTS dict_ip_trie_table + From c306902fdf2fe778dbe9d82063631814541855f6 Mon Sep 17 00:00:00 2001 From: vdimir Date: Sun, 8 Nov 2020 23:21:13 +0300 Subject: [PATCH 087/425] Fix ip subnet comparison --- src/Dictionaries/TrieDictionary.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Dictionaries/TrieDictionary.cpp b/src/Dictionaries/TrieDictionary.cpp index a2e2bcf0bd8..3fd87e42445 100644 --- a/src/Dictionaries/TrieDictionary.cpp +++ b/src/Dictionaries/TrieDictionary.cpp @@ -365,8 +365,10 @@ void TrieDictionary::loadData() { if (a.addr.family() != b.addr.family()) return a.addr.family() < b.addr.family(); + + // prefer IPs with more narrow subnet if (a.addr == b.addr) - return a.prefix > b.prefix; + return a.prefix < b.prefix; return a.addr < b.addr; }); From 13685e83dfb34ed4c2fbda76eb0dd88610783f12 Mon Sep 17 00:00:00 2001 From: vdimir Date: Sun, 8 Nov 2020 23:50:49 +0300 Subject: [PATCH 088/425] Exact ip records comparison for getBlockInputStream --- src/Dictionaries/TrieDictionary.cpp | 82 +++++++++++++++++++++++------ src/Dictionaries/TrieDictionary.h | 1 + 2 files changed, 66 insertions(+), 17 deletions(-) diff --git a/src/Dictionaries/TrieDictionary.cpp b/src/Dictionaries/TrieDictionary.cpp index 3fd87e42445..28769780027 100644 --- a/src/Dictionaries/TrieDictionary.cpp +++ b/src/Dictionaries/TrieDictionary.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -27,13 +28,23 @@ namespace ErrorCodes static void validateKeyTypes(const DataTypes & key_types) { - if (key_types.size() != 1) - throw Exception{"Expected a single IP address", ErrorCodes::TYPE_MISMATCH}; + if (key_types.size() < 1 && 2 < key_types.size()) + throw Exception{"Expected a single IP address or IP with mask", + ErrorCodes::TYPE_MISMATCH}; - const auto & actual_type = key_types[0]->getName(); + if (key_types.size() == 1) + { + const auto & actual_type = key_types[0]->getName(); + if (actual_type != "UInt32" && actual_type != "FixedString(16)") + throw Exception{"Key does not match, expected either UInt32 or FixedString(16)", ErrorCodes::TYPE_MISMATCH}; + return; + } - if (actual_type != "UInt32" && actual_type != "FixedString(16)") - throw Exception{"Key does not match, expected either UInt32 or FixedString(16)", ErrorCodes::TYPE_MISMATCH}; + const auto * ip_col_type = typeid_cast(key_types[0].get()); + const auto * mask_col_type = typeid_cast(key_types[1].get()); + bool type_ok = ip_col_type && mask_col_type && ip_col_type->getN() == IPV6_BINARY_LENGTH; + if (!type_ok) + throw Exception{"Keys do not match, {FixedString(16), UInt8}", ErrorCodes::TYPE_MISMATCH}; } /// Create IPAddress from 16 byte array converting to ipv4 if possible @@ -361,16 +372,7 @@ void TrieDictionary::loadData() LOG_TRACE(logger, "{} ip records are read", ip_records.size()); - std::sort(ip_records.begin(), ip_records.end(), [](const auto & a, const auto & b) - { - if (a.addr.family() != b.addr.family()) - return a.addr.family() < b.addr.family(); - - // prefer IPs with more narrow subnet - if (a.addr == b.addr) - return a.prefix < b.prefix; - return a.addr < b.addr; - }); + std::sort(ip_records.begin(), ip_records.end(), lessIPRecords); stream->readSuffix(); @@ -531,6 +533,39 @@ void TrieDictionary::getItemsImpl( const auto first_column = key_columns.front(); const auto rows = first_column->size(); + // special case for getBlockInputStream + if (unlikely(key_columns.size() == 2)) + { + const auto & ip_column = assert_cast(*key_columns.front()); + const auto & mask_column = assert_cast &>(*key_columns.back()); + + for (const auto i : ext::range(0, rows)) + { + const auto second_column = key_columns.back(); + + auto addr_data = ip_column.getDataAt(i).data; + auto ipaddr = ip4or6fromBytes(reinterpret_cast(addr_data)); + + UInt8 mask = mask_column.getElement(i); + + auto target = IPRecord{ipaddr, mask, 0}; + auto found_it = std::lower_bound(ip_records.begin(), ip_records.end(), target, lessIPRecords); + + if (likely(found_it != ip_records.end() && + found_it->addr == target.addr && + found_it->prefix == target.prefix)) + { + set_value(i, static_cast(vec[found_it->row])); + } + else + { + set_value(i, get_default(i)); + } + } + query_count.fetch_add(rows, std::memory_order_relaxed); + return; + } + if (first_column->isNumeric()) { for (const auto i : ext::range(0, rows)) @@ -671,8 +706,10 @@ BlockInputStreamPtr TrieDictionary::getBlockInputStream(const Names & column_nam auto get_keys = [](const Columns & columns, const std::vector & dict_attributes) { const auto & attr = dict_attributes.front(); - return ColumnsWithTypeAndName( - {ColumnWithTypeAndName(columns.front(), std::make_shared(IPV6_BINARY_LENGTH), attr.name)}); + return ColumnsWithTypeAndName({ + ColumnWithTypeAndName(columns.front(), std::make_shared(IPV6_BINARY_LENGTH), attr.name), + ColumnWithTypeAndName(columns.back(), std::make_shared(), attr.name + ".mask") + }); }; auto get_view = [](const Columns & columns, const std::vector & dict_attributes) { @@ -709,6 +746,17 @@ int TrieDictionary::matchIPAddrWithRecord(const IPAddress & ipaddr, const IPReco return 1; } +bool TrieDictionary::lessIPRecords(const IPRecord & a, const IPRecord & b) const +{ + if (a.addr.family() != b.addr.family()) + return a.addr.family() < b.addr.family(); + + // prefer IPs with more narrow subnet + if (a.addr == b.addr) + return a.prefix < b.prefix; + return a.addr < b.addr; +} + TrieDictionary::IPRecordConstIt TrieDictionary::ipRecordNotFound() const { return ip_records.end(); diff --git a/src/Dictionaries/TrieDictionary.h b/src/Dictionaries/TrieDictionary.h index 891dadd3be8..9fe304a786a 100644 --- a/src/Dictionaries/TrieDictionary.h +++ b/src/Dictionaries/TrieDictionary.h @@ -243,6 +243,7 @@ private: * @return positive value if ipaddr greater than address in record */ int matchIPAddrWithRecord(const IPAddress & ipaddr, const IPRecord & record) const; + bool lessIPRecords(const IPRecord & a, const IPRecord & b) const; IPRecordConstIt ipRecordNotFound() const; IPRecordConstIt lookupIPRecord(const IPAddress & target) const; From ad8eac492919915dac9219bd64cd6d69d4d3b792 Mon Sep 17 00:00:00 2001 From: hexiaoting Date: Mon, 9 Nov 2020 13:58:32 +0800 Subject: [PATCH 089/425] build error and style error fix --- src/Parsers/ASTColumnsTransformers.cpp | 10 +++++----- src/Parsers/ExpressionElementParsers.cpp | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Parsers/ASTColumnsTransformers.cpp b/src/Parsers/ASTColumnsTransformers.cpp index b28644383d1..7af9786bfdb 100644 --- a/src/Parsers/ASTColumnsTransformers.cpp +++ b/src/Parsers/ASTColumnsTransformers.cpp @@ -43,7 +43,7 @@ void ASTColumnsApplyTransformer::formatImpl(const FormatSettings & settings, For parameters->formatImpl(settings, state, frame); if (!column_name_prefix.empty()) - settings.ostr << ", '" << column_name_prefix << "')"; + settings.ostr << ", '" << column_name_prefix << "')"; } void ASTColumnsApplyTransformer::transform(ASTs & nodes) const @@ -214,12 +214,12 @@ void ASTColumnsReplaceTransformer::transform(ASTs & nodes) const if (is_strict && !replace_map.empty()) { - String expected_columns = ""; - for (auto it = replace_map.begin(); it != replace_map.end(); ++it) + String expected_columns; + for (auto & elem: replace_map) { - if (expected_columns != "") + if (!expected_columns.empty()) expected_columns += ", "; - expected_columns += it->first; + expected_columns += elem.first; } throw Exception( "Columns transformer REPLACE expects following column(s) : " + expected_columns, diff --git a/src/Parsers/ExpressionElementParsers.cpp b/src/Parsers/ExpressionElementParsers.cpp index 0a0fca53545..47fc1423d3e 100644 --- a/src/Parsers/ExpressionElementParsers.cpp +++ b/src/Parsers/ExpressionElementParsers.cpp @@ -1317,7 +1317,7 @@ bool ParserColumnsTransformers::parseImpl(Pos & pos, ASTPtr & node, Expected & e if (pos->type != TokenType::ClosingRoundBracket) return false; ++pos; - } + } auto res = std::make_shared(); res->func_name = getIdentifierName(func_name); From 5622882553ce92fc0abf6cd308c533e54b74a9dc Mon Sep 17 00:00:00 2001 From: hexiaoting Date: Mon, 9 Nov 2020 14:21:50 +0800 Subject: [PATCH 090/425] remove unused code --- src/Parsers/ASTColumnsTransformers.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Parsers/ASTColumnsTransformers.cpp b/src/Parsers/ASTColumnsTransformers.cpp index 7af9786bfdb..2d4d2304bd7 100644 --- a/src/Parsers/ASTColumnsTransformers.cpp +++ b/src/Parsers/ASTColumnsTransformers.cpp @@ -48,7 +48,6 @@ void ASTColumnsApplyTransformer::formatImpl(const FormatSettings & settings, For void ASTColumnsApplyTransformer::transform(ASTs & nodes) const { - std::cout << "\033[31m" << __FILE__ << ":"<<__LINE__ << "\033[39m" << std::endl; for (auto & column : nodes) { String name; From 2b240029c148e3bfdd1bf534217b54979f573146 Mon Sep 17 00:00:00 2001 From: hexiaoting Date: Mon, 9 Nov 2020 17:13:27 +0800 Subject: [PATCH 091/425] Add space for format Impl --- src/Parsers/ASTColumnsTransformers.cpp | 41 +++++++++++++------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/src/Parsers/ASTColumnsTransformers.cpp b/src/Parsers/ASTColumnsTransformers.cpp index 2d4d2304bd7..9ae32aa3f74 100644 --- a/src/Parsers/ASTColumnsTransformers.cpp +++ b/src/Parsers/ASTColumnsTransformers.cpp @@ -71,10 +71,10 @@ void ASTColumnsApplyTransformer::transform(ASTs & nodes) const void ASTColumnsExceptTransformer::formatImpl(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const { - settings.ostr << (settings.hilite ? hilite_keyword : "") << "EXCEPT" << (is_strict ? " STRICT " : "") << (settings.hilite ? hilite_none : ""); + settings.ostr << (settings.hilite ? hilite_keyword : "") << "EXCEPT" << (is_strict ? " STRICT " : " ") << (settings.hilite ? hilite_none : ""); if (children.size() > 1) - settings.ostr << " ("; + settings.ostr << "("; for (ASTs::const_iterator it = children.begin(); it != children.end(); ++it) { @@ -93,26 +93,25 @@ void ASTColumnsExceptTransformer::transform(ASTs & nodes) const { ASTs expected_columns(children); - nodes.erase( - std::remove_if( - nodes.begin(), - nodes.end(), - [&](const ASTPtr & node_child) + for (auto it = nodes.begin(); it != nodes.end();) + { + bool removed = false; + if (const auto * id = it->get()->as()) + { + for (int i = expected_columns.size() - 1; i >= 0; --i) { - if (const auto * id = node_child->as()) + if (expected_columns[i]->as().name() == id->shortName()) { - for (int i = expected_columns.size() - 1; i >= 0; --i) - { - if (expected_columns[i]->as().name() == id->shortName()) - { - expected_columns.erase(expected_columns.begin() + i); - return true; - } - } + removed = true; + expected_columns.erase(expected_columns.begin() + i); + it = nodes.erase(it); } - return false; - }), - nodes.end()); + } + } + + if (!removed) + ++it; + } if (is_strict && !expected_columns.empty()) { @@ -139,10 +138,10 @@ void ASTColumnsReplaceTransformer::Replacement::formatImpl( void ASTColumnsReplaceTransformer::formatImpl(const FormatSettings & settings, FormatState & state, FormatStateStacked frame) const { - settings.ostr << (settings.hilite ? hilite_keyword : "") << "REPLACE" << (is_strict ? " STRICT " : "") << (settings.hilite ? hilite_none : ""); + settings.ostr << (settings.hilite ? hilite_keyword : "") << "REPLACE" << (is_strict ? " STRICT " : " ") << (settings.hilite ? hilite_none : ""); if (children.size() > 1) - settings.ostr << " ("; + settings.ostr << "("; for (ASTs::const_iterator it = children.begin(); it != children.end(); ++it) { From 26229ed231fc2dcb3dc3e17265197574881d9fff Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Mon, 9 Nov 2020 18:07:38 +0300 Subject: [PATCH 092/425] tmp spans for threads (doesn't compile because of json metadata changes) --- src/Common/ThreadStatus.cpp | 1 + src/Common/ThreadStatus.h | 82 +++++++++-------- src/Core/Settings.h | 2 +- src/Formats/FormatSettings.h | 2 + src/Interpreters/InterpreterFactory.cpp | 3 + src/Interpreters/OpenTelemetrySpanLog.cpp | 92 +++++++++++++++++++ src/Interpreters/OpenTelemetrySpanLog.h | 10 ++ src/Interpreters/ThreadStatusExt.cpp | 29 ++++++ src/Interpreters/executeQuery.cpp | 6 +- src/Parsers/parseQuery.cpp | 2 + src/Processors/Executors/PipelineExecutor.cpp | 2 + src/Server/TCPHandler.cpp | 3 + 12 files changed, 195 insertions(+), 39 deletions(-) diff --git a/src/Common/ThreadStatus.cpp b/src/Common/ThreadStatus.cpp index f5ad28f57af..c7551d42dfe 100644 --- a/src/Common/ThreadStatus.cpp +++ b/src/Common/ThreadStatus.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include diff --git a/src/Common/ThreadStatus.h b/src/Common/ThreadStatus.h index 1b4d20e9721..934654cf385 100644 --- a/src/Common/ThreadStatus.h +++ b/src/Common/ThreadStatus.h @@ -31,6 +31,7 @@ class ThreadStatus; class QueryProfilerReal; class QueryProfilerCpu; class QueryThreadLog; +struct OpenTelemetrySpanHolder; class TasksStatsCounters; struct RUsageCounters; struct PerfEventsCounters; @@ -86,9 +87,6 @@ extern thread_local ThreadStatus * current_thread; class ThreadStatus : public boost::noncopyable { public: - ThreadStatus(); - ~ThreadStatus(); - /// Linux's PID (or TGID) (the same id is shown by ps util) const UInt64 thread_id = 0; /// Also called "nice" value. If it was changed to non-zero (when attaching query) - will be reset to zero when query is detached. @@ -110,6 +108,50 @@ public: using Deleter = std::function; Deleter deleter; + __uint128_t opentelemetry_trace_id; + UInt64 opentelemetry_current_span_id; + std::unique_ptr opentelemetry_thread_span; + +protected: + ThreadGroupStatusPtr thread_group; + + std::atomic thread_state{ThreadState::DetachedFromQuery}; + + /// Is set once + Context * global_context = nullptr; + /// Use it only from current thread + Context * query_context = nullptr; + + String query_id; + + /// A logs queue used by TCPHandler to pass logs to a client + InternalTextLogsQueueWeakPtr logs_queue_ptr; + + bool performance_counters_finalized = false; + UInt64 query_start_time_nanoseconds = 0; + UInt64 query_start_time_microseconds = 0; + time_t query_start_time = 0; + size_t queries_started = 0; + + // CPU and Real time query profilers + std::unique_ptr query_profiler_real; + std::unique_ptr query_profiler_cpu; + + Poco::Logger * log = nullptr; + + friend class CurrentThread; + + /// Use ptr not to add extra dependencies in the header + std::unique_ptr last_rusage; + std::unique_ptr taskstats; + + /// Is used to send logs from logs_queue to client in case of fatal errors. + std::function fatal_error_callback; + +public: + ThreadStatus(); + ~ThreadStatus(); + ThreadGroupStatusPtr getThreadGroup() const { return thread_group; @@ -176,40 +218,6 @@ protected: void assertState(const std::initializer_list & permitted_states, const char * description = nullptr) const; - ThreadGroupStatusPtr thread_group; - - std::atomic thread_state{ThreadState::DetachedFromQuery}; - - /// Is set once - Context * global_context = nullptr; - /// Use it only from current thread - Context * query_context = nullptr; - - String query_id; - - /// A logs queue used by TCPHandler to pass logs to a client - InternalTextLogsQueueWeakPtr logs_queue_ptr; - - bool performance_counters_finalized = false; - UInt64 query_start_time_nanoseconds = 0; - UInt64 query_start_time_microseconds = 0; - time_t query_start_time = 0; - size_t queries_started = 0; - - // CPU and Real time query profilers - std::unique_ptr query_profiler_real; - std::unique_ptr query_profiler_cpu; - - Poco::Logger * log = nullptr; - - friend class CurrentThread; - - /// Use ptr not to add extra dependencies in the header - std::unique_ptr last_rusage; - std::unique_ptr taskstats; - - /// Is used to send logs from logs_queue to client in case of fatal errors. - std::function fatal_error_callback; private: void setupState(const ThreadGroupStatusPtr & thread_group_); diff --git a/src/Core/Settings.h b/src/Core/Settings.h index f974a514bc0..71b248edfdd 100644 --- a/src/Core/Settings.h +++ b/src/Core/Settings.h @@ -517,7 +517,7 @@ struct Settings : public BaseSettings }; /* - * User-specified file format settings for File and ULR engines. + * User-specified file format settings for File and URL engines. */ DECLARE_SETTINGS_TRAITS(FormatFactorySettingsTraits, FORMAT_FACTORY_SETTINGS) diff --git a/src/Formats/FormatSettings.h b/src/Formats/FormatSettings.h index b3c01ddcf14..0a897c96896 100644 --- a/src/Formats/FormatSettings.h +++ b/src/Formats/FormatSettings.h @@ -86,9 +86,11 @@ struct FormatSettings struct { + bool array_of_rows = false; bool quote_64bit_integers = true; bool quote_denormals = true; bool escape_forward_slashes = true; + bool named_tuple_as_object = false; bool serialize_as_strings = false; } json; diff --git a/src/Interpreters/InterpreterFactory.cpp b/src/Interpreters/InterpreterFactory.cpp index a18d3ab8a6f..7505c017953 100644 --- a/src/Interpreters/InterpreterFactory.cpp +++ b/src/Interpreters/InterpreterFactory.cpp @@ -66,6 +66,7 @@ #include #include #include +#include #include @@ -93,6 +94,8 @@ namespace ErrorCodes std::unique_ptr InterpreterFactory::get(ASTPtr & query, Context & context, QueryProcessingStage::Enum stage) { + OpenTelemetrySpanHolder span(__FUNCTION__); + ProfileEvents::increment(ProfileEvents::Query); if (query->as()) diff --git a/src/Interpreters/OpenTelemetrySpanLog.cpp b/src/Interpreters/OpenTelemetrySpanLog.cpp index 6c22165546d..013913d9f2d 100644 --- a/src/Interpreters/OpenTelemetrySpanLog.cpp +++ b/src/Interpreters/OpenTelemetrySpanLog.cpp @@ -43,5 +43,97 @@ void OpenTelemetrySpanLogElement::appendToBlock(MutableColumns & columns) const columns[i++]->insert(attribute_values); } +OpenTelemetrySpanHolder::OpenTelemetrySpanHolder(const std::string & _operation_name) +{ + auto & thread = CurrentThread::get(); + + trace_id = thread.opentelemetry_trace_id; + if (!trace_id) + { + return; + } + + parent_span_id = thread.opentelemetry_current_span_id; + span_id = thread_local_rng(); + operation_name = _operation_name; + start_time_us = std::chrono::duration_cast( + std::chrono::system_clock::now().time_since_epoch()).count(); + + // *** remove this + attribute_names.push_back("start.stacktrace"); + attribute_values.push_back(StackTrace().toString()); + + thread.opentelemetry_current_span_id = span_id; +} + +OpenTelemetrySpanHolder::~OpenTelemetrySpanHolder() +{ + try + { + fmt::print(stderr, "{}\n", StackTrace().toString()); + + if (!trace_id) + { + return; + } + + // First of all, return old value of current span. + auto & thread = CurrentThread::get(); + assert(thread.opentelemetry_current_span_id = span_id); + thread.opentelemetry_current_span_id = parent_span_id; + + // Not sure what's the best way to access the log from here. + auto * thread_group = CurrentThread::getGroup().get(); + // Not sure whether and when this can be null. + if (!thread_group) + { + return; + } + + fmt::print(stderr, "1\n"); + + auto * context = thread_group->query_context; + if (!context) + { + // Both global and query contexts can be null when executing a + // background task, and global context can be null for some + // queries. + return; + } + + //******** remove this + attribute_names.push_back("clickhouse.query_id"); + attribute_values.push_back(context->getCurrentQueryId()); + + fmt::print(stderr, "2\n"); + + auto log = context->getOpenTelemetrySpanLog(); + if (!log) + { + // The log might be disabled. + return; + } + + fmt::print(stderr, "3\n"); + + finish_time_us = std::chrono::duration_cast( + std::chrono::system_clock::now().time_since_epoch()).count(); + + // We should use a high resolution monotonic clock for calculating + // duration, but this way will do for now. + duration_ns = (finish_time_us - start_time_us) * 1000; + + + log->add(OpenTelemetrySpanLogElement( + static_cast(*this))); + + fmt::print(stderr, "4\n"); + } + catch (...) + { + tryLogCurrentException(__FUNCTION__); + } +} + } diff --git a/src/Interpreters/OpenTelemetrySpanLog.h b/src/Interpreters/OpenTelemetrySpanLog.h index 271d02804f4..a1c198559b8 100644 --- a/src/Interpreters/OpenTelemetrySpanLog.h +++ b/src/Interpreters/OpenTelemetrySpanLog.h @@ -23,6 +23,10 @@ struct OpenTelemetrySpan struct OpenTelemetrySpanLogElement : public OpenTelemetrySpan { + OpenTelemetrySpanLogElement() = default; + OpenTelemetrySpanLogElement(const OpenTelemetrySpan & span) + : OpenTelemetrySpan(span) {} + static std::string name() { return "OpenTelemetrySpanLog"; } static Block createBlock(); void appendToBlock(MutableColumns & columns) const; @@ -36,4 +40,10 @@ public: using SystemLog::SystemLog; }; +struct OpenTelemetrySpanHolder : public OpenTelemetrySpan +{ + OpenTelemetrySpanHolder(const std::string & _operation_name); + ~OpenTelemetrySpanHolder(); +}; + } diff --git a/src/Interpreters/ThreadStatusExt.cpp b/src/Interpreters/ThreadStatusExt.cpp index adb9a38b10d..1689a1598ba 100644 --- a/src/Interpreters/ThreadStatusExt.cpp +++ b/src/Interpreters/ThreadStatusExt.cpp @@ -2,6 +2,7 @@ #include #include +#include #include #include #include @@ -108,8 +109,26 @@ void ThreadStatus::setupState(const ThreadGroupStatusPtr & thread_group_) } if (query_context) + { applyQuerySettings(); + opentelemetry_trace_id = query_context->getClientInfo().opentelemetry_trace_id; + opentelemetry_current_span_id = query_context->getClientInfo().opentelemetry_span_id; + + if (opentelemetry_trace_id) + { + // Register the span for our thread. We might not know the name yet + // -- there are no strong constraints on when it is set relative to + // attaching the thread to query. Will set the name when the span ends. + opentelemetry_thread_span.reset(new OpenTelemetrySpanHolder("")); + } + } + else + { + opentelemetry_trace_id = 0; + opentelemetry_current_span_id = 0; + } + initPerformanceCounters(); thread_state = ThreadState::AttachedToQuery; @@ -300,6 +319,13 @@ void ThreadStatus::detachQuery(bool exit_if_already_detached, bool thread_exits) assertState({ThreadState::AttachedToQuery}, __PRETTY_FUNCTION__); + if (opentelemetry_thread_span) + { + opentelemetry_thread_span->operation_name = getThreadName(); + opentelemetry_thread_span->attribute_names.push_back("clickhouse.thread_id"); + opentelemetry_thread_span->attribute_values.push_back(thread_id); + } + finalizeQueryProfiler(); finalizePerformanceCounters(); @@ -312,6 +338,9 @@ void ThreadStatus::detachQuery(bool exit_if_already_detached, bool thread_exits) query_id.clear(); query_context = nullptr; + opentelemetry_thread_span = nullptr; + opentelemetry_trace_id = 0; + opentelemetry_current_span_id = 0; thread_group.reset(); thread_state = thread_exits ? ThreadState::Died : ThreadState::DetachedFromQuery; diff --git a/src/Interpreters/executeQuery.cpp b/src/Interpreters/executeQuery.cpp index cdb3d9b7d7b..dbe3d23ca40 100644 --- a/src/Interpreters/executeQuery.cpp +++ b/src/Interpreters/executeQuery.cpp @@ -479,7 +479,11 @@ static std::tuple executeQueryImpl( limits.size_limits = SizeLimits(settings.max_result_rows, settings.max_result_bytes, settings.result_overflow_mode); } - res = interpreter->execute(); + { + OpenTelemetrySpanHolder span("execute interpreter"); + res = interpreter->execute(); + } + QueryPipeline & pipeline = res.pipeline; bool use_processors = pipeline.initialized(); diff --git a/src/Parsers/parseQuery.cpp b/src/Parsers/parseQuery.cpp index f4e4c195506..5ecdd091e11 100644 --- a/src/Parsers/parseQuery.cpp +++ b/src/Parsers/parseQuery.cpp @@ -1,4 +1,6 @@ #include + +#include #include #include #include diff --git a/src/Processors/Executors/PipelineExecutor.cpp b/src/Processors/Executors/PipelineExecutor.cpp index 271903add86..f940ea148c7 100644 --- a/src/Processors/Executors/PipelineExecutor.cpp +++ b/src/Processors/Executors/PipelineExecutor.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #ifndef NDEBUG #include @@ -75,6 +76,7 @@ static void executeJob(IProcessor * processor) { try { + OpenTelemetrySpanHolder span(demangle(typeid(*processor).name())); processor->work(); } catch (Exception & exception) diff --git a/src/Server/TCPHandler.cpp b/src/Server/TCPHandler.cpp index 4dceb0aa905..6f484f6df91 100644 --- a/src/Server/TCPHandler.cpp +++ b/src/Server/TCPHandler.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -521,6 +522,8 @@ void TCPHandler::processInsertQuery(const Settings & connection_settings) void TCPHandler::processOrdinaryQuery() { + OpenTelemetrySpanHolder span(__FUNCTION__); + /// Pull query execution result, if exists, and send it to network. if (state.io.in) { From 0568daf4fc03256051788563bd86ffa74f62b221 Mon Sep 17 00:00:00 2001 From: Aleksandrov Vladimir Date: Mon, 9 Nov 2020 18:55:41 +0300 Subject: [PATCH 093/425] Update collapsingmergetree.md formatting fix --- .../table-engines/mergetree-family/collapsingmergetree.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/en/engines/table-engines/mergetree-family/collapsingmergetree.md b/docs/en/engines/table-engines/mergetree-family/collapsingmergetree.md index 4bfb9dc200e..ea0b265d652 100644 --- a/docs/en/engines/table-engines/mergetree-family/collapsingmergetree.md +++ b/docs/en/engines/table-engines/mergetree-family/collapsingmergetree.md @@ -273,13 +273,15 @@ SELECT sum(Duration) AS Duration FROM UAct GROUP BY UserID -```text +``` + +``` text ┌──────────────UserID─┬─PageViews─┬─Duration─┐ │ 4324182021466249494 │ 6 │ 185 │ └─────────────────────┴───────────┴──────────┘ ``` -``` sqk +``` sql select count() FROM UAct ``` From b4c933e585a482a31450252078cadd442310ba12 Mon Sep 17 00:00:00 2001 From: feng lv Date: Mon, 9 Nov 2020 15:44:11 +0000 Subject: [PATCH 094/425] fix fix test --- .../InterpreterSelectWithUnionQuery.cpp | 250 +++++++++--------- .../InterpreterSelectWithUnionQuery.h | 1 - src/Parsers/ASTSelectWithUnionQuery.cpp | 27 +- src/Parsers/ASTSelectWithUnionQuery.h | 4 + src/Parsers/ExpressionListParsers.cpp | 2 +- src/Parsers/ParserSelectWithUnionQuery.cpp | 100 +------ ...t_and_setting_union_default_mode.reference | 40 +++ ...istinct_and_setting_union_default_mode.sql | 33 +++ ..._explain_select_with_union_query.reference | 162 ++++++++++-- .../01556_explain_select_with_union_query.sql | 30 ++- 10 files changed, 396 insertions(+), 253 deletions(-) diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp index 976dcaddd9c..f12c949eb92 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp @@ -11,6 +11,8 @@ #include #include +#include + namespace DB { @@ -21,11 +23,120 @@ namespace ErrorCodes extern const int EXPECTED_ALL_OR_DISTINCT; } +struct CustomizeASTSelectWithUnionQueryNormalize +{ + using TypeToVisit = ASTSelectWithUnionQuery; + + const UnionMode & union_default_mode; + + static void getSelectsFromUnionListNode(ASTPtr & ast_select, ASTs & selects) + { + if (auto * inner_union = ast_select->as()) + { + /// We need flatten from last to first + for (auto child = inner_union->list_of_selects->children.rbegin(); child != inner_union->list_of_selects->children.rend(); + ++child) + getSelectsFromUnionListNode(*child, selects); + + return; + } + + selects.push_back(std::move(ast_select)); + } + + void visit(ASTSelectWithUnionQuery & ast, ASTPtr &) + { + auto & union_modes = ast.list_of_modes; + ASTs selects; + auto & select_list = ast.list_of_selects->children; + + int i; + for (i = union_modes.size() - 1; i >= 0; --i) + { + /// Rewrite UNION Mode + if (union_modes[i] == ASTSelectWithUnionQuery::Mode::Unspecified) + { + if (union_default_mode == UnionMode::ALL) + union_modes[i] = ASTSelectWithUnionQuery::Mode::ALL; + else if (union_default_mode == UnionMode::DISTINCT) + union_modes[i] = ASTSelectWithUnionQuery::Mode::DISTINCT; + else + throw Exception( + "Expected ALL or DISTINCT in SelectWithUnion query, because setting (union_default_mode) is empty", + DB::ErrorCodes::EXPECTED_ALL_OR_DISTINCT); + } + + if (union_modes[i] == ASTSelectWithUnionQuery::Mode::ALL) + { + if (auto * inner_union = select_list[i + 1]->as()) + { + /// Inner_union is an UNION ALL list, just lift up + for (auto child = inner_union->list_of_selects->children.rbegin(); + child != inner_union->list_of_selects->children.rend(); + ++child) + selects.push_back(std::move(*child)); + } + else + selects.push_back(std::move(select_list[i + 1])); + } + /// flatten all left nodes and current node to a UNION DISTINCT list + else if (union_modes[i] == ASTSelectWithUnionQuery::Mode::DISTINCT) + { + auto distinct_list = std::make_shared(); + distinct_list->list_of_selects = std::make_shared(); + distinct_list->children.push_back(distinct_list->list_of_selects); + for (int j = i + 1; j >= 0; j--) + { + getSelectsFromUnionListNode(select_list[j], distinct_list->list_of_selects->children); + } + distinct_list->union_mode = ASTSelectWithUnionQuery::Mode::DISTINCT; + // Reverse children list + std::reverse(distinct_list->list_of_selects->children.begin(), distinct_list->list_of_selects->children.end()); + distinct_list->is_normalized = true; + selects.push_back(std::move(distinct_list)); + break; + } + } + + /// No UNION DISTINCT or only one child in select_list + if (i == -1) + { + if (auto * inner_union = select_list[0]->as()) + { + /// Inner_union is an UNION ALL list, just lift it up + for (auto child = inner_union->list_of_selects->children.rbegin(); child != inner_union->list_of_selects->children.rend(); + ++child) + selects.push_back(std::move(*child)); + } + else + selects.push_back(std::move(select_list[0])); + } + + // reverse children list + std::reverse(selects.begin(), selects.end()); + + ast.is_normalized = true; + ast.union_mode = ASTSelectWithUnionQuery::Mode::ALL; + + ast.list_of_selects->children = std::move(selects); + } +}; + +using CustomizeASTSelectWithUnionQueryNormalizeVisitor + = InDepthNodeVisitor, false>; + InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery( const ASTPtr & query_ptr_, const Context & context_, const SelectQueryOptions & options_, const Names & required_result_column_names) : IInterpreterUnionOrSelectQuery(query_ptr_, context_, options_) { - const auto & ast = query_ptr->as(); + auto & ast = query_ptr->as(); + + /// Normalize AST Tree + if (!ast.is_normalized) + { + CustomizeASTSelectWithUnionQueryNormalizeVisitor::Data union_default_mode{context->getSettingsRef().union_default_mode}; + CustomizeASTSelectWithUnionQueryNormalizeVisitor(union_default_mode).visit(query_ptr); + } size_t num_children = ast.list_of_selects->children.size(); if (!num_children) @@ -170,51 +281,6 @@ Block InterpreterSelectWithUnionQuery::getSampleBlock(const ASTPtr & query_ptr_, return cache[key] = InterpreterSelectWithUnionQuery(query_ptr_, context_, SelectQueryOptions().analyze()).getSampleBlock(); } -#if 0 -size_t InterpreterSelectWithUnionQuery::optimizeUnionList() -{ - auto union_distinct_num = 0; - - auto union_default_mode = context->getSettingsRef().union_default_mode; - auto & ast = query_ptr->as(); - size_t num_selects = ast.list_of_selects->children.size(); - - if (!num_selects) - throw Exception("Logical error: no children in ASTSelectWithUnionQuery", ErrorCodes::LOGICAL_ERROR); - - if (num_selects > 1) - { - for (auto & mode : ast.union_modes) - { - if (mode == ASTSelectWithUnionQuery::Mode::Unspecified) - { - if (union_default_mode == UnionMode::ALL) - mode = ASTSelectWithUnionQuery::Mode::ALL; - else if (union_default_mode == UnionMode::DISTINCT) - mode = ASTSelectWithUnionQuery::Mode::DISTINCT; - else - throw Exception( - "Expected ALL or DISTINCT in SelectWithUnion query, because setting (union_default_mode) is empty", - DB::ErrorCodes::EXPECTED_ALL_OR_DISTINCT); - } - } - /// Optimize general cases: if there is UNION DISTINCT, all previous UNION DISTINCT can be rewritten to UNION ALL. - /// Therefore we have at most one UNION DISTINCT in a sequence. - for (auto rit = ast.union_modes.rbegin(); rit != ast.union_modes.rend(); ++rit) - { - if (*rit == ASTSelectWithUnionQuery::Mode::DISTINCT) - { - /// Number of streams need to do a DISTINCT transform after unite - union_distinct_num = ast.union_modes.rend() - rit + 1; - for (auto mode_to_modify = ++rit; mode_to_modify != ast.union_modes.rend(); ++mode_to_modify) - *mode_to_modify = ASTSelectWithUnionQuery::Mode::ALL; - break; - } - } - } - return union_distinct_num; -} -#endif void InterpreterSelectWithUnionQuery::buildQueryPlan(QueryPlan & query_plan) { @@ -228,93 +294,33 @@ void InterpreterSelectWithUnionQuery::buildQueryPlan(QueryPlan & query_plan) return; } - /// All UNION streams in the chain does not need to do DISTINCT transform - // if (num_distinct_union == 0) - // { - std::vector> plans(num_plans); - DataStreams data_streams(num_plans); + std::vector> plans(num_plans); + DataStreams data_streams(num_plans); - for (size_t i = 0; i < num_plans; ++i) - { - plans[i] = std::make_unique(); - nested_interpreters[i]->buildQueryPlan(*plans[i]); - data_streams[i] = plans[i]->getCurrentDataStream(); - } - - auto max_threads = context->getSettingsRef().max_threads; - auto union_step = std::make_unique(std::move(data_streams), result_header, max_threads); - - query_plan.unitePlans(std::move(union_step), std::move(plans)); - - const auto & query = query_ptr->as(); - if (query.union_mode == ASTSelectWithUnionQuery::Mode::DISTINCT) - { - /// Add distinct transform - const Settings & settings = context->getSettingsRef(); - SizeLimits limits(settings.max_rows_in_distinct, settings.max_bytes_in_distinct, settings.distinct_overflow_mode); - - auto distinct_step - = std::make_unique(query_plan.getCurrentDataStream(), limits, 0, result_header.getNames(), false); - - query_plan.addStep(std::move(distinct_step)); - } - // } - - /// The first union_distinct_num UNION streams need to do a DISTINCT transform after unite -#if 0 - else + for (size_t i = 0; i < num_plans; ++i) { - QueryPlan distinct_query_plan; + plans[i] = std::make_unique(); + nested_interpreters[i]->buildQueryPlan(*plans[i]); + data_streams[i] = plans[i]->getCurrentDataStream(); + } - std::vector> plans(num_distinct_union); - DataStreams data_streams(num_distinct_union); + auto max_threads = context->getSettingsRef().max_threads; + auto union_step = std::make_unique(std::move(data_streams), result_header, max_threads); - for (size_t i = 0; i < num_distinct_union; ++i) - { - plans[i] = std::make_unique(); - nested_interpreters[i]->buildQueryPlan(*plans[i]); - data_streams[i] = plans[i]->getCurrentDataStream(); - } - - auto max_threads = context->getSettingsRef().max_threads; - auto union_step = std::make_unique(std::move(data_streams), result_header, max_threads); - - distinct_query_plan.unitePlans(std::move(union_step), std::move(plans)); + query_plan.unitePlans(std::move(union_step), std::move(plans)); + const auto & query = query_ptr->as(); + if (query.union_mode == ASTSelectWithUnionQuery::Mode::DISTINCT) + { /// Add distinct transform const Settings & settings = context->getSettingsRef(); SizeLimits limits(settings.max_rows_in_distinct, settings.max_bytes_in_distinct, settings.distinct_overflow_mode); - auto distinct_step - = std::make_unique(distinct_query_plan.getCurrentDataStream(), limits, 0, result_header.getNames(), false); + auto distinct_step = std::make_unique(query_plan.getCurrentDataStream(), limits, 0, result_header.getNames(), false); - distinct_query_plan.addStep(std::move(distinct_step)); - - /// No other UNION streams after DISTINCT stream - if (num_plans == num_distinct_union) - { - query_plan = std::move(distinct_query_plan); - return; - } - - /// Build final UNION step - std::vector> final_plans(num_plans - num_distinct_union + 1); - DataStreams final_data_streams(num_plans - num_distinct_union + 1); - - final_plans[0] = std::make_unique(std::move(distinct_query_plan)); - final_data_streams[0] = final_plans[0]->getCurrentDataStream(); - - for (size_t i = 1; i < num_plans - num_distinct_union + 1; ++i) - { - final_plans[i] = std::make_unique(); - nested_interpreters[num_distinct_union + i - 1]->buildQueryPlan(*final_plans[i]); - final_data_streams[i] = final_plans[i]->getCurrentDataStream(); - } - - auto final_union_step = std::make_unique(std::move(final_data_streams), result_header, max_threads); - query_plan.unitePlans(std::move(final_union_step), std::move(final_plans)); + query_plan.addStep(std::move(distinct_step)); } -#endif + } BlockIO InterpreterSelectWithUnionQuery::execute() diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.h b/src/Interpreters/InterpreterSelectWithUnionQuery.h index 9a3035f117c..cd089a51970 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.h +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.h @@ -49,7 +49,6 @@ private: std::unique_ptr buildCurrentChildInterpreter(const ASTPtr & ast_ptr_, const Names & current_required_result_column_names); - // size_t optimizeUnionList(); }; } diff --git a/src/Parsers/ASTSelectWithUnionQuery.cpp b/src/Parsers/ASTSelectWithUnionQuery.cpp index 610c82ee03a..f51f998efc5 100644 --- a/src/Parsers/ASTSelectWithUnionQuery.cpp +++ b/src/Parsers/ASTSelectWithUnionQuery.cpp @@ -3,6 +3,8 @@ #include #include +#include + namespace DB { @@ -16,6 +18,8 @@ ASTPtr ASTSelectWithUnionQuery::clone() const res->union_mode = union_mode; + res->list_of_modes = list_of_modes; + cloneOutputOptions(*res); return res; } @@ -38,15 +42,24 @@ void ASTSelectWithUnionQuery::formatQueryImpl(const FormatSettings & settings, F for (ASTs::const_iterator it = list_of_selects->children.begin(); it != list_of_selects->children.end(); ++it) { if (it != list_of_selects->children.begin()) - settings.ostr - << settings.nl_or_ws << indent_str << (settings.hilite ? hilite_keyword : "") - << "UNION " - << mode_to_str(union_mode) << (settings.hilite ? hilite_none : ""); + settings.ostr << settings.nl_or_ws << indent_str << (settings.hilite ? hilite_keyword : "") << "UNION " + << mode_to_str((is_normalized) ? union_mode : list_of_modes[it - list_of_selects->children.begin() - 1]) + << (settings.hilite ? hilite_none : ""); + if (auto * node = (*it)->as()) { - auto sub_query = std::make_shared(); - sub_query->children.push_back(*it); - sub_query->formatImpl(settings, state, frame); + if (node->list_of_selects->children.size() == 1) + { + if (it != list_of_selects->children.begin()) + settings.ostr << settings.nl_or_ws; + (node->list_of_selects->children.at(0))->formatImpl(settings, state, frame); + } + else + { + auto sub_query = std::make_shared(); + sub_query->children.push_back(*it); + sub_query->formatImpl(settings, state, frame); + } } else { diff --git a/src/Parsers/ASTSelectWithUnionQuery.h b/src/Parsers/ASTSelectWithUnionQuery.h index fd5eeae2d7a..ecf03bb6a05 100644 --- a/src/Parsers/ASTSelectWithUnionQuery.h +++ b/src/Parsers/ASTSelectWithUnionQuery.h @@ -27,6 +27,10 @@ public: Mode union_mode; + UnionModes list_of_modes; + + bool is_normalized = false; + ASTPtr list_of_selects; }; diff --git a/src/Parsers/ExpressionListParsers.cpp b/src/Parsers/ExpressionListParsers.cpp index 4eecc9754bf..1cc72f5fb8b 100644 --- a/src/Parsers/ExpressionListParsers.cpp +++ b/src/Parsers/ExpressionListParsers.cpp @@ -128,7 +128,7 @@ bool ParserUnionList::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) } // SELECT ... UNION SELECT ... else - union_modes.push_back(ASTSelectWithUnionQuery::Mode::DISTINCT); + union_modes.push_back(ASTSelectWithUnionQuery::Mode::Unspecified); return true; } return false; diff --git a/src/Parsers/ParserSelectWithUnionQuery.cpp b/src/Parsers/ParserSelectWithUnionQuery.cpp index 49f5aa719e5..efda8e43ca9 100644 --- a/src/Parsers/ParserSelectWithUnionQuery.cpp +++ b/src/Parsers/ParserSelectWithUnionQuery.cpp @@ -6,84 +6,6 @@ namespace DB { -static void getSelectsFromUnionListNode(ASTPtr & ast_select, ASTs & selects) -{ - if (auto * inner_union = ast_select->as()) - { - /// We need flatten from last to first - for (auto child = inner_union->list_of_selects->children.rbegin(); child != inner_union->list_of_selects->children.rend(); ++child) - getSelectsFromUnionListNode(*child, selects); - - return; - } - - selects.push_back(std::move(ast_select)); -} - -void normalizeSelectList(ASTs & select_list, const ASTSelectWithUnionQuery::UnionModes & union_modes, ASTs & selects) -{ - int i; - for (i = union_modes.size() - 1; i >= 0; --i) - { - if (union_modes[i] == ASTSelectWithUnionQuery::Mode::ALL) - { - if (auto * inner_union = select_list[i + 1]->as()) - { - /// If inner_union is an UNION ALL list, just lift up - if (inner_union->union_mode == ASTSelectWithUnionQuery::Mode::ALL) - { - for (auto child = inner_union->list_of_selects->children.rbegin(); - child != inner_union->list_of_selects->children.rend(); - ++child) - selects.push_back(std::move(*child)); - } - /// inner_union is an UNION DISTINCT list, - // we cann't lift up - else - selects.push_back(std::move(select_list[i + 1])); - } - else - selects.push_back(std::move(select_list[i + 1])); - } - /// flatten all left nodes and current node to a UNION DISTINCT list - else if (union_modes[i] == ASTSelectWithUnionQuery::Mode::DISTINCT) - { - auto distinct_list = std::make_shared(); - distinct_list->list_of_selects = std::make_shared(); - distinct_list->children.push_back(distinct_list->list_of_selects); - for (int j = i + 1; j >= 0; j--) - { - getSelectsFromUnionListNode(select_list[j], distinct_list->list_of_selects->children); - } - distinct_list->union_mode = ASTSelectWithUnionQuery::Mode::DISTINCT; - // Reverse children list - std::reverse(distinct_list->list_of_selects->children.begin(), distinct_list->list_of_selects->children.end()); - selects.push_back(std::move(distinct_list)); - return; - } - } - /// No UNION DISTINCT or only one SELECT in select_list - if (i == -1) - { - if (auto * inner_union = select_list[0]->as()) - { - /// If inner_union is an UNION ALL list, just lift it up - if (inner_union->union_mode == ASTSelectWithUnionQuery::Mode::ALL) - { - for (auto child = inner_union->list_of_selects->children.rbegin(); - child != inner_union->list_of_selects->children.rend(); - ++child) - selects.push_back(std::move(*child)); - } - /// inner_union is an UNION DISTINCT list, - // we cann't lift it up - else - selects.push_back(std::move(select_list[i + 1])); - } - else - selects.push_back(std::move(select_list[0])); - } -} bool ParserSelectWithUnionQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) { @@ -102,7 +24,7 @@ bool ParserSelectWithUnionQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & /// so flatten may change it's semantics. For example: /// flatten `SELECT 1 UNION (SELECT 1 UNION ALL SELETC 1)` -> `SELECT 1 UNION SELECT 1 UNION ALL SELECT 1` - /// Before normalize, if we got only one child which is ASTSelectWithUnionQuery, just lift it up + /// If we got only one child which is ASTSelectWithUnionQuery, just lift it up auto & expr_list = list_node->as(); if (expr_list.children.size() == 1) { @@ -116,25 +38,9 @@ bool ParserSelectWithUnionQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & auto select_with_union_query = std::make_shared(); node = select_with_union_query; - select_with_union_query->list_of_selects = std::make_shared(); + select_with_union_query->list_of_selects = list_node; //std::make_shared(); select_with_union_query->children.push_back(select_with_union_query->list_of_selects); - - auto union_modes = parser.getUnionModes(); - - normalizeSelectList(expr_list.children, union_modes, select_with_union_query->list_of_selects->children); - /// We need reverse children list - std::reverse(select_with_union_query->list_of_selects->children.begin(), select_with_union_query->list_of_selects->children.end()); - - select_with_union_query->union_mode = ASTSelectWithUnionQuery::Mode::ALL; - - /// After normalize, if we only have one ASTSelectWithUnionQuery child, lift if up - if (select_with_union_query->list_of_selects->children.size() == 1) - { - if (select_with_union_query->list_of_selects->children.at(0)->as()) - { - node = std::move(select_with_union_query->list_of_selects->children.at(0)); - } - } + select_with_union_query->list_of_modes = parser.getUnionModes(); return true; } diff --git a/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.reference b/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.reference index ff0086583fa..9c6ef1adb09 100644 --- a/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.reference +++ b/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.reference @@ -8,6 +8,11 @@ 1 1 1 +a +a +a +a +a 1 1 all @@ -44,6 +49,28 @@ all 1 1 1 +1 +1 +1 +1 +1 +a +a +a +a +a +a +a +a +a +a +a +a +1 +1 +1 +1 +all all all 1 @@ -67,3 +94,16 @@ all 1 1 1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 diff --git a/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.sql b/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.sql index 6e45c150508..e29e43f64ba 100644 --- a/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.sql +++ b/tests/queries/0_stateless/01529_union_distinct_and_setting_union_default_mode.sql @@ -1,26 +1,59 @@ SELECT 1; + (((((((SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1; + (((((((SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1; + +SELECT 'a' UNION ALL SELECT 'a' UNION ALL SELECT 'a' UNION SELECT 'a'; + +SELECT 'a' UNION ALL (SELECT 'a' UNION ALL SELECT 'a' UNION SELECT 'a'); + +SELECT 'a' UNION SELECT 'a' UNION SELECT 'a' UNION ALL SELECT'a'; + SELECT 1 UNION SELECT 1 UNION SELECT 1 UNION ALL SELECT 1; + SELECT 'all' UNION SELECT 'all' UNION ALL SELECT 'all'; + SELECT 1 UNION SELECT 1 UNION SELECT 1 UNION DISTINCT SELECT 1; + SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION SELECT 1 UNION ALL SELECT 1; + SELECT 1 UNION (SELECT 1 UNION ALL SELECT 1 UNION SELECT 1 UNION DISTINCT SELECT 1 UNION ALL SELECT 1); + SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1 UNION SELECT 1 UNION DISTINCT SELECT 1 UNION ALL SELECT 1); + SELECT 1 UNION (SELECT 1 UNION (SELECT 1 UNION (SELECT 1 UNION (SELECT 1 UNION (SELECT 1 UNION (SELECT 1 UNION (SELECT 1))))))); + SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1))))))); + SELECT * FROM (SELECT 1 UNION ALL (SELECT 1 UNION SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1))); SET union_default_mode='ALL'; (((((((SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1) UNION SELECT 1; + (((((((SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1) UNION ALL SELECT 1; + +SELECT 'a' UNION ALL SELECT 'a' UNION ALL SELECT 'a' UNION SELECT 'a'; + +SELECT 'a' UNION ALL (SELECT 'a' UNION ALL SELECT 'a' UNION SELECT 'a'); + +SELECT 'a' UNION SELECT 'a' UNION SELECT 'a' UNION ALL SELECT'a'; + SELECT 1 UNION SELECT 1 UNION SELECT 1 UNION ALL SELECT 1; + SELECT 'all' UNION SELECT 'all' UNION ALL SELECT 'all'; + SELECT 1 UNION SELECT 1 UNION SELECT 1 UNION DISTINCT SELECT 1; + SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION SELECT 1 UNION ALL SELECT 1; + SELECT 1 UNION (SELECT 1 UNION ALL SELECT 1 UNION SELECT 1 UNION DISTINCT SELECT 1 UNION ALL SELECT 1); + SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1 UNION SELECT 1 UNION DISTINCT SELECT 1 UNION ALL SELECT 1); + SELECT 1 UNION (SELECT 1 UNION (SELECT 1 UNION (SELECT 1 UNION (SELECT 1 UNION (SELECT 1 UNION (SELECT 1 UNION (SELECT 1))))))); + SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL(SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1))))))); + SELECT * FROM (SELECT 1 UNION ALL (SELECT 1 UNION SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1))); diff --git a/tests/queries/0_stateless/01556_explain_select_with_union_query.reference b/tests/queries/0_stateless/01556_explain_select_with_union_query.reference index c1b07cedd05..cf892c2c591 100644 --- a/tests/queries/0_stateless/01556_explain_select_with_union_query.reference +++ b/tests/queries/0_stateless/01556_explain_select_with_union_query.reference @@ -18,16 +18,17 @@ Union Expression (Projection) Expression (Before ORDER BY and SELECT) ReadFromStorage (Read from SystemOne) -Union - Expression (Projection) - Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) - Expression (Projection) - Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) - Expression (Projection) - Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) +Distinct + Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) Distinct Union Expression (Projection) @@ -79,6 +80,132 @@ Union Expression (Projection) Expression (Before ORDER BY and SELECT) ReadFromStorage (Read from SystemOne) + Distinct + Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) +Distinct + Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) +Distinct + Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) +Distinct + Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) +Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) +Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) +Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) +Distinct + Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) +Distinct + Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) +Distinct + Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) +Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) ReadFromStorage (Read from SystemOne) @@ -116,11 +243,10 @@ Union Expression (Projection) Expression (Before ORDER BY and SELECT) ReadFromStorage (Read from SystemOne) -Distinct - Union - Expression (Projection) - Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) - Expression (Projection) - Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) +Union + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) + Expression (Projection) + Expression (Before ORDER BY and SELECT) + ReadFromStorage (Read from SystemOne) diff --git a/tests/queries/0_stateless/01556_explain_select_with_union_query.sql b/tests/queries/0_stateless/01556_explain_select_with_union_query.sql index abb7f602af5..16271113b5f 100644 --- a/tests/queries/0_stateless/01556_explain_select_with_union_query.sql +++ b/tests/queries/0_stateless/01556_explain_select_with_union_query.sql @@ -1,13 +1,29 @@ EXPLAIN SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1; EXPLAIN (SELECT 1 UNION ALL SELECT 1) UNION ALL SELECT 1; -EXPLAIN SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1); +EXPLAIN SELECT 1 UNION (SELECT 1 UNION ALL SELECT 1); -EXPLAIN SELECT 1 UNION DISTINCT SELECT 1 UNION DISTINCT SELECT 1; +EXPLAIN SELECT 1 UNION SELECT 1 UNION DISTINCT SELECT 1; EXPLAIN (SELECT 1 UNION DISTINCT SELECT 1) UNION DISTINCT SELECT 1; -EXPLAIN SELECT 1 UNION DISTINCT (SELECT 1 UNION DISTINCT SELECT 1); +EXPLAIN SELECT 1 UNION DISTINCT (SELECT 1 UNION SELECT 1); -EXPLAIN (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1 UNION DISTINCT SELECT 1))) UNION ALL (((SELECT 1) UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1 ) UNION DISTINCT SELECT 1)))); +EXPLAIN (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1 UNION SELECT 1))) UNION ALL (((SELECT 1) UNION (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION SELECT 1 ) UNION DISTINCT SELECT 1)))); -EXPLAIN (((((((((((((((SELECT 1 UNION ALL SELECT 1) UNION ALL SELECT 1)))))))))))))); -EXPLAIN (((((((((((((((((((((((((((((SELECT 1 UNION ALL SELECT 1))))))))))))))))))))))))))))); -EXPLAIN (((((((((((((((((((((((((((((SELECT 1 UNION DISTINCT SELECT 1))))))))))))))))))))))))))))); +EXPLAIN (((((((((((((((SELECT 1 UNION ALL SELECT 1) UNION SELECT 1)))))))))))))); +EXPLAIN (((((((((((((((((((((((((((((SELECT 1 UNION SELECT 1))))))))))))))))))))))))))))); +EXPLAIN (((((((((((((((((((((((((((((SELECT 1 UNION SELECT 1))))))))))))))))))))))))))))); + +SET union_default_mode='ALL'; + +EXPLAIN SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1; +EXPLAIN (SELECT 1 UNION ALL SELECT 1) UNION ALL SELECT 1; +EXPLAIN SELECT 1 UNION (SELECT 1 UNION ALL SELECT 1); + +EXPLAIN SELECT 1 UNION SELECT 1 UNION DISTINCT SELECT 1; +EXPLAIN (SELECT 1 UNION DISTINCT SELECT 1) UNION DISTINCT SELECT 1; +EXPLAIN SELECT 1 UNION DISTINCT (SELECT 1 UNION SELECT 1); + +EXPLAIN (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION ALL SELECT 1 UNION SELECT 1))) UNION ALL (((SELECT 1) UNION (SELECT 1 UNION ALL (SELECT 1 UNION ALL (SELECT 1 UNION SELECT 1 ) UNION DISTINCT SELECT 1)))); + +EXPLAIN (((((((((((((((SELECT 1 UNION ALL SELECT 1) UNION SELECT 1)))))))))))))); +EXPLAIN (((((((((((((((((((((((((((((SELECT 1 UNION SELECT 1))))))))))))))))))))))))))))); +EXPLAIN (((((((((((((((((((((((((((((SELECT 1 UNION SELECT 1))))))))))))))))))))))))))))); From 68bdde87bbfd014c859c8f3b439cded6efc199b5 Mon Sep 17 00:00:00 2001 From: myrrc Date: Mon, 9 Nov 2020 19:07:59 +0300 Subject: [PATCH 095/425] patched thw cerevra/int lib with the no-UB patch --- base/common/wide_integer_impl.h | 41 +++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/base/common/wide_integer_impl.h b/base/common/wide_integer_impl.h index d90bde30a43..16ba13f9342 100644 --- a/base/common/wide_integer_impl.h +++ b/base/common/wide_integer_impl.h @@ -5,6 +5,7 @@ /// (See at http://www.boost.org/LICENSE_1_0.txt) #include "throwError.h" +#include namespace wide { @@ -192,7 +193,7 @@ struct integer::_impl } template - constexpr static auto to_Integral(T f) noexcept + __attribute__((no_sanitize("undefined"))) constexpr static auto to_Integral(T f) noexcept { if constexpr (std::is_same_v) return f; @@ -227,26 +228,48 @@ struct integer::_impl constexpr static void wide_integer_from_bultin(integer & self, double rhs) noexcept { - if ((rhs > 0 && rhs < std::numeric_limits::max()) || (rhs < 0 && rhs > std::numeric_limits::min())) - { + constexpr uint64_t max_uint = std::numeric_limits::max(); + constexpr int64_t max_int = std::numeric_limits::max(); + + if ((rhs > 0 && rhs < max_uint) || + (rhs < 0 && rhs > std::numeric_limits::min())) { self = to_Integral(rhs); return; } long double r = rhs; - if (r < 0) + if (r < 0) { r = -r; + } - size_t count = r / std::numeric_limits::max(); + size_t count = r / max_uint; self = count; - self *= std::numeric_limits::max(); + self *= max_uint; long double to_diff = count; - to_diff *= std::numeric_limits::max(); + to_diff *= max_uint; - self += to_Integral(r - to_diff); + /// There are values in int64 that have more than 53 significant bits (in terms of double + /// representation). Such values, being promoted to double, are rounded up or down. If they are rounded up, + /// the result may not fit in 64 bits. + /// The example of such a number is 9.22337e+18. + /// As to_Integral does a static_cast to int64_t, it may result in UB. + /// The necessary check here is that long double has enough significant (mantissa) bits to store the + /// int64_t max value precisely. + static_assert(LDBL_MANT_DIG >= 64, + "On your system long double has less than 64 precision bits," + "which may result in UB when initializing double from int64_t"); - if (rhs < 0) + if (r - to_diff > static_cast(max_int)) + { + self += max_int; + self += static_cast(r - to_diff - max_int); + } + else + self += to_Integral(r - to_diff); + + if (rhs < 0) { self = -self; + } } template From 2fba03ba4316ad89b634a2f1b35601c2c1904865 Mon Sep 17 00:00:00 2001 From: myrrc Date: Tue, 10 Nov 2020 00:30:52 +0300 Subject: [PATCH 096/425] fixing another UB and style errors --- base/common/wide_integer_impl.h | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/base/common/wide_integer_impl.h b/base/common/wide_integer_impl.h index 16ba13f9342..7d7830e3ee0 100644 --- a/base/common/wide_integer_impl.h +++ b/base/common/wide_integer_impl.h @@ -6,6 +6,7 @@ #include "throwError.h" #include +#include namespace wide { @@ -232,17 +233,19 @@ struct integer::_impl constexpr int64_t max_int = std::numeric_limits::max(); if ((rhs > 0 && rhs < max_uint) || - (rhs < 0 && rhs > std::numeric_limits::min())) { + (rhs < 0 && rhs > std::numeric_limits::min())) + { self = to_Integral(rhs); return; } long double r = rhs; - if (r < 0) { - r = -r; - } - size_t count = r / max_uint; + if (r < 0) + r = -r; + + /// r / max_uint may not fit in size_t + size_t count = std::clamp(r / max_uint, std::numeric_limits::max(), 0); self = count; self *= max_uint; long double to_diff = count; @@ -267,9 +270,8 @@ struct integer::_impl else self += to_Integral(r - to_diff); - if (rhs < 0) { + if (rhs < 0) self = -self; - } } template From b7e716fb2b993218c14568c9876e95a0a84335e9 Mon Sep 17 00:00:00 2001 From: myrrc Date: Tue, 10 Nov 2020 00:43:10 +0300 Subject: [PATCH 097/425] another UB fix --- base/common/wide_integer_impl.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/base/common/wide_integer_impl.h b/base/common/wide_integer_impl.h index 7d7830e3ee0..1d5deb3051e 100644 --- a/base/common/wide_integer_impl.h +++ b/base/common/wide_integer_impl.h @@ -231,6 +231,7 @@ struct integer::_impl { constexpr uint64_t max_uint = std::numeric_limits::max(); constexpr int64_t max_int = std::numeric_limits::max(); + constexpr size_t max_sizet = std::numeric_limits::max(); if ((rhs > 0 && rhs < max_uint) || (rhs < 0 && rhs > std::numeric_limits::min())) @@ -244,8 +245,13 @@ struct integer::_impl if (r < 0) r = -r; + const long double div = r / max_int; + size_t count = max_sizet; + /// r / max_uint may not fit in size_t - size_t count = std::clamp(r / max_uint, std::numeric_limits::max(), 0); + if (div <= static_cast(max_sizet)) + count = div; + self = count; self *= max_uint; long double to_diff = count; From 5ef262b1a3a417f4bbdac9483e78276ab6f97e67 Mon Sep 17 00:00:00 2001 From: myrrc Date: Tue, 10 Nov 2020 02:06:11 +0300 Subject: [PATCH 098/425] fixed test results after fixing UB --- tests/queries/0_stateless/01035_avg.reference | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/queries/0_stateless/01035_avg.reference b/tests/queries/0_stateless/01035_avg.reference index f76c532ea69..42d23e98908 100644 --- a/tests/queries/0_stateless/01035_avg.reference +++ b/tests/queries/0_stateless/01035_avg.reference @@ -1,5 +1,5 @@ nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan --0.5 -0.5 -0.5 -0.5 -0.5 -0.5 127.493856 32355.57552 499999.5 499999.5 499999.5 499999.5 499999.5 -0.000500002 0.49999949943727 -0.000005 1.7009999999999985e-8 +-0.5 -0.5 -0.5 -0.5 -0.5 -0.5 127.493856 32355.57552 499999.5 499999.5 499999.5 499999.5 499999.5 -0.000500002 0.49999949943727 -0.000005 -1.702e-8 -2767.546272 999999 -0.50000449943727 From 694ad1f45274d569a4f42635b52e1e8f82f42b90 Mon Sep 17 00:00:00 2001 From: hexiaoting Date: Tue, 10 Nov 2020 11:14:41 +0800 Subject: [PATCH 099/425] Modify except column transformer's error log --- src/Parsers/ASTColumnsTransformers.cpp | 26 ++++++++----------- .../01470_columns_transformers.reference | 2 ++ .../01470_columns_transformers.sql | 1 + 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/Parsers/ASTColumnsTransformers.cpp b/src/Parsers/ASTColumnsTransformers.cpp index 9ae32aa3f74..cd28d8bfae9 100644 --- a/src/Parsers/ASTColumnsTransformers.cpp +++ b/src/Parsers/ASTColumnsTransformers.cpp @@ -91,21 +91,21 @@ void ASTColumnsExceptTransformer::formatImpl(const FormatSettings & settings, Fo void ASTColumnsExceptTransformer::transform(ASTs & nodes) const { - ASTs expected_columns(children); + std::set expected_columns; + for (size_t i = 0; i < children.size(); ++i) + expected_columns.insert(children[i]->as().name()); for (auto it = nodes.begin(); it != nodes.end();) { bool removed = false; if (const auto * id = it->get()->as()) { - for (int i = expected_columns.size() - 1; i >= 0; --i) + auto expected_column = expected_columns.find(id->shortName()); + if (expected_column != expected_columns.end()) { - if (expected_columns[i]->as().name() == id->shortName()) - { - removed = true; - expected_columns.erase(expected_columns.begin() + i); - it = nodes.erase(it); - } + removed = true; + expected_columns.erase(expected_column); + it = nodes.erase(it); } } @@ -116,15 +116,11 @@ void ASTColumnsExceptTransformer::transform(ASTs & nodes) const if (is_strict && !expected_columns.empty()) { String expected_columns_str; - for (size_t i = 0; i < expected_columns.size(); ++i) - { - if (i > 0) - expected_columns_str += ", "; - expected_columns_str += expected_columns[i]->as().name(); - } + std::for_each(expected_columns.begin(), expected_columns.end(), + [&](String x) { expected_columns_str += (" " + x) ; }); throw Exception( - "Columns transformer EXCEPT expects following column(s) : " + expected_columns_str, + "Columns transformer EXCEPT expects following column(s) :" + expected_columns_str, ErrorCodes::NO_SUCH_COLUMN_IN_TABLE); } } diff --git a/tests/queries/0_stateless/01470_columns_transformers.reference b/tests/queries/0_stateless/01470_columns_transformers.reference index cfe93c927bf..a103d62167b 100644 --- a/tests/queries/0_stateless/01470_columns_transformers.reference +++ b/tests/queries/0_stateless/01470_columns_transformers.reference @@ -9,6 +9,8 @@ 1970-04-11 1970-01-11 1970-11-21 10 324 8 23 +324 +23 101 10 324 121 8 23 222 18 347 diff --git a/tests/queries/0_stateless/01470_columns_transformers.sql b/tests/queries/0_stateless/01470_columns_transformers.sql index bae0a0e5237..2da2f6e9c67 100644 --- a/tests/queries/0_stateless/01470_columns_transformers.sql +++ b/tests/queries/0_stateless/01470_columns_transformers.sql @@ -15,6 +15,7 @@ SELECT columns_transformers.* EXCEPT(j) APPLY(avg) from columns_transformers; SELECT a.* APPLY(toDate) EXCEPT(i, j) APPLY(any) from columns_transformers a; SELECT * EXCEPT STRICT i from columns_transformers; +SELECT * EXCEPT STRICT (i, j) from columns_transformers; SELECT * EXCEPT STRICT i, j1 from columns_transformers; -- { serverError 47 } SELECT * EXCEPT STRICT(i, j1) from columns_transformers; -- { serverError 16 } SELECT * REPLACE STRICT i + 1 AS i from columns_transformers; From 81a720d01c7c1241e25f8661dfa64e965e08f595 Mon Sep 17 00:00:00 2001 From: feng lv Date: Tue, 10 Nov 2020 04:28:27 +0000 Subject: [PATCH 100/425] fix special build --- src/Interpreters/InterpreterSelectWithUnionQuery.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp index f12c949eb92..936f2138c83 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp @@ -44,7 +44,7 @@ struct CustomizeASTSelectWithUnionQueryNormalize selects.push_back(std::move(ast_select)); } - void visit(ASTSelectWithUnionQuery & ast, ASTPtr &) + void visit(ASTSelectWithUnionQuery & ast, ASTPtr &) const { auto & union_modes = ast.list_of_modes; ASTs selects; From 0530c40cd8fdc940e2ad589c08cdb8457ac96641 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Tue, 10 Nov 2020 08:50:32 +0300 Subject: [PATCH 101/425] fixes --- src/Common/ThreadStatus.h | 1 - src/Formats/FormatFactory.cpp | 1 + src/Interpreters/OpenTelemetrySpanLog.cpp | 27 +-- src/Interpreters/ThreadStatusExt.cpp | 47 +++-- .../Formats/Impl/JSONRowOutputFormat.cpp | 173 +++++------------- .../Formats/Impl/JSONRowOutputFormat.h | 13 +- 6 files changed, 93 insertions(+), 169 deletions(-) diff --git a/src/Common/ThreadStatus.h b/src/Common/ThreadStatus.h index 934654cf385..0162a6946c6 100644 --- a/src/Common/ThreadStatus.h +++ b/src/Common/ThreadStatus.h @@ -110,7 +110,6 @@ public: __uint128_t opentelemetry_trace_id; UInt64 opentelemetry_current_span_id; - std::unique_ptr opentelemetry_thread_span; protected: ThreadGroupStatusPtr thread_group; diff --git a/src/Formats/FormatFactory.cpp b/src/Formats/FormatFactory.cpp index 1ff2f0e2a9b..65d1e3ce9fb 100644 --- a/src/Formats/FormatFactory.cpp +++ b/src/Formats/FormatFactory.cpp @@ -79,6 +79,7 @@ FormatSettings getFormatSettings(const Context & context, format_settings.input_allow_errors_num = settings.input_format_allow_errors_num; format_settings.input_allow_errors_ratio = settings.input_format_allow_errors_ratio; format_settings.json.escape_forward_slashes = settings.output_format_json_escape_forward_slashes; + format_settings.json.named_tuple_as_object = settings.output_format_json_named_tuple_as_object; format_settings.json.quote_64bit_integers = settings.output_format_json_quote_64bit_integers; format_settings.json.quote_denormals = settings.output_format_json_quote_denormals; format_settings.null_as_default = settings.input_format_null_as_default; diff --git a/src/Interpreters/OpenTelemetrySpanLog.cpp b/src/Interpreters/OpenTelemetrySpanLog.cpp index 013913d9f2d..186b067c251 100644 --- a/src/Interpreters/OpenTelemetrySpanLog.cpp +++ b/src/Interpreters/OpenTelemetrySpanLog.cpp @@ -40,7 +40,16 @@ void OpenTelemetrySpanLogElement::appendToBlock(MutableColumns & columns) const columns[i++]->insert(finish_time_us); columns[i++]->insert(DateLUT::instance().toDayNum(finish_time_us / 1000000)); columns[i++]->insert(attribute_names); - columns[i++]->insert(attribute_values); + // The user might add some ints values, and we will have Int Field, and the + // insert will fail because the column requires Strings. Convert the fields + // here, because it's hard to remember to convert them in all other places. + Array string_values; + string_values.reserve(attribute_values.size()); + for (auto & value : attribute_values) + { + string_values.push_back(toString(value)); + } + columns[i++]->insert(string_values); } OpenTelemetrySpanHolder::OpenTelemetrySpanHolder(const std::string & _operation_name) @@ -59,8 +68,8 @@ OpenTelemetrySpanHolder::OpenTelemetrySpanHolder(const std::string & _operation_ start_time_us = std::chrono::duration_cast( std::chrono::system_clock::now().time_since_epoch()).count(); - // *** remove this - attribute_names.push_back("start.stacktrace"); + // ****** remove this + attribute_names.push_back("clickhouse.start.stacktrace"); attribute_values.push_back(StackTrace().toString()); thread.opentelemetry_current_span_id = span_id; @@ -70,8 +79,6 @@ OpenTelemetrySpanHolder::~OpenTelemetrySpanHolder() { try { - fmt::print(stderr, "{}\n", StackTrace().toString()); - if (!trace_id) { return; @@ -90,8 +97,6 @@ OpenTelemetrySpanHolder::~OpenTelemetrySpanHolder() return; } - fmt::print(stderr, "1\n"); - auto * context = thread_group->query_context; if (!context) { @@ -104,8 +109,8 @@ OpenTelemetrySpanHolder::~OpenTelemetrySpanHolder() //******** remove this attribute_names.push_back("clickhouse.query_id"); attribute_values.push_back(context->getCurrentQueryId()); - - fmt::print(stderr, "2\n"); + attribute_names.push_back("clickhouse.end.stacktrace"); + attribute_values.push_back(StackTrace().toString()); auto log = context->getOpenTelemetrySpanLog(); if (!log) @@ -114,8 +119,6 @@ OpenTelemetrySpanHolder::~OpenTelemetrySpanHolder() return; } - fmt::print(stderr, "3\n"); - finish_time_us = std::chrono::duration_cast( std::chrono::system_clock::now().time_since_epoch()).count(); @@ -126,8 +129,6 @@ OpenTelemetrySpanHolder::~OpenTelemetrySpanHolder() log->add(OpenTelemetrySpanLogElement( static_cast(*this))); - - fmt::print(stderr, "4\n"); } catch (...) { diff --git a/src/Interpreters/ThreadStatusExt.cpp b/src/Interpreters/ThreadStatusExt.cpp index 1689a1598ba..3d56182a2f7 100644 --- a/src/Interpreters/ThreadStatusExt.cpp +++ b/src/Interpreters/ThreadStatusExt.cpp @@ -113,14 +113,13 @@ void ThreadStatus::setupState(const ThreadGroupStatusPtr & thread_group_) applyQuerySettings(); opentelemetry_trace_id = query_context->getClientInfo().opentelemetry_trace_id; - opentelemetry_current_span_id = query_context->getClientInfo().opentelemetry_span_id; - if (opentelemetry_trace_id) { - // Register the span for our thread. We might not know the name yet - // -- there are no strong constraints on when it is set relative to - // attaching the thread to query. Will set the name when the span ends. - opentelemetry_thread_span.reset(new OpenTelemetrySpanHolder("")); + opentelemetry_current_span_id = thread_local_rng(); + } + else + { + opentelemetry_current_span_id = 0; } } else @@ -319,11 +318,38 @@ void ThreadStatus::detachQuery(bool exit_if_already_detached, bool thread_exits) assertState({ThreadState::AttachedToQuery}, __PRETTY_FUNCTION__); - if (opentelemetry_thread_span) + std::shared_ptr opentelemetry_span_log; + if (opentelemetry_trace_id && query_context) { - opentelemetry_thread_span->operation_name = getThreadName(); - opentelemetry_thread_span->attribute_names.push_back("clickhouse.thread_id"); - opentelemetry_thread_span->attribute_values.push_back(thread_id); + opentelemetry_span_log = query_context->getOpenTelemetrySpanLog(); + } + + if (opentelemetry_span_log) + { + // Log the current thread span. + // We do this manually, because we can't use OpenTelemetrySpanHolder as a + // ThreadStatus member, because of linking issues. This file is linked + // separately, so we can reference OpenTelemetrySpanLog here, but if we had + // the span holder as a field, we would have to reference it in the + // destructor, which is in another library. + OpenTelemetrySpanLogElement span; + + span.trace_id = opentelemetry_trace_id; + // Might be problematic if some span holder isn't finished by the time + // we detach this thread... + span.span_id = opentelemetry_current_span_id; + span.parent_span_id = query_context->getClientInfo().opentelemetry_span_id; + span.operation_name = getThreadName(); + span.start_time_us = query_start_time_microseconds; + span.finish_time_us = + std::chrono::duration_cast( + std::chrono::system_clock::now().time_since_epoch()).count(); + // We could use a more precise and monotonic counter for this. + span.duration_ns = (span.finish_time_us - span.start_time_us) * 1000; + span.attribute_names.push_back("clickhouse.thread_id"); + span.attribute_values.push_back(thread_id); + + opentelemetry_span_log->add(span); } finalizeQueryProfiler(); @@ -338,7 +364,6 @@ void ThreadStatus::detachQuery(bool exit_if_already_detached, bool thread_exits) query_id.clear(); query_context = nullptr; - opentelemetry_thread_span = nullptr; opentelemetry_trace_id = 0; opentelemetry_current_span_id = 0; thread_group.reset(); diff --git a/src/Processors/Formats/Impl/JSONRowOutputFormat.cpp b/src/Processors/Formats/Impl/JSONRowOutputFormat.cpp index babb217ea15..517f126060f 100644 --- a/src/Processors/Formats/Impl/JSONRowOutputFormat.cpp +++ b/src/Processors/Formats/Impl/JSONRowOutputFormat.cpp @@ -1,50 +1,12 @@ -#include - -#include -#include -#include -#include #include #include +#include #include namespace DB { -namespace ErrorCodes -{ - extern const int BAD_ARGUMENTS; -} - -void JSONRowOutputFormat::addColumn(String name, DataTypePtr type, - bool & need_validate_utf8, std::string tabs) -{ - if (!type->textCanContainOnlyValidUTF8()) - need_validate_utf8 = true; - - WriteBufferFromOwnString buf; - writeJSONString(name, buf, settings); - - const auto * as_tuple = typeid_cast(type.get()); - const bool recurse = settings.json.named_tuple_as_object - && as_tuple && as_tuple->haveExplicitNames(); - - fields.emplace_back(FieldInfo{buf.str(), type, recurse, tabs}); - - if (recurse) - { - const auto & element_types = as_tuple->getElements(); - const auto & names = as_tuple->getElementNames(); - - assert(element_types.size() == names.size()); - for (size_t i = 0; i < element_types.size(); i++) - { - addColumn(names[i], element_types[i], need_validate_utf8, tabs + "\t"); - } - } -} - JSONRowOutputFormat::JSONRowOutputFormat( WriteBuffer & out_, const Block & header, @@ -55,21 +17,19 @@ JSONRowOutputFormat::JSONRowOutputFormat( { const auto & sample = getPort(PortKind::Main).getHeader(); NamesAndTypesList columns(sample.getNamesAndTypesList()); + fields.assign(columns.begin(), columns.end()); - fields.reserve(columns.size()); - - const std::string initial_tabs = settings.json.write_metadata ? "\t\t\t" : "\t\t"; bool need_validate_utf8 = false; - for (const auto & column : columns) + for (size_t i = 0; i < sample.columns(); ++i) { - addColumn(column.name, column.type, need_validate_utf8, initial_tabs); - } + if (!sample.getByPosition(i).type->textCanContainOnlyValidUTF8()) + need_validate_utf8 = true; -// for (size_t i = 0; i < fields.size(); i++) -// { -// fmt::print(stderr, "{}: '{}' '{}' '{}\n", -// i, fields[i].name, fields[i].type->getName(), fields[i].recurse); -// } + WriteBufferFromOwnString buf; + writeJSONString(fields[i].name, buf, settings); + + fields[i].name = buf.str(); + } if (need_validate_utf8) { @@ -83,76 +43,40 @@ JSONRowOutputFormat::JSONRowOutputFormat( void JSONRowOutputFormat::writePrefix() { - if (settings.json.write_metadata) + writeCString("{\n", *ostr); + writeCString("\t\"meta\":\n", *ostr); + writeCString("\t[\n", *ostr); + + for (size_t i = 0; i < fields.size(); ++i) { - writeCString("{\n", *ostr); - writeCString("\t\"meta\":\n", *ostr); - writeCString("\t[\n", *ostr); + writeCString("\t\t{\n", *ostr); - for (size_t i = 0; i < fields.size(); ++i) - { - writeCString("\t\t{\n", *ostr); - - writeCString("\t\t\t\"name\": ", *ostr); - writeString(fields[i].name, *ostr); - writeCString(",\n", *ostr); - writeCString("\t\t\t\"type\": ", *ostr); - writeJSONString(fields[i].type->getName(), *ostr, settings); - writeChar('\n', *ostr); - - writeCString("\t\t}", *ostr); - if (i + 1 < fields.size()) - writeChar(',', *ostr); - writeChar('\n', *ostr); - } - - writeCString("\t],\n", *ostr); + writeCString("\t\t\t\"name\": ", *ostr); + writeString(fields[i].name, *ostr); + writeCString(",\n", *ostr); + writeCString("\t\t\t\"type\": ", *ostr); + writeJSONString(fields[i].type->getName(), *ostr, settings); + writeChar('\n', *ostr); + + writeCString("\t\t}", *ostr); + if (i + 1 < fields.size()) + writeChar(',', *ostr); writeChar('\n', *ostr); - writeCString("\t\"data\":\n", *ostr); - writeCString("\t", *ostr); } - writeCString("[\n", *ostr); + + writeCString("\t],\n", *ostr); + writeChar('\n', *ostr); + writeCString("\t\"data\":\n", *ostr); + writeCString("\t[\n", *ostr); } + void JSONRowOutputFormat::writeField(const IColumn & column, const IDataType & type, size_t row_num) { -// fmt::print(stderr, "write field column '{}' type '{}'\n", -// column.getName(), type.getName()); - - writeString(fields[field_number].tabs, *ostr); + writeCString("\t\t\t", *ostr); writeString(fields[field_number].name, *ostr); writeCString(": ", *ostr); - // Sanity check: the input column type is the same as in header block. - // If I don't write out the raw pointer explicitly, for some reason clang - // complains about side effect in dereferencing the pointer: - // src/Processors/Formats/Impl/JSONRowOutputFormat.cpp:120:35: warning: expression with side effects will be evaluated despite being used as an operand to 'typeid' [-Wpotentially-evaluated-expression] - [[maybe_unused]] const IDataType * raw_ptr = fields[field_number].type.get(); - assert(typeid(type) == typeid(*raw_ptr)); - - if (fields[field_number].recurse) - { - const auto & tabs = fields[field_number].tabs; - ++field_number; - const auto & tuple_column = assert_cast(column); - const auto & nested_columns = tuple_column.getColumns(); - writeCString("{\n", *ostr); - for (size_t i = 0; i < nested_columns.size(); i++) - { - // field_number is incremented inside, and should match the nested - // columns. - writeField(*nested_columns[i], *fields[field_number].type, row_num); - if (i + 1 < nested_columns.size()) - { - writeCString(",", *ostr); - } - writeCString("\n", *ostr); - } - writeString(tabs, *ostr); - writeCString("}", *ostr); - return; - } - if (yield_strings) { WriteBufferFromOwnString buf; @@ -220,12 +144,6 @@ void JSONRowOutputFormat::writeSuffix() void JSONRowOutputFormat::writeBeforeTotals() { - if (!settings.json.write_metadata) - { - throw Exception(ErrorCodes::BAD_ARGUMENTS, - "Cannot output totals in JSON format without metadata"); - } - writeCString(",\n", *ostr); writeChar('\n', *ostr); writeCString("\t\"totals\":\n", *ostr); @@ -254,12 +172,6 @@ void JSONRowOutputFormat::writeAfterTotals() void JSONRowOutputFormat::writeBeforeExtremes() { - if (!settings.json.write_metadata) - { - throw Exception(ErrorCodes::BAD_ARGUMENTS, - "Cannot output extremes in JSON format without metadata"); - } - writeCString(",\n", *ostr); writeChar('\n', *ostr); writeCString("\t\"extremes\":\n", *ostr); @@ -305,20 +217,17 @@ void JSONRowOutputFormat::writeAfterExtremes() void JSONRowOutputFormat::writeLastSuffix() { - if (settings.json.write_metadata) - { - writeCString(",\n\n", *ostr); - writeCString("\t\"rows\": ", *ostr); - writeIntText(row_count, *ostr); + writeCString(",\n\n", *ostr); + writeCString("\t\"rows\": ", *ostr); + writeIntText(row_count, *ostr); - writeRowsBeforeLimitAtLeast(); + writeRowsBeforeLimitAtLeast(); - if (settings.write_statistics) - writeStatistics(); + if (settings.write_statistics) + writeStatistics(); - writeChar('\n', *ostr); - writeCString("}\n", *ostr); - } + writeChar('\n', *ostr); + writeCString("}\n", *ostr); ostr->next(); } diff --git a/src/Processors/Formats/Impl/JSONRowOutputFormat.h b/src/Processors/Formats/Impl/JSONRowOutputFormat.h index a4593663aeb..88b74afbabd 100644 --- a/src/Processors/Formats/Impl/JSONRowOutputFormat.h +++ b/src/Processors/Formats/Impl/JSONRowOutputFormat.h @@ -70,8 +70,6 @@ protected: void writeRowsBeforeLimitAtLeast(); void writeStatistics(); - void addColumn(String name, DataTypePtr type, bool & need_validate_utf8, - std::string tabs); std::unique_ptr validating_ostr; /// Validates UTF-8 sequences, replaces bad sequences with replacement character. WriteBuffer * ostr; @@ -80,16 +78,7 @@ protected: size_t row_count = 0; bool applied_limit = false; size_t rows_before_limit = 0; - - struct FieldInfo - { - String name; - DataTypePtr type; - bool recurse = false; - std::string tabs; - }; - - std::vector fields; + NamesAndTypes fields; Progress progress; Stopwatch watch; From 293ae54fab9cae6347a16c6e1f82945395781f98 Mon Sep 17 00:00:00 2001 From: hexiaoting Date: Tue, 10 Nov 2020 15:18:12 +0800 Subject: [PATCH 102/425] Modify codes to make logical clearly --- src/Parsers/ASTColumnsTransformers.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/Parsers/ASTColumnsTransformers.cpp b/src/Parsers/ASTColumnsTransformers.cpp index cd28d8bfae9..00a3ed68fd8 100644 --- a/src/Parsers/ASTColumnsTransformers.cpp +++ b/src/Parsers/ASTColumnsTransformers.cpp @@ -92,24 +92,23 @@ void ASTColumnsExceptTransformer::formatImpl(const FormatSettings & settings, Fo void ASTColumnsExceptTransformer::transform(ASTs & nodes) const { std::set expected_columns; - for (size_t i = 0; i < children.size(); ++i) - expected_columns.insert(children[i]->as().name()); + for (const auto & child : children) + expected_columns.insert(child->as().name()); for (auto it = nodes.begin(); it != nodes.end();) { - bool removed = false; if (const auto * id = it->get()->as()) { auto expected_column = expected_columns.find(id->shortName()); if (expected_column != expected_columns.end()) { - removed = true; expected_columns.erase(expected_column); it = nodes.erase(it); } + else + ++it; } - - if (!removed) + else ++it; } From 9d3788f264b1287815e0e69d58acbac8900dd17a Mon Sep 17 00:00:00 2001 From: myrrc Date: Tue, 10 Nov 2020 16:51:23 +0300 Subject: [PATCH 103/425] fixing UB overflow in line 274 in wide_integer_impl.h --- base/common/wide_integer_impl.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/base/common/wide_integer_impl.h b/base/common/wide_integer_impl.h index 1d5deb3051e..1940129ca98 100644 --- a/base/common/wide_integer_impl.h +++ b/base/common/wide_integer_impl.h @@ -232,6 +232,7 @@ struct integer::_impl constexpr uint64_t max_uint = std::numeric_limits::max(); constexpr int64_t max_int = std::numeric_limits::max(); constexpr size_t max_sizet = std::numeric_limits::max(); + constexpr long double max_int_long_double = static_cast(max_int); if ((rhs > 0 && rhs < max_uint) || (rhs < 0 && rhs > std::numeric_limits::min())) @@ -268,13 +269,18 @@ struct integer::_impl "On your system long double has less than 64 precision bits," "which may result in UB when initializing double from int64_t"); - if (r - to_diff > static_cast(max_int)) + if (long double diff = r - to_diff; diff > max_int_long_double) { - self += max_int; - self += static_cast(r - to_diff - max_int); + uint64_t diff_multiplier = max_uint; + + if (const long double multiplier = diff / max_int_long_double; multiplier < max_uint) + diff_multiplier = multiplier; + + self += max_int_long_double * diff_multiplier; + self += static_cast(diff - max_int_long_double * diff_multiplier); } else - self += to_Integral(r - to_diff); + self += static_cast(diff); if (rhs < 0) self = -self; From ec2c2ec576f11ed96c0d5072bdd99f5cf90de2f8 Mon Sep 17 00:00:00 2001 From: alesapin Date: Tue, 10 Nov 2020 17:09:32 +0300 Subject: [PATCH 104/425] Set expire after we set close --- src/Common/ZooKeeper/ZooKeeperImpl.cpp | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/Common/ZooKeeper/ZooKeeperImpl.cpp b/src/Common/ZooKeeper/ZooKeeperImpl.cpp index f5c57781eef..4df4882a25b 100644 --- a/src/Common/ZooKeeper/ZooKeeperImpl.cpp +++ b/src/Common/ZooKeeper/ZooKeeperImpl.cpp @@ -1114,6 +1114,7 @@ void ZooKeeper::sendThread() info.request->probably_sent = true; info.request->write(*out); + /// We sent close request, exit if (info.request->xid == close_xid) break; } @@ -1342,13 +1343,8 @@ void ZooKeeper::receiveEvent() void ZooKeeper::finalize(bool error_send, bool error_receive) { - { - std::lock_guard lock(push_request_mutex); - - if (expired) - return; - expired = true; - } + if (expired) + return; active_session_metric_increment.destroy(); @@ -1356,7 +1352,7 @@ void ZooKeeper::finalize(bool error_send, bool error_receive) { if (!error_send) { - /// Send close event. This also signals sending thread to wakeup and then stop. + /// Send close event. This also signals sending thread to stop. try { close(); @@ -1364,12 +1360,22 @@ void ZooKeeper::finalize(bool error_send, bool error_receive) catch (...) { /// This happens for example, when "Cannot push request to queue within operation timeout". + /// Just mark session expired in case of error on close request. + std::lock_guard lock(push_request_mutex); + expired = true; tryLogCurrentException(__PRETTY_FUNCTION__); } + /// Send thread will exit after sending close request or on expired flag send_thread.join(); } + /// Set expired flag after we sent close event + { + std::lock_guard lock(push_request_mutex); + expired = true; + } + try { /// This will also wakeup the receiving thread. From c80e05f18eeca26b3ef69333b1c286bf6c596d19 Mon Sep 17 00:00:00 2001 From: myrrc Date: Tue, 10 Nov 2020 19:35:14 +0300 Subject: [PATCH 105/425] another attempt to fix UB in wide int lib --- base/common/wide_integer_impl.h | 63 ++++++++++++++++----------------- 1 file changed, 31 insertions(+), 32 deletions(-) diff --git a/base/common/wide_integer_impl.h b/base/common/wide_integer_impl.h index 1940129ca98..4b4d81ff4e3 100644 --- a/base/common/wide_integer_impl.h +++ b/base/common/wide_integer_impl.h @@ -7,6 +7,7 @@ #include "throwError.h" #include #include +#include namespace wide { @@ -229,35 +230,19 @@ struct integer::_impl constexpr static void wide_integer_from_bultin(integer & self, double rhs) noexcept { - constexpr uint64_t max_uint = std::numeric_limits::max(); constexpr int64_t max_int = std::numeric_limits::max(); - constexpr size_t max_sizet = std::numeric_limits::max(); - constexpr long double max_int_long_double = static_cast(max_int); + constexpr int64_t min_int = std::numeric_limits::min(); - if ((rhs > 0 && rhs < max_uint) || - (rhs < 0 && rhs > std::numeric_limits::min())) + constexpr long double max_int_long_double = static_cast(max_int); + constexpr long double min_int_long_double = static_cast(min_int); + + if ((rhs > 0 && rhs < max_int) || + (rhs < 0 && rhs > min_int)) { self = to_Integral(rhs); return; } - long double r = rhs; - - if (r < 0) - r = -r; - - const long double div = r / max_int; - size_t count = max_sizet; - - /// r / max_uint may not fit in size_t - if (div <= static_cast(max_sizet)) - count = div; - - self = count; - self *= max_uint; - long double to_diff = count; - to_diff *= max_uint; - /// There are values in int64 that have more than 53 significant bits (in terms of double /// representation). Such values, being promoted to double, are rounded up or down. If they are rounded up, /// the result may not fit in 64 bits. @@ -269,18 +254,32 @@ struct integer::_impl "On your system long double has less than 64 precision bits," "which may result in UB when initializing double from int64_t"); - if (long double diff = r - to_diff; diff > max_int_long_double) - { - uint64_t diff_multiplier = max_uint; + /// Always >= 0 + const long double rhs_long_double = (static_cast(rhs) < 0) + ? -static_cast(rhs) + : rhs; - if (const long double multiplier = diff / max_int_long_double; multiplier < max_uint) - diff_multiplier = multiplier; + const long double rhs_max_int_count = rhs_long_double / max_int; - self += max_int_long_double * diff_multiplier; - self += static_cast(diff - max_int_long_double * diff_multiplier); - } - else - self += static_cast(diff); + // Won't fit only if long double can hold values >= 2^(64 * 3). + const uint64_t rhs_max_int_count_max_int_count = rhs_max_int_count / max_int; + + long double rhs_max_int_count_acc = rhs_max_int_count; + + self = 0; + + for (uint64_t i = 0; i < rhs_max_int_count_max_int_count; ++i) + self += max_int; + + self *= max_int; + + const long double rhs_div_max_int = rhs_max_int_count * max_int; + const long double rhs_mod_max_int = rhs_long_double - rhs_div_max_int; + + assert(rhs_mod_max_int < max_int_long_double); + assert(rhs_mod_max_int > min_int_long_double); + + self += static_cast(rhs_mod_max_int); if (rhs < 0) self = -self; From 96598dcbb8158b8ed8962432822fb41e5ed4e242 Mon Sep 17 00:00:00 2001 From: myrrc Date: Tue, 10 Nov 2020 19:48:32 +0300 Subject: [PATCH 106/425] fixed the UB loop --- base/common/wide_integer_impl.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/base/common/wide_integer_impl.h b/base/common/wide_integer_impl.h index 4b4d81ff4e3..f2d94bcd80c 100644 --- a/base/common/wide_integer_impl.h +++ b/base/common/wide_integer_impl.h @@ -261,15 +261,16 @@ struct integer::_impl const long double rhs_max_int_count = rhs_long_double / max_int; - // Won't fit only if long double can hold values >= 2^(64 * 3). - const uint64_t rhs_max_int_count_max_int_count = rhs_max_int_count / max_int; - + // We can't just get the number of iterations like rhs_max_int_count / max_int as it may not fit it int64_t. long double rhs_max_int_count_acc = rhs_max_int_count; self = 0; - for (uint64_t i = 0; i < rhs_max_int_count_max_int_count; ++i) + while (rhs_max_int_count_acc > max_int_long_double) + { self += max_int; + rhs_max_int_count_acc -= max_int_long_double; + } self *= max_int; From 21dd9a3ec3eadccd484f873cdcf53f977d76164a Mon Sep 17 00:00:00 2001 From: myrrc Date: Tue, 10 Nov 2020 20:35:05 +0300 Subject: [PATCH 107/425] fix unused var --- base/common/wide_integer_impl.h | 1 - 1 file changed, 1 deletion(-) diff --git a/base/common/wide_integer_impl.h b/base/common/wide_integer_impl.h index f2d94bcd80c..f6915b64cf7 100644 --- a/base/common/wide_integer_impl.h +++ b/base/common/wide_integer_impl.h @@ -234,7 +234,6 @@ struct integer::_impl constexpr int64_t min_int = std::numeric_limits::min(); constexpr long double max_int_long_double = static_cast(max_int); - constexpr long double min_int_long_double = static_cast(min_int); if ((rhs > 0 && rhs < max_int) || (rhs < 0 && rhs > min_int)) From a0b6aa5d9f3ffb1bd99cbe55318d25b05d079103 Mon Sep 17 00:00:00 2001 From: myrrc Date: Tue, 10 Nov 2020 21:14:40 +0300 Subject: [PATCH 108/425] fixing the test after UB fix --- tests/queries/0_stateless/01035_avg.reference | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/queries/0_stateless/01035_avg.reference b/tests/queries/0_stateless/01035_avg.reference index 42d23e98908..9ad7fc76be1 100644 --- a/tests/queries/0_stateless/01035_avg.reference +++ b/tests/queries/0_stateless/01035_avg.reference @@ -1,5 +1,5 @@ nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan --0.5 -0.5 -0.5 -0.5 -0.5 -0.5 127.493856 32355.57552 499999.5 499999.5 499999.5 499999.5 499999.5 -0.000500002 0.49999949943727 -0.000005 -1.702e-8 +-0.5 -0.5 -0.5 -0.5 -0.5 -0.5 127.493856 32355.57552 499999.5 499999.5 499999.5 499999.5 499999.5 -0.000500002 0.49999949943727 -0.000005 -0.000005291390805620593 -2767.546272 999999 -0.50000449943727 From cfa95d64fc475c02df6779bd3aa547912b8d4ef7 Mon Sep 17 00:00:00 2001 From: myrrc Date: Tue, 10 Nov 2020 21:21:50 +0300 Subject: [PATCH 109/425] fixing the debug build assert --- base/common/wide_integer_impl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base/common/wide_integer_impl.h b/base/common/wide_integer_impl.h index f6915b64cf7..5b13c56e2f7 100644 --- a/base/common/wide_integer_impl.h +++ b/base/common/wide_integer_impl.h @@ -277,7 +277,7 @@ struct integer::_impl const long double rhs_mod_max_int = rhs_long_double - rhs_div_max_int; assert(rhs_mod_max_int < max_int_long_double); - assert(rhs_mod_max_int > min_int_long_double); + assert(rhs_mod_max_int > static_cast(min_int)); self += static_cast(rhs_mod_max_int); From 0f9065a91f94237d56ae63743baaaef2cbd1bcb3 Mon Sep 17 00:00:00 2001 From: feng lv Date: Tue, 10 Nov 2020 06:42:38 +0000 Subject: [PATCH 110/425] fix fix --- src/Interpreters/InterpreterInsertQuery.cpp | 11 +++++++++-- src/Interpreters/InterpreterSelectWithUnionQuery.cpp | 9 +++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/Interpreters/InterpreterInsertQuery.cpp b/src/Interpreters/InterpreterInsertQuery.cpp index e2830322024..bf8849bd6dc 100644 --- a/src/Interpreters/InterpreterInsertQuery.cpp +++ b/src/Interpreters/InterpreterInsertQuery.cpp @@ -282,10 +282,17 @@ BlockIO InterpreterInsertQuery::execute() if (settings.optimize_trivial_insert_select) { - const auto & selects = query.select->as().list_of_selects->children; + const auto & select_query = query.select->as(); + const auto & selects = select_query.list_of_selects->children; + const auto & union_modes = select_query.list_of_modes; + /// ASTSelectWithUnionQuery is not normalized now, so it may pass some querys which can be Trivial select querys is_trivial_insert_select - = std::all_of(selects.begin(), selects.end(), [](const ASTPtr & select) { return isTrivialSelect(select); }); + = std::all_of( + union_modes.begin(), + union_modes.end(), + [](const ASTSelectWithUnionQuery::Mode & mode) { return mode == ASTSelectWithUnionQuery::Mode::ALL; }) + && std::all_of(selects.begin(), selects.end(), [](const ASTPtr & select) { return isTrivialSelect(select); }); } if (is_trivial_insert_select) diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp index 936f2138c83..1932f49ddc9 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp @@ -122,6 +122,7 @@ struct CustomizeASTSelectWithUnionQueryNormalize } }; +/// We need normalize children first, so we should visit AST tree bottom up using CustomizeASTSelectWithUnionQueryNormalizeVisitor = InDepthNodeVisitor, false>; @@ -136,6 +137,14 @@ InterpreterSelectWithUnionQuery::InterpreterSelectWithUnionQuery( { CustomizeASTSelectWithUnionQueryNormalizeVisitor::Data union_default_mode{context->getSettingsRef().union_default_mode}; CustomizeASTSelectWithUnionQueryNormalizeVisitor(union_default_mode).visit(query_ptr); + + /// After normalization, if it only has one ASTSelectWithUnionQuery child, + /// we can lift it up, this can reduce one unnecessary recursion later. + if (ast.list_of_selects->children.size() == 1 && ast.list_of_selects->children.at(0)->as()) + { + query_ptr = std::move(ast.list_of_selects->children.at(0)); + ast = query_ptr->as(); + } } size_t num_children = ast.list_of_selects->children.size(); From bd3f9e2a22966d6cf92b3b7c6895515e19662119 Mon Sep 17 00:00:00 2001 From: tavplubix Date: Wed, 11 Nov 2020 13:09:48 +0300 Subject: [PATCH 111/425] Fix strange code in InterpreterShowAccessQuery --- src/Interpreters/InterpreterShowAccessQuery.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Interpreters/InterpreterShowAccessQuery.cpp b/src/Interpreters/InterpreterShowAccessQuery.cpp index 5f28c49c0bc..ecac962878c 100644 --- a/src/Interpreters/InterpreterShowAccessQuery.cpp +++ b/src/Interpreters/InterpreterShowAccessQuery.cpp @@ -78,7 +78,7 @@ ASTs InterpreterShowAccessQuery::getCreateAndGrantQueries() const for (const auto & entity : entities) { create_queries.push_back(InterpreterShowCreateAccessEntityQuery::getCreateQuery(*entity, access_control)); - if (entity->isTypeOf(EntityType::USER) || entity->isTypeOf(EntityType::USER)) + if (entity->isTypeOf(EntityType::USER) || entity->isTypeOf(EntityType::ROLE)) boost::range::push_back(grant_queries, InterpreterShowGrantsQuery::getGrantQueries(*entity, access_control)); } From f04bd0643d3df34b932fa8b3a4770390a0cc9fa2 Mon Sep 17 00:00:00 2001 From: feng lv Date: Wed, 11 Nov 2020 03:45:06 +0000 Subject: [PATCH 112/425] fix test fix fix --- .../InterpreterSelectWithUnionQuery.cpp | 12 +- src/Parsers/ParserSelectWithUnionQuery.cpp | 2 +- ..._explain_select_with_union_query.reference | 216 ++++++++++++------ 3 files changed, 150 insertions(+), 80 deletions(-) diff --git a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp index 1932f49ddc9..a836dc8b271 100644 --- a/src/Interpreters/InterpreterSelectWithUnionQuery.cpp +++ b/src/Interpreters/InterpreterSelectWithUnionQuery.cpp @@ -33,10 +33,8 @@ struct CustomizeASTSelectWithUnionQueryNormalize { if (auto * inner_union = ast_select->as()) { - /// We need flatten from last to first - for (auto child = inner_union->list_of_selects->children.rbegin(); child != inner_union->list_of_selects->children.rend(); - ++child) - getSelectsFromUnionListNode(*child, selects); + for (auto & child : inner_union->list_of_selects->children) + getSelectsFromUnionListNode(child, selects); return; } @@ -85,13 +83,13 @@ struct CustomizeASTSelectWithUnionQueryNormalize auto distinct_list = std::make_shared(); distinct_list->list_of_selects = std::make_shared(); distinct_list->children.push_back(distinct_list->list_of_selects); - for (int j = i + 1; j >= 0; j--) + + for (int j = 0; j <= i + 1; ++j) { getSelectsFromUnionListNode(select_list[j], distinct_list->list_of_selects->children); } + distinct_list->union_mode = ASTSelectWithUnionQuery::Mode::DISTINCT; - // Reverse children list - std::reverse(distinct_list->list_of_selects->children.begin(), distinct_list->list_of_selects->children.end()); distinct_list->is_normalized = true; selects.push_back(std::move(distinct_list)); break; diff --git a/src/Parsers/ParserSelectWithUnionQuery.cpp b/src/Parsers/ParserSelectWithUnionQuery.cpp index efda8e43ca9..9a644d8e937 100644 --- a/src/Parsers/ParserSelectWithUnionQuery.cpp +++ b/src/Parsers/ParserSelectWithUnionQuery.cpp @@ -38,7 +38,7 @@ bool ParserSelectWithUnionQuery::parseImpl(Pos & pos, ASTPtr & node, Expected & auto select_with_union_query = std::make_shared(); node = select_with_union_query; - select_with_union_query->list_of_selects = list_node; //std::make_shared(); + select_with_union_query->list_of_selects = list_node; select_with_union_query->children.push_back(select_with_union_query->list_of_selects); select_with_union_query->list_of_modes = parser.getUnionModes(); diff --git a/tests/queries/0_stateless/01556_explain_select_with_union_query.reference b/tests/queries/0_stateless/01556_explain_select_with_union_query.reference index cf892c2c591..2d09a1f8625 100644 --- a/tests/queries/0_stateless/01556_explain_select_with_union_query.reference +++ b/tests/queries/0_stateless/01556_explain_select_with_union_query.reference @@ -1,252 +1,324 @@ Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Distinct Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Distinct Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Distinct Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Distinct Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Distinct Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Distinct Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Distinct Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Distinct Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Distinct Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Distinct Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Distinct Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Distinct Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Distinct Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Union Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) Expression (Projection) Expression (Before ORDER BY and SELECT) - ReadFromStorage (Read from SystemOne) + SettingQuotaAndLimits (Set limits and quota after reading from storage) + ReadFromStorage (SystemOne) From 57ac63ca340901e5802ed62a4973f687b7578797 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Wed, 11 Nov 2020 19:58:54 +0300 Subject: [PATCH 113/425] Minor change in query profiler --- src/Common/QueryProfiler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Common/QueryProfiler.cpp b/src/Common/QueryProfiler.cpp index 07e145359d8..504d884dce0 100644 --- a/src/Common/QueryProfiler.cpp +++ b/src/Common/QueryProfiler.cpp @@ -176,7 +176,7 @@ template class QueryProfilerBase; template class QueryProfilerBase; QueryProfilerReal::QueryProfilerReal(const UInt64 thread_id, const UInt32 period) - : QueryProfilerBase(thread_id, CLOCK_REALTIME, period, SIGUSR1) + : QueryProfilerBase(thread_id, CLOCK_MONOTONIC, period, SIGUSR1) {} void QueryProfilerReal::signalHandler(int sig, siginfo_t * info, void * context) From dbec289c9a60a3c94869657147eaa499b8b8951f Mon Sep 17 00:00:00 2001 From: vdimir Date: Thu, 12 Nov 2020 00:58:30 +0300 Subject: [PATCH 114/425] [wip] rewrite ip_dict data struct, fix bugs, add tests --- src/Common/IPv6ToBinary.cpp | 25 - src/Common/IPv6ToBinary.h | 4 - src/Dictionaries/TrieDictionary.cpp | 587 +++++++++++++----- src/Dictionaries/TrieDictionary.h | 46 +- .../01018_ddl_dictionaries_special.reference | 8 - .../01018_ddl_dictionaries_special.sql | 31 - .../0_stateless/01018_ip_dictionary.reference | 0 .../0_stateless/01018_ip_dictionary.sql | 345 ++++++++++ 8 files changed, 810 insertions(+), 236 deletions(-) create mode 100644 tests/queries/0_stateless/01018_ip_dictionary.reference create mode 100644 tests/queries/0_stateless/01018_ip_dictionary.sql diff --git a/src/Common/IPv6ToBinary.cpp b/src/Common/IPv6ToBinary.cpp index 00c1b520a7a..e3d14c796ce 100644 --- a/src/Common/IPv6ToBinary.cpp +++ b/src/Common/IPv6ToBinary.cpp @@ -30,29 +30,4 @@ std::array IPv6ToBinary(const Poco::Net::IPAddress & address) return res; } - -UInt32 IPv4ToBinary(const Poco::Net::IPAddress & address, bool & success) -{ - if (!address.isIPv4Mapped()) - { - success = false; - return 0; - } - - success = true; - if (Poco::Net::IPAddress::IPv6 == address.family()) - { - auto raw = reinterpret_cast(address.addr()); - return *reinterpret_cast(&raw[12]); - } - else if (Poco::Net::IPAddress::IPv4 == address.family()) - { - auto raw = reinterpret_cast(address.addr()); - return *reinterpret_cast(raw); - } - - success = false; - return 0; -} - } diff --git a/src/Common/IPv6ToBinary.h b/src/Common/IPv6ToBinary.h index 4f2cdd0ea21..a3e82ee08f5 100644 --- a/src/Common/IPv6ToBinary.h +++ b/src/Common/IPv6ToBinary.h @@ -10,8 +10,4 @@ namespace DB /// Convert IP address to 16-byte array with IPv6 data (big endian). If it's an IPv4, map it to IPv6. std::array IPv6ToBinary(const Poco::Net::IPAddress & address); -/// Convert IP address to UInt32 (big endian) if it's IPv4 or IPv4 mapped to IPv6. -/// Sets success variable to true if succeed. -UInt32 IPv4ToBinary(const Poco::Net::IPAddress & address, bool & success); - } diff --git a/src/Dictionaries/TrieDictionary.cpp b/src/Dictionaries/TrieDictionary.cpp index 28769780027..c475672f39b 100644 --- a/src/Dictionaries/TrieDictionary.cpp +++ b/src/Dictionaries/TrieDictionary.cpp @@ -1,9 +1,9 @@ #include "TrieDictionary.h" #include -#include -#include #include #include +#include +#include #include #include #include @@ -26,38 +26,126 @@ namespace ErrorCodes extern const int DICTIONARY_IS_EMPTY; } +namespace +{ + struct IPRecord + { + Poco::Net::IPAddress addr; + UInt8 prefix; + size_t row; + }; + + struct IPv4Subnet + { + UInt32 addr; + UInt8 prefix; + }; + + struct IPv6Subnet + { + const uint8_t * addr; + UInt8 prefix; + }; +} + static void validateKeyTypes(const DataTypes & key_types) { if (key_types.size() < 1 && 2 < key_types.size()) - throw Exception{"Expected a single IP address or IP with mask", - ErrorCodes::TYPE_MISMATCH}; + throw Exception{"Expected a single IP address or IP with mask", ErrorCodes::TYPE_MISMATCH}; - if (key_types.size() == 1) + const auto & actual_type = key_types[0]->getName(); + if (actual_type != "UInt32" && actual_type != "FixedString(16)") + throw Exception{"Key does not match, expected either UInt32 or FixedString(16)", ErrorCodes::TYPE_MISMATCH}; + + if (key_types.size() > 1) { - const auto & actual_type = key_types[0]->getName(); - if (actual_type != "UInt32" && actual_type != "FixedString(16)") - throw Exception{"Key does not match, expected either UInt32 or FixedString(16)", ErrorCodes::TYPE_MISMATCH}; - return; + const auto * mask_col_type = typeid_cast(key_types[1].get()); + if (mask_col_type == nullptr) + throw Exception{"Mask do not match, expected UInt8", ErrorCodes::TYPE_MISMATCH}; } - - const auto * ip_col_type = typeid_cast(key_types[0].get()); - const auto * mask_col_type = typeid_cast(key_types[1].get()); - bool type_ok = ip_col_type && mask_col_type && ip_col_type->getN() == IPV6_BINARY_LENGTH; - if (!type_ok) - throw Exception{"Keys do not match, {FixedString(16), UInt8}", ErrorCodes::TYPE_MISMATCH}; } -/// Create IPAddress from 16 byte array converting to ipv4 if possible -static Poco::Net::IPAddress ip4or6fromBytes(const uint8_t * data) +static inline bool compPrefixes(UInt8 a, UInt8 b) { - Poco::Net::IPAddress ipaddr(reinterpret_cast(data), IPV6_BINARY_LENGTH); + return a < b; +} - // try to consider as ipv4 - bool is_v4 = false; - if (auto addr_v4 = IPv4ToBinary(ipaddr, is_v4); is_v4) - return Poco::Net::IPAddress(reinterpret_cast(&addr_v4), IPV4_BINARY_LENGTH); +/// Convert mapped IPv6 to IPv4 if possible +inline static UInt32 mappedIPv4ToBinary(const uint8_t * addr, bool & success) +{ + const UInt16* words = reinterpret_cast(addr); + auto has_zero_prefix = words[0] == 0 && words[1] == 0 && words[2] == 0 && words[3] == 0 && words[4] == 0; + success = has_zero_prefix && Poco::ByteOrder::fromNetwork(words[5]) == 0xFFFF; + if (!success) + return 0; + return Poco::ByteOrder::fromNetwork(*reinterpret_cast(&addr[6])); +} - return ipaddr; +/// Convert IPv4 to IPv6-mapped and save results to buf +inline static void mapIPv4ToIPv6(UInt32 addr, uint8_t * buf) +{ + memset(buf, 0, 10); + buf[10] = '\xFF'; + buf[11] = '\xFF'; + addr = Poco::ByteOrder::toNetwork(addr); + memcpy(&buf[12], reinterpret_cast(&addr), 4); +} + +/* +static UInt32 applyMask32(UInt32 val, UInt8 prefix) +{ + UInt32 mask = (prefix >= 32) ? 0xffffffff : ~(0xffffffff >> prefix); + return val & mask; +} + +static void applyMask128(const uint8_t * val, uint8_t * out, UInt8 prefix) +{ + if (prefix >= 128) + prefix = 128; + + size_t i = 0; + + for (; prefix >= 8; ++i, prefix -= 8) + out[i] = val[i]; + + if (i >= 16) + return; + + uint8_t mask = ~(0xff >> prefix); + out[i] = val[i] & mask; + + i++; + memset(&out[i], 0, 16 - i); +} +*/ + +static bool matchIPv4Subnet(UInt32 target, UInt32 addr, UInt8 prefix) +{ + UInt32 mask = (prefix >= 32) ? 0xffffffff : ~(0xffffffff >> prefix); + return (target & mask) == addr; +} + +static bool matchIPv6Subnet(const uint8_t * target, const uint8_t * addr, UInt8 prefix) +{ + if (prefix > IPV6_BINARY_LENGTH * 8) + prefix = IPV6_BINARY_LENGTH * 8; + + size_t i = 0; + for (; prefix >= 8; ++i, prefix -= 8) + { + if (target[i] != addr[i]) + return false; + } + if (prefix == 0) + return true; + + auto mask = ~(0xff >> prefix); + return (addr[i] & mask) == target[i]; +} + +const uint8_t * TrieDictionary::getIPv6FromOffset(const TrieDictionary::IPv6Container & ipv6_col, size_t i) +{ + return reinterpret_cast(&ipv6_col[i * IPV6_BINARY_LENGTH]); } TrieDictionary::TrieDictionary( @@ -71,18 +159,14 @@ TrieDictionary::TrieDictionary( , source_ptr{std::move(source_ptr_)} , dict_lifetime(dict_lifetime_) , require_nonempty(require_nonempty_) - , total_ip_length(0) , logger(&Poco::Logger::get("TrieDictionary")) { createAttributes(); + loadData(); calculateBytesAllocated(); } -TrieDictionary::~TrieDictionary() -{ -} - #define DECLARE(TYPE) \ void TrieDictionary::get##TYPE( \ const std::string & attribute_name, const Columns & key_columns, const DataTypes & key_types, ResultArrayType & out) const \ @@ -319,10 +403,15 @@ void TrieDictionary::loadData() /// created upfront to avoid excess allocations const auto keys_size = dict_struct.key->size(); - ip_records.reserve(keys_size); - const auto attributes_size = attributes.size(); + std::vector ip_records; + + row_idx.reserve(keys_size); + mask_column.reserve(keys_size); + + bool has_ipv6 = false; + while (const auto block = stream->read()) { const auto rows = block.rows(); @@ -336,7 +425,7 @@ void TrieDictionary::loadData() return block.safeGetByPosition(keys_size + attribute_idx).column; }); - for (const auto row_idx : ext::range(0, rows)) + for (const auto row : ext::range(0, rows)) { /// calculate key once per row const auto key_column = key_column_ptrs.front(); @@ -346,35 +435,115 @@ void TrieDictionary::loadData() const auto & attribute_column = *attribute_column_ptrs[attribute_idx]; auto & attribute = attributes[attribute_idx]; - setAttributeValue(attribute, attribute_column[row_idx]); + setAttributeValue(attribute, attribute_column[row]); } size_t row_number = ip_records.size(); - std::string addr_str(key_column->getDataAt(row_idx).toString()); + std::string addr_str(key_column->getDataAt(row).toString()); size_t pos = addr_str.find('/'); if (pos != std::string::npos) { IPAddress addr(addr_str.substr(0, pos)); + has_ipv6 = has_ipv6 || (addr.family() == Poco::Net::IPAddress::IPv6); + UInt8 prefix = std::stoi(addr_str.substr(pos + 1), nullptr, 10); + addr = addr & IPAddress(prefix, addr.family()); ip_records.emplace_back(IPRecord{addr, prefix, row_number}); } else { IPAddress addr(addr_str); + has_ipv6 = has_ipv6 || (addr.family() == Poco::Net::IPAddress::IPv6); UInt8 prefix = addr.length() * 8; ip_records.emplace_back(IPRecord{addr, prefix, row_number}); } - total_ip_length += ip_records.back().addr.length(); } } + stream->readSuffix(); + LOG_TRACE(logger, "{} ip records are read", ip_records.size()); - std::sort(ip_records.begin(), ip_records.end(), lessIPRecords); + if (has_ipv6) + { + std::sort(ip_records.begin(), ip_records.end(), + [](const auto & record_a, const auto & record_b) + { + auto a = IPv6ToBinary(record_a.addr); + auto b = IPv6ToBinary(record_b.addr); + auto cmpres = memcmp16(reinterpret_cast(a.data()), + reinterpret_cast(b.data())); - stream->readSuffix(); + if (cmpres == 0) + return compPrefixes(record_a.prefix, record_b.prefix); + return cmpres < 0; + }); + + auto & ipv6_col = ip_column.emplace(); + ipv6_col.resize_fill(IPV6_BINARY_LENGTH * ip_records.size()); + + for (const auto & record : ip_records) + { + auto ip_array = IPv6ToBinary(record.addr); + + size_t i = row_idx.size(); + memcpySmallAllowReadWriteOverflow15(&ipv6_col[i * IPV6_BINARY_LENGTH], + reinterpret_cast(ip_array.data()), + IPV6_BINARY_LENGTH); + mask_column.push_back(record.prefix); + row_idx.push_back(record.row); + } + } + else + { + std::sort(ip_records.begin(), ip_records.end(), + [](const auto & record_a, const auto & record_b) + { + UInt32 a = *reinterpret_cast(record_a.addr.addr()); + a = Poco::ByteOrder::fromNetwork(a); + + UInt32 b = *reinterpret_cast(record_b.addr.addr()); + b = Poco::ByteOrder::fromNetwork(b); + + if (a == b) + return compPrefixes(record_a.prefix, record_b.prefix); + return a < b; + }); + + auto & ipv4_col = ip_column.emplace(); + ipv4_col.reserve(ip_records.size()); + for (const auto & record : ip_records) + { + auto addr = Poco::ByteOrder::fromNetwork(*reinterpret_cast(record.addr.addr())); + ipv4_col.push_back(addr); + mask_column.push_back(record.prefix); + row_idx.push_back(record.row); + } + } + + parent_subnet.resize(ip_records.size()); + std::stack subnets_stack; + for (const auto i : ext::range(0, ip_records.size())) + { + parent_subnet[i] = i; + + const auto & cur_address = ip_records[i].addr; + while (!subnets_stack.empty()) + { + size_t subnet_idx = subnets_stack.top(); + const auto cur_subnet = ip_records[subnet_idx]; + auto cur_addr_masked = cur_address & IPAddress(cur_subnet.prefix, cur_address.family()); + if (cur_subnet.addr == cur_addr_masked) + { + parent_subnet[i] = subnet_idx; + break; + } + subnets_stack.pop(); + } + subnets_stack.push(i); + } if (require_nonempty && 0 == element_count) throw Exception{full_name + ": dictionary source is empty and 'require_nonempty' property is set.", ErrorCodes::DICTIONARY_IS_EMPTY}; @@ -390,8 +559,16 @@ void TrieDictionary::addAttributeSize(const Attribute & attribute) void TrieDictionary::calculateBytesAllocated() { - bytes_allocated += ip_records.size() * sizeof(ip_records.front()); - bytes_allocated += total_ip_length; + if (auto * ipv4_col = std::get_if(&ip_column)) + { + bytes_allocated += ipv4_col->size() * sizeof((*ipv4_col)[0]); + } + else if (auto * ipv6_col = std::get_if(&ip_column)) + { + bytes_allocated += ipv6_col->size() * sizeof((*ipv6_col)[0]); + } + bytes_allocated += mask_column.size() * sizeof(mask_column[0]); + bytes_allocated += row_idx.size() * sizeof(row_idx[0]); bytes_allocated += attributes.size() * sizeof(attributes.front()); for (const auto & attribute : attributes) @@ -523,57 +700,111 @@ TrieDictionary::Attribute TrieDictionary::createAttributeWithType(const Attribut return attr; } +template +void TrieDictionary::getItemsByTwoKeyColumnsImpl( + const Attribute & attribute, const Columns & key_columns, ValueSetter && set_value, DefaultGetter && get_default) const +{ + const auto first_column = key_columns.front(); + const auto rows = first_column->size(); + auto & vec = std::get>(attribute.maps); + + if (auto ipv4_col = std::get_if(&ip_column)) + { + const auto * key_ip_column_ptr = typeid_cast *>(&*key_columns.front()); + if (key_ip_column_ptr == nullptr) + throw Exception{"Expected a UInt32 IP column", ErrorCodes::TYPE_MISMATCH}; + + const auto & key_mask_column = assert_cast &>(*key_columns.back()); + + auto comp_v4 = [&](size_t elem, IPv4Subnet target) + { + UInt32 addr = (*ipv4_col)[elem]; + if (addr == target.addr) + return compPrefixes(mask_column[elem], target.prefix); + return addr < target.addr; + }; + + for (const auto i : ext::range(0, rows)) + { + UInt32 addr = key_ip_column_ptr->getElement(i); + UInt8 mask = key_mask_column.getElement(i); + + auto range = ext::range(0, row_idx.size()); + auto found_it = std::lower_bound(range.begin(), range.end(), IPv4Subnet{addr, mask}, comp_v4); + + if (likely(found_it != range.end() && + (*ipv4_col)[*found_it] == addr && + mask_column[*found_it] == mask)) + { + set_value(i, static_cast(vec[row_idx[*found_it]])); + } + else + set_value(i, get_default(i)); + } + return; + } + + const auto * key_ip_column_ptr = typeid_cast(&*key_columns.front()); + if (key_ip_column_ptr == nullptr) + throw Exception{"Expected a UInt32 IP column", ErrorCodes::TYPE_MISMATCH}; + + const auto & key_mask_column = assert_cast &>(*key_columns.back()); + + auto ipv6_col = std::get_if(&ip_column); + auto comp_v6 = [&](size_t i, IPv6Subnet target) + { + auto cmpres = memcmp16(getIPv6FromOffset(*ipv6_col, i), target.addr); + if (cmpres == 0) + return compPrefixes(mask_column[i], target.prefix); + return cmpres < 0; + }; + + for (const auto i : ext::range(0, rows)) + { + auto addr = key_ip_column_ptr->getDataAt(i); + UInt8 mask = key_mask_column.getElement(i); + + IPv6Subnet target{reinterpret_cast(addr.data), mask}; + + auto range = ext::range(0, row_idx.size()); + auto found_it = std::lower_bound(range.begin(), range.end(), target, comp_v6); + + if (likely(found_it != range.end() && + memcmp16(getIPv6FromOffset(*ipv6_col, *found_it), target.addr) == 0 && + mask_column[*found_it] == mask)) + set_value(i, static_cast(vec[row_idx[*found_it]])); + else + set_value(i, get_default(i)); + } +} template void TrieDictionary::getItemsImpl( const Attribute & attribute, const Columns & key_columns, ValueSetter && set_value, DefaultGetter && get_default) const { - auto & vec = std::get>(attribute.maps); - const auto first_column = key_columns.front(); const auto rows = first_column->size(); // special case for getBlockInputStream if (unlikely(key_columns.size() == 2)) { - const auto & ip_column = assert_cast(*key_columns.front()); - const auto & mask_column = assert_cast &>(*key_columns.back()); - - for (const auto i : ext::range(0, rows)) - { - const auto second_column = key_columns.back(); - - auto addr_data = ip_column.getDataAt(i).data; - auto ipaddr = ip4or6fromBytes(reinterpret_cast(addr_data)); - - UInt8 mask = mask_column.getElement(i); - - auto target = IPRecord{ipaddr, mask, 0}; - auto found_it = std::lower_bound(ip_records.begin(), ip_records.end(), target, lessIPRecords); - - if (likely(found_it != ip_records.end() && - found_it->addr == target.addr && - found_it->prefix == target.prefix)) - { - set_value(i, static_cast(vec[found_it->row])); - } - else - { - set_value(i, get_default(i)); - } - } + getItemsByTwoKeyColumnsImpl( + attribute, key_columns, std::forward(set_value), std::forward(get_default)); query_count.fetch_add(rows, std::memory_order_relaxed); return; } + auto & vec = std::get>(attribute.maps); + if (first_column->isNumeric()) { + uint8_t addrv6_buf[IPV6_BINARY_LENGTH]; for (const auto i : ext::range(0, rows)) { - auto addr = Poco::ByteOrder::toNetwork(UInt32(first_column->get64(i))); - auto ipaddr = IPAddress(reinterpret_cast(&addr), IPV4_BINARY_LENGTH); - auto found = lookupIPRecord(ipaddr); - set_value(i, (found != ipRecordNotFound()) ? static_cast(vec[found->row]) : get_default(i)); + // addrv4 has native endianness + auto addrv4 = UInt32(first_column->get64(i)); + auto found = tryLookupIPv4(addrv4, addrv6_buf); + set_value(i, (found != ipNotFound()) ? static_cast(vec[*found]) : get_default(i)); } } else @@ -584,9 +815,8 @@ void TrieDictionary::getItemsImpl( if (addr.size != IPV6_BINARY_LENGTH) throw Exception("Expected key to be FixedString(16)", ErrorCodes::LOGICAL_ERROR); - auto ipaddr = ip4or6fromBytes(reinterpret_cast(addr.data)); - auto found = lookupIPRecord(ipaddr); - set_value(i, (found != ipRecordNotFound()) ? static_cast(vec[found->row]) : get_default(i)); + auto found = tryLookupIPv6(reinterpret_cast(addr.data)); + set_value(i, (found != ipNotFound()) ? static_cast(vec[*found]) : get_default(i)); } } @@ -659,12 +889,12 @@ void TrieDictionary::has(const Attribute &, const Columns & key_columns, PaddedP const auto rows = first_column->size(); if (first_column->isNumeric()) { + uint8_t addrv6_buf[IPV6_BINARY_LENGTH]; for (const auto i : ext::range(0, rows)) { - auto addr = Int32(first_column->get64(i)); - auto ipaddr = IPAddress(reinterpret_cast(&addr), IPV4_BINARY_LENGTH); - auto found = lookupIPRecord(ipaddr); - out[i] = (found != ipRecordNotFound()); + auto addrv4 = UInt32(first_column->get64(i)); + auto found = tryLookupIPv4(addrv4, addrv6_buf); + out[i] = (found != ipNotFound()); } } else @@ -672,12 +902,11 @@ void TrieDictionary::has(const Attribute &, const Columns & key_columns, PaddedP for (const auto i : ext::range(0, rows)) { auto addr = first_column->getDataAt(i); - if (unlikely(addr.size != 16)) + if (unlikely(addr.size != IPV6_BINARY_LENGTH)) throw Exception("Expected key to be FixedString(16)", ErrorCodes::LOGICAL_ERROR); - auto ipaddr = ip4or6fromBytes(reinterpret_cast(addr.data)); - auto found = lookupIPRecord(ipaddr); - out[i] = (found != ipRecordNotFound()); + auto found = tryLookupIPv6(reinterpret_cast(addr.data)); + out[i] = (found != ipNotFound()); } } @@ -686,42 +915,50 @@ void TrieDictionary::has(const Attribute &, const Columns & key_columns, PaddedP Columns TrieDictionary::getKeyColumns() const { - auto ip_column = ColumnFixedString::create(IPV6_BINARY_LENGTH); - auto mask_column = ColumnVector::create(); - - for (const auto & record : ip_records) + auto ipv4_col = std::get_if(&ip_column); + if (ipv4_col) { - auto ip_array = IPv6ToBinary(record.addr); - ip_column->insertData(ip_array.data(), IPV6_BINARY_LENGTH); - mask_column->insertValue(record.prefix); + auto key_ip_column = ColumnVector::create(); + auto key_mask_column = ColumnVector::create(); + for (size_t row : ext::range(0, row_idx.size())) + { + key_ip_column->insertValue((*ipv4_col)[row]); + key_mask_column->insertValue(mask_column[row]); + } + return {std::move(key_ip_column), std::move(key_mask_column)}; } - return {std::move(ip_column), std::move(mask_column)}; + auto ipv6_col = std::get_if(&ip_column); + + auto key_ip_column = ColumnFixedString::create(IPV6_BINARY_LENGTH); + auto key_mask_column = ColumnVector::create(); + + for (size_t row : ext::range(0, row_idx.size())) + { + auto data = reinterpret_cast(getIPv6FromOffset(*ipv6_col, row)); + key_ip_column->insertData(data, IPV6_BINARY_LENGTH); + key_mask_column->insertValue(mask_column[row]); + } + return {std::move(key_ip_column), std::move(key_mask_column)}; } -BlockInputStreamPtr TrieDictionary::getBlockInputStream(const Names & column_names, size_t max_block_size) const +template +static auto keyViewGetter() { - using BlockInputStreamType = DictionaryBlockInputStream; - - auto get_keys = [](const Columns & columns, const std::vector & dict_attributes) - { - const auto & attr = dict_attributes.front(); - return ColumnsWithTypeAndName({ - ColumnWithTypeAndName(columns.front(), std::make_shared(IPV6_BINARY_LENGTH), attr.name), - ColumnWithTypeAndName(columns.back(), std::make_shared(), attr.name + ".mask") - }); - }; - auto get_view = [](const Columns & columns, const std::vector & dict_attributes) + return [](const Columns & columns, const std::vector & dict_attributes) { auto column = ColumnString::create(); - const auto & ip_column = assert_cast(*columns.front()); - const auto & mask_column = assert_cast &>(*columns.back()); + const auto & key_ip_column = assert_cast(*columns.front()); + const auto & key_mask_column = assert_cast &>(*columns.back()); char buffer[48]; - for (size_t row : ext::range(0, ip_column.size())) + for (size_t row : ext::range(0, key_ip_column.size())) { - UInt8 mask = mask_column.getElement(row); + UInt8 mask = key_mask_column.getElement(row); char * ptr = buffer; - formatIPv6(reinterpret_cast(ip_column.getDataAt(row).data), ptr); + if constexpr (IsIPv4) + formatIPv4(reinterpret_cast(&key_ip_column.getElement(row)), ptr); + else + formatIPv6(reinterpret_cast(key_ip_column.getDataAt(row).data), ptr); *(ptr - 1) = '/'; ptr = itoa(mask, ptr); column->insertData(buffer, ptr - buffer); @@ -729,59 +966,119 @@ BlockInputStreamPtr TrieDictionary::getBlockInputStream(const Names & column_nam return ColumnsWithTypeAndName{ ColumnWithTypeAndName(std::move(column), std::make_shared(), dict_attributes.front().name)}; }; +} + +BlockInputStreamPtr TrieDictionary::getBlockInputStream(const Names & column_names, size_t max_block_size) const +{ + using BlockInputStreamType = DictionaryBlockInputStream; + + + const bool isIPv4 = std::get_if(&ip_column) != nullptr; + + auto get_keys = [isIPv4](const Columns & columns, const std::vector & dict_attributes) + { + const auto & attr = dict_attributes.front(); + std::shared_ptr key_typ; + if (isIPv4) + key_typ = std::make_shared(); + else + key_typ = std::make_shared(IPV6_BINARY_LENGTH); + + return ColumnsWithTypeAndName({ + ColumnWithTypeAndName(columns.front(), key_typ, attr.name), + ColumnWithTypeAndName(columns.back(), std::make_shared(), attr.name + ".mask") + }); + }; + + if (isIPv4) + { + auto get_view = keyViewGetter, true>(); + return std::make_shared( + shared_from_this(), max_block_size, getKeyColumns(), column_names, std::move(get_keys), std::move(get_view)); + } + + auto get_view = keyViewGetter(); return std::make_shared( shared_from_this(), max_block_size, getKeyColumns(), column_names, std::move(get_keys), std::move(get_view)); } -int TrieDictionary::matchIPAddrWithRecord(const IPAddress & ipaddr, const IPRecord & record) const +TrieDictionary::RowIdxConstIter TrieDictionary::ipNotFound() const { - if (ipaddr.family() != record.addr.family()) - return ipaddr.family() < record.addr.family() ? -1 : 1; - - auto masked_ipaddr = ipaddr & IPAddress(record.prefix, record.addr.family()); - if (masked_ipaddr < record.addr) - return -1; - if (masked_ipaddr == record.addr) - return 0; - return 1; + return row_idx.end(); } -bool TrieDictionary::lessIPRecords(const IPRecord & a, const IPRecord & b) const +TrieDictionary::RowIdxConstIter TrieDictionary::tryLookupIPv4(UInt32 addr, uint8_t * buf) const { - if (a.addr.family() != b.addr.family()) - return a.addr.family() < b.addr.family(); - - // prefer IPs with more narrow subnet - if (a.addr == b.addr) - return a.prefix < b.prefix; - return a.addr < b.addr; -} - -TrieDictionary::IPRecordConstIt TrieDictionary::ipRecordNotFound() const -{ - return ip_records.end(); -} - -TrieDictionary::IPRecordConstIt TrieDictionary::lookupIPRecord(const IPAddress & target) const -{ - if (ip_records.empty()) - return ipRecordNotFound(); - - auto comp = [&](const IPAddress & needle, const IPRecord & record) -> bool + if (std::get_if(&ip_column)) { - return matchIPAddrWithRecord(needle, record) < 0; + mapIPv4ToIPv6(addr, buf); + return lookupIP(buf); + } + return lookupIP(addr); +} + +TrieDictionary::RowIdxConstIter TrieDictionary::tryLookupIPv6(const uint8_t * addr) const +{ + if (std::get_if(&ip_column)) + { + bool is_mapped = false; + UInt32 addrv4 = mappedIPv4ToBinary(addr, is_mapped); + if (!is_mapped) + return ipNotFound(); + return lookupIP(addrv4); + } + return lookupIP(addr); +} + +template +TrieDictionary::RowIdxConstIter TrieDictionary::lookupIP(IPValueType target) const +{ + if (row_idx.empty()) + return ipNotFound(); + + auto ipv4or6_col = std::get_if(&ip_column); + if (ipv4or6_col == nullptr) + return ipNotFound(); + + auto comp = [&](auto value, auto idx) -> bool + { + if constexpr (std::is_same_v) + return value < (*ipv4or6_col)[idx]; + else + return memcmp16(value, getIPv6FromOffset(*ipv4or6_col, idx)) < 0; }; - auto next_it = std::upper_bound(ip_records.begin(), ip_records.end(), target, comp); + auto range = ext::range(0, row_idx.size()); + auto found_it = std::upper_bound(range.begin(), range.end(), target, comp); - if (next_it == ip_records.begin()) - return ipRecordNotFound(); + if (found_it == range.begin()) + return ipNotFound(); - auto found = next_it - 1; - if (matchIPAddrWithRecord(target, *found) == 0) - return found; + --found_it; + if constexpr (std::is_same_v) + { + for (auto idx = *found_it;; idx = parent_subnet[idx]) + { + if (matchIPv4Subnet(target, (*ipv4or6_col)[idx], mask_column[idx])) + return row_idx.begin() + idx; - return ipRecordNotFound(); + if (idx == parent_subnet[idx]) + return ipNotFound(); + } + } + else + { + for (auto idx = *found_it;; idx = parent_subnet[idx]) + { + if (matchIPv6Subnet(target, getIPv6FromOffset(*ipv4or6_col, idx), mask_column[idx])) + return row_idx.begin() + idx; + + if (idx == parent_subnet[idx]) + return ipNotFound(); + } + } + + return ipNotFound(); } void registerDictionaryTrie(DictionaryFactory & factory) diff --git a/src/Dictionaries/TrieDictionary.h b/src/Dictionaries/TrieDictionary.h index 9fe304a786a..c6b28fdfe8d 100644 --- a/src/Dictionaries/TrieDictionary.h +++ b/src/Dictionaries/TrieDictionary.h @@ -7,6 +7,8 @@ #include #include #include +#include +#include #include #include #include @@ -27,8 +29,6 @@ public: const DictionaryLifetime dict_lifetime_, bool require_nonempty_); - ~TrieDictionary() override; - std::string getKeyDescription() const { return key_description; } std::string getTypeName() const override { return "Trie"; } @@ -154,15 +154,14 @@ private: using IPAddress = Poco::Net::IPAddress; - struct IPRecord; - using IPRecordConstIt = ContainerType::const_iterator; + using IPv4Container = PODArray; + using IPv6Container = PaddedPODArray; + using IPMaskContainer = PODArray; + using RowIdxConstIter = ContainerType::const_iterator; - struct IPRecord final - { - IPAddress addr; - UInt8 prefix; - size_t row; - }; + template struct IPContainerToValueType {}; + template <> struct IPContainerToValueType { using type = UInt32; }; + template <> struct IPContainerToValueType { using type = const uint8_t *; }; struct Attribute final { @@ -218,6 +217,9 @@ private: Attribute createAttributeWithType(const AttributeUnderlyingType type, const Field & null_value); + template + void getItemsByTwoKeyColumnsImpl( + const Attribute & attribute, const Columns & key_columns, ValueSetter && set_value, DefaultGetter && get_default) const; template void @@ -234,19 +236,15 @@ private: void has(const Attribute & attribute, const Columns & key_columns, PaddedPODArray & out) const; Columns getKeyColumns() const; + RowIdxConstIter ipNotFound() const; + RowIdxConstIter tryLookupIPv4(UInt32 addr, uint8_t * buf) const; + RowIdxConstIter tryLookupIPv6(const uint8_t * addr) const; - /** - * Compare ip addresses. - * - * @return negative value if ipaddr less than address in record - * @return zero if ipaddr in record subnet - * @return positive value if ipaddr greater than address in record - */ - int matchIPAddrWithRecord(const IPAddress & ipaddr, const IPRecord & record) const; - bool lessIPRecords(const IPRecord & a, const IPRecord & b) const; + template ::value> + RowIdxConstIter lookupIP(IPValueType target) const; - IPRecordConstIt ipRecordNotFound() const; - IPRecordConstIt lookupIPRecord(const IPAddress & target) const; + static const uint8_t * getIPv6FromOffset(const IPv6Container & ipv6_col, size_t i); const DictionaryStructure dict_struct; const DictionarySourcePtr source_ptr; @@ -254,8 +252,10 @@ private: const bool require_nonempty; const std::string key_description{dict_struct.getKeyDescription()}; - ContainerType ip_records; - size_t total_ip_length; + std::variant ip_column; + IPMaskContainer mask_column; + ContainerType parent_subnet; + ContainerType row_idx; std::map attribute_index_by_name; std::vector attributes; diff --git a/tests/queries/0_stateless/01018_ddl_dictionaries_special.reference b/tests/queries/0_stateless/01018_ddl_dictionaries_special.reference index a6332b85f4e..b62018ec525 100644 --- a/tests/queries/0_stateless/01018_ddl_dictionaries_special.reference +++ b/tests/queries/0_stateless/01018_ddl_dictionaries_special.reference @@ -8,14 +8,6 @@ 0.42 0.46 0 -***ip trie dict*** -17501 -17501 -17502 -0 -11211 -11211 -NP ***hierarchy dict*** Moscow [3,2,1,10000] diff --git a/tests/queries/0_stateless/01018_ddl_dictionaries_special.sql b/tests/queries/0_stateless/01018_ddl_dictionaries_special.sql index 6c4a325a3b5..ace3d107cb0 100644 --- a/tests/queries/0_stateless/01018_ddl_dictionaries_special.sql +++ b/tests/queries/0_stateless/01018_ddl_dictionaries_special.sql @@ -72,37 +72,6 @@ SELECT dictGetFloat64('database_for_dict.dict2', 'Tax', toUInt64(1), toDateTime( SELECT dictGetFloat64('database_for_dict.dict2', 'Tax', toUInt64(2), toDateTime('2019-05-29 00:00:00')); SELECT dictGetFloat64('database_for_dict.dict2', 'Tax', toUInt64(2), toDateTime('2019-05-31 00:00:00')); -SELECT '***ip trie dict***'; - -CREATE TABLE database_for_dict.table_ip_trie -( - prefix String, - asn UInt32, - cca2 String -) -engine = TinyLog; - -INSERT INTO database_for_dict.table_ip_trie VALUES ('202.79.32.0/20', 17501, 'NP'), ('202.79.32.2', 17502, 'NP'), ('101.79.55.22', 11211, 'UK'), ('2620:0:870::/48', 3856, 'US'), ('2a02:6b8:1::/48', 13238, 'RU'), ('2001:db8::/32', 65536, 'ZZ'); - -CREATE DICTIONARY database_for_dict.dict_ip_trie -( - prefix String, - asn UInt32, - cca2 String -) -PRIMARY KEY prefix -SOURCE(CLICKHOUSE(host 'localhost' port 9000 user 'default' db 'database_for_dict' table 'table_ip_trie')) -LAYOUT(IP_TRIE()) -LIFETIME(MIN 10 MAX 100); - -SELECT dictGetUInt32('database_for_dict.dict_ip_trie', 'asn', tuple(IPv4StringToNum('202.79.32.0'))); -SELECT dictGetUInt32('database_for_dict.dict_ip_trie', 'asn', tuple(IPv4StringToNum('202.79.32.1'))); -SELECT dictGetUInt32('database_for_dict.dict_ip_trie', 'asn', tuple(IPv4StringToNum('202.79.32.2'))); -SELECT dictHas('database_for_dict.dict_ip_trie', tuple(IPv6StringToNum('654f:3716::'))); -SELECT dictGetUInt32('database_for_dict.dict_ip_trie', 'asn', tuple(IPv6StringToNum('::ffff:654f:3716'))); -SELECT dictGetUInt32('database_for_dict.dict_ip_trie', 'asn', tuple(IPv6StringToNum('::ffff:101.79.55.22'))); -SELECT dictGetString('database_for_dict.dict_ip_trie', 'cca2', tuple(IPv4StringToNum('202.79.32.0'))); - SELECT '***hierarchy dict***'; CREATE TABLE database_for_dict.table_with_hierarchy diff --git a/tests/queries/0_stateless/01018_ip_dictionary.reference b/tests/queries/0_stateless/01018_ip_dictionary.reference new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/queries/0_stateless/01018_ip_dictionary.sql b/tests/queries/0_stateless/01018_ip_dictionary.sql new file mode 100644 index 00000000000..4a93927e14b --- /dev/null +++ b/tests/queries/0_stateless/01018_ip_dictionary.sql @@ -0,0 +1,345 @@ +SET send_logs_level = 'fatal'; + +DROP DATABASE IF EXISTS database_for_dict; + +CREATE DATABASE database_for_dict; + +SELECT '***ipv4 trie dict***'; +CREATE TABLE database_for_dict.table_ipv4_trie +( + prefix String, + asn UInt32, + cca2 String +) +engine = TinyLog; + +-- numbers reordered to test sorting criteria too +INSERT INTO database_for_dict.table_ipv4_trie +SELECT + '255.255.255.255/' || toString((number + 1) * 13 % 33) AS prefix, + toUInt32((number + 1) * 13 % 33) AS asn, + 'NA' as cca2 +FROM system.numbers LIMIT 33; + +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.0.0.2', 1272, 'RU'); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.0.0.0/8', 1270, 'RU'); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('202.79.32.2', 11211, 'NP'); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('101.79.55.22', 11212, 'UK'); + +CREATE DICTIONARY database_for_dict.dict_ipv4_trie +( + prefix String, + asn UInt32, + cca2 String +) +PRIMARY KEY prefix +SOURCE(CLICKHOUSE(host 'localhost' port 9000 user 'default' db 'database_for_dict' table 'table_ipv4_trie')) +LAYOUT(IP_TRIE()) +LIFETIME(MIN 10 MAX 100); + +SELECT 0 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('0.0.0.0'))); +SELECT 1 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('128.0.0.0'))); +SELECT 2 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('192.0.0.0'))); +SELECT 3 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('224.0.0.0'))); +SELECT 4 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('240.0.0.0'))); +SELECT 5 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('248.0.0.0'))); +SELECT 6 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('252.0.0.0'))); +SELECT 7 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('254.0.0.0'))); +SELECT 8 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.0.0.0'))); +SELECT 9 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.128.0.0'))); +SELECT 10 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.192.0.0'))); +SELECT 11 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.224.0.0'))); +SELECT 12 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.240.0.0'))); +SELECT 13 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.248.0.0'))); +SELECT 14 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.252.0.0'))); +SELECT 15 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.254.0.0'))); +SELECT 16 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.255.0.0'))); +SELECT 17 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.255.128.0'))); +SELECT 18 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.255.192.0'))); +SELECT 19 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.255.224.0'))); +SELECT 20 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.255.240.0'))); +SELECT 21 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.255.248.0'))); +SELECT 22 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.255.252.0'))); +SELECT 23 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.255.254.0'))); +SELECT 24 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.255.255.0'))); +SELECT 25 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.255.255.128'))); +SELECT 26 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.255.255.192'))); +SELECT 27 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.255.255.224'))); +SELECT 28 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.255.255.240'))); +SELECT 29 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.255.255.248'))); +SELECT 30 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.255.255.252'))); +SELECT 31 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.255.255.254'))); +SELECT 32 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('255.255.255.255'))); + +SELECT 'RU' == dictGetString('database_for_dict.dict_ipv4_trie', 'cca2', tuple(IPv4StringToNum('127.0.0.1'))); + +SELECT 1270 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('127.0.0.0'))); +SELECT 1270 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('127.0.0.1'))); +SELECT 1272 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('127.0.0.2'))); +SELECT 1270 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('127.0.0.3'))); +SELECT 1270 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('127.0.0.255'))); + +-- SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.0.0.0'))); +-- SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.0.0.1'))); +-- SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.0.0.2'))); +-- SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.0.0.3'))); +-- SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.0.0.255'))); +-- SELECT 0 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.127.127.127'))); +-- SELECT 0 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.127.127.0'))); + +-- SELECT 11212 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('101.79.55.22'))); +-- SELECT 'x', dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv6StringToNum('::ffff:654f:3716'))); +-- SELECT '11212', dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv6StringToNum('::ffff:101.79.55.22'))); + +SELECT 11211 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('202.79.32.2'))); + +CREATE TABLE database_for_dict.table_from_ipv4_trie_dict +( + prefix String, + asn UInt32, + cca2 String +) ENGINE = Dictionary(database_for_dict.dict_ipv4_trie); + +SELECT 1272 == asn AND 'RU' == cca2 FROM database_for_dict.table_from_ipv4_trie_dict +WHERE prefix == '127.0.0.2/32'; + +SELECT 37 == COUNT(*) FROM database_for_dict.table_from_ipv4_trie_dict; + +DROP DICTIONARY IF EXISTS database_for_dict.dict_ipv4_trie; +DROP TABLE IF EXISTS database_for_dict.table_from_ipv4_trie_dict; +DROP TABLE IF EXISTS database_for_dict.table_ipv4_trie; + +SELECT '***ipv4 trie dict pt2***'; + +CREATE TABLE database_for_dict.table_ipv4_trie ( prefix String, val UInt32 ) engine = TinyLog; + +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.0.0.0/8', 1); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.0.0.0/16', 2); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.0.0.0/24', 3); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.0.0.1/32', 4); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.0.127.0/32', 5); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.0.128.1/32', 6); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.0.255.0/32', 7); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.0.255.1/32', 8); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.0.255.255/32', 9); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.1.0.0/16', 10); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.1.1.0', 11); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.1.255.0/24', 12); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.254.0.0/15', 13); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.254.0.127', 14); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.255.0.0/16', 15); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.255.128.0/24', 16); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.255.128.1/32', 17); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.255.128.10/32', 18); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.255.128.128/25', 19); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.255.255.128/32', 20); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.255.255.255/32', 21); + +CREATE DICTIONARY database_for_dict.dict_ipv4_trie ( prefix String, val UInt32 ) +PRIMARY KEY prefix +SOURCE(CLICKHOUSE(host 'localhost' port 9000 user 'default' db 'database_for_dict' table 'table_ipv4_trie')) +LAYOUT(IP_TRIE()) +LIFETIME(MIN 10 MAX 100); + +SELECT 3 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.0.0.0'))); +SELECT 4 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.0.0.1'))); +SELECT 3 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.0.0.127'))); +SELECT 2 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.0.255.127'))); +SELECT 15 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.255.127.127'))); +SELECT 16 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.255.128.9'))); +SELECT 16 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.255.128.127'))); +SELECT 18 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.255.128.10'))); +SELECT 19 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.255.128.255'))); +SELECT 20 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.255.255.128'))); + +SELECT '***ipv6 trie dict***'; + +CREATE TABLE database_for_dict.table_ip_trie +( + prefix String, + val String +) +engine = TinyLog; + +INSERT INTO database_for_dict.table_ip_trie VALUES ('101.79.55.22', 'JA'), ('127.0.0.1', 'RU'), ('2620:0:870::/48', 'US'), ('2a02:6b8:1::/48', 'UK'), ('2001:db8::/32', 'ZZ'); + +INSERT INTO database_for_dict.table_ip_trie +SELECT + 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/' || toString((number + 1) * 13 % 129) AS prefix, + toString((number + 1) * 13 % 129) AS val +FROM system.numbers LIMIT 129; + +CREATE DICTIONARY database_for_dict.dict_ip_trie +( + prefix String, + val String +) +PRIMARY KEY prefix +SOURCE(CLICKHOUSE(host 'localhost' port 9000 user 'default' db 'database_for_dict' table 'table_ip_trie')) +LAYOUT(IP_TRIE()) +LIFETIME(MIN 10 MAX 100); + +SELECT 'US' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('2620:0:870::'))); +SELECT 'UK' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('2a02:6b8:1::'))); +SELECT 'ZZ' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('2001:db8::'))); +SELECT 'ZZ' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('2001:db8:ffff::'))); + +SELECT 1 == dictHas('database_for_dict.dict_ip_trie', tuple(IPv6StringToNum('2001:db8:ffff::'))); +SELECT 1 == dictHas('database_for_dict.dict_ip_trie', tuple(IPv6StringToNum('2001:db8:ffff:ffff::'))); +SELECT 1 == dictHas('database_for_dict.dict_ip_trie', tuple(IPv6StringToNum('2001:db8:ffff:1::'))); + +SELECT '' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('654f:3716::'))); +SELECT 0 == dictHas('database_for_dict.dict_ip_trie', tuple(IPv6StringToNum('654f:3716::'))); +SELECT 0 == dictHas('database_for_dict.dict_ip_trie', tuple(IPv6StringToNum('654f:3716:ffff::'))); + +SELECT 'JA' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('::ffff:654f:3716'))); +SELECT 'JA' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('::ffff:101.79.55.22'))); +SELECT 'JA' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv4StringToNum('101.79.55.22'))); + +SELECT '0' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('::0'))); +SELECT '1' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('8000::'))); +SELECT '2' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('c000::'))); +SELECT '3' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('e000::'))); +SELECT '4' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('f000::'))); +SELECT '5' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('f800::'))); +SELECT '6' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('fc00::'))); +SELECT '7' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('fe00::'))); +SELECT '8' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ff00::'))); +SELECT '9' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ff80::'))); +SELECT '10' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffc0::'))); +SELECT '11' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffe0::'))); +SELECT '12' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('fff0::'))); +SELECT '13' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('fff8::'))); +SELECT '14' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('fffc::'))); +SELECT '15' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('fffe::'))); +SELECT '16' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff::'))); +SELECT '17' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:8000::'))); +SELECT '18' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:c000::'))); +SELECT '19' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:e000::'))); +SELECT '20' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:f000::'))); +SELECT '21' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:f800::'))); +SELECT '22' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:fc00::'))); +SELECT '18' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:c000::'))); +SELECT '19' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:e000::'))); +SELECT '20' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:f000::'))); +SELECT '21' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:f800::'))); +SELECT '22' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:fc00::'))); +SELECT '23' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:fe00::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ff00::'))); +SELECT '25' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ff80::'))); +SELECT '26' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffc0::'))); +SELECT '27' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffe0::'))); +SELECT '28' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:fff0::'))); +SELECT '29' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:fff8::'))); +SELECT '30' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:fffc::'))); +SELECT '31' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:fffe::'))); +SELECT '32' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff::'))); +SELECT '33' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:8000::'))); +SELECT '34' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:c000::'))); +SELECT '35' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:e000::'))); +SELECT '36' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:f000::'))); +SELECT '37' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:f800::'))); +SELECT '38' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:fc00::'))); +SELECT '39' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:fe00::'))); +SELECT '40' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ff00::'))); +SELECT '41' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ff80::'))); +SELECT '42' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffc0::'))); +SELECT '43' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffe0::'))); +SELECT '44' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:fff0::'))); +SELECT '45' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:fff8::'))); +SELECT '46' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:fffc::'))); +SELECT '47' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:fffe::'))); +SELECT '48' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:8000::'))); +SELECT '50' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:c000::'))); +SELECT '51' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:e000::'))); +SELECT '52' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:f000::'))); +SELECT '53' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:f800::'))); +SELECT '54' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:fc00::'))); +SELECT '55' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:fe00::'))); +SELECT '56' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ff00::'))); +SELECT '57' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ff80::'))); +SELECT '58' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffc0::'))); +SELECT '59' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffe0::'))); +SELECT '60' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:fff0::'))); +SELECT '61' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:fff8::'))); +SELECT '62' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:fffc::'))); +SELECT '63' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:fffe::'))); +SELECT '64' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff::'))); +SELECT '65' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:8000::'))); +SELECT '66' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:c000::'))); +SELECT '67' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:e000::'))); +SELECT '68' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:f000::'))); +SELECT '69' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:f800::'))); +SELECT '70' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:fc00::'))); +SELECT '71' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:fe00::'))); +SELECT '72' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ff00::'))); +SELECT '73' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ff80::'))); +SELECT '74' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffc0::'))); +SELECT '75' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffe0::'))); +SELECT '76' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:fff0::'))); +SELECT '77' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:fff8::'))); +SELECT '78' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:fffc::'))); +SELECT '79' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:fffe::'))); +SELECT '80' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff::'))); +SELECT '81' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:8000::'))); +SELECT '82' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:c000::'))); +SELECT '83' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:e000::'))); +SELECT '84' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:f000::'))); +SELECT '85' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:f800::'))); +SELECT '86' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:fc00::'))); +SELECT '87' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:fe00::'))); +SELECT '88' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ff00::'))); +SELECT '89' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ff80::'))); +SELECT '90' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffc0::'))); +SELECT '91' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffe0::'))); +SELECT '92' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:fff0::'))); +SELECT '93' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:fff8::'))); +SELECT '94' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:fffc::'))); +SELECT '95' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:fffe::'))); +SELECT '96' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff::'))); +SELECT '97' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:8000:0'))); +SELECT '98' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:c000:0'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:e000:0'))); +SELECT '100' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:f000:0'))); +SELECT '101' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:f800:0'))); +SELECT '102' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:fc00:0'))); +SELECT '103' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:fe00:0'))); +SELECT '104' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ff00:0'))); +SELECT '105' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ff80:0'))); +SELECT '106' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffc0:0'))); +SELECT '107' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffe0:0'))); +SELECT '108' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:fff0:0'))); +SELECT '109' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:fff8:0'))); +SELECT '110' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:fffc:0'))); +SELECT '111' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:fffe:0'))); +SELECT '112' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:0'))); +SELECT '113' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:8000'))); +SELECT '114' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:c000'))); +SELECT '115' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:e000'))); +SELECT '116' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:f000'))); +SELECT '117' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:f800'))); +SELECT '118' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:fc00'))); +SELECT '119' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:fe00'))); +SELECT '120' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00'))); +SELECT '121' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff80'))); +SELECT '122' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffc0'))); +SELECT '123' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffe0'))); +SELECT '124' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff0'))); +SELECT '125' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff8'))); +SELECT '126' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:fffc'))); +SELECT '127' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:fffe'))); +SELECT '128' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff'))); + +CREATE TABLE database_for_dict.table_from_ip_trie_dict +( + prefix String, + val String +) ENGINE = Dictionary(database_for_dict.dict_ip_trie); + +SELECT MIN(val == 'US') FROM database_for_dict.table_from_ip_trie_dict +WHERE prefix == '2620:0:870::/48'; + +SELECT 134 == COUNT(*) FROM database_for_dict.table_from_ip_trie_dict; + +DROP DATABASE IF EXISTS database_for_dict; From 7c19ad5ac7a60f964122b171ea5180a8a07d1bd6 Mon Sep 17 00:00:00 2001 From: vdimir Date: Thu, 12 Nov 2020 10:37:27 +0300 Subject: [PATCH 115/425] Fix mappedIPv4ToBinary, add test reference for ip_dict --- src/Dictionaries/TrieDictionary.cpp | 39 +-- .../0_stateless/01018_ip_dictionary.reference | 228 ++++++++++++++++++ .../0_stateless/01018_ip_dictionary.sql | 36 ++- 3 files changed, 261 insertions(+), 42 deletions(-) diff --git a/src/Dictionaries/TrieDictionary.cpp b/src/Dictionaries/TrieDictionary.cpp index c475672f39b..18e0b1e9bb1 100644 --- a/src/Dictionaries/TrieDictionary.cpp +++ b/src/Dictionaries/TrieDictionary.cpp @@ -73,12 +73,15 @@ static inline bool compPrefixes(UInt8 a, UInt8 b) /// Convert mapped IPv6 to IPv4 if possible inline static UInt32 mappedIPv4ToBinary(const uint8_t * addr, bool & success) { - const UInt16* words = reinterpret_cast(addr); - auto has_zero_prefix = words[0] == 0 && words[1] == 0 && words[2] == 0 && words[3] == 0 && words[4] == 0; - success = has_zero_prefix && Poco::ByteOrder::fromNetwork(words[5]) == 0xFFFF; + success = addr[0] == 0x0 && addr[1] == 0x0 && + addr[2] == 0x0 && addr[3] == 0x0 && + addr[4] == 0x0 && addr[5] == 0x0 && + addr[6] == 0x0 && addr[7] == 0x0 && + addr[8] == 0x0 && addr[9] == 0x0 && + addr[10] == 0xff && addr[11] == 0xff; if (!success) return 0; - return Poco::ByteOrder::fromNetwork(*reinterpret_cast(&addr[6])); + return Poco::ByteOrder::fromNetwork(*reinterpret_cast(&addr[12])); } /// Convert IPv4 to IPv6-mapped and save results to buf @@ -91,34 +94,6 @@ inline static void mapIPv4ToIPv6(UInt32 addr, uint8_t * buf) memcpy(&buf[12], reinterpret_cast(&addr), 4); } -/* -static UInt32 applyMask32(UInt32 val, UInt8 prefix) -{ - UInt32 mask = (prefix >= 32) ? 0xffffffff : ~(0xffffffff >> prefix); - return val & mask; -} - -static void applyMask128(const uint8_t * val, uint8_t * out, UInt8 prefix) -{ - if (prefix >= 128) - prefix = 128; - - size_t i = 0; - - for (; prefix >= 8; ++i, prefix -= 8) - out[i] = val[i]; - - if (i >= 16) - return; - - uint8_t mask = ~(0xff >> prefix); - out[i] = val[i] & mask; - - i++; - memset(&out[i], 0, 16 - i); -} -*/ - static bool matchIPv4Subnet(UInt32 target, UInt32 addr, UInt8 prefix) { UInt32 mask = (prefix >= 32) ? 0xffffffff : ~(0xffffffff >> prefix); diff --git a/tests/queries/0_stateless/01018_ip_dictionary.reference b/tests/queries/0_stateless/01018_ip_dictionary.reference index e69de29bb2d..6023701a407 100644 --- a/tests/queries/0_stateless/01018_ip_dictionary.reference +++ b/tests/queries/0_stateless/01018_ip_dictionary.reference @@ -0,0 +1,228 @@ +***ipv4 trie dict*** +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +***ipv4 trie dict pt2*** +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +***ipv6 trie dict*** +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 diff --git a/tests/queries/0_stateless/01018_ip_dictionary.sql b/tests/queries/0_stateless/01018_ip_dictionary.sql index 4a93927e14b..f57f5ef9302 100644 --- a/tests/queries/0_stateless/01018_ip_dictionary.sql +++ b/tests/queries/0_stateless/01018_ip_dictionary.sql @@ -79,17 +79,15 @@ SELECT 1272 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IP SELECT 1270 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('127.0.0.3'))); SELECT 1270 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('127.0.0.255'))); --- SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.0.0.0'))); --- SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.0.0.1'))); --- SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.0.0.2'))); --- SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.0.0.3'))); --- SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.0.0.255'))); --- SELECT 0 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.127.127.127'))); --- SELECT 0 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.127.127.0'))); +SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.0.0.0'))); +SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.0.0.1'))); +SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.0.0.2'))); +SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.0.0.3'))); +SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.0.0.255'))); --- SELECT 11212 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('101.79.55.22'))); --- SELECT 'x', dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv6StringToNum('::ffff:654f:3716'))); --- SELECT '11212', dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv6StringToNum('::ffff:101.79.55.22'))); +SELECT 11212 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('101.79.55.22'))); +SELECT 11212 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv6StringToNum('::ffff:654f:3716'))); +SELECT 11212 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv6StringToNum('::ffff:101.79.55.22'))); SELECT 11211 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'asn', tuple(IPv4StringToNum('202.79.32.2'))); @@ -152,6 +150,24 @@ SELECT 18 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4 SELECT 19 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.255.128.255'))); SELECT 20 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.255.255.128'))); +SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.0.0.0'))); +SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.0.0.1'))); +SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.0.0.127'))); +SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.0.255.127'))); +SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.255.127.127'))); +SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.255.128.9'))); +SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.255.128.127'))); +SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.255.128.10'))); +SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.255.128.255'))); +SELECT 1 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('127.255.255.128'))); + +SELECT 0 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('128.127.127.127'))); +SELECT 0 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('128.127.127.0'))); +SELECT 0 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('255.127.127.0'))); +SELECT 0 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('255.0.0.0'))); +SELECT 0 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('0.0.0.0'))); +SELECT 0 == dictHas('database_for_dict.dict_ipv4_trie', tuple(IPv4StringToNum('1.1.1.1'))); + SELECT '***ipv6 trie dict***'; CREATE TABLE database_for_dict.table_ip_trie From 37c70f4f6aa3b0e82c61f9f468cd53ed744e0ce1 Mon Sep 17 00:00:00 2001 From: myrrc Date: Thu, 12 Nov 2020 14:53:30 +0300 Subject: [PATCH 116/425] improved the wide int constructor --- base/common/wide_integer_impl.h | 63 ++++++++++++--------------------- 1 file changed, 22 insertions(+), 41 deletions(-) diff --git a/base/common/wide_integer_impl.h b/base/common/wide_integer_impl.h index 5b13c56e2f7..48a2a278df9 100644 --- a/base/common/wide_integer_impl.h +++ b/base/common/wide_integer_impl.h @@ -228,58 +228,39 @@ struct integer::_impl self.items[i] = 0; } - constexpr static void wide_integer_from_bultin(integer & self, double rhs) noexcept - { + /** + * N.B. t is constructed from double, so max(t) = max(double) ~ 2^310 + * the recursive call happens when t / 2^64 > 2^64, so there won't be more than 5 of them. + */ + template + constexpr static void set_multiplier(wide_integer & self, T t) noexcept { + constexpr uint64_t max_int = std::numeric_limits::max(); + const T alpha = t / max_int; + + if (alpha <= max_int) + for (uint64_t i = 0; i < static_cast(alpha); ++i) + self *= max_int; + else // max(double) / 2^64 will surely contain less than 52 precision bits, so speed up computations. + set_multiplier(self, static_cast(alpha)); + + self += static_cast(t - alpha * max_int); + } + + constexpr static void wide_integer_from_bultin(wide_integer& self, double rhs) noexcept { constexpr int64_t max_int = std::numeric_limits::max(); constexpr int64_t min_int = std::numeric_limits::min(); - constexpr long double max_int_long_double = static_cast(max_int); - - if ((rhs > 0 && rhs < max_int) || - (rhs < 0 && rhs > min_int)) - { - self = to_Integral(rhs); + if ((rhs > 0 && rhs < max_int) || (rhs < 0 && rhs > min_int)) { + self = static_cast(rhs); return; } - /// There are values in int64 that have more than 53 significant bits (in terms of double - /// representation). Such values, being promoted to double, are rounded up or down. If they are rounded up, - /// the result may not fit in 64 bits. - /// The example of such a number is 9.22337e+18. - /// As to_Integral does a static_cast to int64_t, it may result in UB. - /// The necessary check here is that long double has enough significant (mantissa) bits to store the - /// int64_t max value precisely. - static_assert(LDBL_MANT_DIG >= 64, - "On your system long double has less than 64 precision bits," - "which may result in UB when initializing double from int64_t"); - - /// Always >= 0 const long double rhs_long_double = (static_cast(rhs) < 0) ? -static_cast(rhs) : rhs; - const long double rhs_max_int_count = rhs_long_double / max_int; - - // We can't just get the number of iterations like rhs_max_int_count / max_int as it may not fit it int64_t. - long double rhs_max_int_count_acc = rhs_max_int_count; - self = 0; - - while (rhs_max_int_count_acc > max_int_long_double) - { - self += max_int; - rhs_max_int_count_acc -= max_int_long_double; - } - - self *= max_int; - - const long double rhs_div_max_int = rhs_max_int_count * max_int; - const long double rhs_mod_max_int = rhs_long_double - rhs_div_max_int; - - assert(rhs_mod_max_int < max_int_long_double); - assert(rhs_mod_max_int > static_cast(min_int)); - - self += static_cast(rhs_mod_max_int); + set_multiplier(self, rhs_long_double); if (rhs < 0) self = -self; From 5e1c84e04fc6a681aba3b29111a81f69244243d5 Mon Sep 17 00:00:00 2001 From: alesapin Date: Thu, 12 Nov 2020 15:11:13 +0300 Subject: [PATCH 117/425] Fix segfault --- src/Common/ZooKeeper/ZooKeeperImpl.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Common/ZooKeeper/ZooKeeperImpl.cpp b/src/Common/ZooKeeper/ZooKeeperImpl.cpp index 4df4882a25b..9e20035047d 100644 --- a/src/Common/ZooKeeper/ZooKeeperImpl.cpp +++ b/src/Common/ZooKeeper/ZooKeeperImpl.cpp @@ -1346,8 +1346,6 @@ void ZooKeeper::finalize(bool error_send, bool error_receive) if (expired) return; - active_session_metric_increment.destroy(); - try { if (!error_send) @@ -1376,6 +1374,8 @@ void ZooKeeper::finalize(bool error_send, bool error_receive) expired = true; } + active_session_metric_increment.destroy(); + try { /// This will also wakeup the receiving thread. From 8c4bb8cd0293f54f4d0dfa10c94c152dbd9fc6aa Mon Sep 17 00:00:00 2001 From: myrrc Date: Thu, 12 Nov 2020 15:17:34 +0300 Subject: [PATCH 118/425] naming fix --- base/common/wide_integer_impl.h | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/base/common/wide_integer_impl.h b/base/common/wide_integer_impl.h index 48a2a278df9..e18a27df48a 100644 --- a/base/common/wide_integer_impl.h +++ b/base/common/wide_integer_impl.h @@ -233,7 +233,7 @@ struct integer::_impl * the recursive call happens when t / 2^64 > 2^64, so there won't be more than 5 of them. */ template - constexpr static void set_multiplier(wide_integer & self, T t) noexcept { + constexpr static void set_multiplier(integer & self, T t) noexcept { constexpr uint64_t max_int = std::numeric_limits::max(); const T alpha = t / max_int; @@ -241,15 +241,26 @@ struct integer::_impl for (uint64_t i = 0; i < static_cast(alpha); ++i) self *= max_int; else // max(double) / 2^64 will surely contain less than 52 precision bits, so speed up computations. - set_multiplier(self, static_cast(alpha)); + set_multiplier(self, alpha); self += static_cast(t - alpha * max_int); } - constexpr static void wide_integer_from_bultin(wide_integer& self, double rhs) noexcept { + constexpr static void wide_integer_from_bultin(integer& self, double rhs) noexcept { constexpr int64_t max_int = std::numeric_limits::max(); constexpr int64_t min_int = std::numeric_limits::min(); + /// There are values in int64 that have more than 53 significant bits (in terms of double + /// representation). Such values, being promoted to double, are rounded up or down. If they are rounded up, + /// the result may not fit in 64 bits. + /// The example of such a number is 9.22337e+18. + /// As to_Integral does a static_cast to int64_t, it may result in UB. + /// The necessary check here is that long double has enough significant (mantissa) bits to store the + /// int64_t max value precisely. + static_assert(LDBL_MANT_DIG >= 64, + "On your system long double has less than 64 precision bits," + "which may result in UB when initializing double from int64_t"); + if ((rhs > 0 && rhs < max_int) || (rhs < 0 && rhs > min_int)) { self = static_cast(rhs); return; From 70867eb187d34decff04158135d1da31ae4799b7 Mon Sep 17 00:00:00 2001 From: myrrc Date: Thu, 12 Nov 2020 16:13:22 +0300 Subject: [PATCH 119/425] fixing the recursive call case --- base/common/wide_integer_impl.h | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/base/common/wide_integer_impl.h b/base/common/wide_integer_impl.h index e18a27df48a..ade02ee1e78 100644 --- a/base/common/wide_integer_impl.h +++ b/base/common/wide_integer_impl.h @@ -231,6 +231,10 @@ struct integer::_impl /** * N.B. t is constructed from double, so max(t) = max(double) ~ 2^310 * the recursive call happens when t / 2^64 > 2^64, so there won't be more than 5 of them. + * + * t = a1 * max_int + b1, a1 > max_int, b1 < max_int + * a1 = a2 * max_int + b2, a2 > max_int, b2 < max_int + * a_(n - 1) = a_n * max_int + b2, a_n <= max_int <- base case. */ template constexpr static void set_multiplier(integer & self, T t) noexcept { @@ -240,10 +244,13 @@ struct integer::_impl if (alpha <= max_int) for (uint64_t i = 0; i < static_cast(alpha); ++i) self *= max_int; - else // max(double) / 2^64 will surely contain less than 52 precision bits, so speed up computations. + else + { // max(double) / 2^64 will surely contain less than 52 precision bits, so speed up computations. set_multiplier(self, alpha); + self *= max_int; + }; - self += static_cast(t - alpha * max_int); + self += static_cast(t - alpha * max_int); // += b_i } constexpr static void wide_integer_from_bultin(integer& self, double rhs) noexcept { @@ -261,7 +268,8 @@ struct integer::_impl "On your system long double has less than 64 precision bits," "which may result in UB when initializing double from int64_t"); - if ((rhs > 0 && rhs < max_int) || (rhs < 0 && rhs > min_int)) { + if ((rhs > 0 && rhs < max_int) || (rhs < 0 && rhs > min_int)) + { self = static_cast(rhs); return; } @@ -270,7 +278,7 @@ struct integer::_impl ? -static_cast(rhs) : rhs; - self = 0; + self = (rhs_long_double / max_int > 0) ? 1 : 0; set_multiplier(self, rhs_long_double); if (rhs < 0) From 862f8da331ab18e092709a9a07aa1712fe63facc Mon Sep 17 00:00:00 2001 From: myrrc Date: Thu, 12 Nov 2020 16:27:07 +0300 Subject: [PATCH 120/425] typo --- base/common/wide_integer_impl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base/common/wide_integer_impl.h b/base/common/wide_integer_impl.h index ade02ee1e78..2b55d101be5 100644 --- a/base/common/wide_integer_impl.h +++ b/base/common/wide_integer_impl.h @@ -248,7 +248,7 @@ struct integer::_impl { // max(double) / 2^64 will surely contain less than 52 precision bits, so speed up computations. set_multiplier(self, alpha); self *= max_int; - }; + } self += static_cast(t - alpha * max_int); // += b_i } From e19d1430dbb7bb014d95be78db6da5d6949ef95a Mon Sep 17 00:00:00 2001 From: alesapin Date: Thu, 12 Nov 2020 17:43:16 +0300 Subject: [PATCH 121/425] Fix livelock --- src/Common/ZooKeeper/ZooKeeperImpl.cpp | 38 ++++++++++++++++++++------ 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/src/Common/ZooKeeper/ZooKeeperImpl.cpp b/src/Common/ZooKeeper/ZooKeeperImpl.cpp index 9e20035047d..addb6c01504 100644 --- a/src/Common/ZooKeeper/ZooKeeperImpl.cpp +++ b/src/Common/ZooKeeper/ZooKeeperImpl.cpp @@ -1070,6 +1070,7 @@ void ZooKeeper::sendThread() setThreadName("ZooKeeperSend"); auto prev_heartbeat_time = clock::now(); + bool tried_to_send_close = false; try { @@ -1099,6 +1100,15 @@ void ZooKeeper::sendThread() std::lock_guard lock(operations_mutex); operations[info.request->xid] = info; } + else + { + /// We set this variable only once. If we will + /// successfully send close, than this thread will just + /// finish. If we will got an exception while sending + /// close, than thread will also finish and finalization + /// will be completed by some other thread. + tried_to_send_close = true; + } if (info.watch) { @@ -1135,7 +1145,13 @@ void ZooKeeper::sendThread() catch (...) { tryLogCurrentException(__PRETTY_FUNCTION__); - finalize(true, false); + /// If we have tried to send close and got an exception than + /// finalization is already started by receiveThread and we cannot do + /// anything better than just exit. + /// + /// Otherwise we should correctly finalize + if (!tried_to_send_close) + finalize(true, false); } } @@ -1346,6 +1362,16 @@ void ZooKeeper::finalize(bool error_send, bool error_receive) if (expired) return; + auto expire_session = [&] + { + std::lock_guard lock(push_request_mutex); + if (!expired) + { + expired = true; + active_session_metric_increment.destroy(); + } + }; + try { if (!error_send) @@ -1359,8 +1385,7 @@ void ZooKeeper::finalize(bool error_send, bool error_receive) { /// This happens for example, when "Cannot push request to queue within operation timeout". /// Just mark session expired in case of error on close request. - std::lock_guard lock(push_request_mutex); - expired = true; + expire_session(); tryLogCurrentException(__PRETTY_FUNCTION__); } @@ -1369,12 +1394,7 @@ void ZooKeeper::finalize(bool error_send, bool error_receive) } /// Set expired flag after we sent close event - { - std::lock_guard lock(push_request_mutex); - expired = true; - } - - active_session_metric_increment.destroy(); + expire_session(); try { From b88402876c3e8ab27e5d9351c2c6c172b3b15e0c Mon Sep 17 00:00:00 2001 From: myrrc Date: Thu, 12 Nov 2020 19:01:20 +0300 Subject: [PATCH 122/425] fix loop --- base/common/wide_integer_impl.h | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/base/common/wide_integer_impl.h b/base/common/wide_integer_impl.h index 2b55d101be5..74ed69faeab 100644 --- a/base/common/wide_integer_impl.h +++ b/base/common/wide_integer_impl.h @@ -242,14 +242,11 @@ struct integer::_impl const T alpha = t / max_int; if (alpha <= max_int) - for (uint64_t i = 0; i < static_cast(alpha); ++i) - self *= max_int; - else - { // max(double) / 2^64 will surely contain less than 52 precision bits, so speed up computations. + self = static_cast(alpha); + else // max(double) / 2^64 will surely contain less than 52 precision bits, so speed up computations. set_multiplier(self, alpha); - self *= max_int; - } + self *= max_int; self += static_cast(t - alpha * max_int); // += b_i } From 071c946236369fe37da2414cdfdfd5aa0a02b4c7 Mon Sep 17 00:00:00 2001 From: myrrc Date: Thu, 12 Nov 2020 19:02:27 +0300 Subject: [PATCH 123/425] removed useless self init --- base/common/wide_integer_impl.h | 1 - 1 file changed, 1 deletion(-) diff --git a/base/common/wide_integer_impl.h b/base/common/wide_integer_impl.h index 74ed69faeab..2a889819c11 100644 --- a/base/common/wide_integer_impl.h +++ b/base/common/wide_integer_impl.h @@ -275,7 +275,6 @@ struct integer::_impl ? -static_cast(rhs) : rhs; - self = (rhs_long_double / max_int > 0) ? 1 : 0; set_multiplier(self, rhs_long_double); if (rhs < 0) From aeab02a02f492c3ad9c81c61a16a63a0730dcecc Mon Sep 17 00:00:00 2001 From: myrrc Date: Thu, 12 Nov 2020 21:01:51 +0300 Subject: [PATCH 124/425] fix test --- tests/queries/0_stateless/01035_avg.reference | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/queries/0_stateless/01035_avg.reference b/tests/queries/0_stateless/01035_avg.reference index 9ad7fc76be1..ec79205c6f8 100644 --- a/tests/queries/0_stateless/01035_avg.reference +++ b/tests/queries/0_stateless/01035_avg.reference @@ -1,5 +1,5 @@ nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan --0.5 -0.5 -0.5 -0.5 -0.5 -0.5 127.493856 32355.57552 499999.5 499999.5 499999.5 499999.5 499999.5 -0.000500002 0.49999949943727 -0.000005 -0.000005291390805620593 +-0.5 -0.5 -0.5 -0.5 -0.5 -0.5 127.493856 32355.57552 499999.5 499999.5 499999.5 499999.5 499999.5 -0.000500002 0.49999949943727 -0.000005 -0.000005257366687274546 -2767.546272 999999 -0.50000449943727 From bf68f35ee6f0a8f4d1de7f46933c8606128f38ef Mon Sep 17 00:00:00 2001 From: MyroTk Date: Fri, 13 Nov 2020 08:59:50 +0100 Subject: [PATCH 125/425] RBAC Testflows tests for ATTACH, CREATE, DROP, and DETACH --- tests/testflows/rbac/helper/common.py | 5 + tests/testflows/rbac/regression.py | 6 + .../rbac/requirements/requirements.md | 349 ++++++-- .../rbac/requirements/requirements.py | 782 +++++++++++++++--- .../tests/privileges/alter/alter_fetch.py | 9 + .../rbac/tests/privileges/alter/alter_move.py | 56 +- .../rbac/tests/privileges/attach/__init__.py | 0 .../privileges/attach/attach_database.py | 99 +++ .../privileges/attach/attach_dictionary.py | 99 +++ .../tests/privileges/attach/attach_table.py | 99 +++ .../privileges/attach/attach_temp_table.py | 97 +++ .../rbac/tests/privileges/create/__init__.py | 0 .../privileges/create/create_database.py | 98 +++ .../privileges/create/create_dictionary.py | 98 +++ .../tests/privileges/create/create_table.py | 731 ++++++++++++++++ .../privileges/create/create_temp_table.py | 98 +++ .../rbac/tests/privileges/detach/__init__.py | 0 .../privileges/detach/detach_database.py | 106 +++ .../privileges/detach/detach_dictionary.py | 105 +++ .../tests/privileges/detach/detach_table.py | 107 +++ .../tests/privileges/detach/detach_view.py | 107 +++ .../tests/privileges/distributed_table.py | 26 +- .../rbac/tests/privileges/drop/__init__.py | 0 .../tests/privileges/drop/drop_database.py | 106 +++ .../tests/privileges/drop/drop_dictionary.py | 102 +++ .../rbac/tests/privileges/drop/drop_table.py | 106 +++ .../rbac/tests/privileges/feature.py | 22 +- 27 files changed, 3221 insertions(+), 192 deletions(-) create mode 100644 tests/testflows/rbac/tests/privileges/attach/__init__.py create mode 100644 tests/testflows/rbac/tests/privileges/attach/attach_database.py create mode 100644 tests/testflows/rbac/tests/privileges/attach/attach_dictionary.py create mode 100644 tests/testflows/rbac/tests/privileges/attach/attach_table.py create mode 100644 tests/testflows/rbac/tests/privileges/attach/attach_temp_table.py create mode 100644 tests/testflows/rbac/tests/privileges/create/__init__.py create mode 100644 tests/testflows/rbac/tests/privileges/create/create_database.py create mode 100644 tests/testflows/rbac/tests/privileges/create/create_dictionary.py create mode 100644 tests/testflows/rbac/tests/privileges/create/create_table.py create mode 100644 tests/testflows/rbac/tests/privileges/create/create_temp_table.py create mode 100644 tests/testflows/rbac/tests/privileges/detach/__init__.py create mode 100644 tests/testflows/rbac/tests/privileges/detach/detach_database.py create mode 100644 tests/testflows/rbac/tests/privileges/detach/detach_dictionary.py create mode 100644 tests/testflows/rbac/tests/privileges/detach/detach_table.py create mode 100644 tests/testflows/rbac/tests/privileges/detach/detach_view.py create mode 100644 tests/testflows/rbac/tests/privileges/drop/__init__.py create mode 100644 tests/testflows/rbac/tests/privileges/drop/drop_database.py create mode 100644 tests/testflows/rbac/tests/privileges/drop/drop_dictionary.py create mode 100644 tests/testflows/rbac/tests/privileges/drop/drop_table.py diff --git a/tests/testflows/rbac/helper/common.py b/tests/testflows/rbac/helper/common.py index 19bc396a0b8..47e38560714 100755 --- a/tests/testflows/rbac/helper/common.py +++ b/tests/testflows/rbac/helper/common.py @@ -149,11 +149,16 @@ def grant_select_on_table(node, grants, target_name, *table_names): try: tables_granted = [] for table_number in range(len(table_names)): + if(grants & tables[f"table{table_number}"]): + with When(f"I grant select privilege on {table_names[table_number]}"): node.query(f"GRANT SELECT ON {table_names[table_number]} TO {target_name}") + tables_granted.append(f'{table_names[table_number]}') + yield (', ').join(tables_granted) + finally: for table_number in range(len(table_names)): with Finally(f"I revoke the select privilege on {table_names[table_number]}"): diff --git a/tests/testflows/rbac/regression.py b/tests/testflows/rbac/regression.py index a53de0178eb..c34e25ce918 100755 --- a/tests/testflows/rbac/regression.py +++ b/tests/testflows/rbac/regression.py @@ -96,6 +96,12 @@ xfails = { [(Fail, issue_16403)], "privileges/alter move/:/:/:/:/user with revoked ALTER MOVE PARTITION privilege/": [(Fail, issue_16403)], + "/rbac/privileges/create table/create with join query privilege granted directly or via role/:": + [(Fail, issue_14149)], + "/rbac/privileges/create table/create with join union subquery privilege granted directly or via role/:": + [(Fail, issue_14149)], + "/rbac/privileges/create table/create with nested tables privilege granted directly or via role/:": + [(Fail, issue_14149)], } xflags = { diff --git a/tests/testflows/rbac/requirements/requirements.md b/tests/testflows/rbac/requirements/requirements.md index 4f2be6776c0..933745838e0 100644 --- a/tests/testflows/rbac/requirements/requirements.md +++ b/tests/testflows/rbac/requirements/requirements.md @@ -386,32 +386,32 @@ * 5.2.11.3.4 [RQ.SRS-006.RBAC.Privileges.Insert.Column](#rqsrs-006rbacprivilegesinsertcolumn) * 5.2.11.3.5 [RQ.SRS-006.RBAC.Privileges.Insert.Cluster](#rqsrs-006rbacprivilegesinsertcluster) * 5.2.11.3.6 [RQ.SRS-006.RBAC.Privileges.Insert.TableEngines](#rqsrs-006rbacprivilegesinserttableengines) - * 5.2.11.4 [AlterColumn](#altercolumn) + * 5.2.11.4 [Alter Column](#alter-column) * 5.2.11.4.1 [RQ.SRS-006.RBAC.Privileges.AlterColumn](#rqsrs-006rbacprivilegesaltercolumn) * 5.2.11.4.2 [RQ.SRS-006.RBAC.Privileges.AlterColumn.Grant](#rqsrs-006rbacprivilegesaltercolumngrant) * 5.2.11.4.3 [RQ.SRS-006.RBAC.Privileges.AlterColumn.Revoke](#rqsrs-006rbacprivilegesaltercolumnrevoke) * 5.2.11.4.4 [RQ.SRS-006.RBAC.Privileges.AlterColumn.Column](#rqsrs-006rbacprivilegesaltercolumncolumn) * 5.2.11.4.5 [RQ.SRS-006.RBAC.Privileges.AlterColumn.Cluster](#rqsrs-006rbacprivilegesaltercolumncluster) * 5.2.11.4.6 [RQ.SRS-006.RBAC.Privileges.AlterColumn.TableEngines](#rqsrs-006rbacprivilegesaltercolumntableengines) - * 5.2.11.5 [AlterIndex](#alterindex) + * 5.2.11.5 [Alter Index](#alter-index) * 5.2.11.5.1 [RQ.SRS-006.RBAC.Privileges.AlterIndex](#rqsrs-006rbacprivilegesalterindex) * 5.2.11.5.2 [RQ.SRS-006.RBAC.Privileges.AlterIndex.Grant](#rqsrs-006rbacprivilegesalterindexgrant) * 5.2.11.5.3 [RQ.SRS-006.RBAC.Privileges.AlterIndex.Revoke](#rqsrs-006rbacprivilegesalterindexrevoke) * 5.2.11.5.4 [RQ.SRS-006.RBAC.Privileges.AlterIndex.Cluster](#rqsrs-006rbacprivilegesalterindexcluster) * 5.2.11.5.5 [RQ.SRS-006.RBAC.Privileges.AlterIndex.TableEngines](#rqsrs-006rbacprivilegesalterindextableengines) - * 5.2.11.6 [AlterConstraint](#alterconstraint) + * 5.2.11.6 [Alter Constraint](#alter-constraint) * 5.2.11.6.1 [RQ.SRS-006.RBAC.Privileges.AlterConstraint](#rqsrs-006rbacprivilegesalterconstraint) * 5.2.11.6.2 [RQ.SRS-006.RBAC.Privileges.AlterConstraint.Grant](#rqsrs-006rbacprivilegesalterconstraintgrant) * 5.2.11.6.3 [RQ.SRS-006.RBAC.Privileges.AlterConstraint.Revoke](#rqsrs-006rbacprivilegesalterconstraintrevoke) * 5.2.11.6.4 [RQ.SRS-006.RBAC.Privileges.AlterConstraint.Cluster](#rqsrs-006rbacprivilegesalterconstraintcluster) * 5.2.11.6.5 [RQ.SRS-006.RBAC.Privileges.AlterConstraint.TableEngines](#rqsrs-006rbacprivilegesalterconstrainttableengines) - * 5.2.11.7 [AlterTTL](#alterttl) + * 5.2.11.7 [Alter TTL](#alter-ttl) * 5.2.11.7.1 [RQ.SRS-006.RBAC.Privileges.AlterTTL](#rqsrs-006rbacprivilegesalterttl) * 5.2.11.7.2 [RQ.SRS-006.RBAC.Privileges.AlterTTL.Grant](#rqsrs-006rbacprivilegesalterttlgrant) * 5.2.11.7.3 [RQ.SRS-006.RBAC.Privileges.AlterTTL.Revoke](#rqsrs-006rbacprivilegesalterttlrevoke) * 5.2.11.7.4 [RQ.SRS-006.RBAC.Privileges.AlterTTL.Cluster](#rqsrs-006rbacprivilegesalterttlcluster) * 5.2.11.7.5 [RQ.SRS-006.RBAC.Privileges.AlterTTL.TableEngines](#rqsrs-006rbacprivilegesalterttltableengines) - * 5.2.11.8 [AlterSettings](#altersettings) + * 5.2.11.8 [Alter Settings](#alter-settings) * 5.2.11.8.1 [RQ.SRS-006.RBAC.Privileges.AlterSettings](#rqsrs-006rbacprivilegesaltersettings) * 5.2.11.8.2 [RQ.SRS-006.RBAC.Privileges.AlterSettings.Grant](#rqsrs-006rbacprivilegesaltersettingsgrant) * 5.2.11.8.3 [RQ.SRS-006.RBAC.Privileges.AlterSettings.Revoke](#rqsrs-006rbacprivilegesaltersettingsrevoke) @@ -437,15 +437,55 @@ * 5.2.11.13.1 [RQ.SRS-006.RBAC.Privileges.AlterMove](#rqsrs-006rbacprivilegesaltermove) * 5.2.11.13.2 [RQ.SRS-006.RBAC.Privileges.AlterMove.Access](#rqsrs-006rbacprivilegesaltermoveaccess) * 5.2.11.13.3 [RQ.SRS-006.RBAC.Privileges.AlterMove.TableEngines](#rqsrs-006rbacprivilegesaltermovetableengines) - * 5.2.11.14 [Grant Option](#grant-option) - * 5.2.11.14.1 [RQ.SRS-006.RBAC.Privileges.GrantOption](#rqsrs-006rbacprivilegesgrantoption) - * 5.2.11.15 [RQ.SRS-006.RBAC.Privileges.Delete](#rqsrs-006rbacprivilegesdelete) - * 5.2.11.16 [RQ.SRS-006.RBAC.Privileges.Alter](#rqsrs-006rbacprivilegesalter) - * 5.2.11.17 [RQ.SRS-006.RBAC.Privileges.Create](#rqsrs-006rbacprivilegescreate) - * 5.2.11.18 [RQ.SRS-006.RBAC.Privileges.Drop](#rqsrs-006rbacprivilegesdrop) - * 5.2.11.19 [RQ.SRS-006.RBAC.Privileges.All](#rqsrs-006rbacprivilegesall) - * 5.2.11.20 [RQ.SRS-006.RBAC.Privileges.All.GrantRevoke](#rqsrs-006rbacprivilegesallgrantrevoke) - * 5.2.11.21 [RQ.SRS-006.RBAC.Privileges.AdminOption](#rqsrs-006rbacprivilegesadminoption) + * 5.2.11.14 [Create Table](#create-table) + * 5.2.11.14.1 [RQ.SRS-006.RBAC.Privileges.CreateTable](#rqsrs-006rbaccreatetable) + * 5.2.11.14.2 [RQ.SRS-006.RBAC.Privileges.CreateTable.Access](#rqsrs-006rbacprivilegescreatetableaccess) + * 5.2.11.15 [Create Database](#create-database) + * 5.2.11.15.1 [RQ.SRS-006.RBAC.Privileges.CreateDatabase](#rqsrs-006rbacprivilegescreatedatabase) + * 5.2.11.15.2 [RQ.SRS-006.RBAC.Privileges.CreateDatabase.Access](#rqsrs-006rbacprivilegescreatedatabaseaccess) + * 5.2.11.16 [Create Dictionary](#create-dictionary) + * 5.2.11.16.1 [RQ.SRS-006.RBAC.Privileges.CreateDictionary](#rqsrs-006rbacprivilegescreatedictionary) + * 5.2.11.16.2 [RQ.SRS-006.RBAC.Privileges.CreateDictionary.Access](#rqsrs-006rbacprivilegescreatedictionaryaccess) + * 5.2.11.17 [Create Temporary Table](#create-temporary-table) + * 5.2.11.17.1 [RQ.SRS-006.RBAC.Privileges.CreateTemporaryTable](#rqsrs-006rbacprivilegescreatetemporarytable) + * 5.2.11.17.2 [RQ.SRS-006.RBAC.Privileges.CreateTemporaryTable.Access](#rqsrs-006rbacprivilegescreatetemporarytableaccess) + * 5.2.11.18 [Attach Database](#attach-database) + * 5.2.11.18.1 [RQ.SRS-006.RBAC.Privileges.AttachDatabase](#rqsrs-006rbacprivilegesattachdatabase) + * 5.2.11.19 [Attach Dictionary](#attach-dictionary) + * 5.2.11.19.1 [RQ.SRS-006.RBAC.Privileges.AttachDictionary](#rqsrs-006rbacprivilegesattachdictionary) + * 5.2.11.20 [Attach Temporary Table](#attach-temporary-table) + * 5.2.11.20.1 [RQ.SRS-006.RBAC.Privileges.AttachTemporaryTable](#rqsrs-006rbacprivilegesattachtemporarytable) + * 5.2.11.21 [Attach Table](#attach-table) + * 5.2.11.21.1 [RQ.SRS-006.RBAC.Privileges.AttachTable](#rqsrs-006rbacprivilegesattachtable) + * 5.2.11.22 [Drop Table](#drop-table) + * 5.2.11.22.1 [RQ.SRS-006.RBAC.Privileges.DropTable](#rqsrs-006rbacprivilegesdroptable) + * 5.2.11.22.2 [RQ.SRS-006.RBAC.Privileges.DropTable.Access](#rqsrs-006rbacprivilegesdroptableaccess) + * 5.2.11.23 [Drop View](#drop-view) + * 5.2.11.23.1 [RQ.SRS-006.RBAC.Privileges.DropView](#rqsrs-006rbacprivilegesdropview) + * 5.2.11.23.2 [RQ.SRS-006.RBAC.Privileges.DropView.Access](#rqsrs-006rbacprivilegesdropviewaccess) + * 5.2.11.24 [Drop Database](#drop-database) + * 5.2.11.24.1 [RQ.SRS-006.RBAC.Privileges.DropDatabase](#rqsrs-006rbacprivilegesdropdatabase) + * 5.2.11.24.2 [RQ.SRS-006.RBAC.Privileges.DropDatabase.Access](#rqsrs-006rbacprivilegesdropdatabaseaccess) + * 5.2.11.25 [Drop Dictionary](#drop-dictionary) + * 5.2.11.25.1 [RQ.SRS-006.RBAC.Privileges.DropDictionary](#rqsrs-006rbacprivilegesdropdictionary) + * 5.2.11.25.2 [RQ.SRS-006.RBAC.Privileges.DropDictionary.Access](#rqsrs-006rbacprivilegesdropdictionaryaccess) + * 5.2.11.26 [Detach Table](#detach-table) + * 5.2.11.26.1 [RQ.SRS-006.RBAC.Privileges.DetachTable](#rqsrs-006rbacprivilegesdetachtable) + * 5.2.11.27 [Detach View](#detach-view) + * 5.2.11.27.1 [RQ.SRS-006.RBAC.Privileges.DetachView](#rqsrs-006rbacprivilegesdetachview) + * 5.2.11.28 [Detach Database](#detach-database) + * 5.2.11.28.1 [RQ.SRS-006.RBAC.Privileges.DetachDatabase](#rqsrs-006rbacprivilegesdetachdatabase) + * 5.2.11.29 [Detach Dictionary](#detach-dictionary) + * 5.2.11.29.1 [RQ.SRS-006.RBAC.Privileges.DetachDictionary](#rqsrs-006rbacprivilegesdetachdictionary) + * 5.2.11.30 [Grant Option](#grant-option) + * 5.2.11.30.1 [RQ.SRS-006.RBAC.Privileges.GrantOption](#rqsrs-006rbacprivilegesgrantoption) + * 5.2.11.31 [RQ.SRS-006.RBAC.Privileges.Delete](#rqsrs-006rbacprivilegesdelete) + * 5.2.11.32 [RQ.SRS-006.RBAC.Privileges.Alter](#rqsrs-006rbacprivilegesalter) + * 5.2.11.33 [RQ.SRS-006.RBAC.Privileges.Create](#rqsrs-006rbacprivilegescreate) + * 5.2.11.34 [RQ.SRS-006.RBAC.Privileges.Drop](#rqsrs-006rbacprivilegesdrop) + * 5.2.11.35 [RQ.SRS-006.RBAC.Privileges.All](#rqsrs-006rbacprivilegesall) + * 5.2.11.36 [RQ.SRS-006.RBAC.Privileges.All.GrantRevoke](#rqsrs-006rbacprivilegesallgrantrevoke) + * 5.2.11.37 [RQ.SRS-006.RBAC.Privileges.AdminOption](#rqsrs-006rbacprivilegesadminoption) * 5.2.12 [Required Privileges](#required-privileges) * 5.2.12.1 [RQ.SRS-006.RBAC.RequiredPrivileges.Create](#rqsrs-006rbacrequiredprivilegescreate) * 5.2.12.2 [RQ.SRS-006.RBAC.RequiredPrivileges.Alter](#rqsrs-006rbacrequiredprivilegesalter) @@ -1027,7 +1067,7 @@ to some password as identification when altering user account using ##### RQ.SRS-006.RBAC.User.Alter.Host.AddDrop version: 1.0 -[ClickHouse] SHALL support altering user by adding and dropping access to hosts with the `ADD HOST` or the `DROP HOST`in the `ALTER USER` statement. +[ClickHouse] SHALL support altering user by adding and dropping access to hosts with the `ADD HOST` or the `CREATE HOST`in the `ALTER USER` statement. ##### RQ.SRS-006.RBAC.User.Alter.Host.Local version: 1.0 @@ -1122,7 +1162,7 @@ version: 1.0 ALTER USER [IF EXISTS] name [ON CLUSTER cluster_name] [RENAME TO new_name] [IDENTIFIED [WITH {PLAINTEXT_PASSWORD|SHA256_PASSWORD|DOUBLE_SHA1_PASSWORD}] BY {'password'|'hash'}] - [[ADD|DROP] HOST {LOCAL | NAME 'name' | REGEXP 'name_regexp' | IP 'address' | LIKE 'pattern'} [,...] | ANY | NONE] + [[ADD|CREATE] HOST {LOCAL | NAME 'name' | REGEXP 'name_regexp' | IP 'address' | LIKE 'pattern'} [,...] | ANY | NONE] [DEFAULT ROLE role [,...] | ALL | ALL EXCEPT role [,...] ] [SETTINGS variable [= value] [MIN [=] min_value] [MAX [=] max_value] [READONLY|WRITABLE] | PROFILE 'profile_name'] [,...] ``` @@ -1231,12 +1271,12 @@ SHOW CREATE USER [name | CURRENT_USER] ##### RQ.SRS-006.RBAC.User.Drop version: 1.0 -[ClickHouse] SHALL support removing a user account using `DROP USER` statement. +[ClickHouse] SHALL support removing a user account using `CREATE USER` statement. ##### RQ.SRS-006.RBAC.User.Drop.IfExists version: 1.0 -[ClickHouse] SHALL support using `IF EXISTS` clause in the `DROP USER` statement +[ClickHouse] SHALL support using `IF EXISTS` clause in the `CREATE USER` statement to skip raising an exception if the user account does not exist. If the `IF EXISTS` clause is not specified then an exception SHALL be raised if a user does not exist. @@ -1244,16 +1284,16 @@ raised if a user does not exist. ##### RQ.SRS-006.RBAC.User.Drop.OnCluster version: 1.0 -[ClickHouse] SHALL support using `ON CLUSTER` clause in the `DROP USER` statement +[ClickHouse] SHALL support using `ON CLUSTER` clause in the `CREATE USER` statement to specify the name of the cluster the user should be dropped from. ##### RQ.SRS-006.RBAC.User.Drop.Syntax version: 1.0 -[ClickHouse] SHALL support the following syntax for `DROP USER` statement +[ClickHouse] SHALL support the following syntax for `CREATE USER` statement ```sql -DROP USER [IF EXISTS] name [,...] [ON CLUSTER cluster_name] +CREATE USER [IF EXISTS] name [,...] [ON CLUSTER cluster_name] ``` ##### RQ.SRS-006.RBAC.Role.Create @@ -1340,12 +1380,12 @@ ALTER ROLE [IF EXISTS] name [ON CLUSTER cluster_name] ##### RQ.SRS-006.RBAC.Role.Drop version: 1.0 -[ClickHouse] SHALL support removing one or more roles using `DROP ROLE` statement. +[ClickHouse] SHALL support removing one or more roles using `CREATE ROLE` statement. ##### RQ.SRS-006.RBAC.Role.Drop.IfExists version: 1.0 -[ClickHouse] SHALL support using `IF EXISTS` clause in the `DROP ROLE` statement +[ClickHouse] SHALL support using `IF EXISTS` clause in the `CREATE ROLE` statement to skip raising an exception if the role does not exist. If the `IF EXISTS` clause is not specified then an exception SHALL be raised if a role does not exist. @@ -1353,15 +1393,15 @@ raised if a role does not exist. ##### RQ.SRS-006.RBAC.Role.Drop.Cluster version: 1.0 -[ClickHouse] SHALL support using `ON CLUSTER` clause in the `DROP ROLE` statement to specify the cluster from which to drop the specified role. +[ClickHouse] SHALL support using `ON CLUSTER` clause in the `CREATE ROLE` statement to specify the cluster from which to drop the specified role. ##### RQ.SRS-006.RBAC.Role.Drop.Syntax version: 1.0 -[ClickHouse] SHALL support the following syntax for the `DROP ROLE` statement +[ClickHouse] SHALL support the following syntax for the `CREATE ROLE` statement ``` sql -DROP ROLE [IF EXISTS] name [,...] [ON CLUSTER cluster_name] +CREATE ROLE [IF EXISTS] name [,...] [ON CLUSTER cluster_name] ``` ##### RQ.SRS-006.RBAC.Role.ShowCreate @@ -1419,7 +1459,7 @@ for a database or a table using the `GRANT CREATE` statement. version: 1.0 [ClickHouse] SHALL support granting the **drop** privilege to one or more users or roles -for a database or a table using the `GRANT DROP` statement. +for a database or a table using the `GRANT CREATE` statement. ##### RQ.SRS-006.RBAC.Grant.Privilege.Truncate version: 1.0 @@ -1545,7 +1585,7 @@ version: 1.0 [ClickHouse] SHALL support revoking ANY privilege to one or more users or roles for a database or a table using the `REVOKE some_privilege` statement. **some_privilege** refers to any Clickhouse defined privilege, whose hierarchy includes -SELECT, INSERT, ALTER, CREATE, DROP, TRUNCATE, OPTIMIZE, SHOW, KILL QUERY, ACCESS MANAGEMENT, +SELECT, INSERT, ALTER, CREATE, CREATE, TRUNCATE, OPTIMIZE, SHOW, KILL QUERY, ACCESS MANAGEMENT, SYSTEM, INTROSPECTION, SOURCES, dictGet and all of their sub-privileges. ##### RQ.SRS-006.RBAC.Revoke.Privilege.Select @@ -1576,7 +1616,7 @@ for a database or a table using the `REVOKE CREATE` statement. version: 1.0 [ClickHouse] SHALL support revoking the **drop** privilege to one or more users or roles -for a database or a table using the `REVOKE DROP` statement. +for a database or a table using the `REVOKE CREATE` statement. ##### RQ.SRS-006.RBAC.Revoke.Privilege.Truncate version: 1.0 @@ -1646,7 +1686,7 @@ version: 1.0 [ClickHouse] SHALL support revoking MULTIPLE **privileges** to one or more users or roles for a database or a table using the `REVOKE privilege1, privilege2...` statement. **privileges** refers to any set of Clickhouse defined privilege, whose hierarchy includes -SELECT, INSERT, ALTER, CREATE, DROP, TRUNCATE, OPTIMIZE, SHOW, KILL QUERY, ACCESS MANAGEMENT, +SELECT, INSERT, ALTER, CREATE, CREATE, TRUNCATE, OPTIMIZE, SHOW, KILL QUERY, ACCESS MANAGEMENT, SYSTEM, INTROSPECTION, SOURCES, dictGet and all of their sub-privileges. ##### RQ.SRS-006.RBAC.Revoke.Privilege.All @@ -1985,12 +2025,12 @@ ALTER SETTINGS PROFILE [IF EXISTS] name ##### RQ.SRS-006.RBAC.SettingsProfile.Drop version: 1.0 -[ClickHouse] SHALL support removing one or more settings profiles using the `DROP SETTINGS PROFILE` statement. +[ClickHouse] SHALL support removing one or more settings profiles using the `CREATE SETTINGS PROFILE` statement. ##### RQ.SRS-006.RBAC.SettingsProfile.Drop.IfExists version: 1.0 -[ClickHouse] SHALL support using `IF EXISTS` clause in the `DROP SETTINGS PROFILE` statement +[ClickHouse] SHALL support using `IF EXISTS` clause in the `CREATE SETTINGS PROFILE` statement to skip raising an exception if the settings profile does not exist. If the `IF EXISTS` clause is not specified then an exception SHALL be raised if a settings profile does not exist. @@ -1999,15 +2039,15 @@ raised if a settings profile does not exist. version: 1.0 [ClickHouse] SHALL support dropping one or more settings profiles on specified cluster using -`ON CLUSTER` clause in the `DROP SETTINGS PROFILE` statement. +`ON CLUSTER` clause in the `CREATE SETTINGS PROFILE` statement. ##### RQ.SRS-006.RBAC.SettingsProfile.Drop.Syntax version: 1.0 -[ClickHouse] SHALL support the following syntax for the `DROP SETTINGS PROFILE` statement +[ClickHouse] SHALL support the following syntax for the `CREATE SETTINGS PROFILE` statement ``` sql -DROP SETTINGS PROFILE [IF EXISTS] name [,name,...] +CREATE SETTINGS PROFILE [IF EXISTS] name [,name,...] ``` ##### RQ.SRS-006.RBAC.SettingsProfile.ShowCreateSettingsProfile @@ -2342,12 +2382,12 @@ ALTER QUOTA [IF EXIST] name ##### RQ.SRS-006.RBAC.Quota.Drop version: 1.0 -[ClickHouse] SHALL support removing one or more quotas using the `DROP QUOTA` statement. +[ClickHouse] SHALL support removing one or more quotas using the `CREATE QUOTA` statement. ##### RQ.SRS-006.RBAC.Quota.Drop.IfExists version: 1.0 -[ClickHouse] SHALL support using `IF EXISTS` clause in the `DROP QUOTA` statement +[ClickHouse] SHALL support using `IF EXISTS` clause in the `CREATE QUOTA` statement to skip raising an exception when the quota does not exist. If the `IF EXISTS` clause is not specified then an exception SHALL be raised if the quota does not exist. @@ -2355,16 +2395,16 @@ raised if the quota does not exist. ##### RQ.SRS-006.RBAC.Quota.Drop.Cluster version: 1.0 -[ClickHouse] SHALL support using `ON CLUSTER` clause in the `DROP QUOTA` statement +[ClickHouse] SHALL support using `ON CLUSTER` clause in the `CREATE QUOTA` statement to indicate the cluster the quota to be dropped is located on. ##### RQ.SRS-006.RBAC.Quota.Drop.Syntax version: 1.0 -[ClickHouse] SHALL support the following syntax for the `DROP QUOTA` statement +[ClickHouse] SHALL support the following syntax for the `CREATE QUOTA` statement ``` sql -DROP QUOTA [IF EXISTS] name [,name...] +CREATE QUOTA [IF EXISTS] name [,name...] ``` ##### RQ.SRS-006.RBAC.Quota.ShowQuotas @@ -2636,12 +2676,12 @@ ALTER [ROW] POLICY [IF EXISTS] name [ON CLUSTER cluster_name] ON [database.]tabl ##### RQ.SRS-006.RBAC.RowPolicy.Drop version: 1.0 -[ClickHouse] SHALL support removing one or more row policies using the `DROP ROW POLICY` statement. +[ClickHouse] SHALL support removing one or more row policies using the `CREATE ROW POLICY` statement. ##### RQ.SRS-006.RBAC.RowPolicy.Drop.IfExists version: 1.0 -[ClickHouse] SHALL support using the `IF EXISTS` clause in the `DROP ROW POLICY` statement +[ClickHouse] SHALL support using the `IF EXISTS` clause in the `CREATE ROW POLICY` statement to skip raising an exception when the row policy does not exist. If the `IF EXISTS` clause is not specified then an exception SHALL be raised if the row policy does not exist. @@ -2650,21 +2690,21 @@ raised if the row policy does not exist. version: 1.0 [ClickHouse] SHALL support removing row policy from one or more specified tables -using the `ON` clause in the `DROP ROW POLICY` statement. +using the `ON` clause in the `CREATE ROW POLICY` statement. ##### RQ.SRS-006.RBAC.RowPolicy.Drop.OnCluster version: 1.0 [ClickHouse] SHALL support removing row policy from specified cluster -using the `ON CLUSTER` clause in the `DROP ROW POLICY` statement. +using the `ON CLUSTER` clause in the `CREATE ROW POLICY` statement. ##### RQ.SRS-006.RBAC.RowPolicy.Drop.Syntax version: 1.0 -[ClickHouse] SHALL support the following syntax for the `DROP ROW POLICY` statement. +[ClickHouse] SHALL support the following syntax for the `CREATE ROW POLICY` statement. ``` sql -DROP [ROW] POLICY [IF EXISTS] name [,...] ON [database.]table [,...] [ON CLUSTER cluster_name] +CREATE [ROW] POLICY [IF EXISTS] name [,...] ON [database.]table [,...] [ON CLUSTER cluster_name] ``` ##### RQ.SRS-006.RBAC.RowPolicy.ShowCreateRowPolicy @@ -3124,14 +3164,14 @@ on tables created using the following engines * ReplicatedVersionedCollapsingMergeTree * ReplicatedGraphiteMergeTree -##### AlterColumn +##### Alter Column ###### RQ.SRS-006.RBAC.Privileges.AlterColumn version: 1.0 [ClickHouse] SHALL support controlling access to the **AlterColumn** privilege for a database or a specific table to one or more **users** or **roles**. -Any `ALTER TABLE ... ADD|DROP|CLEAR|COMMENT|MODIFY COLUMN` statements SHALL +Any `ALTER TABLE ... ADD|CREATE|CLEAR|COMMENT|MODIFY COLUMN` statements SHALL return an error, unless the user has the **alter column** privilege for the destination table either because of the explicit grant or through one of the roles assigned to the user. @@ -3153,7 +3193,7 @@ version: 1.0 [ClickHouse] SHALL support granting or revoking **alter column** privilege for one or more specified columns in a table to one or more **users** or **roles**. -Any `ALTER TABLE ... ADD|DROP|CLEAR|COMMENT|MODIFY COLUMN` statements SHALL return an error, +Any `ALTER TABLE ... ADD|CREATE|CLEAR|COMMENT|MODIFY COLUMN` statements SHALL return an error, unless the user has the **alter column** privilege for the destination column either because of the explicit grant or through one of the roles assigned to the user. @@ -3162,7 +3202,7 @@ version: 1.0 [ClickHouse] SHALL support granting or revoking **alter column** privilege on a specified cluster to one or more **users** or **roles**. -Any `ALTER TABLE ... ADD|DROP|CLEAR|COMMENT|MODIFY COLUMN` +Any `ALTER TABLE ... ADD|CREATE|CLEAR|COMMENT|MODIFY COLUMN` statements SHALL succeed only on nodes where the table exists and privilege was granted. ###### RQ.SRS-006.RBAC.Privileges.AlterColumn.TableEngines @@ -3186,14 +3226,14 @@ on tables created using the following engines * ReplicatedVersionedCollapsingMergeTree * ReplicatedGraphiteMergeTree -##### AlterIndex +##### Alter Index ###### RQ.SRS-006.RBAC.Privileges.AlterIndex version: 1.0 [ClickHouse] SHALL support controlling access to the **alter index** privilege for a database or a specific table to one or more **users** or **roles**. -Any `ALTER TABLE ... ORDER BY | ADD|DROP|MATERIALIZE|CLEAR INDEX` statements SHALL +Any `ALTER TABLE ... ORDER BY | ADD|CREATE|MATERIALIZE|CLEAR INDEX` statements SHALL return an error, unless the user has the **alter index** privilege for the destination table either because of the explicit grant or through one of the roles assigned to the user. @@ -3215,7 +3255,7 @@ version: 1.0 [ClickHouse] SHALL support granting or revoking **alter index** privilege on a specified cluster to one or more **users** or **roles**. -Any `ALTER TABLE ... ORDER BY | ADD|DROP|MATERIALIZE|CLEAR INDEX` +Any `ALTER TABLE ... ORDER BY | ADD|CREATE|MATERIALIZE|CLEAR INDEX` statements SHALL succeed only on nodes where the table exists and privilege was granted. ###### RQ.SRS-006.RBAC.Privileges.AlterIndex.TableEngines @@ -3239,14 +3279,14 @@ on tables created using the following engines * ReplicatedVersionedCollapsingMergeTree * ReplicatedGraphiteMergeTree -##### AlterConstraint +##### Alter Constraint ###### RQ.SRS-006.RBAC.Privileges.AlterConstraint version: 1.0 [ClickHouse] SHALL support controlling access to the **alter constraint** privilege for a database or a specific table to one or more **users** or **roles**. -Any `ALTER TABLE ... ADD|DROP CONSTRAINT` statements SHALL +Any `ALTER TABLE ... ADD|CREATE CONSTRAINT` statements SHALL return an error, unless the user has the **alter constraint** privilege for the destination table either because of the explicit grant or through one of the roles assigned to the user. @@ -3268,7 +3308,7 @@ version: 1.0 [ClickHouse] SHALL support granting or revoking **alter constraint** privilege on a specified cluster to one or more **users** or **roles**. -Any `ALTER TABLE ... ADD|DROP CONSTRAINT` +Any `ALTER TABLE ... ADD|CREATE CONSTRAINT` statements SHALL succeed only on nodes where the table exists and privilege was granted. ###### RQ.SRS-006.RBAC.Privileges.AlterConstraint.TableEngines @@ -3292,7 +3332,7 @@ on tables created using the following engines * ReplicatedVersionedCollapsingMergeTree * ReplicatedGraphiteMergeTree -##### AlterTTL +##### Alter TTL ###### RQ.SRS-006.RBAC.Privileges.AlterTTL version: 1.0 @@ -3332,7 +3372,7 @@ on tables created using the following engines * MergeTree -##### AlterSettings +##### Alter Settings ###### RQ.SRS-006.RBAC.Privileges.AlterSettings version: 1.0 @@ -3554,6 +3594,186 @@ on tables created using the following engines * ReplicatedVersionedCollapsingMergeTree * ReplicatedGraphiteMergeTree +##### Create Table + +###### RQ.SRS-006.RBAC.Privileges.CreateTable +version: 1.0 + +[ClickHouse] SHALL only successfully execute a `CREATE TABLE` command if and only if +the user has **create table** privilege either explicitly or through roles. + +If the stored query includes one or more source tables, the user must have **select** privilege +on all the source tables and **insert** for the table they're trying to create either explicitly or through a role. +For example, +```sql +CREATE TABLE table AS SELECT * FROM source_table +CREATE TABLE table AS SELECT * FROM table0 WHERE column IN (SELECT column FROM table1 WHERE column IN (SELECT column FROM table2 WHERE expression)) +CREATE TABLE table AS SELECT * FROM table0 JOIN table1 USING column +CREATE TABLE table AS SELECT * FROM table0 UNION ALL SELECT * FROM table1 UNION ALL SELECT * FROM table2 +CREATE TABLE table AS SELECT column FROM table0 JOIN table1 USING column UNION ALL SELECT column FROM table2 WHERE column IN (SELECT column FROM table3 WHERE column IN (SELECT column FROM table4 WHERE expression)) +CREATE TABLE table0 AS SELECT column FROM table1 UNION ALL SELECT column FROM table2 +``` + +###### RQ.SRS-006.RBAC.Privileges.CreateTable.Access +version: 1.0 + +[ClickHouse] SHALL support granting or revoking **create table** privilege to one or more **users** or **roles**. + +##### Create Database + +###### RQ.SRS-006.RBAC.Privileges.CreateDatabase +version: 1.0 + +[ClickHouse] SHALL successfully execute `CREATE DATABASE` statement if and only if the user has **create database** privilege on the source table, +either directly or through a role. + +###### RQ.SRS-006.RBAC.Privileges.CreateDatabase.Access +version: 1.0 + +[ClickHouse] SHALL support granting or revoking **create database** privilege to one or more **users** or **roles**. + +##### Create Dictionary + +###### RQ.SRS-006.RBAC.Privileges.CreateDictionary +version: 1.0 + +[ClickHouse] SHALL successfully execute `CREATE DICTIONARY` statement if and only if the user has **create dictionary** privilege on the source table, +either directly or through a role. + +###### RQ.SRS-006.RBAC.Privileges.CreateDictionary.Access +version: 1.0 + +[ClickHouse] SHALL support granting or revoking **create dictionary** privilege to one or more **users** or **roles**. + +##### Create Temporary Table + +###### RQ.SRS-006.RBAC.Privileges.CreateTemporaryTable +version: 1.0 + +[ClickHouse] SHALL successfully execute `CREATE TEMPORARY TABLE` statement if and only if the user has **create temporary table** privilege on the source table, +either directly or through a role. + +###### RQ.SRS-006.RBAC.Privileges.CreateTemporaryTable.Access +version: 1.0 + +[ClickHouse] SHALL support granting or revoking **create temporary table** privilege to one or more **users** or **roles**. + +##### Attach Database + +###### RQ.SRS-006.RBAC.Privileges.AttachDatabase +version: 1.0 + +[ClickHouse] SHALL successfully execute `ATTACH DATABASE` statement if and only if the user has **create database** privilege on the source table, +either directly or through a role. + +##### Attach Dictionary + +###### RQ.SRS-006.RBAC.Privileges.AttachDictionary +version: 1.0 + +[ClickHouse] SHALL successfully execute `ATTACH DICTIONARY` statement if and only if the user has **create dictionary** privilege on the source table, +either directly or through a role. + +##### Attach Temporary Table + +###### RQ.SRS-006.RBAC.Privileges.AttachTemporaryTable +version: 1.0 + +[ClickHouse] SHALL successfully execute `ATTACH TEMPORARY TABLE` statement if and only if the user has **create temporary table** privilege on the source table, +either directly or through a role. + +##### Attach Table + +###### RQ.SRS-006.RBAC.Privileges.AttachTable +version: 1.0 + +[ClickHouse] SHALL successfully execute `ATTACH TABLE` statement if and only if the user has **create table** privilege on the source table, +either directly or through a role. + +##### Drop Table + +###### RQ.SRS-006.RBAC.Privileges.DropTable +version: 1.0 + +[ClickHouse] SHALL successfully execute `DROP TABLE` statement if and only if the user has **drop table** privilege on the source table, +either directly or through a role. + +###### RQ.SRS-006.RBAC.Privileges.DropTable.Access +version: 1.0 + +[ClickHouse] SHALL support granting or revoking **drop table** privilege to one or more **users** or **roles**. + +##### Drop View + +###### RQ.SRS-006.RBAC.Privileges.DropView +version: 1.0 + +[ClickHouse] SHALL successfully execute `DROP VIEW` statement if and only if the user has **drop view** privilege on the source table, +either directly or through a role. + +###### RQ.SRS-006.RBAC.Privileges.DropView.Access +version: 1.0 + +[ClickHouse] SHALL support granting or revoking **drop view** privilege to one or more **users** or **roles**. + +##### Drop Database + +###### RQ.SRS-006.RBAC.Privileges.DropDatabase +version: 1.0 + +[ClickHouse] SHALL successfully execute `DROP DATABASE` statement if and only if the user has **drop database** privilege on the source table, +either directly or through a role. + +###### RQ.SRS-006.RBAC.Privileges.DropDatabase.Access +version: 1.0 + +[ClickHouse] SHALL support granting or revoking **drop database** privilege to one or more **users** or **roles**. + +##### Drop Dictionary + +###### RQ.SRS-006.RBAC.Privileges.DropDictionary +version: 1.0 + +[ClickHouse] SHALL successfully execute `DROP DICTIONARY` statement if and only if the user has **drop dictionary** privilege on the source table, +either directly or through a role. + +###### RQ.SRS-006.RBAC.Privileges.DropDictionary.Access +version: 1.0 + +[ClickHouse] SHALL support granting or revoking **drop dictionary** privilege to one or more **users** or **roles**. + +##### Detach Table + +###### RQ.SRS-006.RBAC.Privileges.DetachTable +version: 1.0 + +[ClickHouse] SHALL successfully execute `DETACH TABLE` statement if and only if the user has **drop table** privilege on the source table, +either directly or through a role. + +##### Detach View + +###### RQ.SRS-006.RBAC.Privileges.DetachView +version: 1.0 + +[ClickHouse] SHALL successfully execute `DETACH VIEW` statement if and only if the user has **drop view** privilege on the source table, +either directly or through a role. + +##### Detach Database + +###### RQ.SRS-006.RBAC.Privileges.DetachDatabase +version: 1.0 + +[ClickHouse] SHALL successfully execute `DETACH DATABASE` statement if and only if the user has **drop database** privilege on the source table, +either directly or through a role. + +##### Detach Dictionary + +###### RQ.SRS-006.RBAC.Privileges.DetachDictionary +version: 1.0 + +[ClickHouse] SHALL successfully execute `DETACH DICTIONARY` statement if and only if the user has **drop dictionary** privilege on the source table, +either directly or through a role. + ##### Grant Option ###### RQ.SRS-006.RBAC.Privileges.GrantOption @@ -3576,6 +3796,15 @@ the user has that privilege with `GRANT OPTION`, either directly or through a ro * `ALTER INDEX` * `INSERT` * `SELECT` +* `CREATE TABLE` +* `CREATE VIEW` +* `CREATE DATABASE` +* `CREATE DICTIONARY` +* `CREATE TEMPORARY TABLE` +* `DROP TABLE` +* `DROP VIEW` +* `DROP DATABASE` +* `DROP DICTIONARY` ##### RQ.SRS-006.RBAC.Privileges.Delete version: 1.0 @@ -3639,14 +3868,14 @@ either because of the explicit grant or through one of the roles assigned to the ##### RQ.SRS-006.RBAC.RequiredPrivileges.Drop version: 1.0 -[ClickHouse] SHALL not allow any `DROP` statements +[ClickHouse] SHALL not allow any `CREATE` statements to be executed unless the user has the **drop** privilege for the destination database either because of the explicit grant or through one of the roles assigned to the user. ##### RQ.SRS-006.RBAC.RequiredPrivileges.Drop.Table version: 1.0 -[ClickHouse] SHALL not allow any `DROP TABLE` statements +[ClickHouse] SHALL not allow any `CREATE TABLE` statements to be executed unless the user has the **drop** privilege for the destination database or the table either because of the explicit grant or through one of the roles assigned to the user. diff --git a/tests/testflows/rbac/requirements/requirements.py b/tests/testflows/rbac/requirements/requirements.py index 5277b732066..cebeed4a04f 100755 --- a/tests/testflows/rbac/requirements/requirements.py +++ b/tests/testflows/rbac/requirements/requirements.py @@ -1,6 +1,6 @@ # These requirements were auto generated # from software requirements specification (SRS) -# document by TestFlows v1.6.201021.1163815. +# document by TestFlows v1.6.201102.1235648. # Do not edit by hand but re-generate instead # using 'tfs requirements generate' command. from testflows.core import Specification @@ -411,32 +411,32 @@ SRS_006_ClickHouse_Role_Based_Access_Control = Specification( * 5.2.11.3.4 [RQ.SRS-006.RBAC.Privileges.Insert.Column](#rqsrs-006rbacprivilegesinsertcolumn) * 5.2.11.3.5 [RQ.SRS-006.RBAC.Privileges.Insert.Cluster](#rqsrs-006rbacprivilegesinsertcluster) * 5.2.11.3.6 [RQ.SRS-006.RBAC.Privileges.Insert.TableEngines](#rqsrs-006rbacprivilegesinserttableengines) - * 5.2.11.4 [AlterColumn](#altercolumn) + * 5.2.11.4 [Alter Column](#alter-column) * 5.2.11.4.1 [RQ.SRS-006.RBAC.Privileges.AlterColumn](#rqsrs-006rbacprivilegesaltercolumn) * 5.2.11.4.2 [RQ.SRS-006.RBAC.Privileges.AlterColumn.Grant](#rqsrs-006rbacprivilegesaltercolumngrant) * 5.2.11.4.3 [RQ.SRS-006.RBAC.Privileges.AlterColumn.Revoke](#rqsrs-006rbacprivilegesaltercolumnrevoke) * 5.2.11.4.4 [RQ.SRS-006.RBAC.Privileges.AlterColumn.Column](#rqsrs-006rbacprivilegesaltercolumncolumn) * 5.2.11.4.5 [RQ.SRS-006.RBAC.Privileges.AlterColumn.Cluster](#rqsrs-006rbacprivilegesaltercolumncluster) * 5.2.11.4.6 [RQ.SRS-006.RBAC.Privileges.AlterColumn.TableEngines](#rqsrs-006rbacprivilegesaltercolumntableengines) - * 5.2.11.5 [AlterIndex](#alterindex) + * 5.2.11.5 [Alter Index](#alter-index) * 5.2.11.5.1 [RQ.SRS-006.RBAC.Privileges.AlterIndex](#rqsrs-006rbacprivilegesalterindex) * 5.2.11.5.2 [RQ.SRS-006.RBAC.Privileges.AlterIndex.Grant](#rqsrs-006rbacprivilegesalterindexgrant) * 5.2.11.5.3 [RQ.SRS-006.RBAC.Privileges.AlterIndex.Revoke](#rqsrs-006rbacprivilegesalterindexrevoke) * 5.2.11.5.4 [RQ.SRS-006.RBAC.Privileges.AlterIndex.Cluster](#rqsrs-006rbacprivilegesalterindexcluster) * 5.2.11.5.5 [RQ.SRS-006.RBAC.Privileges.AlterIndex.TableEngines](#rqsrs-006rbacprivilegesalterindextableengines) - * 5.2.11.6 [AlterConstraint](#alterconstraint) + * 5.2.11.6 [Alter Constraint](#alter-constraint) * 5.2.11.6.1 [RQ.SRS-006.RBAC.Privileges.AlterConstraint](#rqsrs-006rbacprivilegesalterconstraint) * 5.2.11.6.2 [RQ.SRS-006.RBAC.Privileges.AlterConstraint.Grant](#rqsrs-006rbacprivilegesalterconstraintgrant) * 5.2.11.6.3 [RQ.SRS-006.RBAC.Privileges.AlterConstraint.Revoke](#rqsrs-006rbacprivilegesalterconstraintrevoke) * 5.2.11.6.4 [RQ.SRS-006.RBAC.Privileges.AlterConstraint.Cluster](#rqsrs-006rbacprivilegesalterconstraintcluster) * 5.2.11.6.5 [RQ.SRS-006.RBAC.Privileges.AlterConstraint.TableEngines](#rqsrs-006rbacprivilegesalterconstrainttableengines) - * 5.2.11.7 [AlterTTL](#alterttl) + * 5.2.11.7 [Alter TTL](#alter-ttl) * 5.2.11.7.1 [RQ.SRS-006.RBAC.Privileges.AlterTTL](#rqsrs-006rbacprivilegesalterttl) * 5.2.11.7.2 [RQ.SRS-006.RBAC.Privileges.AlterTTL.Grant](#rqsrs-006rbacprivilegesalterttlgrant) * 5.2.11.7.3 [RQ.SRS-006.RBAC.Privileges.AlterTTL.Revoke](#rqsrs-006rbacprivilegesalterttlrevoke) * 5.2.11.7.4 [RQ.SRS-006.RBAC.Privileges.AlterTTL.Cluster](#rqsrs-006rbacprivilegesalterttlcluster) * 5.2.11.7.5 [RQ.SRS-006.RBAC.Privileges.AlterTTL.TableEngines](#rqsrs-006rbacprivilegesalterttltableengines) - * 5.2.11.8 [AlterSettings](#altersettings) + * 5.2.11.8 [Alter Settings](#alter-settings) * 5.2.11.8.1 [RQ.SRS-006.RBAC.Privileges.AlterSettings](#rqsrs-006rbacprivilegesaltersettings) * 5.2.11.8.2 [RQ.SRS-006.RBAC.Privileges.AlterSettings.Grant](#rqsrs-006rbacprivilegesaltersettingsgrant) * 5.2.11.8.3 [RQ.SRS-006.RBAC.Privileges.AlterSettings.Revoke](#rqsrs-006rbacprivilegesaltersettingsrevoke) @@ -462,15 +462,55 @@ SRS_006_ClickHouse_Role_Based_Access_Control = Specification( * 5.2.11.13.1 [RQ.SRS-006.RBAC.Privileges.AlterMove](#rqsrs-006rbacprivilegesaltermove) * 5.2.11.13.2 [RQ.SRS-006.RBAC.Privileges.AlterMove.Access](#rqsrs-006rbacprivilegesaltermoveaccess) * 5.2.11.13.3 [RQ.SRS-006.RBAC.Privileges.AlterMove.TableEngines](#rqsrs-006rbacprivilegesaltermovetableengines) - * 5.2.11.14 [Grant Option](#grant-option) - * 5.2.11.14.1 [RQ.SRS-006.RBAC.Privileges.GrantOption](#rqsrs-006rbacprivilegesgrantoption) - * 5.2.11.15 [RQ.SRS-006.RBAC.Privileges.Delete](#rqsrs-006rbacprivilegesdelete) - * 5.2.11.16 [RQ.SRS-006.RBAC.Privileges.Alter](#rqsrs-006rbacprivilegesalter) - * 5.2.11.17 [RQ.SRS-006.RBAC.Privileges.Create](#rqsrs-006rbacprivilegescreate) - * 5.2.11.18 [RQ.SRS-006.RBAC.Privileges.Drop](#rqsrs-006rbacprivilegesdrop) - * 5.2.11.19 [RQ.SRS-006.RBAC.Privileges.All](#rqsrs-006rbacprivilegesall) - * 5.2.11.20 [RQ.SRS-006.RBAC.Privileges.All.GrantRevoke](#rqsrs-006rbacprivilegesallgrantrevoke) - * 5.2.11.21 [RQ.SRS-006.RBAC.Privileges.AdminOption](#rqsrs-006rbacprivilegesadminoption) + * 5.2.11.14 [Create Table](#create-table) + * 5.2.11.14.1 [RQ.SRS-006.RBAC.Privileges.CreateTable](#rqsrs-006rbaccreatetable) + * 5.2.11.14.2 [RQ.SRS-006.RBAC.Privileges.CreateTable.Access](#rqsrs-006rbacprivilegescreatetableaccess) + * 5.2.11.15 [Create Database](#create-database) + * 5.2.11.15.1 [RQ.SRS-006.RBAC.Privileges.CreateDatabase](#rqsrs-006rbacprivilegescreatedatabase) + * 5.2.11.15.2 [RQ.SRS-006.RBAC.Privileges.CreateDatabase.Access](#rqsrs-006rbacprivilegescreatedatabaseaccess) + * 5.2.11.16 [Create Dictionary](#create-dictionary) + * 5.2.11.16.1 [RQ.SRS-006.RBAC.Privileges.CreateDictionary](#rqsrs-006rbacprivilegescreatedictionary) + * 5.2.11.16.2 [RQ.SRS-006.RBAC.Privileges.CreateDictionary.Access](#rqsrs-006rbacprivilegescreatedictionaryaccess) + * 5.2.11.17 [Create Temporary Table](#create-temporary-table) + * 5.2.11.17.1 [RQ.SRS-006.RBAC.Privileges.CreateTemporaryTable](#rqsrs-006rbacprivilegescreatetemporarytable) + * 5.2.11.17.2 [RQ.SRS-006.RBAC.Privileges.CreateTemporaryTable.Access](#rqsrs-006rbacprivilegescreatetemporarytableaccess) + * 5.2.11.18 [Attach Database](#attach-database) + * 5.2.11.18.1 [RQ.SRS-006.RBAC.Privileges.AttachDatabase](#rqsrs-006rbacprivilegesattachdatabase) + * 5.2.11.19 [Attach Dictionary](#attach-dictionary) + * 5.2.11.19.1 [RQ.SRS-006.RBAC.Privileges.AttachDictionary](#rqsrs-006rbacprivilegesattachdictionary) + * 5.2.11.20 [Attach Temporary Table](#attach-temporary-table) + * 5.2.11.20.1 [RQ.SRS-006.RBAC.Privileges.AttachTemporaryTable](#rqsrs-006rbacprivilegesattachtemporarytable) + * 5.2.11.21 [Attach Table](#attach-table) + * 5.2.11.21.1 [RQ.SRS-006.RBAC.Privileges.AttachTable](#rqsrs-006rbacprivilegesattachtable) + * 5.2.11.22 [Drop Table](#drop-table) + * 5.2.11.22.1 [RQ.SRS-006.RBAC.Privileges.DropTable](#rqsrs-006rbacprivilegesdroptable) + * 5.2.11.22.2 [RQ.SRS-006.RBAC.Privileges.DropTable.Access](#rqsrs-006rbacprivilegesdroptableaccess) + * 5.2.11.23 [Drop View](#drop-view) + * 5.2.11.23.1 [RQ.SRS-006.RBAC.Privileges.DropView](#rqsrs-006rbacprivilegesdropview) + * 5.2.11.23.2 [RQ.SRS-006.RBAC.Privileges.DropView.Access](#rqsrs-006rbacprivilegesdropviewaccess) + * 5.2.11.24 [Drop Database](#drop-database) + * 5.2.11.24.1 [RQ.SRS-006.RBAC.Privileges.DropDatabase](#rqsrs-006rbacprivilegesdropdatabase) + * 5.2.11.24.2 [RQ.SRS-006.RBAC.Privileges.DropDatabase.Access](#rqsrs-006rbacprivilegesdropdatabaseaccess) + * 5.2.11.25 [Drop Dictionary](#drop-dictionary) + * 5.2.11.25.1 [RQ.SRS-006.RBAC.Privileges.DropDictionary](#rqsrs-006rbacprivilegesdropdictionary) + * 5.2.11.25.2 [RQ.SRS-006.RBAC.Privileges.DropDictionary.Access](#rqsrs-006rbacprivilegesdropdictionaryaccess) + * 5.2.11.26 [Detach Table](#detach-table) + * 5.2.11.26.1 [RQ.SRS-006.RBAC.Privileges.DetachTable](#rqsrs-006rbacprivilegesdetachtable) + * 5.2.11.27 [Detach View](#detach-view) + * 5.2.11.27.1 [RQ.SRS-006.RBAC.Privileges.DetachView](#rqsrs-006rbacprivilegesdetachview) + * 5.2.11.28 [Detach Database](#detach-database) + * 5.2.11.28.1 [RQ.SRS-006.RBAC.Privileges.DetachDatabase](#rqsrs-006rbacprivilegesdetachdatabase) + * 5.2.11.29 [Detach Dictionary](#detach-dictionary) + * 5.2.11.29.1 [RQ.SRS-006.RBAC.Privileges.DetachDictionary](#rqsrs-006rbacprivilegesdetachdictionary) + * 5.2.11.30 [Grant Option](#grant-option) + * 5.2.11.30.1 [RQ.SRS-006.RBAC.Privileges.GrantOption](#rqsrs-006rbacprivilegesgrantoption) + * 5.2.11.31 [RQ.SRS-006.RBAC.Privileges.Delete](#rqsrs-006rbacprivilegesdelete) + * 5.2.11.32 [RQ.SRS-006.RBAC.Privileges.Alter](#rqsrs-006rbacprivilegesalter) + * 5.2.11.33 [RQ.SRS-006.RBAC.Privileges.Create](#rqsrs-006rbacprivilegescreate) + * 5.2.11.34 [RQ.SRS-006.RBAC.Privileges.Drop](#rqsrs-006rbacprivilegesdrop) + * 5.2.11.35 [RQ.SRS-006.RBAC.Privileges.All](#rqsrs-006rbacprivilegesall) + * 5.2.11.36 [RQ.SRS-006.RBAC.Privileges.All.GrantRevoke](#rqsrs-006rbacprivilegesallgrantrevoke) + * 5.2.11.37 [RQ.SRS-006.RBAC.Privileges.AdminOption](#rqsrs-006rbacprivilegesadminoption) * 5.2.12 [Required Privileges](#required-privileges) * 5.2.12.1 [RQ.SRS-006.RBAC.RequiredPrivileges.Create](#rqsrs-006rbacrequiredprivilegescreate) * 5.2.12.2 [RQ.SRS-006.RBAC.RequiredPrivileges.Alter](#rqsrs-006rbacrequiredprivilegesalter) @@ -1052,7 +1092,7 @@ to some password as identification when altering user account using ##### RQ.SRS-006.RBAC.User.Alter.Host.AddDrop version: 1.0 -[ClickHouse] SHALL support altering user by adding and dropping access to hosts with the `ADD HOST` or the `DROP HOST`in the `ALTER USER` statement. +[ClickHouse] SHALL support altering user by adding and dropping access to hosts with the `ADD HOST` or the `CREATE HOST`in the `ALTER USER` statement. ##### RQ.SRS-006.RBAC.User.Alter.Host.Local version: 1.0 @@ -1147,7 +1187,7 @@ version: 1.0 ALTER USER [IF EXISTS] name [ON CLUSTER cluster_name] [RENAME TO new_name] [IDENTIFIED [WITH {PLAINTEXT_PASSWORD|SHA256_PASSWORD|DOUBLE_SHA1_PASSWORD}] BY {'password'|'hash'}] - [[ADD|DROP] HOST {LOCAL | NAME 'name' | REGEXP 'name_regexp' | IP 'address' | LIKE 'pattern'} [,...] | ANY | NONE] + [[ADD|CREATE] HOST {LOCAL | NAME 'name' | REGEXP 'name_regexp' | IP 'address' | LIKE 'pattern'} [,...] | ANY | NONE] [DEFAULT ROLE role [,...] | ALL | ALL EXCEPT role [,...] ] [SETTINGS variable [= value] [MIN [=] min_value] [MAX [=] max_value] [READONLY|WRITABLE] | PROFILE 'profile_name'] [,...] ``` @@ -1256,12 +1296,12 @@ SHOW CREATE USER [name | CURRENT_USER] ##### RQ.SRS-006.RBAC.User.Drop version: 1.0 -[ClickHouse] SHALL support removing a user account using `DROP USER` statement. +[ClickHouse] SHALL support removing a user account using `CREATE USER` statement. ##### RQ.SRS-006.RBAC.User.Drop.IfExists version: 1.0 -[ClickHouse] SHALL support using `IF EXISTS` clause in the `DROP USER` statement +[ClickHouse] SHALL support using `IF EXISTS` clause in the `CREATE USER` statement to skip raising an exception if the user account does not exist. If the `IF EXISTS` clause is not specified then an exception SHALL be raised if a user does not exist. @@ -1269,16 +1309,16 @@ raised if a user does not exist. ##### RQ.SRS-006.RBAC.User.Drop.OnCluster version: 1.0 -[ClickHouse] SHALL support using `ON CLUSTER` clause in the `DROP USER` statement +[ClickHouse] SHALL support using `ON CLUSTER` clause in the `CREATE USER` statement to specify the name of the cluster the user should be dropped from. ##### RQ.SRS-006.RBAC.User.Drop.Syntax version: 1.0 -[ClickHouse] SHALL support the following syntax for `DROP USER` statement +[ClickHouse] SHALL support the following syntax for `CREATE USER` statement ```sql -DROP USER [IF EXISTS] name [,...] [ON CLUSTER cluster_name] +CREATE USER [IF EXISTS] name [,...] [ON CLUSTER cluster_name] ``` ##### RQ.SRS-006.RBAC.Role.Create @@ -1365,12 +1405,12 @@ ALTER ROLE [IF EXISTS] name [ON CLUSTER cluster_name] ##### RQ.SRS-006.RBAC.Role.Drop version: 1.0 -[ClickHouse] SHALL support removing one or more roles using `DROP ROLE` statement. +[ClickHouse] SHALL support removing one or more roles using `CREATE ROLE` statement. ##### RQ.SRS-006.RBAC.Role.Drop.IfExists version: 1.0 -[ClickHouse] SHALL support using `IF EXISTS` clause in the `DROP ROLE` statement +[ClickHouse] SHALL support using `IF EXISTS` clause in the `CREATE ROLE` statement to skip raising an exception if the role does not exist. If the `IF EXISTS` clause is not specified then an exception SHALL be raised if a role does not exist. @@ -1378,15 +1418,15 @@ raised if a role does not exist. ##### RQ.SRS-006.RBAC.Role.Drop.Cluster version: 1.0 -[ClickHouse] SHALL support using `ON CLUSTER` clause in the `DROP ROLE` statement to specify the cluster from which to drop the specified role. +[ClickHouse] SHALL support using `ON CLUSTER` clause in the `CREATE ROLE` statement to specify the cluster from which to drop the specified role. ##### RQ.SRS-006.RBAC.Role.Drop.Syntax version: 1.0 -[ClickHouse] SHALL support the following syntax for the `DROP ROLE` statement +[ClickHouse] SHALL support the following syntax for the `CREATE ROLE` statement ``` sql -DROP ROLE [IF EXISTS] name [,...] [ON CLUSTER cluster_name] +CREATE ROLE [IF EXISTS] name [,...] [ON CLUSTER cluster_name] ``` ##### RQ.SRS-006.RBAC.Role.ShowCreate @@ -1444,7 +1484,7 @@ for a database or a table using the `GRANT CREATE` statement. version: 1.0 [ClickHouse] SHALL support granting the **drop** privilege to one or more users or roles -for a database or a table using the `GRANT DROP` statement. +for a database or a table using the `GRANT CREATE` statement. ##### RQ.SRS-006.RBAC.Grant.Privilege.Truncate version: 1.0 @@ -1570,7 +1610,7 @@ version: 1.0 [ClickHouse] SHALL support revoking ANY privilege to one or more users or roles for a database or a table using the `REVOKE some_privilege` statement. **some_privilege** refers to any Clickhouse defined privilege, whose hierarchy includes -SELECT, INSERT, ALTER, CREATE, DROP, TRUNCATE, OPTIMIZE, SHOW, KILL QUERY, ACCESS MANAGEMENT, +SELECT, INSERT, ALTER, CREATE, CREATE, TRUNCATE, OPTIMIZE, SHOW, KILL QUERY, ACCESS MANAGEMENT, SYSTEM, INTROSPECTION, SOURCES, dictGet and all of their sub-privileges. ##### RQ.SRS-006.RBAC.Revoke.Privilege.Select @@ -1601,7 +1641,7 @@ for a database or a table using the `REVOKE CREATE` statement. version: 1.0 [ClickHouse] SHALL support revoking the **drop** privilege to one or more users or roles -for a database or a table using the `REVOKE DROP` statement. +for a database or a table using the `REVOKE CREATE` statement. ##### RQ.SRS-006.RBAC.Revoke.Privilege.Truncate version: 1.0 @@ -1671,7 +1711,7 @@ version: 1.0 [ClickHouse] SHALL support revoking MULTIPLE **privileges** to one or more users or roles for a database or a table using the `REVOKE privilege1, privilege2...` statement. **privileges** refers to any set of Clickhouse defined privilege, whose hierarchy includes -SELECT, INSERT, ALTER, CREATE, DROP, TRUNCATE, OPTIMIZE, SHOW, KILL QUERY, ACCESS MANAGEMENT, +SELECT, INSERT, ALTER, CREATE, CREATE, TRUNCATE, OPTIMIZE, SHOW, KILL QUERY, ACCESS MANAGEMENT, SYSTEM, INTROSPECTION, SOURCES, dictGet and all of their sub-privileges. ##### RQ.SRS-006.RBAC.Revoke.Privilege.All @@ -2010,12 +2050,12 @@ ALTER SETTINGS PROFILE [IF EXISTS] name ##### RQ.SRS-006.RBAC.SettingsProfile.Drop version: 1.0 -[ClickHouse] SHALL support removing one or more settings profiles using the `DROP SETTINGS PROFILE` statement. +[ClickHouse] SHALL support removing one or more settings profiles using the `CREATE SETTINGS PROFILE` statement. ##### RQ.SRS-006.RBAC.SettingsProfile.Drop.IfExists version: 1.0 -[ClickHouse] SHALL support using `IF EXISTS` clause in the `DROP SETTINGS PROFILE` statement +[ClickHouse] SHALL support using `IF EXISTS` clause in the `CREATE SETTINGS PROFILE` statement to skip raising an exception if the settings profile does not exist. If the `IF EXISTS` clause is not specified then an exception SHALL be raised if a settings profile does not exist. @@ -2024,15 +2064,15 @@ raised if a settings profile does not exist. version: 1.0 [ClickHouse] SHALL support dropping one or more settings profiles on specified cluster using -`ON CLUSTER` clause in the `DROP SETTINGS PROFILE` statement. +`ON CLUSTER` clause in the `CREATE SETTINGS PROFILE` statement. ##### RQ.SRS-006.RBAC.SettingsProfile.Drop.Syntax version: 1.0 -[ClickHouse] SHALL support the following syntax for the `DROP SETTINGS PROFILE` statement +[ClickHouse] SHALL support the following syntax for the `CREATE SETTINGS PROFILE` statement ``` sql -DROP SETTINGS PROFILE [IF EXISTS] name [,name,...] +CREATE SETTINGS PROFILE [IF EXISTS] name [,name,...] ``` ##### RQ.SRS-006.RBAC.SettingsProfile.ShowCreateSettingsProfile @@ -2367,12 +2407,12 @@ ALTER QUOTA [IF EXIST] name ##### RQ.SRS-006.RBAC.Quota.Drop version: 1.0 -[ClickHouse] SHALL support removing one or more quotas using the `DROP QUOTA` statement. +[ClickHouse] SHALL support removing one or more quotas using the `CREATE QUOTA` statement. ##### RQ.SRS-006.RBAC.Quota.Drop.IfExists version: 1.0 -[ClickHouse] SHALL support using `IF EXISTS` clause in the `DROP QUOTA` statement +[ClickHouse] SHALL support using `IF EXISTS` clause in the `CREATE QUOTA` statement to skip raising an exception when the quota does not exist. If the `IF EXISTS` clause is not specified then an exception SHALL be raised if the quota does not exist. @@ -2380,16 +2420,16 @@ raised if the quota does not exist. ##### RQ.SRS-006.RBAC.Quota.Drop.Cluster version: 1.0 -[ClickHouse] SHALL support using `ON CLUSTER` clause in the `DROP QUOTA` statement +[ClickHouse] SHALL support using `ON CLUSTER` clause in the `CREATE QUOTA` statement to indicate the cluster the quota to be dropped is located on. ##### RQ.SRS-006.RBAC.Quota.Drop.Syntax version: 1.0 -[ClickHouse] SHALL support the following syntax for the `DROP QUOTA` statement +[ClickHouse] SHALL support the following syntax for the `CREATE QUOTA` statement ``` sql -DROP QUOTA [IF EXISTS] name [,name...] +CREATE QUOTA [IF EXISTS] name [,name...] ``` ##### RQ.SRS-006.RBAC.Quota.ShowQuotas @@ -2661,12 +2701,12 @@ ALTER [ROW] POLICY [IF EXISTS] name [ON CLUSTER cluster_name] ON [database.]tabl ##### RQ.SRS-006.RBAC.RowPolicy.Drop version: 1.0 -[ClickHouse] SHALL support removing one or more row policies using the `DROP ROW POLICY` statement. +[ClickHouse] SHALL support removing one or more row policies using the `CREATE ROW POLICY` statement. ##### RQ.SRS-006.RBAC.RowPolicy.Drop.IfExists version: 1.0 -[ClickHouse] SHALL support using the `IF EXISTS` clause in the `DROP ROW POLICY` statement +[ClickHouse] SHALL support using the `IF EXISTS` clause in the `CREATE ROW POLICY` statement to skip raising an exception when the row policy does not exist. If the `IF EXISTS` clause is not specified then an exception SHALL be raised if the row policy does not exist. @@ -2675,21 +2715,21 @@ raised if the row policy does not exist. version: 1.0 [ClickHouse] SHALL support removing row policy from one or more specified tables -using the `ON` clause in the `DROP ROW POLICY` statement. +using the `ON` clause in the `CREATE ROW POLICY` statement. ##### RQ.SRS-006.RBAC.RowPolicy.Drop.OnCluster version: 1.0 [ClickHouse] SHALL support removing row policy from specified cluster -using the `ON CLUSTER` clause in the `DROP ROW POLICY` statement. +using the `ON CLUSTER` clause in the `CREATE ROW POLICY` statement. ##### RQ.SRS-006.RBAC.RowPolicy.Drop.Syntax version: 1.0 -[ClickHouse] SHALL support the following syntax for the `DROP ROW POLICY` statement. +[ClickHouse] SHALL support the following syntax for the `CREATE ROW POLICY` statement. ``` sql -DROP [ROW] POLICY [IF EXISTS] name [,...] ON [database.]table [,...] [ON CLUSTER cluster_name] +CREATE [ROW] POLICY [IF EXISTS] name [,...] ON [database.]table [,...] [ON CLUSTER cluster_name] ``` ##### RQ.SRS-006.RBAC.RowPolicy.ShowCreateRowPolicy @@ -3149,14 +3189,14 @@ on tables created using the following engines * ReplicatedVersionedCollapsingMergeTree * ReplicatedGraphiteMergeTree -##### AlterColumn +##### Alter Column ###### RQ.SRS-006.RBAC.Privileges.AlterColumn version: 1.0 [ClickHouse] SHALL support controlling access to the **AlterColumn** privilege for a database or a specific table to one or more **users** or **roles**. -Any `ALTER TABLE ... ADD|DROP|CLEAR|COMMENT|MODIFY COLUMN` statements SHALL +Any `ALTER TABLE ... ADD|CREATE|CLEAR|COMMENT|MODIFY COLUMN` statements SHALL return an error, unless the user has the **alter column** privilege for the destination table either because of the explicit grant or through one of the roles assigned to the user. @@ -3178,7 +3218,7 @@ version: 1.0 [ClickHouse] SHALL support granting or revoking **alter column** privilege for one or more specified columns in a table to one or more **users** or **roles**. -Any `ALTER TABLE ... ADD|DROP|CLEAR|COMMENT|MODIFY COLUMN` statements SHALL return an error, +Any `ALTER TABLE ... ADD|CREATE|CLEAR|COMMENT|MODIFY COLUMN` statements SHALL return an error, unless the user has the **alter column** privilege for the destination column either because of the explicit grant or through one of the roles assigned to the user. @@ -3187,7 +3227,7 @@ version: 1.0 [ClickHouse] SHALL support granting or revoking **alter column** privilege on a specified cluster to one or more **users** or **roles**. -Any `ALTER TABLE ... ADD|DROP|CLEAR|COMMENT|MODIFY COLUMN` +Any `ALTER TABLE ... ADD|CREATE|CLEAR|COMMENT|MODIFY COLUMN` statements SHALL succeed only on nodes where the table exists and privilege was granted. ###### RQ.SRS-006.RBAC.Privileges.AlterColumn.TableEngines @@ -3211,14 +3251,14 @@ on tables created using the following engines * ReplicatedVersionedCollapsingMergeTree * ReplicatedGraphiteMergeTree -##### AlterIndex +##### Alter Index ###### RQ.SRS-006.RBAC.Privileges.AlterIndex version: 1.0 [ClickHouse] SHALL support controlling access to the **alter index** privilege for a database or a specific table to one or more **users** or **roles**. -Any `ALTER TABLE ... ORDER BY | ADD|DROP|MATERIALIZE|CLEAR INDEX` statements SHALL +Any `ALTER TABLE ... ORDER BY | ADD|CREATE|MATERIALIZE|CLEAR INDEX` statements SHALL return an error, unless the user has the **alter index** privilege for the destination table either because of the explicit grant or through one of the roles assigned to the user. @@ -3240,7 +3280,7 @@ version: 1.0 [ClickHouse] SHALL support granting or revoking **alter index** privilege on a specified cluster to one or more **users** or **roles**. -Any `ALTER TABLE ... ORDER BY | ADD|DROP|MATERIALIZE|CLEAR INDEX` +Any `ALTER TABLE ... ORDER BY | ADD|CREATE|MATERIALIZE|CLEAR INDEX` statements SHALL succeed only on nodes where the table exists and privilege was granted. ###### RQ.SRS-006.RBAC.Privileges.AlterIndex.TableEngines @@ -3264,14 +3304,14 @@ on tables created using the following engines * ReplicatedVersionedCollapsingMergeTree * ReplicatedGraphiteMergeTree -##### AlterConstraint +##### Alter Constraint ###### RQ.SRS-006.RBAC.Privileges.AlterConstraint version: 1.0 [ClickHouse] SHALL support controlling access to the **alter constraint** privilege for a database or a specific table to one or more **users** or **roles**. -Any `ALTER TABLE ... ADD|DROP CONSTRAINT` statements SHALL +Any `ALTER TABLE ... ADD|CREATE CONSTRAINT` statements SHALL return an error, unless the user has the **alter constraint** privilege for the destination table either because of the explicit grant or through one of the roles assigned to the user. @@ -3293,7 +3333,7 @@ version: 1.0 [ClickHouse] SHALL support granting or revoking **alter constraint** privilege on a specified cluster to one or more **users** or **roles**. -Any `ALTER TABLE ... ADD|DROP CONSTRAINT` +Any `ALTER TABLE ... ADD|CREATE CONSTRAINT` statements SHALL succeed only on nodes where the table exists and privilege was granted. ###### RQ.SRS-006.RBAC.Privileges.AlterConstraint.TableEngines @@ -3317,7 +3357,7 @@ on tables created using the following engines * ReplicatedVersionedCollapsingMergeTree * ReplicatedGraphiteMergeTree -##### AlterTTL +##### Alter TTL ###### RQ.SRS-006.RBAC.Privileges.AlterTTL version: 1.0 @@ -3357,7 +3397,7 @@ on tables created using the following engines * MergeTree -##### AlterSettings +##### Alter Settings ###### RQ.SRS-006.RBAC.Privileges.AlterSettings version: 1.0 @@ -3579,6 +3619,186 @@ on tables created using the following engines * ReplicatedVersionedCollapsingMergeTree * ReplicatedGraphiteMergeTree +##### Create Table + +###### RQ.SRS-006.RBAC.Privileges.CreateTable +version: 1.0 + +[ClickHouse] SHALL only successfully execute a `CREATE TABLE` command if and only if +the user has **create table** privilege either explicitly or through roles. + +If the stored query includes one or more source tables, the user must have **select** privilege +on all the source tables and **insert** for the table they're trying to create either explicitly or through a role. +For example, +```sql +CREATE TABLE table AS SELECT * FROM source_table +CREATE TABLE table AS SELECT * FROM table0 WHERE column IN (SELECT column FROM table1 WHERE column IN (SELECT column FROM table2 WHERE expression)) +CREATE TABLE table AS SELECT * FROM table0 JOIN table1 USING column +CREATE TABLE table AS SELECT * FROM table0 UNION ALL SELECT * FROM table1 UNION ALL SELECT * FROM table2 +CREATE TABLE table AS SELECT column FROM table0 JOIN table1 USING column UNION ALL SELECT column FROM table2 WHERE column IN (SELECT column FROM table3 WHERE column IN (SELECT column FROM table4 WHERE expression)) +CREATE TABLE table0 AS SELECT column FROM table1 UNION ALL SELECT column FROM table2 +``` + +###### RQ.SRS-006.RBAC.Privileges.CreateTable.Access +version: 1.0 + +[ClickHouse] SHALL support granting or revoking **create table** privilege to one or more **users** or **roles**. + +##### Create Database + +###### RQ.SRS-006.RBAC.Privileges.CreateDatabase +version: 1.0 + +[ClickHouse] SHALL successfully execute `CREATE DATABASE` statement if and only if the user has **create database** privilege on the source table, +either directly or through a role. + +###### RQ.SRS-006.RBAC.Privileges.CreateDatabase.Access +version: 1.0 + +[ClickHouse] SHALL support granting or revoking **create database** privilege to one or more **users** or **roles**. + +##### Create Dictionary + +###### RQ.SRS-006.RBAC.Privileges.CreateDictionary +version: 1.0 + +[ClickHouse] SHALL successfully execute `CREATE DICTIONARY` statement if and only if the user has **create dictionary** privilege on the source table, +either directly or through a role. + +###### RQ.SRS-006.RBAC.Privileges.CreateDictionary.Access +version: 1.0 + +[ClickHouse] SHALL support granting or revoking **create dictionary** privilege to one or more **users** or **roles**. + +##### Create Temporary Table + +###### RQ.SRS-006.RBAC.Privileges.CreateTemporaryTable +version: 1.0 + +[ClickHouse] SHALL successfully execute `CREATE TEMPORARY TABLE` statement if and only if the user has **create temporary table** privilege on the source table, +either directly or through a role. + +###### RQ.SRS-006.RBAC.Privileges.CreateTemporaryTable.Access +version: 1.0 + +[ClickHouse] SHALL support granting or revoking **create temporary table** privilege to one or more **users** or **roles**. + +##### Attach Database + +###### RQ.SRS-006.RBAC.Privileges.AttachDatabase +version: 1.0 + +[ClickHouse] SHALL successfully execute `ATTACH DATABASE` statement if and only if the user has **create database** privilege on the source table, +either directly or through a role. + +##### Attach Dictionary + +###### RQ.SRS-006.RBAC.Privileges.AttachDictionary +version: 1.0 + +[ClickHouse] SHALL successfully execute `ATTACH DICTIONARY` statement if and only if the user has **create dictionary** privilege on the source table, +either directly or through a role. + +##### Attach Temporary Table + +###### RQ.SRS-006.RBAC.Privileges.AttachTemporaryTable +version: 1.0 + +[ClickHouse] SHALL successfully execute `ATTACH TEMPORARY TABLE` statement if and only if the user has **create temporary table** privilege on the source table, +either directly or through a role. + +##### Attach Table + +###### RQ.SRS-006.RBAC.Privileges.AttachTable +version: 1.0 + +[ClickHouse] SHALL successfully execute `ATTACH TABLE` statement if and only if the user has **create table** privilege on the source table, +either directly or through a role. + +##### Drop Table + +###### RQ.SRS-006.RBAC.Privileges.DropTable +version: 1.0 + +[ClickHouse] SHALL successfully execute `DROP TABLE` statement if and only if the user has **drop table** privilege on the source table, +either directly or through a role. + +###### RQ.SRS-006.RBAC.Privileges.DropTable.Access +version: 1.0 + +[ClickHouse] SHALL support granting or revoking **drop table** privilege to one or more **users** or **roles**. + +##### Drop View + +###### RQ.SRS-006.RBAC.Privileges.DropView +version: 1.0 + +[ClickHouse] SHALL successfully execute `DROP VIEW` statement if and only if the user has **drop view** privilege on the source table, +either directly or through a role. + +###### RQ.SRS-006.RBAC.Privileges.DropView.Access +version: 1.0 + +[ClickHouse] SHALL support granting or revoking **drop view** privilege to one or more **users** or **roles**. + +##### Drop Database + +###### RQ.SRS-006.RBAC.Privileges.DropDatabase +version: 1.0 + +[ClickHouse] SHALL successfully execute `DROP DATABASE` statement if and only if the user has **drop database** privilege on the source table, +either directly or through a role. + +###### RQ.SRS-006.RBAC.Privileges.DropDatabase.Access +version: 1.0 + +[ClickHouse] SHALL support granting or revoking **drop database** privilege to one or more **users** or **roles**. + +##### Drop Dictionary + +###### RQ.SRS-006.RBAC.Privileges.DropDictionary +version: 1.0 + +[ClickHouse] SHALL successfully execute `DROP DICTIONARY` statement if and only if the user has **drop dictionary** privilege on the source table, +either directly or through a role. + +###### RQ.SRS-006.RBAC.Privileges.DropDictionary.Access +version: 1.0 + +[ClickHouse] SHALL support granting or revoking **drop dictionary** privilege to one or more **users** or **roles**. + +##### Detach Table + +###### RQ.SRS-006.RBAC.Privileges.DetachTable +version: 1.0 + +[ClickHouse] SHALL successfully execute `DETACH TABLE` statement if and only if the user has **drop table** privilege on the source table, +either directly or through a role. + +##### Detach View + +###### RQ.SRS-006.RBAC.Privileges.DetachView +version: 1.0 + +[ClickHouse] SHALL successfully execute `DETACH VIEW` statement if and only if the user has **drop view** privilege on the source table, +either directly or through a role. + +##### Detach Database + +###### RQ.SRS-006.RBAC.Privileges.DetachDatabase +version: 1.0 + +[ClickHouse] SHALL successfully execute `DETACH DATABASE` statement if and only if the user has **drop database** privilege on the source table, +either directly or through a role. + +##### Detach Dictionary + +###### RQ.SRS-006.RBAC.Privileges.DetachDictionary +version: 1.0 + +[ClickHouse] SHALL successfully execute `DETACH DICTIONARY` statement if and only if the user has **drop dictionary** privilege on the source table, +either directly or through a role. + ##### Grant Option ###### RQ.SRS-006.RBAC.Privileges.GrantOption @@ -3601,6 +3821,15 @@ the user has that privilege with `GRANT OPTION`, either directly or through a ro * `ALTER INDEX` * `INSERT` * `SELECT` +* `CREATE TABLE` +* `CREATE VIEW` +* `CREATE DATABASE` +* `CREATE DICTIONARY` +* `CREATE TEMPORARY TABLE` +* `DROP TABLE` +* `DROP VIEW` +* `DROP DATABASE` +* `DROP DICTIONARY` ##### RQ.SRS-006.RBAC.Privileges.Delete version: 1.0 @@ -3664,14 +3893,14 @@ either because of the explicit grant or through one of the roles assigned to the ##### RQ.SRS-006.RBAC.RequiredPrivileges.Drop version: 1.0 -[ClickHouse] SHALL not allow any `DROP` statements +[ClickHouse] SHALL not allow any `CREATE` statements to be executed unless the user has the **drop** privilege for the destination database either because of the explicit grant or through one of the roles assigned to the user. ##### RQ.SRS-006.RBAC.RequiredPrivileges.Drop.Table version: 1.0 -[ClickHouse] SHALL not allow any `DROP TABLE` statements +[ClickHouse] SHALL not allow any `CREATE TABLE` statements to be executed unless the user has the **drop** privilege for the destination database or the table either because of the explicit grant or through one of the roles assigned to the user. @@ -4856,7 +5085,7 @@ RQ_SRS_006_RBAC_User_Alter_Host_AddDrop = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL support altering user by adding and dropping access to hosts with the `ADD HOST` or the `DROP HOST`in the `ALTER USER` statement.\n' + '[ClickHouse] SHALL support altering user by adding and dropping access to hosts with the `ADD HOST` or the `CREATE HOST`in the `ALTER USER` statement.\n' '\n' ), link=None) @@ -5071,7 +5300,7 @@ RQ_SRS_006_RBAC_User_Alter_Syntax = Requirement( 'ALTER USER [IF EXISTS] name [ON CLUSTER cluster_name]\n' ' [RENAME TO new_name]\n' " [IDENTIFIED [WITH {PLAINTEXT_PASSWORD|SHA256_PASSWORD|DOUBLE_SHA1_PASSWORD}] BY {'password'|'hash'}]\n" - " [[ADD|DROP] HOST {LOCAL | NAME 'name' | REGEXP 'name_regexp' | IP 'address' | LIKE 'pattern'} [,...] | ANY | NONE]\n" + " [[ADD|CREATE] HOST {LOCAL | NAME 'name' | REGEXP 'name_regexp' | IP 'address' | LIKE 'pattern'} [,...] | ANY | NONE]\n" ' [DEFAULT ROLE role [,...] | ALL | ALL EXCEPT role [,...] ]\n' " [SETTINGS variable [= value] [MIN [=] min_value] [MAX [=] max_value] [READONLY|WRITABLE] | PROFILE 'profile_name'] [,...]\n" '```\n' @@ -5308,7 +5537,7 @@ RQ_SRS_006_RBAC_User_Drop = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL support removing a user account using `DROP USER` statement.\n' + '[ClickHouse] SHALL support removing a user account using `CREATE USER` statement.\n' '\n' ), link=None) @@ -5321,7 +5550,7 @@ RQ_SRS_006_RBAC_User_Drop_IfExists = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL support using `IF EXISTS` clause in the `DROP USER` statement\n' + '[ClickHouse] SHALL support using `IF EXISTS` clause in the `CREATE USER` statement\n' 'to skip raising an exception if the user account does not exist.\n' 'If the `IF EXISTS` clause is not specified then an exception SHALL be\n' 'raised if a user does not exist.\n' @@ -5337,7 +5566,7 @@ RQ_SRS_006_RBAC_User_Drop_OnCluster = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL support using `ON CLUSTER` clause in the `DROP USER` statement\n' + '[ClickHouse] SHALL support using `ON CLUSTER` clause in the `CREATE USER` statement\n' 'to specify the name of the cluster the user should be dropped from.\n' '\n' ), @@ -5351,10 +5580,10 @@ RQ_SRS_006_RBAC_User_Drop_Syntax = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL support the following syntax for `DROP USER` statement\n' + '[ClickHouse] SHALL support the following syntax for `CREATE USER` statement\n' '\n' '```sql\n' - 'DROP USER [IF EXISTS] name [,...] [ON CLUSTER cluster_name]\n' + 'CREATE USER [IF EXISTS] name [,...] [ON CLUSTER cluster_name]\n' '```\n' '\n' ), @@ -5537,7 +5766,7 @@ RQ_SRS_006_RBAC_Role_Drop = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL support removing one or more roles using `DROP ROLE` statement.\n' + '[ClickHouse] SHALL support removing one or more roles using `CREATE ROLE` statement.\n' '\n' ), link=None) @@ -5550,7 +5779,7 @@ RQ_SRS_006_RBAC_Role_Drop_IfExists = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL support using `IF EXISTS` clause in the `DROP ROLE` statement\n' + '[ClickHouse] SHALL support using `IF EXISTS` clause in the `CREATE ROLE` statement\n' 'to skip raising an exception if the role does not exist.\n' 'If the `IF EXISTS` clause is not specified then an exception SHALL be\n' 'raised if a role does not exist.\n' @@ -5566,7 +5795,7 @@ RQ_SRS_006_RBAC_Role_Drop_Cluster = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL support using `ON CLUSTER` clause in the `DROP ROLE` statement to specify the cluster from which to drop the specified role.\n' + '[ClickHouse] SHALL support using `ON CLUSTER` clause in the `CREATE ROLE` statement to specify the cluster from which to drop the specified role.\n' '\n' ), link=None) @@ -5579,10 +5808,10 @@ RQ_SRS_006_RBAC_Role_Drop_Syntax = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL support the following syntax for the `DROP ROLE` statement\n' + '[ClickHouse] SHALL support the following syntax for the `CREATE ROLE` statement\n' '\n' '``` sql\n' - 'DROP ROLE [IF EXISTS] name [,...] [ON CLUSTER cluster_name]\n' + 'CREATE ROLE [IF EXISTS] name [,...] [ON CLUSTER cluster_name]\n' '```\n' '\n' ), @@ -5712,7 +5941,7 @@ RQ_SRS_006_RBAC_Grant_Privilege_Drop = Requirement( uid=None, description=( '[ClickHouse] SHALL support granting the **drop** privilege to one or more users or roles\n' - 'for a database or a table using the `GRANT DROP` statement.\n' + 'for a database or a table using the `GRANT CREATE` statement.\n' '\n' ), link=None) @@ -5982,7 +6211,7 @@ RQ_SRS_006_RBAC_Revoke_Privilege_Any = Requirement( '[ClickHouse] SHALL support revoking ANY privilege to one or more users or roles\n' 'for a database or a table using the `REVOKE some_privilege` statement.\n' '**some_privilege** refers to any Clickhouse defined privilege, whose hierarchy includes\n' - 'SELECT, INSERT, ALTER, CREATE, DROP, TRUNCATE, OPTIMIZE, SHOW, KILL QUERY, ACCESS MANAGEMENT,\n' + 'SELECT, INSERT, ALTER, CREATE, CREATE, TRUNCATE, OPTIMIZE, SHOW, KILL QUERY, ACCESS MANAGEMENT,\n' 'SYSTEM, INTROSPECTION, SOURCES, dictGet and all of their sub-privileges.\n' '\n' ), @@ -6053,7 +6282,7 @@ RQ_SRS_006_RBAC_Revoke_Privilege_Drop = Requirement( uid=None, description=( '[ClickHouse] SHALL support revoking the **drop** privilege to one or more users or roles\n' - 'for a database or a table using the `REVOKE DROP` statement.\n' + 'for a database or a table using the `REVOKE CREATE` statement.\n' '\n' ), link=None) @@ -6211,7 +6440,7 @@ RQ_SRS_006_RBAC_Revoke_Privilege_Multiple = Requirement( '[ClickHouse] SHALL support revoking MULTIPLE **privileges** to one or more users or roles\n' 'for a database or a table using the `REVOKE privilege1, privilege2...` statement.\n' '**privileges** refers to any set of Clickhouse defined privilege, whose hierarchy includes\n' - 'SELECT, INSERT, ALTER, CREATE, DROP, TRUNCATE, OPTIMIZE, SHOW, KILL QUERY, ACCESS MANAGEMENT,\n' + 'SELECT, INSERT, ALTER, CREATE, CREATE, TRUNCATE, OPTIMIZE, SHOW, KILL QUERY, ACCESS MANAGEMENT,\n' 'SYSTEM, INTROSPECTION, SOURCES, dictGet and all of their sub-privileges.\n' '\n' ), @@ -6918,7 +7147,7 @@ RQ_SRS_006_RBAC_SettingsProfile_Drop = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL support removing one or more settings profiles using the `DROP SETTINGS PROFILE` statement.\n' + '[ClickHouse] SHALL support removing one or more settings profiles using the `CREATE SETTINGS PROFILE` statement.\n' '\n' ), link=None) @@ -6931,7 +7160,7 @@ RQ_SRS_006_RBAC_SettingsProfile_Drop_IfExists = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL support using `IF EXISTS` clause in the `DROP SETTINGS PROFILE` statement\n' + '[ClickHouse] SHALL support using `IF EXISTS` clause in the `CREATE SETTINGS PROFILE` statement\n' 'to skip raising an exception if the settings profile does not exist.\n' 'If the `IF EXISTS` clause is not specified then an exception SHALL be\n' 'raised if a settings profile does not exist.\n' @@ -6948,7 +7177,7 @@ RQ_SRS_006_RBAC_SettingsProfile_Drop_OnCluster = Requirement( uid=None, description=( '[ClickHouse] SHALL support dropping one or more settings profiles on specified cluster using\n' - '`ON CLUSTER` clause in the `DROP SETTINGS PROFILE` statement.\n' + '`ON CLUSTER` clause in the `CREATE SETTINGS PROFILE` statement.\n' '\n' ), link=None) @@ -6961,10 +7190,10 @@ RQ_SRS_006_RBAC_SettingsProfile_Drop_Syntax = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL support the following syntax for the `DROP SETTINGS PROFILE` statement\n' + '[ClickHouse] SHALL support the following syntax for the `CREATE SETTINGS PROFILE` statement\n' '\n' '``` sql\n' - 'DROP SETTINGS PROFILE [IF EXISTS] name [,name,...]\n' + 'CREATE SETTINGS PROFILE [IF EXISTS] name [,name,...]\n' '```\n' '\n' ), @@ -7667,7 +7896,7 @@ RQ_SRS_006_RBAC_Quota_Drop = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL support removing one or more quotas using the `DROP QUOTA` statement.\n' + '[ClickHouse] SHALL support removing one or more quotas using the `CREATE QUOTA` statement.\n' '\n' ), link=None) @@ -7680,7 +7909,7 @@ RQ_SRS_006_RBAC_Quota_Drop_IfExists = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL support using `IF EXISTS` clause in the `DROP QUOTA` statement\n' + '[ClickHouse] SHALL support using `IF EXISTS` clause in the `CREATE QUOTA` statement\n' 'to skip raising an exception when the quota does not exist.\n' 'If the `IF EXISTS` clause is not specified then an exception SHALL be\n' 'raised if the quota does not exist.\n' @@ -7696,7 +7925,7 @@ RQ_SRS_006_RBAC_Quota_Drop_Cluster = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL support using `ON CLUSTER` clause in the `DROP QUOTA` statement\n' + '[ClickHouse] SHALL support using `ON CLUSTER` clause in the `CREATE QUOTA` statement\n' 'to indicate the cluster the quota to be dropped is located on.\n' '\n' ), @@ -7710,10 +7939,10 @@ RQ_SRS_006_RBAC_Quota_Drop_Syntax = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL support the following syntax for the `DROP QUOTA` statement\n' + '[ClickHouse] SHALL support the following syntax for the `CREATE QUOTA` statement\n' '\n' '``` sql\n' - 'DROP QUOTA [IF EXISTS] name [,name...]\n' + 'CREATE QUOTA [IF EXISTS] name [,name...]\n' '```\n' '\n' ), @@ -8305,7 +8534,7 @@ RQ_SRS_006_RBAC_RowPolicy_Drop = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL support removing one or more row policies using the `DROP ROW POLICY` statement.\n' + '[ClickHouse] SHALL support removing one or more row policies using the `CREATE ROW POLICY` statement.\n' '\n' ), link=None) @@ -8318,7 +8547,7 @@ RQ_SRS_006_RBAC_RowPolicy_Drop_IfExists = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL support using the `IF EXISTS` clause in the `DROP ROW POLICY` statement\n' + '[ClickHouse] SHALL support using the `IF EXISTS` clause in the `CREATE ROW POLICY` statement\n' 'to skip raising an exception when the row policy does not exist.\n' 'If the `IF EXISTS` clause is not specified then an exception SHALL be\n' 'raised if the row policy does not exist.\n' @@ -8335,7 +8564,7 @@ RQ_SRS_006_RBAC_RowPolicy_Drop_On = Requirement( uid=None, description=( '[ClickHouse] SHALL support removing row policy from one or more specified tables\n' - 'using the `ON` clause in the `DROP ROW POLICY` statement.\n' + 'using the `ON` clause in the `CREATE ROW POLICY` statement.\n' '\n' ), link=None) @@ -8349,7 +8578,7 @@ RQ_SRS_006_RBAC_RowPolicy_Drop_OnCluster = Requirement( uid=None, description=( '[ClickHouse] SHALL support removing row policy from specified cluster\n' - 'using the `ON CLUSTER` clause in the `DROP ROW POLICY` statement.\n' + 'using the `ON CLUSTER` clause in the `CREATE ROW POLICY` statement.\n' '\n' ), link=None) @@ -8362,10 +8591,10 @@ RQ_SRS_006_RBAC_RowPolicy_Drop_Syntax = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL support the following syntax for the `DROP ROW POLICY` statement.\n' + '[ClickHouse] SHALL support the following syntax for the `CREATE ROW POLICY` statement.\n' '\n' '``` sql\n' - 'DROP [ROW] POLICY [IF EXISTS] name [,...] ON [database.]table [,...] [ON CLUSTER cluster_name]\n' + 'CREATE [ROW] POLICY [IF EXISTS] name [,...] ON [database.]table [,...] [ON CLUSTER cluster_name]\n' '```\n' '\n' ), @@ -9188,7 +9417,7 @@ RQ_SRS_006_RBAC_Privileges_AlterColumn = Requirement( description=( '[ClickHouse] SHALL support controlling access to the **AlterColumn** privilege\n' 'for a database or a specific table to one or more **users** or **roles**.\n' - 'Any `ALTER TABLE ... ADD|DROP|CLEAR|COMMENT|MODIFY COLUMN` statements SHALL\n' + 'Any `ALTER TABLE ... ADD|CREATE|CLEAR|COMMENT|MODIFY COLUMN` statements SHALL\n' 'return an error, unless the user has the **alter column** privilege for\n' 'the destination table either because of the explicit grant or through one of\n' 'the roles assigned to the user.\n' @@ -9234,7 +9463,7 @@ RQ_SRS_006_RBAC_Privileges_AlterColumn_Column = Requirement( description=( '[ClickHouse] SHALL support granting or revoking **alter column** privilege\n' 'for one or more specified columns in a table to one or more **users** or **roles**.\n' - 'Any `ALTER TABLE ... ADD|DROP|CLEAR|COMMENT|MODIFY COLUMN` statements SHALL return an error,\n' + 'Any `ALTER TABLE ... ADD|CREATE|CLEAR|COMMENT|MODIFY COLUMN` statements SHALL return an error,\n' ' unless the user has the **alter column** privilege for the destination column\n' 'either because of the explicit grant or through one of the roles assigned to the user.\n' '\n' @@ -9251,7 +9480,7 @@ RQ_SRS_006_RBAC_Privileges_AlterColumn_Cluster = Requirement( description=( '[ClickHouse] SHALL support granting or revoking **alter column** privilege\n' 'on a specified cluster to one or more **users** or **roles**.\n' - 'Any `ALTER TABLE ... ADD|DROP|CLEAR|COMMENT|MODIFY COLUMN`\n' + 'Any `ALTER TABLE ... ADD|CREATE|CLEAR|COMMENT|MODIFY COLUMN`\n' 'statements SHALL succeed only on nodes where the table exists and privilege was granted.\n' '\n' ), @@ -9296,7 +9525,7 @@ RQ_SRS_006_RBAC_Privileges_AlterIndex = Requirement( description=( '[ClickHouse] SHALL support controlling access to the **alter index** privilege\n' 'for a database or a specific table to one or more **users** or **roles**.\n' - 'Any `ALTER TABLE ... ORDER BY | ADD|DROP|MATERIALIZE|CLEAR INDEX` statements SHALL\n' + 'Any `ALTER TABLE ... ORDER BY | ADD|CREATE|MATERIALIZE|CLEAR INDEX` statements SHALL\n' 'return an error, unless the user has the **alter index** privilege for\n' 'the destination table either because of the explicit grant or through one of\n' 'the roles assigned to the user.\n' @@ -9342,7 +9571,7 @@ RQ_SRS_006_RBAC_Privileges_AlterIndex_Cluster = Requirement( description=( '[ClickHouse] SHALL support granting or revoking **alter index** privilege\n' 'on a specified cluster to one or more **users** or **roles**.\n' - 'Any `ALTER TABLE ... ORDER BY | ADD|DROP|MATERIALIZE|CLEAR INDEX`\n' + 'Any `ALTER TABLE ... ORDER BY | ADD|CREATE|MATERIALIZE|CLEAR INDEX`\n' 'statements SHALL succeed only on nodes where the table exists and privilege was granted.\n' '\n' ), @@ -9387,7 +9616,7 @@ RQ_SRS_006_RBAC_Privileges_AlterConstraint = Requirement( description=( '[ClickHouse] SHALL support controlling access to the **alter constraint** privilege\n' 'for a database or a specific table to one or more **users** or **roles**.\n' - 'Any `ALTER TABLE ... ADD|DROP CONSTRAINT` statements SHALL\n' + 'Any `ALTER TABLE ... ADD|CREATE CONSTRAINT` statements SHALL\n' 'return an error, unless the user has the **alter constraint** privilege for\n' 'the destination table either because of the explicit grant or through one of\n' 'the roles assigned to the user.\n' @@ -9433,7 +9662,7 @@ RQ_SRS_006_RBAC_Privileges_AlterConstraint_Cluster = Requirement( description=( '[ClickHouse] SHALL support granting or revoking **alter constraint** privilege\n' 'on a specified cluster to one or more **users** or **roles**.\n' - 'Any `ALTER TABLE ... ADD|DROP CONSTRAINT`\n' + 'Any `ALTER TABLE ... ADD|CREATE CONSTRAINT`\n' 'statements SHALL succeed only on nodes where the table exists and privilege was granted.\n' '\n' ), @@ -9916,6 +10145,346 @@ RQ_SRS_006_RBAC_Privileges_AlterMove_TableEngines = Requirement( ), link=None) +RQ_SRS_006_RBAC_Privileges_CreateTable = Requirement( + name='RQ.SRS-006.RBAC.Privileges.CreateTable', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL only successfully execute a `CREATE TABLE` command if and only if\n' + 'the user has **create table** privilege either explicitly or through roles.\n' + '\n' + 'If the stored query includes one or more source tables, the user must have **select** privilege\n' + "on all the source tables and **insert** for the table they're trying to create either explicitly or through a role.\n" + 'For example,\n' + '```sql\n' + 'CREATE TABLE table AS SELECT * FROM source_table\n' + 'CREATE TABLE table AS SELECT * FROM table0 WHERE column IN (SELECT column FROM table1 WHERE column IN (SELECT column FROM table2 WHERE expression))\n' + 'CREATE TABLE table AS SELECT * FROM table0 JOIN table1 USING column\n' + 'CREATE TABLE table AS SELECT * FROM table0 UNION ALL SELECT * FROM table1 UNION ALL SELECT * FROM table2\n' + 'CREATE TABLE table AS SELECT column FROM table0 JOIN table1 USING column UNION ALL SELECT column FROM table2 WHERE column IN (SELECT column FROM table3 WHERE column IN (SELECT column FROM table4 WHERE expression))\n' + 'CREATE TABLE table0 AS SELECT column FROM table1 UNION ALL SELECT column FROM table2\n' + '```\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_CreateTable_Access = Requirement( + name='RQ.SRS-006.RBAC.Privileges.CreateTable.Access', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL support granting or revoking **create table** privilege to one or more **users** or **roles**.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_CreateDatabase = Requirement( + name='RQ.SRS-006.RBAC.Privileges.CreateDatabase', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL successfully execute `CREATE DATABASE` statement if and only if the user has **create database** privilege on the source table,\n' + 'either directly or through a role.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_CreateDatabase_Access = Requirement( + name='RQ.SRS-006.RBAC.Privileges.CreateDatabase.Access', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL support granting or revoking **create database** privilege to one or more **users** or **roles**.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_CreateDictionary = Requirement( + name='RQ.SRS-006.RBAC.Privileges.CreateDictionary', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL successfully execute `CREATE DICTIONARY` statement if and only if the user has **create dictionary** privilege on the source table,\n' + 'either directly or through a role.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_CreateDictionary_Access = Requirement( + name='RQ.SRS-006.RBAC.Privileges.CreateDictionary.Access', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL support granting or revoking **create dictionary** privilege to one or more **users** or **roles**.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_CreateTemporaryTable = Requirement( + name='RQ.SRS-006.RBAC.Privileges.CreateTemporaryTable', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL successfully execute `CREATE TEMPORARY TABLE` statement if and only if the user has **create temporary table** privilege on the source table,\n' + 'either directly or through a role.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_CreateTemporaryTable_Access = Requirement( + name='RQ.SRS-006.RBAC.Privileges.CreateTemporaryTable.Access', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL support granting or revoking **create temporary table** privilege to one or more **users** or **roles**.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_AttachDatabase = Requirement( + name='RQ.SRS-006.RBAC.Privileges.AttachDatabase', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL successfully execute `ATTACH DATABASE` statement if and only if the user has **create database** privilege on the source table,\n' + 'either directly or through a role.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_AttachDictionary = Requirement( + name='RQ.SRS-006.RBAC.Privileges.AttachDictionary', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL successfully execute `ATTACH DICTIONARY` statement if and only if the user has **create dictionary** privilege on the source table,\n' + 'either directly or through a role.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_AttachTemporaryTable = Requirement( + name='RQ.SRS-006.RBAC.Privileges.AttachTemporaryTable', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL successfully execute `ATTACH TEMPORARY TABLE` statement if and only if the user has **create temporary table** privilege on the source table,\n' + 'either directly or through a role.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_AttachTable = Requirement( + name='RQ.SRS-006.RBAC.Privileges.AttachTable', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL successfully execute `ATTACH TABLE` statement if and only if the user has **create table** privilege on the source table,\n' + 'either directly or through a role.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_DropTable = Requirement( + name='RQ.SRS-006.RBAC.Privileges.DropTable', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL successfully execute `DROP TABLE` statement if and only if the user has **drop table** privilege on the source table,\n' + 'either directly or through a role.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_DropTable_Access = Requirement( + name='RQ.SRS-006.RBAC.Privileges.DropTable.Access', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL support granting or revoking **drop table** privilege to one or more **users** or **roles**.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_DropView = Requirement( + name='RQ.SRS-006.RBAC.Privileges.DropView', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL successfully execute `DROP VIEW` statement if and only if the user has **drop view** privilege on the source table,\n' + 'either directly or through a role.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_DropView_Access = Requirement( + name='RQ.SRS-006.RBAC.Privileges.DropView.Access', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL support granting or revoking **drop view** privilege to one or more **users** or **roles**.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_DropDatabase = Requirement( + name='RQ.SRS-006.RBAC.Privileges.DropDatabase', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL successfully execute `DROP DATABASE` statement if and only if the user has **drop database** privilege on the source table,\n' + 'either directly or through a role.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_DropDatabase_Access = Requirement( + name='RQ.SRS-006.RBAC.Privileges.DropDatabase.Access', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL support granting or revoking **drop database** privilege to one or more **users** or **roles**.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_DropDictionary = Requirement( + name='RQ.SRS-006.RBAC.Privileges.DropDictionary', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL successfully execute `DROP DICTIONARY` statement if and only if the user has **drop dictionary** privilege on the source table,\n' + 'either directly or through a role.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_DropDictionary_Access = Requirement( + name='RQ.SRS-006.RBAC.Privileges.DropDictionary.Access', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL support granting or revoking **drop dictionary** privilege to one or more **users** or **roles**.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_DetachTable = Requirement( + name='RQ.SRS-006.RBAC.Privileges.DetachTable', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL successfully execute `DETACH TABLE` statement if and only if the user has **drop table** privilege on the source table,\n' + 'either directly or through a role.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_DetachView = Requirement( + name='RQ.SRS-006.RBAC.Privileges.DetachView', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL successfully execute `DETACH VIEW` statement if and only if the user has **drop view** privilege on the source table,\n' + 'either directly or through a role.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_DetachDatabase = Requirement( + name='RQ.SRS-006.RBAC.Privileges.DetachDatabase', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL successfully execute `DETACH DATABASE` statement if and only if the user has **drop database** privilege on the source table,\n' + 'either directly or through a role.\n' + '\n' + ), + link=None) + +RQ_SRS_006_RBAC_Privileges_DetachDictionary = Requirement( + name='RQ.SRS-006.RBAC.Privileges.DetachDictionary', + version='1.0', + priority=None, + group=None, + type=None, + uid=None, + description=( + '[ClickHouse] SHALL successfully execute `DETACH DICTIONARY` statement if and only if the user has **drop dictionary** privilege on the source table,\n' + 'either directly or through a role.\n' + '\n' + ), + link=None) + RQ_SRS_006_RBAC_Privileges_GrantOption = Requirement( name='RQ.SRS-006.RBAC.Privileges.GrantOption', version='1.0', @@ -9941,6 +10510,15 @@ RQ_SRS_006_RBAC_Privileges_GrantOption = Requirement( '* `ALTER INDEX`\n' '* `INSERT`\n' '* `SELECT`\n' + '* `CREATE TABLE`\n' + '* `CREATE VIEW`\n' + '* `CREATE DATABASE`\n' + '* `CREATE DICTIONARY`\n' + '* `CREATE TEMPORARY TABLE`\n' + '* `DROP TABLE`\n' + '* `DROP VIEW`\n' + '* `DROP DATABASE`\n' + '* `DROP DICTIONARY`\n' '\n' ), link=None) @@ -10082,7 +10660,7 @@ RQ_SRS_006_RBAC_RequiredPrivileges_Drop = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL not allow any `DROP` statements\n' + '[ClickHouse] SHALL not allow any `CREATE` statements\n' 'to be executed unless the user has the **drop** privilege for the destination database\n' 'either because of the explicit grant or through one of the roles assigned to the user.\n' '\n' @@ -10097,7 +10675,7 @@ RQ_SRS_006_RBAC_RequiredPrivileges_Drop_Table = Requirement( type=None, uid=None, description=( - '[ClickHouse] SHALL not allow any `DROP TABLE` statements\n' + '[ClickHouse] SHALL not allow any `CREATE TABLE` statements\n' 'to be executed unless the user has the **drop** privilege for the destination database or the table\n' 'either because of the explicit grant or through one of the roles assigned to the user.\n' '\n' diff --git a/tests/testflows/rbac/tests/privileges/alter/alter_fetch.py b/tests/testflows/rbac/tests/privileges/alter/alter_fetch.py index e01ab244f38..ba2aac99cec 100644 --- a/tests/testflows/rbac/tests/privileges/alter/alter_fetch.py +++ b/tests/testflows/rbac/tests/privileges/alter/alter_fetch.py @@ -24,13 +24,16 @@ def privilege_granted_directly_or_via_role(self, table_type, privilege, node=Non with Suite("user with direct privilege", setup=instrument_clickhouse_server_log): with user(node, user_name): + with When(f"I run checks that {user_name} is only able to execute ALTER FETCH PARTITION with required privileges"): privilege_check(grant_target_name=user_name, user_name=user_name, table_type=table_type, privilege=privilege, node=node) with Suite("user with privilege via role", setup=instrument_clickhouse_server_log): with user(node, user_name), role(node, role_name): + with When("I grant the role to the user"): node.query(f"GRANT {role_name} TO {user_name}") + with And(f"I run checks that {user_name} with {role_name} is only able to execute ALTER FETCH PARTITION with required privileges"): privilege_check(grant_target_name=role_name, user_name=user_name, table_type=table_type, privilege=privilege, node=node) @@ -42,6 +45,7 @@ def privilege_check(grant_target_name, user_name, table_type, privilege, node=No with Scenario("user without privilege", setup=instrument_clickhouse_server_log): table_name = f"merge_tree_{getuid()}" with table(node, table_name, table_type): + with When("I attempt to fetch a partition without privilege"): node.query(f"ALTER TABLE {table_name} FETCH PARTITION 1 FROM '/clickhouse/tables/{{shard}}/{table_name}'", settings = [("user", user_name)], exitcode=exitcode, message=message) @@ -49,8 +53,10 @@ def privilege_check(grant_target_name, user_name, table_type, privilege, node=No with Scenario("user with privilege", setup=instrument_clickhouse_server_log): table_name = f"merge_tree_{getuid()}" with table(node, table_name, table_type): + with When("I grant the fetch privilege"): node.query(f"GRANT {privilege} ON {table_name} TO {grant_target_name}") + with Then("I attempt to fetch a partition"): node.query(f"ALTER TABLE {table_name} FETCH PARTITION 1 FROM '/clickhouse/tables/{{shard}}/{table_name}'", settings = [("user", user_name)], exitcode=231, message="DB::Exception: No node") @@ -58,10 +64,13 @@ def privilege_check(grant_target_name, user_name, table_type, privilege, node=No with Scenario("user with revoked privilege", setup=instrument_clickhouse_server_log): table_name = f"merge_tree_{getuid()}" with table(node, table_name, table_type): + with When("I grant the fetch privilege"): node.query(f"GRANT {privilege} ON {table_name} TO {grant_target_name}") + with And("I revoke the fetch privilege"): node.query(f"REVOKE {privilege} ON {table_name} FROM {grant_target_name}") + with Then("I attempt to fetch a partition"): node.query(f"ALTER TABLE {table_name} FETCH PARTITION 1 FROM '/clickhouse/tables/{{shard}}/{table_name}'", settings = [("user", user_name)], exitcode=exitcode, message=message) diff --git a/tests/testflows/rbac/tests/privileges/alter/alter_move.py b/tests/testflows/rbac/tests/privileges/alter/alter_move.py index 57d7a7182a9..3972dc1ab05 100644 --- a/tests/testflows/rbac/tests/privileges/alter/alter_move.py +++ b/tests/testflows/rbac/tests/privileges/alter/alter_move.py @@ -24,13 +24,16 @@ def privilege_granted_directly_or_via_role(self, table_type, privilege, node=Non with Suite("user with direct privilege", setup=instrument_clickhouse_server_log): with user(node, user_name): + with When(f"I run checks that {user_name} is only able to execute ALTER MOVE PARTITION with required privileges"): privilege_check(grant_target_name=user_name, user_name=user_name, table_type=table_type, privilege=privilege, node=node) with Suite("user with privilege via role", setup=instrument_clickhouse_server_log): with user(node, user_name), role(node, role_name): + with When("I grant the role to the user"): node.query(f"GRANT {role_name} TO {user_name}") + with And(f"I run checks that {user_name} with {role_name} is only able to execute ALTER MOVE PARTITION with required privileges"): privilege_check(grant_target_name=role_name, user_name=user_name, table_type=table_type, privilege=privilege, node=node) @@ -44,6 +47,7 @@ def privilege_check(grant_target_name, user_name, table_type, privilege, node=No target_table_name = f"target_merge_tree_{getuid()}" with table(node, f"{source_table_name},{target_table_name}", table_type): + with When("I attempt to move partition without privilege"): node.query(f"ALTER TABLE {source_table_name} MOVE PARTITION 1 TO TABLE {target_table_name}", settings = [("user", user_name)], exitcode=exitcode, message=message) @@ -53,8 +57,10 @@ def privilege_check(grant_target_name, user_name, table_type, privilege, node=No target_table_name = f"target_merge_tree_{getuid()}" with table(node, f"{source_table_name},{target_table_name}", table_type): + with When(f"I grant SELECT and ALTER DELETE privileges on {source_table_name} to {grant_target_name}"): node.query(f"GRANT SELECT, ALTER DELETE ON {source_table_name} TO {grant_target_name}") + with And(f"I grant INSERT on {target_table_name} to {grant_target_name}"): node.query(f"GRANT INSERT ON {target_table_name} TO {grant_target_name}") @@ -67,8 +73,10 @@ def privilege_check(grant_target_name, user_name, table_type, privilege, node=No target_table_name = f"target_merge_tree_{getuid()}" with table(node, f"{source_table_name},{target_table_name}", table_type): + with When(f"I grant SELECT, ALTER DELETE, and ALTER MOVE PARTITION privileges on {source_table_name} to {grant_target_name}"): node.query(f"GRANT SELECT, ALTER DELETE, {privilege} ON {source_table_name} TO {grant_target_name}") + with And(f"I grant INSERT on {target_table_name} to {grant_target_name}"): node.query(f"GRANT INSERT ON {target_table_name} TO {grant_target_name}") @@ -80,8 +88,10 @@ def privilege_check(grant_target_name, user_name, table_type, privilege, node=No target_table_name = f"target_merge_tree_{getuid()}" with table(node, f"{source_table_name},{target_table_name}", table_type): + with When(f"I grant SELECT, ALTER DELETE, and ALTER MOVE PARTITION privileges on {source_table_name} to {grant_target_name}"): node.query(f"GRANT SELECT, ALTER DELETE, {privilege} ON {source_table_name} TO {grant_target_name}") + with And(f"I grant INSERT on {target_table_name} to {grant_target_name}"): node.query(f"GRANT INSERT ON {target_table_name} TO {grant_target_name}") @@ -98,16 +108,23 @@ def privilege_check(grant_target_name, user_name, table_type, privilege, node=No mat_view_source_table_name = f"mat_view_source_merge_tree_{getuid()}" with table(node, f"{source_table_name},{mat_view_source_table_name}", table_type): - with Given("I have a materialized view"): - node.query(f"CREATE MATERIALIZED VIEW {mat_view_name} ENGINE = {table_type} PARTITION BY y ORDER BY d AS SELECT * FROM {mat_view_source_table_name}") - with When(f"I grant SELECT, ALTER DELETE, and ALTER MOVE PARTITION privileges on {source_table_name} to {grant_target_name}"): - node.query(f"GRANT SELECT, ALTER DELETE, {privilege} ON {source_table_name} TO {grant_target_name}") - with And(f"I grant INSERT on {mat_view_source_table_name} to {grant_target_name}"): - node.query(f"GRANT INSERT ON {mat_view_source_table_name} TO {grant_target_name}") + try: + with Given("I have a materialized view"): + node.query(f"CREATE MATERIALIZED VIEW {mat_view_name} ENGINE = {table_type} PARTITION BY y ORDER BY d AS SELECT * FROM {mat_view_source_table_name}") - with Then("I attempt to move partitions with ALTER MOVE privilege"): - node.query(f"ALTER TABLE {source_table_name} MOVE PARTITION 1 TO TABLE {mat_view_source_table_name}", settings = [("user", user_name)]) + with When(f"I grant SELECT, ALTER DELETE, and ALTER MOVE PARTITION privileges on {source_table_name} to {grant_target_name}"): + node.query(f"GRANT SELECT, ALTER DELETE, {privilege} ON {source_table_name} TO {grant_target_name}") + + with And(f"I grant INSERT on {mat_view_source_table_name} to {grant_target_name}"): + node.query(f"GRANT INSERT ON {mat_view_source_table_name} TO {grant_target_name}") + + with Then("I attempt to move partitions with ALTER MOVE privilege"): + node.query(f"ALTER TABLE {source_table_name} MOVE PARTITION 1 TO TABLE {mat_view_source_table_name}", settings = [("user", user_name)]) + + finally: + with Finally("I drop the materialized view"): + node.query(f"DROP VIEW IF EXISTS {mat_view_name}") with Scenario("move partition to implicit target table of a materialized view", setup=instrument_clickhouse_server_log): source_table_name = f"source_merge_tree_{getuid()}" @@ -116,16 +133,23 @@ def privilege_check(grant_target_name, user_name, table_type, privilege, node=No implicit_table_name = f"\\\".inner.{mat_view_name}\\\"" with table(node, f"{source_table_name},{mat_view_source_table_name}", table_type): - with Given("I have a materialized view"): - node.query(f"CREATE MATERIALIZED VIEW {mat_view_name} ENGINE = {table_type} PARTITION BY y ORDER BY d AS SELECT * FROM {mat_view_source_table_name}") - with When(f"I grant SELECT, ALTER DELETE, and ALTER MOVE PARTITION privileges on {source_table_name} to {grant_target_name}"): - node.query(f"GRANT SELECT, ALTER DELETE, {privilege} ON {source_table_name} TO {grant_target_name}") - with And(f"I grant INSERT on {implicit_table_name} to {grant_target_name}"): - node.query(f"GRANT INSERT ON {implicit_table_name} TO {grant_target_name}") + try: + with Given("I have a materialized view"): + node.query(f"CREATE MATERIALIZED VIEW {mat_view_name} ENGINE = {table_type} PARTITION BY y ORDER BY d AS SELECT * FROM {mat_view_source_table_name}") - with Then("I attempt to move partitions with ALTER MOVE privilege"): - node.query(f"ALTER TABLE {source_table_name} MOVE PARTITION 1 TO TABLE {implicit_table_name}", settings = [("user", user_name)]) + with When(f"I grant SELECT, ALTER DELETE, and ALTER MOVE PARTITION privileges on {source_table_name} to {grant_target_name}"): + node.query(f"GRANT SELECT, ALTER DELETE, {privilege} ON {source_table_name} TO {grant_target_name}") + + with And(f"I grant INSERT on {implicit_table_name} to {grant_target_name}"): + node.query(f"GRANT INSERT ON {implicit_table_name} TO {grant_target_name}") + + with Then("I attempt to move partitions with ALTER MOVE privilege"): + node.query(f"ALTER TABLE {source_table_name} MOVE PARTITION 1 TO TABLE {implicit_table_name}", settings = [("user", user_name)]) + + finally: + with Finally("I drop the materialized view"): + node.query(f"DROP VIEW IF EXISTS {mat_view_name}") @TestFeature @Requirements( diff --git a/tests/testflows/rbac/tests/privileges/attach/__init__.py b/tests/testflows/rbac/tests/privileges/attach/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/testflows/rbac/tests/privileges/attach/attach_database.py b/tests/testflows/rbac/tests/privileges/attach/attach_database.py new file mode 100644 index 00000000000..e7d85863cc5 --- /dev/null +++ b/tests/testflows/rbac/tests/privileges/attach/attach_database.py @@ -0,0 +1,99 @@ +from rbac.requirements import * +from rbac.helper.common import * +import rbac.helper.errors as errors + +@TestSuite +@Requirements( + RQ_SRS_006_RBAC_Privileges_CreateDatabase_Access("1.0"), +) +def privilege_granted_directly_or_via_role(self, node=None): + """Check that user is only able to execute ATTACH DATABASE when they have required privilege, either directly or via role. + """ + role_name = f"role_{getuid()}" + user_name = f"user_{getuid()}" + + if node is None: + node = self.context.node + + with Suite("user with direct privilege", setup=instrument_clickhouse_server_log): + with user(node, user_name): + + with When(f"I run checks that {user_name} is only able to execute CREATE DATABASE with required privileges"): + privilege_check(grant_target_name=user_name, user_name=user_name, node=node) + + with Suite("user with privilege via role", setup=instrument_clickhouse_server_log): + with user(node, user_name), role(node, role_name): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + with And(f"I run checks that {user_name} with {role_name} is only able to execute CREATE DATABASE with required privileges"): + privilege_check(grant_target_name=role_name, user_name=user_name, node=node) + +def privilege_check(grant_target_name, user_name, node=None): + """Run scenarios to check the user's access with different privileges. + """ + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + with Scenario("user without privilege", setup=instrument_clickhouse_server_log): + db_name = f"db_{getuid()}" + + try: + with When("I attempt to attach a database without privilege"): + node.query(f"ATTACH DATABASE {db_name}", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the database"): + node.query(f"DROP DATABASE IF EXISTS {db_name}") + + with Scenario("user with privilege", setup=instrument_clickhouse_server_log): + db_name = f"db_{getuid()}" + + try: + with When("I grant create database privilege"): + node.query(f"GRANT CREATE DATABASE ON {db_name}.* TO {grant_target_name}") + + with Then("I attempt to attach aa database"): + node.query(f"ATTACH DATABASE {db_name}", settings = [("user", user_name)], + exitcode=80, message="DB::Exception: Received from localhost:9000. DB::Exception: Database engine must be specified for ATTACH DATABASE query") + + finally: + with Finally("I drop the database"): + node.query(f"DROP DATABASE IF EXISTS {db_name}") + + with Scenario("user with revoked privilege", setup=instrument_clickhouse_server_log): + db_name = f"db_{getuid()}" + + try: + with When("I grant the create database privilege"): + node.query(f"GRANT CREATE DATABASE ON {db_name}.* TO {grant_target_name}") + + with And("I revoke the create database privilege"): + node.query(f"REVOKE CREATE DATABASE ON {db_name}.* FROM {grant_target_name}") + + with Then("I attempt to attach a database"): + node.query(f"ATTACH DATABASE {db_name}", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the database"): + node.query(f"DROP DATABASE IF EXISTS {db_name}") + +@TestFeature +@Requirements( + RQ_SRS_006_RBAC_Privileges_AttachDatabase("1.0"), +) +@Name("attach database") +def feature(self, node="clickhouse1", stress=None, parallel=None): + """Check the RBAC functionality of ATTACH DATABASE. + """ + self.context.node = self.context.cluster.node(node) + + if parallel is not None: + self.context.parallel = parallel + if stress is not None: + self.context.stress = stress + + with Suite(test=privilege_granted_directly_or_via_role): + privilege_granted_directly_or_via_role() diff --git a/tests/testflows/rbac/tests/privileges/attach/attach_dictionary.py b/tests/testflows/rbac/tests/privileges/attach/attach_dictionary.py new file mode 100644 index 00000000000..b635b1c42c6 --- /dev/null +++ b/tests/testflows/rbac/tests/privileges/attach/attach_dictionary.py @@ -0,0 +1,99 @@ +from rbac.requirements import * +from rbac.helper.common import * +import rbac.helper.errors as errors + +@TestSuite +@Requirements( + RQ_SRS_006_RBAC_Privileges_CreateDictionary_Access("1.0"), +) +def privilege_granted_directly_or_via_role(self, node=None): + """Check that user is only able to execute ATTACH DICTIONARY when they have required privilege, either directly or via role. + """ + role_name = f"role_{getuid()}" + user_name = f"user_{getuid()}" + + if node is None: + node = self.context.node + + with Suite("user with direct privilege", setup=instrument_clickhouse_server_log): + with user(node, user_name): + + with When(f"I run checks that {user_name} is only able to execute CREATE DICTIONARY with required privileges"): + privilege_check(grant_target_name=user_name, user_name=user_name, node=node) + + with Suite("user with privilege via role", setup=instrument_clickhouse_server_log): + with user(node, user_name), role(node, role_name): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + with And(f"I run checks that {user_name} with {role_name} is only able to execute CREATE DICTIONARY with required privileges"): + privilege_check(grant_target_name=role_name, user_name=user_name, node=node) + +def privilege_check(grant_target_name, user_name, node=None): + """Run scenarios to check the user's access with different privileges. + """ + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + with Scenario("user without privilege", setup=instrument_clickhouse_server_log): + dict_name = f"dict_{getuid()}" + + try: + with When("I attempt to attach a dictionary without privilege"): + node.query(f"ATTACH DICTIONARY {dict_name}", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the dictionary"): + node.query(f"DROP DICTIONARY IF EXISTS {dict_name}") + + with Scenario("user with privilege", setup=instrument_clickhouse_server_log): + dict_name = f"dict_{getuid()}" + + try: + with When("I grant create dictionary privilege"): + node.query(f"GRANT CREATE DICTIONARY ON {dict_name} TO {grant_target_name}") + + with Then("I attempt to attach a dictionary"): + node.query(f"ATTACH DICTIONARY {dict_name}", settings = [("user", user_name)], + exitcode=231, message=f"DB::Exception: Dictionary `{dict_name}` doesn't exist.") + + finally: + with Finally("I drop the dictionary"): + node.query(f"DROP DICTIONARY IF EXISTS {dict_name}") + + with Scenario("user with revoked privilege", setup=instrument_clickhouse_server_log): + dict_name = f"dict_{getuid()}" + + try: + with When("I grant the create dictionary privilege"): + node.query(f"GRANT CREATE DICTIONARY ON {dict_name} TO {grant_target_name}") + + with And("I revoke the create dictionary privilege"): + node.query(f"REVOKE CREATE DICTIONARY ON {dict_name} FROM {grant_target_name}") + + with Then("I attempt to attach a dictionary"): + node.query(f"ATTACH DICTIONARY {dict_name}", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the dictionary"): + node.query(f"DROP DICTIONARY IF EXISTS {dict_name}") + +@TestFeature +@Requirements( + RQ_SRS_006_RBAC_Privileges_AttachDictionary("1.0"), +) +@Name("attach dictionary") +def feature(self, node="clickhouse1", stress=None, parallel=None): + """Check the RBAC functionality of ATTACH DICTIONARY. + """ + self.context.node = self.context.cluster.node(node) + + if parallel is not None: + self.context.parallel = parallel + if stress is not None: + self.context.stress = stress + + with Suite(test=privilege_granted_directly_or_via_role): + privilege_granted_directly_or_via_role() diff --git a/tests/testflows/rbac/tests/privileges/attach/attach_table.py b/tests/testflows/rbac/tests/privileges/attach/attach_table.py new file mode 100644 index 00000000000..e4322e93b92 --- /dev/null +++ b/tests/testflows/rbac/tests/privileges/attach/attach_table.py @@ -0,0 +1,99 @@ +from rbac.requirements import * +from rbac.helper.common import * +import rbac.helper.errors as errors + +@TestSuite +@Requirements( + RQ_SRS_006_RBAC_Privileges_CreateTable_Access("1.0"), +) +def privilege_granted_directly_or_via_role(self, node=None): + """Check that user is only able to execute ATTACH TABLE when they have required privilege, either directly or via role. + """ + role_name = f"role_{getuid()}" + user_name = f"user_{getuid()}" + + if node is None: + node = self.context.node + + with Suite("user with direct privilege", setup=instrument_clickhouse_server_log): + with user(node, user_name): + + with When(f"I run checks that {user_name} is only able to execute CREATE TABLE with required privileges"): + privilege_check(grant_target_name=user_name, user_name=user_name, node=node) + + with Suite("user with privilege via role", setup=instrument_clickhouse_server_log): + with user(node, user_name), role(node, role_name): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + with And(f"I run checks that {user_name} with {role_name} is only able to execute CREATE TABLE with required privileges"): + privilege_check(grant_target_name=role_name, user_name=user_name, node=node) + +def privilege_check(grant_target_name, user_name, node=None): + """Run scenarios to check the user's access with different privileges. + """ + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + with Scenario("user without privilege", setup=instrument_clickhouse_server_log): + table_name = f"table_{getuid()}" + + try: + with When("I attempt to attach a table without privilege"): + node.query(f"ATTACH TABLE {table_name} (x Int8) ENGINE = Memory", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + + with Scenario("user with privilege", setup=instrument_clickhouse_server_log): + table_name = f"table_{getuid()}" + + try: + with When("I grant create table privilege"): + node.query(f"GRANT CREATE TABLE ON *.* TO {grant_target_name}") + + with Then("I attempt to attach a table"): + node.query(f"ATTACH TABLE {table_name} (x Int8) ENGINE = Memory", settings = [("user", user_name)], + exitcode=80, message="DB::Exception: UUID must be specified") + + finally: + with Finally("I drop the table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + + with Scenario("user with revoked privilege", setup=instrument_clickhouse_server_log): + table_name = f"table_{getuid()}" + + try: + with When("I grant the create table privilege"): + node.query(f"GRANT CREATE TABLE ON *.* TO {grant_target_name}") + + with And("I revoke the create table privilege"): + node.query(f"REVOKE CREATE TABLE ON *.* FROM {grant_target_name}") + + with Then("I attempt to attach a table"): + node.query(f"ATTACH TABLE {table_name} (x Int8) ENGINE = Memory", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + +@TestFeature +@Requirements( + RQ_SRS_006_RBAC_Privileges_AttachTable("1.0"), +) +@Name("attach table") +def feature(self, node="clickhouse1", stress=None, parallel=None): + """Check the RBAC functionality of ATTACH TABLE. + """ + self.context.node = self.context.cluster.node(node) + + if parallel is not None: + self.context.parallel = parallel + if stress is not None: + self.context.stress = stress + + with Suite(test=privilege_granted_directly_or_via_role): + privilege_granted_directly_or_via_role() diff --git a/tests/testflows/rbac/tests/privileges/attach/attach_temp_table.py b/tests/testflows/rbac/tests/privileges/attach/attach_temp_table.py new file mode 100644 index 00000000000..b70c97d43f0 --- /dev/null +++ b/tests/testflows/rbac/tests/privileges/attach/attach_temp_table.py @@ -0,0 +1,97 @@ +from rbac.requirements import * +from rbac.helper.common import * +import rbac.helper.errors as errors + +@TestSuite +@Requirements( + RQ_SRS_006_RBAC_Privileges_CreateTemporaryTable_Access("1.0"), +) +def privilege_granted_directly_or_via_role(self, node=None): + """Check that user is only able to execute ATTACH TEMPORARY TABLE when they have required privilege, either directly or via role. + """ + role_name = f"role_{getuid()}" + user_name = f"user_{getuid()}" + + if node is None: + node = self.context.node + + with Suite("user with direct privilege", setup=instrument_clickhouse_server_log): + with user(node, user_name): + + with When(f"I run checks that {user_name} is only able to execute CREATE TEMPORARY TABLE with required privileges"): + privilege_check(grant_target_name=user_name, user_name=user_name, node=node) + + with Suite("user with privilege via role", setup=instrument_clickhouse_server_log): + with user(node, user_name), role(node, role_name): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + with And(f"I run checks that {user_name} with {role_name} is only able to execute CREATE TEMPORARY TABLE with required privileges"): + privilege_check(grant_target_name=role_name, user_name=user_name, node=node) + +def privilege_check(grant_target_name, user_name, node=None): + """Run scenarios to check the user's access with different privileges. + """ + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + with Scenario("user without privilege", setup=instrument_clickhouse_server_log): + temp_table_name = f"temp_table_{getuid()}" + + try: + with When("I attempt to attach a temporary table without privilege"): + node.query(f"ATTACH TEMPORARY TABLE {temp_table_name} (x Int8)", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the temporary table"): + node.query(f"DROP TEMPORARY TABLE IF EXISTS {temp_table_name}") + + with Scenario("user with privilege", setup=instrument_clickhouse_server_log): + temp_table_name = f"temp_table_{getuid()}" + + try: + with When("I grant create temporary table privilege"): + node.query(f"GRANT CREATE TEMPORARY TABLE ON *.* TO {grant_target_name}") + with Then("I attempt to attach a temporary table"): + node.query(f"ATTACH TEMPORARY TABLE {temp_table_name} (x Int8)", settings = [("user", user_name)]) + + finally: + with Finally("I drop the temporary table"): + node.query(f"DROP TEMPORARY TABLE IF EXISTS {temp_table_name}") + + with Scenario("user with revoked privilege", setup=instrument_clickhouse_server_log): + temp_table_name = f"temp_table_{getuid()}" + + try: + with When("I grant the create temporary table privilege"): + node.query(f"GRANT CREATE TEMPORARY TABLE ON *.* TO {grant_target_name}") + + with And("I revoke the create temporary table privilege"): + node.query(f"REVOKE CREATE TEMPORARY TABLE ON *.* FROM {grant_target_name}") + + with Then("I attempt to attach a temporary table"): + node.query(f"ATTACH TEMPORARY TABLE {temp_table_name} (x Int8)", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the temporary table"): + node.query(f"DROP TEMPORARY TABLE IF EXISTS {temp_table_name}") + +@TestFeature +@Requirements( + RQ_SRS_006_RBAC_Privileges_AttachTemporaryTable("1.0"), +) +@Name("attach temporary table") +def feature(self, node="clickhouse1", stress=None, parallel=None): + """Check the RBAC functionality of ATTACH TEMPORARY TABLE. + """ + self.context.node = self.context.cluster.node(node) + + if parallel is not None: + self.context.parallel = parallel + if stress is not None: + self.context.stress = stress + + with Suite(test=privilege_granted_directly_or_via_role): + privilege_granted_directly_or_via_role() diff --git a/tests/testflows/rbac/tests/privileges/create/__init__.py b/tests/testflows/rbac/tests/privileges/create/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/testflows/rbac/tests/privileges/create/create_database.py b/tests/testflows/rbac/tests/privileges/create/create_database.py new file mode 100644 index 00000000000..d3411240712 --- /dev/null +++ b/tests/testflows/rbac/tests/privileges/create/create_database.py @@ -0,0 +1,98 @@ +from rbac.requirements import * +from rbac.helper.common import * +import rbac.helper.errors as errors + +@TestSuite +@Requirements( + RQ_SRS_006_RBAC_Privileges_CreateDatabase_Access("1.0"), +) +def privilege_granted_directly_or_via_role(self, node=None): + """Check that user is only able to execute CREATE DATABASE when they have required privilege, either directly or via role. + """ + role_name = f"role_{getuid()}" + user_name = f"user_{getuid()}" + + if node is None: + node = self.context.node + + with Suite("user with direct privilege", setup=instrument_clickhouse_server_log): + with user(node, user_name): + + with When(f"I run checks that {user_name} is only able to execute CREATE DATABASE with required privileges"): + privilege_check(grant_target_name=user_name, user_name=user_name, node=node) + + with Suite("user with privilege via role", setup=instrument_clickhouse_server_log): + with user(node, user_name), role(node, role_name): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + with And(f"I run checks that {user_name} with {role_name} is only able to execute CREATE DATABASE with required privileges"): + privilege_check(grant_target_name=role_name, user_name=user_name, node=node) + +def privilege_check(grant_target_name, user_name, node=None): + """Run scenarios to check the user's access with different privileges. + """ + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + with Scenario("user without privilege", setup=instrument_clickhouse_server_log): + db_name = f"db_{getuid()}" + + try: + with When("I attempt to create a database without privilege"): + node.query(f"CREATE DATABASE {db_name}", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the database"): + node.query(f"DROP DATABASE IF EXISTS {db_name}") + + with Scenario("user with privilege", setup=instrument_clickhouse_server_log): + db_name = f"db_{getuid()}" + + try: + with When("I grant create database privilege"): + node.query(f"GRANT CREATE DATABASE ON {db_name}.* TO {grant_target_name}") + + with Then("I attempt to create a database"): + node.query(f"CREATE DATABASE {db_name}", settings = [("user", user_name)]) + + finally: + with Finally("I drop the database"): + node.query(f"DROP DATABASE IF EXISTS {db_name}") + + with Scenario("user with revoked privilege", setup=instrument_clickhouse_server_log): + db_name = f"db_{getuid()}" + + try: + with When("I grant the create database privilege"): + node.query(f"GRANT CREATE DATABASE ON {db_name}.* TO {grant_target_name}") + + with And("I revoke the create database privilege"): + node.query(f"REVOKE CREATE DATABASE ON {db_name}.* FROM {grant_target_name}") + + with Then("I attempt to create a database"): + node.query(f"CREATE DATABASE {db_name}", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the database"): + node.query(f"DROP DATABASE IF EXISTS {db_name}") + +@TestFeature +@Requirements( + RQ_SRS_006_RBAC_Privileges_CreateDatabase("1.0"), +) +@Name("create database") +def feature(self, node="clickhouse1", stress=None, parallel=None): + """Check the RBAC functionality of CREATE DATABASE. + """ + self.context.node = self.context.cluster.node(node) + + if parallel is not None: + self.context.parallel = parallel + if stress is not None: + self.context.stress = stress + + with Suite(test=privilege_granted_directly_or_via_role): + privilege_granted_directly_or_via_role() diff --git a/tests/testflows/rbac/tests/privileges/create/create_dictionary.py b/tests/testflows/rbac/tests/privileges/create/create_dictionary.py new file mode 100644 index 00000000000..6eb64b8e5ca --- /dev/null +++ b/tests/testflows/rbac/tests/privileges/create/create_dictionary.py @@ -0,0 +1,98 @@ +from rbac.requirements import * +from rbac.helper.common import * +import rbac.helper.errors as errors + +@TestSuite +@Requirements( + RQ_SRS_006_RBAC_Privileges_CreateDictionary_Access("1.0"), +) +def privilege_granted_directly_or_via_role(self, node=None): + """Check that user is only able to execute CREATE DICTIONARY when they have required privilege, either directly or via role. + """ + role_name = f"role_{getuid()}" + user_name = f"user_{getuid()}" + + if node is None: + node = self.context.node + + with Suite("user with direct privilege", setup=instrument_clickhouse_server_log): + with user(node, user_name): + + with When(f"I run checks that {user_name} is only able to execute CREATE DICTIONARY with required privileges"): + privilege_check(grant_target_name=user_name, user_name=user_name, node=node) + + with Suite("user with privilege via role", setup=instrument_clickhouse_server_log): + with user(node, user_name), role(node, role_name): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + with And(f"I run checks that {user_name} with {role_name} is only able to execute CREATE DICTIONARY with required privileges"): + privilege_check(grant_target_name=role_name, user_name=user_name, node=node) + +def privilege_check(grant_target_name, user_name, node=None): + """Run scenarios to check the user's access with different privileges. + """ + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + with Scenario("user without privilege", setup=instrument_clickhouse_server_log): + dict_name = f"dict_{getuid()}" + + try: + with When("I attempt to create a dictionary without privilege"): + node.query(f"CREATE DICTIONARY {dict_name}(x Int32, y Int32) PRIMARY KEY x LAYOUT(FLAT()) SOURCE(CLICKHOUSE()) LIFETIME(0)", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the dictionary"): + node.query(f"DROP DICTIONARY IF EXISTS {dict_name}") + + with Scenario("user with privilege", setup=instrument_clickhouse_server_log): + dict_name = f"dict_{getuid()}" + + try: + with When("I grant create dictionary privilege"): + node.query(f"GRANT CREATE DICTIONARY ON {dict_name} TO {grant_target_name}") + + with Then("I attempt to create a dictionary"): + node.query(f"CREATE DICTIONARY {dict_name}(x Int32, y Int32) PRIMARY KEY x LAYOUT(FLAT()) SOURCE(CLICKHOUSE()) LIFETIME(0)", settings = [("user", user_name)]) + + finally: + with Finally("I drop the dictionary"): + node.query(f"DROP DICTIONARY IF EXISTS {dict_name}") + + with Scenario("user with revoked privilege", setup=instrument_clickhouse_server_log): + dict_name = f"dict_{getuid()}" + + try: + with When("I grant the create dictionary privilege"): + node.query(f"GRANT CREATE DICTIONARY ON {dict_name} TO {grant_target_name}") + + with And("I revoke the create dictionary privilege"): + node.query(f"REVOKE CREATE DICTIONARY ON {dict_name} FROM {grant_target_name}") + + with Then("I attempt to create a dictionary"): + node.query(f"CREATE DICTIONARY {dict_name}(x Int32, y Int32) PRIMARY KEY x LAYOUT(FLAT()) SOURCE(CLICKHOUSE()) LIFETIME(0)", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the dictionary"): + node.query(f"DROP DICTIONARY IF EXISTS {dict_name}") + +@TestFeature +@Requirements( + RQ_SRS_006_RBAC_Privileges_CreateDictionary("1.0"), +) +@Name("create dictionary") +def feature(self, node="clickhouse1", stress=None, parallel=None): + """Check the RBAC functionality of CREATE DICTIONARY. + """ + self.context.node = self.context.cluster.node(node) + + if parallel is not None: + self.context.parallel = parallel + if stress is not None: + self.context.stress = stress + + with Suite(test=privilege_granted_directly_or_via_role): + privilege_granted_directly_or_via_role() diff --git a/tests/testflows/rbac/tests/privileges/create/create_table.py b/tests/testflows/rbac/tests/privileges/create/create_table.py new file mode 100644 index 00000000000..ddb94e2acad --- /dev/null +++ b/tests/testflows/rbac/tests/privileges/create/create_table.py @@ -0,0 +1,731 @@ +from testflows.core import * +from testflows.asserts import error + +from rbac.requirements import * +from rbac.helper.common import * +import rbac.helper.errors as errors + +@TestScenario +def create_without_create_table_privilege(self, node=None): + """Check that user is unable to create a table without CREATE TABLE privilege. + """ + user_name = f"user_{getuid()}" + table_name = f"table_{getuid()}" + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + if node is None: + node = self.context.node + + with user(node, f"{user_name}"): + + with Given("I don't have a table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + + with When("I try to create a table without CREATE TABLE privilege as the user"): + node.query(f"CREATE TABLE {table_name} (x Int8) ENGINE = Memory", settings = [("user", f"{user_name}")], + exitcode=exitcode, message=message) + +@TestScenario +def create_with_create_table_privilege_granted_directly_or_via_role(self, node=None): + """Check that user is able to create a table with CREATE TABLE privilege, either granted directly or through a role. + """ + user_name = f"user_{getuid()}" + role_name = f"role_{getuid()}" + + if node is None: + node = self.context.node + + with user(node, f"{user_name}"): + + Scenario(test=create_with_create_table_privilege, + name="create with create table privilege granted directly")(grant_target_name=user_name, user_name=user_name) + + with user(node, f"{user_name}"), role(node, f"{role_name}"): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + Scenario(test=create_with_create_table_privilege, + name="create with create table privilege granted through a role")(grant_target_name=role_name, user_name=user_name) + +@TestOutline +def create_with_create_table_privilege(self, grant_target_name, user_name, node=None): + """Check that user is able to create a table with the granted privileges. + """ + table_name = f"table_{getuid()}" + + if node is None: + node = self.context.node + try: + with Given("I don't have a table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + + with When("I grant the CREATE TABLE privilege"): + node.query(f"GRANT CREATE TABLE ON {table_name} TO {grant_target_name}") + + with Then("I try to create a table without privilege as the user"): + node.query(f"CREATE TABLE {table_name} (x Int8) ENGINE = Memory", settings = [("user", f"{user_name}")]) + + finally: + with Then("I drop the table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + +@TestScenario +def create_with_revoked_create_table_privilege_revoked_directly_or_from_role(self, node=None): + """Check that user is unable to create table after the CREATE TABLE privilege is revoked, either directly or from a role. + """ + user_name = f"user_{getuid()}" + role_name = f"role_{getuid()}" + + if node is None: + node = self.context.node + + with user(node, f"{user_name}"): + + Scenario(test=create_with_revoked_create_table_privilege, + name="create with create table privilege revoked directly")(grant_target_name=user_name, user_name=user_name) + + with user(node, f"{user_name}"), role(node, f"{role_name}"): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + Scenario(test=create_with_revoked_create_table_privilege, + name="create with create table privilege revoked from a role")(grant_target_name=role_name, user_name=user_name) + +@TestOutline +def create_with_revoked_create_table_privilege(self, grant_target_name, user_name, node=None): + """Revoke CREATE TABLE privilege and check the user is unable to create a table. + """ + table_name = f"table_{getuid()}" + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + if node is None: + node = self.context.node + + with Given("I don't have a table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + + with When("I grant CREATE TABLE privilege"): + node.query(f"GRANT CREATE TABLE ON {table_name} TO {grant_target_name}") + + with And("I revoke CREATE TABLE privilege"): + node.query(f"REVOKE CREATE TABLE ON {table_name} FROM {grant_target_name}") + + with Then("I try to create a table on the table as the user"): + node.query(f"CREATE TABLE {table_name} (x Int8) ENGINE = Memory", settings = [("user", f"{user_name}")], + exitcode=exitcode, message=message) + +@TestScenario +def create_without_source_table_privilege(self, node=None): + """Check that user is unable to create a table without select + privilege on the source table. + """ + user_name = f"user_{getuid()}" + table_name = f"table_{getuid()}" + source_table_name = f"source_table_{getuid()}" + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + if node is None: + node = self.context.node + + with table(node, f"{source_table_name}"): + with user(node, f"{user_name}"): + + with When("I grant CREATE TABLE privilege to a user"): + node.query(f"GRANT CREATE TABLE ON {table_name} TO {user_name}") + + with And("I grant INSERT privilege"): + node.query(f"GRANT INSERT ON {table_name} TO {user_name}") + + with Then("I try to create a table without select privilege on the table"): + node.query(f"CREATE TABLE {table_name} ENGINE = Memory AS SELECT * FROM {source_table_name}", settings = [("user", f"{user_name}")], + exitcode=exitcode, message=message) + +@TestScenario +def create_without_insert_privilege(self, node=None): + """Check that user is unable to create a table without insert + privilege on that table. + """ + user_name = f"user_{getuid()}" + table_name = f"table_{getuid()}" + source_table_name = f"source_table_{getuid()}" + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + if node is None: + node = self.context.node + + with table(node, f"{source_table_name}"): + with user(node, f"{user_name}"): + + with When("I grant CREATE TABLE privilege to a user"): + node.query(f"GRANT CREATE TABLE ON {table_name} TO {user_name}") + + with And("I grant SELECT privilege"): + node.query(f"GRANT SELECT ON {source_table_name} TO {user_name}") + + with Then("I try to create a table without select privilege on the table"): + node.query(f"CREATE TABLE {table_name} ENGINE = Memory AS SELECT * FROM {source_table_name}", settings = [("user", f"{user_name}")], + exitcode=exitcode, message=message) + +@TestScenario +def create_with_source_table_privilege_granted_directly_or_via_role(self, node=None): + """Check that a user is able to create a table if and only if the user has create table privilege and + select privilege on the source table, either granted directly or through a role. + """ + user_name = f"user_{getuid()}" + role_name = f"role_{getuid()}" + + if node is None: + node = self.context.node + + with user(node, f"{user_name}"): + + Scenario(test=create_with_source_table_privilege, + name="create with create table and select privilege granted directly")(grant_target_name=user_name, user_name=user_name) + + with user(node, f"{user_name}"), role(node, f"{role_name}"): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + Scenario(test=create_with_source_table_privilege, + name="create with create table and select privilege granted through a role")(grant_target_name=role_name, user_name=user_name) + +@TestOutline +def create_with_source_table_privilege(self, user_name, grant_target_name, node=None): + """Check that user is unable to create a table without SELECT privilege on the source table. + """ + table_name = f"table_{getuid()}" + source_table_name = f"source_table_{getuid()}" + + if node is None: + node = self.context.node + + with table(node, f"{source_table_name}"): + + try: + with When("I grant CREATE table privilege"): + node.query(f"GRANT CREATE table ON {table_name} TO {grant_target_name}") + + with And("I grant INSERT privilege"): + node.query(f"GRANT INSERT ON {table_name} TO {grant_target_name}") + + with And("I grant SELECT privilege"): + node.query(f"GRANT SELECT ON {source_table_name} TO {grant_target_name}") + + with And("I try to create a table on the table as the user"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + node.query(f"CREATE TABLE {table_name} ENGINE = Memory AS SELECT * FROM {source_table_name}", settings = [("user", f"{user_name}")]) + + finally: + with Finally("I drop the table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + +@TestScenario +def create_with_subquery_privilege_granted_directly_or_via_role(self, node=None): + """Check that user is able to create a table where the stored query has two subqueries + if and only if the user has SELECT privilege on all of the tables, + either granted directly or through a role. + """ + user_name = f"user_{getuid()}" + role_name = f"role_{getuid()}" + + if node is None: + node = self.context.node + + with user(node, f"{user_name}"): + + Scenario(test=create_with_subquery, + name="create with subquery, privilege granted directly")(grant_target_name=user_name, user_name=user_name) + + with user(node, f"{user_name}"), role(node, f"{role_name}"): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + Scenario(test=create_with_subquery, + name="create with subquery, privilege granted through a role")(grant_target_name=role_name, user_name=user_name) + +@TestOutline +def create_with_subquery(self, user_name, grant_target_name, node=None): + """Grant select and create table privileges and check that user is able to create a table + if and only if they have all necessary privileges. + """ + table_name = f"table_{getuid()}" + table0_name = f"table0_{getuid()}" + table1_name = f"table1_{getuid()}" + table2_name = f"table2_{getuid()}" + + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + create_table_query = "CREATE TABLE {table_name} ENGINE = Memory AS SELECT * FROM {table0_name} WHERE y IN (SELECT y FROM {table1_name} WHERE y IN (SELECT y FROM {table2_name} WHERE y<2))" + + if node is None: + node = self.context.node + + with table(node, f"{table0_name},{table1_name},{table2_name}"): + + try: + with When("I grant CREATE TABLE privilege"): + node.query(f"GRANT CREATE TABLE ON {table_name} TO {grant_target_name}") + + with And("I grant INSERT privilege"): + node.query(f"GRANT INSERT ON {table_name} TO {grant_target_name}") + + with Then("I attempt to CREATE TABLE as the user with create privilege"): + node.query(create_table_query.format(table_name=table_name, table0_name=table0_name, table1_name=table1_name, table2_name=table2_name), settings = [("user", f"{user_name}")], + exitcode=exitcode, message=message) + + for permutation in permutations(table_count=3): + with grant_select_on_table(node, permutation, grant_target_name, table0_name, table1_name, table2_name) as tables_granted: + + with When(f"permutation={permutation}, tables granted = {tables_granted}"): + + with Given("I don't have a table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + + with Then("I attempt to create a table as the user"): + node.query(create_table_query.format(table_name=table_name, table0_name=table0_name, table1_name=table1_name, table2_name=table2_name), settings = [("user", f"{user_name}")], + exitcode=exitcode, message=message) + + with When("I grant select on all tables"): + with grant_select_on_table(node, max(permutations(table_count=3))+1, grant_target_name, table0_name, table1_name, table2_name): + + with Given("I don't have a table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + + with Then("I attempt to create a table as the user"): + node.query(create_table_query.format(table_name=table_name, table0_name=table0_name, table1_name=table1_name, table2_name=table2_name), settings = [("user", f"{user_name}")]) + + finally: + with Finally("I drop the table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + +@TestScenario +def create_with_join_query_privilege_granted_directly_or_via_role(self, node=None): + """Check that user is able to create a table where the stored query includes a `JOIN` statement + if and only if the user has SELECT privilege on all of the tables, + either granted directly or through a role. + """ + user_name = f"user_{getuid()}" + role_name = f"role_{getuid()}" + + if node is None: + node = self.context.node + + with user(node, f"{user_name}"): + + Scenario(test=create_with_join_query, + name="create with join query, privilege granted directly")(grant_target_name=user_name, user_name=user_name) + + with user(node, f"{user_name}"), role(node, f"{role_name}"): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + Scenario(test=create_with_join_query, + name="create with join query, privilege granted through a role")(grant_target_name=role_name, user_name=user_name) + +@TestOutline +def create_with_join_query(self, grant_target_name, user_name, node=None): + """Grant select and create table privileges and check that user is able to create a table + if and only if they have all necessary privileges. + """ + table_name = f"table_{getuid()}" + table0_name = f"table0_{getuid()}" + table1_name = f"table1_{getuid()}" + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + create_table_query = "CREATE TABLE {table_name} ENGINE = Memory AS SELECT * FROM {table0_name} JOIN {table1_name} USING d" + + if node is None: + node = self.context.node + + with table(node, f"{table0_name},{table1_name}"): + + try: + with When("I grant CREATE TABLE privilege"): + node.query(f"GRANT CREATE TABLE ON {table_name} TO {grant_target_name}") + + with And("I grant INSERT privilege"): + node.query(f"GRANT INSERT ON {table_name} TO {grant_target_name}") + + with Then("I attempt to create table as the user"): + node.query(create_table_query.format(table_name=table_name, table0_name=table0_name, table1_name=table1_name), settings = [("user", f"{user_name}")], + exitcode=exitcode, message=message) + + for permutation in permutations(table_count=2): + with grant_select_on_table(node, permutation, grant_target_name, table0_name, table1_name) as tables_granted: + + with When(f"permutation={permutation}, tables granted = {tables_granted}"): + + with Given("I don't have a table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + + with Then("I attempt to create a table as the user"): + node.query(create_table_query.format(table_name=table_name, table0_name=table0_name, table1_name=table1_name), settings = [("user", f"{user_name}")], + exitcode=exitcode, message=message) + + with When("I grant select on all tables"): + with grant_select_on_table(node, max(permutations(table_count=2))+1, grant_target_name, table0_name, table1_name): + + with Given("I don't have a table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + + with Then("I attempt to create a table as the user"): + node.query(create_table_query.format(table_name=table_name, table0_name=table0_name, table1_name=table1_name), settings = [("user", f"{user_name}")]) + + finally: + with Then("I drop the table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + +@TestScenario +def create_with_union_query_privilege_granted_directly_or_via_role(self, node=None): + """Check that user is able to create a table where the stored query includes a `UNION ALL` statement + if and only if the user has SELECT privilege on all of the tables, + either granted directly or through a role. + """ + user_name = f"user_{getuid()}" + role_name = f"role_{getuid()}" + + if node is None: + node = self.context.node + + with user(node, f"{user_name}"): + + Scenario(test=create_with_union_query, + name="create with union query, privilege granted directly")(grant_target_name=user_name, user_name=user_name) + + with user(node, f"{user_name}"), role(node, f"{role_name}"): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + Scenario(test=create_with_union_query, + name="create with union query, privilege granted through a role")(grant_target_name=role_name, user_name=user_name) + +@TestOutline +def create_with_union_query(self, grant_target_name, user_name, node=None): + """Grant select and create table privileges and check that user is able to create a table + if and only if they have all necessary privileges. + """ + table_name = f"table_{getuid()}" + table0_name = f"table0_{getuid()}" + table1_name = f"table1_{getuid()}" + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + create_table_query = "CREATE TABLE {table_name} ENGINE = Memory AS SELECT * FROM {table0_name} UNION ALL SELECT * FROM {table1_name}" + + if node is None: + node = self.context.node + + with table(node, f"{table0_name},{table1_name}"): + + try: + with When("I grant CREATE TABLE privilege"): + node.query(f"GRANT CREATE TABLE ON {table_name} TO {grant_target_name}") + + with And("I grant INSERT privilege"): + node.query(f"GRANT INSERT ON {table_name} TO {grant_target_name}") + + with Then("I attempt to create table as the user"): + node.query(create_table_query.format(table_name=table_name, table0_name=table0_name, table1_name=table1_name), settings = [("user", f"{user_name}")], + exitcode=exitcode, message=message) + + for permutation in permutations(table_count=2): + with grant_select_on_table(node, permutation, grant_target_name, table0_name, table1_name) as tables_granted: + + with When(f"permutation={permutation}, tables granted = {tables_granted}"): + + with Given("I don't have a table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + + with Then("I attempt to create a table as the user"): + node.query(create_table_query.format(table_name=table_name, table0_name=table0_name, table1_name=table1_name), settings = [("user", f"{user_name}")], + exitcode=exitcode, message=message) + + with When("I grant select on all tables"): + with grant_select_on_table(node, max(permutations(table_count=2))+1, grant_target_name, table0_name, table1_name): + + with Given("I don't have a table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + + with Then("I attempt to create a table as the user"): + node.query(create_table_query.format(table_name=table_name, table0_name=table0_name, table1_name=table1_name), settings = [("user", f"{user_name}")]) + + finally: + with Finally("I drop the table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + +@TestScenario +def create_with_join_union_subquery_privilege_granted_directly_or_via_role(self, node=None): + """Check that user is able to create a table with a stored query that includes `UNION ALL`, `JOIN` and two subqueries + if and only if the user has SELECT privilege on all of the tables, either granted directly or through a role. + """ + user_name = f"user_{getuid()}" + role_name = f"role_{getuid()}" + + if node is None: + node = self.context.node + + with user(node, f"{user_name}"): + + Scenario(test=create_with_join_union_subquery, + name="create with join union subquery, privilege granted directly")(grant_target_name=user_name, user_name=user_name) + + with user(node, f"{user_name}"), role(node, f"{role_name}"): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + Scenario(test=create_with_join_union_subquery, + name="create with join union subquery, privilege granted through a role")(grant_target_name=role_name, user_name=user_name) + +@TestOutline +def create_with_join_union_subquery(self, grant_target_name, user_name, node=None): + """Grant select and create table privileges and check that user is able to create a table + if and only if they have all necessary privileges. + """ + table_name = f"table_{getuid()}" + table0_name = f"table0_{getuid()}" + table1_name = f"table1_{getuid()}" + table2_name = f"table2_{getuid()}" + table3_name = f"table3_{getuid()}" + table4_name = f"table4_{getuid()}" + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + create_table_query = "CREATE TABLE {table_name} ENGINE = Memory AS SELECT y FROM {table0_name} JOIN {table1_name} USING y UNION ALL SELECT y FROM {table1_name} WHERE y IN (SELECT y FROM {table3_name} WHERE y IN (SELECT y FROM {table4_name} WHERE y<2))" + + if node is None: + node = self.context.node + + with table(node, f"{table0_name},{table1_name},{table2_name},{table3_name},{table4_name}"): + with user(node, f"{user_name}"): + + try: + with When("I grant CREATE TABLE privilege"): + node.query(f"GRANT CREATE TABLE ON {table_name} TO {grant_target_name}") + + with And("I grant INSERT privilege"): + node.query(f"GRANT INSERT ON {table_name} TO {grant_target_name}") + + with Then("I attempt to create table as the user with CREATE TABLE privilege"): + node.query(create_table_query.format(table_name=table_name, table0_name=table0_name, table1_name=table1_name, table2_name=table2_name, table3_name=table3_name, table4_name=table4_name), + settings = [("user", f"{user_name}")], exitcode=exitcode, message=message) + + for permutation in permutations(table_count=5): + with grant_select_on_table(node, permutation, grant_target_name, table0_name, table1_name, table3_name, table4_name) as tables_granted: + + with When(f"permutation={permutation}, tables granted = {tables_granted}"): + + with Given("I don't have a table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + + with Then("I attempt to create a table as the user"): + node.query(create_table_query.format(table_name=table_name, table0_name=table0_name, table1_name=table1_name, table2_name=table2_name, table3_name=table3_name, table4_name=table4_name), + settings = [("user", f"{user_name}")], exitcode=exitcode, message=message) + + with When("I grant select on all tables"): + with grant_select_on_table(node, max(permutations(table_count=5))+1, grant_target_name, table0_name, table1_name, table2_name, table3_name, table4_name): + + with Given("I don't have a table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + + with Then("I attempt to create a table as the user"): + node.query(create_table_query.format(table_name=table_name, table0_name=table0_name, table1_name=table1_name, table2_name=table2_name, table3_name=table3_name, table4_name=table4_name), + settings = [("user", f"{user_name}")]) + + finally: + with Finally("I drop the table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + +@TestScenario +def create_with_nested_tables_privilege_granted_directly_or_via_role(self, node=None): + """Check that user is able to create a table with a stored query that includes other tables if and only if + they have SELECT privilege on all the tables and the source tables for those tables. + """ + user_name = f"user_{getuid()}" + role_name = f"role_{getuid()}" + + if node is None: + node = self.context.node + + with user(node, f"{user_name}"): + + Scenario(test=create_with_nested_tables, + name="create with nested tables, privilege granted directly")(grant_target_name=user_name, user_name=user_name) + + with user(node, f"{user_name}"), role(node, f"{role_name}"): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + Scenario(test=create_with_nested_tables, + name="create with nested tables, privilege granted through a role")(grant_target_name=role_name, user_name=user_name) + +@TestOutline +def create_with_nested_tables(self, grant_target_name, user_name, node=None): + """Grant select and create table privileges and check that user is able to create a table + if and only if they have all necessary privileges. + """ + table_name = f"table_{getuid()}" + table0_name = f"table0_{getuid()}" + table1_name = f"table1_{getuid()}" + table2_name = f"table2_{getuid()}" + table3_name = f"table3_{getuid()}" + table4_name = f"table4_{getuid()}" + table5_name = f"table5_{getuid()}" + table6_name = f"table6_{getuid()}" + + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + create_table_query = "CREATE TABLE {table_name} ENGINE = Memory AS SELECT y FROM {table6_name} UNION ALL SELECT y FROM {table5_name}" + + if node is None: + node = self.context.node + + with table(node, f"{table0_name},{table2_name},{table4_name},{table6_name}"): + + try: + with Given("I have some tables"): + node.query(f"CREATE TABLE {table1_name} ENGINE = Memory AS SELECT y FROM {table0_name}") + node.query(f"CREATE TABLE {table3_name} ENGINE = Memory AS SELECT y FROM {table2_name} WHERE y IN (SELECT y FROM {table1_name} WHERE y<2)") + node.query(f"CREATE TABLE {table5_name} ENGINE = Memory AS SELECT y FROM {table4_name} JOIN {table3_name} USING y") + + with When("I grant CREATE TABLE privilege"): + node.query(f"GRANT CREATE TABLE ON {table_name} TO {grant_target_name}") + + with And("I grant INSERT privilege"): + node.query(f"GRANT INSERT ON {table_name} TO {grant_target_name}") + + with Then("I attempt to create table as the user with CREATE TABLE privilege"): + node.query(create_table_query.format(table_name=table_name, table5_name=table5_name, table6_name=table6_name), + settings = [("user",f"{user_name}")], exitcode=exitcode, message=message) + + for permutation in ([0,1,2,3,7,11,15,31,39,79,95],permutations(table_count=7))[self.context.stress]: + with grant_select_on_table(node, permutation, grant_target_name, table5_name, table6_name, table3_name, table4_name, table1_name, table2_name, table0_name) as tables_granted: + + with When(f"permutation={permutation}, tables granted = {tables_granted}"): + + with Given("I don't have a table"): + node.query(f"DROP TABLE IF EXISTS {table3_name}") + + with Then("I attempt to create a table as the user"): + node.query(create_table_query.format(table_name=table_name, table5_name=table5_name, table6_name=table6_name), + settings = [("user", f"{user_name}")], exitcode=exitcode, message=message) + + with When("I grant select on all tables"): + with grant_select_on_table(node, max(permutations(table_count=7))+1, + grant_target_name, table0_name, table1_name, table2_name, table3_name, table4_name, table5_name, table6_name): + + with Given("I don't have a table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + + with Then("I attempt to create a table as the user"): + node.query(create_table_query.format(table_name=table_name, table5_name=table5_name, table6_name=table6_name), + settings = [("user", f"{user_name}")]) + + finally: + with Finally("I drop the tables"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + +@TestScenario +def create_as_another_table(self, node=None): + """Check that user is able to create a table as another table with only CREATE TABLE privilege. + """ + user_name = f"user_{getuid()}" + table_name = f"table_{getuid()}" + source_table_name = f"source_table_{getuid()}" + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + if node is None: + node = self.context.node + + with table(node, f"{source_table_name}"): + with user(node, f"{user_name}"): + + try: + with When("I grant CREATE TABLE privilege to a user"): + node.query(f"GRANT CREATE TABLE ON {table_name} TO {user_name}") + + with Then("I try to create a table as another table"): + node.query(f"CREATE TABLE {table_name} AS {source_table_name}", settings = [("user", f"{user_name}")]) + + finally: + with Finally("I drop the tables"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + +@TestScenario +def create_as_numbers(self, node=None): + """Check that user is able to create a table as numbers table function. + """ + user_name = f"user_{getuid()}" + table_name = f"table_{getuid()}" + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + if node is None: + node = self.context.node + + with user(node, f"{user_name}"): + + try: + with When("I grant CREATE TABLE privilege to a user"): + node.query(f"GRANT CREATE TABLE ON {table_name} TO {user_name}") + + with And("I grant INSERT privilege"): + node.query(f"GRANT INSERT ON {table_name} TO {user_name}") + + with Then("I try to create a table without select privilege on the table"): + node.query(f"CREATE TABLE {table_name} AS numbers(5)", settings = [("user", f"{user_name}")]) + + finally: + with Finally("I drop the tables"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + +@TestScenario +def create_as_merge(self, node=None): + """Check that user is able to create a table as merge table function. + """ + user_name = f"user_{getuid()}" + table_name = f"table_{getuid()}" + source_table_name = f"source_table_{getuid()}" + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + if node is None: + node = self.context.node + + with table(node, f"{source_table_name}"): + with user(node, f"{user_name}"): + + try: + with When("I grant CREATE TABLE privilege to a user"): + node.query(f"GRANT CREATE TABLE ON {table_name} TO {user_name}") + + with Then("I try to create a table as another table"): + node.query(f"CREATE TABLE {table_name} AS merge(default,'{source_table_name}')", settings = [("user", f"{user_name}")]) + + finally: + with Finally("I drop the tables"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + +@TestFeature +@Requirements( + RQ_SRS_006_RBAC_Privileges_CreateTable("1.0"), + RQ_SRS_006_RBAC_Privileges_CreateTable_Access("1.0"), +) +@Name("create table") +def feature(self, stress=None, parallel=None, node="clickhouse1"): + self.context.node = self.context.cluster.node(node) + + if stress is not None: + self.context.stress = stress + if parallel is not None: + self.context.stress = parallel + + tasks = [] + pool = Pool(10) + + try: + try: + for scenario in loads(current_module(), Scenario): + run_scenario(pool, tasks, scenario) + finally: + join(tasks) + finally: + pool.close() diff --git a/tests/testflows/rbac/tests/privileges/create/create_temp_table.py b/tests/testflows/rbac/tests/privileges/create/create_temp_table.py new file mode 100644 index 00000000000..52eeb41dd45 --- /dev/null +++ b/tests/testflows/rbac/tests/privileges/create/create_temp_table.py @@ -0,0 +1,98 @@ +from rbac.requirements import * +from rbac.helper.common import * +import rbac.helper.errors as errors + +@TestSuite +@Requirements( + RQ_SRS_006_RBAC_Privileges_CreateTemporaryTable_Access("1.0"), +) +def privilege_granted_directly_or_via_role(self, node=None): + """Check that user is only able to execute CREATE TEMPORARY TABLE when they have required privilege, either directly or via role. + """ + role_name = f"role_{getuid()}" + user_name = f"user_{getuid()}" + + if node is None: + node = self.context.node + + with Suite("user with direct privilege", setup=instrument_clickhouse_server_log): + with user(node, user_name): + + with When(f"I run checks that {user_name} is only able to execute CREATE TEMPORARY TABLE with required privileges"): + privilege_check(grant_target_name=user_name, user_name=user_name, node=node) + + with Suite("user with privilege via role", setup=instrument_clickhouse_server_log): + with user(node, user_name), role(node, role_name): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + with And(f"I run checks that {user_name} with {role_name} is only able to execute CREATE TEMPORARY TABLE with required privileges"): + privilege_check(grant_target_name=role_name, user_name=user_name, node=node) + +def privilege_check(grant_target_name, user_name, node=None): + """Run scenarios to check the user's access with different privileges. + """ + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + with Scenario("user without privilege", setup=instrument_clickhouse_server_log): + temp_table_name = f"temp_table_{getuid()}" + + try: + with When("I attempt to create a temporary table without privilege"): + node.query(f"CREATE TEMPORARY TABLE {temp_table_name} (x Int8)", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the temporary table"): + node.query(f"DROP TEMPORARY TABLE IF EXISTS {temp_table_name}") + + with Scenario("user with privilege", setup=instrument_clickhouse_server_log): + temp_table_name = f"temp_table_{getuid()}" + + try: + with When("I grant create temporary table privilege"): + node.query(f"GRANT CREATE TEMPORARY TABLE ON *.* TO {grant_target_name}") + + with Then("I attempt to create aa temporary table"): + node.query(f"CREATE TEMPORARY TABLE {temp_table_name} (x Int8)", settings = [("user", user_name)]) + + finally: + with Finally("I drop the temporary table"): + node.query(f"DROP TEMPORARY TABLE IF EXISTS {temp_table_name}") + + with Scenario("user with revoked privilege", setup=instrument_clickhouse_server_log): + temp_table_name = f"temp_table_{getuid()}" + + try: + with When("I grant the create temporary table privilege"): + node.query(f"GRANT CREATE TEMPORARY TABLE ON *.* TO {grant_target_name}") + + with And("I revoke the create temporary table privilege"): + node.query(f"REVOKE CREATE TEMPORARY TABLE ON *.* FROM {grant_target_name}") + + with Then("I attempt to create a temporary table"): + node.query(f"CREATE TEMPORARY TABLE {temp_table_name} (x Int8)", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the temporary table"): + node.query(f"DROP TEMPORARY TABLE IF EXISTS {temp_table_name}") + +@TestFeature +@Requirements( + RQ_SRS_006_RBAC_Privileges_CreateTemporaryTable("1.0"), +) +@Name("create temporary table") +def feature(self, node="clickhouse1", stress=None, parallel=None): + """Check the RBAC functionality of CREATE TEMPORARY TABLE. + """ + self.context.node = self.context.cluster.node(node) + + if parallel is not None: + self.context.parallel = parallel + if stress is not None: + self.context.stress = stress + + with Suite(test=privilege_granted_directly_or_via_role): + privilege_granted_directly_or_via_role() diff --git a/tests/testflows/rbac/tests/privileges/detach/__init__.py b/tests/testflows/rbac/tests/privileges/detach/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/testflows/rbac/tests/privileges/detach/detach_database.py b/tests/testflows/rbac/tests/privileges/detach/detach_database.py new file mode 100644 index 00000000000..d6b56f2bb25 --- /dev/null +++ b/tests/testflows/rbac/tests/privileges/detach/detach_database.py @@ -0,0 +1,106 @@ +from rbac.requirements import * +from rbac.helper.common import * +import rbac.helper.errors as errors + +@TestSuite +@Requirements( + RQ_SRS_006_RBAC_Privileges_DropDatabase_Access("1.0"), +) +def privilege_granted_directly_or_via_role(self, node=None): + """Check that user is only able to execute DETACH DATABASE when they have required privilege, either directly or via role. + """ + role_name = f"role_{getuid()}" + user_name = f"user_{getuid()}" + + if node is None: + node = self.context.node + + with Suite("user with direct privilege", setup=instrument_clickhouse_server_log): + with user(node, user_name): + + with When(f"I run checks that {user_name} is only able to execute DETACH DATABASE with required privileges"): + privilege_check(grant_target_name=user_name, user_name=user_name, node=node) + + with Suite("user with privilege via role", setup=instrument_clickhouse_server_log): + with user(node, user_name), role(node, role_name): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + with And(f"I run checks that {user_name} with {role_name} is only able to execute DETACH DATABASE with required privileges"): + privilege_check(grant_target_name=role_name, user_name=user_name, node=node) + +def privilege_check(grant_target_name, user_name, node=None): + """Run scenarios to check the user's access with different privileges. + """ + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + with Scenario("user without privilege", setup=instrument_clickhouse_server_log): + db_name = f"db_{getuid()}" + + try: + with Given("I have a database"): + node.query(f"CREATE DATABASE {db_name}") + + with When("I attempt to detach the database"): + node.query(f"DETACH DATABASE {db_name}", settings = [("user", user_name)], + exitcode=exitcode, message=message) + finally: + with Finally("I drop the database"): + node.query(f"DROP DATABASE IF EXISTS {db_name}") + + with Scenario("user with privilege", setup=instrument_clickhouse_server_log): + db_name = f"db_{getuid()}" + + try: + with Given("I have a database"): + node.query(f"CREATE DATABASE {db_name}") + + with When("I grant drop database privilege"): + node.query(f"GRANT DROP DATABASE ON {db_name}.* TO {grant_target_name}") + + with Then("I attempt to detach a database"): + node.query(f"DETACH DATABASE {db_name}", settings = [("user", user_name)]) + + finally: + with Finally("I drop the database"): + node.query(f"DROP DATABASE IF EXISTS {db_name}") + + with Scenario("user with revoked privilege", setup=instrument_clickhouse_server_log): + db_name = f"db_{getuid()}" + + try: + with Given("I have a database"): + node.query(f"CREATE DATABASE {db_name}") + + with When("I grant the drop database privilege"): + node.query(f"GRANT DROP DATABASE ON {db_name}.* TO {grant_target_name}") + + with And("I revoke the drop database privilege"): + node.query(f"REVOKE DROP DATABASE ON {db_name}.* FROM {grant_target_name}") + + with Then("I attempt to detach a database"): + node.query(f"DETACH DATABASE {db_name}", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the database"): + node.query(f"DROP DATABASE IF EXISTS {db_name}") + +@TestFeature +@Requirements( + RQ_SRS_006_RBAC_Privileges_DetachDatabase("1.0"), +) +@Name("detach database") +def feature(self, node="clickhouse1", stress=None, parallel=None): + """Check the RBAC functionality of DETACH DATABASE. + """ + self.context.node = self.context.cluster.node(node) + + if parallel is not None: + self.context.parallel = parallel + if stress is not None: + self.context.stress = stress + + with Suite(test=privilege_granted_directly_or_via_role): + privilege_granted_directly_or_via_role() diff --git a/tests/testflows/rbac/tests/privileges/detach/detach_dictionary.py b/tests/testflows/rbac/tests/privileges/detach/detach_dictionary.py new file mode 100644 index 00000000000..a8aab58a567 --- /dev/null +++ b/tests/testflows/rbac/tests/privileges/detach/detach_dictionary.py @@ -0,0 +1,105 @@ +from rbac.requirements import * +from rbac.helper.common import * +import rbac.helper.errors as errors + +@TestSuite +@Requirements( + RQ_SRS_006_RBAC_Privileges_DropDictionary_Access("1.0"), +) +def privilege_granted_directly_or_via_role(self, node=None): + """Check that user is only able to execute DETACH DICTIONARY when they have required privilege, either directly or via role. + """ + role_name = f"role_{getuid()}" + user_name = f"user_{getuid()}" + + if node is None: + node = self.context.node + + with Suite("user with direct privilege", setup=instrument_clickhouse_server_log): + with user(node, user_name): + + with When(f"I run checks that {user_name} is only able to execute DETACH DICTIONARY with required privileges"): + privilege_check(grant_target_name=user_name, user_name=user_name, node=node) + + with Suite("user with privilege via role", setup=instrument_clickhouse_server_log): + with user(node, user_name), role(node, role_name): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + with And(f"I run checks that {user_name} with {role_name} is only able to execute DETACH DICTIONARY with required privileges"): + privilege_check(grant_target_name=role_name, user_name=user_name, node=node) + +def privilege_check(grant_target_name, user_name, node=None): + """Run scenarios to check the user's access with different privileges. + """ + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + with Scenario("user without privilege", setup=instrument_clickhouse_server_log): + dict_name = f"dict_{getuid()}" + + try: + with Given("I have a dictionary"): + node.query(f"CREATE DICTIONARY {dict_name}(x Int32, y Int32) PRIMARY KEY x LAYOUT(FLAT()) SOURCE(CLICKHOUSE()) LIFETIME(0)") + + with When("I attempt to detach a dictionary without privilege"): + node.query(f"DETACH DICTIONARY {dict_name}", settings = [("user", user_name)], exitcode=exitcode, message=message) + + finally: + with Finally("I drop the dictionary"): + node.query(f"DROP DICTIONARY IF EXISTS {dict_name}") + + with Scenario("user with privilege", setup=instrument_clickhouse_server_log): + dict_name = f"dict_{getuid()}" + + try: + with Given("I have a dictionary"): + node.query(f"CREATE DICTIONARY {dict_name}(x Int32, y Int32) PRIMARY KEY x LAYOUT(FLAT()) SOURCE(CLICKHOUSE()) LIFETIME(0)") + + with When("I grant drop dictionary privilege"): + node.query(f"GRANT DROP DICTIONARY ON {dict_name} TO {grant_target_name}") + + with Then("I attempt to detach a dictionary"): + node.query(f"DETACH DICTIONARY {dict_name}", settings = [("user", user_name)]) + + finally: + with Finally("I drop the dictionary"): + node.query(f"DROP DICTIONARY IF EXISTS {dict_name}") + + with Scenario("user with revoked privilege", setup=instrument_clickhouse_server_log): + dict_name = f"dict_{getuid()}" + + try: + with Given("I have a dictionary"): + node.query(f"CREATE DICTIONARY {dict_name}(x Int32, y Int32) PRIMARY KEY x LAYOUT(FLAT()) SOURCE(CLICKHOUSE()) LIFETIME(0)") + + with When("I grant the drop dictionary privilege"): + node.query(f"GRANT DROP DICTIONARY ON {dict_name} TO {grant_target_name}") + + with And("I revoke the drop dictionary privilege"): + node.query(f"REVOKE DROP DICTIONARY ON {dict_name} FROM {grant_target_name}") + + with Then("I attempt to detach a dictionary"): + node.query(f"DETACH DICTIONARY {dict_name}", settings = [("user", user_name)], exitcode=exitcode, message=message) + + finally: + with Finally("I drop the dictionary"): + node.query(f"DROP DICTIONARY IF EXISTS {dict_name}") + +@TestFeature +@Requirements( + RQ_SRS_006_RBAC_Privileges_DetachDictionary("1.0"), +) +@Name("detach dictionary") +def feature(self, node="clickhouse1", stress=None, parallel=None): + """Check the RBAC functionality of DETACH DICTIONARY. + """ + self.context.node = self.context.cluster.node(node) + + if parallel is not None: + self.context.parallel = parallel + if stress is not None: + self.context.stress = stress + + with Suite(test=privilege_granted_directly_or_via_role): + privilege_granted_directly_or_via_role() diff --git a/tests/testflows/rbac/tests/privileges/detach/detach_table.py b/tests/testflows/rbac/tests/privileges/detach/detach_table.py new file mode 100644 index 00000000000..07f21336a40 --- /dev/null +++ b/tests/testflows/rbac/tests/privileges/detach/detach_table.py @@ -0,0 +1,107 @@ +from rbac.requirements import * +from rbac.helper.common import * +import rbac.helper.errors as errors + +@TestSuite +@Requirements( + RQ_SRS_006_RBAC_Privileges_DropTable_Access("1.0"), +) +def privilege_granted_directly_or_via_role(self, node=None): + """Check that user is only able to execute DETACH TABLE when they have required privilege, either directly or via role. + """ + role_name = f"role_{getuid()}" + user_name = f"user_{getuid()}" + + if node is None: + node = self.context.node + + with Suite("user with direct privilege", setup=instrument_clickhouse_server_log): + with user(node, user_name): + + with When(f"I run checks that {user_name} is only able to execute DETACH TABLE with required privileges"): + privilege_check(grant_target_name=user_name, user_name=user_name, node=node) + + with Suite("user with privilege via role", setup=instrument_clickhouse_server_log): + with user(node, user_name), role(node, role_name): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + with And(f"I run checks that {user_name} with {role_name} is only able to execute DETACH TABLE with required privileges"): + privilege_check(grant_target_name=role_name, user_name=user_name, node=node) + +def privilege_check(grant_target_name, user_name, node=None): + """Run scenarios to check the user's access with different privileges. + """ + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + with Scenario("user without privilege", setup=instrument_clickhouse_server_log): + table_name = f"table_{getuid()}" + + try: + with Given("I have a table"): + node.query(f"CREATE TABLE {table_name} (x Int8) ENGINE=Memory") + + with When("I attempt to detach a table without privilege"): + node.query(f"DETACH TABLE {table_name}", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + + with Scenario("user with privilege", setup=instrument_clickhouse_server_log): + table_name = f"table_{getuid()}" + + try: + with Given("I have a table"): + node.query(f"CREATE TABLE {table_name} (x Int8) ENGINE=Memory") + + with When("I grant drop table privilege"): + node.query(f"GRANT DROP TABLE ON *.* TO {grant_target_name}") + + with Then("I attempt to detach a table"): + node.query(f"DETACH TABLE {table_name}", settings = [("user", user_name)]) + + finally: + with Finally("I drop the table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + + with Scenario("user with revoked privilege", setup=instrument_clickhouse_server_log): + table_name = f"table_{getuid()}" + + try: + with Given("I have a table"): + node.query(f"CREATE TABLE {table_name} (x Int8) ENGINE=Memory") + + with When("I grant the drop table privilege"): + node.query(f"GRANT DROP TABLE ON *.* TO {grant_target_name}") + + with And("I revoke the drop table privilege"): + node.query(f"REVOKE DROP TABLE ON *.* FROM {grant_target_name}") + + with Then("I attempt to detach a table"): + node.query(f"DETACH TABLE {table_name}", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + +@TestFeature +@Requirements( + RQ_SRS_006_RBAC_Privileges_DetachTable("1.0"), +) +@Name("detach table") +def feature(self, node="clickhouse1", stress=None, parallel=None): + """Check the RBAC functionality of DETACH TABLE. + """ + self.context.node = self.context.cluster.node(node) + + if parallel is not None: + self.context.parallel = parallel + if stress is not None: + self.context.stress = stress + + with Suite(test=privilege_granted_directly_or_via_role): + privilege_granted_directly_or_via_role() diff --git a/tests/testflows/rbac/tests/privileges/detach/detach_view.py b/tests/testflows/rbac/tests/privileges/detach/detach_view.py new file mode 100644 index 00000000000..667a5f8975d --- /dev/null +++ b/tests/testflows/rbac/tests/privileges/detach/detach_view.py @@ -0,0 +1,107 @@ +from rbac.requirements import * +from rbac.helper.common import * +import rbac.helper.errors as errors + +@TestSuite +@Requirements( + RQ_SRS_006_RBAC_Privileges_DropView_Access("1.0"), +) +def privilege_granted_directly_or_via_role(self, node=None): + """Check that user is only able to execute DETACH VIEW when they have required privilege, either directly or via role. + """ + role_name = f"role_{getuid()}" + user_name = f"user_{getuid()}" + + if node is None: + node = self.context.node + + with Suite("user with direct privilege", setup=instrument_clickhouse_server_log): + with user(node, user_name): + + with When(f"I run checks that {user_name} is only able to execute DETACH VIEW with required privileges"): + privilege_check(grant_target_name=user_name, user_name=user_name, node=node) + + with Suite("user with privilege via role", setup=instrument_clickhouse_server_log): + with user(node, user_name), role(node, role_name): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + with And(f"I run checks that {user_name} with {role_name} is only able to execute DETACH VIEW with required privileges"): + privilege_check(grant_target_name=role_name, user_name=user_name, node=node) + +def privilege_check(grant_target_name, user_name, node=None): + """Run scenarios to check the user's access with different privileges. + """ + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + with Scenario("user without privilege", setup=instrument_clickhouse_server_log): + view_name = f"view_{getuid()}" + + try: + with Given("I have a view"): + node.query(f"CREATE VIEW {view_name} AS SELECT 1") + + with When("I attempt to drop a view without privilege"): + node.query(f"DETACH VIEW {view_name}", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the view"): + node.query(f"DROP VIEW IF EXISTS {view_name}") + + with Scenario("user with privilege", setup=instrument_clickhouse_server_log): + view_name = f"view_{getuid()}" + + try: + with Given("I have a view"): + node.query(f"CREATE VIEW {view_name} AS SELECT 1") + + with When("I grant drop view privilege"): + node.query(f"GRANT DROP VIEW ON {view_name} TO {grant_target_name}") + + with Then("I attempt to drop a view"): + node.query(f"DETACH VIEW {view_name}", settings = [("user", user_name)]) + + finally: + with Finally("I drop the view"): + node.query(f"DROP VIEW IF EXISTS {view_name}") + + with Scenario("user with revoked privilege", setup=instrument_clickhouse_server_log): + view_name = f"view_{getuid()}" + + try: + with Given("I have a view"): + node.query(f"CREATE VIEW {view_name} AS SELECT 1") + + with When("I grant the drop view privilege"): + node.query(f"GRANT DROP VIEW ON {view_name} TO {grant_target_name}") + + with And("I revoke the drop view privilege"): + node.query(f"REVOKE DROP VIEW ON {view_name} FROM {grant_target_name}") + + with Then("I attempt to drop a view"): + node.query(f"DETACH VIEW {view_name}", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the view"): + node.query(f"DROP VIEW IF EXISTS {view_name}") + +@TestFeature +@Requirements( + RQ_SRS_006_RBAC_Privileges_DetachView("1.0"), +) +@Name("detach view") +def feature(self, node="clickhouse1", stress=None, parallel=None): + """Check the RBAC functionality of DETACH VIEW. + """ + self.context.node = self.context.cluster.node(node) + + if parallel is not None: + self.context.parallel = parallel + if stress is not None: + self.context.stress = stress + + with Suite(test=privilege_granted_directly_or_via_role): + privilege_granted_directly_or_via_role() diff --git a/tests/testflows/rbac/tests/privileges/distributed_table.py b/tests/testflows/rbac/tests/privileges/distributed_table.py index 94b27465191..39c95c73f37 100755 --- a/tests/testflows/rbac/tests/privileges/distributed_table.py +++ b/tests/testflows/rbac/tests/privileges/distributed_table.py @@ -82,7 +82,7 @@ def create_without_privilege(self, node=None): table0_name = f"table0_{getuid()}" table1_name = f"table1_{getuid()}" exitcode, message = errors.not_enough_privileges(name=f"{user_name}") - cluster = self.context.cluster + cluster = self.context.cluster_name if node is None: node = self.context.node @@ -127,7 +127,7 @@ def create_with_privilege(self, user_name, grant_target_name, node=None): table1_name = f"table1_{getuid()}" exitcode, message = errors.not_enough_privileges(name=f"{user_name}") - cluster = self.context.cluster + cluster = self.context.cluster_name if node is None: node = self.context.node @@ -183,7 +183,7 @@ def select_without_privilege(self, node=None): table1_name = f"table1_{getuid()}" exitcode, message = errors.not_enough_privileges(name=f"{user_name}") - cluster = self.context.cluster + cluster = self.context.cluster_name if node is None: node = self.context.node @@ -239,7 +239,7 @@ def select_with_privilege(self, user_name, grant_target_name, node=None): table1_name = f"table1_{getuid()}" exitcode, message = errors.not_enough_privileges(name=f"{user_name}") - cluster = self.context.cluster + cluster = self.context.cluster_name if node is None: node = self.context.node @@ -297,7 +297,7 @@ def insert_without_privilege(self, node=None): table1_name = f"table1_{getuid()}" exitcode, message = errors.not_enough_privileges(name=f"{user_name}") - cluster = self.context.cluster + cluster = self.context.cluster_name if node is None: node = self.context.node @@ -353,7 +353,7 @@ def insert_with_privilege(self, user_name, grant_target_name, node=None): table1_name = f"table1_{getuid()}" exitcode, message = errors.not_enough_privileges(name=f"{user_name}") - cluster = self.context.cluster + cluster = self.context.cluster_name if node is None: node = self.context.node @@ -444,7 +444,7 @@ def select_with_table_on_materialized_view(self, user_name, grant_target_name, n view_name = f"view_{getuid()}" exitcode, message = errors.not_enough_privileges(name=f"{user_name}") - cluster = self.context.cluster + cluster = self.context.cluster_name if node is None: node = self.context.node @@ -519,7 +519,7 @@ def select_with_table_on_source_table_of_materialized_view(self, user_name, gran view_name = f"view_{getuid()}" exitcode, message = errors.not_enough_privileges(name=f"{user_name}") - cluster = self.context.cluster + cluster = self.context.cluster_name if node is None: node = self.context.node @@ -594,7 +594,7 @@ def select_with_table_on_distributed_table(self, user_name, grant_target_name, n table2_name = f"table1_{getuid()}" exitcode, message = errors.not_enough_privileges(name=f"{user_name}") - cluster = self.context.cluster + cluster = self.context.cluster_name if node is None: node = self.context.node @@ -663,7 +663,7 @@ def insert_with_table_on_materialized_view(self, user_name, grant_target_name, n view_name = f"view_{getuid()}" exitcode, message = errors.not_enough_privileges(name=f"{user_name}") - cluster = self.context.cluster + cluster = self.context.cluster_name if node is None: node = self.context.node @@ -740,7 +740,7 @@ def insert_with_table_on_source_table_of_materialized_view(self, user_name, gran view_name = f"view_{getuid()}" exitcode, message = errors.not_enough_privileges(name=f"{user_name}") - cluster = self.context.cluster + cluster = self.context.cluster_name if node is None: node = self.context.node @@ -815,7 +815,7 @@ def insert_with_table_on_distributed_table(self, user_name, grant_target_name, n table2_name = f"table1_{getuid()}" exitcode, message = errors.not_enough_privileges(name=f"{user_name}") - cluster = self.context.cluster + cluster = self.context.cluster_name if node is None: node = self.context.node @@ -967,7 +967,7 @@ def multiple_node_user(self, node=None): def cluster_tests(self, cluster, node=None): """Scenarios to be run on different cluster configurations. """ - self.context.cluster = cluster + self.context.cluster_name = cluster tasks = [] pool = Pool(3) diff --git a/tests/testflows/rbac/tests/privileges/drop/__init__.py b/tests/testflows/rbac/tests/privileges/drop/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/testflows/rbac/tests/privileges/drop/drop_database.py b/tests/testflows/rbac/tests/privileges/drop/drop_database.py new file mode 100644 index 00000000000..364399dace5 --- /dev/null +++ b/tests/testflows/rbac/tests/privileges/drop/drop_database.py @@ -0,0 +1,106 @@ +from rbac.requirements import * +from rbac.helper.common import * +import rbac.helper.errors as errors + +@TestSuite +@Requirements( + RQ_SRS_006_RBAC_Privileges_DropDatabase_Access("1.0"), +) +def privilege_granted_directly_or_via_role(self, node=None): + """Check that user is only able to execute DROP DATABASE when they have required privilege, either directly or via role. + """ + role_name = f"role_{getuid()}" + user_name = f"user_{getuid()}" + + if node is None: + node = self.context.node + + with Suite("user with direct privilege", setup=instrument_clickhouse_server_log): + with user(node, user_name): + + with When(f"I run checks that {user_name} is only able to execute DROP DATABASE with required privileges"): + privilege_check(grant_target_name=user_name, user_name=user_name, node=node) + + with Suite("user with privilege via role", setup=instrument_clickhouse_server_log): + with user(node, user_name), role(node, role_name): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + with And(f"I run checks that {user_name} with {role_name} is only able to execute DROP DATABASE with required privileges"): + privilege_check(grant_target_name=role_name, user_name=user_name, node=node) + +def privilege_check(grant_target_name, user_name, node=None): + """Run scenarios to check the user's access with different privileges. + """ + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + with Scenario("user without privilege", setup=instrument_clickhouse_server_log): + db_name = f"db_{getuid()}" + + try: + with Given("I have a database"): + node.query(f"CREATE DATABASE {db_name}") + + with When("I attempt to drop the database"): + node.query(f"DROP DATABASE {db_name}", settings = [("user", user_name)], + exitcode=exitcode, message=message) + finally: + with Finally("I drop the database"): + node.query(f"DROP DATABASE IF EXISTS {db_name}") + + with Scenario("user with privilege", setup=instrument_clickhouse_server_log): + db_name = f"db_{getuid()}" + + try: + with Given("I have a database"): + node.query(f"CREATE DATABASE {db_name}") + + with When("I grant drop database privilege"): + node.query(f"GRANT DROP DATABASE ON {db_name}.* TO {grant_target_name}") + + with Then("I attempt to drop a database"): + node.query(f"DROP DATABASE {db_name}", settings = [("user", user_name)]) + + finally: + with Finally("I drop the database"): + node.query(f"DROP DATABASE IF EXISTS {db_name}") + + with Scenario("user with revoked privilege", setup=instrument_clickhouse_server_log): + db_name = f"db_{getuid()}" + + try: + with Given("I have a database"): + node.query(f"CREATE DATABASE {db_name}") + + with When("I grant the drop database privilege"): + node.query(f"GRANT DROP DATABASE ON {db_name}.* TO {grant_target_name}") + + with And("I revoke the drop database privilege"): + node.query(f"REVOKE DROP DATABASE ON {db_name}.* FROM {grant_target_name}") + + with Then("I attempt to drop a database"): + node.query(f"DROP DATABASE {db_name}", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the database"): + node.query(f"DROP DATABASE IF EXISTS {db_name}") + +@TestFeature +@Requirements( + RQ_SRS_006_RBAC_Privileges_DropDatabase("1.0"), +) +@Name("drop database") +def feature(self, node="clickhouse1", stress=None, parallel=None): + """Check the RBAC functionality of DROP DATABASE. + """ + self.context.node = self.context.cluster.node(node) + + if parallel is not None: + self.context.parallel = parallel + if stress is not None: + self.context.stress = stress + + with Suite(test=privilege_granted_directly_or_via_role): + privilege_granted_directly_or_via_role() diff --git a/tests/testflows/rbac/tests/privileges/drop/drop_dictionary.py b/tests/testflows/rbac/tests/privileges/drop/drop_dictionary.py new file mode 100644 index 00000000000..b73b3c6629b --- /dev/null +++ b/tests/testflows/rbac/tests/privileges/drop/drop_dictionary.py @@ -0,0 +1,102 @@ +from rbac.requirements import * +from rbac.helper.common import * +import rbac.helper.errors as errors + +@TestSuite +@Requirements( + RQ_SRS_006_RBAC_Privileges_DropDictionary_Access("1.0"), +) +def privilege_granted_directly_or_via_role(self, node=None): + """Check that user is only able to execute DROP DICTIONARY when they have required privilege, either directly or via role. + """ + role_name = f"role_{getuid()}" + user_name = f"user_{getuid()}" + + if node is None: + node = self.context.node + + with Suite("user with direct privilege", setup=instrument_clickhouse_server_log): + with user(node, user_name): + with When(f"I run checks that {user_name} is only able to execute DROP DICTIONARY with required privileges"): + privilege_check(grant_target_name=user_name, user_name=user_name, node=node) + + with Suite("user with privilege via role", setup=instrument_clickhouse_server_log): + with user(node, user_name), role(node, role_name): + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + with And(f"I run checks that {user_name} with {role_name} is only able to execute DROP DICTIONARY with required privileges"): + privilege_check(grant_target_name=role_name, user_name=user_name, node=node) + +def privilege_check(grant_target_name, user_name, node=None): + """Run scenarios to check the user's access with different privileges. + """ + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + with Scenario("user without privilege", setup=instrument_clickhouse_server_log): + dict_name = f"dict_{getuid()}" + + try: + with Given("I have a dictionary"): + node.query(f"CREATE DICTIONARY {dict_name}(x Int32, y Int32) PRIMARY KEY x LAYOUT(FLAT()) SOURCE(CLICKHOUSE()) LIFETIME(0)") + + with When("I attempt to drop a dictionary without privilege"): + node.query(f"DROP DICTIONARY {dict_name}", settings = [("user", user_name)], exitcode=exitcode, message=message) + + finally: + with Finally("I drop the dictionary"): + node.query(f"DROP DICTIONARY IF EXISTS {dict_name}") + + with Scenario("user with privilege", setup=instrument_clickhouse_server_log): + dict_name = f"dict_{getuid()}" + + try: + with Given("I have a dictionary"): + node.query(f"CREATE DICTIONARY {dict_name}(x Int32, y Int32) PRIMARY KEY x LAYOUT(FLAT()) SOURCE(CLICKHOUSE()) LIFETIME(0)") + + with When("I grant drop dictionary privilege"): + node.query(f"GRANT DROP DICTIONARY ON {dict_name} TO {grant_target_name}") + + with Then("I attempt to drop aa dictionary"): + node.query(f"DROP DICTIONARY {dict_name}", settings = [("user", user_name)]) + + finally: + with Finally("I drop the dictionary"): + node.query(f"DROP DICTIONARY IF EXISTS {dict_name}") + + with Scenario("user with revoked privilege", setup=instrument_clickhouse_server_log): + dict_name = f"dict_{getuid()}" + + try: + with Given("I have a dictionary"): + node.query(f"CREATE DICTIONARY {dict_name}(x Int32, y Int32) PRIMARY KEY x LAYOUT(FLAT()) SOURCE(CLICKHOUSE()) LIFETIME(0)") + + with When("I grant the drop dictionary privilege"): + node.query(f"GRANT DROP DICTIONARY ON {dict_name} TO {grant_target_name}") + + with And("I revoke the drop dictionary privilege"): + node.query(f"REVOKE DROP DICTIONARY ON {dict_name} FROM {grant_target_name}") + + with Then("I attempt to drop a dictionary"): + node.query(f"DROP DICTIONARY {dict_name}", settings = [("user", user_name)], exitcode=exitcode, message=message) + + finally: + with Finally("I drop the dictionary"): + node.query(f"DROP DICTIONARY IF EXISTS {dict_name}") + +@TestFeature +@Requirements( + RQ_SRS_006_RBAC_Privileges_DropDictionary("1.0"), +) +@Name("drop dictionary") +def feature(self, node="clickhouse1", stress=None, parallel=None): + """Check the RBAC functionality of DROP DICTIONARY. + """ + self.context.node = self.context.cluster.node(node) + + if parallel is not None: + self.context.parallel = parallel + if stress is not None: + self.context.stress = stress + + with Suite(test=privilege_granted_directly_or_via_role): + privilege_granted_directly_or_via_role() diff --git a/tests/testflows/rbac/tests/privileges/drop/drop_table.py b/tests/testflows/rbac/tests/privileges/drop/drop_table.py new file mode 100644 index 00000000000..4694f16d12b --- /dev/null +++ b/tests/testflows/rbac/tests/privileges/drop/drop_table.py @@ -0,0 +1,106 @@ +from rbac.requirements import * +from rbac.helper.common import * +import rbac.helper.errors as errors + +@TestSuite +@Requirements( + RQ_SRS_006_RBAC_Privileges_DropTable_Access("1.0"), +) +def privilege_granted_directly_or_via_role(self, node=None): + """Check that user is only able to execute DROP TABLE when they have required privilege, either directly or via role. + """ + role_name = f"role_{getuid()}" + user_name = f"user_{getuid()}" + + if node is None: + node = self.context.node + + with Suite("user with direct privilege", setup=instrument_clickhouse_server_log): + with user(node, user_name): + + with When(f"I run checks that {user_name} is only able to execute DROP TABLE with required privileges"): + privilege_check(grant_target_name=user_name, user_name=user_name, node=node) + + with Suite("user with privilege via role", setup=instrument_clickhouse_server_log): + with user(node, user_name), role(node, role_name): + + with When("I grant the role to the user"): + node.query(f"GRANT {role_name} TO {user_name}") + + with And(f"I run checks that {user_name} with {role_name} is only able to execute DROP TABLE with required privileges"): + privilege_check(grant_target_name=role_name, user_name=user_name, node=node) + +def privilege_check(grant_target_name, user_name, node=None): + """Run scenarios to check the user's access with different privileges. + """ + exitcode, message = errors.not_enough_privileges(name=f"{user_name}") + + with Scenario("user without privilege", setup=instrument_clickhouse_server_log): + table_name = f"table_{getuid()}" + + try: + with Given("I have a table"): + node.query(f"CREATE TABLE {table_name} (x Int8) ENGINE=Memory") + + with When("I attempt to drop a table without privilege"): + node.query(f"DROP TABLE {table_name}", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + + with Scenario("user with privilege", setup=instrument_clickhouse_server_log): + table_name = f"table_{getuid()}" + + try: + with Given("I have a table"): + node.query(f"CREATE TABLE {table_name} (x Int8) ENGINE=Memory") + + with When("I grant drop table privilege"): + node.query(f"GRANT DROP TABLE ON *.* TO {grant_target_name}") + + with Then("I attempt to drop a table"): + node.query(f"DROP TABLE {table_name}", settings = [("user", user_name)]) + + finally: + with Finally("I drop the table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + + with Scenario("user with revoked privilege", setup=instrument_clickhouse_server_log): + table_name = f"table_{getuid()}" + try: + with Given("I have a table"): + node.query(f"CREATE TABLE {table_name} (x Int8) ENGINE=Memory") + + with When("I grant the drop table privilege"): + node.query(f"GRANT DROP TABLE ON *.* TO {grant_target_name}") + + with And("I revoke the drop table privilege"): + node.query(f"REVOKE DROP TABLE ON *.* FROM {grant_target_name}") + + with Then("I attempt to drop a table"): + node.query(f"DROP TABLE {table_name}", settings = [("user", user_name)], + exitcode=exitcode, message=message) + + finally: + with Finally("I drop the table"): + node.query(f"DROP TABLE IF EXISTS {table_name}") + +@TestFeature +@Requirements( + RQ_SRS_006_RBAC_Privileges_DropTable("1.0"), +) +@Name("drop table") +def feature(self, node="clickhouse1", stress=None, parallel=None): + """Check the RBAC functionality of DROP TABLE. + """ + self.context.node = self.context.cluster.node(node) + + if parallel is not None: + self.context.parallel = parallel + if stress is not None: + self.context.stress = stress + + with Suite(test=privilege_granted_directly_or_via_role): + privilege_granted_directly_or_via_role() diff --git a/tests/testflows/rbac/tests/privileges/feature.py b/tests/testflows/rbac/tests/privileges/feature.py index bc63824d322..baf465825f1 100755 --- a/tests/testflows/rbac/tests/privileges/feature.py +++ b/tests/testflows/rbac/tests/privileges/feature.py @@ -16,6 +16,8 @@ def feature(self): run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.show_tables", "feature"), flags=TE), {}) run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.public_tables", "feature"), flags=TE), {}) run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.distributed_table", "feature"), flags=TE), {}) + run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.grant_option", "feature"), flags=TE), {}) + run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.alter.alter_column", "feature"), flags=TE), {}) run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.alter.alter_index", "feature"), flags=TE), {}) run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.alter.alter_constraint", "feature"), flags=TE), {}) @@ -26,7 +28,25 @@ def feature(self): run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.alter.alter_freeze", "feature"), flags=TE), {}) run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.alter.alter_fetch", "feature"), flags=TE), {}) run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.alter.alter_move", "feature"), flags=TE), {}) - run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.grant_option", "feature"), flags=TE), {}) + + run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.create.create_database", "feature"), flags=TE), {}) + run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.create.create_dictionary", "feature"), flags=TE), {}) + run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.create.create_temp_table", "feature"), flags=TE), {}) + run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.create.create_table", "feature"), flags=TE), {}) + + run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.attach.attach_database", "feature"), flags=TE), {}) + run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.attach.attach_dictionary", "feature"), flags=TE), {}) + run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.attach.attach_temp_table", "feature"), flags=TE), {}) + run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.attach.attach_table", "feature"), flags=TE), {}) + + run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.drop.drop_database", "feature"), flags=TE), {}) + run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.drop.drop_dictionary", "feature"), flags=TE), {}) + run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.drop.drop_table", "feature"), flags=TE), {}) + + run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.detach.detach_database", "feature"), flags=TE), {}) + run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.detach.detach_dictionary", "feature"), flags=TE), {}) + run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.detach.detach_table", "feature"), flags=TE), {}) + run_scenario(pool, tasks, Feature(test=load("rbac.tests.privileges.detach.detach_view", "feature"), flags=TE), {}) finally: join(tasks) finally: From 026f7e0a27f0a9c6a89314e5aff9e2a16f5dbf99 Mon Sep 17 00:00:00 2001 From: Anton Ivashkin Date: Fri, 13 Nov 2020 19:31:51 +0300 Subject: [PATCH 126/425] Add 's3_max_redirects' setting --- src/Core/Settings.h | 1 + src/Disks/S3/registerDiskS3.cpp | 3 ++- src/IO/S3/PocoHTTPClient.cpp | 10 +++++++--- src/IO/S3/PocoHTTPClient.h | 10 +++++++++- src/IO/S3Common.cpp | 15 +++++++++------ src/IO/S3Common.h | 10 +++++++--- src/Storages/StorageS3.cpp | 3 ++- 7 files changed, 37 insertions(+), 15 deletions(-) diff --git a/src/Core/Settings.h b/src/Core/Settings.h index 580756361b1..ede3e6dbe2e 100644 --- a/src/Core/Settings.h +++ b/src/Core/Settings.h @@ -65,6 +65,7 @@ class IColumn; M(UInt64, distributed_connections_pool_size, DBMS_DEFAULT_DISTRIBUTED_CONNECTIONS_POOL_SIZE, "Maximum number of connections with one remote server in the pool.", 0) \ M(UInt64, connections_with_failover_max_tries, DBMS_CONNECTION_POOL_WITH_FAILOVER_DEFAULT_MAX_TRIES, "The maximum number of attempts to connect to replicas.", 0) \ M(UInt64, s3_min_upload_part_size, 512*1024*1024, "The minimum size of part to upload during multipart upload to S3.", 0) \ + M(UInt64, s3_max_redirects, 10, "Max number of S3 redirects hops allowed.", 0) \ M(Bool, extremes, false, "Calculate minimums and maximums of the result columns. They can be output in JSON-formats.", IMPORTANT) \ M(Bool, use_uncompressed_cache, true, "Whether to use the cache of uncompressed blocks.", 0) \ M(Bool, replace_running_query, false, "Whether the running request should be canceled with the same id as the new one.", 0) \ diff --git a/src/Disks/S3/registerDiskS3.cpp b/src/Disks/S3/registerDiskS3.cpp index 862fd388476..1bdd86f9f57 100644 --- a/src/Disks/S3/registerDiskS3.cpp +++ b/src/Disks/S3/registerDiskS3.cpp @@ -132,7 +132,8 @@ void registerDiskS3(DiskFactory & factory) uri.is_virtual_hosted_style, config.getString(config_prefix + ".access_key_id", ""), config.getString(config_prefix + ".secret_access_key", ""), - context.getRemoteHostFilter()); + context.getRemoteHostFilter(), + context.getGlobalContext()); String metadata_path = config.getString(config_prefix + ".metadata_path", context.getPath() + "disks/" + name + "/"); diff --git a/src/IO/S3/PocoHTTPClient.cpp b/src/IO/S3/PocoHTTPClient.cpp index 49ccb6dc1b3..f55d95ae160 100644 --- a/src/IO/S3/PocoHTTPClient.cpp +++ b/src/IO/S3/PocoHTTPClient.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -48,9 +49,11 @@ namespace DB::S3 PocoHTTPClientConfiguration::PocoHTTPClientConfiguration( const Aws::Client::ClientConfiguration & cfg, - const RemoteHostFilter & remote_host_filter_) + const RemoteHostFilter & remote_host_filter_, + const Context & global_context_) : Aws::Client::ClientConfiguration(cfg) , remote_host_filter(remote_host_filter_) + , global_context(global_context_) { } @@ -81,6 +84,7 @@ PocoHTTPClient::PocoHTTPClient(const PocoHTTPClientConfiguration & clientConfigu Poco::Timespan(clientConfiguration.httpRequestTimeoutMs * 1000) /// receive timeout. )) , remote_host_filter(clientConfiguration.remote_host_filter) + , global_context(clientConfiguration.global_context) { } @@ -155,10 +159,10 @@ void PocoHTTPClient::makeRequestInternal( ProfileEvents::increment(select_metric(S3MetricType::Count)); - static constexpr int max_redirect_attempts = 10; + unsigned int max_redirect_attempts = global_context.getSettingsRef().s3_max_redirects; try { - for (int attempt = 0; attempt < max_redirect_attempts; ++attempt) + for (unsigned int attempt = 0; attempt < max_redirect_attempts; ++attempt) { Poco::URI poco_uri(uri); diff --git a/src/IO/S3/PocoHTTPClient.h b/src/IO/S3/PocoHTTPClient.h index 25055754519..385a5a22e48 100644 --- a/src/IO/S3/PocoHTTPClient.h +++ b/src/IO/S3/PocoHTTPClient.h @@ -11,14 +11,21 @@ namespace Aws::Http::Standard class StandardHttpResponse; } +namespace DB +{ +class Context; +} + namespace DB::S3 { struct PocoHTTPClientConfiguration : public Aws::Client::ClientConfiguration { const RemoteHostFilter & remote_host_filter; + const Context & global_context; - PocoHTTPClientConfiguration(const Aws::Client::ClientConfiguration & cfg, const RemoteHostFilter & remote_host_filter_); + PocoHTTPClientConfiguration(const Aws::Client::ClientConfiguration & cfg, const RemoteHostFilter & remote_host_filter_, + const Context & global_context_); void updateSchemeAndRegion(); }; @@ -48,6 +55,7 @@ private: std::function per_request_configuration; ConnectionTimeouts timeouts; const RemoteHostFilter & remote_host_filter; + const Context & global_context; }; } diff --git a/src/IO/S3Common.cpp b/src/IO/S3Common.cpp index 1304b6b5054..a69349a609b 100644 --- a/src/IO/S3Common.cpp +++ b/src/IO/S3Common.cpp @@ -164,14 +164,15 @@ namespace S3 bool is_virtual_hosted_style, const String & access_key_id, const String & secret_access_key, - const RemoteHostFilter & remote_host_filter) + const RemoteHostFilter & remote_host_filter, + const Context & global_context) { Aws::Client::ClientConfiguration cfg; if (!endpoint.empty()) cfg.endpointOverride = endpoint; - return create(cfg, is_virtual_hosted_style, access_key_id, secret_access_key, remote_host_filter); + return create(cfg, is_virtual_hosted_style, access_key_id, secret_access_key, remote_host_filter, global_context); } std::shared_ptr ClientFactory::create( // NOLINT @@ -179,11 +180,12 @@ namespace S3 bool is_virtual_hosted_style, const String & access_key_id, const String & secret_access_key, - const RemoteHostFilter & remote_host_filter) + const RemoteHostFilter & remote_host_filter, + const Context & global_context) { Aws::Auth::AWSCredentials credentials(access_key_id, secret_access_key); - PocoHTTPClientConfiguration client_configuration(cfg, remote_host_filter); + PocoHTTPClientConfiguration client_configuration(cfg, remote_host_filter, global_context); client_configuration.updateSchemeAndRegion(); @@ -201,9 +203,10 @@ namespace S3 const String & access_key_id, const String & secret_access_key, HeaderCollection headers, - const RemoteHostFilter & remote_host_filter) + const RemoteHostFilter & remote_host_filter, + const Context & global_context) { - PocoHTTPClientConfiguration client_configuration({}, remote_host_filter); + PocoHTTPClientConfiguration client_configuration({}, remote_host_filter, global_context); if (!endpoint.empty()) client_configuration.endpointOverride = endpoint; diff --git a/src/IO/S3Common.h b/src/IO/S3Common.h index d411c903676..ff422b5b511 100644 --- a/src/IO/S3Common.h +++ b/src/IO/S3Common.h @@ -19,6 +19,7 @@ namespace DB class RemoteHostFilter; struct HttpHeader; using HeaderCollection = std::vector; + class Context; } namespace DB::S3 @@ -36,14 +37,16 @@ public: bool is_virtual_hosted_style, const String & access_key_id, const String & secret_access_key, - const RemoteHostFilter & remote_host_filter); + const RemoteHostFilter & remote_host_filter, + const Context & global_context); std::shared_ptr create( Aws::Client::ClientConfiguration & cfg, bool is_virtual_hosted_style, const String & access_key_id, const String & secret_access_key, - const RemoteHostFilter & remote_host_filter); + const RemoteHostFilter & remote_host_filter, + const Context & global_context); std::shared_ptr create( const String & endpoint, @@ -51,7 +54,8 @@ public: const String & access_key_id, const String & secret_access_key, HeaderCollection headers, - const RemoteHostFilter & remote_host_filter); + const RemoteHostFilter & remote_host_filter, + const Context & global_context); private: ClientFactory(); diff --git a/src/Storages/StorageS3.cpp b/src/Storages/StorageS3.cpp index ce9ebbd53b3..caebdf7ccd0 100644 --- a/src/Storages/StorageS3.cpp +++ b/src/Storages/StorageS3.cpp @@ -218,7 +218,8 @@ StorageS3::StorageS3( credentials = Aws::Auth::AWSCredentials(std::move(settings.access_key_id), std::move(settings.secret_access_key)); client = S3::ClientFactory::instance().create( - uri_.endpoint, uri_.is_virtual_hosted_style, access_key_id_, secret_access_key_, std::move(settings.headers), context_.getRemoteHostFilter()); + uri_.endpoint, uri_.is_virtual_hosted_style, access_key_id_, secret_access_key_, std::move(settings.headers), + context_.getRemoteHostFilter(), context_.getGlobalContext()); } From 151f84d845c7f77001f35409cdce77980ab58a25 Mon Sep 17 00:00:00 2001 From: MyroTk Date: Fri, 13 Nov 2020 19:44:32 +0100 Subject: [PATCH 127/425] Updating XFails --- tests/testflows/rbac/regression.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/testflows/rbac/regression.py b/tests/testflows/rbac/regression.py index c34e25ce918..70728aa579d 100755 --- a/tests/testflows/rbac/regression.py +++ b/tests/testflows/rbac/regression.py @@ -96,11 +96,11 @@ xfails = { [(Fail, issue_16403)], "privileges/alter move/:/:/:/:/user with revoked ALTER MOVE PARTITION privilege/": [(Fail, issue_16403)], - "/rbac/privileges/create table/create with join query privilege granted directly or via role/:": + "privileges/create table/create with join query privilege granted directly or via role/:": [(Fail, issue_14149)], - "/rbac/privileges/create table/create with join union subquery privilege granted directly or via role/:": + "privileges/create table/create with join union subquery privilege granted directly or via role/:": [(Fail, issue_14149)], - "/rbac/privileges/create table/create with nested tables privilege granted directly or via role/:": + "privileges/create table/create with nested tables privilege granted directly or via role/:": [(Fail, issue_14149)], } From ca8e4b1607b693e7299fef685bcf9b242358c633 Mon Sep 17 00:00:00 2001 From: vdimir Date: Thu, 12 Nov 2020 21:47:10 +0300 Subject: [PATCH 128/425] Minor fixes of ip dict --- src/Dictionaries/TrieDictionary.cpp | 29 ++++++++++++++--------------- tests/performance/ip_trie.xml | 23 +++++++++-------------- 2 files changed, 23 insertions(+), 29 deletions(-) diff --git a/src/Dictionaries/TrieDictionary.cpp b/src/Dictionaries/TrieDictionary.cpp index 18e0b1e9bb1..6a68d44e18f 100644 --- a/src/Dictionaries/TrieDictionary.cpp +++ b/src/Dictionaries/TrieDictionary.cpp @@ -50,7 +50,7 @@ namespace static void validateKeyTypes(const DataTypes & key_types) { - if (key_types.size() < 1 && 2 < key_types.size()) + if (key_types.empty() || key_types.size() > 2) throw Exception{"Expected a single IP address or IP with mask", ErrorCodes::TYPE_MISMATCH}; const auto & actual_type = key_types[0]->getName(); @@ -102,8 +102,8 @@ static bool matchIPv4Subnet(UInt32 target, UInt32 addr, UInt8 prefix) static bool matchIPv6Subnet(const uint8_t * target, const uint8_t * addr, UInt8 prefix) { - if (prefix > IPV6_BINARY_LENGTH * 8) - prefix = IPV6_BINARY_LENGTH * 8; + if (prefix > IPV6_BINARY_LENGTH * 8U) + prefix = IPV6_BINARY_LENGTH * 8U; size_t i = 0; for (; prefix >= 8; ++i, prefix -= 8) @@ -439,8 +439,6 @@ void TrieDictionary::loadData() stream->readSuffix(); - LOG_TRACE(logger, "{} ip records are read", ip_records.size()); - if (has_ipv6) { std::sort(ip_records.begin(), ip_records.end(), @@ -520,6 +518,7 @@ void TrieDictionary::loadData() subnets_stack.push(i); } + LOG_TRACE(logger, "{} ip records are read", ip_records.size()); if (require_nonempty && 0 == element_count) throw Exception{full_name + ": dictionary source is empty and 'require_nonempty' property is set.", ErrorCodes::DICTIONARY_IS_EMPTY}; } @@ -683,7 +682,7 @@ void TrieDictionary::getItemsByTwoKeyColumnsImpl( const auto rows = first_column->size(); auto & vec = std::get>(attribute.maps); - if (auto ipv4_col = std::get_if(&ip_column)) + if (const auto * ipv4_col = std::get_if(&ip_column)) { const auto * key_ip_column_ptr = typeid_cast *>(&*key_columns.front()); if (key_ip_column_ptr == nullptr) @@ -725,7 +724,7 @@ void TrieDictionary::getItemsByTwoKeyColumnsImpl( const auto & key_mask_column = assert_cast &>(*key_columns.back()); - auto ipv6_col = std::get_if(&ip_column); + const auto * ipv6_col = std::get_if(&ip_column); auto comp_v6 = [&](size_t i, IPv6Subnet target) { auto cmpres = memcmp16(getIPv6FromOffset(*ipv6_col, i), target.addr); @@ -890,7 +889,7 @@ void TrieDictionary::has(const Attribute &, const Columns & key_columns, PaddedP Columns TrieDictionary::getKeyColumns() const { - auto ipv4_col = std::get_if(&ip_column); + const auto * ipv4_col = std::get_if(&ip_column); if (ipv4_col) { auto key_ip_column = ColumnVector::create(); @@ -903,14 +902,14 @@ Columns TrieDictionary::getKeyColumns() const return {std::move(key_ip_column), std::move(key_mask_column)}; } - auto ipv6_col = std::get_if(&ip_column); + const auto * ipv6_col = std::get_if(&ip_column); auto key_ip_column = ColumnFixedString::create(IPV6_BINARY_LENGTH); auto key_mask_column = ColumnVector::create(); for (size_t row : ext::range(0, row_idx.size())) { - auto data = reinterpret_cast(getIPv6FromOffset(*ipv6_col, row)); + const char * data = reinterpret_cast(getIPv6FromOffset(*ipv6_col, row)); key_ip_column->insertData(data, IPV6_BINARY_LENGTH); key_mask_column->insertValue(mask_column[row]); } @@ -948,13 +947,13 @@ BlockInputStreamPtr TrieDictionary::getBlockInputStream(const Names & column_nam using BlockInputStreamType = DictionaryBlockInputStream; - const bool isIPv4 = std::get_if(&ip_column) != nullptr; + const bool is_ipv4 = std::get_if(&ip_column) != nullptr; - auto get_keys = [isIPv4](const Columns & columns, const std::vector & dict_attributes) + auto get_keys = [is_ipv4](const Columns & columns, const std::vector & dict_attributes) { const auto & attr = dict_attributes.front(); std::shared_ptr key_typ; - if (isIPv4) + if (is_ipv4) key_typ = std::make_shared(); else key_typ = std::make_shared(IPV6_BINARY_LENGTH); @@ -965,7 +964,7 @@ BlockInputStreamPtr TrieDictionary::getBlockInputStream(const Names & column_nam }); }; - if (isIPv4) + if (is_ipv4) { auto get_view = keyViewGetter, true>(); return std::make_shared( @@ -1011,7 +1010,7 @@ TrieDictionary::RowIdxConstIter TrieDictionary::lookupIP(IPValueType target) con if (row_idx.empty()) return ipNotFound(); - auto ipv4or6_col = std::get_if(&ip_column); + const auto * ipv4or6_col = std::get_if(&ip_column); if (ipv4or6_col == nullptr) return ipNotFound(); diff --git a/tests/performance/ip_trie.xml b/tests/performance/ip_trie.xml index 41b6ef99abb..900d3310e26 100644 --- a/tests/performance/ip_trie.xml +++ b/tests/performance/ip_trie.xml @@ -10,7 +10,7 @@ INSERT INTO table_ip_trie SELECT - IPv4NumToString(ipv4) || '/' || toString(rand() % 32 + 1) as ip, + IPv4NumToString(ipv4) || '/' || toString(rand() % 25 + 8) as ip, val FROM generateRandom('ipv4 UInt32, val Float32', 0, 30, 30) LIMIT 1000000 @@ -19,10 +19,10 @@ INSERT INTO table_ip_trie SELECT - IPv6NumToString(ipv6) || '/' || toString(rand() % 128 + 1) as ip, + IPv6NumToString(ipv6) || '/' || toString(rand() % 113 + 16) as ip, val FROM generateRandom('ipv6 FixedString(16), val Float32', 0, 30, 30) - LIMIT 1000000 + LIMIT 2500000 @@ -32,31 +32,26 @@ val Float32 ) PRIMARY KEY ip - SOURCE(CLICKHOUSE( - HOST 'localhost' - PORT 9000 - USER 'default' - DB 'default' - TABLE 'table_ip_trie')) + SOURCE(CLICKHOUSE(DB 'default' TABLE 'table_ip_trie')) LAYOUT(IP_TRIE()) LIFETIME(300) - + CREATE TABLE dict_ip_trie_table ( - `id` String, + `ip` String, `val` Float32 ) ENGINE = Dictionary(default.dict_ip_trie) - + - SELECT dictGetFloat32('default.dict_ip_trie', 'value', tuple(rand32())) + SELECT dictGetFloat32('default.dict_ip_trie', 'val', tuple(rand32())) FROM numbers(500000) - SELECT dictGetFloat32('default.dict_ip_trie', 'value', tuple(randomFixedString(16))) + SELECT dictGetFloat32('default.dict_ip_trie', 'val', tuple(randomFixedString(16))) FROM numbers(500000) From 3c6104855d66fde80125329fe9e54c9f83792e59 Mon Sep 17 00:00:00 2001 From: vdimir Date: Sat, 14 Nov 2020 23:29:58 +0300 Subject: [PATCH 129/425] Fix mask comparison for ip dict, add tests --- src/Dictionaries/TrieDictionary.cpp | 6 +- .../0_stateless/01018_ip_dictionary.reference | 170 +++++++++++++ .../0_stateless/01018_ip_dictionary.sql | 229 ++++++++++++++++++ 3 files changed, 403 insertions(+), 2 deletions(-) diff --git a/src/Dictionaries/TrieDictionary.cpp b/src/Dictionaries/TrieDictionary.cpp index 6a68d44e18f..3f8df405d4a 100644 --- a/src/Dictionaries/TrieDictionary.cpp +++ b/src/Dictionaries/TrieDictionary.cpp @@ -115,7 +115,7 @@ static bool matchIPv6Subnet(const uint8_t * target, const uint8_t * addr, UInt8 return true; auto mask = ~(0xff >> prefix); - return (addr[i] & mask) == target[i]; + return (target[i] & mask) == addr[i]; } const uint8_t * TrieDictionary::getIPv6FromOffset(const TrieDictionary::IPv6Container & ipv6_col, size_t i) @@ -465,7 +465,9 @@ void TrieDictionary::loadData() memcpySmallAllowReadWriteOverflow15(&ipv6_col[i * IPV6_BINARY_LENGTH], reinterpret_cast(ip_array.data()), IPV6_BINARY_LENGTH); - mask_column.push_back(record.prefix); + + bool converted = has_ipv6 && (record.addr.family() == Poco::Net::IPAddress::IPv4); + mask_column.push_back(converted ? record.prefix + 96 : record.prefix); row_idx.push_back(record.row); } } diff --git a/tests/queries/0_stateless/01018_ip_dictionary.reference b/tests/queries/0_stateless/01018_ip_dictionary.reference index 6023701a407..909afb1b96a 100644 --- a/tests/queries/0_stateless/01018_ip_dictionary.reference +++ b/tests/queries/0_stateless/01018_ip_dictionary.reference @@ -49,6 +49,40 @@ 1 1 1 +***ipv4 trie dict mask*** +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 ***ipv4 trie dict pt2*** 1 1 @@ -226,3 +260,139 @@ 1 1 1 +***ipv6 trie dict mask*** +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 diff --git a/tests/queries/0_stateless/01018_ip_dictionary.sql b/tests/queries/0_stateless/01018_ip_dictionary.sql index f57f5ef9302..62aadb1deb3 100644 --- a/tests/queries/0_stateless/01018_ip_dictionary.sql +++ b/tests/queries/0_stateless/01018_ip_dictionary.sql @@ -107,6 +107,68 @@ DROP DICTIONARY IF EXISTS database_for_dict.dict_ipv4_trie; DROP TABLE IF EXISTS database_for_dict.table_from_ipv4_trie_dict; DROP TABLE IF EXISTS database_for_dict.table_ipv4_trie; +SELECT '***ipv4 trie dict mask***'; +CREATE TABLE database_for_dict.table_ipv4_trie +( + prefix String, + val UInt32 +) +engine = TinyLog; + +INSERT INTO database_for_dict.table_ipv4_trie +SELECT + '255.255.255.255/' || toString(number) AS prefix, + toUInt32(number) AS val +FROM VALUES ('number UInt32', 5, 13, 24, 30); + +CREATE DICTIONARY database_for_dict.dict_ipv4_trie +( + prefix String, + val UInt32 +) +PRIMARY KEY prefix +SOURCE(CLICKHOUSE(host 'localhost' port 9000 user 'default' db 'database_for_dict' table 'table_ipv4_trie')) +LAYOUT(IP_TRIE()) +LIFETIME(MIN 10 MAX 100); + +SELECT 0 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('0.0.0.0'))); +SELECT 0 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('128.0.0.0'))); +SELECT 0 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('192.0.0.0'))); +SELECT 0 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('224.0.0.0'))); +SELECT 0 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('240.0.0.0'))); +SELECT 5 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('248.0.0.0'))); +SELECT 5 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('252.0.0.0'))); +SELECT 5 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('254.0.0.0'))); +SELECT 5 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.0.0.0'))); +SELECT 5 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.128.0.0'))); +SELECT 5 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.192.0.0'))); +SELECT 5 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.224.0.0'))); +SELECT 5 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.240.0.0'))); +SELECT 13 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.248.0.0'))); +SELECT 13 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.252.0.0'))); +SELECT 13 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.254.0.0'))); +SELECT 13 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.255.0.0'))); +SELECT 13 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.255.128.0'))); +SELECT 13 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.255.192.0'))); +SELECT 13 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.255.224.0'))); +SELECT 13 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.255.240.0'))); +SELECT 13 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.255.248.0'))); +SELECT 13 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.255.252.0'))); +SELECT 13 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.255.254.0'))); +SELECT 24 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.255.255.0'))); +SELECT 24 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.255.255.128'))); +SELECT 24 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.255.255.192'))); +SELECT 24 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.255.255.224'))); +SELECT 24 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.255.255.240'))); +SELECT 24 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.255.255.248'))); +SELECT 30 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.255.255.252'))); +SELECT 30 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.255.255.254'))); +SELECT 30 == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('255.255.255.255'))); + +DROP DICTIONARY IF EXISTS database_for_dict.dict_ipv4_trie; +DROP TABLE IF EXISTS database_for_dict.table_from_ipv4_trie_dict; +DROP TABLE IF EXISTS database_for_dict.table_ipv4_trie; + SELECT '***ipv4 trie dict pt2***'; CREATE TABLE database_for_dict.table_ipv4_trie ( prefix String, val UInt32 ) engine = TinyLog; @@ -358,4 +420,171 @@ WHERE prefix == '2620:0:870::/48'; SELECT 134 == COUNT(*) FROM database_for_dict.table_from_ip_trie_dict; +DROP DICTIONARY IF EXISTS database_for_dict.dict_ip_trie; +DROP TABLE IF EXISTS database_for_dict.table_from_ip_trie_dict; +DROP TABLE IF EXISTS database_for_dict.table_ip_trie; + +SELECT '***ipv6 trie dict mask***'; + +CREATE TABLE database_for_dict.table_ip_trie +( + prefix String, + val String +) +engine = TinyLog; + +INSERT INTO database_for_dict.table_ip_trie +SELECT + 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/' || toString(number) AS prefix, + toString(number) AS val +FROM VALUES ('number UInt32', 5, 13, 24, 48, 49, 99, 127); + +CREATE DICTIONARY database_for_dict.dict_ip_trie +( + prefix String, + val String +) +PRIMARY KEY prefix +SOURCE(CLICKHOUSE(host 'localhost' port 9000 user 'default' db 'database_for_dict' table 'table_ip_trie')) +LAYOUT(IP_TRIE()) +LIFETIME(MIN 10 MAX 100); + +SELECT 0 == dictHas('database_for_dict.dict_ip_trie', tuple(IPv6StringToNum('::ffff:1:1'))); + +SELECT '' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('::0'))); +SELECT '' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('8000::'))); +SELECT '' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('c000::'))); +SELECT '' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('e000::'))); +SELECT '' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('f000::'))); +SELECT '5' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('f800::'))); +SELECT '5' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('fc00::'))); +SELECT '5' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('fe00::'))); +SELECT '5' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ff00::'))); +SELECT '5' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ff80::'))); +SELECT '5' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffc0::'))); +SELECT '5' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffe0::'))); +SELECT '5' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('fff0::'))); +SELECT '13' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('fff8::'))); +SELECT '13' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('fffc::'))); +SELECT '13' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('fffe::'))); +SELECT '13' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff::'))); +SELECT '13' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:8000::'))); +SELECT '13' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:c000::'))); +SELECT '13' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:e000::'))); +SELECT '13' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:f000::'))); +SELECT '13' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:f800::'))); +SELECT '13' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:fc00::'))); +SELECT '13' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:c000::'))); +SELECT '13' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:e000::'))); +SELECT '13' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:f000::'))); +SELECT '13' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:f800::'))); +SELECT '13' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:fc00::'))); +SELECT '13' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:fe00::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ff00::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ff80::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffc0::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffe0::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:fff0::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:fff8::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:fffc::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:fffe::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:8000::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:c000::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:e000::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:f000::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:f800::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:fc00::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:fe00::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ff00::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ff80::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffc0::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffe0::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:fff0::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:fff8::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:fffc::'))); +SELECT '24' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:fffe::'))); +SELECT '48' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:8000::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:c000::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:e000::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:f000::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:f800::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:fc00::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:fe00::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ff00::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ff80::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffc0::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffe0::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:fff0::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:fff8::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:fffc::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:fffe::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:8000::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:c000::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:e000::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:f000::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:f800::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:fc00::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:fe00::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ff00::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ff80::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffc0::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffe0::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:fff0::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:fff8::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:fffc::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:fffe::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:8000::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:c000::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:e000::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:f000::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:f800::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:fc00::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:fe00::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ff00::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ff80::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffc0::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffe0::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:fff0::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:fff8::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:fffc::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:fffe::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff::'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:8000:0'))); +SELECT '49' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:c000:0'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:e000:0'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:f000:0'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:f800:0'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:fc00:0'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:fe00:0'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ff00:0'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ff80:0'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffc0:0'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffe0:0'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:fff0:0'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:fff8:0'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:fffc:0'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:fffe:0'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:0'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:8000'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:c000'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:e000'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:f000'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:f800'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:fc00'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:fe00'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff80'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffc0'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffe0'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff0'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff8'))); +SELECT '99' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:fffc'))); +SELECT '127' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:fffe'))); +SELECT '127' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff'))); + + DROP DATABASE IF EXISTS database_for_dict; From 8b91e0984c01b59ccc896afdd01415b30c0bf5e8 Mon Sep 17 00:00:00 2001 From: vdimir Date: Sat, 14 Nov 2020 23:32:58 +0300 Subject: [PATCH 130/425] SSE version of matchIPv6Subnet for ip_dict --- src/Dictionaries/TrieDictionary.cpp | 31 ++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/Dictionaries/TrieDictionary.cpp b/src/Dictionaries/TrieDictionary.cpp index 3f8df405d4a..d9e200458c8 100644 --- a/src/Dictionaries/TrieDictionary.cpp +++ b/src/Dictionaries/TrieDictionary.cpp @@ -100,6 +100,33 @@ static bool matchIPv4Subnet(UInt32 target, UInt32 addr, UInt8 prefix) return (target & mask) == addr; } +#if defined(__SSE2__) +#include + +static bool matchIPv6Subnet(const uint8_t * target, const uint8_t * addr, UInt8 prefix) +{ + uint16_t mask = _mm_movemask_epi8(_mm_cmpeq_epi8( + _mm_loadu_si128(reinterpret_cast(target)), + _mm_loadu_si128(reinterpret_cast(addr)))); + mask = ~mask; + + if (mask) + { + auto offset = __builtin_ctz(mask); + + if (offset < prefix / 8) + return false; + if (offset >= prefix / 8 + 1) + return true; + + auto cmpmask = ~(0xff >> (prefix % 8)); + return (target[offset] & cmpmask) == addr[offset]; + } + return true; +} + +# else + static bool matchIPv6Subnet(const uint8_t * target, const uint8_t * addr, UInt8 prefix) { if (prefix > IPV6_BINARY_LENGTH * 8U) @@ -118,6 +145,8 @@ static bool matchIPv6Subnet(const uint8_t * target, const uint8_t * addr, UInt8 return (target[i] & mask) == addr[i]; } +#endif // __SSE2__ + const uint8_t * TrieDictionary::getIPv6FromOffset(const TrieDictionary::IPv6Container & ipv6_col, size_t i) { return reinterpret_cast(&ipv6_col[i * IPV6_BINARY_LENGTH]); @@ -746,7 +775,7 @@ void TrieDictionary::getItemsByTwoKeyColumnsImpl( auto found_it = std::lower_bound(range.begin(), range.end(), target, comp_v6); if (likely(found_it != range.end() && - memcmp16(getIPv6FromOffset(*ipv6_col, *found_it), target.addr) == 0 && + memequal16(getIPv6FromOffset(*ipv6_col, *found_it), target.addr) && mask_column[*found_it] == mask)) set_value(i, static_cast(vec[row_idx[*found_it]])); else From 5e0e22301b09ff4498fe2723e3de2320ca0e30ca Mon Sep 17 00:00:00 2001 From: vdimir Date: Sun, 15 Nov 2020 17:36:05 +0300 Subject: [PATCH 131/425] Slightly improve ip_dict loading performance, handle v4 to v6 masks in prepossessing, add more tests --- src/Dictionaries/TrieDictionary.cpp | 83 ++++++++++++++----- tests/performance/ip_trie.xml | 34 +++++++- .../0_stateless/01018_ip_dictionary.reference | 26 ++++++ .../0_stateless/01018_ip_dictionary.sql | 44 +++++++++- 4 files changed, 161 insertions(+), 26 deletions(-) diff --git a/src/Dictionaries/TrieDictionary.cpp b/src/Dictionaries/TrieDictionary.cpp index d9e200458c8..47a7466ed93 100644 --- a/src/Dictionaries/TrieDictionary.cpp +++ b/src/Dictionaries/TrieDictionary.cpp @@ -28,11 +28,33 @@ namespace ErrorCodes namespace { + /// Intermediate stucture used for loading data struct IPRecord { Poco::Net::IPAddress addr; UInt8 prefix; size_t row; + bool isv6; + + IPRecord(const Poco::Net::IPAddress & addr_, UInt8 prefix_, size_t row_) + : addr(addr_) + , prefix(prefix_) + , row(row_) + , isv6(addr.family() == Poco::Net::IPAddress::IPv6) + { + } + + const uint8_t * asIPv6Binary(uint8_t * buf) const + { + if (isv6) + return reinterpret_cast(addr.addr()); + memset(buf, 0, 10); + buf[10] = '\xFF'; + buf[11] = '\xFF'; + memcpy(&buf[12], addr.addr(), 4); + + return buf; + } }; struct IPv4Subnet @@ -70,6 +92,11 @@ static inline bool compPrefixes(UInt8 a, UInt8 b) return a < b; } +inline static UInt32 IPv4AsUInt32(const void * addr) +{ + return Poco::ByteOrder::fromNetwork(*reinterpret_cast(addr)); +} + /// Convert mapped IPv6 to IPv4 if possible inline static UInt32 mappedIPv4ToBinary(const uint8_t * addr, bool & success) { @@ -81,7 +108,7 @@ inline static UInt32 mappedIPv4ToBinary(const uint8_t * addr, bool & success) addr[10] == 0xff && addr[11] == 0xff; if (!success) return 0; - return Poco::ByteOrder::fromNetwork(*reinterpret_cast(&addr[12])); + return IPv4AsUInt32(&addr[12]); } /// Convert IPv4 to IPv6-mapped and save results to buf @@ -114,10 +141,8 @@ static bool matchIPv6Subnet(const uint8_t * target, const uint8_t * addr, UInt8 { auto offset = __builtin_ctz(mask); - if (offset < prefix / 8) - return false; - if (offset >= prefix / 8 + 1) - return true; + if (prefix / 8 != offset) + return prefix / 8 < offset; auto cmpmask = ~(0xff >> (prefix % 8)); return (target[offset] & cmpmask) == addr[offset]; @@ -454,14 +479,14 @@ void TrieDictionary::loadData() UInt8 prefix = std::stoi(addr_str.substr(pos + 1), nullptr, 10); addr = addr & IPAddress(prefix, addr.family()); - ip_records.emplace_back(IPRecord{addr, prefix, row_number}); + ip_records.emplace_back(addr, prefix, row_number); } else { IPAddress addr(addr_str); has_ipv6 = has_ipv6 || (addr.family() == Poco::Net::IPAddress::IPv6); UInt8 prefix = addr.length() * 8; - ip_records.emplace_back(IPRecord{addr, prefix, row_number}); + ip_records.emplace_back(addr, prefix, row_number); } } } @@ -473,10 +498,10 @@ void TrieDictionary::loadData() std::sort(ip_records.begin(), ip_records.end(), [](const auto & record_a, const auto & record_b) { - auto a = IPv6ToBinary(record_a.addr); - auto b = IPv6ToBinary(record_b.addr); - auto cmpres = memcmp16(reinterpret_cast(a.data()), - reinterpret_cast(b.data())); + uint8_t a_buf[IPV6_BINARY_LENGTH]; + uint8_t b_buf[IPV6_BINARY_LENGTH]; + + auto cmpres = memcmp16(record_a.asIPv6Binary(a_buf), record_b.asIPv6Binary(b_buf)); if (cmpres == 0) return compPrefixes(record_a.prefix, record_b.prefix); @@ -520,7 +545,7 @@ void TrieDictionary::loadData() ipv4_col.reserve(ip_records.size()); for (const auto & record : ip_records) { - auto addr = Poco::ByteOrder::fromNetwork(*reinterpret_cast(record.addr.addr())); + auto addr = IPv4AsUInt32(record.addr.addr()); ipv4_col.push_back(addr); mask_column.push_back(record.prefix); row_idx.push_back(record.row); @@ -532,17 +557,34 @@ void TrieDictionary::loadData() for (const auto i : ext::range(0, ip_records.size())) { parent_subnet[i] = i; - - const auto & cur_address = ip_records[i].addr; while (!subnets_stack.empty()) { - size_t subnet_idx = subnets_stack.top(); - const auto cur_subnet = ip_records[subnet_idx]; - auto cur_addr_masked = cur_address & IPAddress(cur_subnet.prefix, cur_address.family()); - if (cur_subnet.addr == cur_addr_masked) + size_t pi = subnets_stack.top(); + if (has_ipv6) { - parent_subnet[i] = subnet_idx; - break; + uint8_t a_buf[IPV6_BINARY_LENGTH]; + uint8_t b_buf[IPV6_BINARY_LENGTH]; + const auto * cur_address = ip_records[i].asIPv6Binary(a_buf); + const auto * cur_subnet = ip_records[pi].asIPv6Binary(b_buf); + + bool is_mask_smaller = ip_records[pi].prefix < ip_records[i].prefix; + if (is_mask_smaller && matchIPv6Subnet(cur_address, cur_subnet, ip_records[pi].prefix)) + { + parent_subnet[i] = pi; + break; + } + } + else + { + UInt32 cur_address = IPv4AsUInt32(ip_records[i].addr.addr()); + UInt32 cur_subnet = IPv4AsUInt32(ip_records[pi].addr.addr()); + + bool is_mask_smaller = ip_records[pi].prefix < ip_records[i].prefix; + if (is_mask_smaller && matchIPv4Subnet(cur_address, cur_subnet, ip_records[pi].prefix)) + { + parent_subnet[i] = pi; + break; + } } subnets_stack.pop(); } @@ -550,6 +592,7 @@ void TrieDictionary::loadData() } LOG_TRACE(logger, "{} ip records are read", ip_records.size()); + if (require_nonempty && 0 == element_count) throw Exception{full_name + ": dictionary source is empty and 'require_nonempty' property is set.", ErrorCodes::DICTIONARY_IS_EMPTY}; } diff --git a/tests/performance/ip_trie.xml b/tests/performance/ip_trie.xml index 900d3310e26..d5ca0ee3c58 100644 --- a/tests/performance/ip_trie.xml +++ b/tests/performance/ip_trie.xml @@ -3,6 +3,7 @@ CREATE TABLE table_ip_trie ( ip String, + ver UInt8, val Float32 ) ENGINE = TinyLog @@ -10,16 +11,18 @@ INSERT INTO table_ip_trie SELECT - IPv4NumToString(ipv4) || '/' || toString(rand() % 25 + 8) as ip, + IPv4NumToString(ipv4) || '/' || toString(rand() % 17 + 16) as ip, + 4 as ver, val FROM generateRandom('ipv4 UInt32, val Float32', 0, 30, 30) - LIMIT 1000000 + LIMIT 500000 INSERT INTO table_ip_trie SELECT - IPv6NumToString(ipv6) || '/' || toString(rand() % 113 + 16) as ip, + IPv6NumToString(ipv6) || '/' || toString(rand() % 65 + 64) as ip, + 6 as ver, val FROM generateRandom('ipv6 FixedString(16), val Float32', 0, 30, 30) LIMIT 2500000 @@ -29,6 +32,7 @@ CREATE DICTIONARY dict_ip_trie ( ip String, + ver UInt8, val Float32 ) PRIMARY KEY ip @@ -41,10 +45,19 @@ CREATE TABLE dict_ip_trie_table ( `ip` String, + `ver` UInt8, `val` Float32 ) ENGINE = Dictionary(default.dict_ip_trie) + + CREATE TABLE table_ip_from_dict (`ip` String, `ver` UInt8) ENGINE = TinyLog + + + INSERT INTO table_ip_from_dict + SELECT ip, ver FROM dict_ip_trie_table + + SELECT dictGetFloat32('default.dict_ip_trie', 'val', tuple(rand32())) FROM numbers(500000) @@ -55,7 +68,22 @@ FROM numbers(500000) + + SELECT dictGetFloat32('default.dict_ip_trie', 'val', tuple(IPv4StringToNum(ip))) + FROM table_ip_from_dict + WHERE ver == 4 + LIMIT 500000 + + + + SELECT dictGetFloat32('default.dict_ip_trie', 'val', tuple(IPv6StringToNum(ip))) + FROM table_ip_from_dict + WHERE ver == 6 + LIMIT 500000 + + DROP DICTIONARY IF EXISTS default.dict_ip_trie DROP TABLE IF EXISTS table_ip_trie DROP TABLE IF EXISTS dict_ip_trie_table + DROP TABLE IF EXISTS table_ip_from_dict diff --git a/tests/queries/0_stateless/01018_ip_dictionary.reference b/tests/queries/0_stateless/01018_ip_dictionary.reference index 909afb1b96a..2fb1a7256d1 100644 --- a/tests/queries/0_stateless/01018_ip_dictionary.reference +++ b/tests/queries/0_stateless/01018_ip_dictionary.reference @@ -396,3 +396,29 @@ 1 1 1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 diff --git a/tests/queries/0_stateless/01018_ip_dictionary.sql b/tests/queries/0_stateless/01018_ip_dictionary.sql index 62aadb1deb3..09041c4d8fd 100644 --- a/tests/queries/0_stateless/01018_ip_dictionary.sql +++ b/tests/queries/0_stateless/01018_ip_dictionary.sql @@ -266,13 +266,13 @@ SELECT 1 == dictHas('database_for_dict.dict_ip_trie', tuple(IPv6StringToNum('200 SELECT 1 == dictHas('database_for_dict.dict_ip_trie', tuple(IPv6StringToNum('2001:db8:ffff:ffff::'))); SELECT 1 == dictHas('database_for_dict.dict_ip_trie', tuple(IPv6StringToNum('2001:db8:ffff:1::'))); -SELECT '' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('654f:3716::'))); -SELECT 0 == dictHas('database_for_dict.dict_ip_trie', tuple(IPv6StringToNum('654f:3716::'))); -SELECT 0 == dictHas('database_for_dict.dict_ip_trie', tuple(IPv6StringToNum('654f:3716:ffff::'))); +SELECT '0' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('654f:3716::'))); SELECT 'JA' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('::ffff:654f:3716'))); SELECT 'JA' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('::ffff:101.79.55.22'))); SELECT 'JA' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv4StringToNum('101.79.55.22'))); +SELECT 1 == dictHas('database_for_dict.dict_ip_trie', tuple(IPv4StringToNum('127.0.0.1'))); +SELECT 1 == dictHas('database_for_dict.dict_ip_trie', tuple(IPv6StringToNum('::ffff:127.0.0.1'))); SELECT '0' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('::0'))); SELECT '1' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('8000::'))); @@ -439,6 +439,14 @@ SELECT toString(number) AS val FROM VALUES ('number UInt32', 5, 13, 24, 48, 49, 99, 127); +INSERT INTO database_for_dict.table_ip_trie VALUES ('101.79.55.22', 'JA'); + +INSERT INTO database_for_dict.table_ipv4_trie +SELECT + '255.255.255.255/' || toString(number) AS prefix, + toString(number) AS val +FROM VALUES ('number UInt32', 5, 13, 24, 30); + CREATE DICTIONARY database_for_dict.dict_ip_trie ( prefix String, @@ -451,6 +459,14 @@ LIFETIME(MIN 10 MAX 100); SELECT 0 == dictHas('database_for_dict.dict_ip_trie', tuple(IPv6StringToNum('::ffff:1:1'))); +SELECT '' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('654f:3716::'))); +SELECT 0 == dictHas('database_for_dict.dict_ip_trie', tuple(IPv6StringToNum('654f:3716::'))); +SELECT 0 == dictHas('database_for_dict.dict_ip_trie', tuple(IPv6StringToNum('654f:3716:ffff::'))); + +SELECT 'JA' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('::ffff:654f:3716'))); +SELECT 'JA' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('::ffff:101.79.55.22'))); +SELECT 'JA' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv4StringToNum('101.79.55.22'))); + SELECT '' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('::0'))); SELECT '' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('8000::'))); SELECT '' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('c000::'))); @@ -587,4 +603,26 @@ SELECT '127' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv SELECT '127' == dictGetString('database_for_dict.dict_ip_trie', 'val', tuple(IPv6StringToNum('ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff'))); +SELECT '3' == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.0.0.0'))); +SELECT '4' == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.0.0.1'))); +SELECT '3' == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.0.0.127'))); +SELECT '2' == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.0.255.127'))); +SELECT '15' == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.255.127.127'))); +SELECT '16' == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.255.128.9'))); +SELECT '16' == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.255.128.127'))); +SELECT '18' == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.255.128.10'))); +SELECT '19' == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.255.128.255'))); +SELECT '20' == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv4StringToNum('127.255.255.128'))); + +SELECT '3' == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv6StringToNum('::ffff:7f00:0'))); +SELECT '4' == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv6StringToNum('::ffff:7f00:1'))); +SELECT '3' == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv6StringToNum('::ffff:7f00:7f'))); +SELECT '2' == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv6StringToNum('::ffff:7f00:ff7f'))); +SELECT '15' == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv6StringToNum('::ffff:7fff:7f7f'))); +SELECT '16' == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv6StringToNum('::ffff:7fff:8009'))); +SELECT '16' == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv6StringToNum('::ffff:7fff:807f'))); +SELECT '18' == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv6StringToNum('::ffff:7fff:800a'))); +SELECT '19' == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv6StringToNum('::ffff:7fff:80ff'))); +SELECT '20' == dictGetUInt32('database_for_dict.dict_ipv4_trie', 'val', tuple(IPv6StringToNum('::ffff:7fff:ff80'))); + DROP DATABASE IF EXISTS database_for_dict; From 9eb3a0140d4d33538e8909b5cd0cb3bf5cca8837 Mon Sep 17 00:00:00 2001 From: vdimir Date: Sun, 15 Nov 2020 20:09:28 +0300 Subject: [PATCH 132/425] Add 96 bits to mapped IPv4 in ip_dict loading procedure --- src/Dictionaries/TrieDictionary.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/Dictionaries/TrieDictionary.cpp b/src/Dictionaries/TrieDictionary.cpp index 47a7466ed93..44951a09186 100644 --- a/src/Dictionaries/TrieDictionary.cpp +++ b/src/Dictionaries/TrieDictionary.cpp @@ -28,7 +28,7 @@ namespace ErrorCodes namespace { - /// Intermediate stucture used for loading data + /// Intermediate structure that are used in loading procedure struct IPRecord { Poco::Net::IPAddress addr; @@ -55,6 +55,11 @@ namespace return buf; } + + inline UInt8 prefixIPv6() const + { + return isv6 ? prefix : prefix + 96; + } }; struct IPv4Subnet @@ -504,7 +509,7 @@ void TrieDictionary::loadData() auto cmpres = memcmp16(record_a.asIPv6Binary(a_buf), record_b.asIPv6Binary(b_buf)); if (cmpres == 0) - return compPrefixes(record_a.prefix, record_b.prefix); + return compPrefixes(record_a.prefixIPv6(), record_b.prefixIPv6()); return cmpres < 0; }); @@ -520,8 +525,7 @@ void TrieDictionary::loadData() reinterpret_cast(ip_array.data()), IPV6_BINARY_LENGTH); - bool converted = has_ipv6 && (record.addr.family() == Poco::Net::IPAddress::IPv4); - mask_column.push_back(converted ? record.prefix + 96 : record.prefix); + mask_column.push_back(record.prefixIPv6()); row_idx.push_back(record.row); } } @@ -567,8 +571,8 @@ void TrieDictionary::loadData() const auto * cur_address = ip_records[i].asIPv6Binary(a_buf); const auto * cur_subnet = ip_records[pi].asIPv6Binary(b_buf); - bool is_mask_smaller = ip_records[pi].prefix < ip_records[i].prefix; - if (is_mask_smaller && matchIPv6Subnet(cur_address, cur_subnet, ip_records[pi].prefix)) + bool is_mask_smaller = ip_records[pi].prefixIPv6() < ip_records[i].prefixIPv6(); + if (is_mask_smaller && matchIPv6Subnet(cur_address, cur_subnet, ip_records[pi].prefixIPv6())) { parent_subnet[i] = pi; break; From 26a529fc32c1972e95e093d067e0dbecd5a31860 Mon Sep 17 00:00:00 2001 From: hexiaoting Date: Mon, 16 Nov 2020 11:46:05 +0800 Subject: [PATCH 133/425] Bug fix for funciton fuzzBits --- src/Functions/fuzzBits.cpp | 42 ++++++++++++++----- .../01585_fuzz_bits_with_bugfix.reference | 5 +++ .../01585_fuzz_bits_with_bugfix.sql | 3 ++ 3 files changed, 40 insertions(+), 10 deletions(-) create mode 100644 tests/queries/0_stateless/01585_fuzz_bits_with_bugfix.reference create mode 100644 tests/queries/0_stateless/01585_fuzz_bits_with_bugfix.sql diff --git a/src/Functions/fuzzBits.cpp b/src/Functions/fuzzBits.cpp index 9094b90da30..475c5afbfd5 100644 --- a/src/Functions/fuzzBits.cpp +++ b/src/Functions/fuzzBits.cpp @@ -99,18 +99,40 @@ public: ColumnString::Chars & chars_to = col_to->getChars(); ColumnString::Offsets & offsets_to = col_to->getOffsets(); - chars_to.resize(col_in->getChars().size()); - // TODO: Maybe we can share `col_in->getOffsets()` to `offsets_to.resize` like clever pointers? They are same - offsets_to.resize(input_rows_count); + size_t col_in_rows = col_in->getOffsets().size(); - const auto * ptr_in = col_in->getChars().data(); - auto * ptr_to = chars_to.data(); - fuzzBits(ptr_in, ptr_to, chars_to.size(), inverse_probability); - - for (size_t i = 0; i < input_rows_count; ++i) + if (col_in_rows >= input_rows_count) { - offsets_to[i] = col_in->getOffsets()[i]; - ptr_to[offsets_to[i] - 1] = 0; + chars_to.resize(col_in->getChars().size()); + // TODO: Maybe we can share `col_in->getOffsets()` to `offsets_to.resize` like clever pointers? They are same + offsets_to.resize(input_rows_count); + + const auto * ptr_in = col_in->getChars().data(); + auto * ptr_to = chars_to.data(); + fuzzBits(ptr_in, ptr_to, chars_to.size(), inverse_probability); + + for (size_t i = 0; i < input_rows_count; ++i) + { + offsets_to[i] = col_in->getOffsets()[i]; + ptr_to[offsets_to[i] - 1] = 0; + } + } + else + { + assert(col_in_rows == 1); + chars_to.resize(col_in->getChars().size() * input_rows_count); + offsets_to.resize(input_rows_count); + size_t offset = col_in->getOffsets()[0]; + + const auto * ptr_in = col_in->getChars().data(); + auto * ptr_to = chars_to.data(); + + for (size_t i = 0; i < input_rows_count; ++i) + { + fuzzBits(ptr_in, ptr_to + i * offset, offset, inverse_probability); + offsets_to[i] = (i + 1) * offset; + ptr_to[offsets_to[i] - 1] = 0; + } } return col_to; diff --git a/tests/queries/0_stateless/01585_fuzz_bits_with_bugfix.reference b/tests/queries/0_stateless/01585_fuzz_bits_with_bugfix.reference new file mode 100644 index 00000000000..b7083447e98 --- /dev/null +++ b/tests/queries/0_stateless/01585_fuzz_bits_with_bugfix.reference @@ -0,0 +1,5 @@ +String +String +String +String +String diff --git a/tests/queries/0_stateless/01585_fuzz_bits_with_bugfix.sql b/tests/queries/0_stateless/01585_fuzz_bits_with_bugfix.sql new file mode 100644 index 00000000000..d41f18e2098 --- /dev/null +++ b/tests/queries/0_stateless/01585_fuzz_bits_with_bugfix.sql @@ -0,0 +1,3 @@ +SELECT toTypeName(fuzzBits('stringstring', 0.5)) from numbers(3); + +SELECT toTypeName(fuzzBits('stringstring', 0.5)) from ( SELECT 1 AS x UNION ALL SELECT NULL ) group by x From 608adc77ca286cfc861eda81ef2286d8540b2ca8 Mon Sep 17 00:00:00 2001 From: vdimir Date: Mon, 16 Nov 2020 10:43:55 +0300 Subject: [PATCH 134/425] Remove non-unique entries in ip_dict --- src/Dictionaries/TrieDictionary.cpp | 58 ++++++++++++------- .../0_stateless/01018_ip_dictionary.sql | 4 ++ 2 files changed, 42 insertions(+), 20 deletions(-) diff --git a/src/Dictionaries/TrieDictionary.cpp b/src/Dictionaries/TrieDictionary.cpp index 44951a09186..0703155903d 100644 --- a/src/Dictionaries/TrieDictionary.cpp +++ b/src/Dictionaries/TrieDictionary.cpp @@ -92,9 +92,26 @@ static void validateKeyTypes(const DataTypes & key_types) } } -static inline bool compPrefixes(UInt8 a, UInt8 b) +template +size_t sort_and_unique(std::vector & vec, Comp comp) { - return a < b; + std::sort(vec.begin(), vec.end(), + [&](const auto & a, const auto & b) { return comp(a, b) < 0; }); + + auto new_end = std::unique(vec.begin(), vec.end(), + [&](const auto & a, const auto & b) { return comp(a, b) == 0; }); + if (new_end != vec.end()) + { + vec.erase(new_end, vec.end()); + return std::distance(new_end, vec.end()); + } + return 0; +} + +template +static inline int compareTo(T a, T b) +{ + return a > b ? 1 : (a < b ? -1 : 0); } inline static UInt32 IPv4AsUInt32(const void * addr) @@ -177,11 +194,6 @@ static bool matchIPv6Subnet(const uint8_t * target, const uint8_t * addr, UInt8 #endif // __SSE2__ -const uint8_t * TrieDictionary::getIPv6FromOffset(const TrieDictionary::IPv6Container & ipv6_col, size_t i) -{ - return reinterpret_cast(&ipv6_col[i * IPV6_BINARY_LENGTH]); -} - TrieDictionary::TrieDictionary( const StorageID & dict_id_, const DictionaryStructure & dict_struct_, @@ -500,7 +512,7 @@ void TrieDictionary::loadData() if (has_ipv6) { - std::sort(ip_records.begin(), ip_records.end(), + auto deleted_count = sort_and_unique(ip_records, [](const auto & record_a, const auto & record_b) { uint8_t a_buf[IPV6_BINARY_LENGTH]; @@ -509,9 +521,11 @@ void TrieDictionary::loadData() auto cmpres = memcmp16(record_a.asIPv6Binary(a_buf), record_b.asIPv6Binary(b_buf)); if (cmpres == 0) - return compPrefixes(record_a.prefixIPv6(), record_b.prefixIPv6()); - return cmpres < 0; + return compareTo(record_a.prefixIPv6(), record_b.prefixIPv6()); + return cmpres; }); + if (deleted_count > 0) + LOG_WARNING(logger, "removing {} non-unique subnets from input", deleted_count); auto & ipv6_col = ip_column.emplace(); ipv6_col.resize_fill(IPV6_BINARY_LENGTH * ip_records.size()); @@ -531,19 +545,18 @@ void TrieDictionary::loadData() } else { - std::sort(ip_records.begin(), ip_records.end(), + auto deleted_count = sort_and_unique(ip_records, [](const auto & record_a, const auto & record_b) { - UInt32 a = *reinterpret_cast(record_a.addr.addr()); - a = Poco::ByteOrder::fromNetwork(a); - - UInt32 b = *reinterpret_cast(record_b.addr.addr()); - b = Poco::ByteOrder::fromNetwork(b); + UInt32 a = IPv4AsUInt32(record_a.addr.addr()); + UInt32 b = IPv4AsUInt32(record_b.addr.addr()); if (a == b) - return compPrefixes(record_a.prefix, record_b.prefix); - return a < b; + return compareTo(record_a.prefix, record_b.prefix); + return compareTo(a, b); }); + if (deleted_count > 0) + LOG_WARNING(logger, "removing {} non-unique subnets from input", deleted_count); auto & ipv4_col = ip_column.emplace(); ipv4_col.reserve(ip_records.size()); @@ -752,6 +765,11 @@ TrieDictionary::Attribute TrieDictionary::createAttributeWithType(const Attribut return attr; } +const uint8_t * TrieDictionary::getIPv6FromOffset(const TrieDictionary::IPv6Container & ipv6_col, size_t i) +{ + return reinterpret_cast(&ipv6_col[i * IPV6_BINARY_LENGTH]); +} + template void TrieDictionary::getItemsByTwoKeyColumnsImpl( const Attribute & attribute, const Columns & key_columns, ValueSetter && set_value, DefaultGetter && get_default) const @@ -772,7 +790,7 @@ void TrieDictionary::getItemsByTwoKeyColumnsImpl( { UInt32 addr = (*ipv4_col)[elem]; if (addr == target.addr) - return compPrefixes(mask_column[elem], target.prefix); + return mask_column[elem] < target.prefix; return addr < target.addr; }; @@ -807,7 +825,7 @@ void TrieDictionary::getItemsByTwoKeyColumnsImpl( { auto cmpres = memcmp16(getIPv6FromOffset(*ipv6_col, i), target.addr); if (cmpres == 0) - return compPrefixes(mask_column[i], target.prefix); + return mask_column[i] < target.prefix; return cmpres < 0; }; diff --git a/tests/queries/0_stateless/01018_ip_dictionary.sql b/tests/queries/0_stateless/01018_ip_dictionary.sql index 09041c4d8fd..4ea7274e89f 100644 --- a/tests/queries/0_stateless/01018_ip_dictionary.sql +++ b/tests/queries/0_stateless/01018_ip_dictionary.sql @@ -24,6 +24,10 @@ FROM system.numbers LIMIT 33; INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.0.0.2', 1272, 'RU'); INSERT INTO database_for_dict.table_ipv4_trie VALUES ('127.0.0.0/8', 1270, 'RU'); INSERT INTO database_for_dict.table_ipv4_trie VALUES ('202.79.32.2', 11211, 'NP'); +-- non-unique entries will be squashed into one +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('202.79.32.2', 11211, 'NP'); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('202.79.32.2', 11211, 'NP'); +INSERT INTO database_for_dict.table_ipv4_trie VALUES ('202.79.32.2', 11211, 'NP'); INSERT INTO database_for_dict.table_ipv4_trie VALUES ('101.79.55.22', 11212, 'UK'); CREATE DICTIONARY database_for_dict.dict_ipv4_trie From b0e660651ab2d5573c07cab772c96f021d09d565 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Mon, 16 Nov 2020 19:09:58 +0300 Subject: [PATCH 135/425] cleanup --- docker/test/performance-comparison/perf.py | 14 ++++---- src/AggregateFunctions/AggregateFunctionAvg.h | 34 ++++++++----------- tests/performance/avg_weighted.xml | 31 +++++++++-------- 3 files changed, 39 insertions(+), 40 deletions(-) diff --git a/docker/test/performance-comparison/perf.py b/docker/test/performance-comparison/perf.py index 337f13690b6..37d609b76de 100755 --- a/docker/test/performance-comparison/perf.py +++ b/docker/test/performance-comparison/perf.py @@ -46,6 +46,7 @@ parser.add_argument('--profile-seconds', type=int, default=0, help='For how many parser.add_argument('--long', action='store_true', help='Do not skip the tests tagged as long.') parser.add_argument('--print-queries', action='store_true', help='Print test queries and exit.') parser.add_argument('--print-settings', action='store_true', help='Print test settings and exit.') +parser.add_argument('--keep-tables', action='store_true', help="Don't drop the created tables after the test.") args = parser.parse_args() reportStageEnd('start') @@ -403,10 +404,11 @@ print(f'profile-total\t{profile_total_seconds}') reportStageEnd('run') # Run drop queries -drop_queries = substitute_parameters(drop_query_templates) -for conn_index, c in enumerate(all_connections): - for q in drop_queries: - c.execute(q) - print(f'drop\t{conn_index}\t{c.last_query.elapsed}\t{tsv_escape(q)}') +if not args.keep_tables: + drop_queries = substitute_parameters(drop_query_templates) + for conn_index, c in enumerate(all_connections): + for q in drop_queries: + c.execute(q) + print(f'drop\t{conn_index}\t{c.last_query.elapsed}\t{tsv_escape(q)}') -reportStageEnd('drop-2') + reportStageEnd('drop-2') diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index 3a40b4f16ab..f169050dc2f 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -47,29 +47,23 @@ struct AvgFraction } /// Numerator is always casted to Float64 to divide correctly if the denominator is not Float64. - const Float64 num_converted = [scale](Numerator n) - { - (void) scale; + const Float64 num_converted; - if constexpr (IsDecimalNumber) - return DecimalUtils::convertTo(n, scale); - else - return static_cast(n); /// all other types, including extended integral. - } (numerator); + if constexpr (IsDecimalNumber) + num_converted = DecimalUtils::convertTo(numerator, scale); + else + num_converted = static_cast(numerator); /// all other types, including extended integral. - const auto denom_converted = [scale](Denominator d) -> - std::conditional_t, Float64, Denominator> - { - (void) scale; + const std::conditional_t, + Float64, Denominator>> denom_converted; - if constexpr (IsDecimalNumber) - return DecimalUtils::convertTo(d, scale); - else if constexpr (DecimalOrExtendedInt) - /// no way to divide Float64 and extended integral type without an explicit cast. - return static_cast(d); - else - return d; /// can divide on float, no cast required. - } (denominator); + if constexpr (IsDecimalNumber) + denom_converted = DecimalUtils::convertTo(denominator, scale); + else if constexpr (DecimalOrExtendedInt) + /// no way to divide Float64 and extended integral type without an explicit cast. + denom_converted = static_cast(denominator); + else + denom_converted = denominator; /// can divide on float, no cast required. return num_converted / denom_converted; } diff --git a/tests/performance/avg_weighted.xml b/tests/performance/avg_weighted.xml index a55fe245399..c8c5693a0ab 100644 --- a/tests/performance/avg_weighted.xml +++ b/tests/performance/avg_weighted.xml @@ -1,16 +1,19 @@ + + 1 + 1 + 8 + + hits_100m_single - DROP TABLE IF EXISTS perf_avg - SET allow_experimental_bigint_types=1 - CREATE TABLE perf_avg( num UInt64, num_u Decimal256(75) DEFAULT toDecimal256(num / 400000, 75), num_f Float64 DEFAULT num / 100 - ) ENGINE = MergeTree() ORDER BY tuple() + ) ENGINE Memory @@ -19,16 +22,16 @@ FROM hits_100m_single - SELECT avg(num) FROM perf_avg - SELECT avg(2 * num) FROM perf_avg - SELECT avg(num_u) FROM perf_avg - SELECT avg(num_f) FROM perf_avg - SELECT avgWeighted(num_f, num) FROM perf_avg - SELECT avgWeighted(num_f, num_f) FROM perf_avg - SELECT avgWeighted(num_f, num_u) FROM perf_avg - SELECT avgWeighted(num_u, num_f) FROM perf_avg - SELECT avgWeighted(num_u, num) FROM perf_avg - SELECT avgWeighted(num_u, num_u) FROM perf_avg + SELECT avg(num) FROM perf_avg FORMAT Null + SELECT avg(2 * num) FROM perf_avg FORMAT Null + SELECT avg(num_u) FROM perf_avg FORMAT Null + SELECT avg(num_f) FROM perf_avg FORMAT Null + SELECT avgWeighted(num_f, num) FROM perf_avg FORMAT Null + SELECT avgWeighted(num_f, num_f) FROM perf_avg FORMAT Null + SELECT avgWeighted(num_f, num_u) FROM perf_avg FORMAT Null + SELECT avgWeighted(num_u, num_f) FROM perf_avg FORMAT Null + SELECT avgWeighted(num_u, num) FROM perf_avg FORMAT Null + SELECT avgWeighted(num_u, num_u) FROM perf_avg FORMAT Null DROP TABLE IF EXISTS perf_avg From 3ba8155d382dfbebb1548323ec415b996b8fc725 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Mon, 16 Nov 2020 20:04:12 +0300 Subject: [PATCH 136/425] typo --- src/AggregateFunctions/AggregateFunctionAvg.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index f169050dc2f..4a46e7b6a56 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -47,14 +47,14 @@ struct AvgFraction } /// Numerator is always casted to Float64 to divide correctly if the denominator is not Float64. - const Float64 num_converted; + Float64 num_converted; if constexpr (IsDecimalNumber) num_converted = DecimalUtils::convertTo(numerator, scale); else num_converted = static_cast(numerator); /// all other types, including extended integral. - const std::conditional_t, + std::conditional_t, Float64, Denominator>> denom_converted; if constexpr (IsDecimalNumber) From 2f5e3f66a7b618e74a2c9cf2671bb859c1244af6 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Mon, 16 Nov 2020 20:54:40 +0300 Subject: [PATCH 137/425] typo --- src/AggregateFunctions/AggregateFunctionAvg.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index 4a46e7b6a56..163ff1704ec 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -55,7 +55,7 @@ struct AvgFraction num_converted = static_cast(numerator); /// all other types, including extended integral. std::conditional_t, - Float64, Denominator>> denom_converted; + Float64, Denominator> denom_converted; if constexpr (IsDecimalNumber) denom_converted = DecimalUtils::convertTo(denominator, scale); From 6dcb38db3fe2ed5cb8b31a26022d5e03ec550b89 Mon Sep 17 00:00:00 2001 From: vdimir Date: Mon, 16 Nov 2020 21:08:31 +0300 Subject: [PATCH 138/425] Minor changes in IP dictionary --- src/Dictionaries/TrieDictionary.cpp | 2 +- tests/performance/ip_trie.xml | 6 +++--- tests/queries/0_stateless/01018_ip_dictionary.reference | 1 + tests/queries/0_stateless/01018_ip_dictionary.sql | 1 + 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Dictionaries/TrieDictionary.cpp b/src/Dictionaries/TrieDictionary.cpp index 0703155903d..9e01ca1347b 100644 --- a/src/Dictionaries/TrieDictionary.cpp +++ b/src/Dictionaries/TrieDictionary.cpp @@ -159,7 +159,7 @@ static bool matchIPv6Subnet(const uint8_t * target, const uint8_t * addr, UInt8 _mm_loadu_si128(reinterpret_cast(addr)))); mask = ~mask; - if (mask) + if (unlikely(mask)) { auto offset = __builtin_ctz(mask); diff --git a/tests/performance/ip_trie.xml b/tests/performance/ip_trie.xml index d5ca0ee3c58..2a28a6716dc 100644 --- a/tests/performance/ip_trie.xml +++ b/tests/performance/ip_trie.xml @@ -15,7 +15,7 @@ 4 as ver, val FROM generateRandom('ipv4 UInt32, val Float32', 0, 30, 30) - LIMIT 500000 + LIMIT 200000 @@ -55,7 +55,7 @@ INSERT INTO table_ip_from_dict - SELECT ip, ver FROM dict_ip_trie_table + SELECT splitByChar('/', ip )[1] as ip, ver FROM dict_ip_trie_table @@ -69,7 +69,7 @@ - SELECT dictGetFloat32('default.dict_ip_trie', 'val', tuple(IPv4StringToNum(ip))) + SELECT dictGetFloat32('default.dict_ip_trie', 'val', tuple(IPv6StringToNum(ip))) FROM table_ip_from_dict WHERE ver == 4 LIMIT 500000 diff --git a/tests/queries/0_stateless/01018_ip_dictionary.reference b/tests/queries/0_stateless/01018_ip_dictionary.reference index 2fb1a7256d1..7fcf75f4d6d 100644 --- a/tests/queries/0_stateless/01018_ip_dictionary.reference +++ b/tests/queries/0_stateless/01018_ip_dictionary.reference @@ -49,6 +49,7 @@ 1 1 1 +1 ***ipv4 trie dict mask*** 1 1 diff --git a/tests/queries/0_stateless/01018_ip_dictionary.sql b/tests/queries/0_stateless/01018_ip_dictionary.sql index 4ea7274e89f..790d38b9306 100644 --- a/tests/queries/0_stateless/01018_ip_dictionary.sql +++ b/tests/queries/0_stateless/01018_ip_dictionary.sql @@ -106,6 +106,7 @@ SELECT 1272 == asn AND 'RU' == cca2 FROM database_for_dict.table_from_ipv4_trie_ WHERE prefix == '127.0.0.2/32'; SELECT 37 == COUNT(*) FROM database_for_dict.table_from_ipv4_trie_dict; +SELECT 37 == COUNT(DISTINCT prefix) FROM database_for_dict.table_from_ipv4_trie_dict; DROP DICTIONARY IF EXISTS database_for_dict.dict_ipv4_trie; DROP TABLE IF EXISTS database_for_dict.table_from_ipv4_trie_dict; From e8492a54e0648087d1dceb50a7a3fc20de3ebd1c Mon Sep 17 00:00:00 2001 From: yangshuai Date: Tue, 17 Nov 2020 17:56:29 +0800 Subject: [PATCH 139/425] Update replication.md Correct spelling --- docs/en/engines/table-engines/mergetree-family/replication.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/engines/table-engines/mergetree-family/replication.md b/docs/en/engines/table-engines/mergetree-family/replication.md index 932facc9ddc..16c6a74d94e 100644 --- a/docs/en/engines/table-engines/mergetree-family/replication.md +++ b/docs/en/engines/table-engines/mergetree-family/replication.md @@ -152,7 +152,7 @@ You can specify default arguments for `Replicated` table engine in the server co ```xml /clickhouse/tables/{shard}/{database}/{table} -{replica} +{replica} ``` In this case, you can omit arguments when creating tables: From 0d1a8ea2a1c12533f3c0d05056837aead7e93487 Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Thu, 17 Sep 2020 21:57:57 +0300 Subject: [PATCH 140/425] first try --- src/Dictionaries/CacheDictionary.cpp | 280 ++++++++++-------- src/Dictionaries/CacheDictionary.h | 86 ++---- src/Dictionaries/CacheDictionary.inc.h | 191 +++++++----- .../CacheDictionary_generate1.cpp | 2 +- .../CacheDictionary_generate2.cpp | 2 +- .../CacheDictionary_generate3.cpp | 2 +- src/Dictionaries/LRUCacheDictionary.cpp | 0 src/Dictionaries/LRUCacheDictionary.h | 0 .../00158_cache_dictionary_has.reference | 6 + .../1_stateful/00158_cache_dictionary_has.sql | 21 ++ 10 files changed, 324 insertions(+), 266 deletions(-) create mode 100644 src/Dictionaries/LRUCacheDictionary.cpp create mode 100644 src/Dictionaries/LRUCacheDictionary.h create mode 100644 tests/queries/1_stateful/00158_cache_dictionary_has.reference create mode 100644 tests/queries/1_stateful/00158_cache_dictionary_has.sql diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index e3140e6fb8b..4b1f77ab823 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -130,7 +130,7 @@ void CacheDictionary::toParent(const PaddedPODArray & ids, PaddedPODArray(hierarchical_attribute->null_values); - getItemsNumberImpl(*hierarchical_attribute, ids, out, [&](const size_t) { return null_value; }); + getItemsNumberImpl("anime", *hierarchical_attribute, ids, out, [&](const size_t) { return null_value; }); } @@ -255,7 +255,7 @@ void CacheDictionary::getString(const std::string & attribute_name, const Padded const auto null_value = StringRef{std::get(attribute.null_values)}; - getItemsString(attribute, ids, out, [&](const size_t) { return null_value; }); + getItemsString(attribute_name, attribute, ids, out, [&](const size_t) { return null_value; }); } void CacheDictionary::getString( @@ -264,7 +264,7 @@ void CacheDictionary::getString( auto & attribute = getAttribute(attribute_name); checkAttributeType(this, attribute_name, attribute.type, AttributeUnderlyingType::utString); - getItemsString(attribute, ids, out, [&](const size_t row) { return def->getDataAt(row); }); + getItemsString(attribute_name, attribute, ids, out, [&](const size_t row) { return def->getDataAt(row); }); } void CacheDictionary::getString( @@ -273,9 +273,51 @@ void CacheDictionary::getString( auto & attribute = getAttribute(attribute_name); checkAttributeType(this, attribute_name, attribute.type, AttributeUnderlyingType::utString); - getItemsString(attribute, ids, out, [&](const size_t) { return StringRef{def}; }); + getItemsString(attribute_name, attribute, ids, out, [&](const size_t) { return StringRef{def}; }); } +template +struct overloaded : Ts... {using Ts::operator()...;}; + +template +overloaded(Ts...) -> overloaded; + +std::string CacheDictionary::AttributeValuesForKey::dump() +{ + std::ostringstream os; + for (auto & attr : values) + std::visit(overloaded { + [&os](UInt8 arg) { os << "type: UInt8, value: " << std::to_string(arg) << "\n"; }, + [&os](UInt16 arg) { os << "type: UInt16, value: " << std::to_string(arg) << "\n"; }, + [&os](UInt32 arg) { os << "type: UInt32, value: " << std::to_string(arg) << "\n"; }, + [&os](UInt64 arg) { os << "type: UInt64, value: " << std::to_string(arg) << "\n"; }, + [&os](UInt128 arg) { os << "type: UInt128, value: " << arg.toHexString() << "\n"; }, + [&os](Int8 arg) { os << "type: Int8, value: " << std::to_string(arg) << "\n"; }, + [&os](Int16 arg) { os << "type: Int16, value: " << std::to_string(arg) << "\n"; }, + [&os](Int32 arg) { os << "type: Int32, value: " << std::to_string(arg) << "\n"; }, + [&os](Int64 arg) { os << "type: Int64, value: " << std::to_string(arg) << "\n"; }, + [&os](Decimal32 arg) { os << "type: Decimal32, value: " << std::to_string(arg) << "\n"; }, + [&os](Decimal64 arg) { os << "type: Decimal64, value: " << std::to_string(arg) << "\n"; }, + [&os](Decimal128) { os << "type: Decimal128, value: ???" << "\n" ; }, + [&os](Float32 arg) { os << "type: Float32, value: " << std::to_string(arg) << "\n"; }, + [&os](Float64 arg) { os << "type: Float64, value: " << std::to_string(arg) << "\n"; }, + [&os](String arg) { os << "type: String, value: " << arg + "\n"; } + }, attr); + return os.str(); +}; + + +std::string CacheDictionary::UpdateUnit::dump_found_ids() +{ + std::string ans; + for (auto it : found_ids) + { + ans += "Key: " + std::to_string(it.first) + "\n"; + if (it.second.found) + ans += it.second.dump() + "\n"; + } + return ans; +}; /// returns cell_idx (always valid for replacing), 'cell is valid' flag, 'cell is outdated' flag /// true false found and valid @@ -325,11 +367,13 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray /// - CacheNotFound ids. We have to go to external storage to know its value. /// Mapping: -> { all indices `i` of `ids` such that `ids[i]` = } - std::unordered_map> cache_expired_ids; - std::unordered_map> cache_not_found_ids; + std::unordered_map> cache_expired_or_not_found_ids; size_t cache_hit = 0; + size_t cache_expired_count = 0; + size_t cache_not_found_count = 0; + const auto rows = ext::size(ids); { const ProfilingScopedReadRWLock read_lock{rw_lock, ProfileEvents::DictCacheLockReadNs}; @@ -354,18 +398,20 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray /// Protection of reading very expired keys. if (now > cells[find_result.cell_idx].strict_max) { - cache_not_found_ids[id].push_back(row); + cache_not_found_count++; + cache_expired_or_not_found_ids[id].push_back(row); continue; } - - cache_expired_ids[id].push_back(row); + cache_expired_count++; + cache_expired_or_not_found_ids[id].push_back(row); if (allow_read_expired_keys) insert_to_answer_routine(); } else { - cache_not_found_ids[id].push_back(row); + cache_not_found_count++; + cache_expired_or_not_found_ids[id].push_back(row); } } else @@ -376,29 +422,28 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray } } - ProfileEvents::increment(ProfileEvents::DictCacheKeysExpired, cache_expired_ids.size()); - ProfileEvents::increment(ProfileEvents::DictCacheKeysNotFound, cache_not_found_ids.size()); + ProfileEvents::increment(ProfileEvents::DictCacheKeysExpired, cache_expired_count); + ProfileEvents::increment(ProfileEvents::DictCacheKeysNotFound, cache_not_found_count); ProfileEvents::increment(ProfileEvents::DictCacheKeysHit, cache_hit); query_count.fetch_add(rows, std::memory_order_relaxed); - hit_count.fetch_add(rows - cache_expired_ids.size() - cache_not_found_ids.size(), std::memory_order_release); + hit_count.fetch_add(rows - cache_expired_count - cache_not_found_count, std::memory_order_release); - if (cache_not_found_ids.empty()) + if (!cache_not_found_count) { /// Nothing to update - return; - if (cache_expired_ids.empty()) + if (!cache_expired_count) return; if (allow_read_expired_keys) { std::vector required_expired_ids; - required_expired_ids.reserve(cache_expired_ids.size()); + required_expired_ids.reserve(cache_expired_count); std::transform( - std::begin(cache_expired_ids), std::end(cache_expired_ids), + std::begin(cache_expired_or_not_found_ids), std::end(cache_expired_or_not_found_ids), std::back_inserter(required_expired_ids), [](auto & pair) { return pair.first; }); - /// Callbacks are empty because we don't want to receive them after an unknown period of time. - auto update_unit_ptr = std::make_shared(required_expired_ids); + auto update_unit_ptr = std::make_shared(std::move(required_expired_ids)); tryPushToUpdateQueueOrThrow(update_unit_ptr); /// Update is async - no need to wait. @@ -411,34 +456,25 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray /// We will update them all synchronously. std::vector required_ids; - required_ids.reserve(cache_not_found_ids.size() + cache_expired_ids.size()); + required_ids.reserve(cache_not_found_count + cache_expired_count); std::transform( - std::begin(cache_not_found_ids), std::end(cache_not_found_ids), - std::back_inserter(required_ids), [](auto & pair) { return pair.first; }); - std::transform( - std::begin(cache_expired_ids), std::end(cache_expired_ids), + std::begin(cache_expired_or_not_found_ids), std::end(cache_expired_or_not_found_ids), std::back_inserter(required_ids), [](auto & pair) { return pair.first; }); - auto on_cell_updated = [&] (const Key id, const size_t) - { - for (const auto row : cache_not_found_ids[id]) - out[row] = true; - for (const auto row : cache_expired_ids[id]) - out[row] = true; - }; - - auto on_id_not_found = [&] (const Key id, const size_t) - { - for (const auto row : cache_not_found_ids[id]) - out[row] = false; - for (const auto row : cache_expired_ids[id]) - out[row] = true; - }; - - auto update_unit_ptr = std::make_shared(required_ids, on_cell_updated, on_id_not_found); + auto update_unit_ptr = std::make_shared(std::move(required_ids)); tryPushToUpdateQueueOrThrow(update_unit_ptr); waitForCurrentUpdateFinish(update_unit_ptr); + + for (auto & [key, value] : update_unit_ptr->found_ids) + { + if (value.found) + for (const auto row : cache_expired_or_not_found_ids[key]) + out[row] = true; + else + for (const auto row : cache_expired_or_not_found_ids[key]) + out[row] = false; + } } @@ -643,13 +679,75 @@ void CacheDictionary::setAttributeValue(Attribute & attribute, const Key idx, co } } + +void CacheDictionary::setAttributeInPlace(AttributeValue & place, AttributeUnderlyingType type, const Field & value) const +{ + switch (type) + { + case AttributeUnderlyingType::utUInt8: + place = value.get(); + break; + case AttributeUnderlyingType::utUInt16: + place = value.get(); + break; + case AttributeUnderlyingType::utUInt32: + place = value.get(); + break; + case AttributeUnderlyingType::utUInt64: + place = value.get(); + break; + case AttributeUnderlyingType::utUInt128: + place = value.get(); + break; + case AttributeUnderlyingType::utInt8: + place = value.get(); + break; + case AttributeUnderlyingType::utInt16: + place = value.get(); + break; + case AttributeUnderlyingType::utInt32: + place = value.get(); + break; + case AttributeUnderlyingType::utInt64: + place = value.get(); + break; + case AttributeUnderlyingType::utFloat32: + place = value.get(); + break; + case AttributeUnderlyingType::utFloat64: + place = value.get(); + break; + case AttributeUnderlyingType::utDecimal32: + place = value.get(); + break; + case AttributeUnderlyingType::utDecimal64: + place = value.get(); + break; + case AttributeUnderlyingType::utDecimal128: + place = value.get(); + break; + case AttributeUnderlyingType::utString: + { + /// FIXME: Work with arena. + place = value.get(); + break; + } + } +} + CacheDictionary::Attribute & CacheDictionary::getAttribute(const std::string & attribute_name) const +{ + const size_t attr_index = getAttributeIndex(attribute_name); + return attributes[attr_index]; +} + +size_t CacheDictionary::getAttributeIndex(const std::string & attribute_name) const { const auto it = attribute_index_by_name.find(attribute_name); if (it == std::end(attribute_index_by_name)) throw Exception{full_name + ": no such attribute '" + attribute_name + "'", ErrorCodes::BAD_ARGUMENTS}; - return attributes[it->second]; + return it->second; } bool CacheDictionary::isEmptyCell(const UInt64 idx) const @@ -805,16 +903,6 @@ void CacheDictionary::waitForCurrentUpdateFinish(UpdateUnitPtr & update_unit_ptr if (!result) { - std::lock_guard callback_lock(update_unit_ptr->callback_mutex); - /* - * We acquire a lock here and store false to special variable to avoid SEGFAULT's. - * Consider timeout for wait had expired and main query's thread ended with exception - * or some other error. But the UpdateUnit with callbacks is left in the queue. - * It has these callback that capture god knows what from the current thread - * (most of the variables lies on the stack of finished thread) that - * intended to do a synchronous update. AsyncUpdate thread can touch deallocated memory and explode. - * */ - update_unit_ptr->can_use_callback = false; throw DB::Exception(ErrorCodes::TIMEOUT_EXCEEDED, "Dictionary {} source seems unavailable, because {}ms timeout exceeded.", getDictionaryID().getNameForLogs(), toString(query_wait_timeout_milliseconds)); @@ -858,12 +946,15 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const CurrentMetrics::Increment metric_increment{CurrentMetrics::DictCacheRequests}; ProfileEvents::increment(ProfileEvents::DictCacheKeysRequested, update_unit_ptr->requested_ids.size()); + auto & map_ids = update_unit_ptr->found_ids; + std::unordered_map remaining_ids{update_unit_ptr->requested_ids.size()}; for (const auto id : update_unit_ptr->requested_ids) remaining_ids.insert({id, 0}); - const auto now = std::chrono::system_clock::now(); + size_t found_num = 0; + const auto now = std::chrono::system_clock::now(); if (now > backoff_end_time.load()) { @@ -876,7 +967,6 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const BlockInputStreamPtr stream = current_source_ptr->loadIds(update_unit_ptr->requested_ids); stream->readPrefix(); - while (true) { Block block = stream->read(); @@ -894,6 +984,8 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const const auto column_ptrs = ext::map( ext::range(0, attributes.size()), [&block](size_t i) { return block.safeGetByPosition(i + 1).column.get(); }); + found_num += ids.size(); + for (const auto i : ext::range(0, ids.size())) { /// Modifying cache with write lock @@ -905,11 +997,20 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const auto & cell = cells[cell_idx]; + auto it = map_ids.find(id); + + auto & all_attributes = it->second; + all_attributes.found = true; + all_attributes.values.assign(attributes.size(), {}); + for (const auto attribute_idx : ext::range(0, attributes.size())) { const auto & attribute_column = *column_ptrs[attribute_idx]; auto & attribute = attributes[attribute_idx]; + auto & place_for_attribute = all_attributes.values[attribute_idx]; + + setAttributeInPlace(place_for_attribute, attribute.type, attribute_column[i]); setAttributeValue(attribute, cell_idx, attribute_column[i]); } @@ -926,7 +1027,6 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const else cell.setExpiresAt(std::chrono::time_point::max()); - update_unit_ptr->callPresentIdHandler(id, cell_idx); /// mark corresponding id as found remaining_ids[id] = 1; } @@ -957,75 +1057,7 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const } } - /// Modifying cache state again with write lock - ProfilingScopedWriteRWLock write_lock{rw_lock, ProfileEvents::DictCacheLockWriteNs}; - size_t not_found_num = 0; - size_t found_num = 0; - - /// Check which ids have not been found and require setting null_value - for (const auto & id_found_pair : remaining_ids) - { - if (id_found_pair.second) - { - ++found_num; - continue; - } - ++not_found_num; - - const auto id = id_found_pair.first; - - const auto find_result = findCellIdx(id, now); - const auto & cell_idx = find_result.cell_idx; - auto & cell = cells[cell_idx]; - - if (error_count) - { - if (find_result.outdated) - { - /// We have expired data for that `id` so we can continue using it. - bool was_default = cell.isDefault(); - cell.setExpiresAt(backoff_end_time); - if (was_default) - cell.setDefault(); - if (was_default) - update_unit_ptr->callAbsentIdHandler(id, cell_idx); - else - update_unit_ptr->callPresentIdHandler(id, cell_idx); - continue; - } - /// We don't have expired data for that `id` so all we can do is to rethrow `last_exception`. - std::rethrow_exception(last_exception); - } - - /// Check if cell had not been occupied before and increment element counter if it hadn't - if (cell.id == 0 && cell_idx != zero_cell_idx) - element_count.fetch_add(1, std::memory_order_relaxed); - - cell.id = id; - - if (dict_lifetime.min_sec != 0 && dict_lifetime.max_sec != 0) - { - std::uniform_int_distribution distribution{dict_lifetime.min_sec, dict_lifetime.max_sec}; - cell.setExpiresAt(now + std::chrono::seconds{distribution(rnd_engine)}); - cell.strict_max = now + std::chrono::seconds{strict_max_lifetime_seconds}; - } - else - { - cell.setExpiresAt(std::chrono::time_point::max()); - cell.strict_max = now + std::chrono::seconds{strict_max_lifetime_seconds}; - } - - - /// Set null_value for each attribute - cell.setDefault(); - for (auto & attribute : attributes) - setDefaultAttributeValue(attribute, cell_idx); - - /// inform caller that the cell has not been found - update_unit_ptr->callAbsentIdHandler(id, cell_idx); - } - - ProfileEvents::increment(ProfileEvents::DictCacheKeysRequestedMiss, not_found_num); + ProfileEvents::increment(ProfileEvents::DictCacheKeysRequestedMiss, update_unit_ptr->requested_ids.size() - found_num); ProfileEvents::increment(ProfileEvents::DictCacheKeysRequestedFound, found_num); ProfileEvents::increment(ProfileEvents::DictCacheRequests); } diff --git a/src/Dictionaries/CacheDictionary.h b/src/Dictionaries/CacheDictionary.h index ee4229b3249..4a3e2b1383e 100644 --- a/src/Dictionaries/CacheDictionary.h +++ b/src/Dictionaries/CacheDictionary.h @@ -64,6 +64,22 @@ public: ~CacheDictionary() override; + using AttributeValue = std::variant< + UInt8, UInt16, UInt32, UInt64, UInt128, + Int8, Int16, Int32, Int64, + Decimal32, Decimal64, Decimal128, + Float32, Float64, String>; + + struct AttributeValuesForKey + { + bool found{false}; + std::vector values; + + std::string dump(); + }; + + using FoundValuesForKeys = std::unordered_map; + std::string getTypeName() const override { return "Cache"; } size_t getBytesAllocated() const override; @@ -224,23 +240,7 @@ private: struct Attribute final { AttributeUnderlyingType type; - std::variant< - UInt8, - UInt16, - UInt32, - UInt64, - UInt128, - Int8, - Int16, - Int32, - Int64, - Decimal32, - Decimal64, - Decimal128, - Float32, - Float64, - String> - null_values; + AttributeValue null_values; std::variant< ContainerPtrType, ContainerPtrType, @@ -265,11 +265,11 @@ private: Attribute createAttributeWithType(const AttributeUnderlyingType type, const Field & null_value); template - void getItemsNumberImpl( + void getItemsNumberImpl(const std::string & attribute_name, Attribute & attribute, const PaddedPODArray & ids, ResultArrayType & out, DefaultGetter && get_default) const; template - void getItemsString(Attribute & attribute, const PaddedPODArray & ids, ColumnString * out, DefaultGetter && get_default) const; + void getItemsString(const std::string & attribute_name, Attribute & attribute, const PaddedPODArray & ids, ColumnString * out, DefaultGetter && get_default) const; PaddedPODArray getCachedIds() const; @@ -281,7 +281,10 @@ private: void setAttributeValue(Attribute & attribute, const Key idx, const Field & value) const; + void setAttributeInPlace(AttributeValue & place, AttributeUnderlyingType type, const Field & value) const; + Attribute & getAttribute(const std::string & attribute_name) const; + size_t getAttributeIndex(const std::string & attribute_name) const; using SharedDictionarySourcePtr = std::shared_ptr; @@ -363,11 +366,6 @@ private: mutable std::atomic hit_count{0}; mutable std::atomic query_count{0}; - /// Field and methods correlated with update expired and not found keys - - using PresentIdHandler = std::function; - using AbsentIdHandler = std::function; - /* * Disclaimer: this comment is written not for fun. * @@ -384,41 +382,17 @@ private: */ struct UpdateUnit { - UpdateUnit(std::vector requested_ids_, - PresentIdHandler present_id_handler_, - AbsentIdHandler absent_id_handler_) : + explicit UpdateUnit(std::vector && requested_ids_) : requested_ids(std::move(requested_ids_)), - alive_keys(CurrentMetrics::CacheDictionaryUpdateQueueKeys, requested_ids.size()), - present_id_handler(present_id_handler_), - absent_id_handler(absent_id_handler_){} - - explicit UpdateUnit(std::vector requested_ids_) : - requested_ids(std::move(requested_ids_)), - alive_keys(CurrentMetrics::CacheDictionaryUpdateQueueKeys, requested_ids.size()), - present_id_handler([](Key, size_t){}), - absent_id_handler([](Key, size_t){}){} - - - void callPresentIdHandler(Key key, size_t cell_idx) + alive_keys(CurrentMetrics::CacheDictionaryUpdateQueueKeys, requested_ids.size()) { - std::lock_guard lock(callback_mutex); - if (can_use_callback) - present_id_handler(key, cell_idx); - } - - void callAbsentIdHandler(Key key, size_t cell_idx) - { - std::lock_guard lock(callback_mutex); - if (can_use_callback) - absent_id_handler(key, cell_idx); + found_ids.reserve(requested_ids.size()); + for (const auto id : requested_ids) + found_ids.insert({id, {}}); } std::vector requested_ids; - - /// It might seem that it is a leak of performance. - /// But acquiring a mutex without contention is rather cheap. - std::mutex callback_mutex; - bool can_use_callback{true}; + FoundValuesForKeys found_ids; std::atomic is_done{false}; std::exception_ptr current_exception{nullptr}; @@ -427,9 +401,7 @@ private: CurrentMetrics::Increment alive_batch{CurrentMetrics::CacheDictionaryUpdateQueueBatches}; CurrentMetrics::Increment alive_keys; - private: - PresentIdHandler present_id_handler; - AbsentIdHandler absent_id_handler; + std::string dump_found_ids(); }; using UpdateUnitPtr = std::shared_ptr; diff --git a/src/Dictionaries/CacheDictionary.inc.h b/src/Dictionaries/CacheDictionary.inc.h index 8c076066e7c..6ed3c59ae0e 100644 --- a/src/Dictionaries/CacheDictionary.inc.h +++ b/src/Dictionaries/CacheDictionary.inc.h @@ -36,7 +36,7 @@ namespace ErrorCodes } template -void CacheDictionary::getItemsNumberImpl( +void CacheDictionary::getItemsNumberImpl(const std::string & attribute_name, Attribute & attribute, const PaddedPODArray & ids, ResultArrayType & out, DefaultGetter && get_default) const { /// First fill everything with default values @@ -44,13 +44,14 @@ void CacheDictionary::getItemsNumberImpl( for (const auto row : ext::range(0, rows)) out[row] = get_default(row); - /// Mapping: -> { all indices `i` of `ids` such that `ids[i]` = } - std::unordered_map> cache_expired_ids; - std::unordered_map> cache_not_found_ids; + /// Maybe there are duplicate keys, so we remember their indices. + std::unordered_map> cache_expired_or_not_found_ids; auto & attribute_array = std::get>(attribute.arrays); size_t cache_hit = 0; + size_t cache_not_found_count = 0; + size_t cache_expired_cound = 0; { const ProfilingScopedReadRWLock read_lock{rw_lock, ProfileEvents::DictCacheLockReadNs}; @@ -84,17 +85,21 @@ void CacheDictionary::getItemsNumberImpl( /// Protection of reading very expired keys. if (now > cells[find_result.cell_idx].strict_max) { - cache_not_found_ids[id].push_back(row); + cache_not_found_count++; + cache_expired_or_not_found_ids[id].push_back(row); continue; } - cache_expired_ids[id].push_back(row); + cache_expired_cound++; + cache_expired_or_not_found_ids[id].push_back(row); + if (allow_read_expired_keys) update_routine(); } else { - cache_not_found_ids[id].push_back(row); + cache_not_found_count++; + cache_expired_or_not_found_ids[id].push_back(row); } } else @@ -105,29 +110,29 @@ void CacheDictionary::getItemsNumberImpl( } } - ProfileEvents::increment(ProfileEvents::DictCacheKeysExpired, cache_expired_ids.size()); - ProfileEvents::increment(ProfileEvents::DictCacheKeysNotFound, cache_not_found_ids.size()); + ProfileEvents::increment(ProfileEvents::DictCacheKeysExpired, cache_expired_cound); + ProfileEvents::increment(ProfileEvents::DictCacheKeysNotFound, cache_not_found_count); ProfileEvents::increment(ProfileEvents::DictCacheKeysHit, cache_hit); query_count.fetch_add(rows, std::memory_order_relaxed); - hit_count.fetch_add(rows - cache_expired_ids.size() - cache_not_found_ids.size(), std::memory_order_release); + hit_count.fetch_add(rows - cache_not_found_count - cache_expired_cound, std::memory_order_release); - if (cache_not_found_ids.empty()) + if (!cache_not_found_count) { /// Nothing to update - return - if (cache_expired_ids.empty()) + if (!cache_expired_cound) return; /// Update async only if allow_read_expired_keys_is_enabledadd condvar usage and better code if (allow_read_expired_keys) { std::vector required_expired_ids; - required_expired_ids.reserve(cache_expired_ids.size()); - std::transform(std::begin(cache_expired_ids), std::end(cache_expired_ids), std::back_inserter(required_expired_ids), - [](auto & pair) { return pair.first; }); + required_expired_ids.reserve(cache_expired_cound); + std::transform(std::begin(cache_expired_or_not_found_ids), std::end(cache_expired_or_not_found_ids), + std::back_inserter(required_expired_ids), [](auto & pair) { return pair.first; }); /// request new values - auto update_unit_ptr = std::make_shared(required_expired_ids); + auto update_unit_ptr = std::make_shared(std::move(required_expired_ids)); tryPushToUpdateQueueOrThrow(update_unit_ptr); @@ -141,38 +146,32 @@ void CacheDictionary::getItemsNumberImpl( /// and there no cache_not_found_ids but some cache_expired. std::vector required_ids; - required_ids.reserve(cache_not_found_ids.size() + cache_expired_ids.size()); - std::transform( - std::begin(cache_not_found_ids), std::end(cache_not_found_ids), - std::back_inserter(required_ids), [](auto & pair) { return pair.first; }); - std::transform( - std::begin(cache_expired_ids), std::end(cache_expired_ids), - std::back_inserter(required_ids), [](auto & pair) { return pair.first; }); - - auto on_cell_updated = - [&attribute_array, &cache_not_found_ids, &cache_expired_ids, &out] - (const auto id, const auto cell_idx) - { - const auto attribute_value = attribute_array[cell_idx]; - - for (const size_t row : cache_not_found_ids[id]) - out[row] = static_cast(attribute_value); - - for (const size_t row : cache_expired_ids[id]) - out[row] = static_cast(attribute_value); - }; - - auto on_id_not_found = [&] (auto, auto) {}; + required_ids.reserve(cache_not_found_count + cache_expired_cound); + std::transform(std::begin(cache_expired_or_not_found_ids), std::end(cache_expired_or_not_found_ids), + std::back_inserter(required_ids), [](auto & pair) { return pair.first; }); /// Request new values - auto update_unit_ptr = std::make_shared(required_ids, on_cell_updated, on_id_not_found); + auto update_unit_ptr = std::make_shared(std::move(required_ids)); tryPushToUpdateQueueOrThrow(update_unit_ptr); waitForCurrentUpdateFinish(update_unit_ptr); + + /// Add updated keys to asnwer. + + const size_t attribute_index = getAttributeIndex(attribute_name); + + for (auto & [key, value] : update_unit_ptr->found_ids) + { + if (value.found) + { + for (const size_t row : cache_expired_or_not_found_ids[key]) + out[row] = std::get(value.values[attribute_index]); + } + } } template -void CacheDictionary::getItemsString( +void CacheDictionary::getItemsString(const std::string & attribute_name, Attribute & attribute, const PaddedPODArray & ids, ColumnString * out, DefaultGetter && get_default) const { const auto rows = ext::size(ids); @@ -210,7 +209,7 @@ void CacheDictionary::getItemsString( } } - /// optimistic code completed successfully + /// Optimistic code completed successfully. if (!found_outdated_values) { query_count.fetch_add(rows, std::memory_order_relaxed); @@ -218,15 +217,17 @@ void CacheDictionary::getItemsString( return; } - /// now onto the pessimistic one, discard possible partial results from the optimistic path + /// Now onto the pessimistic one, discard possible partial results from the optimistic path. out->getChars().resize_assume_reserved(0); out->getOffsets().resize_assume_reserved(0); /// Mapping: -> { all indices `i` of `ids` such that `ids[i]` = } - std::unordered_map> cache_expired_ids; - std::unordered_map> cache_not_found_ids; + std::unordered_map> cache_expired_or_not_found_ids; /// we are going to store every string separately - std::unordered_map map; + std::unordered_map inside_cache; + + size_t cache_not_found_count = 0; + size_t cache_expired_count = 0; size_t total_length = 0; size_t cache_hit = 0; @@ -248,7 +249,7 @@ void CacheDictionary::getItemsString( const auto string_ref = cell.isDefault() ? get_default(row) : attribute_array[cell_idx]; if (!cell.isDefault()) - map[id] = String{string_ref}; + inside_cache[id] = String{string_ref}; total_length += string_ref.size + 1; }; @@ -260,16 +261,23 @@ void CacheDictionary::getItemsString( /// Protection of reading very expired keys. if (now > cells[find_result.cell_idx].strict_max) { - cache_not_found_ids[id].push_back(row); + cache_not_found_count++; + cache_expired_or_not_found_ids[id].push_back(row); continue; } - - cache_expired_ids[id].push_back(row); + + cache_expired_count++; + cache_expired_or_not_found_ids[id].push_back(row); if (allow_read_expired_keys) insert_value_routine(); - } else - cache_not_found_ids[id].push_back(row); + } + else + { + cache_not_found_count++; + cache_expired_or_not_found_ids[id].push_back(row); + } + } else { ++cache_hit; @@ -278,24 +286,24 @@ void CacheDictionary::getItemsString( } } - ProfileEvents::increment(ProfileEvents::DictCacheKeysExpired, cache_expired_ids.size()); - ProfileEvents::increment(ProfileEvents::DictCacheKeysNotFound, cache_not_found_ids.size()); + ProfileEvents::increment(ProfileEvents::DictCacheKeysExpired, cache_expired_count); + ProfileEvents::increment(ProfileEvents::DictCacheKeysNotFound, cache_not_found_count); ProfileEvents::increment(ProfileEvents::DictCacheKeysHit, cache_hit); query_count.fetch_add(rows, std::memory_order_relaxed); - hit_count.fetch_add(rows - cache_expired_ids.size() - cache_not_found_ids.size(), std::memory_order_release); + hit_count.fetch_add(rows - cache_expired_count - cache_not_found_count, std::memory_order_release); /// Async update of expired keys. - if (cache_not_found_ids.empty()) + if (!cache_not_found_count) { - if (allow_read_expired_keys && !cache_expired_ids.empty()) + if (allow_read_expired_keys && cache_expired_count) { std::vector required_expired_ids; - required_expired_ids.reserve(cache_not_found_ids.size()); - std::transform(std::begin(cache_expired_ids), std::end(cache_expired_ids), + required_expired_ids.reserve(cache_expired_count); + std::transform(std::begin(cache_expired_or_not_found_ids), std::end(cache_expired_or_not_found_ids), std::back_inserter(required_expired_ids), [](auto & pair) { return pair.first; }); - auto update_unit_ptr = std::make_shared(required_expired_ids); + auto update_unit_ptr = std::make_shared(std::move(required_expired_ids)); tryPushToUpdateQueueOrThrow(update_unit_ptr); @@ -306,41 +314,60 @@ void CacheDictionary::getItemsString( /// Request new values sync. /// We have request both cache_not_found_ids and cache_expired_ids. std::vector required_ids; - required_ids.reserve(cache_not_found_ids.size() + cache_expired_ids.size()); + required_ids.reserve(cache_not_found_count + cache_expired_count); std::transform( - std::begin(cache_not_found_ids), std::end(cache_not_found_ids), - std::back_inserter(required_ids), [](auto & pair) { return pair.first; }); - std::transform( - std::begin(cache_expired_ids), std::end(cache_expired_ids), + std::begin(cache_expired_or_not_found_ids), std::end(cache_expired_or_not_found_ids), std::back_inserter(required_ids), [](auto & pair) { return pair.first; }); - auto on_cell_updated = [&] (const auto id, const auto cell_idx) - { - const auto attribute_value = attribute_array[cell_idx]; - - map[id] = String{attribute_value}; - total_length += (attribute_value.size + 1) * cache_not_found_ids[id].size(); - }; - - auto on_id_not_found = [&] (const auto id, const auto) - { - for (const auto row : cache_not_found_ids[id]) - total_length += get_default(row).size + 1; - }; - - auto update_unit_ptr = std::make_shared(required_ids, on_cell_updated, on_id_not_found); + auto update_unit_ptr = std::make_shared(std::move(required_ids)); tryPushToUpdateQueueOrThrow(update_unit_ptr); waitForCurrentUpdateFinish(update_unit_ptr); + + const size_t attribute_index = getAttributeIndex(attribute_name); + + /// Only calculate the total length. + for (auto & [key, value] : update_unit_ptr->found_ids) + { + if (value.found) + { + const auto found_value_ref = std::get(value.values[attribute_index]); + total_length += (found_value_ref.size() + 1) * cache_expired_or_not_found_ids[key].size(); + } + else + { + for (const auto row : cache_expired_or_not_found_ids[key]) + total_length += get_default(row).size + 1; + } + } + out->getChars().reserve(total_length); for (const auto row : ext::range(0, ext::size(ids))) { const auto id = ids[row]; - const auto it = map.find(id); - const auto string_ref = it != std::end(map) ? StringRef{it->second} : get_default(row); - out->insertData(string_ref.data, string_ref.size); + StringRef value; + + /// We have two maps: found in cache and found in source. + const auto it = inside_cache.find(id); + if (it != inside_cache.end()) + value = StringRef(it->second); + else + { + const auto found_it = update_unit_ptr->found_ids.find(id); + if (found_it->second.found) + { + std::cout << "size " << found_it->second.values.size() << std::endl; + std::cout << "attribute_index " << attribute_index << std::endl; + value = std::get(found_it->second.values[attribute_index]); + } + + else + value = get_default(row); + } + + out->insertData(value.data, value.size); } } diff --git a/src/Dictionaries/CacheDictionary_generate1.cpp b/src/Dictionaries/CacheDictionary_generate1.cpp index a041f50ea26..aa91463e7d8 100644 --- a/src/Dictionaries/CacheDictionary_generate1.cpp +++ b/src/Dictionaries/CacheDictionary_generate1.cpp @@ -10,7 +10,7 @@ namespace DB auto & attribute = getAttribute(attribute_name); \ checkAttributeType(this, attribute_name, attribute.type, AttributeUnderlyingType::ut##TYPE); \ const auto null_value = std::get(attribute.null_values); \ - getItemsNumberImpl(attribute, ids, out, [&](const size_t) { return null_value; }); \ + getItemsNumberImpl(attribute_name, attribute, ids, out, [&](const size_t) { return null_value; }); \ } DEFINE(UInt8) diff --git a/src/Dictionaries/CacheDictionary_generate2.cpp b/src/Dictionaries/CacheDictionary_generate2.cpp index be28a6302c2..b3f34921f33 100644 --- a/src/Dictionaries/CacheDictionary_generate2.cpp +++ b/src/Dictionaries/CacheDictionary_generate2.cpp @@ -12,7 +12,7 @@ namespace DB { \ auto & attribute = getAttribute(attribute_name); \ checkAttributeType(this, attribute_name, attribute.type, AttributeUnderlyingType::ut##TYPE); \ - getItemsNumberImpl(attribute, ids, out, [&](const size_t row) { return def[row]; }); \ + getItemsNumberImpl(attribute_name, attribute, ids, out, [&](const size_t row) { return def[row]; }); \ } DEFINE(UInt8) diff --git a/src/Dictionaries/CacheDictionary_generate3.cpp b/src/Dictionaries/CacheDictionary_generate3.cpp index 36195f166db..8bef52d3bbd 100644 --- a/src/Dictionaries/CacheDictionary_generate3.cpp +++ b/src/Dictionaries/CacheDictionary_generate3.cpp @@ -9,7 +9,7 @@ namespace DB { \ auto & attribute = getAttribute(attribute_name); \ checkAttributeType(this, attribute_name, attribute.type, AttributeUnderlyingType::ut##TYPE); \ - getItemsNumberImpl(attribute, ids, out, [&](const size_t) { return def; }); \ + getItemsNumberImpl(attribute_name, attribute, ids, out, [&](const size_t) { return def; }); \ } DEFINE(UInt8) diff --git a/src/Dictionaries/LRUCacheDictionary.cpp b/src/Dictionaries/LRUCacheDictionary.cpp new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/Dictionaries/LRUCacheDictionary.h b/src/Dictionaries/LRUCacheDictionary.h new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/queries/1_stateful/00158_cache_dictionary_has.reference b/tests/queries/1_stateful/00158_cache_dictionary_has.reference new file mode 100644 index 00000000000..f8d5cd4f53d --- /dev/null +++ b/tests/queries/1_stateful/00158_cache_dictionary_has.reference @@ -0,0 +1,6 @@ +6410 +6410 +25323 +25323 +1774655 +1774655 diff --git a/tests/queries/1_stateful/00158_cache_dictionary_has.sql b/tests/queries/1_stateful/00158_cache_dictionary_has.sql new file mode 100644 index 00000000000..0bfbaa50d3a --- /dev/null +++ b/tests/queries/1_stateful/00158_cache_dictionary_has.sql @@ -0,0 +1,21 @@ +CREATE DATABASE IF NOT EXISTS db_dict; +DROP DICTIONARY IF EXISTS db_dict.cache_hits; + +CREATE DICTIONARY db_dict.cache_hits +(WatchID UInt64, UserID UInt64, SearchPhrase String) +PRIMARY KEY WatchID +SOURCE(CLICKHOUSE(HOST 'localhost' PORT 9000 USER 'default' TABLE 'hits' PASSWORD '' DB 'test')) +LIFETIME(MIN 300 MAX 600) +LAYOUT(CACHE(SIZE_IN_CELLS 100000 QUERY_WAIT_TIMEOUT_MILLISECONDS 600000)); + +SELECT sum(flag) FROM (SELECT dictHas('db_dict.cache_hits', toUInt64(WatchID)) as flag FROM test.hits PREWHERE WatchID % 1400 == 0); +SELECT count() from test.hits PREWHERE WatchID % 1400 == 0; + +SELECT sum(flag) FROM (SELECT dictHas('db_dict.cache_hits', toUInt64(WatchID)) as flag FROM test.hits PREWHERE WatchID % 350 == 0); +SELECT count() from test.hits PREWHERE WatchID % 350 == 0; + +SELECT sum(flag) FROM (SELECT dictHas('db_dict.cache_hits', toUInt64(WatchID)) as flag FROM test.hits PREWHERE WatchID % 5 == 0); +SELECT count() from test.hits PREWHERE WatchID % 5 == 0; + +DROP DICTIONARY IF EXISTS db_dict.cache_hits; +DROP DATABASE IF EXISTS db_dict; From 02b2b387168514bdf6366ddf5d0b6452a711996b Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Fri, 18 Sep 2020 17:14:37 +0300 Subject: [PATCH 141/425] add normal parent --- src/Dictionaries/CacheDictionary.cpp | 98 +++++++------------ src/Dictionaries/CacheDictionary.h | 7 +- src/Dictionaries/CacheDictionary.inc.h | 13 +-- .../CacheDictionary_generate1.cpp | 2 +- .../CacheDictionary_generate2.cpp | 2 +- .../CacheDictionary_generate3.cpp | 2 +- 6 files changed, 48 insertions(+), 76 deletions(-) diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index 4b1f77ab823..3305671dec7 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -130,7 +130,7 @@ void CacheDictionary::toParent(const PaddedPODArray & ids, PaddedPODArray(hierarchical_attribute->null_values); - getItemsNumberImpl("anime", *hierarchical_attribute, ids, out, [&](const size_t) { return null_value; }); + getItemsNumberImpl(*hierarchical_attribute, ids, out, [&](const size_t) { return null_value; }); } @@ -255,7 +255,7 @@ void CacheDictionary::getString(const std::string & attribute_name, const Padded const auto null_value = StringRef{std::get(attribute.null_values)}; - getItemsString(attribute_name, attribute, ids, out, [&](const size_t) { return null_value; }); + getItemsString(attribute, ids, out, [&](const size_t) { return null_value; }); } void CacheDictionary::getString( @@ -264,7 +264,7 @@ void CacheDictionary::getString( auto & attribute = getAttribute(attribute_name); checkAttributeType(this, attribute_name, attribute.type, AttributeUnderlyingType::utString); - getItemsString(attribute_name, attribute, ids, out, [&](const size_t row) { return def->getDataAt(row); }); + getItemsString(attribute, ids, out, [&](const size_t row) { return def->getDataAt(row); }); } void CacheDictionary::getString( @@ -273,7 +273,7 @@ void CacheDictionary::getString( auto & attribute = getAttribute(attribute_name); checkAttributeType(this, attribute_name, attribute.type, AttributeUnderlyingType::utString); - getItemsString(attribute_name, attribute, ids, out, [&](const size_t) { return StringRef{def}; }); + getItemsString(attribute, ids, out, [&](const size_t) { return StringRef{def}; }); } template @@ -489,7 +489,7 @@ void CacheDictionary::createAttributes() for (const auto & attribute : dict_struct.attributes) { attribute_index_by_name.emplace(attribute.name, attributes.size()); - attributes.push_back(createAttributeWithType(attribute.underlying_type, attribute.null_value)); + attributes.push_back(createAttributeWithTypeAndName(attribute.underlying_type, attribute.name, attribute.null_value)); if (attribute.hierarchical) { @@ -501,9 +501,9 @@ void CacheDictionary::createAttributes() } } -CacheDictionary::Attribute CacheDictionary::createAttributeWithType(const AttributeUnderlyingType type, const Field & null_value) +CacheDictionary::Attribute CacheDictionary::createAttributeWithTypeAndName(const AttributeUnderlyingType type, const String & name, const Field & null_value) { - Attribute attr{type, {}, {}}; + Attribute attr{type, name, {}, {}}; switch (type) { @@ -544,50 +544,25 @@ void CacheDictionary::setDefaultAttributeValue(Attribute & attribute, const Key { switch (attribute.type) { - case AttributeUnderlyingType::utUInt8: - std::get>(attribute.arrays)[idx] = std::get(attribute.null_values); +#define DISPATCH(TYPE) \ + case AttributeUnderlyingType::ut##TYPE: \ + std::get>(attribute.arrays)[idx] = std::get(attribute.null_values); /* NOLINT */ \ break; - case AttributeUnderlyingType::utUInt16: - std::get>(attribute.arrays)[idx] = std::get(attribute.null_values); - break; - case AttributeUnderlyingType::utUInt32: - std::get>(attribute.arrays)[idx] = std::get(attribute.null_values); - break; - case AttributeUnderlyingType::utUInt64: - std::get>(attribute.arrays)[idx] = std::get(attribute.null_values); - break; - case AttributeUnderlyingType::utUInt128: - std::get>(attribute.arrays)[idx] = std::get(attribute.null_values); - break; - case AttributeUnderlyingType::utInt8: - std::get>(attribute.arrays)[idx] = std::get(attribute.null_values); - break; - case AttributeUnderlyingType::utInt16: - std::get>(attribute.arrays)[idx] = std::get(attribute.null_values); - break; - case AttributeUnderlyingType::utInt32: - std::get>(attribute.arrays)[idx] = std::get(attribute.null_values); - break; - case AttributeUnderlyingType::utInt64: - std::get>(attribute.arrays)[idx] = std::get(attribute.null_values); - break; - case AttributeUnderlyingType::utFloat32: - std::get>(attribute.arrays)[idx] = std::get(attribute.null_values); - break; - case AttributeUnderlyingType::utFloat64: - std::get>(attribute.arrays)[idx] = std::get(attribute.null_values); - break; - - case AttributeUnderlyingType::utDecimal32: - std::get>(attribute.arrays)[idx] = std::get(attribute.null_values); - break; - case AttributeUnderlyingType::utDecimal64: - std::get>(attribute.arrays)[idx] = std::get(attribute.null_values); - break; - case AttributeUnderlyingType::utDecimal128: - std::get>(attribute.arrays)[idx] = std::get(attribute.null_values); - break; - + DISPATCH(UInt8) + DISPATCH(UInt16) + DISPATCH(UInt32) + DISPATCH(UInt64) + DISPATCH(UInt128) + DISPATCH(Int8) + DISPATCH(Int16) + DISPATCH(Int32) + DISPATCH(Int64) + DISPATCH(Decimal32) + DISPATCH(Decimal64) + DISPATCH(Decimal128) + DISPATCH(Float32) + DISPATCH(Float64) +#undef DISPATCH case AttributeUnderlyingType::utString: { const auto & null_value_ref = std::get(attribute.null_values); @@ -611,37 +586,38 @@ void CacheDictionary::setAttributeValue(Attribute & attribute, const Key idx, co switch (attribute.type) { case AttributeUnderlyingType::utUInt8: - std::get>(attribute.arrays)[idx] = value.get(); + /// Strange code. Why UInt8 and UInt64? I looked through the history. It's always been like this. + std::get>(attribute.arrays)[idx] = value.safeGet(); break; case AttributeUnderlyingType::utUInt16: - std::get>(attribute.arrays)[idx] = value.get(); + std::get>(attribute.arrays)[idx] = value.safeGet(); break; case AttributeUnderlyingType::utUInt32: - std::get>(attribute.arrays)[idx] = value.get(); + std::get>(attribute.arrays)[idx] = value.safeGet(); break; case AttributeUnderlyingType::utUInt64: - std::get>(attribute.arrays)[idx] = value.get(); + std::get>(attribute.arrays)[idx] = value.safeGet(); break; case AttributeUnderlyingType::utUInt128: - std::get>(attribute.arrays)[idx] = value.get(); + std::get>(attribute.arrays)[idx] = value.safeGet(); break; case AttributeUnderlyingType::utInt8: - std::get>(attribute.arrays)[idx] = value.get(); + std::get>(attribute.arrays)[idx] = value.safeGet(); break; case AttributeUnderlyingType::utInt16: - std::get>(attribute.arrays)[idx] = value.get(); + std::get>(attribute.arrays)[idx] = value.safeGet(); break; case AttributeUnderlyingType::utInt32: - std::get>(attribute.arrays)[idx] = value.get(); + std::get>(attribute.arrays)[idx] = value.safeGet(); break; case AttributeUnderlyingType::utInt64: - std::get>(attribute.arrays)[idx] = value.get(); + std::get>(attribute.arrays)[idx] = value.safeGet(); break; case AttributeUnderlyingType::utFloat32: - std::get>(attribute.arrays)[idx] = value.get(); + std::get>(attribute.arrays)[idx] = value.safeGet(); break; case AttributeUnderlyingType::utFloat64: - std::get>(attribute.arrays)[idx] = value.get(); + std::get>(attribute.arrays)[idx] = value.safeGet(); break; case AttributeUnderlyingType::utDecimal32: diff --git a/src/Dictionaries/CacheDictionary.h b/src/Dictionaries/CacheDictionary.h index 4a3e2b1383e..7e59bd85b0a 100644 --- a/src/Dictionaries/CacheDictionary.h +++ b/src/Dictionaries/CacheDictionary.h @@ -240,6 +240,7 @@ private: struct Attribute final { AttributeUnderlyingType type; + String name; AttributeValue null_values; std::variant< ContainerPtrType, @@ -262,14 +263,14 @@ private: void createAttributes(); - Attribute createAttributeWithType(const AttributeUnderlyingType type, const Field & null_value); + Attribute createAttributeWithTypeAndName(const AttributeUnderlyingType type, const String & name, const Field & null_value); template - void getItemsNumberImpl(const std::string & attribute_name, + void getItemsNumberImpl( Attribute & attribute, const PaddedPODArray & ids, ResultArrayType & out, DefaultGetter && get_default) const; template - void getItemsString(const std::string & attribute_name, Attribute & attribute, const PaddedPODArray & ids, ColumnString * out, DefaultGetter && get_default) const; + void getItemsString(Attribute & attribute, const PaddedPODArray & ids, ColumnString * out, DefaultGetter && get_default) const; PaddedPODArray getCachedIds() const; diff --git a/src/Dictionaries/CacheDictionary.inc.h b/src/Dictionaries/CacheDictionary.inc.h index 6ed3c59ae0e..65acd8dd236 100644 --- a/src/Dictionaries/CacheDictionary.inc.h +++ b/src/Dictionaries/CacheDictionary.inc.h @@ -36,7 +36,7 @@ namespace ErrorCodes } template -void CacheDictionary::getItemsNumberImpl(const std::string & attribute_name, +void CacheDictionary::getItemsNumberImpl( Attribute & attribute, const PaddedPODArray & ids, ResultArrayType & out, DefaultGetter && get_default) const { /// First fill everything with default values @@ -158,7 +158,7 @@ void CacheDictionary::getItemsNumberImpl(const std::string & attribute_name, /// Add updated keys to asnwer. - const size_t attribute_index = getAttributeIndex(attribute_name); + const size_t attribute_index = getAttributeIndex(attribute.name); for (auto & [key, value] : update_unit_ptr->found_ids) { @@ -171,7 +171,7 @@ void CacheDictionary::getItemsNumberImpl(const std::string & attribute_name, } template -void CacheDictionary::getItemsString(const std::string & attribute_name, +void CacheDictionary::getItemsString( Attribute & attribute, const PaddedPODArray & ids, ColumnString * out, DefaultGetter && get_default) const { const auto rows = ext::size(ids); @@ -324,7 +324,7 @@ void CacheDictionary::getItemsString(const std::string & attribute_name, tryPushToUpdateQueueOrThrow(update_unit_ptr); waitForCurrentUpdateFinish(update_unit_ptr); - const size_t attribute_index = getAttributeIndex(attribute_name); + const size_t attribute_index = getAttributeIndex(attribute.name); /// Only calculate the total length. for (auto & [key, value] : update_unit_ptr->found_ids) @@ -357,12 +357,7 @@ void CacheDictionary::getItemsString(const std::string & attribute_name, { const auto found_it = update_unit_ptr->found_ids.find(id); if (found_it->second.found) - { - std::cout << "size " << found_it->second.values.size() << std::endl; - std::cout << "attribute_index " << attribute_index << std::endl; value = std::get(found_it->second.values[attribute_index]); - } - else value = get_default(row); } diff --git a/src/Dictionaries/CacheDictionary_generate1.cpp b/src/Dictionaries/CacheDictionary_generate1.cpp index aa91463e7d8..a041f50ea26 100644 --- a/src/Dictionaries/CacheDictionary_generate1.cpp +++ b/src/Dictionaries/CacheDictionary_generate1.cpp @@ -10,7 +10,7 @@ namespace DB auto & attribute = getAttribute(attribute_name); \ checkAttributeType(this, attribute_name, attribute.type, AttributeUnderlyingType::ut##TYPE); \ const auto null_value = std::get(attribute.null_values); \ - getItemsNumberImpl(attribute_name, attribute, ids, out, [&](const size_t) { return null_value; }); \ + getItemsNumberImpl(attribute, ids, out, [&](const size_t) { return null_value; }); \ } DEFINE(UInt8) diff --git a/src/Dictionaries/CacheDictionary_generate2.cpp b/src/Dictionaries/CacheDictionary_generate2.cpp index b3f34921f33..be28a6302c2 100644 --- a/src/Dictionaries/CacheDictionary_generate2.cpp +++ b/src/Dictionaries/CacheDictionary_generate2.cpp @@ -12,7 +12,7 @@ namespace DB { \ auto & attribute = getAttribute(attribute_name); \ checkAttributeType(this, attribute_name, attribute.type, AttributeUnderlyingType::ut##TYPE); \ - getItemsNumberImpl(attribute_name, attribute, ids, out, [&](const size_t row) { return def[row]; }); \ + getItemsNumberImpl(attribute, ids, out, [&](const size_t row) { return def[row]; }); \ } DEFINE(UInt8) diff --git a/src/Dictionaries/CacheDictionary_generate3.cpp b/src/Dictionaries/CacheDictionary_generate3.cpp index 8bef52d3bbd..36195f166db 100644 --- a/src/Dictionaries/CacheDictionary_generate3.cpp +++ b/src/Dictionaries/CacheDictionary_generate3.cpp @@ -9,7 +9,7 @@ namespace DB { \ auto & attribute = getAttribute(attribute_name); \ checkAttributeType(this, attribute_name, attribute.type, AttributeUnderlyingType::ut##TYPE); \ - getItemsNumberImpl(attribute_name, attribute, ids, out, [&](const size_t) { return def; }); \ + getItemsNumberImpl(attribute, ids, out, [&](const size_t) { return def; }); \ } DEFINE(UInt8) From e75f885ac17f220fa07945308a2428611d2db273 Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Wed, 23 Sep 2020 19:49:18 +0300 Subject: [PATCH 142/425] add test --- .../001501_cache_dictionary_all_fields.sql | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 tests/queries/0_stateless/001501_cache_dictionary_all_fields.sql diff --git a/tests/queries/0_stateless/001501_cache_dictionary_all_fields.sql b/tests/queries/0_stateless/001501_cache_dictionary_all_fields.sql new file mode 100644 index 00000000000..61918aecffe --- /dev/null +++ b/tests/queries/0_stateless/001501_cache_dictionary_all_fields.sql @@ -0,0 +1,58 @@ +CREATE TABLE table_cache_dict( +KeyField UInt64, +UInt8_ UInt8, +UInt16_ UInt16, +UInt32_ UInt32, +UInt64_ UInt64, +Int8_ Int8, +Int16_ Int16, +Int32_ Int32, +Int64_ Int64, +UUID_ UUID, +Date_ Date, +DateTime_ DateTime, +String_ String, +Float32_ Float32, +Float64_ Float64, +ParentKeyField UInt64) +ENGINE = MergeTree() ORDER BY KeyField; + + +CREATE DICTIONARY IF NOT EXISTS cache_dict ( + KeyField UInt64 DEFAULT 9999999, + UInt8_ UInt8 DEFAULT 55, + UInt16_ UInt16 DEFAULT 65535, + UInt32_ UInt32 DEFAULT 4294967295, + UInt64_ UInt64 DEFAULT 18446744073709551615, + Int8_ Int8 DEFAULT -128, + Int16_ Int16 DEFAULT -32768, + Int32_ Int32 DEFAULT -2147483648, + Int64_ Int64 DEFAULT -9223372036854775808, + UUID_ UUID DEFAULT '550e8400-0000-0000-0000-000000000000', + Date_ Date DEFAULT '2018-12-30', + DateTime_ DateTime DEFAULT '2018-12-30 00:00:00', + String_ String DEFAULT 'hi', + Float32_ Float32 DEFAULT 555.11, + Float64_ Float64 DEFAULT 777.11, + ParentKeyField UInt64 DEFAULT 444) +PRIMARY KEY KeyField +SOURCE(CLICKHOUSE(HOST 'localhost' PORT 9000 USER 'default' TABLE 'table_cache_dict' DB 'default')) +LIFETIME(2) LAYOUT(CACHE(SIZE_IN_CELLS 1)); + + +INSERT INTO table_cache_dict VALUES (1, 22, 333, 4444, 55555, -6, -77, -888, -999, '550e8400-e29b-41d4-a716-446655440003', '1973-06-28', '1985-02-28 23:43:25', 'clickhouse', 22.543, 3332154213.4, 0); +INSERT INTO table_cache_dict VALUES (2, 3, 4, 5, 6, -7, -8, -9, -10, '550e8400-e29b-41d4-a716-446655440002', '1978-06-28', '1986-02-28 23:42:25', 'hello', 21.543, 3222154213.4, 1]); + + + +SELECT arrayDistinct(groupArray(dictGetUInt8('default.cache_dict', 'UInt8_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetUInt16('default.cache_dict', 'UInt16_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetUInt32('default.cache_dict', 'UInt32_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetUInt64('default.cache_dict', 'UInt64_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetInt8('default.cache_dict', 'Int8_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetInt16('default.cache_dict', 'Int16_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetInt32('default.cache_dict', 'Int32_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetInt64('default.cache_dict', 'Int64_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetFloat32('default.cache_dict', 'Float32_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetFloat64('default.cache_dict', 'Float64_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetString('default.cache_dict', 'String_', toUInt64(number)))) from numbers(10); \ No newline at end of file From 82c6467a5d4dd45101fd190cdc350a183e05d4dc Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Thu, 24 Sep 2020 16:49:59 +0300 Subject: [PATCH 143/425] better --- src/Dictionaries/CacheDictionary.cpp | 16 +-- .../001501_cache_dictionary_all_fields.sql | 58 --------- ...cache_dictionary_datarace_exception_ptr.sh | 12 +- ...1501_cache_dictionary_all_fields.reference | 33 +++++ .../01501_cache_dictionary_all_fields.sql | 115 ++++++++++++++++++ 5 files changed, 163 insertions(+), 71 deletions(-) delete mode 100644 tests/queries/0_stateless/001501_cache_dictionary_all_fields.sql create mode 100644 tests/queries/0_stateless/01501_cache_dictionary_all_fields.reference create mode 100644 tests/queries/0_stateless/01501_cache_dictionary_all_fields.sql diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index 3305671dec7..a1fb60033fc 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -661,13 +661,13 @@ void CacheDictionary::setAttributeInPlace(AttributeValue & place, AttributeUnder switch (type) { case AttributeUnderlyingType::utUInt8: - place = value.get(); + place = static_cast(value.get()); break; case AttributeUnderlyingType::utUInt16: - place = value.get(); + place = static_cast(value.get()); break; case AttributeUnderlyingType::utUInt32: - place = value.get(); + place = static_cast(value.get()); break; case AttributeUnderlyingType::utUInt64: place = value.get(); @@ -676,20 +676,22 @@ void CacheDictionary::setAttributeInPlace(AttributeValue & place, AttributeUnder place = value.get(); break; case AttributeUnderlyingType::utInt8: - place = value.get(); + place = static_cast(value.get()); break; case AttributeUnderlyingType::utInt16: - place = value.get(); + place = static_cast(value.get()); break; case AttributeUnderlyingType::utInt32: - place = value.get(); + place = static_cast(value.get()); break; case AttributeUnderlyingType::utInt64: place = value.get(); break; case AttributeUnderlyingType::utFloat32: - place = value.get(); + { + place = static_cast(value.get()); break; + } case AttributeUnderlyingType::utFloat64: place = value.get(); break; diff --git a/tests/queries/0_stateless/001501_cache_dictionary_all_fields.sql b/tests/queries/0_stateless/001501_cache_dictionary_all_fields.sql deleted file mode 100644 index 61918aecffe..00000000000 --- a/tests/queries/0_stateless/001501_cache_dictionary_all_fields.sql +++ /dev/null @@ -1,58 +0,0 @@ -CREATE TABLE table_cache_dict( -KeyField UInt64, -UInt8_ UInt8, -UInt16_ UInt16, -UInt32_ UInt32, -UInt64_ UInt64, -Int8_ Int8, -Int16_ Int16, -Int32_ Int32, -Int64_ Int64, -UUID_ UUID, -Date_ Date, -DateTime_ DateTime, -String_ String, -Float32_ Float32, -Float64_ Float64, -ParentKeyField UInt64) -ENGINE = MergeTree() ORDER BY KeyField; - - -CREATE DICTIONARY IF NOT EXISTS cache_dict ( - KeyField UInt64 DEFAULT 9999999, - UInt8_ UInt8 DEFAULT 55, - UInt16_ UInt16 DEFAULT 65535, - UInt32_ UInt32 DEFAULT 4294967295, - UInt64_ UInt64 DEFAULT 18446744073709551615, - Int8_ Int8 DEFAULT -128, - Int16_ Int16 DEFAULT -32768, - Int32_ Int32 DEFAULT -2147483648, - Int64_ Int64 DEFAULT -9223372036854775808, - UUID_ UUID DEFAULT '550e8400-0000-0000-0000-000000000000', - Date_ Date DEFAULT '2018-12-30', - DateTime_ DateTime DEFAULT '2018-12-30 00:00:00', - String_ String DEFAULT 'hi', - Float32_ Float32 DEFAULT 555.11, - Float64_ Float64 DEFAULT 777.11, - ParentKeyField UInt64 DEFAULT 444) -PRIMARY KEY KeyField -SOURCE(CLICKHOUSE(HOST 'localhost' PORT 9000 USER 'default' TABLE 'table_cache_dict' DB 'default')) -LIFETIME(2) LAYOUT(CACHE(SIZE_IN_CELLS 1)); - - -INSERT INTO table_cache_dict VALUES (1, 22, 333, 4444, 55555, -6, -77, -888, -999, '550e8400-e29b-41d4-a716-446655440003', '1973-06-28', '1985-02-28 23:43:25', 'clickhouse', 22.543, 3332154213.4, 0); -INSERT INTO table_cache_dict VALUES (2, 3, 4, 5, 6, -7, -8, -9, -10, '550e8400-e29b-41d4-a716-446655440002', '1978-06-28', '1986-02-28 23:42:25', 'hello', 21.543, 3222154213.4, 1]); - - - -SELECT arrayDistinct(groupArray(dictGetUInt8('default.cache_dict', 'UInt8_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetUInt16('default.cache_dict', 'UInt16_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetUInt32('default.cache_dict', 'UInt32_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetUInt64('default.cache_dict', 'UInt64_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetInt8('default.cache_dict', 'Int8_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetInt16('default.cache_dict', 'Int16_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetInt32('default.cache_dict', 'Int32_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetInt64('default.cache_dict', 'Int64_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetFloat32('default.cache_dict', 'Float32_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetFloat64('default.cache_dict', 'Float64_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetString('default.cache_dict', 'String_', toUInt64(number)))) from numbers(10); \ No newline at end of file diff --git a/tests/queries/0_stateless/01076_cache_dictionary_datarace_exception_ptr.sh b/tests/queries/0_stateless/01076_cache_dictionary_datarace_exception_ptr.sh index 9add67053c9..b37884bda0d 100755 --- a/tests/queries/0_stateless/01076_cache_dictionary_datarace_exception_ptr.sh +++ b/tests/queries/0_stateless/01076_cache_dictionary_datarace_exception_ptr.sh @@ -5,12 +5,12 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) . "$CURDIR"/../shell_config.sh -$CLICKHOUSE_CLIENT --query="CREATE DATABASE dictdb_01076; " +$CLICKHOUSE_CLIENT --query="CREATE DATABASE IF NOT EXISTS dictdb_01076; " $CLICKHOUSE_CLIENT --query=" CREATE TABLE dictdb_01076.table_datarace ( - key_column UInt8, + key_column UUID, value Float64 ) ENGINE = MergeTree() @@ -18,7 +18,7 @@ ORDER BY key_column; " $CLICKHOUSE_CLIENT --query=" -INSERT INTO dictdb_01076.table_datarace VALUES (1, 1.1), (2, 2.2), (3, 3.3); +INSERT INTO dictdb_01076.table_datarace VALUES ('cd5db34f-0c25-4375-b10e-bfb3708ddc72', 1.1), ('cd5db34f-0c25-4375-b10e-bfb3708ddc72', 2.2), ('cd5db34f-0c25-4375-b10e-bfb3708ddc72', 3.3); " $CLICKHOUSE_CLIENT --query=" @@ -30,14 +30,14 @@ CREATE DICTIONARY IF NOT EXISTS dictdb_01076.dict_datarace PRIMARY KEY key_column SOURCE(CLICKHOUSE(HOST 'localhost' PORT 9000 USER 'default' TABLE 'table_datarace' DB 'dictdb_01076')) LIFETIME(1) -LAYOUT(CACHE()); +LAYOUT(CACHE(SIZE_IN_CELLS 10)); " function thread1() { for _ in {1..50} do - # This query will be ended with exception, because source dictionary has UInt8 as a key type. + # This query will be ended with exception, because source dictionary has UUID as a key type. $CLICKHOUSE_CLIENT --query="SELECT dictGetFloat64('dictdb_01076.dict_datarace', 'value', toUInt64(1));" done } @@ -47,7 +47,7 @@ function thread2() { for _ in {1..50} do - # This query will be ended with exception, because source dictionary has UInt8 as a key type. + # This query will be ended with exception, because source dictionary has UUID as a key type. $CLICKHOUSE_CLIENT --query="SELECT dictGetFloat64('dictdb_01076.dict_datarace', 'value', toUInt64(2));" done } diff --git a/tests/queries/0_stateless/01501_cache_dictionary_all_fields.reference b/tests/queries/0_stateless/01501_cache_dictionary_all_fields.reference new file mode 100644 index 00000000000..a67d5f46131 --- /dev/null +++ b/tests/queries/0_stateless/01501_cache_dictionary_all_fields.reference @@ -0,0 +1,33 @@ +[55,2,22,222,174,206] +[65535,3,33,333,3333,33333] +[4294967295,4,44,444,4444,44444] +[18446744073709551615,5,55,555,5555,55555] +[-128,-1,-11,-111,-87,-103] +[-32768,-2,-22,-222,-2222,-22222] +[-2147483648,-3,-33,-333,-3333,-33333] +[-9223372036854775808,-4,-44,-444,-4444,-44444] +[111.11,22.543,21.543,13.334,52.001,33.333] +[222.11,3332154213.4,3111154213.9,3222187213.1,3237554213.5,3222193713.7] +[333.11000,0.00001,0.00002,0.00003,0.00004,0.00005] +[444.110000000000000,0.000000000000001,0.000000000000002,0.000000000000003,0.000000000000004,0.000000000000005] +[555.11000000000000000000000000000000000,0.00000000000000000000000000000000001,0.00000000000000000000000000000000002,0.00000000000000000000000000000000003,0.00000000000000000000000000000000004,0.00000000000000000000000000000000005] +['hi','clickhouse','hello','dbms','MergeTree','dictionary'] +[55,2,22,222,174,206] +[65535,3,33,333,3333,33333] +[4294967295,4,44,444,4444,44444] +[18446744073709551615,5,55,555,5555,55555] +[-128,-1,-11,-111,-87,-103] +[-32768,-2,-22,-222,-2222,-22222] +[-2147483648,-3,-33,-333,-3333,-33333] +[-9223372036854775808,-4,-44,-444,-4444,-44444] +[111.11,22.543,21.543,13.334,52.001,33.333] +[222.11,3332154213.4,3111154213.9,3222187213.1,3237554213.5,3222193713.7] +[333.11000,0.00001,0.00002,0.00003,0.00004,0.00005] +[444.110000000000000,0.000000000000001,0.000000000000002,0.000000000000003,0.000000000000004,0.000000000000005] +[555.11000000000000000000000000000000000,0.00000000000000000000000000000000001,0.00000000000000000000000000000000002,0.00000000000000000000000000000000003,0.00000000000000000000000000000000004,0.00000000000000000000000000000000005] +['hi','clickhouse','hello','dbms','MergeTree','dictionary'] +[0,1,1,1,1,1,0,0,0,0] +[0,1,1,1,1,1,0,0,0,0] +[0,1,1,1,1,1,0,0,0,0] +[0,1,1,1,1,1,0,0,0,0] +[0,1,1,1,1,1,0,0,0,0] diff --git a/tests/queries/0_stateless/01501_cache_dictionary_all_fields.sql b/tests/queries/0_stateless/01501_cache_dictionary_all_fields.sql new file mode 100644 index 00000000000..d9d8c79e33e --- /dev/null +++ b/tests/queries/0_stateless/01501_cache_dictionary_all_fields.sql @@ -0,0 +1,115 @@ +drop table if exists table_cache_dict; +drop dictionary if exists cache_dict; + +CREATE TABLE table_cache_dict( +KeyField UInt64, +UInt8_ UInt8, +UInt16_ UInt16, +UInt32_ UInt32, +UInt64_ UInt64, +Int8_ Int8, +Int16_ Int16, +Int32_ Int32, +Int64_ Int64, +UUID_ UUID, +Date_ Date, +DateTime_ DateTime, +String_ String, +Float32_ Float32, +Float64_ Float64, +Decimal32_ Decimal32(5), +Decimal64_ Decimal64(15), +Decimal128_ Decimal128(35), +ParentKeyField UInt64) +ENGINE = MergeTree() ORDER BY KeyField; + + +CREATE DICTIONARY IF NOT EXISTS cache_dict ( + KeyField UInt64 DEFAULT 9999999, + UInt8_ UInt8 DEFAULT 55, + UInt16_ UInt16 DEFAULT 65535, + UInt32_ UInt32 DEFAULT 4294967295, + UInt64_ UInt64 DEFAULT 18446744073709551615, + Int8_ Int8 DEFAULT -128, + Int16_ Int16 DEFAULT -32768, + Int32_ Int32 DEFAULT -2147483648, + Int64_ Int64 DEFAULT -9223372036854775808, + UUID_ UUID DEFAULT '550e8400-0000-0000-0000-000000000000', + Date_ Date DEFAULT '2018-12-30', + DateTime_ DateTime DEFAULT '2018-12-30 00:00:00', + String_ String DEFAULT 'hi', + Float32_ Float32 DEFAULT 111.11, + Float64_ Float64 DEFAULT 222.11, + Decimal32_ Decimal32(5) DEFAULT 333.11, + Decimal64_ Decimal64(15) DEFAULT 444.11, + Decimal128_ Decimal128(35) DEFAULT 555.11, + ParentKeyField UInt64 DEFAULT 444) +PRIMARY KEY KeyField +SOURCE(CLICKHOUSE(HOST 'localhost' PORT 9000 USER 'default' TABLE 'table_cache_dict' DB 'default')) +LIFETIME(5) LAYOUT(CACHE(SIZE_IN_CELLS 20)); + + +INSERT INTO table_cache_dict VALUES (1, 2, 3, 4, 5, -1, -2, -3, -4, '550e8400-e29b-41d4-a716-446655440003', '1973-06-28', '1985-02-28 23:43:25', 'clickhouse', 22.543, 3332154213.4, toDecimal32('1e-5', 5), toDecimal64('1e-15', 15), toDecimal128('1e-35', 35), 0); +INSERT INTO table_cache_dict VALUES (2, 22, 33, 44, 55, -11, -22, -33, -44, 'cb307805-44f0-49e7-9ae9-9954c543be46', '1978-06-28', '1986-02-28 23:42:25', 'hello', 21.543, 3111154213.9, toDecimal32('2e-5', 5), toDecimal64('2e-15', 15), toDecimal128('2e-35', 35), 1); +INSERT INTO table_cache_dict VALUES (3, 222, 333, 444, 555, -111, -222, -333, -444, 'de7f7ec3-f851-4f8c-afe5-c977cb8cea8d', '1982-06-28', '1999-02-28 23:42:25', 'dbms', 13.334, 3222187213.1, toDecimal32('3e-5', 5), toDecimal64('3e-15', 15), toDecimal128('3e-35', 35), 1); +INSERT INTO table_cache_dict VALUES (4, 2222, 3333, 4444, 5555, -1111, -2222, -3333, -4444, '4bd3829f-0669-43b7-b884-a8e034a68224', '1987-06-28', '2000-02-28 23:42:25', 'MergeTree', 52.001, 3237554213.5, toDecimal32('4e-5', 5), toDecimal64('4e-15', 15), toDecimal128('4e-35', 35), 1); +INSERT INTO table_cache_dict VALUES (5, 22222, 33333, 44444, 55555, -11111, -22222, -33333, -44444, 'ff99a408-78bb-4939-93cc-65e657e347c6', '1991-06-28', '2007-02-28 23:42:25', 'dictionary', 33.333, 3222193713.7, toDecimal32('5e-5', 5), toDecimal64('5e-15', 15), toDecimal128('5e-35', 35), 1); + + +SELECT arrayDistinct(groupArray(dictGetUInt8('default.cache_dict', 'UInt8_', toUInt64(number)))) from numbers(10); +system reload dictionaries; +SELECT arrayDistinct(groupArray(dictGetUInt16('default.cache_dict', 'UInt16_', toUInt64(number)))) from numbers(10); +system reload dictionaries; +SELECT arrayDistinct(groupArray(dictGetUInt32('default.cache_dict', 'UInt32_', toUInt64(number)))) from numbers(10); +system reload dictionaries; +SELECT arrayDistinct(groupArray(dictGetUInt64('default.cache_dict', 'UInt64_', toUInt64(number)))) from numbers(10); +system reload dictionaries; +SELECT arrayDistinct(groupArray(dictGetInt8('default.cache_dict', 'Int8_', toUInt64(number)))) from numbers(10); +system reload dictionaries; +SELECT arrayDistinct(groupArray(dictGetInt16('default.cache_dict', 'Int16_', toUInt64(number)))) from numbers(10); +system reload dictionaries; +SELECT arrayDistinct(groupArray(dictGetInt32('default.cache_dict', 'Int32_', toUInt64(number)))) from numbers(10); +system reload dictionaries; +SELECT arrayDistinct(groupArray(dictGetInt64('default.cache_dict', 'Int64_', toUInt64(number)))) from numbers(10); +system reload dictionaries; +SELECT arrayDistinct(groupArray(dictGetFloat32('default.cache_dict', 'Float32_', toUInt64(number)))) from numbers(10); +system reload dictionaries; +SELECT arrayDistinct(groupArray(dictGetFloat64('default.cache_dict', 'Float64_', toUInt64(number)))) from numbers(10); +system reload dictionaries; +SELECT arrayDistinct(groupArray(dictGet('default.cache_dict', 'Decimal32_', toUInt64(number)))) from numbers(10); +system reload dictionaries; +SELECT arrayDistinct(groupArray(dictGet('default.cache_dict', 'Decimal64_', toUInt64(number)))) from numbers(10); +system reload dictionaries; +SELECT arrayDistinct(groupArray(dictGet('default.cache_dict', 'Decimal128_', toUInt64(number)))) from numbers(10); +system reload dictionaries; +SELECT arrayDistinct(groupArray(dictGetString('default.cache_dict', 'String_', toUInt64(number)))) from numbers(10); + + + +SELECT arrayDistinct(groupArray(dictGetUInt8('default.cache_dict', 'UInt8_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetUInt16('default.cache_dict', 'UInt16_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetUInt32('default.cache_dict', 'UInt32_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetUInt64('default.cache_dict', 'UInt64_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetInt8('default.cache_dict', 'Int8_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetInt16('default.cache_dict', 'Int16_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetInt32('default.cache_dict', 'Int32_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetInt64('default.cache_dict', 'Int64_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetFloat32('default.cache_dict', 'Float32_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetFloat64('default.cache_dict', 'Float64_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGet('default.cache_dict', 'Decimal32_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGet('default.cache_dict', 'Decimal64_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGet('default.cache_dict', 'Decimal128_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetString('default.cache_dict', 'String_', toUInt64(number)))) from numbers(10); + + +system reload dictionaries; + + +SELECT groupArray(dictHas('default.cache_dict', toUInt64(number))) from numbers(10); +SELECT groupArray(dictHas('default.cache_dict', toUInt64(number))) from numbers(10); +SELECT groupArray(dictHas('default.cache_dict', toUInt64(number))) from numbers(10); +SELECT groupArray(dictHas('default.cache_dict', toUInt64(number))) from numbers(10); +SELECT groupArray(dictHas('default.cache_dict', toUInt64(number))) from numbers(10); + +drop table if exists table_cache_dict; +drop dictionary if exists cache_dict; \ No newline at end of file From 720d3a411ff38a79003010eee29456834440747f Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Thu, 24 Sep 2020 18:53:14 +0300 Subject: [PATCH 144/425] skip unused keys --- src/Dictionaries/CacheDictionary.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index a1fb60033fc..27767345b9f 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -977,6 +977,10 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const auto it = map_ids.find(id); + /// We have some extra keys from source. Won't add them to cache. + if (it == map_ids.end()) + continue; + auto & all_attributes = it->second; all_attributes.found = true; all_attributes.values.assign(attributes.size(), {}); From d5408b62951b1f2b2af3f47ec62a023e6669a2cb Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Thu, 24 Sep 2020 19:43:43 +0300 Subject: [PATCH 145/425] unique db to test --- .../01501_cache_dictionary_all_fields.sql | 93 ++++++++++--------- 1 file changed, 49 insertions(+), 44 deletions(-) diff --git a/tests/queries/0_stateless/01501_cache_dictionary_all_fields.sql b/tests/queries/0_stateless/01501_cache_dictionary_all_fields.sql index d9d8c79e33e..8bffaeacf4e 100644 --- a/tests/queries/0_stateless/01501_cache_dictionary_all_fields.sql +++ b/tests/queries/0_stateless/01501_cache_dictionary_all_fields.sql @@ -1,7 +1,11 @@ -drop table if exists table_cache_dict; -drop dictionary if exists cache_dict; +drop database if exists db_01501; +drop table if exists db_01501.table_cache_dict; +drop dictionary if exists db_01501.cache_dict; -CREATE TABLE table_cache_dict( + +create database db_01501; + +CREATE TABLE db_01501.table_cache_dict( KeyField UInt64, UInt8_ UInt8, UInt16_ UInt16, @@ -24,7 +28,7 @@ ParentKeyField UInt64) ENGINE = MergeTree() ORDER BY KeyField; -CREATE DICTIONARY IF NOT EXISTS cache_dict ( +CREATE DICTIONARY IF NOT EXISTS db_01501.cache_dict ( KeyField UInt64 DEFAULT 9999999, UInt8_ UInt8 DEFAULT 55, UInt16_ UInt16 DEFAULT 65535, @@ -45,71 +49,72 @@ CREATE DICTIONARY IF NOT EXISTS cache_dict ( Decimal128_ Decimal128(35) DEFAULT 555.11, ParentKeyField UInt64 DEFAULT 444) PRIMARY KEY KeyField -SOURCE(CLICKHOUSE(HOST 'localhost' PORT 9000 USER 'default' TABLE 'table_cache_dict' DB 'default')) +SOURCE(CLICKHOUSE(HOST 'localhost' PORT 9000 USER 'default' TABLE 'table_cache_dict' DB 'db_01501')) LIFETIME(5) LAYOUT(CACHE(SIZE_IN_CELLS 20)); -INSERT INTO table_cache_dict VALUES (1, 2, 3, 4, 5, -1, -2, -3, -4, '550e8400-e29b-41d4-a716-446655440003', '1973-06-28', '1985-02-28 23:43:25', 'clickhouse', 22.543, 3332154213.4, toDecimal32('1e-5', 5), toDecimal64('1e-15', 15), toDecimal128('1e-35', 35), 0); -INSERT INTO table_cache_dict VALUES (2, 22, 33, 44, 55, -11, -22, -33, -44, 'cb307805-44f0-49e7-9ae9-9954c543be46', '1978-06-28', '1986-02-28 23:42:25', 'hello', 21.543, 3111154213.9, toDecimal32('2e-5', 5), toDecimal64('2e-15', 15), toDecimal128('2e-35', 35), 1); -INSERT INTO table_cache_dict VALUES (3, 222, 333, 444, 555, -111, -222, -333, -444, 'de7f7ec3-f851-4f8c-afe5-c977cb8cea8d', '1982-06-28', '1999-02-28 23:42:25', 'dbms', 13.334, 3222187213.1, toDecimal32('3e-5', 5), toDecimal64('3e-15', 15), toDecimal128('3e-35', 35), 1); -INSERT INTO table_cache_dict VALUES (4, 2222, 3333, 4444, 5555, -1111, -2222, -3333, -4444, '4bd3829f-0669-43b7-b884-a8e034a68224', '1987-06-28', '2000-02-28 23:42:25', 'MergeTree', 52.001, 3237554213.5, toDecimal32('4e-5', 5), toDecimal64('4e-15', 15), toDecimal128('4e-35', 35), 1); -INSERT INTO table_cache_dict VALUES (5, 22222, 33333, 44444, 55555, -11111, -22222, -33333, -44444, 'ff99a408-78bb-4939-93cc-65e657e347c6', '1991-06-28', '2007-02-28 23:42:25', 'dictionary', 33.333, 3222193713.7, toDecimal32('5e-5', 5), toDecimal64('5e-15', 15), toDecimal128('5e-35', 35), 1); +INSERT INTO db_01501.table_cache_dict VALUES (1, 2, 3, 4, 5, -1, -2, -3, -4, '550e8400-e29b-41d4-a716-446655440003', '1973-06-28', '1985-02-28 23:43:25', 'clickhouse', 22.543, 3332154213.4, toDecimal32('1e-5', 5), toDecimal64('1e-15', 15), toDecimal128('1e-35', 35), 0); +INSERT INTO db_01501.table_cache_dict VALUES (2, 22, 33, 44, 55, -11, -22, -33, -44, 'cb307805-44f0-49e7-9ae9-9954c543be46', '1978-06-28', '1986-02-28 23:42:25', 'hello', 21.543, 3111154213.9, toDecimal32('2e-5', 5), toDecimal64('2e-15', 15), toDecimal128('2e-35', 35), 1); +INSERT INTO db_01501.table_cache_dict VALUES (3, 222, 333, 444, 555, -111, -222, -333, -444, 'de7f7ec3-f851-4f8c-afe5-c977cb8cea8d', '1982-06-28', '1999-02-28 23:42:25', 'dbms', 13.334, 3222187213.1, toDecimal32('3e-5', 5), toDecimal64('3e-15', 15), toDecimal128('3e-35', 35), 1); +INSERT INTO db_01501.table_cache_dict VALUES (4, 2222, 3333, 4444, 5555, -1111, -2222, -3333, -4444, '4bd3829f-0669-43b7-b884-a8e034a68224', '1987-06-28', '2000-02-28 23:42:25', 'MergeTree', 52.001, 3237554213.5, toDecimal32('4e-5', 5), toDecimal64('4e-15', 15), toDecimal128('4e-35', 35), 1); +INSERT INTO db_01501.table_cache_dict VALUES (5, 22222, 33333, 44444, 55555, -11111, -22222, -33333, -44444, 'ff99a408-78bb-4939-93cc-65e657e347c6', '1991-06-28', '2007-02-28 23:42:25', 'dictionary', 33.333, 3222193713.7, toDecimal32('5e-5', 5), toDecimal64('5e-15', 15), toDecimal128('5e-35', 35), 1); -SELECT arrayDistinct(groupArray(dictGetUInt8('default.cache_dict', 'UInt8_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetUInt8('db_01501.cache_dict', 'UInt8_', toUInt64(number)))) from numbers(10); system reload dictionaries; -SELECT arrayDistinct(groupArray(dictGetUInt16('default.cache_dict', 'UInt16_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetUInt16('db_01501.cache_dict', 'UInt16_', toUInt64(number)))) from numbers(10); system reload dictionaries; -SELECT arrayDistinct(groupArray(dictGetUInt32('default.cache_dict', 'UInt32_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetUInt32('db_01501.cache_dict', 'UInt32_', toUInt64(number)))) from numbers(10); system reload dictionaries; -SELECT arrayDistinct(groupArray(dictGetUInt64('default.cache_dict', 'UInt64_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetUInt64('db_01501.cache_dict', 'UInt64_', toUInt64(number)))) from numbers(10); system reload dictionaries; -SELECT arrayDistinct(groupArray(dictGetInt8('default.cache_dict', 'Int8_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetInt8('db_01501.cache_dict', 'Int8_', toUInt64(number)))) from numbers(10); system reload dictionaries; -SELECT arrayDistinct(groupArray(dictGetInt16('default.cache_dict', 'Int16_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetInt16('db_01501.cache_dict', 'Int16_', toUInt64(number)))) from numbers(10); system reload dictionaries; -SELECT arrayDistinct(groupArray(dictGetInt32('default.cache_dict', 'Int32_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetInt32('db_01501.cache_dict', 'Int32_', toUInt64(number)))) from numbers(10); system reload dictionaries; -SELECT arrayDistinct(groupArray(dictGetInt64('default.cache_dict', 'Int64_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetInt64('db_01501.cache_dict', 'Int64_', toUInt64(number)))) from numbers(10); system reload dictionaries; -SELECT arrayDistinct(groupArray(dictGetFloat32('default.cache_dict', 'Float32_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetFloat32('db_01501.cache_dict', 'Float32_', toUInt64(number)))) from numbers(10); system reload dictionaries; -SELECT arrayDistinct(groupArray(dictGetFloat64('default.cache_dict', 'Float64_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetFloat64('db_01501.cache_dict', 'Float64_', toUInt64(number)))) from numbers(10); system reload dictionaries; -SELECT arrayDistinct(groupArray(dictGet('default.cache_dict', 'Decimal32_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGet('db_01501.cache_dict', 'Decimal32_', toUInt64(number)))) from numbers(10); system reload dictionaries; -SELECT arrayDistinct(groupArray(dictGet('default.cache_dict', 'Decimal64_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGet('db_01501.cache_dict', 'Decimal64_', toUInt64(number)))) from numbers(10); system reload dictionaries; -SELECT arrayDistinct(groupArray(dictGet('default.cache_dict', 'Decimal128_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGet('db_01501.cache_dict', 'Decimal128_', toUInt64(number)))) from numbers(10); system reload dictionaries; -SELECT arrayDistinct(groupArray(dictGetString('default.cache_dict', 'String_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetString('db_01501.cache_dict', 'String_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetUInt8('default.cache_dict', 'UInt8_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetUInt16('default.cache_dict', 'UInt16_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetUInt32('default.cache_dict', 'UInt32_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetUInt64('default.cache_dict', 'UInt64_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetInt8('default.cache_dict', 'Int8_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetInt16('default.cache_dict', 'Int16_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetInt32('default.cache_dict', 'Int32_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetInt64('default.cache_dict', 'Int64_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetFloat32('default.cache_dict', 'Float32_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetFloat64('default.cache_dict', 'Float64_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGet('default.cache_dict', 'Decimal32_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGet('default.cache_dict', 'Decimal64_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGet('default.cache_dict', 'Decimal128_', toUInt64(number)))) from numbers(10); -SELECT arrayDistinct(groupArray(dictGetString('default.cache_dict', 'String_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetUInt8('db_01501.cache_dict', 'UInt8_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetUInt16('db_01501.cache_dict', 'UInt16_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetUInt32('db_01501.cache_dict', 'UInt32_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetUInt64('db_01501.cache_dict', 'UInt64_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetInt8('db_01501.cache_dict', 'Int8_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetInt16('db_01501.cache_dict', 'Int16_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetInt32('db_01501.cache_dict', 'Int32_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetInt64('db_01501.cache_dict', 'Int64_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetFloat32('db_01501.cache_dict', 'Float32_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetFloat64('db_01501.cache_dict', 'Float64_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGet('db_01501.cache_dict', 'Decimal32_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGet('db_01501.cache_dict', 'Decimal64_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGet('db_01501.cache_dict', 'Decimal128_', toUInt64(number)))) from numbers(10); +SELECT arrayDistinct(groupArray(dictGetString('db_01501.cache_dict', 'String_', toUInt64(number)))) from numbers(10); system reload dictionaries; -SELECT groupArray(dictHas('default.cache_dict', toUInt64(number))) from numbers(10); -SELECT groupArray(dictHas('default.cache_dict', toUInt64(number))) from numbers(10); -SELECT groupArray(dictHas('default.cache_dict', toUInt64(number))) from numbers(10); -SELECT groupArray(dictHas('default.cache_dict', toUInt64(number))) from numbers(10); -SELECT groupArray(dictHas('default.cache_dict', toUInt64(number))) from numbers(10); +SELECT groupArray(dictHas('db_01501.cache_dict', toUInt64(number))) from numbers(10); +SELECT groupArray(dictHas('db_01501.cache_dict', toUInt64(number))) from numbers(10); +SELECT groupArray(dictHas('db_01501.cache_dict', toUInt64(number))) from numbers(10); +SELECT groupArray(dictHas('db_01501.cache_dict', toUInt64(number))) from numbers(10); +SELECT groupArray(dictHas('db_01501.cache_dict', toUInt64(number))) from numbers(10); drop table if exists table_cache_dict; -drop dictionary if exists cache_dict; \ No newline at end of file +drop dictionary if exists cache_dict; +drop database if exists db_01501; \ No newline at end of file From 3df6e457f74221169cda89c477d2500983735d54 Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Fri, 25 Sep 2020 19:56:22 +0300 Subject: [PATCH 146/425] style --- src/Dictionaries/CacheDictionary.cpp | 6 +++--- src/Dictionaries/CacheDictionary.h | 6 +++--- src/Dictionaries/CacheDictionary.inc.h | 11 +++++------ src/Dictionaries/LRUCacheDictionary.cpp | 0 src/Dictionaries/LRUCacheDictionary.h | 0 5 files changed, 11 insertions(+), 12 deletions(-) delete mode 100644 src/Dictionaries/LRUCacheDictionary.cpp delete mode 100644 src/Dictionaries/LRUCacheDictionary.h diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index 27767345b9f..e955aeba933 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -307,7 +307,7 @@ std::string CacheDictionary::AttributeValuesForKey::dump() }; -std::string CacheDictionary::UpdateUnit::dump_found_ids() +std::string CacheDictionary::UpdateUnit::dumpFoundIds() { std::string ans; for (auto it : found_ids) @@ -471,7 +471,7 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray if (value.found) for (const auto row : cache_expired_or_not_found_ids[key]) out[row] = true; - else + else for (const auto row : cache_expired_or_not_found_ids[key]) out[row] = false; } @@ -725,7 +725,7 @@ size_t CacheDictionary::getAttributeIndex(const std::string & attribute_name) co if (it == std::end(attribute_index_by_name)) throw Exception{full_name + ": no such attribute '" + attribute_name + "'", ErrorCodes::BAD_ARGUMENTS}; - return it->second; + return it->second; } bool CacheDictionary::isEmptyCell(const UInt64 idx) const diff --git a/src/Dictionaries/CacheDictionary.h b/src/Dictionaries/CacheDictionary.h index 7e59bd85b0a..b146ee0bfa1 100644 --- a/src/Dictionaries/CacheDictionary.h +++ b/src/Dictionaries/CacheDictionary.h @@ -70,7 +70,7 @@ public: Decimal32, Decimal64, Decimal128, Float32, Float64, String>; - struct AttributeValuesForKey + struct AttributeValuesForKey { bool found{false}; std::vector values; @@ -266,7 +266,7 @@ private: Attribute createAttributeWithTypeAndName(const AttributeUnderlyingType type, const String & name, const Field & null_value); template - void getItemsNumberImpl( + void getItemsNumberImpl( Attribute & attribute, const PaddedPODArray & ids, ResultArrayType & out, DefaultGetter && get_default) const; template @@ -402,7 +402,7 @@ private: CurrentMetrics::Increment alive_batch{CurrentMetrics::CacheDictionaryUpdateQueueBatches}; CurrentMetrics::Increment alive_keys; - std::string dump_found_ids(); + std::string dumpFoundIds(); }; using UpdateUnitPtr = std::shared_ptr; diff --git a/src/Dictionaries/CacheDictionary.inc.h b/src/Dictionaries/CacheDictionary.inc.h index 65acd8dd236..42b7891c561 100644 --- a/src/Dictionaries/CacheDictionary.inc.h +++ b/src/Dictionaries/CacheDictionary.inc.h @@ -128,7 +128,7 @@ void CacheDictionary::getItemsNumberImpl( { std::vector required_expired_ids; required_expired_ids.reserve(cache_expired_cound); - std::transform(std::begin(cache_expired_or_not_found_ids), std::end(cache_expired_or_not_found_ids), + std::transform(std::begin(cache_expired_or_not_found_ids), std::end(cache_expired_or_not_found_ids), std::back_inserter(required_expired_ids), [](auto & pair) { return pair.first; }); /// request new values @@ -147,7 +147,7 @@ void CacheDictionary::getItemsNumberImpl( std::vector required_ids; required_ids.reserve(cache_not_found_count + cache_expired_cound); - std::transform(std::begin(cache_expired_or_not_found_ids), std::end(cache_expired_or_not_found_ids), + std::transform(std::begin(cache_expired_or_not_found_ids), std::end(cache_expired_or_not_found_ids), std::back_inserter(required_ids), [](auto & pair) { return pair.first; }); /// Request new values @@ -155,7 +155,7 @@ void CacheDictionary::getItemsNumberImpl( tryPushToUpdateQueueOrThrow(update_unit_ptr); waitForCurrentUpdateFinish(update_unit_ptr); - + /// Add updated keys to asnwer. const size_t attribute_index = getAttributeIndex(attribute.name); @@ -265,19 +265,18 @@ void CacheDictionary::getItemsString( cache_expired_or_not_found_ids[id].push_back(row); continue; } - + cache_expired_count++; cache_expired_or_not_found_ids[id].push_back(row); if (allow_read_expired_keys) insert_value_routine(); - } + } else { cache_not_found_count++; cache_expired_or_not_found_ids[id].push_back(row); } - } else { ++cache_hit; diff --git a/src/Dictionaries/LRUCacheDictionary.cpp b/src/Dictionaries/LRUCacheDictionary.cpp deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/Dictionaries/LRUCacheDictionary.h b/src/Dictionaries/LRUCacheDictionary.h deleted file mode 100644 index e69de29bb2d..00000000000 From d52e72d66c8ca9b0c0da8c2dc50f0ec7bf8654e6 Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Mon, 28 Sep 2020 17:48:32 +0300 Subject: [PATCH 147/425] type_id cast --- src/Dictionaries/CacheDictionary.cpp | 181 +++++++++++++++------------ src/Dictionaries/CacheDictionary.h | 2 +- 2 files changed, 105 insertions(+), 78 deletions(-) diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index e955aeba933..0e826b860fc 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -277,16 +277,16 @@ void CacheDictionary::getString( } template -struct overloaded : Ts... {using Ts::operator()...;}; +struct Overloaded : Ts... {using Ts::operator()...;}; template -overloaded(Ts...) -> overloaded; +Overloaded(Ts...) -> Overloaded; std::string CacheDictionary::AttributeValuesForKey::dump() { std::ostringstream os; for (auto & attr : values) - std::visit(overloaded { + std::visit(Overloaded { [&os](UInt8 arg) { os << "type: UInt8, value: " << std::to_string(arg) << "\n"; }, [&os](UInt16 arg) { os << "type: UInt16, value: " << std::to_string(arg) << "\n"; }, [&os](UInt32 arg) { os << "type: UInt32, value: " << std::to_string(arg) << "\n"; }, @@ -586,40 +586,38 @@ void CacheDictionary::setAttributeValue(Attribute & attribute, const Key idx, co switch (attribute.type) { case AttributeUnderlyingType::utUInt8: - /// Strange code. Why UInt8 and UInt64? I looked through the history. It's always been like this. - std::get>(attribute.arrays)[idx] = value.safeGet(); + std::get>(attribute.arrays)[idx] = value.get(); break; case AttributeUnderlyingType::utUInt16: - std::get>(attribute.arrays)[idx] = value.safeGet(); + std::get>(attribute.arrays)[idx] = value.get(); break; case AttributeUnderlyingType::utUInt32: - std::get>(attribute.arrays)[idx] = value.safeGet(); + std::get>(attribute.arrays)[idx] = value.get(); break; case AttributeUnderlyingType::utUInt64: - std::get>(attribute.arrays)[idx] = value.safeGet(); + std::get>(attribute.arrays)[idx] = value.get(); break; case AttributeUnderlyingType::utUInt128: - std::get>(attribute.arrays)[idx] = value.safeGet(); + std::get>(attribute.arrays)[idx] = value.get(); break; case AttributeUnderlyingType::utInt8: - std::get>(attribute.arrays)[idx] = value.safeGet(); + std::get>(attribute.arrays)[idx] = value.get(); break; case AttributeUnderlyingType::utInt16: - std::get>(attribute.arrays)[idx] = value.safeGet(); + std::get>(attribute.arrays)[idx] = value.get(); break; case AttributeUnderlyingType::utInt32: - std::get>(attribute.arrays)[idx] = value.safeGet(); + std::get>(attribute.arrays)[idx] = value.get(); break; case AttributeUnderlyingType::utInt64: - std::get>(attribute.arrays)[idx] = value.safeGet(); + std::get>(attribute.arrays)[idx] = value.get(); break; case AttributeUnderlyingType::utFloat32: - std::get>(attribute.arrays)[idx] = value.safeGet(); + std::get>(attribute.arrays)[idx] = value.get(); break; case AttributeUnderlyingType::utFloat64: - std::get>(attribute.arrays)[idx] = value.safeGet(); + std::get>(attribute.arrays)[idx] = value.get(); break; - case AttributeUnderlyingType::utDecimal32: std::get>(attribute.arrays)[idx] = value.get(); break; @@ -656,63 +654,6 @@ void CacheDictionary::setAttributeValue(Attribute & attribute, const Key idx, co } -void CacheDictionary::setAttributeInPlace(AttributeValue & place, AttributeUnderlyingType type, const Field & value) const -{ - switch (type) - { - case AttributeUnderlyingType::utUInt8: - place = static_cast(value.get()); - break; - case AttributeUnderlyingType::utUInt16: - place = static_cast(value.get()); - break; - case AttributeUnderlyingType::utUInt32: - place = static_cast(value.get()); - break; - case AttributeUnderlyingType::utUInt64: - place = value.get(); - break; - case AttributeUnderlyingType::utUInt128: - place = value.get(); - break; - case AttributeUnderlyingType::utInt8: - place = static_cast(value.get()); - break; - case AttributeUnderlyingType::utInt16: - place = static_cast(value.get()); - break; - case AttributeUnderlyingType::utInt32: - place = static_cast(value.get()); - break; - case AttributeUnderlyingType::utInt64: - place = value.get(); - break; - case AttributeUnderlyingType::utFloat32: - { - place = static_cast(value.get()); - break; - } - case AttributeUnderlyingType::utFloat64: - place = value.get(); - break; - case AttributeUnderlyingType::utDecimal32: - place = value.get(); - break; - case AttributeUnderlyingType::utDecimal64: - place = value.get(); - break; - case AttributeUnderlyingType::utDecimal128: - place = value.get(); - break; - case AttributeUnderlyingType::utString: - { - /// FIXME: Work with arena. - place = value.get(); - break; - } - } -} - CacheDictionary::Attribute & CacheDictionary::getAttribute(const std::string & attribute_name) const { const size_t attr_index = getAttributeIndex(attribute_name); @@ -919,6 +860,95 @@ void CacheDictionary::tryPushToUpdateQueueOrThrow(UpdateUnitPtr & update_unit_pt std::to_string(update_queue.size())); } + +std::vector CacheDictionary::getAttributeValuesFromBlockAtPosition(const std::vector & column_ptrs, size_t position) +{ + std::vector answer; + answer.reserve(column_ptrs.size()); + + for (size_t i = 0; i < column_ptrs.size(); ++i) + { + const auto pure_column = column_ptrs[i]; + + if (auto column = typeid_cast(pure_column)) + { + answer.emplace_back(column->getElement(position)); + continue; + } + if (auto column = typeid_cast(pure_column)) + { + answer.emplace_back(column->getElement(position)); + continue; + } + if (auto column = typeid_cast(pure_column)) + { + answer.emplace_back(column->getElement(position)); + continue; + } + if (auto column = typeid_cast(pure_column)) + { + answer.emplace_back(column->getElement(position)); + continue; + } + if (auto column = typeid_cast(pure_column)) + { + answer.emplace_back(column->getElement(position)); + continue; + } + if (auto column = typeid_cast(pure_column)) + { + answer.emplace_back(column->getElement(position)); + continue; + } + if (auto column = typeid_cast(pure_column)) + { + answer.emplace_back(column->getElement(position)); + continue; + } + if (auto column = typeid_cast(pure_column)) + { + answer.emplace_back(column->getElement(position)); + continue; + } + if (auto column = typeid_cast(pure_column)) + { + answer.emplace_back(column->getElement(position)); + continue; + } + if (auto column = typeid_cast(pure_column)) + { + answer.emplace_back(column->getElement(position)); + continue; + } + if (auto column = typeid_cast(pure_column)) + { + answer.emplace_back(column->getElement(position)); + continue; + } + if (auto column = typeid_cast *>(pure_column)) + { + answer.emplace_back(column->getElement(position)); + continue; + } + if (auto column = typeid_cast *>(pure_column)) + { + answer.emplace_back(column->getElement(position)); + continue; + } + if (auto column = typeid_cast *>(pure_column)) + { + answer.emplace_back(column->getElement(position)); + continue; + } + if (auto column = typeid_cast(pure_column)) + { + answer.emplace_back(column->getDataAt(position).toString()); + continue; + } + } + return answer; +} + void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const { CurrentMetrics::Increment metric_increment{CurrentMetrics::DictCacheRequests}; @@ -983,16 +1013,13 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const auto & all_attributes = it->second; all_attributes.found = true; - all_attributes.values.assign(attributes.size(), {}); + all_attributes.values = getAttributeValuesFromBlockAtPosition(column_ptrs, i); for (const auto attribute_idx : ext::range(0, attributes.size())) { const auto & attribute_column = *column_ptrs[attribute_idx]; auto & attribute = attributes[attribute_idx]; - auto & place_for_attribute = all_attributes.values[attribute_idx]; - - setAttributeInPlace(place_for_attribute, attribute.type, attribute_column[i]); setAttributeValue(attribute, cell_idx, attribute_column[i]); } diff --git a/src/Dictionaries/CacheDictionary.h b/src/Dictionaries/CacheDictionary.h index b146ee0bfa1..dddb314be36 100644 --- a/src/Dictionaries/CacheDictionary.h +++ b/src/Dictionaries/CacheDictionary.h @@ -282,7 +282,7 @@ private: void setAttributeValue(Attribute & attribute, const Key idx, const Field & value) const; - void setAttributeInPlace(AttributeValue & place, AttributeUnderlyingType type, const Field & value) const; + static std::vector getAttributeValuesFromBlockAtPosition(const std::vector & column_ptrs, size_t position); Attribute & getAttribute(const std::string & attribute_name) const; size_t getAttributeIndex(const std::string & attribute_name) const; From c7ebcf9c7cb2cdf9cca07e66cecf5026293f8a0e Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Mon, 28 Sep 2020 17:51:12 +0300 Subject: [PATCH 148/425] arcadia skip --- tests/queries/0_stateless/arcadia_skip_list.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/queries/0_stateless/arcadia_skip_list.txt b/tests/queries/0_stateless/arcadia_skip_list.txt index 6875151520a..c8f4819c02e 100644 --- a/tests/queries/0_stateless/arcadia_skip_list.txt +++ b/tests/queries/0_stateless/arcadia_skip_list.txt @@ -150,6 +150,7 @@ 00609_mv_index_in_in 00510_materizlized_view_and_deduplication_zookeeper 00738_lock_for_inner_table +01501_cache_dictionary_all_fields 01504_rocksdb 01515_force_data_skipping_indices 01526_complex_key_dict_direct_layout @@ -169,4 +170,4 @@ 01557_max_parallel_replicas_no_sample.sql 01525_select_with_offset_fetch_clause 01560_timeseriesgroupsum_segfault -00976_ttl_with_old_parts +00976_ttl_with_old_parts \ No newline at end of file From 028fc0016667b5fd62ade368b4b676fd0c5f518c Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Tue, 29 Sep 2020 21:28:06 +0300 Subject: [PATCH 149/425] fix tests --- src/Dictionaries/CacheDictionary.cpp | 25 ++++++++++++++++++- .../configs/dictionaries/cache_xypairs.xml | 5 +++- .../test.py | 10 +++++--- .../dictionaries/cache_ints_dictionary.xml | 1 + tests/integration/test_system_queries/test.py | 2 +- 5 files changed, 36 insertions(+), 7 deletions(-) diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index 0e826b860fc..2688f677062 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -1036,6 +1036,8 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const else cell.setExpiresAt(std::chrono::time_point::max()); + cell.strict_max = now + std::chrono::seconds(strict_max_lifetime_seconds); + /// mark corresponding id as found remaining_ids[id] = 1; } @@ -1063,12 +1065,33 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const tryLogException(last_exception, log, "Could not update cache dictionary '" + getDictionaryID().getNameForLogs() + "', next update is scheduled at " + ext::to_string(backoff_end_time.load())); + try + { + std::rethrow_exception(last_exception); + } + catch (...) + { + throw DB::Exception(ErrorCodes::CACHE_DICTIONARY_UPDATE_FAIL, + "Update failed for dictionary {} : {}", + getDictionaryID().getNameForLogs(), + getCurrentExceptionMessage(true /*with stack trace*/, + true /*check embedded stack trace*/)); + } } - } + ProfileEvents::increment(ProfileEvents::DictCacheKeysRequestedMiss, update_unit_ptr->requested_ids.size() - found_num); ProfileEvents::increment(ProfileEvents::DictCacheKeysRequestedFound, found_num); ProfileEvents::increment(ProfileEvents::DictCacheRequests); + } + else + { + /// Won't request source for keys + throw DB::Exception(ErrorCodes::CACHE_DICTIONARY_UPDATE_FAIL, + "Could not update cache dictionary {} now, because nearest update is scheduled at {}. Try again later.", + getDictionaryID().getNameForLogs(), + ext::to_string(backoff_end_time.load())); + } } } diff --git a/tests/integration/test_dictionaries_update_and_reload/configs/dictionaries/cache_xypairs.xml b/tests/integration/test_dictionaries_update_and_reload/configs/dictionaries/cache_xypairs.xml index 4142706259a..982f77d013c 100644 --- a/tests/integration/test_dictionaries_update_and_reload/configs/dictionaries/cache_xypairs.xml +++ b/tests/integration/test_dictionaries_update_and_reload/configs/dictionaries/cache_xypairs.xml @@ -11,7 +11,10 @@ xypairs
- 1 + + 1000 + 500 + 5 diff --git a/tests/integration/test_dictionaries_update_and_reload/test.py b/tests/integration/test_dictionaries_update_and_reload/test.py index 8dfd10da14d..22e28dd83fc 100644 --- a/tests/integration/test_dictionaries_update_and_reload/test.py +++ b/tests/integration/test_dictionaries_update_and_reload/test.py @@ -242,18 +242,18 @@ def test_reload_after_fail_in_cache_dictionary(started_cluster): # Values are cached so we can get them. query("SELECT dictGet('cache_xypairs', 'y', toUInt64(1))") == "56" - query("SELECT dictGet('cache_xypairs', 'y', toUInt64(2))") == "0" assert get_last_exception("cache_xypairs") == "" # But we can't get a value from the source table which isn't cached. assert expected_error in query_and_get_error("SELECT dictGetUInt64('cache_xypairs', 'y', toUInt64(3))") assert expected_error in get_last_exception("cache_xypairs") + update_error = "Could not update" + # Will fail because of previous error and scheduled update time. + assert update_error in query_and_get_error("SELECT dictGetUInt64('cache_xypairs', 'y', toUInt64(3))") # Passed time should not spoil the cache. - time.sleep(5); + time.sleep(5) query("SELECT dictGet('cache_xypairs', 'y', toUInt64(1))") == "56" - query("SELECT dictGet('cache_xypairs', 'y', toUInt64(2))") == "0" - assert expected_error in query_and_get_error("SELECT dictGetUInt64('cache_xypairs', 'y', toUInt64(3))") assert expected_error in get_last_exception("cache_xypairs") # Create table `test.xypairs` again with changed values. @@ -262,6 +262,8 @@ def test_reload_after_fail_in_cache_dictionary(started_cluster): INSERT INTO test.xypairs VALUES (1, 57), (3, 79); ''') + query('SYSTEM RELOAD DICTIONARY cache_xypairs') + # The cache dictionary returns new values now. assert_eq_with_retry(instance, "SELECT dictGet('cache_xypairs', 'y', toUInt64(1))", "57") query("SELECT dictGet('cache_xypairs', 'y', toUInt64(2))") == "0" diff --git a/tests/integration/test_dictionary_allow_read_expired_keys/configs/dictionaries/cache_ints_dictionary.xml b/tests/integration/test_dictionary_allow_read_expired_keys/configs/dictionaries/cache_ints_dictionary.xml index 3365741411d..cddebffd952 100644 --- a/tests/integration/test_dictionary_allow_read_expired_keys/configs/dictionaries/cache_ints_dictionary.xml +++ b/tests/integration/test_dictionary_allow_read_expired_keys/configs/dictionaries/cache_ints_dictionary.xml @@ -19,6 +19,7 @@ 10000 10000 + 1000 1 10 diff --git a/tests/integration/test_system_queries/test.py b/tests/integration/test_system_queries/test.py index b159e8b4cf3..5fa1cab5b36 100644 --- a/tests/integration/test_system_queries/test.py +++ b/tests/integration/test_system_queries/test.py @@ -47,7 +47,7 @@ def test_SYSTEM_RELOAD_DICTIONARY(started_cluster): instance.query("INSERT INTO dictionary_source VALUES (1, 1)") assert TSV(instance.query( "SELECT dictGetUInt8('clickhouse_cache', 'value', toUInt64(0)), dictHas('clickhouse_cache', toUInt64(1))")) == TSV( - "0\t0\n") + "0\t1\n") instance.query("SYSTEM RELOAD DICTIONARY clickhouse_cache") assert TSV(instance.query( From 9b46b53fa3113c9efb87707cf574272bb63f9c29 Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Wed, 30 Sep 2020 17:35:37 +0300 Subject: [PATCH 150/425] better defaults --- src/Dictionaries/CacheDictionary.cpp | 150 ++++++------------ src/Dictionaries/CacheDictionary.h | 42 ++--- src/Dictionaries/CacheDictionary.inc.h | 46 ++++-- .../test.py | 7 +- .../dictionaries/cache_ints_dictionary.xml | 4 +- .../test_default_reading.py | 24 +-- .../test_dict_get.py | 16 +- .../test_dict_get_or_default.py | 24 +-- 8 files changed, 128 insertions(+), 185 deletions(-) diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index 2688f677062..53286b3c6c9 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -64,7 +64,7 @@ CacheDictionary::CacheDictionary( const DictionaryStructure & dict_struct_, DictionarySourcePtr source_ptr_, DictionaryLifetime dict_lifetime_, - size_t strict_max_lifetime_seconds_, + size_t extra_lifetime_seconds_, size_t size_, bool allow_read_expired_keys_, size_t max_update_queue_size_, @@ -75,7 +75,7 @@ CacheDictionary::CacheDictionary( , dict_struct(dict_struct_) , source_ptr{std::move(source_ptr_)} , dict_lifetime(dict_lifetime_) - , strict_max_lifetime_seconds(strict_max_lifetime_seconds_) + , extra_lifetime_seconds(extra_lifetime_seconds_) , allow_read_expired_keys(allow_read_expired_keys_) , max_update_queue_size(max_update_queue_size_) , update_queue_push_timeout_milliseconds(update_queue_push_timeout_milliseconds_) @@ -326,11 +326,11 @@ std::string CacheDictionary::UpdateUnit::dumpFoundIds() /// true true impossible /// /// todo: split this func to two: find_for_get and find_for_set -CacheDictionary::FindResult CacheDictionary::findCellIdx(const Key & id, const CellMetadata::time_point_t now) const +CacheDictionary::FindResult CacheDictionary::findCellIdx(const Key & id, const time_point_t now) const { auto pos = getCellIdx(id); auto oldest_id = pos; - auto oldest_time = CellMetadata::time_point_t::max(); + auto oldest_time = time_point_t::max(); const auto stop = pos + max_collision_length; for (; pos < stop; ++pos) { @@ -340,15 +340,15 @@ CacheDictionary::FindResult CacheDictionary::findCellIdx(const Key & id, const C if (cell.id != id) { /// maybe we already found nearest expired cell (try minimize collision_length on insert) - if (oldest_time > now && oldest_time > cell.expiresAt()) + if (oldest_time > now && oldest_time > cell.deadline) { - oldest_time = cell.expiresAt(); + oldest_time = cell.deadline; oldest_id = cell_idx; } continue; } - if (cell.expiresAt() < now) + if (cell.deadline < now) { return {cell_idx, false, true}; } @@ -366,6 +366,11 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray /// - CacheExpired ids. Ids that are in local cache, but their values are rotted (lifetime is expired). /// - CacheNotFound ids. We have to go to external storage to know its value. + /// Mark everything as absent. + const auto rows = ext::size(ids); + for (const auto row : ext::range(0, rows)) + out[row] = false; + /// Mapping: -> { all indices `i` of `ids` such that `ids[i]` = } std::unordered_map> cache_expired_or_not_found_ids; @@ -374,7 +379,6 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray size_t cache_expired_count = 0; size_t cache_not_found_count = 0; - const auto rows = ext::size(ids); { const ProfilingScopedReadRWLock read_lock{rw_lock, ProfileEvents::DictCacheLockReadNs}; @@ -383,12 +387,16 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray for (const auto row : ext::range(0, rows)) { const auto id = ids[row]; + + /// Check if the key is stored in the cache of defaults. + if (default_keys.find(id) != default_keys.end()) + continue; + const auto find_result = findCellIdx(id, now); - const auto & cell_idx = find_result.cell_idx; auto insert_to_answer_routine = [&] () { - out[row] = !cells[cell_idx].isDefault(); + out[row] = true; }; if (!find_result.valid) @@ -396,7 +404,7 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray if (find_result.outdated) { /// Protection of reading very expired keys. - if (now > cells[find_result.cell_idx].strict_max) + if (isExpiredPermanently(now, cells[find_result.cell_idx].deadline)) { cache_not_found_count++; cache_expired_or_not_found_ids[id].push_back(row); @@ -472,8 +480,8 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray for (const auto row : cache_expired_or_not_found_ids[key]) out[row] = true; else - for (const auto row : cache_expired_or_not_found_ids[key]) - out[row] = false; + /// Cache this key as default. + default_keys.insert(key); } } @@ -671,8 +679,7 @@ size_t CacheDictionary::getAttributeIndex(const std::string & attribute_name) co bool CacheDictionary::isEmptyCell(const UInt64 idx) const { - return (idx != zero_cell_idx && cells[idx].id == 0) - || (cells[idx].data == ext::safe_bit_cast(CellMetadata::time_point_t())); + return (idx != zero_cell_idx && cells[idx].id == 0) || (cells[idx].deadline == time_point_t()); } PaddedPODArray CacheDictionary::getCachedIds() const @@ -683,7 +690,7 @@ PaddedPODArray CacheDictionary::getCachedIds() const for (size_t idx = 0; idx < cells.size(); ++idx) { auto & cell = cells[idx]; - if (!isEmptyCell(idx) && !cells[idx].isDefault()) + if (!isEmptyCell(idx)) { array.push_back(cell.id); } @@ -735,8 +742,8 @@ void registerDictionaryCache(DictionaryFactory & factory) const auto dict_id = StorageID::fromDictionaryConfig(config, config_prefix); const DictionaryLifetime dict_lifetime{config, config_prefix + ".lifetime"}; - const size_t strict_max_lifetime_seconds = - config.getUInt64(layout_prefix + ".cache.strict_max_lifetime_seconds", static_cast(dict_lifetime.max_sec)); + const size_t extra_lifetime_seconds = + config.getUInt64(layout_prefix + ".cache.extra_lifetime_seconds", static_cast(dict_lifetime.max_sec)); const size_t max_update_queue_size = config.getUInt64(layout_prefix + ".cache.max_update_queue_size", 100000); @@ -767,7 +774,7 @@ void registerDictionaryCache(DictionaryFactory & factory) dict_struct, std::move(source_ptr), dict_lifetime, - strict_max_lifetime_seconds, + extra_lifetime_seconds, size, allow_read_expired_keys, max_update_queue_size, @@ -869,77 +876,27 @@ std::vector CacheDictionary::getAttributeValues for (size_t i = 0; i < column_ptrs.size(); ++i) { const auto pure_column = column_ptrs[i]; - - if (auto column = typeid_cast(pure_column)) - { - answer.emplace_back(column->getElement(position)); - continue; + +#define DISPATCH(TYPE) \ + if (auto column = typeid_cast(pure_column)) { \ + answer.emplace_back(column->getElement(position)); \ + continue; \ } - if (auto column = typeid_cast(pure_column)) - { - answer.emplace_back(column->getElement(position)); - continue; - } - if (auto column = typeid_cast(pure_column)) - { - answer.emplace_back(column->getElement(position)); - continue; - } - if (auto column = typeid_cast(pure_column)) - { - answer.emplace_back(column->getElement(position)); - continue; - } - if (auto column = typeid_cast(pure_column)) - { - answer.emplace_back(column->getElement(position)); - continue; - } - if (auto column = typeid_cast(pure_column)) - { - answer.emplace_back(column->getElement(position)); - continue; - } - if (auto column = typeid_cast(pure_column)) - { - answer.emplace_back(column->getElement(position)); - continue; - } - if (auto column = typeid_cast(pure_column)) - { - answer.emplace_back(column->getElement(position)); - continue; - } - if (auto column = typeid_cast(pure_column)) - { - answer.emplace_back(column->getElement(position)); - continue; - } - if (auto column = typeid_cast(pure_column)) - { - answer.emplace_back(column->getElement(position)); - continue; - } - if (auto column = typeid_cast(pure_column)) - { - answer.emplace_back(column->getElement(position)); - continue; - } - if (auto column = typeid_cast *>(pure_column)) - { - answer.emplace_back(column->getElement(position)); - continue; - } - if (auto column = typeid_cast *>(pure_column)) - { - answer.emplace_back(column->getElement(position)); - continue; - } - if (auto column = typeid_cast *>(pure_column)) - { - answer.emplace_back(column->getElement(position)); - continue; - } + DISPATCH(UInt8) + DISPATCH(UInt16) + DISPATCH(UInt32) + DISPATCH(UInt64) + DISPATCH(UInt128) + DISPATCH(Int8) + DISPATCH(Int16) + DISPATCH(Int32) + DISPATCH(Int64) + DISPATCH(Decimal) + DISPATCH(Decimal) + DISPATCH(Decimal) + DISPATCH(Float32) + DISPATCH(Float64) +#undef DISPATCH if (auto column = typeid_cast(pure_column)) { answer.emplace_back(column->getDataAt(position).toString()); @@ -956,10 +913,6 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const auto & map_ids = update_unit_ptr->found_ids; - std::unordered_map remaining_ids{update_unit_ptr->requested_ids.size()}; - for (const auto id : update_unit_ptr->requested_ids) - remaining_ids.insert({id, 0}); - size_t found_num = 0; const auto now = std::chrono::system_clock::now(); @@ -1031,15 +984,10 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const if (dict_lifetime.min_sec != 0 && dict_lifetime.max_sec != 0) { std::uniform_int_distribution distribution{dict_lifetime.min_sec, dict_lifetime.max_sec}; - cell.setExpiresAt(now + std::chrono::seconds{distribution(rnd_engine)}); + cell.deadline = now + std::chrono::seconds{distribution(rnd_engine)}; } else - cell.setExpiresAt(std::chrono::time_point::max()); - - cell.strict_max = now + std::chrono::seconds(strict_max_lifetime_seconds); - - /// mark corresponding id as found - remaining_ids[id] = 1; + cell.deadline = std::chrono::time_point::max(); } } @@ -1088,7 +1036,7 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const { /// Won't request source for keys throw DB::Exception(ErrorCodes::CACHE_DICTIONARY_UPDATE_FAIL, - "Could not update cache dictionary {} now, because nearest update is scheduled at {}. Try again later.", + "Query contains keys that are not present in cache or expired. Could not update cache dictionary {} now, because nearest update is scheduled at {}. Try again later.", getDictionaryID().getNameForLogs(), ext::to_string(backoff_end_time.load())); } diff --git a/src/Dictionaries/CacheDictionary.h b/src/Dictionaries/CacheDictionary.h index dddb314be36..5c512da81f3 100644 --- a/src/Dictionaries/CacheDictionary.h +++ b/src/Dictionaries/CacheDictionary.h @@ -54,7 +54,7 @@ public: const DictionaryStructure & dict_struct_, DictionarySourcePtr source_ptr_, DictionaryLifetime dict_lifetime_, - size_t strict_max_lifetime_seconds, + size_t extra_lifetime_seconds, size_t size_, bool allow_read_expired_keys_, size_t max_update_queue_size_, @@ -104,7 +104,7 @@ public: dict_struct, getSourceAndUpdateIfNeeded()->clone(), dict_lifetime, - strict_max_lifetime_seconds, + extra_lifetime_seconds, size, allow_read_expired_keys, max_update_queue_size, @@ -134,7 +134,7 @@ public: void isInConstantVector(const Key child_id, const PaddedPODArray & ancestor_ids, PaddedPODArray & out) const override; std::exception_ptr getLastException() const override; - + template using ResultArrayType = std::conditional_t, DecimalPaddedPODArray, PaddedPODArray>; @@ -214,27 +214,12 @@ private: template using ContainerPtrType = std::unique_ptr>; + using time_point_t = std::chrono::system_clock::time_point; + struct CellMetadata final { - using time_point_t = std::chrono::system_clock::time_point; - using time_point_rep_t = time_point_t::rep; - using time_point_urep_t = std::make_unsigned_t; - - static constexpr UInt64 EXPIRES_AT_MASK = std::numeric_limits::max(); - static constexpr UInt64 IS_DEFAULT_MASK = ~EXPIRES_AT_MASK; - UInt64 id; - /// Stores both expiration time and `is_default` flag in the most significant bit - time_point_urep_t data; - - time_point_t strict_max; - - /// Sets expiration time, resets `is_default` flag to false - time_point_t expiresAt() const { return ext::safe_bit_cast(data & EXPIRES_AT_MASK); } - void setExpiresAt(const time_point_t & t) { data = ext::safe_bit_cast(t); } - - bool isDefault() const { return (data & IS_DEFAULT_MASK) == IS_DEFAULT_MASK; } - void setDefault() { data |= IS_DEFAULT_MASK; } + time_point_t deadline; }; struct Attribute final @@ -307,6 +292,11 @@ private: return source_ptr; } + inline bool isExpiredPermanently(time_point_t now, time_point_t deadline) const + { + return now > deadline + std::chrono::seconds(extra_lifetime_seconds); + } + struct FindResult { const size_t cell_idx; @@ -314,7 +304,7 @@ private: const bool outdated; }; - FindResult findCellIdx(const Key & id, const CellMetadata::time_point_t now) const; + FindResult findCellIdx(const Key & id, const time_point_t now) const; template void isInImpl(const PaddedPODArray & child_ids, const AncestorType & ancestor_ids, PaddedPODArray & out) const; @@ -326,7 +316,7 @@ private: mutable SharedDictionarySourcePtr source_ptr; const DictionaryLifetime dict_lifetime; - const size_t strict_max_lifetime_seconds; + const size_t extra_lifetime_seconds; const bool allow_read_expired_keys; const size_t max_update_queue_size; const size_t update_queue_push_timeout_milliseconds; @@ -357,7 +347,7 @@ private: std::unique_ptr string_arena; mutable std::exception_ptr last_exception; - mutable std::atomic error_count = 0; + mutable std::atomic error_count{0}; mutable std::atomic backoff_end_time{std::chrono::system_clock::time_point{}}; mutable pcg64 rnd_engine; @@ -367,6 +357,8 @@ private: mutable std::atomic hit_count{0}; mutable std::atomic query_count{0}; + mutable std::unordered_set default_keys; + /* * Disclaimer: this comment is written not for fun. * @@ -422,7 +414,7 @@ private: * 0 - if set is empty, 1 - otherwise * * Only if there are no cache_not_found_ids and some cache_expired_ids - * (with allow_read_expired_keys_from_cache_dictionary setting) we can perform async update. + * (with allow_read_expired_keys setting) we can perform async update. * Otherwise we have no concatenate ids and update them sync. * */ diff --git a/src/Dictionaries/CacheDictionary.inc.h b/src/Dictionaries/CacheDictionary.inc.h index 42b7891c561..303322d55e7 100644 --- a/src/Dictionaries/CacheDictionary.inc.h +++ b/src/Dictionaries/CacheDictionary.inc.h @@ -62,6 +62,10 @@ void CacheDictionary::getItemsNumberImpl( { const auto id = ids[row]; + /// First check if this key in the cache of default keys. + if (default_keys.find(id) != default_keys.end()) + continue; + /** cell should be updated if either: * 1. ids do not match, * 2. cell has expired, @@ -72,9 +76,7 @@ void CacheDictionary::getItemsNumberImpl( auto update_routine = [&]() { const auto & cell_idx = find_result.cell_idx; - const auto & cell = cells[cell_idx]; - if (!cell.isDefault()) - out[row] = static_cast(attribute_array[cell_idx]); + out[row] = static_cast(attribute_array[cell_idx]); }; if (!find_result.valid) @@ -83,7 +85,7 @@ void CacheDictionary::getItemsNumberImpl( if (find_result.outdated) { /// Protection of reading very expired keys. - if (now > cells[find_result.cell_idx].strict_max) + if (isExpiredPermanently(now, cells[find_result.cell_idx].deadline)) { cache_not_found_count++; cache_expired_or_not_found_ids[id].push_back(row); @@ -166,6 +168,10 @@ void CacheDictionary::getItemsNumberImpl( { for (const size_t row : cache_expired_or_not_found_ids[key]) out[row] = std::get(value.values[attribute_index]); + } else + { + /// Add key to the cache of default keys. + default_keys.emplace(key); } } } @@ -183,7 +189,7 @@ void CacheDictionary::getItemsString( auto found_outdated_values = false; - /// perform optimistic version, fallback to pessimistic if failed + /// Perform optimistic version, fallback to pessimistic if failed. { const ProfilingScopedReadRWLock read_lock{rw_lock, ProfileEvents::DictCacheLockReadNs}; @@ -193,6 +199,13 @@ void CacheDictionary::getItemsString( { const auto id = ids[row]; + /// Check if the key is stored in the cache of defaults. + if (default_keys.find(id) != default_keys.end()) + { + const auto string_ref = get_default(row); + out->insertData(string_ref.data, string_ref.size); + } + const auto find_result = findCellIdx(id, now); if (!find_result.valid) { @@ -202,8 +215,7 @@ void CacheDictionary::getItemsString( else { const auto & cell_idx = find_result.cell_idx; - const auto & cell = cells[cell_idx]; - const auto string_ref = cell.isDefault() ? get_default(row) : attribute_array[cell_idx]; + const auto string_ref = attribute_array[cell_idx]; out->insertData(string_ref.data, string_ref.size); } } @@ -239,18 +251,21 @@ void CacheDictionary::getItemsString( { const auto id = ids[row]; - const auto find_result = findCellIdx(id, now); + /// Check if the key is stored in the cache of defaults. + if (default_keys.find(id) != default_keys.end()) + { + const auto string_ref = get_default(row); + out->insertData(string_ref.data, string_ref.size); + } + const auto find_result = findCellIdx(id, now); auto insert_value_routine = [&]() { const auto & cell_idx = find_result.cell_idx; - const auto & cell = cells[cell_idx]; - const auto string_ref = cell.isDefault() ? get_default(row) : attribute_array[cell_idx]; - - if (!cell.isDefault()) - inside_cache[id] = String{string_ref}; + const auto string_ref = attribute_array[cell_idx]; + inside_cache[id] = String{string_ref}; total_length += string_ref.size + 1; }; @@ -259,7 +274,7 @@ void CacheDictionary::getItemsString( if (find_result.outdated) { /// Protection of reading very expired keys. - if (now > cells[find_result.cell_idx].strict_max) + if (isExpiredPermanently(now, cells[find_result.cell_idx].deadline)) { cache_not_found_count++; cache_expired_or_not_found_ids[id].push_back(row); @@ -358,7 +373,10 @@ void CacheDictionary::getItemsString( if (found_it->second.found) value = std::get(found_it->second.values[attribute_index]); else + { + default_keys.insert(id); value = get_default(row); + } } out->insertData(value.data, value.size); diff --git a/tests/integration/test_dictionaries_update_and_reload/test.py b/tests/integration/test_dictionaries_update_and_reload/test.py index 22e28dd83fc..95096249f48 100644 --- a/tests/integration/test_dictionaries_update_and_reload/test.py +++ b/tests/integration/test_dictionaries_update_and_reload/test.py @@ -242,18 +242,19 @@ def test_reload_after_fail_in_cache_dictionary(started_cluster): # Values are cached so we can get them. query("SELECT dictGet('cache_xypairs', 'y', toUInt64(1))") == "56" + query("SELECT dictGet('cache_xypairs', 'y', toUInt64(2))") == "0" assert get_last_exception("cache_xypairs") == "" # But we can't get a value from the source table which isn't cached. assert expected_error in query_and_get_error("SELECT dictGetUInt64('cache_xypairs', 'y', toUInt64(3))") assert expected_error in get_last_exception("cache_xypairs") - update_error = "Could not update" - # Will fail because of previous error and scheduled update time. - assert update_error in query_and_get_error("SELECT dictGetUInt64('cache_xypairs', 'y', toUInt64(3))") # Passed time should not spoil the cache. time.sleep(5) query("SELECT dictGet('cache_xypairs', 'y', toUInt64(1))") == "56" + query("SELECT dictGet('cache_xypairs', 'y', toUInt64(2))") == "0" + error = query_and_get_error("SELECT dictGetUInt64('cache_xypairs', 'y', toUInt64(3))") + assert expected_error in error assert expected_error in get_last_exception("cache_xypairs") # Create table `test.xypairs` again with changed values. diff --git a/tests/integration/test_dictionary_allow_read_expired_keys/configs/dictionaries/cache_ints_dictionary.xml b/tests/integration/test_dictionary_allow_read_expired_keys/configs/dictionaries/cache_ints_dictionary.xml index cddebffd952..af1d21e1142 100644 --- a/tests/integration/test_dictionary_allow_read_expired_keys/configs/dictionaries/cache_ints_dictionary.xml +++ b/tests/integration/test_dictionary_allow_read_expired_keys/configs/dictionaries/cache_ints_dictionary.xml @@ -1,6 +1,6 @@ - anime_dict + experimental_dict dictionary_node @@ -19,7 +19,7 @@ 10000 10000 - 1000 + 1000 1 10 diff --git a/tests/integration/test_dictionary_allow_read_expired_keys/test_default_reading.py b/tests/integration/test_dictionary_allow_read_expired_keys/test_default_reading.py index 416bbe089aa..0c801ce3f12 100644 --- a/tests/integration/test_dictionary_allow_read_expired_keys/test_default_reading.py +++ b/tests/integration/test_dictionary_allow_read_expired_keys/test_default_reading.py @@ -40,22 +40,14 @@ def test_default_reading(started_cluster): # Key 0 is not in dictionary, so default value will be returned def test_helper(): - assert '42' == main_node.query( - "select dictGetOrDefault('anime_dict', 'i8', toUInt64(13), toInt8(42));").rstrip() - assert '42' == main_node.query( - "select dictGetOrDefault('anime_dict', 'i16', toUInt64(13), toInt16(42));").rstrip() - assert '42' == main_node.query( - "select dictGetOrDefault('anime_dict', 'i32', toUInt64(13), toInt32(42));").rstrip() - assert '42' == main_node.query( - "select dictGetOrDefault('anime_dict', 'i64', toUInt64(13), toInt64(42));").rstrip() - assert '42' == main_node.query( - "select dictGetOrDefault('anime_dict', 'u8', toUInt64(13), toUInt8(42));").rstrip() - assert '42' == main_node.query( - "select dictGetOrDefault('anime_dict', 'u16', toUInt64(13), toUInt16(42));").rstrip() - assert '42' == main_node.query( - "select dictGetOrDefault('anime_dict', 'u32', toUInt64(13), toUInt32(42));").rstrip() - assert '42' == main_node.query( - "select dictGetOrDefault('anime_dict', 'u64', toUInt64(13), toUInt64(42));").rstrip() + assert '42' == main_node.query("select dictGetOrDefault('experimental_dict', 'i8', toUInt64(13), toInt8(42));").rstrip() + assert '42' == main_node.query("select dictGetOrDefault('experimental_dict', 'i16', toUInt64(13), toInt16(42));").rstrip() + assert '42' == main_node.query("select dictGetOrDefault('experimental_dict', 'i32', toUInt64(13), toInt32(42));").rstrip() + assert '42' == main_node.query("select dictGetOrDefault('experimental_dict', 'i64', toUInt64(13), toInt64(42));").rstrip() + assert '42' == main_node.query("select dictGetOrDefault('experimental_dict', 'u8', toUInt64(13), toUInt8(42));").rstrip() + assert '42' == main_node.query("select dictGetOrDefault('experimental_dict', 'u16', toUInt64(13), toUInt16(42));").rstrip() + assert '42' == main_node.query("select dictGetOrDefault('experimental_dict', 'u32', toUInt64(13), toUInt32(42));").rstrip() + assert '42' == main_node.query("select dictGetOrDefault('experimental_dict', 'u64', toUInt64(13), toUInt64(42));").rstrip() test_helper() diff --git a/tests/integration/test_dictionary_allow_read_expired_keys/test_dict_get.py b/tests/integration/test_dictionary_allow_read_expired_keys/test_dict_get.py index 7097bd15bb7..488e01fe7f0 100644 --- a/tests/integration/test_dictionary_allow_read_expired_keys/test_dict_get.py +++ b/tests/integration/test_dictionary_allow_read_expired_keys/test_dict_get.py @@ -38,14 +38,14 @@ def test_simple_dict_get(started_cluster): assert None != dictionary_node.get_process_pid("clickhouse"), "ClickHouse must be alive" def test_helper(): - assert '7' == main_node.query("select dictGet('anime_dict', 'i8', toUInt64(7));").rstrip(), "Wrong answer." - assert '7' == main_node.query("select dictGet('anime_dict', 'i16', toUInt64(7));").rstrip(), "Wrong answer." - assert '7' == main_node.query("select dictGet('anime_dict', 'i32', toUInt64(7));").rstrip(), "Wrong answer." - assert '7' == main_node.query("select dictGet('anime_dict', 'i64', toUInt64(7));").rstrip(), "Wrong answer." - assert '7' == main_node.query("select dictGet('anime_dict', 'u8', toUInt64(7));").rstrip(), "Wrong answer." - assert '7' == main_node.query("select dictGet('anime_dict', 'u16', toUInt64(7));").rstrip(), "Wrong answer." - assert '7' == main_node.query("select dictGet('anime_dict', 'u32', toUInt64(7));").rstrip(), "Wrong answer." - assert '7' == main_node.query("select dictGet('anime_dict', 'u64', toUInt64(7));").rstrip(), "Wrong answer." + assert '7' == main_node.query("select dictGet('experimental_dict', 'i8', toUInt64(7));").rstrip(), "Wrong answer." + assert '7' == main_node.query("select dictGet('experimental_dict', 'i16', toUInt64(7));").rstrip(), "Wrong answer." + assert '7' == main_node.query("select dictGet('experimental_dict', 'i32', toUInt64(7));").rstrip(), "Wrong answer." + assert '7' == main_node.query("select dictGet('experimental_dict', 'i64', toUInt64(7));").rstrip(), "Wrong answer." + assert '7' == main_node.query("select dictGet('experimental_dict', 'u8', toUInt64(7));").rstrip(), "Wrong answer." + assert '7' == main_node.query("select dictGet('experimental_dict', 'u16', toUInt64(7));").rstrip(), "Wrong answer." + assert '7' == main_node.query("select dictGet('experimental_dict', 'u32', toUInt64(7));").rstrip(), "Wrong answer." + assert '7' == main_node.query("select dictGet('experimental_dict', 'u64', toUInt64(7));").rstrip(), "Wrong answer." test_helper() diff --git a/tests/integration/test_dictionary_allow_read_expired_keys/test_dict_get_or_default.py b/tests/integration/test_dictionary_allow_read_expired_keys/test_dict_get_or_default.py index 2aecb8691fb..e794ffa5a37 100644 --- a/tests/integration/test_dictionary_allow_read_expired_keys/test_dict_get_or_default.py +++ b/tests/integration/test_dictionary_allow_read_expired_keys/test_dict_get_or_default.py @@ -38,22 +38,14 @@ def test_simple_dict_get_or_default(started_cluster): assert None != dictionary_node.get_process_pid("clickhouse"), "ClickHouse must be alive" def test_helper(): - assert '5' == main_node.query( - "select dictGetOrDefault('anime_dict', 'i8', toUInt64(5), toInt8(42));").rstrip() - assert '5' == main_node.query( - "select dictGetOrDefault('anime_dict', 'i16', toUInt64(5), toInt16(42));").rstrip() - assert '5' == main_node.query( - "select dictGetOrDefault('anime_dict', 'i32', toUInt64(5), toInt32(42));").rstrip() - assert '5' == main_node.query( - "select dictGetOrDefault('anime_dict', 'i64', toUInt64(5), toInt64(42));").rstrip() - assert '5' == main_node.query( - "select dictGetOrDefault('anime_dict', 'u8', toUInt64(5), toUInt8(42));").rstrip() - assert '5' == main_node.query( - "select dictGetOrDefault('anime_dict', 'u16', toUInt64(5), toUInt16(42));").rstrip() - assert '5' == main_node.query( - "select dictGetOrDefault('anime_dict', 'u32', toUInt64(5), toUInt32(42));").rstrip() - assert '5' == main_node.query( - "select dictGetOrDefault('anime_dict', 'u64', toUInt64(5), toUInt64(42));").rstrip() + assert '5' == main_node.query("select dictGetOrDefault('experimental_dict', 'i8', toUInt64(5), toInt8(42));").rstrip() + assert '5' == main_node.query("select dictGetOrDefault('experimental_dict', 'i16', toUInt64(5), toInt16(42));").rstrip() + assert '5' == main_node.query("select dictGetOrDefault('experimental_dict', 'i32', toUInt64(5), toInt32(42));").rstrip() + assert '5' == main_node.query("select dictGetOrDefault('experimental_dict', 'i64', toUInt64(5), toInt64(42));").rstrip() + assert '5' == main_node.query("select dictGetOrDefault('experimental_dict', 'u8', toUInt64(5), toUInt8(42));").rstrip() + assert '5' == main_node.query("select dictGetOrDefault('experimental_dict', 'u16', toUInt64(5), toUInt16(42));").rstrip() + assert '5' == main_node.query("select dictGetOrDefault('experimental_dict', 'u32', toUInt64(5), toUInt32(42));").rstrip() + assert '5' == main_node.query("select dictGetOrDefault('experimental_dict', 'u64', toUInt64(5), toUInt64(42));").rstrip() test_helper() From 10adac00f4194c97728fe3ce0b2e4f9febdb3556 Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Wed, 30 Sep 2020 21:25:02 +0300 Subject: [PATCH 151/425] avoid race on read/write to the cache of defaults --- src/Dictionaries/CacheDictionary.cpp | 14 ++++++---- src/Dictionaries/CacheDictionary.h | 3 +++ src/Dictionaries/CacheDictionary.inc.h | 36 ++++++++++++++++---------- 3 files changed, 35 insertions(+), 18 deletions(-) diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index 53286b3c6c9..dc955ed14bd 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -387,11 +387,12 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray for (const auto row : ext::range(0, rows)) { const auto id = ids[row]; - - /// Check if the key is stored in the cache of defaults. - if (default_keys.find(id) != default_keys.end()) - continue; - + { + std::shared_lock shared_lock(default_cache_rw_lock); + /// Check if the key is stored in the cache of defaults. + if (default_keys.find(id) != default_keys.end()) + continue; + } const auto find_result = findCellIdx(id, now); auto insert_to_answer_routine = [&] () @@ -480,8 +481,11 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray for (const auto row : cache_expired_or_not_found_ids[key]) out[row] = true; else + { + std::unique_lock unique_lock(default_cache_rw_lock); /// Cache this key as default. default_keys.insert(key); + } } } diff --git a/src/Dictionaries/CacheDictionary.h b/src/Dictionaries/CacheDictionary.h index 5c512da81f3..ec0cdb2acfb 100644 --- a/src/Dictionaries/CacheDictionary.h +++ b/src/Dictionaries/CacheDictionary.h @@ -330,6 +330,9 @@ private: /// readers. Surprisingly this lock is also used for last_exception pointer. mutable std::shared_mutex rw_lock; + /// This lock is used only for read/write into cache of default keys. + mutable std::shared_mutex default_cache_rw_lock; + /// Actual size will be increased to match power of 2 const size_t size; diff --git a/src/Dictionaries/CacheDictionary.inc.h b/src/Dictionaries/CacheDictionary.inc.h index 303322d55e7..ca59556d689 100644 --- a/src/Dictionaries/CacheDictionary.inc.h +++ b/src/Dictionaries/CacheDictionary.inc.h @@ -62,9 +62,13 @@ void CacheDictionary::getItemsNumberImpl( { const auto id = ids[row]; - /// First check if this key in the cache of default keys. - if (default_keys.find(id) != default_keys.end()) - continue; + { + std::shared_lock shared_lock(default_cache_rw_lock); + /// First check if this key in the cache of default keys. + if (default_keys.find(id) != default_keys.end()) + continue; + } + /** cell should be updated if either: * 1. ids do not match, @@ -171,6 +175,7 @@ void CacheDictionary::getItemsNumberImpl( } else { /// Add key to the cache of default keys. + std::unique_lock unique_lock(default_cache_rw_lock); default_keys.emplace(key); } } @@ -199,11 +204,14 @@ void CacheDictionary::getItemsString( { const auto id = ids[row]; - /// Check if the key is stored in the cache of defaults. - if (default_keys.find(id) != default_keys.end()) { - const auto string_ref = get_default(row); - out->insertData(string_ref.data, string_ref.size); + std::shared_lock shared_lock(default_cache_rw_lock); + /// Check if the key is stored in the cache of defaults. + if (default_keys.find(id) != default_keys.end()) + { + const auto string_ref = get_default(row); + out->insertData(string_ref.data, string_ref.size); + } } const auto find_result = findCellIdx(id, now); @@ -250,14 +258,15 @@ void CacheDictionary::getItemsString( for (const auto row : ext::range(0, ids.size())) { const auto id = ids[row]; - - /// Check if the key is stored in the cache of defaults. - if (default_keys.find(id) != default_keys.end()) { - const auto string_ref = get_default(row); - out->insertData(string_ref.data, string_ref.size); + std::shared_lock shared_lock(default_cache_rw_lock); + /// Check if the key is stored in the cache of defaults. + if (default_keys.find(id) != default_keys.end()) + { + const auto string_ref = get_default(row); + out->insertData(string_ref.data, string_ref.size); + } } - const auto find_result = findCellIdx(id, now); auto insert_value_routine = [&]() @@ -374,6 +383,7 @@ void CacheDictionary::getItemsString( value = std::get(found_it->second.values[attribute_index]); else { + std::unique_lock unique_lock(default_cache_rw_lock); default_keys.insert(id); value = get_default(row); } From fbd0d14dd65d869b67fe32fadda712815853bb54 Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Thu, 1 Oct 2020 21:28:40 +0300 Subject: [PATCH 152/425] save --- src/Dictionaries/CacheDictionary.cpp | 27 ++++++++--------- src/Dictionaries/CacheDictionary.h | 19 ++++-------- src/Dictionaries/CacheDictionary.inc.h | 30 +++++++------------ .../configs/dictionaries/.gitkeep | 1 - .../test.py | 6 ++-- tests/integration/test_system_queries/test.py | 2 +- 6 files changed, 33 insertions(+), 52 deletions(-) delete mode 100644 tests/integration/test_dictionaries_all_layouts_separate_sources/configs/dictionaries/.gitkeep diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index dc955ed14bd..ad55e46eebf 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -85,6 +85,7 @@ CacheDictionary::CacheDictionary( , size{roundUpToPowerOfTwoOrZero(std::max(size_, size_t(max_collision_length)))} , size_overlap_mask{this->size - 1} , cells{this->size} + , default_keys{this->size} , rnd_engine(randomSeed()) , update_queue(max_update_queue_size_) , update_pool(max_threads_for_updates) @@ -309,14 +310,14 @@ std::string CacheDictionary::AttributeValuesForKey::dump() std::string CacheDictionary::UpdateUnit::dumpFoundIds() { - std::string ans; + std::ostringstream os; for (auto it : found_ids) { - ans += "Key: " + std::to_string(it.first) + "\n"; + os << "Key: " << std::to_string(it.first) << "\n"; if (it.second.found) - ans += it.second.dump() + "\n"; + os << it.second.dump() << "\n"; } - return ans; + return os.str(); }; /// returns cell_idx (always valid for replacing), 'cell is valid' flag, 'cell is outdated' flag @@ -387,12 +388,11 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray for (const auto row : ext::range(0, rows)) { const auto id = ids[row]; - { - std::shared_lock shared_lock(default_cache_rw_lock); - /// Check if the key is stored in the cache of defaults. - if (default_keys.find(id) != default_keys.end()) - continue; - } + + /// Check if the key is stored in the cache of defaults. + if (default_keys.has(id)) + continue; + const auto find_result = findCellIdx(id, now); auto insert_to_answer_routine = [&] () @@ -461,7 +461,7 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray } /// At this point we have two situations. - /// There may be both types of keys: cache_expired_ids and cache_not_found_ids. + /// There may be both types of keys: expired and not_found. /// We will update them all synchronously. std::vector required_ids; @@ -481,11 +481,8 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray for (const auto row : cache_expired_or_not_found_ids[key]) out[row] = true; else - { - std::unique_lock unique_lock(default_cache_rw_lock); /// Cache this key as default. - default_keys.insert(key); - } + default_keys.add(key); } } diff --git a/src/Dictionaries/CacheDictionary.h b/src/Dictionaries/CacheDictionary.h index ec0cdb2acfb..d1742b19776 100644 --- a/src/Dictionaries/CacheDictionary.h +++ b/src/Dictionaries/CacheDictionary.h @@ -22,6 +22,8 @@ #include "IDictionary.h" #include "IDictionarySource.h" +#include + namespace CurrentMetrics { extern const Metric CacheDictionaryUpdateQueueBatches; @@ -346,6 +348,7 @@ private: std::map attribute_index_by_name; mutable std::vector attributes; mutable std::vector cells; + mutable LRUSet default_keys; Attribute * hierarchical_attribute = nullptr; std::unique_ptr string_arena; @@ -360,21 +363,11 @@ private: mutable std::atomic hit_count{0}; mutable std::atomic query_count{0}; - mutable std::unordered_set default_keys; - /* - * Disclaimer: this comment is written not for fun. - * * How the update goes: we basically have a method like get(keys)->values. Values are cached, so sometimes we - * can return them from the cache. For values not in cache, we query them from the dictionary, and add to the - * cache. The cache is lossy, so we can't expect it to store all the keys, and we store them separately. Normally, - * they would be passed as a return value of get(), but for Unknown Reasons the dictionaries use a baroque - * interface where get() accepts two callback, one that it calls for found values, and one for not found. - * - * Now we make it even uglier by doing this from multiple threads. The missing values are retrieved from the - * dictionary in a background thread, and this thread calls the provided callback. So if you provide the callbacks, - * you MUST wait until the background update finishes, or god knows what happens. Unfortunately, we have no - * way to check that you did this right, so good luck. + * can return them from the cache. For values not in cache, we query them from the source, and add to the + * cache. The cache is lossy, so we can't expect it to store all the keys, and we store them separately. + * So, there is a map of found keys to all its attributes. */ struct UpdateUnit { diff --git a/src/Dictionaries/CacheDictionary.inc.h b/src/Dictionaries/CacheDictionary.inc.h index ca59556d689..5b08b027b85 100644 --- a/src/Dictionaries/CacheDictionary.inc.h +++ b/src/Dictionaries/CacheDictionary.inc.h @@ -61,14 +61,10 @@ void CacheDictionary::getItemsNumberImpl( for (const auto row : ext::range(0, rows)) { const auto id = ids[row]; - - { - std::shared_lock shared_lock(default_cache_rw_lock); - /// First check if this key in the cache of default keys. - if (default_keys.find(id) != default_keys.end()) - continue; - } + /// First check if this key in the cache of default keys. + if (default_keys.has(id)) + continue; /** cell should be updated if either: * 1. ids do not match, @@ -174,9 +170,7 @@ void CacheDictionary::getItemsNumberImpl( out[row] = std::get(value.values[attribute_index]); } else { - /// Add key to the cache of default keys. - std::unique_lock unique_lock(default_cache_rw_lock); - default_keys.emplace(key); + default_keys.add(key); } } } @@ -207,7 +201,7 @@ void CacheDictionary::getItemsString( { std::shared_lock shared_lock(default_cache_rw_lock); /// Check if the key is stored in the cache of defaults. - if (default_keys.find(id) != default_keys.end()) + if (default_keys.has(id)) { const auto string_ref = get_default(row); out->insertData(string_ref.data, string_ref.size); @@ -258,14 +252,11 @@ void CacheDictionary::getItemsString( for (const auto row : ext::range(0, ids.size())) { const auto id = ids[row]; + /// Check if the key is stored in the cache of defaults. + if (default_keys.has(id)) { - std::shared_lock shared_lock(default_cache_rw_lock); - /// Check if the key is stored in the cache of defaults. - if (default_keys.find(id) != default_keys.end()) - { - const auto string_ref = get_default(row); - out->insertData(string_ref.data, string_ref.size); - } + const auto string_ref = get_default(row); + out->insertData(string_ref.data, string_ref.size); } const auto find_result = findCellIdx(id, now); @@ -383,8 +374,7 @@ void CacheDictionary::getItemsString( value = std::get(found_it->second.values[attribute_index]); else { - std::unique_lock unique_lock(default_cache_rw_lock); - default_keys.insert(id); + default_keys.add(id); value = get_default(row); } } diff --git a/tests/integration/test_dictionaries_all_layouts_separate_sources/configs/dictionaries/.gitkeep b/tests/integration/test_dictionaries_all_layouts_separate_sources/configs/dictionaries/.gitkeep deleted file mode 100644 index c693f138c81..00000000000 --- a/tests/integration/test_dictionaries_all_layouts_separate_sources/configs/dictionaries/.gitkeep +++ /dev/null @@ -1 +0,0 @@ -keep \ No newline at end of file diff --git a/tests/integration/test_dictionaries_update_and_reload/test.py b/tests/integration/test_dictionaries_update_and_reload/test.py index 95096249f48..ce71625c3ea 100644 --- a/tests/integration/test_dictionaries_update_and_reload/test.py +++ b/tests/integration/test_dictionaries_update_and_reload/test.py @@ -221,6 +221,7 @@ def test_reload_after_fail_in_cache_dictionary(started_cluster): # Can't get a value from the cache dictionary because the source (table `test.xypairs`) doesn't respond. expected_error = "Table test.xypairs doesn't exist" + update_error = "Could not update cache dictionary cache_xypairs now" assert expected_error in query_and_get_error("SELECT dictGetUInt64('cache_xypairs', 'y', toUInt64(1))") assert get_status("cache_xypairs") == "LOADED" assert expected_error in get_last_exception("cache_xypairs") @@ -254,8 +255,9 @@ def test_reload_after_fail_in_cache_dictionary(started_cluster): query("SELECT dictGet('cache_xypairs', 'y', toUInt64(1))") == "56" query("SELECT dictGet('cache_xypairs', 'y', toUInt64(2))") == "0" error = query_and_get_error("SELECT dictGetUInt64('cache_xypairs', 'y', toUInt64(3))") - assert expected_error in error - assert expected_error in get_last_exception("cache_xypairs") + assert (expected_error in error) or (update_error in error) + last_exception = get_last_exception("cache_xypairs") + assert (expected_error in last_exception) or (update_error in last_exception) # Create table `test.xypairs` again with changed values. query(''' diff --git a/tests/integration/test_system_queries/test.py b/tests/integration/test_system_queries/test.py index 5fa1cab5b36..b159e8b4cf3 100644 --- a/tests/integration/test_system_queries/test.py +++ b/tests/integration/test_system_queries/test.py @@ -47,7 +47,7 @@ def test_SYSTEM_RELOAD_DICTIONARY(started_cluster): instance.query("INSERT INTO dictionary_source VALUES (1, 1)") assert TSV(instance.query( "SELECT dictGetUInt8('clickhouse_cache', 'value', toUInt64(0)), dictHas('clickhouse_cache', toUInt64(1))")) == TSV( - "0\t1\n") + "0\t0\n") instance.query("SYSTEM RELOAD DICTIONARY clickhouse_cache") assert TSV(instance.query( From 321fb090f154698be5aa7affde4d6e3719ad0e31 Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Fri, 2 Oct 2020 17:26:39 +0300 Subject: [PATCH 153/425] return back to handwritten cache --- src/Dictionaries/CacheDictionary.cpp | 42 +++++++++++-------- src/Dictionaries/CacheDictionary.h | 41 +++++++++--------- src/Dictionaries/CacheDictionary.inc.h | 57 +++++++++++--------------- 3 files changed, 71 insertions(+), 69 deletions(-) diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index ad55e46eebf..0444671ad05 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -85,7 +85,6 @@ CacheDictionary::CacheDictionary( , size{roundUpToPowerOfTwoOrZero(std::max(size_, size_t(max_collision_length)))} , size_overlap_mask{this->size - 1} , cells{this->size} - , default_keys{this->size} , rnd_engine(randomSeed()) , update_queue(max_update_queue_size_) , update_pool(max_threads_for_updates) @@ -341,15 +340,15 @@ CacheDictionary::FindResult CacheDictionary::findCellIdx(const Key & id, const t if (cell.id != id) { /// maybe we already found nearest expired cell (try minimize collision_length on insert) - if (oldest_time > now && oldest_time > cell.deadline) + if (oldest_time > now && oldest_time > cell.expiresAt()) { - oldest_time = cell.deadline; + oldest_time = cell.expiresAt(); oldest_id = cell_idx; } continue; } - if (cell.deadline < now) + if (cell.expiresAt() < now) { return {cell_idx, false, true}; } @@ -388,16 +387,15 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray for (const auto row : ext::range(0, rows)) { const auto id = ids[row]; - - /// Check if the key is stored in the cache of defaults. - if (default_keys.has(id)) - continue; - const auto find_result = findCellIdx(id, now); + auto & cell = cells[find_result.cell_idx]; + + if (cell.isDefault()) + continue; auto insert_to_answer_routine = [&] () { - out[row] = true; + out[row] = !cell.isDefault(); }; if (!find_result.valid) @@ -405,7 +403,7 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray if (find_result.outdated) { /// Protection of reading very expired keys. - if (isExpiredPermanently(now, cells[find_result.cell_idx].deadline)) + if (isExpiredPermanently(now, cell.expiresAt())) { cache_not_found_count++; cache_expired_or_not_found_ids[id].push_back(row); @@ -480,9 +478,6 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray if (value.found) for (const auto row : cache_expired_or_not_found_ids[key]) out[row] = true; - else - /// Cache this key as default. - default_keys.add(key); } } @@ -683,6 +678,7 @@ bool CacheDictionary::isEmptyCell(const UInt64 idx) const return (idx != zero_cell_idx && cells[idx].id == 0) || (cells[idx].deadline == time_point_t()); } + PaddedPODArray CacheDictionary::getCachedIds() const { const ProfilingScopedReadRWLock read_lock{rw_lock, ProfileEvents::DictCacheLockReadNs}; @@ -985,18 +981,30 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const if (dict_lifetime.min_sec != 0 && dict_lifetime.max_sec != 0) { std::uniform_int_distribution distribution{dict_lifetime.min_sec, dict_lifetime.max_sec}; - cell.deadline = now + std::chrono::seconds{distribution(rnd_engine)}; + cell.setExpiresAt(now + std::chrono::seconds{distribution(rnd_engine)}); } else - cell.deadline = std::chrono::time_point::max(); + cell.setExpiresAt(std::chrono::time_point::max()); } } stream->readSuffix(); - /// Lock just for last_exception safety + /// Lock for cache modification ProfilingScopedWriteRWLock write_lock{rw_lock, ProfileEvents::DictCacheLockWriteNs}; + for (auto & [key, value] : update_unit_ptr->found_ids) + { + if (!value.found) + { + auto result = findCellIdx(key, now); + auto & cell = cells[result.cell_idx]; + cell.id = key; + cell.setExpiresAt(std::chrono::time_point::max()); + cell.setDefault(); + } + } + error_count = 0; last_exception = std::exception_ptr{}; backoff_end_time = std::chrono::system_clock::time_point{}; diff --git a/src/Dictionaries/CacheDictionary.h b/src/Dictionaries/CacheDictionary.h index d1742b19776..7a2ae9e1e50 100644 --- a/src/Dictionaries/CacheDictionary.h +++ b/src/Dictionaries/CacheDictionary.h @@ -22,8 +22,6 @@ #include "IDictionary.h" #include "IDictionarySource.h" -#include - namespace CurrentMetrics { extern const Metric CacheDictionaryUpdateQueueBatches; @@ -66,22 +64,6 @@ public: ~CacheDictionary() override; - using AttributeValue = std::variant< - UInt8, UInt16, UInt32, UInt64, UInt128, - Int8, Int16, Int32, Int64, - Decimal32, Decimal64, Decimal128, - Float32, Float64, String>; - - struct AttributeValuesForKey - { - bool found{false}; - std::vector values; - - std::string dump(); - }; - - using FoundValuesForKeys = std::unordered_map; - std::string getTypeName() const override { return "Cache"; } size_t getBytesAllocated() const override; @@ -222,8 +204,30 @@ private: { UInt64 id; time_point_t deadline; + bool is_default{false}; + + time_point_t expiresAt() const { return deadline; } + void setExpiresAt(const time_point_t & t) { deadline = t; is_default = false; } + bool isDefault() const { return is_default; } + void setDefault() { is_default = true; } }; + using AttributeValue = std::variant< + UInt8, UInt16, UInt32, UInt64, UInt128, + Int8, Int16, Int32, Int64, + Decimal32, Decimal64, Decimal128, + Float32, Float64, String>; + + struct AttributeValuesForKey + { + bool found{false}; + std::vector values; + + std::string dump(); + }; + + using FoundValuesForKeys = std::unordered_map; + struct Attribute final { AttributeUnderlyingType type; @@ -348,7 +352,6 @@ private: std::map attribute_index_by_name; mutable std::vector attributes; mutable std::vector cells; - mutable LRUSet default_keys; Attribute * hierarchical_attribute = nullptr; std::unique_ptr string_arena; diff --git a/src/Dictionaries/CacheDictionary.inc.h b/src/Dictionaries/CacheDictionary.inc.h index 5b08b027b85..b9328e04ac4 100644 --- a/src/Dictionaries/CacheDictionary.inc.h +++ b/src/Dictionaries/CacheDictionary.inc.h @@ -1,6 +1,8 @@ #pragma once -#include "CacheDictionary.h" +#include + +#include "CacheDictionary.h" #include #include #include @@ -10,6 +12,7 @@ #include #include + namespace ProfileEvents { extern const Event DictCacheKeysRequested; @@ -61,10 +64,6 @@ void CacheDictionary::getItemsNumberImpl( for (const auto row : ext::range(0, rows)) { const auto id = ids[row]; - - /// First check if this key in the cache of default keys. - if (default_keys.has(id)) - continue; /** cell should be updated if either: * 1. ids do not match, @@ -72,20 +71,24 @@ void CacheDictionary::getItemsNumberImpl( * 3. explicit defaults were specified and cell was set default. */ const auto find_result = findCellIdx(id, now); + auto & cell = cells[find_result.cell_idx]; + + if (cell.isDefault()) + continue; auto update_routine = [&]() { const auto & cell_idx = find_result.cell_idx; - out[row] = static_cast(attribute_array[cell_idx]); + if (!cell.isDefault()) + out[row] = static_cast(attribute_array[cell_idx]); }; if (!find_result.valid) { - if (find_result.outdated) { /// Protection of reading very expired keys. - if (isExpiredPermanently(now, cells[find_result.cell_idx].deadline)) + if (isExpiredPermanently(now, cell.expiresAt())) { cache_not_found_count++; cache_expired_or_not_found_ids[id].push_back(row); @@ -168,10 +171,7 @@ void CacheDictionary::getItemsNumberImpl( { for (const size_t row : cache_expired_or_not_found_ids[key]) out[row] = std::get(value.values[attribute_index]); - } else - { - default_keys.add(key); - } + } } } @@ -198,17 +198,9 @@ void CacheDictionary::getItemsString( { const auto id = ids[row]; - { - std::shared_lock shared_lock(default_cache_rw_lock); - /// Check if the key is stored in the cache of defaults. - if (default_keys.has(id)) - { - const auto string_ref = get_default(row); - out->insertData(string_ref.data, string_ref.size); - } - } - const auto find_result = findCellIdx(id, now); + auto & cell = cells[find_result.cell_idx]; + if (!find_result.valid) { found_outdated_values = true; @@ -217,7 +209,7 @@ void CacheDictionary::getItemsString( else { const auto & cell_idx = find_result.cell_idx; - const auto string_ref = attribute_array[cell_idx]; + const auto string_ref = cell.isDefault() ? get_default(row) : attribute_array[cell_idx]; out->insertData(string_ref.data, string_ref.size); } } @@ -252,20 +244,20 @@ void CacheDictionary::getItemsString( for (const auto row : ext::range(0, ids.size())) { const auto id = ids[row]; - /// Check if the key is stored in the cache of defaults. - if (default_keys.has(id)) - { - const auto string_ref = get_default(row); - out->insertData(string_ref.data, string_ref.size); - } const auto find_result = findCellIdx(id, now); + const auto & cell = cells[find_result.cell_idx]; + + if (cell.isDefault()) + continue; auto insert_value_routine = [&]() { const auto & cell_idx = find_result.cell_idx; - const auto string_ref = attribute_array[cell_idx]; + const auto string_ref = cell.isDefault() ? get_default(row) : attribute_array[cell_idx]; + + if (!cell.isDefault()) + inside_cache[id] = String{string_ref}; - inside_cache[id] = String{string_ref}; total_length += string_ref.size + 1; }; @@ -274,7 +266,7 @@ void CacheDictionary::getItemsString( if (find_result.outdated) { /// Protection of reading very expired keys. - if (isExpiredPermanently(now, cells[find_result.cell_idx].deadline)) + if (isExpiredPermanently(now, cells[find_result.cell_idx].expiresAt())) { cache_not_found_count++; cache_expired_or_not_found_ids[id].push_back(row); @@ -374,7 +366,6 @@ void CacheDictionary::getItemsString( value = std::get(found_it->second.values[attribute_index]); else { - default_keys.add(id); value = get_default(row); } } From 0f5e980d85fa79a805112f1fc704bc866e702ecd Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Fri, 2 Oct 2020 18:47:07 +0300 Subject: [PATCH 154/425] style --- src/Dictionaries/CacheDictionary.cpp | 20 +++++++++----------- src/Dictionaries/CacheDictionary.h | 4 ++-- src/Dictionaries/CacheDictionary.inc.h | 2 +- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index 0444671ad05..9bee094a1aa 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -865,20 +865,18 @@ void CacheDictionary::tryPushToUpdateQueueOrThrow(UpdateUnitPtr & update_unit_pt } -std::vector CacheDictionary::getAttributeValuesFromBlockAtPosition(const std::vector & column_ptrs, size_t position) +std::vector CacheDictionary::getAttributeValuesFromBlockAtPosition(const std::vector & column_ptrs, size_t position) { std::vector answer; answer.reserve(column_ptrs.size()); - for (size_t i = 0; i < column_ptrs.size(); ++i) + for (const auto * pure_column : column_ptrs) { - const auto pure_column = column_ptrs[i]; - #define DISPATCH(TYPE) \ - if (auto column = typeid_cast(pure_column)) { \ + if (const auto * column = typeid_cast(pure_column)) { \ answer.emplace_back(column->getElement(position)); \ continue; \ - } + } DISPATCH(UInt8) DISPATCH(UInt16) DISPATCH(UInt32) @@ -894,7 +892,7 @@ std::vector CacheDictionary::getAttributeValues DISPATCH(Float32) DISPATCH(Float64) #undef DISPATCH - if (auto column = typeid_cast(pure_column)) + if (const auto * column = typeid_cast(pure_column)) { answer.emplace_back(column->getDataAt(position).toString()); continue; @@ -1002,8 +1000,8 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const cell.id = key; cell.setExpiresAt(std::chrono::time_point::max()); cell.setDefault(); - } - } + } + } error_count = 0; last_exception = std::exception_ptr{}; @@ -1035,13 +1033,13 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const true /*check embedded stack trace*/)); } } - + ProfileEvents::increment(ProfileEvents::DictCacheKeysRequestedMiss, update_unit_ptr->requested_ids.size() - found_num); ProfileEvents::increment(ProfileEvents::DictCacheKeysRequestedFound, found_num); ProfileEvents::increment(ProfileEvents::DictCacheRequests); } - else + else { /// Won't request source for keys throw DB::Exception(ErrorCodes::CACHE_DICTIONARY_UPDATE_FAIL, diff --git a/src/Dictionaries/CacheDictionary.h b/src/Dictionaries/CacheDictionary.h index 7a2ae9e1e50..83c3979337e 100644 --- a/src/Dictionaries/CacheDictionary.h +++ b/src/Dictionaries/CacheDictionary.h @@ -118,7 +118,7 @@ public: void isInConstantVector(const Key child_id, const PaddedPODArray & ancestor_ids, PaddedPODArray & out) const override; std::exception_ptr getLastException() const override; - + template using ResultArrayType = std::conditional_t, DecimalPaddedPODArray, PaddedPODArray>; @@ -298,7 +298,7 @@ private: return source_ptr; } - inline bool isExpiredPermanently(time_point_t now, time_point_t deadline) const + inline bool isExpiredPermanently(time_point_t now, time_point_t deadline) const { return now > deadline + std::chrono::seconds(extra_lifetime_seconds); } diff --git a/src/Dictionaries/CacheDictionary.inc.h b/src/Dictionaries/CacheDictionary.inc.h index b9328e04ac4..e7e50c4ceb2 100644 --- a/src/Dictionaries/CacheDictionary.inc.h +++ b/src/Dictionaries/CacheDictionary.inc.h @@ -171,7 +171,7 @@ void CacheDictionary::getItemsNumberImpl( { for (const size_t row : cache_expired_or_not_found_ids[key]) out[row] = std::get(value.values[attribute_index]); - } + } } } From 31b1f644c196c6c12ee264a394372cb40b1ad867 Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Fri, 2 Oct 2020 22:09:48 +0300 Subject: [PATCH 155/425] better --- src/Dictionaries/CacheDictionary.cpp | 52 +++++++----- src/Dictionaries/CacheDictionary.h | 4 +- src/Dictionaries/CacheDictionary.inc.h | 82 ++++++++++++------- .../configs/dictionaries/.gitkeep | 1 + 4 files changed, 89 insertions(+), 50 deletions(-) create mode 100644 tests/integration/test_dictionaries_all_layouts_separate_sources/configs/dictionaries/.gitkeep diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index 9bee094a1aa..aaaba51ea6b 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -319,14 +319,34 @@ std::string CacheDictionary::UpdateUnit::dumpFoundIds() return os.str(); }; -/// returns cell_idx (always valid for replacing), 'cell is valid' flag, 'cell is outdated' flag +/// Returns cell_idx in handmade open addressing cache table. /// true false found and valid -/// false true not found (something outdated, maybe our cell) +/// false true found, but expired /// false false not found (other id stored with valid data) /// true true impossible -/// -/// todo: split this func to two: find_for_get and find_for_set -CacheDictionary::FindResult CacheDictionary::findCellIdx(const Key & id, const time_point_t now) const +CacheDictionary::FindResult CacheDictionary::findCellIdxForGet(const Key & id, const time_point_t now) const +{ + auto pos = getCellIdx(id); + const auto stop = pos + max_collision_length; + for (; pos < stop; ++pos) + { + const auto cell_idx = pos & size_overlap_mask; + const auto & cell = cells[cell_idx]; + + if (cell.id != id) + continue; + + if (cell.expiresAt() < now) + return {cell_idx, false, true}; + + return {cell_idx, true, false}; + } + + return {pos, false, false}; +} + +/// Returns cell_idx such that cells[cell_idx].id = id or the oldest cell in bounds of max_coolision_length. +size_t CacheDictionary::findCellIdxForSet(const Key & id) const { auto pos = getCellIdx(id); auto oldest_id = pos; @@ -340,7 +360,7 @@ CacheDictionary::FindResult CacheDictionary::findCellIdx(const Key & id, const t if (cell.id != id) { /// maybe we already found nearest expired cell (try minimize collision_length on insert) - if (oldest_time > now && oldest_time > cell.expiresAt()) + if (cell.expiresAt() < oldest_time) { oldest_time = cell.expiresAt(); oldest_id = cell_idx; @@ -348,15 +368,11 @@ CacheDictionary::FindResult CacheDictionary::findCellIdx(const Key & id, const t continue; } - if (cell.expiresAt() < now) - { - return {cell_idx, false, true}; - } - - return {cell_idx, true, false}; + /// We found the exact place for id. + return cell_idx; } - return {oldest_id, false, false}; + return oldest_id; } void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray & out) const @@ -387,7 +403,7 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray for (const auto row : ext::range(0, rows)) { const auto id = ids[row]; - const auto find_result = findCellIdx(id, now); + const auto find_result = findCellIdxForGet(id, now); auto & cell = cells[find_result.cell_idx]; if (cell.isDefault()) @@ -948,9 +964,7 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const ProfilingScopedWriteRWLock write_lock{rw_lock, ProfileEvents::DictCacheLockWriteNs}; const auto id = ids[i]; - const auto find_result = findCellIdx(id, now); - const auto & cell_idx = find_result.cell_idx; - + const auto cell_idx = findCellIdxForSet(id); auto & cell = cells[cell_idx]; auto it = map_ids.find(id); @@ -995,8 +1009,8 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const { if (!value.found) { - auto result = findCellIdx(key, now); - auto & cell = cells[result.cell_idx]; + auto cell_idx = findCellIdxForSet(key); + auto & cell = cells[cell_idx]; cell.id = key; cell.setExpiresAt(std::chrono::time_point::max()); cell.setDefault(); diff --git a/src/Dictionaries/CacheDictionary.h b/src/Dictionaries/CacheDictionary.h index 83c3979337e..b11b32c3bd6 100644 --- a/src/Dictionaries/CacheDictionary.h +++ b/src/Dictionaries/CacheDictionary.h @@ -310,7 +310,9 @@ private: const bool outdated; }; - FindResult findCellIdx(const Key & id, const time_point_t now) const; + FindResult findCellIdxForGet(const Key & id, const time_point_t now) const; + + size_t findCellIdxForSet(const Key & id) const; template void isInImpl(const PaddedPODArray & child_ids, const AncestorType & ancestor_ids, PaddedPODArray & out) const; diff --git a/src/Dictionaries/CacheDictionary.inc.h b/src/Dictionaries/CacheDictionary.inc.h index e7e50c4ceb2..3a5a6381b1a 100644 --- a/src/Dictionaries/CacheDictionary.inc.h +++ b/src/Dictionaries/CacheDictionary.inc.h @@ -70,12 +70,9 @@ void CacheDictionary::getItemsNumberImpl( * 2. cell has expired, * 3. explicit defaults were specified and cell was set default. */ - const auto find_result = findCellIdx(id, now); + const auto find_result = findCellIdxForGet(id, now); auto & cell = cells[find_result.cell_idx]; - if (cell.isDefault()) - continue; - auto update_routine = [&]() { const auto & cell_idx = find_result.cell_idx; @@ -181,7 +178,7 @@ void CacheDictionary::getItemsString( { const auto rows = ext::size(ids); - /// save on some allocations + /// Save on some allocations. out->getOffsets().reserve(rows); auto & attribute_array = std::get>(attribute.arrays); @@ -193,24 +190,34 @@ void CacheDictionary::getItemsString( const ProfilingScopedReadRWLock read_lock{rw_lock, ProfileEvents::DictCacheLockReadNs}; const auto now = std::chrono::system_clock::now(); - /// fetch up-to-date values, discard on fail + /// Fetch up-to-date values, discard on fail. for (const auto row : ext::range(0, rows)) { const auto id = ids[row]; - const auto find_result = findCellIdx(id, now); + const auto find_result = findCellIdxForGet(id, now); auto & cell = cells[find_result.cell_idx]; + auto insert_routine = [&] () + { + const auto & cell_idx = find_result.cell_idx; + const auto string_ref = cell.isDefault() ? get_default(row) : attribute_array[cell_idx]; + out->insertData(string_ref.data, string_ref.size); + }; + if (!find_result.valid) { + if (find_result.outdated && allow_read_expired_keys && !isExpiredPermanently(now, cell.expiresAt())) + { + insert_routine(); + continue; + } found_outdated_values = true; break; } else { - const auto & cell_idx = find_result.cell_idx; - const auto string_ref = cell.isDefault() ? get_default(row) : attribute_array[cell_idx]; - out->insertData(string_ref.data, string_ref.size); + insert_routine(); } } } @@ -220,6 +227,7 @@ void CacheDictionary::getItemsString( { query_count.fetch_add(rows, std::memory_order_relaxed); hit_count.fetch_add(rows, std::memory_order_release); + ProfileEvents::increment(ProfileEvents::DictCacheKeysHit, ids.size()); return; } @@ -230,7 +238,7 @@ void CacheDictionary::getItemsString( /// Mapping: -> { all indices `i` of `ids` such that `ids[i]` = } std::unordered_map> cache_expired_or_not_found_ids; /// we are going to store every string separately - std::unordered_map inside_cache; + std::unordered_map local_cache; size_t cache_not_found_count = 0; size_t cache_expired_count = 0; @@ -244,19 +252,17 @@ void CacheDictionary::getItemsString( for (const auto row : ext::range(0, ids.size())) { const auto id = ids[row]; - const auto find_result = findCellIdx(id, now); - const auto & cell = cells[find_result.cell_idx]; - - if (cell.isDefault()) - continue; + const auto find_result = findCellIdxForGet(id, now); + const auto & cell_idx = find_result.cell_idx; + const auto & cell = cells[cell_idx]; auto insert_value_routine = [&]() { - const auto & cell_idx = find_result.cell_idx; const auto string_ref = cell.isDefault() ? get_default(row) : attribute_array[cell_idx]; + /// Do not store default, but count it in total length. if (!cell.isDefault()) - inside_cache[id] = String{string_ref}; + local_cache[id] = String{string_ref}; total_length += string_ref.size + 1; }; @@ -265,8 +271,8 @@ void CacheDictionary::getItemsString( { if (find_result.outdated) { - /// Protection of reading very expired keys. - if (isExpiredPermanently(now, cells[find_result.cell_idx].expiresAt())) + /// Protection of reading too expired keys. + if (isExpiredPermanently(now, cell.expiresAt())) { cache_not_found_count++; cache_expired_or_not_found_ids[id].push_back(row); @@ -313,12 +319,29 @@ void CacheDictionary::getItemsString( tryPushToUpdateQueueOrThrow(update_unit_ptr); - /// Do not return at this point, because there some extra stuff to do at the end of this method. + /// Insert all found keys and defaults to output array. + out->getChars().reserve(total_length); + + for (const auto row : ext::range(0, ext::size(ids))) + { + const auto id = ids[row]; + StringRef value; + + /// Previously we stored found keys in map. + const auto it = local_cache.find(id); + if (it != local_cache.end()) + value = StringRef(it->second); + + value = get_default(row); + out->insertData(value.data, value.size); + } + + /// Nothing to do else. + return; } } - /// Request new values sync. - /// We have request both cache_not_found_ids and cache_expired_ids. + /// We will request both cache_not_found_ids and cache_expired_ids sync. std::vector required_ids; required_ids.reserve(cache_not_found_count + cache_expired_count); std::transform( @@ -352,22 +375,21 @@ void CacheDictionary::getItemsString( for (const auto row : ext::range(0, ext::size(ids))) { const auto id = ids[row]; - StringRef value; /// We have two maps: found in cache and found in source. - const auto it = inside_cache.find(id); - if (it != inside_cache.end()) - value = StringRef(it->second); + const auto local_it = local_cache.find(id); + if (local_it != local_cache.end()) + value = StringRef(local_it->second); else { const auto found_it = update_unit_ptr->found_ids.find(id); - if (found_it->second.found) + + /// Previously we didn't store defaults in local cache. + if (found_it != update_unit_ptr->found_ids.end() && found_it->second.found) value = std::get(found_it->second.values[attribute_index]); else - { value = get_default(row); - } } out->insertData(value.data, value.size); diff --git a/tests/integration/test_dictionaries_all_layouts_separate_sources/configs/dictionaries/.gitkeep b/tests/integration/test_dictionaries_all_layouts_separate_sources/configs/dictionaries/.gitkeep new file mode 100644 index 00000000000..9568549054c --- /dev/null +++ b/tests/integration/test_dictionaries_all_layouts_separate_sources/configs/dictionaries/.gitkeep @@ -0,0 +1 @@ +#Keep From 80e77b6a6182953a7c9c799eb5899e20ba4713eb Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Fri, 2 Oct 2020 23:50:39 +0300 Subject: [PATCH 156/425] better --- src/Dictionaries/CacheDictionary.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index aaaba51ea6b..4aacbe9bca0 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -342,7 +342,7 @@ CacheDictionary::FindResult CacheDictionary::findCellIdxForGet(const Key & id, c return {cell_idx, true, false}; } - return {pos, false, false}; + return {pos & size_overlap_mask, false, false}; } /// Returns cell_idx such that cells[cell_idx].id = id or the oldest cell in bounds of max_coolision_length. @@ -406,9 +406,6 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray const auto find_result = findCellIdxForGet(id, now); auto & cell = cells[find_result.cell_idx]; - if (cell.isDefault()) - continue; - auto insert_to_answer_routine = [&] () { out[row] = !cell.isDefault(); From f596d95b4bbaa90dbcdedc0c37ea12b801e403d8 Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Fri, 13 Nov 2020 19:16:56 +0300 Subject: [PATCH 157/425] better states for cells --- src/Dictionaries/CacheDictionary.cpp | 60 ++++------ src/Dictionaries/CacheDictionary.h | 18 ++- src/Dictionaries/CacheDictionary.inc.h | 159 ++++++++++--------------- 3 files changed, 105 insertions(+), 132 deletions(-) diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index 4aacbe9bca0..542feaff68f 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -319,11 +319,7 @@ std::string CacheDictionary::UpdateUnit::dumpFoundIds() return os.str(); }; -/// Returns cell_idx in handmade open addressing cache table. -/// true false found and valid -/// false true found, but expired -/// false false not found (other id stored with valid data) -/// true true impossible +/// Returns cell_idx in handmade open addressing cache table and the state of the cell stored the key. CacheDictionary::FindResult CacheDictionary::findCellIdxForGet(const Key & id, const time_point_t now) const { auto pos = getCellIdx(id); @@ -336,13 +332,16 @@ CacheDictionary::FindResult CacheDictionary::findCellIdxForGet(const Key & id, c if (cell.id != id) continue; - if (cell.expiresAt() < now) - return {cell_idx, false, true}; + if (isExpiredPermanently(now, cell.expiresAt())) + return {cell_idx, ResultState::FoundButExpiredPermanently}; - return {cell_idx, true, false}; + if (isExpired(now, cell.expiresAt())) + return {cell_idx, ResultState::FoundButExpired}; + + return {cell_idx, ResultState::FoundAndValid}; } - return {pos & size_overlap_mask, false, false}; + return {pos & size_overlap_mask, ResultState::NotFound}; } /// Returns cell_idx such that cells[cell_idx].id = id or the oldest cell in bounds of max_coolision_length. @@ -403,42 +402,33 @@ void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray for (const auto row : ext::range(0, rows)) { const auto id = ids[row]; - const auto find_result = findCellIdxForGet(id, now); - auto & cell = cells[find_result.cell_idx]; + const auto [cell_idx, state] = findCellIdxForGet(id, now); + auto & cell = cells[cell_idx]; auto insert_to_answer_routine = [&] () { out[row] = !cell.isDefault(); }; - if (!find_result.valid) - { - if (find_result.outdated) - { - /// Protection of reading very expired keys. - if (isExpiredPermanently(now, cell.expiresAt())) - { - cache_not_found_count++; - cache_expired_or_not_found_ids[id].push_back(row); - continue; - } - cache_expired_count++; - cache_expired_or_not_found_ids[id].push_back(row); - - if (allow_read_expired_keys) - insert_to_answer_routine(); - } - else - { - cache_not_found_count++; - cache_expired_or_not_found_ids[id].push_back(row); - } - } - else + if (state == ResultState::FoundAndValid) { ++cache_hit; insert_to_answer_routine(); } + else if (state == ResultState::NotFound || state == ResultState::FoundButExpiredPermanently) + { + /// Permanently expired equals to not found semantically. + ++cache_not_found_count; + cache_expired_or_not_found_ids[id].push_back(row); + } + else if (state == ResultState::FoundButExpired) + { + cache_expired_count++; + cache_expired_or_not_found_ids[id].push_back(row); + + if (allow_read_expired_keys) + insert_to_answer_routine(); + } } } diff --git a/src/Dictionaries/CacheDictionary.h b/src/Dictionaries/CacheDictionary.h index b11b32c3bd6..a88dc67ba3d 100644 --- a/src/Dictionaries/CacheDictionary.h +++ b/src/Dictionaries/CacheDictionary.h @@ -298,18 +298,28 @@ private: return source_ptr; } + inline bool isExpired(time_point_t now, time_point_t deadline) const + { + return now > deadline; + } + inline bool isExpiredPermanently(time_point_t now, time_point_t deadline) const { return now > deadline + std::chrono::seconds(extra_lifetime_seconds); } - struct FindResult + enum class ResultState { - const size_t cell_idx; - const bool valid; - const bool outdated; + NotFound, + FoundAndValid, + FoundButExpired, + /// Here is a gap between there two states in which a key could be read + /// with an enabled setting in config enable_read_expired_keys. + FoundButExpiredPermanently }; + using FindResult = std::pair; + FindResult findCellIdxForGet(const Key & id, const time_point_t now) const; size_t findCellIdxForSet(const Key & id) const; diff --git a/src/Dictionaries/CacheDictionary.inc.h b/src/Dictionaries/CacheDictionary.inc.h index 3a5a6381b1a..81f0361ed3e 100644 --- a/src/Dictionaries/CacheDictionary.inc.h +++ b/src/Dictionaries/CacheDictionary.inc.h @@ -60,6 +60,14 @@ void CacheDictionary::getItemsNumberImpl( const ProfilingScopedReadRWLock read_lock{rw_lock, ProfileEvents::DictCacheLockReadNs}; const auto now = std::chrono::system_clock::now(); + + auto insert_to_answer_routine = [&](size_t row, size_t idx) + { + auto & cell = cells[idx]; + if (!cell.isDefault()) + out[row] = static_cast(attribute_array[idx]); + }; + /// fetch up-to-date values, decide which ones require update for (const auto row : ext::range(0, rows)) { @@ -70,44 +78,25 @@ void CacheDictionary::getItemsNumberImpl( * 2. cell has expired, * 3. explicit defaults were specified and cell was set default. */ - const auto find_result = findCellIdxForGet(id, now); - auto & cell = cells[find_result.cell_idx]; + const auto [cell_idx, state] = findCellIdxForGet(id, now); - auto update_routine = [&]() - { - const auto & cell_idx = find_result.cell_idx; - if (!cell.isDefault()) - out[row] = static_cast(attribute_array[cell_idx]); - }; - - if (!find_result.valid) - { - if (find_result.outdated) - { - /// Protection of reading very expired keys. - if (isExpiredPermanently(now, cell.expiresAt())) - { - cache_not_found_count++; - cache_expired_or_not_found_ids[id].push_back(row); - continue; - } - - cache_expired_cound++; - cache_expired_or_not_found_ids[id].push_back(row); - - if (allow_read_expired_keys) - update_routine(); - } - else - { - cache_not_found_count++; - cache_expired_or_not_found_ids[id].push_back(row); - } - } - else + if (state == ResultState::FoundAndValid) { ++cache_hit; - update_routine(); + insert_to_answer_routine(row, cell_idx); + } + else if (state == ResultState::NotFound || state == ResultState::FoundButExpiredPermanently) + { + ++cache_not_found_count; + cache_expired_or_not_found_ids[id].push_back(row); + } + else if (state == ResultState::FoundButExpired) + { + cache_expired_cound++; + cache_expired_or_not_found_ids[id].push_back(row); + + if (allow_read_expired_keys) + insert_to_answer_routine(row, cell_idx); } } } @@ -190,34 +179,28 @@ void CacheDictionary::getItemsString( const ProfilingScopedReadRWLock read_lock{rw_lock, ProfileEvents::DictCacheLockReadNs}; const auto now = std::chrono::system_clock::now(); + + auto insert_routine = [&] (size_t row, size_t idx) + { + auto & cell = cells[idx]; + const auto string_ref = cell.isDefault() ? get_default(row) : attribute_array[idx]; + out->insertData(string_ref.data, string_ref.size); + }; + /// Fetch up-to-date values, discard on fail. for (const auto row : ext::range(0, rows)) { const auto id = ids[row]; + const auto [cell_idx, state] = findCellIdxForGet(id, now); - const auto find_result = findCellIdxForGet(id, now); - auto & cell = cells[find_result.cell_idx]; - - auto insert_routine = [&] () + if (state == ResultState::FoundAndValid) { - const auto & cell_idx = find_result.cell_idx; - const auto string_ref = cell.isDefault() ? get_default(row) : attribute_array[cell_idx]; - out->insertData(string_ref.data, string_ref.size); - }; - - if (!find_result.valid) - { - if (find_result.outdated && allow_read_expired_keys && !isExpiredPermanently(now, cell.expiresAt())) - { - insert_routine(); - continue; - } - found_outdated_values = true; - break; + insert_routine(row, cell_idx); } else { - insert_routine(); + found_outdated_values = true; + break; } } } @@ -249,51 +232,41 @@ void CacheDictionary::getItemsString( const ProfilingScopedReadRWLock read_lock{rw_lock, ProfileEvents::DictCacheLockReadNs}; const auto now = std::chrono::system_clock::now(); + + auto insert_value_routine = [&](size_t row, size_t id, size_t cell_idx) + { + const auto & cell = cells[cell_idx]; + const auto string_ref = cell.isDefault() ? get_default(row) : attribute_array[cell_idx]; + + /// Do not store default, but count it in total length. + if (!cell.isDefault()) + local_cache[id] = String{string_ref}; + + total_length += string_ref.size + 1; + }; + for (const auto row : ext::range(0, ids.size())) { const auto id = ids[row]; - const auto find_result = findCellIdxForGet(id, now); - const auto & cell_idx = find_result.cell_idx; - const auto & cell = cells[cell_idx]; + const auto [cell_idx, state] = findCellIdxForGet(id, now); - auto insert_value_routine = [&]() - { - const auto string_ref = cell.isDefault() ? get_default(row) : attribute_array[cell_idx]; - - /// Do not store default, but count it in total length. - if (!cell.isDefault()) - local_cache[id] = String{string_ref}; - - total_length += string_ref.size + 1; - }; - - if (!find_result.valid) - { - if (find_result.outdated) - { - /// Protection of reading too expired keys. - if (isExpiredPermanently(now, cell.expiresAt())) - { - cache_not_found_count++; - cache_expired_or_not_found_ids[id].push_back(row); - continue; - } - - cache_expired_count++; - cache_expired_or_not_found_ids[id].push_back(row); - - if (allow_read_expired_keys) - insert_value_routine(); - } - else - { - cache_not_found_count++; - cache_expired_or_not_found_ids[id].push_back(row); - } - } else + if (state == ResultState::FoundAndValid) { ++cache_hit; - insert_value_routine(); + insert_value_routine(row, id, cell_idx); + } + else if (state == ResultState::NotFound || state == ResultState::FoundButExpiredPermanently) + { + ++cache_not_found_count; + cache_expired_or_not_found_ids[id].push_back(row); + } + else if (state == ResultState::FoundButExpired) + { + ++cache_expired_count; + cache_expired_or_not_found_ids[id].push_back(row); + + if (allow_read_expired_keys) + insert_value_routine(row, id, cell_idx); } } } From e604d37067178d6da12c8d9b546ea896d3ae39cf Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Mon, 16 Nov 2020 18:30:16 +0300 Subject: [PATCH 158/425] better --- src/Dictionaries/CacheDictionary.cpp | 31 ++++++++----------- src/Dictionaries/CacheDictionary.h | 23 ++++++++++++-- src/Dictionaries/CacheDictionary.inc.h | 14 +++------ .../CacheDictionary_generate1.cpp | 2 +- 4 files changed, 40 insertions(+), 30 deletions(-) diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index 542feaff68f..ef11bfc1965 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -128,7 +128,7 @@ const IDictionarySource * CacheDictionary::getSource() const void CacheDictionary::toParent(const PaddedPODArray & ids, PaddedPODArray & out) const { - const auto null_value = std::get(hierarchical_attribute->null_values); + const auto null_value = std::get(hierarchical_attribute->null_value); getItemsNumberImpl(*hierarchical_attribute, ids, out, [&](const size_t) { return null_value; }); } @@ -153,7 +153,7 @@ void CacheDictionary::isInImpl(const PaddedPODArray & child_ids, const Ance size_t out_size = out.size(); memset(out.data(), 0xFF, out_size); /// 0xFF means "not calculated" - const auto null_value = std::get(hierarchical_attribute->null_values); + const auto null_value = std::get(hierarchical_attribute->null_value); PaddedPODArray children(out_size, 0); PaddedPODArray parents(child_ids.begin(), child_ids.end()); @@ -225,7 +225,7 @@ void CacheDictionary::isInConstantVector(const Key child_id, const PaddedPODArra { /// Special case with single child value. - const auto null_value = std::get(hierarchical_attribute->null_values); + const auto null_value = std::get(hierarchical_attribute->null_value); PaddedPODArray child(1, child_id); PaddedPODArray parent(1); @@ -253,7 +253,7 @@ void CacheDictionary::getString(const std::string & attribute_name, const Padded auto & attribute = getAttribute(attribute_name); checkAttributeType(this, attribute_name, attribute.type, AttributeUnderlyingType::utString); - const auto null_value = StringRef{std::get(attribute.null_values)}; + const auto null_value = StringRef{std::get(attribute.null_value)}; getItemsString(attribute, ids, out, [&](const size_t) { return null_value; }); } @@ -376,6 +376,7 @@ size_t CacheDictionary::findCellIdxForSet(const Key & id) const void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray & out) const { + std::cout << "has" << std::endl; /// There are three types of ids. /// - Valid ids. These ids are presented in local cache and their lifetime is not expired. /// - CacheExpired ids. Ids that are in local cache, but their values are rotted (lifetime is expired). @@ -516,7 +517,7 @@ CacheDictionary::Attribute CacheDictionary::createAttributeWithTypeAndName(const { #define DISPATCH(TYPE) \ case AttributeUnderlyingType::ut##TYPE: \ - attr.null_values = TYPE(null_value.get>()); /* NOLINT */ \ + attr.null_value = TYPE(null_value.get>()); /* NOLINT */ \ attr.arrays = std::make_unique>(size); /* NOLINT */ \ bytes_allocated += size * sizeof(TYPE); \ break; @@ -536,7 +537,7 @@ CacheDictionary::Attribute CacheDictionary::createAttributeWithTypeAndName(const DISPATCH(Float64) #undef DISPATCH case AttributeUnderlyingType::utString: - attr.null_values = null_value.get(); + attr.null_value = null_value.get(); attr.arrays = std::make_unique>(size); bytes_allocated += size * sizeof(StringRef); if (!string_arena) @@ -553,7 +554,7 @@ void CacheDictionary::setDefaultAttributeValue(Attribute & attribute, const Key { #define DISPATCH(TYPE) \ case AttributeUnderlyingType::ut##TYPE: \ - std::get>(attribute.arrays)[idx] = std::get(attribute.null_values); /* NOLINT */ \ + std::get>(attribute.arrays)[idx] = std::get(attribute.null_value); /* NOLINT */ \ break; DISPATCH(UInt8) DISPATCH(UInt16) @@ -572,7 +573,7 @@ void CacheDictionary::setDefaultAttributeValue(Attribute & attribute, const Key #undef DISPATCH case AttributeUnderlyingType::utString: { - const auto & null_value_ref = std::get(attribute.null_values); + const auto & null_value_ref = std::get(attribute.null_value); auto & string_ref = std::get>(attribute.arrays)[idx]; if (string_ref.data != null_value_ref.data()) @@ -639,7 +640,7 @@ void CacheDictionary::setAttributeValue(Attribute & attribute, const Key idx, co { const auto & string = value.get(); auto & string_ref = std::get>(attribute.arrays)[idx]; - const auto & null_value_ref = std::get(attribute.null_values); + const auto & null_value_ref = std::get(attribute.null_value); /// free memory unless it points to a null_value if (string_ref.data && string_ref.data != null_value_ref.data()) @@ -904,7 +905,7 @@ std::vector CacheDictionary::getAttributeValues return answer; } -void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const +void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) { CurrentMetrics::Increment metric_increment{CurrentMetrics::DictCacheRequests}; ProfileEvents::increment(ProfileEvents::DictCacheKeysRequested, update_unit_ptr->requested_ids.size()); @@ -977,13 +978,7 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const element_count.fetch_add(1, std::memory_order_relaxed); cell.id = id; - if (dict_lifetime.min_sec != 0 && dict_lifetime.max_sec != 0) - { - std::uniform_int_distribution distribution{dict_lifetime.min_sec, dict_lifetime.max_sec}; - cell.setExpiresAt(now + std::chrono::seconds{distribution(rnd_engine)}); - } - else - cell.setExpiresAt(std::chrono::time_point::max()); + setLifetime(cell, now); } } @@ -999,7 +994,7 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) const auto cell_idx = findCellIdxForSet(key); auto & cell = cells[cell_idx]; cell.id = key; - cell.setExpiresAt(std::chrono::time_point::max()); + setLifetime(cell, now); cell.setDefault(); } } diff --git a/src/Dictionaries/CacheDictionary.h b/src/Dictionaries/CacheDictionary.h index a88dc67ba3d..62c858194e0 100644 --- a/src/Dictionaries/CacheDictionary.h +++ b/src/Dictionaries/CacheDictionary.h @@ -232,7 +232,10 @@ private: { AttributeUnderlyingType type; String name; - AttributeValue null_values; + /// Default value for each type. Could be defined in config. + AttributeValue null_value; + /// We store attribute value for all keys. It is a "row" in a hand-made open addressing hashtable, + /// where "column" is key. std::variant< ContainerPtrType, ContainerPtrType, @@ -298,6 +301,22 @@ private: return source_ptr; } + inline void setLifetime(CellMetadata & cell, time_point_t now) + { + if (dict_lifetime.min_sec != 0 && dict_lifetime.max_sec != 0) + { + std::uniform_int_distribution distribution{dict_lifetime.min_sec, dict_lifetime.max_sec}; + cell.setExpiresAt(now + std::chrono::seconds{distribution(rnd_engine)}); + } + else + { + /// This maybe not obvious, but when we define is this cell is expired or expired permanently, we add extra_lifetime_seconds + /// to the expiration time. And it overflows pretty well. + cell.setExpiresAt(std::chrono::time_point::max() - 2 * std::chrono::seconds(extra_lifetime_seconds)); + } + + } + inline bool isExpired(time_point_t now, time_point_t deadline) const { return now > deadline; @@ -430,7 +449,7 @@ private: * */ void updateThreadFunction(); - void update(UpdateUnitPtr & update_unit_ptr) const; + void update(UpdateUnitPtr & update_unit_ptr); void tryPushToUpdateQueueOrThrow(UpdateUnitPtr & update_unit_ptr) const; diff --git a/src/Dictionaries/CacheDictionary.inc.h b/src/Dictionaries/CacheDictionary.inc.h index 81f0361ed3e..22ecf5ebe66 100644 --- a/src/Dictionaries/CacheDictionary.inc.h +++ b/src/Dictionaries/CacheDictionary.inc.h @@ -180,13 +180,6 @@ void CacheDictionary::getItemsString( const auto now = std::chrono::system_clock::now(); - auto insert_routine = [&] (size_t row, size_t idx) - { - auto & cell = cells[idx]; - const auto string_ref = cell.isDefault() ? get_default(row) : attribute_array[idx]; - out->insertData(string_ref.data, string_ref.size); - }; - /// Fetch up-to-date values, discard on fail. for (const auto row : ext::range(0, rows)) { @@ -195,7 +188,9 @@ void CacheDictionary::getItemsString( if (state == ResultState::FoundAndValid) { - insert_routine(row, cell_idx); + auto & cell = cells[cell_idx]; + const auto string_ref = cell.isDefault() ? get_default(row) : attribute_array[cell_idx]; + out->insertData(string_ref.data, string_ref.size); } else { @@ -304,8 +299,9 @@ void CacheDictionary::getItemsString( const auto it = local_cache.find(id); if (it != local_cache.end()) value = StringRef(it->second); + else + value = get_default(row); - value = get_default(row); out->insertData(value.data, value.size); } diff --git a/src/Dictionaries/CacheDictionary_generate1.cpp b/src/Dictionaries/CacheDictionary_generate1.cpp index a041f50ea26..2c6742b3a8c 100644 --- a/src/Dictionaries/CacheDictionary_generate1.cpp +++ b/src/Dictionaries/CacheDictionary_generate1.cpp @@ -9,7 +9,7 @@ namespace DB { \ auto & attribute = getAttribute(attribute_name); \ checkAttributeType(this, attribute_name, attribute.type, AttributeUnderlyingType::ut##TYPE); \ - const auto null_value = std::get(attribute.null_values); \ + const auto null_value = std::get(attribute.null_value); \ getItemsNumberImpl(attribute, ids, out, [&](const size_t) { return null_value; }); \ } From 20ae82b24b909f63903202fb0ae98daa38f70bbe Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Mon, 16 Nov 2020 18:39:24 +0300 Subject: [PATCH 159/425] remote nolint --- src/Dictionaries/CacheDictionary.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index ef11bfc1965..c7ce0754823 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -515,11 +515,11 @@ CacheDictionary::Attribute CacheDictionary::createAttributeWithTypeAndName(const switch (type) { -#define DISPATCH(TYPE) \ - case AttributeUnderlyingType::ut##TYPE: \ - attr.null_value = TYPE(null_value.get>()); /* NOLINT */ \ - attr.arrays = std::make_unique>(size); /* NOLINT */ \ - bytes_allocated += size * sizeof(TYPE); \ +#define DISPATCH(TYPE)\ + case AttributeUnderlyingType::ut##TYPE:\ + attr.null_value = TYPE(null_value.get>());\ + attr.arrays = std::make_unique>(size);\ + bytes_allocated += size * sizeof(TYPE);\ break; DISPATCH(UInt8) DISPATCH(UInt16) @@ -552,9 +552,9 @@ void CacheDictionary::setDefaultAttributeValue(Attribute & attribute, const Key { switch (attribute.type) { -#define DISPATCH(TYPE) \ - case AttributeUnderlyingType::ut##TYPE: \ - std::get>(attribute.arrays)[idx] = std::get(attribute.null_value); /* NOLINT */ \ +#define DISPATCH(TYPE)\ + case AttributeUnderlyingType::ut##TYPE:\ + std::get>(attribute.arrays)[idx] = std::get(attribute.null_value);\ break; DISPATCH(UInt8) DISPATCH(UInt16) From 4345f2987d83b15080629d782c1ca646b8ff6c10 Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Tue, 17 Nov 2020 00:37:38 +0300 Subject: [PATCH 160/425] better --- src/Dictionaries/CacheDictionary.cpp | 21 +++++++++++++-------- src/Dictionaries/CacheDictionary.h | 2 +- utils/zookeeper-dump-tree/main.cpp | 6 +++--- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index c7ce0754823..1c4ee3dc83b 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -376,7 +376,6 @@ size_t CacheDictionary::findCellIdxForSet(const Key & id) const void CacheDictionary::has(const PaddedPODArray & ids, PaddedPODArray & out) const { - std::cout << "has" << std::endl; /// There are three types of ids. /// - Valid ids. These ids are presented in local cache and their lifetime is not expired. /// - CacheExpired ids. Ids that are in local cache, but their values are rotted (lifetime is expired). @@ -509,18 +508,21 @@ void CacheDictionary::createAttributes() } } -CacheDictionary::Attribute CacheDictionary::createAttributeWithTypeAndName(const AttributeUnderlyingType type, const String & name, const Field & null_value) +CacheDictionary::Attribute CacheDictionary::createAttributeWithTypeAndName(const AttributeUnderlyingType type, const String & name, const Field & null_value) /* NOLINT(readability-convert-member-functions-to-static) */ { Attribute attr{type, name, {}, {}}; switch (type) { + + /* Macro argument should be enclosed in parentheses, but if do so we cannot initialize \ + * NearestFieldType which takes TYPE as a template parameter. */ #define DISPATCH(TYPE)\ - case AttributeUnderlyingType::ut##TYPE:\ - attr.null_value = TYPE(null_value.get>());\ - attr.arrays = std::make_unique>(size);\ + case AttributeUnderlyingType::ut##TYPE: {\ + attr.null_value = TYPE(null_value.get>()); /* NOLINT(bugprone-macro-parentheses) */ \ + attr.arrays = std::make_unique>(size); /* NOLINT(bugprone-macro-parentheses) */ \ bytes_allocated += size * sizeof(TYPE);\ - break; + break;} DISPATCH(UInt8) DISPATCH(UInt16) DISPATCH(UInt32) @@ -536,13 +538,14 @@ CacheDictionary::Attribute CacheDictionary::createAttributeWithTypeAndName(const DISPATCH(Float32) DISPATCH(Float64) #undef DISPATCH - case AttributeUnderlyingType::utString: + case AttributeUnderlyingType::utString: { attr.null_value = null_value.get(); attr.arrays = std::make_unique>(size); bytes_allocated += size * sizeof(StringRef); if (!string_arena) string_arena = std::make_unique(); break; + } } return attr; @@ -552,9 +555,11 @@ void CacheDictionary::setDefaultAttributeValue(Attribute & attribute, const Key { switch (attribute.type) { + /* Macro argument should be enclosed in parentheses, but if do so we cannot initialize \ + * NearestFieldType which takes TYPE as a template parameter. */ #define DISPATCH(TYPE)\ case AttributeUnderlyingType::ut##TYPE:\ - std::get>(attribute.arrays)[idx] = std::get(attribute.null_value);\ + std::get>(attribute.arrays)[idx] = std::get(attribute.null_value); /* NOLINT(bugprone-macro-parentheses) */ \ break; DISPATCH(UInt8) DISPATCH(UInt16) diff --git a/src/Dictionaries/CacheDictionary.h b/src/Dictionaries/CacheDictionary.h index 62c858194e0..8e805e39fe6 100644 --- a/src/Dictionaries/CacheDictionary.h +++ b/src/Dictionaries/CacheDictionary.h @@ -257,7 +257,7 @@ private: void createAttributes(); - Attribute createAttributeWithTypeAndName(const AttributeUnderlyingType type, const String & name, const Field & null_value); + Attribute createAttributeWithTypeAndName(const AttributeUnderlyingType type, const String & name, const Field & null_value); /* NOLINT(readability-convert-member-functions-to-static) */ template void getItemsNumberImpl( diff --git a/utils/zookeeper-dump-tree/main.cpp b/utils/zookeeper-dump-tree/main.cpp index b50d6e97235..5ab7bc2d536 100644 --- a/utils/zookeeper-dump-tree/main.cpp +++ b/utils/zookeeper-dump-tree/main.cpp @@ -40,7 +40,7 @@ int main(int argc, char ** argv) size_t num_reconnects = 0; constexpr size_t max_reconnects = 100; - auto ensureSession = [&] + auto ensure_session = [&] { if (zookeeper->expired()) { @@ -70,7 +70,7 @@ int main(int argc, char ** argv) else if (Coordination::isHardwareError(e.code)) { /// Reinitialize the session and move the node to the end of the queue for later retry. - if (!ensureSession()) + if (!ensure_session()) throw; list_futures.emplace_back(it->first, zookeeper->asyncGetChildren(it->first)); continue; @@ -85,7 +85,7 @@ int main(int argc, char ** argv) { std::string child_path = it->first == "/" ? it->first + name : it->first + '/' + name; - ensureSession(); + ensure_session(); list_futures.emplace_back(child_path, zookeeper->asyncGetChildren(child_path)); } } From 9c6b896928c36832f4b93e8428a7b72b65ef678b Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Tue, 17 Nov 2020 17:36:04 +0300 Subject: [PATCH 161/425] style + flaky test fix --- src/Dictionaries/CacheDictionary.cpp | 20 ++++++++++--------- src/Dictionaries/CacheDictionary.h | 14 ++++++------- src/Dictionaries/CacheDictionary.inc.h | 6 +++--- tests/integration/helpers/cluster.py | 4 ++++ .../test.py | 5 ++++- 5 files changed, 29 insertions(+), 20 deletions(-) diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index 1c4ee3dc83b..988f0d63748 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -284,7 +285,7 @@ Overloaded(Ts...) -> Overloaded; std::string CacheDictionary::AttributeValuesForKey::dump() { - std::ostringstream os; + WriteBufferFromOwnString os; for (auto & attr : values) std::visit(Overloaded { [&os](UInt8 arg) { os << "type: UInt8, value: " << std::to_string(arg) << "\n"; }, @@ -309,7 +310,7 @@ std::string CacheDictionary::AttributeValuesForKey::dump() std::string CacheDictionary::UpdateUnit::dumpFoundIds() { - std::ostringstream os; + WriteBufferFromOwnString os; for (auto it : found_ids) { os << "Key: " << std::to_string(it.first) << "\n"; @@ -344,7 +345,7 @@ CacheDictionary::FindResult CacheDictionary::findCellIdxForGet(const Key & id, c return {pos & size_overlap_mask, ResultState::NotFound}; } -/// Returns cell_idx such that cells[cell_idx].id = id or the oldest cell in bounds of max_coolision_length. +/// Returns cell_idx such that cells[cell_idx].id = id or the oldest cell in bounds of max_coolision_length. size_t CacheDictionary::findCellIdxForSet(const Key & id) const { auto pos = getCellIdx(id); @@ -514,15 +515,16 @@ CacheDictionary::Attribute CacheDictionary::createAttributeWithTypeAndName(const switch (type) { - /* Macro argument should be enclosed in parentheses, but if do so we cannot initialize \ * NearestFieldType which takes TYPE as a template parameter. */ #define DISPATCH(TYPE)\ - case AttributeUnderlyingType::ut##TYPE: {\ - attr.null_value = TYPE(null_value.get>()); /* NOLINT(bugprone-macro-parentheses) */ \ - attr.arrays = std::make_unique>(size); /* NOLINT(bugprone-macro-parentheses) */ \ - bytes_allocated += size * sizeof(TYPE);\ - break;} + case AttributeUnderlyingType::ut##TYPE:\ + {\ + attr.null_value = TYPE(null_value.get>()); /* NOLINT(bugprone-macro-parentheses) */ \ + attr.arrays = std::make_unique>(size); /* NOLINT(bugprone-macro-parentheses) */ \ + bytes_allocated += size * sizeof(TYPE);\ + break;\ + } DISPATCH(UInt8) DISPATCH(UInt16) DISPATCH(UInt32) diff --git a/src/Dictionaries/CacheDictionary.h b/src/Dictionaries/CacheDictionary.h index 8e805e39fe6..94dc3f5a072 100644 --- a/src/Dictionaries/CacheDictionary.h +++ b/src/Dictionaries/CacheDictionary.h @@ -257,7 +257,8 @@ private: void createAttributes(); - Attribute createAttributeWithTypeAndName(const AttributeUnderlyingType type, const String & name, const Field & null_value); /* NOLINT(readability-convert-member-functions-to-static) */ + /* NOLINTNEXTLINE(readability-convert-member-functions-to-static) */ + Attribute createAttributeWithTypeAndName(const AttributeUnderlyingType type, const String & name, const Field & null_value); template void getItemsNumberImpl( @@ -310,11 +311,10 @@ private: } else { - /// This maybe not obvious, but when we define is this cell is expired or expired permanently, we add extra_lifetime_seconds - /// to the expiration time. And it overflows pretty well. + /// This maybe not obvious, but when we define is this cell is expired or expired permanently, we add extra_lifetime_seconds + /// to the expiration time. And it overflows pretty well. cell.setExpiresAt(std::chrono::time_point::max() - 2 * std::chrono::seconds(extra_lifetime_seconds)); } - } inline bool isExpired(time_point_t now, time_point_t deadline) const @@ -332,12 +332,12 @@ private: NotFound, FoundAndValid, FoundButExpired, - /// Here is a gap between there two states in which a key could be read + /// Here is a gap between there two states in which a key could be read /// with an enabled setting in config enable_read_expired_keys. FoundButExpiredPermanently }; - using FindResult = std::pair; + using FindResult = std::pair; FindResult findCellIdxForGet(const Key & id, const time_point_t now) const; @@ -400,7 +400,7 @@ private: /* * How the update goes: we basically have a method like get(keys)->values. Values are cached, so sometimes we * can return them from the cache. For values not in cache, we query them from the source, and add to the - * cache. The cache is lossy, so we can't expect it to store all the keys, and we store them separately. + * cache. The cache is lossy, so we can't expect it to store all the keys, and we store them separately. * So, there is a map of found keys to all its attributes. */ struct UpdateUnit diff --git a/src/Dictionaries/CacheDictionary.inc.h b/src/Dictionaries/CacheDictionary.inc.h index 22ecf5ebe66..d724453f385 100644 --- a/src/Dictionaries/CacheDictionary.inc.h +++ b/src/Dictionaries/CacheDictionary.inc.h @@ -80,7 +80,7 @@ void CacheDictionary::getItemsNumberImpl( const auto [cell_idx, state] = findCellIdxForGet(id, now); - if (state == ResultState::FoundAndValid) + if (state == ResultState::FoundAndValid) { ++cache_hit; insert_to_answer_routine(row, cell_idx); @@ -299,7 +299,7 @@ void CacheDictionary::getItemsString( const auto it = local_cache.find(id); if (it != local_cache.end()) value = StringRef(it->second); - else + else value = get_default(row); out->insertData(value.data, value.size); @@ -354,7 +354,7 @@ void CacheDictionary::getItemsString( { const auto found_it = update_unit_ptr->found_ids.find(id); - /// Previously we didn't store defaults in local cache. + /// Previously we didn't store defaults in local cache. if (found_it != update_unit_ptr->found_ids.end() && found_it->second.found) value = std::get(found_it->second.values[attribute_index]); else diff --git a/tests/integration/helpers/cluster.py b/tests/integration/helpers/cluster.py index 7c44065320b..d21f44fb2b2 100644 --- a/tests/integration/helpers/cluster.py +++ b/tests/integration/helpers/cluster.py @@ -1028,6 +1028,10 @@ class ClickHouseInstance: ["bash", "-c", 'grep "{}" /var/log/clickhouse-server/clickhouse-server.log || true'.format(substring)]) return len(result) > 0 + def file_exists(self, path): + return self.exec_in_container( + ["bash", "-c", "echo $(if [ -e '{}' ]; then echo 'yes'; else echo 'no'; fi)".format(path)]) == 'yes\n' + def copy_file_to_container(self, local_path, dest_path): container_id = self.get_docker_handle().id return self.cluster.copy_file_to_container(container_id, local_path, dest_path) diff --git a/tests/integration/test_dictionaries_update_and_reload/test.py b/tests/integration/test_dictionaries_update_and_reload/test.py index ce71625c3ea..1b0165a5a04 100644 --- a/tests/integration/test_dictionaries_update_and_reload/test.py +++ b/tests/integration/test_dictionaries_update_and_reload/test.py @@ -204,7 +204,10 @@ def test_reload_after_fail_by_timer(started_cluster): # Creating the file source makes the dictionary able to load. instance.copy_file_to_container(os.path.join(SCRIPT_DIR, "configs/dictionaries/file.txt"), "/etc/clickhouse-server/config.d/no_file_2.txt") - time.sleep(6); + # Check that file appears in container and wait if needed. + while not instance.file_exists("/etc/clickhouse-server/config.d/no_file_2.txt"): + time.sleep(1) + assert("9\t10\n" == instance.exec_in_container("cat /etc/clickhouse-server/config.d/no_file_2.txt")) query("SELECT dictGetInt32('no_file_2', 'a', toUInt64(9))") == "10\n" assert get_status("no_file_2") == "LOADED" From 663730c7587314e6d383ac9dff0e3936ab0736b8 Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Tue, 17 Nov 2020 20:33:07 +0300 Subject: [PATCH 162/425] try to fix flaky test --- .../integration/test_dictionaries_update_and_reload/test.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/integration/test_dictionaries_update_and_reload/test.py b/tests/integration/test_dictionaries_update_and_reload/test.py index 1b0165a5a04..16d66587a02 100644 --- a/tests/integration/test_dictionaries_update_and_reload/test.py +++ b/tests/integration/test_dictionaries_update_and_reload/test.py @@ -186,8 +186,6 @@ def test_reload_after_fail_by_system_reload(started_cluster): def test_reload_after_fail_by_timer(started_cluster): - query = instance.query - # dictionaries_lazy_load == false, so this dictionary is not loaded. assert get_status("no_file_2") == "NOT_LOADED" @@ -208,13 +206,13 @@ def test_reload_after_fail_by_timer(started_cluster): while not instance.file_exists("/etc/clickhouse-server/config.d/no_file_2.txt"): time.sleep(1) assert("9\t10\n" == instance.exec_in_container("cat /etc/clickhouse-server/config.d/no_file_2.txt")) - query("SELECT dictGetInt32('no_file_2', 'a', toUInt64(9))") == "10\n" + instance.query("SELECT dictGetInt32('no_file_2', 'a', toUInt64(9))") == "10\n" assert get_status("no_file_2") == "LOADED" # Removing the file source should not spoil the loaded dictionary. instance.exec_in_container("rm /etc/clickhouse-server/config.d/no_file_2.txt") time.sleep(6); - query("SELECT dictGetInt32('no_file_2', 'a', toUInt64(9))") == "10\n" + instance.query("SELECT dictGetInt32('no_file_2', 'a', toUInt64(9))") == "10\n" assert get_status("no_file_2") == "LOADED" From 70a08608f86e7e4cb2419b01e1bf5d961a1875e6 Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Tue, 17 Nov 2020 20:58:31 +0300 Subject: [PATCH 163/425] add reload dictionary --- tests/integration/test_dictionaries_update_and_reload/test.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/integration/test_dictionaries_update_and_reload/test.py b/tests/integration/test_dictionaries_update_and_reload/test.py index 16d66587a02..5c8abcda38e 100644 --- a/tests/integration/test_dictionaries_update_and_reload/test.py +++ b/tests/integration/test_dictionaries_update_and_reload/test.py @@ -206,6 +206,7 @@ def test_reload_after_fail_by_timer(started_cluster): while not instance.file_exists("/etc/clickhouse-server/config.d/no_file_2.txt"): time.sleep(1) assert("9\t10\n" == instance.exec_in_container("cat /etc/clickhouse-server/config.d/no_file_2.txt")) + instance.query("SYSTEM RELOAD DICTIONARY no_file_2") instance.query("SELECT dictGetInt32('no_file_2', 'a', toUInt64(9))") == "10\n" assert get_status("no_file_2") == "LOADED" From ce42dcf39c81d47b77d46e6ad6d8381211ff66b7 Mon Sep 17 00:00:00 2001 From: myrrc Date: Tue, 17 Nov 2020 21:10:42 +0300 Subject: [PATCH 164/425] replaced explicit stack values with references --- src/AggregateFunctions/AggregateFunctionAvgWeighted.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h index 43312d391fe..6538367ad93 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.h +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.h @@ -30,12 +30,13 @@ public: void add(AggregateDataPtr place, const IColumn ** columns, size_t row_num, Arena *) const override { - const Value value = static_cast &>(*columns[0]).getData()[row_num]; - const Weight weight = static_cast &>(*columns[1]).getData()[row_num]; + const auto& weights = static_cast &>(*columns[1]); - this->data(place).numerator += static_cast(value) * static_cast(weight); + this->data(place).numerator += static_cast( + static_cast &>(*columns[0]).getData()[row_num]) * + static_cast(weights.getData()[row_num]); - this->data(place).denominator += static_cast>(weight); + this->data(place).denominator += static_cast>(weights.getData()[row_num]); } String getName() const override { return "avgWeighted"; } From 2bd6584636e5c12b452dd212cf5f6e209034a8d3 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Tue, 17 Nov 2020 21:33:54 +0300 Subject: [PATCH 165/425] JSONArray fixes --- src/Interpreters/OpenTelemetrySpanLog.cpp | 2 +- src/Parsers/ParserDataType.cpp | 21 +++-------- .../Impl/JSONEachRowRowOutputFormat.cpp | 36 +++++++++++++++---- .../01486_jsonarray_output.reference | 11 ++++++ .../0_stateless/01486_jsonarray_output.sql | 3 ++ 5 files changed, 49 insertions(+), 24 deletions(-) create mode 100644 tests/queries/0_stateless/01486_jsonarray_output.reference create mode 100644 tests/queries/0_stateless/01486_jsonarray_output.sql diff --git a/src/Interpreters/OpenTelemetrySpanLog.cpp b/src/Interpreters/OpenTelemetrySpanLog.cpp index 186b067c251..b28047e05c8 100644 --- a/src/Interpreters/OpenTelemetrySpanLog.cpp +++ b/src/Interpreters/OpenTelemetrySpanLog.cpp @@ -45,7 +45,7 @@ void OpenTelemetrySpanLogElement::appendToBlock(MutableColumns & columns) const // here, because it's hard to remember to convert them in all other places. Array string_values; string_values.reserve(attribute_values.size()); - for (auto & value : attribute_values) + for (const auto & value : attribute_values) { string_values.push_back(toString(value)); } diff --git a/src/Parsers/ParserDataType.cpp b/src/Parsers/ParserDataType.cpp index 47024a6fc2a..ee746329bff 100644 --- a/src/Parsers/ParserDataType.cpp +++ b/src/Parsers/ParserDataType.cpp @@ -106,22 +106,11 @@ bool ParserDataType::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) ParserList args_parser(std::make_unique(), std::make_unique(TokenType::Comma)); ASTPtr expr_list_args; - ParserList args_parser_nested(std::make_unique(), std::make_unique(TokenType::Comma), false); - if (args_parser_nested.parse(pos, expr_list_args, expected)) - { - if (pos->type != TokenType::ClosingRoundBracket) - return false; - ++pos; - } - else - { - ParserList args_parser_expr(std::make_unique(), std::make_unique(TokenType::Comma)); - if (!args_parser_expr.parse(pos, expr_list_args, expected)) - return false; - if (pos->type != TokenType::ClosingRoundBracket) - return false; - ++pos; - } + if (!args_parser.parse(pos, expr_list_args, expected)) + return false; + if (pos->type != TokenType::ClosingRoundBracket) + return false; + ++pos; function_node->arguments = expr_list_args; function_node->children.push_back(function_node->arguments); diff --git a/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp b/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp index 1c6ed0e843f..d8bc5ff55d9 100644 --- a/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp +++ b/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp @@ -61,21 +61,44 @@ void JSONEachRowRowOutputFormat::writeRowStartDelimiter() void JSONEachRowRowOutputFormat::writeRowEndDelimiter() { - writeCString("}", out); + // Why this weird if? + // + // The reason is the formatRow function that is broken with respect to + // row-between delimiters. It should not write them, but it does, and then + // hacks around it by having a special formatRowNoNewline function + // which, as you guessed, removes the newline from the end of row. But the + // row-between delimiter goes into a second row, so it turns out to be in + // the second line, and the removal doesn't work. But the row-between + // delimiter in this format is also written incorrectly (not written at all, + // in fact), so the test (01420_format_row) works! All good. + // + // A proper implementation of formatRow would use IRowOutputFormat directly, + // and not write row-between delimiters, instead of using IOutputFormat + // processor and its crutch row callback. We would also need to expose + // IRowOutputFormat which we don't do now. + // + // I just don't have time or energy to redo all of this properly, but I need + // to support JSON array output here. I don't want to copy the entire + // JSONEachRow output code, so I preserve the bug for compatibility. + if (settings.json.array_of_rows) + { + writeCString("}", out); + } + else + { + writeCString("}\n", out); + } field_number = 0; } void JSONEachRowRowOutputFormat::writeRowBetweenDelimiter() { + // We preserve an existing bug here for compatibility. See the comment above. if (settings.json.array_of_rows) { writeCString(",\n", out); } - else - { - writeCString("\n", out); - } } @@ -90,10 +113,9 @@ void JSONEachRowRowOutputFormat::writePrefix() void JSONEachRowRowOutputFormat::writeSuffix() { - writeCString("\n", out); if (settings.json.array_of_rows) { - writeCString("]\n", out); + writeCString("\n]\n", out); } } diff --git a/tests/queries/0_stateless/01486_jsonarray_output.reference b/tests/queries/0_stateless/01486_jsonarray_output.reference new file mode 100644 index 00000000000..879c37b59f0 --- /dev/null +++ b/tests/queries/0_stateless/01486_jsonarray_output.reference @@ -0,0 +1,11 @@ +[ +{"a":"0","b":"0"}, +{"a":"1","b":"2"}, +{"a":"2","b":"4"} +] +[ +{"number":"0"} +] +[ + +] diff --git a/tests/queries/0_stateless/01486_jsonarray_output.sql b/tests/queries/0_stateless/01486_jsonarray_output.sql new file mode 100644 index 00000000000..5310cc7e4c0 --- /dev/null +++ b/tests/queries/0_stateless/01486_jsonarray_output.sql @@ -0,0 +1,3 @@ +select number a, number * 2 b from numbers(3) format JSONArray; +select * from numbers(1) format JSONArray; +select * from numbers(1) where null format JSONArray; From a8f29f7da647412cddd9771cc9299fb5720eafa6 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Tue, 17 Nov 2020 22:45:17 +0300 Subject: [PATCH 166/425] make it a setting and not a format --- src/Core/Settings.h | 1 + src/Formats/FormatFactory.cpp | 1 + .../Impl/JSONEachRowRowOutputFormat.cpp | 41 ++++++++----------- ...ence => 01486_json_array_output.reference} | 0 .../0_stateless/01486_json_array_output.sql | 4 ++ .../0_stateless/01486_jsonarray_output.sql | 3 -- 6 files changed, 23 insertions(+), 27 deletions(-) rename tests/queries/0_stateless/{01486_jsonarray_output.reference => 01486_json_array_output.reference} (100%) create mode 100644 tests/queries/0_stateless/01486_json_array_output.sql delete mode 100644 tests/queries/0_stateless/01486_jsonarray_output.sql diff --git a/src/Core/Settings.h b/src/Core/Settings.h index 71b248edfdd..e7766d2b564 100644 --- a/src/Core/Settings.h +++ b/src/Core/Settings.h @@ -441,6 +441,7 @@ class IColumn; M(Bool, output_format_json_escape_forward_slashes, true, "Controls escaping forward slashes for string outputs in JSON output format. This is intended for compatibility with JavaScript. Don't confuse with backslashes that are always escaped.", 0) \ M(Bool, output_format_json_write_metadata, true, "Write metadata in JSON output format.", 0) \ M(Bool, output_format_json_named_tuple_as_object, false, "Serialize named tuple columns as JSON objects.", 0) \ + M(Bool, output_format_json_array_of_rows, false, "Output a JSON array of all rows in JSONEachRow(Compact) format.", 0) \ \ M(UInt64, output_format_pretty_max_rows, 10000, "Rows limit for Pretty formats.", 0) \ M(UInt64, output_format_pretty_max_column_pad_width, 250, "Maximum width to pad all values in a column in Pretty formats.", 0) \ diff --git a/src/Formats/FormatFactory.cpp b/src/Formats/FormatFactory.cpp index 65d1e3ce9fb..b662398caa0 100644 --- a/src/Formats/FormatFactory.cpp +++ b/src/Formats/FormatFactory.cpp @@ -78,6 +78,7 @@ FormatSettings getFormatSettings(const Context & context, format_settings.import_nested_json = settings.input_format_import_nested_json; format_settings.input_allow_errors_num = settings.input_format_allow_errors_num; format_settings.input_allow_errors_ratio = settings.input_format_allow_errors_ratio; + format_settings.json.array_of_rows = settings.output_format_json_array_of_rows; format_settings.json.escape_forward_slashes = settings.output_format_json_escape_forward_slashes; format_settings.json.named_tuple_as_object = settings.output_format_json_named_tuple_as_object; format_settings.json.quote_64bit_integers = settings.output_format_json_quote_64bit_integers; diff --git a/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp b/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp index d8bc5ff55d9..15d8a843f41 100644 --- a/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp +++ b/src/Processors/Formats/Impl/JSONEachRowRowOutputFormat.cpp @@ -61,25 +61,30 @@ void JSONEachRowRowOutputFormat::writeRowStartDelimiter() void JSONEachRowRowOutputFormat::writeRowEndDelimiter() { - // Why this weird if? + // Why do we need this weird `if`? // // The reason is the formatRow function that is broken with respect to // row-between delimiters. It should not write them, but it does, and then - // hacks around it by having a special formatRowNoNewline function - // which, as you guessed, removes the newline from the end of row. But the - // row-between delimiter goes into a second row, so it turns out to be in - // the second line, and the removal doesn't work. But the row-between - // delimiter in this format is also written incorrectly (not written at all, - // in fact), so the test (01420_format_row) works! All good. + // hacks around it by having a special formatRowNoNewline version, which, as + // you guessed, removes the newline from the end of row. But the row-between + // delimiter goes into a second row, so it turns out to be in the beginning + // of the line, and the removal doesn't work. There is also a second bug -- + // the row-between delimiter in this format is written incorrectly. In fact, + // it is not written at all, and the newline is written in a row-end + // delimiter ("}\n" instead of the correct "}"). With these two bugs + // combined, the test 01420_format_row works perfectly. // // A proper implementation of formatRow would use IRowOutputFormat directly, // and not write row-between delimiters, instead of using IOutputFormat - // processor and its crutch row callback. We would also need to expose - // IRowOutputFormat which we don't do now. + // processor and its crutch row callback. This would require exposing + // IRowOutputFormat, which we don't do now, but which can be generally useful + // for other cases such as parallel formatting, that also require a control + // flow different from the usual IOutputFormat. // - // I just don't have time or energy to redo all of this properly, but I need - // to support JSON array output here. I don't want to copy the entire - // JSONEachRow output code, so I preserve the bug for compatibility. + // I just don't have time or energy to redo all of this, but I need to + // support JSON array output here, which requires proper ",\n" row-between + // delimiters. For compatibility, I preserve the bug in case of non-array + // output. if (settings.json.array_of_rows) { writeCString("}", out); @@ -145,18 +150,6 @@ void registerOutputFormatProcessorJSONEachRow(FormatFactory & factory) return std::make_shared(buf, sample, params, settings); }); - - factory.registerOutputFormatProcessor("JSONArray", []( - WriteBuffer & buf, - const Block & sample, - const RowOutputFormatParams & params, - const FormatSettings & _format_settings) - { - FormatSettings settings = _format_settings; - settings.json.array_of_rows = true; - return std::make_shared(buf, sample, params, - settings); - }); } } diff --git a/tests/queries/0_stateless/01486_jsonarray_output.reference b/tests/queries/0_stateless/01486_json_array_output.reference similarity index 100% rename from tests/queries/0_stateless/01486_jsonarray_output.reference rename to tests/queries/0_stateless/01486_json_array_output.reference diff --git a/tests/queries/0_stateless/01486_json_array_output.sql b/tests/queries/0_stateless/01486_json_array_output.sql new file mode 100644 index 00000000000..f8c707d4bee --- /dev/null +++ b/tests/queries/0_stateless/01486_json_array_output.sql @@ -0,0 +1,4 @@ +set output_format_json_array_of_rows = 1; +select number a, number * 2 b from numbers(3) format JSONEachRow; +select * from numbers(1) format JSONEachRow; +select * from numbers(1) where null format JSONEachRow; diff --git a/tests/queries/0_stateless/01486_jsonarray_output.sql b/tests/queries/0_stateless/01486_jsonarray_output.sql deleted file mode 100644 index 5310cc7e4c0..00000000000 --- a/tests/queries/0_stateless/01486_jsonarray_output.sql +++ /dev/null @@ -1,3 +0,0 @@ -select number a, number * 2 b from numbers(3) format JSONArray; -select * from numbers(1) format JSONArray; -select * from numbers(1) where null format JSONArray; From dbc5284b7305a971079a465103d223b7ea60a28f Mon Sep 17 00:00:00 2001 From: myrrc Date: Wed, 18 Nov 2020 12:51:02 +0300 Subject: [PATCH 167/425] replaced Memory by MergeTree in the test to get perftests --- tests/clickhouse-test-hs.hs | 1 + tests/performance/avg_weighted.xml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 tests/clickhouse-test-hs.hs diff --git a/tests/clickhouse-test-hs.hs b/tests/clickhouse-test-hs.hs new file mode 100644 index 00000000000..a9128c28348 --- /dev/null +++ b/tests/clickhouse-test-hs.hs @@ -0,0 +1 @@ +binary diff --git a/tests/performance/avg_weighted.xml b/tests/performance/avg_weighted.xml index c8c5693a0ab..b62b8949bf1 100644 --- a/tests/performance/avg_weighted.xml +++ b/tests/performance/avg_weighted.xml @@ -13,7 +13,7 @@ num UInt64, num_u Decimal256(75) DEFAULT toDecimal256(num / 400000, 75), num_f Float64 DEFAULT num / 100 - ) ENGINE Memory + ) ENGINE = MergeTree() ORDER BY num From 1aff334ee581bd49d78592a05e7b1ec49a30d21c Mon Sep 17 00:00:00 2001 From: Mike Date: Wed, 18 Nov 2020 12:54:54 +0300 Subject: [PATCH 168/425] Delete clickhouse-test-hs.hs --- tests/clickhouse-test-hs.hs | 1 - 1 file changed, 1 deletion(-) delete mode 100644 tests/clickhouse-test-hs.hs diff --git a/tests/clickhouse-test-hs.hs b/tests/clickhouse-test-hs.hs deleted file mode 100644 index a9128c28348..00000000000 --- a/tests/clickhouse-test-hs.hs +++ /dev/null @@ -1 +0,0 @@ -binary From 13e711b27ed954c37744d54324664f4109c0cf7e Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Wed, 18 Nov 2020 16:38:14 +0300 Subject: [PATCH 169/425] rename back config --- src/Dictionaries/CacheDictionary.cpp | 8 ++++---- src/Dictionaries/CacheDictionary.h | 12 ++++++------ .../configs/dictionaries/cache_ints_dictionary.xml | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index 988f0d63748..1244257043a 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -65,7 +65,7 @@ CacheDictionary::CacheDictionary( const DictionaryStructure & dict_struct_, DictionarySourcePtr source_ptr_, DictionaryLifetime dict_lifetime_, - size_t extra_lifetime_seconds_, + size_t strict_max_lifetime_seconds_, size_t size_, bool allow_read_expired_keys_, size_t max_update_queue_size_, @@ -76,7 +76,7 @@ CacheDictionary::CacheDictionary( , dict_struct(dict_struct_) , source_ptr{std::move(source_ptr_)} , dict_lifetime(dict_lifetime_) - , extra_lifetime_seconds(extra_lifetime_seconds_) + , strict_max_lifetime_seconds(strict_max_lifetime_seconds_) , allow_read_expired_keys(allow_read_expired_keys_) , max_update_queue_size(max_update_queue_size_) , update_queue_push_timeout_milliseconds(update_queue_push_timeout_milliseconds_) @@ -750,8 +750,8 @@ void registerDictionaryCache(DictionaryFactory & factory) const auto dict_id = StorageID::fromDictionaryConfig(config, config_prefix); const DictionaryLifetime dict_lifetime{config, config_prefix + ".lifetime"}; - const size_t extra_lifetime_seconds = - config.getUInt64(layout_prefix + ".cache.extra_lifetime_seconds", static_cast(dict_lifetime.max_sec)); + const size_t strict_max_lifetime_seconds = + config.getUInt64(layout_prefix + ".cache.strict_max_lifetime_seconds", static_cast(dict_lifetime.max_sec)); const size_t max_update_queue_size = config.getUInt64(layout_prefix + ".cache.max_update_queue_size", 100000); diff --git a/src/Dictionaries/CacheDictionary.h b/src/Dictionaries/CacheDictionary.h index 94dc3f5a072..5db62cd5e76 100644 --- a/src/Dictionaries/CacheDictionary.h +++ b/src/Dictionaries/CacheDictionary.h @@ -54,7 +54,7 @@ public: const DictionaryStructure & dict_struct_, DictionarySourcePtr source_ptr_, DictionaryLifetime dict_lifetime_, - size_t extra_lifetime_seconds, + size_t strict_max_lifetime_seconds, size_t size_, bool allow_read_expired_keys_, size_t max_update_queue_size_, @@ -88,7 +88,7 @@ public: dict_struct, getSourceAndUpdateIfNeeded()->clone(), dict_lifetime, - extra_lifetime_seconds, + strict_max_lifetime_seconds, size, allow_read_expired_keys, max_update_queue_size, @@ -311,9 +311,9 @@ private: } else { - /// This maybe not obvious, but when we define is this cell is expired or expired permanently, we add extra_lifetime_seconds + /// This maybe not obvious, but when we define is this cell is expired or expired permanently, we add strict_max_lifetime_seconds /// to the expiration time. And it overflows pretty well. - cell.setExpiresAt(std::chrono::time_point::max() - 2 * std::chrono::seconds(extra_lifetime_seconds)); + cell.setExpiresAt(std::chrono::time_point::max() - 2 * std::chrono::seconds(strict_max_lifetime_seconds)); } } @@ -324,7 +324,7 @@ private: inline bool isExpiredPermanently(time_point_t now, time_point_t deadline) const { - return now > deadline + std::chrono::seconds(extra_lifetime_seconds); + return now > deadline + std::chrono::seconds(strict_max_lifetime_seconds); } enum class ResultState @@ -353,7 +353,7 @@ private: mutable SharedDictionarySourcePtr source_ptr; const DictionaryLifetime dict_lifetime; - const size_t extra_lifetime_seconds; + const size_t strict_max_lifetime_seconds; const bool allow_read_expired_keys; const size_t max_update_queue_size; const size_t update_queue_push_timeout_milliseconds; diff --git a/tests/integration/test_dictionary_allow_read_expired_keys/configs/dictionaries/cache_ints_dictionary.xml b/tests/integration/test_dictionary_allow_read_expired_keys/configs/dictionaries/cache_ints_dictionary.xml index af1d21e1142..e01bcddd19a 100644 --- a/tests/integration/test_dictionary_allow_read_expired_keys/configs/dictionaries/cache_ints_dictionary.xml +++ b/tests/integration/test_dictionary_allow_read_expired_keys/configs/dictionaries/cache_ints_dictionary.xml @@ -19,7 +19,7 @@ 10000 10000 - 1000 + 1000 1 10 From 9a0fd70edc52c25fae20a0fb7089a9a1f0872499 Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Wed, 18 Nov 2020 16:58:28 +0300 Subject: [PATCH 170/425] better code --- src/Dictionaries/CacheDictionary.cpp | 12 +++++------- src/Dictionaries/CacheDictionary.h | 3 --- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index 1244257043a..05d7888fc40 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -509,7 +509,9 @@ void CacheDictionary::createAttributes() } } -CacheDictionary::Attribute CacheDictionary::createAttributeWithTypeAndName(const AttributeUnderlyingType type, const String & name, const Field & null_value) /* NOLINT(readability-convert-member-functions-to-static) */ +/* For unknown reason clang-tidy wants this function to be static, but it uses bytes_allocated, which is a class member. + * NOLINT(readability-convert-member-functions-to-static) */ +CacheDictionary::Attribute CacheDictionary::createAttributeWithTypeAndName(const AttributeUnderlyingType type, const String & name, const Field & null_value) { Attribute attr{type, name, {}, {}}; @@ -668,7 +670,6 @@ void CacheDictionary::setAttributeValue(Attribute & attribute, const Key idx, co } } - CacheDictionary::Attribute & CacheDictionary::getAttribute(const std::string & attribute_name) const { const size_t attr_index = getAttributeIndex(attribute_name); @@ -698,10 +699,8 @@ PaddedPODArray CacheDictionary::getCachedIds() const for (size_t idx = 0; idx < cells.size(); ++idx) { auto & cell = cells[idx]; - if (!isEmptyCell(idx)) - { + if (!isEmptyCell(idx) && !cells[idx].isDefault()) array.push_back(cell.id); - } } return array; } @@ -845,8 +844,6 @@ void CacheDictionary::waitForCurrentUpdateFinish(UpdateUnitPtr & update_unit_ptr if (update_unit_ptr->current_exception) { - // There might have been a single update unit for multiple callers in - // independent threads, and current_exception will be the same for them. // Don't just rethrow it, because sharing the same exception object // between multiple threads can lead to weird effects if they decide to // modify it, for example, by adding some error context. @@ -934,6 +931,7 @@ void CacheDictionary::update(UpdateUnitPtr & update_unit_ptr) BlockInputStreamPtr stream = current_source_ptr->loadIds(update_unit_ptr->requested_ids); stream->readPrefix(); + while (true) { Block block = stream->read(); diff --git a/src/Dictionaries/CacheDictionary.h b/src/Dictionaries/CacheDictionary.h index 5db62cd5e76..b9bd0b7623b 100644 --- a/src/Dictionaries/CacheDictionary.h +++ b/src/Dictionaries/CacheDictionary.h @@ -367,9 +367,6 @@ private: /// readers. Surprisingly this lock is also used for last_exception pointer. mutable std::shared_mutex rw_lock; - /// This lock is used only for read/write into cache of default keys. - mutable std::shared_mutex default_cache_rw_lock; - /// Actual size will be increased to match power of 2 const size_t size; From 36a00ffb1e939b0f68ac70291f11c00c63897a47 Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Wed, 18 Nov 2020 17:28:38 +0300 Subject: [PATCH 171/425] fix build --- src/Dictionaries/CacheDictionary.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Dictionaries/CacheDictionary.cpp b/src/Dictionaries/CacheDictionary.cpp index 05d7888fc40..4beb2caa1f1 100644 --- a/src/Dictionaries/CacheDictionary.cpp +++ b/src/Dictionaries/CacheDictionary.cpp @@ -781,7 +781,7 @@ void registerDictionaryCache(DictionaryFactory & factory) dict_struct, std::move(source_ptr), dict_lifetime, - extra_lifetime_seconds, + strict_max_lifetime_seconds, size, allow_read_expired_keys, max_update_queue_size, From 087bc462e8c53fe1213275fff35087fa63674770 Mon Sep 17 00:00:00 2001 From: alesapin Date: Wed, 18 Nov 2020 17:47:33 +0300 Subject: [PATCH 172/425] Additional flag for finalization --- src/Common/ZooKeeper/ZooKeeperImpl.cpp | 30 +++++++------------------- src/Common/ZooKeeper/ZooKeeperImpl.h | 3 +++ 2 files changed, 11 insertions(+), 22 deletions(-) diff --git a/src/Common/ZooKeeper/ZooKeeperImpl.cpp b/src/Common/ZooKeeper/ZooKeeperImpl.cpp index addb6c01504..048a53fc9d1 100644 --- a/src/Common/ZooKeeper/ZooKeeperImpl.cpp +++ b/src/Common/ZooKeeper/ZooKeeperImpl.cpp @@ -1070,7 +1070,6 @@ void ZooKeeper::sendThread() setThreadName("ZooKeeperSend"); auto prev_heartbeat_time = clock::now(); - bool tried_to_send_close = false; try { @@ -1100,15 +1099,6 @@ void ZooKeeper::sendThread() std::lock_guard lock(operations_mutex); operations[info.request->xid] = info; } - else - { - /// We set this variable only once. If we will - /// successfully send close, than this thread will just - /// finish. If we will got an exception while sending - /// close, than thread will also finish and finalization - /// will be completed by some other thread. - tried_to_send_close = true; - } if (info.watch) { @@ -1145,13 +1135,7 @@ void ZooKeeper::sendThread() catch (...) { tryLogCurrentException(__PRETTY_FUNCTION__); - /// If we have tried to send close and got an exception than - /// finalization is already started by receiveThread and we cannot do - /// anything better than just exit. - /// - /// Otherwise we should correctly finalize - if (!tried_to_send_close) - finalize(true, false); + finalize(true, false); } } @@ -1359,10 +1343,12 @@ void ZooKeeper::receiveEvent() void ZooKeeper::finalize(bool error_send, bool error_receive) { - if (expired) + bool check = false; + /// If some thread (send/receive) already finalizing session don't try to do it + if (!finalization_started.compare_exchange_strong(check, true)) return; - auto expire_session = [&] + auto expire_session_if_not_expired = [&] { std::lock_guard lock(push_request_mutex); if (!expired) @@ -1384,8 +1370,8 @@ void ZooKeeper::finalize(bool error_send, bool error_receive) catch (...) { /// This happens for example, when "Cannot push request to queue within operation timeout". - /// Just mark session expired in case of error on close request. - expire_session(); + /// Just mark session expired in case of error on close request, otherwise sendThread may not stop. + expire_session_if_not_expired(); tryLogCurrentException(__PRETTY_FUNCTION__); } @@ -1394,7 +1380,7 @@ void ZooKeeper::finalize(bool error_send, bool error_receive) } /// Set expired flag after we sent close event - expire_session(); + expire_session_if_not_expired(); try { diff --git a/src/Common/ZooKeeper/ZooKeeperImpl.h b/src/Common/ZooKeeper/ZooKeeperImpl.h index 085b0e9856a..b0bb1d6caf4 100644 --- a/src/Common/ZooKeeper/ZooKeeperImpl.h +++ b/src/Common/ZooKeeper/ZooKeeperImpl.h @@ -187,6 +187,9 @@ private: std::atomic next_xid {1}; std::atomic expired {false}; + /// Mark session finalization start. Used to avoid simultaneous + /// finalization from different threads. One-shot flag. + std::atomic finalization_started {false}; std::mutex push_request_mutex; using clock = std::chrono::steady_clock; From 1570320e2055e700dd3206093679c9c85faf0fa6 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Wed, 18 Nov 2020 20:43:18 +0300 Subject: [PATCH 173/425] fixes for context hierarchy --- programs/client/Client.cpp | 4 +- src/Common/OpenTelemetryTraceContext.h | 20 ++++++++++ src/Common/ThreadStatus.h | 8 +++- src/DataStreams/RemoteBlockOutputStream.cpp | 4 ++ src/DataStreams/RemoteQueryExecutor.cpp | 4 ++ src/Interpreters/ClientInfo.cpp | 38 +++++++++---------- src/Interpreters/ClientInfo.h | 25 ++---------- src/Interpreters/Context.cpp | 24 ++++++------ src/Interpreters/Context.h | 7 ++++ src/Interpreters/OpenTelemetrySpanLog.cpp | 20 +++++++--- src/Interpreters/ThreadStatusExt.cpp | 36 ++++++++++-------- src/Interpreters/executeQuery.cpp | 32 ++++++++-------- src/Server/HTTPHandler.cpp | 4 +- src/Storages/StorageURL.cpp | 19 ++++++---- .../01455_opentelemetry_distributed.reference | 2 +- 15 files changed, 141 insertions(+), 106 deletions(-) create mode 100644 src/Common/OpenTelemetryTraceContext.h diff --git a/programs/client/Client.cpp b/programs/client/Client.cpp index 5348a9e36c5..e4858eeda8b 100644 --- a/programs/client/Client.cpp +++ b/programs/client/Client.cpp @@ -2515,7 +2515,7 @@ public: { std::string traceparent = options["opentelemetry-traceparent"].as(); std::string error; - if (!context.getClientInfo().parseTraceparentHeader( + if (!context.getClientInfo().client_trace_context.parseTraceparentHeader( traceparent, error)) { throw Exception(ErrorCodes::BAD_ARGUMENTS, @@ -2526,7 +2526,7 @@ public: if (options.count("opentelemetry-tracestate")) { - context.getClientInfo().opentelemetry_tracestate = + context.getClientInfo().client_trace_context.tracestate = options["opentelemetry-tracestate"].as(); } diff --git a/src/Common/OpenTelemetryTraceContext.h b/src/Common/OpenTelemetryTraceContext.h new file mode 100644 index 00000000000..1024230703d --- /dev/null +++ b/src/Common/OpenTelemetryTraceContext.h @@ -0,0 +1,20 @@ +#pragma once + +namespace DB { + +// The runtime info we need to create new OpenTelemetry spans. +struct OpenTelemetryTraceContext +{ + __uint128_t trace_id = 0; + UInt64 span_id = 0; + // The incoming tracestate header and the trace flags, we just pass them + // downstream. See https://www.w3.org/TR/trace-context/ + String tracestate; + __uint8_t trace_flags = 0; + + // Parse/compose OpenTelemetry traceparent header. + bool parseTraceparentHeader(const std::string & traceparent, std::string & error); + std::string composeTraceparentHeader() const; +}; + +} diff --git a/src/Common/ThreadStatus.h b/src/Common/ThreadStatus.h index 0162a6946c6..4f6422ab151 100644 --- a/src/Common/ThreadStatus.h +++ b/src/Common/ThreadStatus.h @@ -3,6 +3,7 @@ #include #include #include +#include #include @@ -108,8 +109,11 @@ public: using Deleter = std::function; Deleter deleter; - __uint128_t opentelemetry_trace_id; - UInt64 opentelemetry_current_span_id; + // This is the current most-derived OpenTelemetry span for this thread. It + // can be changed throughout the query execution, whenever we enter a new + // span or exit it. See OpenTelemetrySpanHolder that is normally responsible + // for these changes. + OpenTelemetryTraceContext thread_trace_context; protected: ThreadGroupStatusPtr thread_group; diff --git a/src/DataStreams/RemoteBlockOutputStream.cpp b/src/DataStreams/RemoteBlockOutputStream.cpp index 327e0204892..1611ada732c 100644 --- a/src/DataStreams/RemoteBlockOutputStream.cpp +++ b/src/DataStreams/RemoteBlockOutputStream.cpp @@ -27,6 +27,10 @@ RemoteBlockOutputStream::RemoteBlockOutputStream(Connection & connection_, { ClientInfo modified_client_info = client_info_; modified_client_info.query_kind = ClientInfo::QueryKind::SECONDARY_QUERY; + if (CurrentThread::isInitialized()) + { + modified_client_info.opentelemetry = CurrentThread::get().opentelemetry; + } /** Send query and receive "header", that describes table structure. * Header is needed to know, what structure is required for blocks to be passed to 'write' method. diff --git a/src/DataStreams/RemoteQueryExecutor.cpp b/src/DataStreams/RemoteQueryExecutor.cpp index 38486aa6368..c6ad88a99eb 100644 --- a/src/DataStreams/RemoteQueryExecutor.cpp +++ b/src/DataStreams/RemoteQueryExecutor.cpp @@ -156,6 +156,10 @@ void RemoteQueryExecutor::sendQuery() auto timeouts = ConnectionTimeouts::getTCPTimeoutsWithFailover(settings); ClientInfo modified_client_info = context.getClientInfo(); modified_client_info.query_kind = ClientInfo::QueryKind::SECONDARY_QUERY; + if (CurrentThread::isInitialized()) + { + modified_client_info.client_trace_context = CurrentThread::get().thread_trace_context; + } multiplexed_connections->sendQuery(timeouts, query, query_id, stage, modified_client_info, true); diff --git a/src/Interpreters/ClientInfo.cpp b/src/Interpreters/ClientInfo.cpp index 37eb403ddab..f021d989158 100644 --- a/src/Interpreters/ClientInfo.cpp +++ b/src/Interpreters/ClientInfo.cpp @@ -62,16 +62,16 @@ void ClientInfo::write(WriteBuffer & out, const UInt64 server_protocol_revision) if (server_protocol_revision >= DBMS_MIN_REVISION_WITH_OPENTELEMETRY) { - if (opentelemetry_trace_id) + if (client_trace_context.trace_id) { // Have OpenTelemetry header. writeBinary(uint8_t(1), out); // No point writing these numbers with variable length, because they // are random and will probably require the full length anyway. - writeBinary(opentelemetry_trace_id, out); - writeBinary(opentelemetry_span_id, out); - writeBinary(opentelemetry_tracestate, out); - writeBinary(opentelemetry_trace_flags, out); + writeBinary(client_trace_context.trace_id, out); + writeBinary(client_trace_context.span_id, out); + writeBinary(client_trace_context.tracestate, out); + writeBinary(client_trace_context.trace_flags, out); } else { @@ -139,10 +139,10 @@ void ClientInfo::read(ReadBuffer & in, const UInt64 client_protocol_revision) readBinary(have_trace_id, in); if (have_trace_id) { - readBinary(opentelemetry_trace_id, in); - readBinary(opentelemetry_span_id, in); - readBinary(opentelemetry_tracestate, in); - readBinary(opentelemetry_trace_flags, in); + readBinary(client_trace_context.trace_id, in); + readBinary(client_trace_context.span_id, in); + readBinary(client_trace_context.tracestate, in); + readBinary(client_trace_context.trace_flags, in); } } } @@ -155,14 +155,14 @@ void ClientInfo::setInitialQuery() client_name = (DBMS_NAME " ") + client_name; } -bool ClientInfo::parseTraceparentHeader(const std::string & traceparent, +bool OpenTelemetryTraceContext::parseTraceparentHeader(const std::string & traceparent, std::string & error) { + trace_id = 0; + uint8_t version = -1; uint64_t trace_id_high = 0; uint64_t trace_id_low = 0; - uint64_t trace_parent = 0; - uint8_t trace_flags = 0; // Version 00, which is the only one we can parse, is fixed width. Use this // fact for an additional sanity check. @@ -183,7 +183,7 @@ bool ClientInfo::parseTraceparentHeader(const std::string & traceparent, // NOLINTNEXTLINE(cert-err34-c) int result = sscanf(&traceparent[0], "%2" SCNx8 "-%16" SCNx64 "%16" SCNx64 "-%16" SCNx64 "-%2" SCNx8, - &version, &trace_id_high, &trace_id_low, &trace_parent, &trace_flags); + &version, &trace_id_high, &trace_id_low, &span_id, &trace_flags); if (result == EOF) { @@ -205,23 +205,21 @@ bool ClientInfo::parseTraceparentHeader(const std::string & traceparent, return false; } - opentelemetry_trace_id = static_cast<__uint128_t>(trace_id_high) << 64 + trace_id = static_cast<__uint128_t>(trace_id_high) << 64 | trace_id_low; - opentelemetry_span_id = trace_parent; - opentelemetry_trace_flags = trace_flags; return true; } -std::string ClientInfo::composeTraceparentHeader() const +std::string OpenTelemetryTraceContext::composeTraceparentHeader() const { // This span is a parent for its children, so we specify this span_id as a // parent id. - return fmt::format("00-{:032x}-{:016x}-{:02x}", opentelemetry_trace_id, - opentelemetry_span_id, + return fmt::format("00-{:032x}-{:016x}-{:02x}", trace_id, + span_id, // This cast is needed because fmt is being weird and complaining that // "mixing character types is not allowed". - static_cast(opentelemetry_trace_flags)); + static_cast(trace_flags)); } void ClientInfo::fillOSUserHostNameAndVersionInfo() diff --git a/src/Interpreters/ClientInfo.h b/src/Interpreters/ClientInfo.h index 2edf47684d3..c280ee42224 100644 --- a/src/Interpreters/ClientInfo.h +++ b/src/Interpreters/ClientInfo.h @@ -3,7 +3,7 @@ #include #include #include - +#include namespace DB { @@ -59,16 +59,9 @@ public: String initial_query_id; Poco::Net::SocketAddress initial_address; - // OpenTelemetry trace information. - __uint128_t opentelemetry_trace_id = 0; - // The span id we get the in the incoming client info becomes our parent span - // id, and the span id we send becomes downstream parent span id. - UInt64 opentelemetry_span_id = 0; - UInt64 opentelemetry_parent_span_id = 0; - // The incoming tracestate header and the trace flags, we just pass them downstream. - // They are described at https://www.w3.org/TR/trace-context/ - String opentelemetry_tracestate; - UInt8 opentelemetry_trace_flags = 0; + // OpenTelemetry trace context we received from client, or which we are going + // to send to server. + OpenTelemetryTraceContext client_trace_context; /// All below are parameters related to initial query. @@ -102,16 +95,6 @@ public: /// Initialize parameters on client initiating query. void setInitialQuery(); - // Parse/compose OpenTelemetry traceparent header. - // Note that these functions use span_id field, not parent_span_id, same as - // in native protocol. The incoming traceparent corresponds to the upstream - // trace span, and the outgoing traceparent corresponds to our current span. - // We use the same ClientInfo structure first for incoming span, and then - // for our span: when we switch, we use old span_id as parent_span_id, and - // generate a new span_id (currently this happens in Context::setQueryId()). - bool parseTraceparentHeader(const std::string & traceparent, std::string & error); - std::string composeTraceparentHeader() const; - private: void fillOSUserHostNameAndVersionInfo(); }; diff --git a/src/Interpreters/Context.cpp b/src/Interpreters/Context.cpp index 54ee7713e95..ad550657e54 100644 --- a/src/Interpreters/Context.cpp +++ b/src/Interpreters/Context.cpp @@ -1127,8 +1127,14 @@ void Context::setCurrentQueryId(const String & query_id) random.words.a = thread_local_rng(); //-V656 random.words.b = thread_local_rng(); //-V656 - if (client_info.query_kind == ClientInfo::QueryKind::INITIAL_QUERY - && client_info.opentelemetry_trace_id == 0) + if (client_info.client_trace_context.trace_id != 0) + { + // Use the OpenTelemetry trace context we received from the client, and + // create a new span for the query. + query_trace_context = client_info.client_trace_context; + query_trace_context.span_id = thread_local_rng(); + } + else if (client_info.query_kind == ClientInfo::QueryKind::INITIAL_QUERY) { // If this is an initial query without any parent OpenTelemetry trace, we // might start the trace ourselves, with some configurable probability. @@ -1138,20 +1144,12 @@ void Context::setCurrentQueryId(const String & query_id) if (should_start_trace(thread_local_rng)) { // Use the randomly generated default query id as the new trace id. - client_info.opentelemetry_trace_id = random.uuid; - client_info.opentelemetry_parent_span_id = 0; - client_info.opentelemetry_span_id = thread_local_rng(); + query_trace_context.trace_id = random.uuid; + query_trace_context.span_id = thread_local_rng(); // Mark this trace as sampled in the flags. - client_info.opentelemetry_trace_flags = 1; + query_trace_context.trace_flags = 1; } } - else - { - // The incoming request has an OpenTelemtry trace context. Its span id - // becomes our parent span id. - client_info.opentelemetry_parent_span_id = client_info.opentelemetry_span_id; - client_info.opentelemetry_span_id = thread_local_rng(); - } String query_id_to_set = query_id; if (query_id_to_set.empty()) /// If the user did not submit his query_id, then we generate it ourselves. diff --git a/src/Interpreters/Context.h b/src/Interpreters/Context.h index 02a57b5d966..66b99581bf7 100644 --- a/src/Interpreters/Context.h +++ b/src/Interpreters/Context.h @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -198,6 +199,12 @@ private: Context * session_context = nullptr; /// Session context or nullptr. Could be equal to this. Context * global_context = nullptr; /// Global context. Could be equal to this. +public: + // Top-level OpenTelemetry trace context for the query. Makes sense only for + // a query context. + OpenTelemetryTraceContext query_trace_context; + +private: friend class NamedSessions; using SampleBlockCache = std::unordered_map; diff --git a/src/Interpreters/OpenTelemetrySpanLog.cpp b/src/Interpreters/OpenTelemetrySpanLog.cpp index b28047e05c8..853428cf7b9 100644 --- a/src/Interpreters/OpenTelemetrySpanLog.cpp +++ b/src/Interpreters/OpenTelemetrySpanLog.cpp @@ -54,15 +54,25 @@ void OpenTelemetrySpanLogElement::appendToBlock(MutableColumns & columns) const OpenTelemetrySpanHolder::OpenTelemetrySpanHolder(const std::string & _operation_name) { + trace_id = 0; + + if (!CurrentThread::isInitialized()) + { + // There may be no thread context if we're running inside the + // clickhouse-client, e.g. reading an external table provided with the + // `--external` option. + return; + } + auto & thread = CurrentThread::get(); - trace_id = thread.opentelemetry_trace_id; + trace_id = thread.thread_trace_context.trace_id; if (!trace_id) { return; } - parent_span_id = thread.opentelemetry_current_span_id; + parent_span_id = thread.thread_trace_context.span_id; span_id = thread_local_rng(); operation_name = _operation_name; start_time_us = std::chrono::duration_cast( @@ -72,7 +82,7 @@ OpenTelemetrySpanHolder::OpenTelemetrySpanHolder(const std::string & _operation_ attribute_names.push_back("clickhouse.start.stacktrace"); attribute_values.push_back(StackTrace().toString()); - thread.opentelemetry_current_span_id = span_id; + thread.thread_trace_context.span_id = span_id; } OpenTelemetrySpanHolder::~OpenTelemetrySpanHolder() @@ -86,8 +96,8 @@ OpenTelemetrySpanHolder::~OpenTelemetrySpanHolder() // First of all, return old value of current span. auto & thread = CurrentThread::get(); - assert(thread.opentelemetry_current_span_id = span_id); - thread.opentelemetry_current_span_id = parent_span_id; + assert(thread.thread_trace_context.span_id = span_id); + thread.thread_trace_context.span_id = parent_span_id; // Not sure what's the best way to access the log from here. auto * thread_group = CurrentThread::getGroup().get(); diff --git a/src/Interpreters/ThreadStatusExt.cpp b/src/Interpreters/ThreadStatusExt.cpp index 3d56182a2f7..c9742615e03 100644 --- a/src/Interpreters/ThreadStatusExt.cpp +++ b/src/Interpreters/ThreadStatusExt.cpp @@ -74,6 +74,15 @@ void ThreadStatus::attachQueryContext(Context & query_context_) thread_group->global_context = global_context; } + // Generate new span for thread manually here, because we can't depend + // on OpenTelemetrySpanHolder due to link order issues. + // FIXME why and how is this different from setupState()? + thread_trace_context = query_context->query_trace_context; + if (thread_trace_context.trace_id) + { + thread_trace_context.span_id = thread_local_rng(); + } + applyQuerySettings(); } @@ -112,20 +121,17 @@ void ThreadStatus::setupState(const ThreadGroupStatusPtr & thread_group_) { applyQuerySettings(); - opentelemetry_trace_id = query_context->getClientInfo().opentelemetry_trace_id; - if (opentelemetry_trace_id) + // Generate new span for thread manually here, because we can't depend + // on OpenTelemetrySpanHolder due to link order issues. + thread_trace_context = query_context->query_trace_context; + if (thread_trace_context.trace_id) { - opentelemetry_current_span_id = thread_local_rng(); - } - else - { - opentelemetry_current_span_id = 0; + thread_trace_context.span_id = thread_local_rng(); } } else { - opentelemetry_trace_id = 0; - opentelemetry_current_span_id = 0; + thread_trace_context.trace_id = 0; } initPerformanceCounters(); @@ -319,7 +325,7 @@ void ThreadStatus::detachQuery(bool exit_if_already_detached, bool thread_exits) assertState({ThreadState::AttachedToQuery}, __PRETTY_FUNCTION__); std::shared_ptr opentelemetry_span_log; - if (opentelemetry_trace_id && query_context) + if (thread_trace_context.trace_id && query_context) { opentelemetry_span_log = query_context->getOpenTelemetrySpanLog(); } @@ -334,11 +340,11 @@ void ThreadStatus::detachQuery(bool exit_if_already_detached, bool thread_exits) // destructor, which is in another library. OpenTelemetrySpanLogElement span; - span.trace_id = opentelemetry_trace_id; + span.trace_id = thread_trace_context.trace_id; // Might be problematic if some span holder isn't finished by the time // we detach this thread... - span.span_id = opentelemetry_current_span_id; - span.parent_span_id = query_context->getClientInfo().opentelemetry_span_id; + span.span_id = thread_trace_context.span_id; + span.parent_span_id = query_context->query_trace_context.span_id; span.operation_name = getThreadName(); span.start_time_us = query_start_time_microseconds; span.finish_time_us = @@ -364,8 +370,8 @@ void ThreadStatus::detachQuery(bool exit_if_already_detached, bool thread_exits) query_id.clear(); query_context = nullptr; - opentelemetry_trace_id = 0; - opentelemetry_current_span_id = 0; + thread_trace_context.trace_id = 0; + thread_trace_context.span_id = 0; thread_group.reset(); thread_state = thread_exits ? ThreadState::Died : ThreadState::DetachedFromQuery; diff --git a/src/Interpreters/executeQuery.cpp b/src/Interpreters/executeQuery.cpp index 4c31d22529a..b0ffea59037 100644 --- a/src/Interpreters/executeQuery.cpp +++ b/src/Interpreters/executeQuery.cpp @@ -153,13 +153,11 @@ static void logQuery(const String & query, const Context & context, bool interna (!initial_query_id.empty() && current_query_id != initial_query_id ? ", initial_query_id: " + initial_query_id : std::string()), joinLines(query)); - if (client_info.opentelemetry_trace_id) + if (client_info.client_trace_context.trace_id) { LOG_TRACE(&Poco::Logger::get("executeQuery"), - "OpenTelemetry trace id {:x}, span id {}, parent span id {}", - client_info.opentelemetry_trace_id, - client_info.opentelemetry_span_id, - client_info.opentelemetry_parent_span_id); + "OpenTelemetry traceparent '{}'", + client_info.client_trace_context.composeTraceparentHeader()); } } } @@ -247,13 +245,13 @@ static void onExceptionBeforeStart(const String & query_for_logging, Context & c query_log->add(elem); if (auto opentelemetry_span_log = context.getOpenTelemetrySpanLog(); - context.getClientInfo().opentelemetry_trace_id + context.query_trace_context.trace_id && opentelemetry_span_log) { OpenTelemetrySpanLogElement span; - span.trace_id = context.getClientInfo().opentelemetry_trace_id; - span.span_id = context.getClientInfo().opentelemetry_span_id; - span.parent_span_id = context.getClientInfo().opentelemetry_parent_span_id; + span.trace_id = context.query_trace_context.trace_id; + span.span_id = context.query_trace_context.span_id; + span.parent_span_id = context.getClientInfo().client_trace_context.span_id; span.operation_name = "query"; span.start_time_us = current_time_us; span.finish_time_us = current_time_us; @@ -269,11 +267,11 @@ static void onExceptionBeforeStart(const String & query_for_logging, Context & c span.attribute_names.push_back("clickhouse.query_id"); span.attribute_values.push_back(elem.client_info.current_query_id); - if (!context.getClientInfo().opentelemetry_tracestate.empty()) + if (!context.query_trace_context.tracestate.empty()) { span.attribute_names.push_back("clickhouse.tracestate"); span.attribute_values.push_back( - context.getClientInfo().opentelemetry_tracestate); + context.query_trace_context.tracestate); } opentelemetry_span_log->add(span); @@ -689,13 +687,13 @@ static std::tuple executeQueryImpl( } if (auto opentelemetry_span_log = context.getOpenTelemetrySpanLog(); - context.getClientInfo().opentelemetry_trace_id + context.query_trace_context.trace_id && opentelemetry_span_log) { OpenTelemetrySpanLogElement span; - span.trace_id = context.getClientInfo().opentelemetry_trace_id; - span.span_id = context.getClientInfo().opentelemetry_span_id; - span.parent_span_id = context.getClientInfo().opentelemetry_parent_span_id; + span.trace_id = context.query_trace_context.trace_id; + span.span_id = context.query_trace_context.span_id; + span.parent_span_id = context.getClientInfo().client_trace_context.span_id; span.operation_name = "query"; span.start_time_us = elem.query_start_time_microseconds; span.finish_time_us = time_in_microseconds(finish_time); @@ -710,11 +708,11 @@ static std::tuple executeQueryImpl( span.attribute_names.push_back("clickhouse.query_id"); span.attribute_values.push_back(elem.client_info.current_query_id); - if (!context.getClientInfo().opentelemetry_tracestate.empty()) + if (!context.query_trace_context.tracestate.empty()) { span.attribute_names.push_back("clickhouse.tracestate"); span.attribute_values.push_back( - context.getClientInfo().opentelemetry_tracestate); + context.query_trace_context.tracestate); } opentelemetry_span_log->add(span); diff --git a/src/Server/HTTPHandler.cpp b/src/Server/HTTPHandler.cpp index 94d66d44af0..e7cdcd62bfb 100644 --- a/src/Server/HTTPHandler.cpp +++ b/src/Server/HTTPHandler.cpp @@ -318,7 +318,7 @@ void HTTPHandler::processQuery( { std::string opentelemetry_traceparent = request.get("traceparent"); std::string error; - if (!context.getClientInfo().parseTraceparentHeader( + if (!context.getClientInfo().client_trace_context.parseTraceparentHeader( opentelemetry_traceparent, error)) { throw Exception(ErrorCodes::BAD_REQUEST_PARAMETER, @@ -326,7 +326,7 @@ void HTTPHandler::processQuery( opentelemetry_traceparent, error); } - context.getClientInfo().opentelemetry_tracestate = request.get("tracestate", ""); + context.getClientInfo().client_trace_context.tracestate = request.get("tracestate", ""); } #endif diff --git a/src/Storages/StorageURL.cpp b/src/Storages/StorageURL.cpp index ceef755234f..ea41ee37203 100644 --- a/src/Storages/StorageURL.cpp +++ b/src/Storages/StorageURL.cpp @@ -74,16 +74,19 @@ namespace ReadWriteBufferFromHTTP::HTTPHeaderEntries header; // Propagate OpenTelemetry trace context, if any, downstream. - const auto & client_info = context.getClientInfo(); - if (client_info.opentelemetry_trace_id) + if (CurrentThread::isInitialized()) { - header.emplace_back("traceparent", - client_info.composeTraceparentHeader()); - - if (!client_info.opentelemetry_tracestate.empty()) + const auto & thread_trace_context = CurrentThread::get().thread_trace_context; + if (opentelemetry.trace_id) { - header.emplace_back("tracestate", - client_info.opentelemetry_tracestate); + header.emplace_back("traceparent", + thread_trace_context.composeTraceparentHeader()); + + if (!thread_trace_context.tracestate.empty()) + { + header.emplace_back("tracestate", + thread_trace_context.tracestate); + } } } diff --git a/tests/queries/0_stateless/01455_opentelemetry_distributed.reference b/tests/queries/0_stateless/01455_opentelemetry_distributed.reference index 420bb17ae8b..b40e4f87c13 100644 --- a/tests/queries/0_stateless/01455_opentelemetry_distributed.reference +++ b/tests/queries/0_stateless/01455_opentelemetry_distributed.reference @@ -1,5 +1,5 @@ ===http=== -{"total spans":"4","unique spans":"4","unique non-zero parent spans":"2"} +{"total spans":"4","unique spans":"4","unique non-zero parent spans":"3"} {"initial query spans with proper parent":"1"} {"unique non-empty tracestate values":"1"} ===native=== From 7958b739e89c40e9fdba4fd31b7d5a191baac38b Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Wed, 18 Nov 2020 20:44:33 +0300 Subject: [PATCH 174/425] compile --- src/DataStreams/RemoteBlockOutputStream.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/DataStreams/RemoteBlockOutputStream.cpp b/src/DataStreams/RemoteBlockOutputStream.cpp index 1611ada732c..976c4671652 100644 --- a/src/DataStreams/RemoteBlockOutputStream.cpp +++ b/src/DataStreams/RemoteBlockOutputStream.cpp @@ -29,7 +29,8 @@ RemoteBlockOutputStream::RemoteBlockOutputStream(Connection & connection_, modified_client_info.query_kind = ClientInfo::QueryKind::SECONDARY_QUERY; if (CurrentThread::isInitialized()) { - modified_client_info.opentelemetry = CurrentThread::get().opentelemetry; + modified_client_info.client_trace_context + = CurrentThread::get().thread_trace_context; } /** Send query and receive "header", that describes table structure. From f8fd365d151d5d7c154e6d20c29c7a17f6fd9703 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Wed, 18 Nov 2020 20:49:51 +0300 Subject: [PATCH 175/425] compile --- src/Storages/StorageURL.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Storages/StorageURL.cpp b/src/Storages/StorageURL.cpp index ea41ee37203..8dcd549f9c8 100644 --- a/src/Storages/StorageURL.cpp +++ b/src/Storages/StorageURL.cpp @@ -77,7 +77,7 @@ namespace if (CurrentThread::isInitialized()) { const auto & thread_trace_context = CurrentThread::get().thread_trace_context; - if (opentelemetry.trace_id) + if (thread_trace_context.trace_id) { header.emplace_back("traceparent", thread_trace_context.composeTraceparentHeader()); From 4a77a42f348594b485b8a1b33b9e4f8c85e19565 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Tue, 10 Nov 2020 00:27:25 +0300 Subject: [PATCH 176/425] Test for Merge(Distributed()) with JOIN --- .../01560_merge_distributed_join.reference | 0 .../0_stateless/01560_merge_distributed_join.sql | 14 ++++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 tests/queries/0_stateless/01560_merge_distributed_join.reference create mode 100644 tests/queries/0_stateless/01560_merge_distributed_join.sql diff --git a/tests/queries/0_stateless/01560_merge_distributed_join.reference b/tests/queries/0_stateless/01560_merge_distributed_join.reference new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/queries/0_stateless/01560_merge_distributed_join.sql b/tests/queries/0_stateless/01560_merge_distributed_join.sql new file mode 100644 index 00000000000..5f0a8b0f99c --- /dev/null +++ b/tests/queries/0_stateless/01560_merge_distributed_join.sql @@ -0,0 +1,14 @@ +-- test from https://github.com/ClickHouse/ClickHouse/issues/11755#issuecomment-700850254 +DROP TABLE IF EXISTS cat_hist; +DROP TABLE IF EXISTS prod_hist; +DROP TABLE IF EXISTS products_l; +DROP TABLE IF EXISTS products; + +CREATE TABLE cat_hist (categoryId UUID, categoryName String) ENGINE Memory; +CREATE TABLE prod_hist (categoryId UUID, productId UUID) ENGINE = MergeTree ORDER BY productId; + +CREATE TABLE products_l AS prod_hist ENGINE = Distributed(test_cluster_two_shards, currentDatabase(), prod_hist); +CREATE TABLE products as prod_hist ENGINE = Merge(currentDatabase(), '^products_'); + +SELECT * FROM products AS p LEFT JOIN cat_hist AS c USING (categoryId); +SELECT * FROM products AS p GLOBAL LEFT JOIN cat_hist AS c USING (categoryId); From a0683ce460eb103212fbc7e2c89e77d755973536 Mon Sep 17 00:00:00 2001 From: Peng Jian Date: Mon, 16 Nov 2020 16:27:33 +0800 Subject: [PATCH 177/425] Support mulitple ZooKeeper clusters --- src/Interpreters/Context.cpp | 4 ++ src/Interpreters/Context.h | 2 + .../ReplicatedMergeTreeRestartingThread.cpp | 2 +- src/Storages/StorageReplicatedMergeTree.cpp | 41 +++++++++++++++---- src/Storages/StorageReplicatedMergeTree.h | 4 +- 5 files changed, 44 insertions(+), 9 deletions(-) diff --git a/src/Interpreters/Context.cpp b/src/Interpreters/Context.cpp index 54ee7713e95..90be787fd35 100644 --- a/src/Interpreters/Context.cpp +++ b/src/Interpreters/Context.cpp @@ -1574,6 +1574,10 @@ bool Context::hasZooKeeper() const return getConfigRef().has("zookeeper"); } +bool Context::hasAuxiliaryZooKeeper(const String & name) const +{ + return getConfigRef().has("auxiliary_zookeepers." + name); +} void Context::setInterserverIOAddress(const String & host, UInt16 port) { diff --git a/src/Interpreters/Context.h b/src/Interpreters/Context.h index 02a57b5d966..0a21534a995 100644 --- a/src/Interpreters/Context.h +++ b/src/Interpreters/Context.h @@ -492,6 +492,8 @@ public: void reloadAuxiliaryZooKeepersConfigIfChanged(const ConfigurationPtr & config); /// Has ready or expired ZooKeeper bool hasZooKeeper() const; + /// Has ready or expired auxiliary ZooKeeper + bool hasAuxiliaryZooKeeper(const String & name) const; /// Reset current zookeeper session. Do not create a new one. void resetZooKeeper() const; // Reload Zookeeper diff --git a/src/Storages/MergeTree/ReplicatedMergeTreeRestartingThread.cpp b/src/Storages/MergeTree/ReplicatedMergeTreeRestartingThread.cpp index cf8c32db804..b3cb7c92def 100644 --- a/src/Storages/MergeTree/ReplicatedMergeTreeRestartingThread.cpp +++ b/src/Storages/MergeTree/ReplicatedMergeTreeRestartingThread.cpp @@ -83,7 +83,7 @@ void ReplicatedMergeTreeRestartingThread::run() { try { - storage.setZooKeeper(storage.global_context.getZooKeeper()); + storage.setZooKeeper(); } catch (const Coordination::Exception &) { diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index dc254ae536e..6cbd7bac7a5 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -139,12 +139,18 @@ static const auto MERGE_SELECTING_SLEEP_MS = 5 * 1000; static const auto MUTATIONS_FINALIZING_SLEEP_MS = 1 * 1000; static const auto MUTATIONS_FINALIZING_IDLE_SLEEP_MS = 5 * 1000; -void StorageReplicatedMergeTree::setZooKeeper(zkutil::ZooKeeperPtr zookeeper) +void StorageReplicatedMergeTree::setZooKeeper() { std::lock_guard lock(current_zookeeper_mutex); - current_zookeeper = zookeeper; + if (zookeeper_name == default_zookeeper_name) + { + current_zookeeper = global_context.getZooKeeper(); + } + else + { + current_zookeeper = global_context.getAuxiliaryZooKeeper(zookeeper_name); + } } - zkutil::ZooKeeperPtr StorageReplicatedMergeTree::tryGetZooKeeper() const { std::lock_guard lock(current_zookeeper_mutex); @@ -195,9 +201,7 @@ StorageReplicatedMergeTree::StorageReplicatedMergeTree( true, /// require_part_metadata attach, [this] (const std::string & name) { enqueuePartForCheck(name); }) - , zookeeper_path(normalizeZooKeeperPath(zookeeper_path_)) , replica_name(replica_name_) - , replica_path(zookeeper_path + "/replicas/" + replica_name) , reader(*this) , writer(*this) , merger_mutator(*this, global_context.getSettingsRef().background_pool_size) @@ -212,6 +216,22 @@ StorageReplicatedMergeTree::StorageReplicatedMergeTree( , allow_renaming(allow_renaming_) , replicated_fetches_pool_size(global_context.getSettingsRef().background_fetches_pool_size) { + if (zookeeper_path_.empty()) + throw Exception("ZooKeeper path should not be empty", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); + auto pos = zookeeper_path_.find(':'); + if (pos != String::npos) + { + zookeeper_name = zookeeper_path_.substr(0, pos); + if (zookeeper_name.empty()) + throw Exception("Zookeeper path should start with '/' or ':/'", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); + zookeeper_path = normalizeZooKeeperPath(zookeeper_path_.substr(pos + 1, String::npos)); + } + else + { + zookeeper_name = default_zookeeper_name; + zookeeper_path = normalizeZooKeeperPath(zookeeper_path_); + } + replica_path = zookeeper_path + "/replicas/" + replica_name; queue_updating_task = global_context.getSchedulePool().createTask( getStorageID().getFullTableName() + " (StorageReplicatedMergeTree::queueUpdatingTask)", [this]{ queueUpdatingTask(); }); @@ -227,7 +247,7 @@ StorageReplicatedMergeTree::StorageReplicatedMergeTree( mutations_finalizing_task = global_context.getSchedulePool().createTask( getStorageID().getFullTableName() + " (StorageReplicatedMergeTree::mutationsFinalizingTask)", [this] { mutationsFinalizingTask(); }); - if (global_context.hasZooKeeper()) + if (global_context.hasZooKeeper() || global_context.hasAuxiliaryZooKeeper(zookeeper_name)) { /// It's possible for getZooKeeper() to timeout if zookeeper host(s) can't /// be reached. In such cases Poco::Exception is thrown after a connection @@ -244,7 +264,14 @@ StorageReplicatedMergeTree::StorageReplicatedMergeTree( /// to be manually deleted before retrying the CreateQuery. try { - current_zookeeper = global_context.getZooKeeper(); + if (zookeeper_name == default_zookeeper_name) + { + current_zookeeper = global_context.getZooKeeper(); + } + else + { + current_zookeeper = global_context.getAuxiliaryZooKeeper(zookeeper_name); + } } catch (...) { diff --git a/src/Storages/StorageReplicatedMergeTree.h b/src/Storages/StorageReplicatedMergeTree.h index 3b4a80bd3bf..78dd2d39fef 100644 --- a/src/Storages/StorageReplicatedMergeTree.h +++ b/src/Storages/StorageReplicatedMergeTree.h @@ -237,13 +237,15 @@ private: zkutil::ZooKeeperPtr tryGetZooKeeper() const; zkutil::ZooKeeperPtr getZooKeeper() const; - void setZooKeeper(zkutil::ZooKeeperPtr zookeeper); + void setZooKeeper(); /// If true, the table is offline and can not be written to it. std::atomic_bool is_readonly {false}; /// If false - ZooKeeper is available, but there is no table metadata. It's safe to drop table in this case. bool has_metadata_in_zookeeper = true; + static constexpr auto default_zookeeper_name = "default"; + String zookeeper_name; String zookeeper_path; String replica_name; String replica_path; From d8ae52118bd14464d4aae56343975e5e11d42a88 Mon Sep 17 00:00:00 2001 From: Peng Jian Date: Mon, 16 Nov 2020 17:50:54 +0800 Subject: [PATCH 178/425] add test --- .../__init__.py | 0 .../configs/config.xml | 42 ++++++++++++ .../test.py | 68 +++++++++++++++++++ 3 files changed, 110 insertions(+) create mode 100644 tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/__init__.py create mode 100644 tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/configs/config.xml create mode 100644 tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/test.py diff --git a/tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/__init__.py b/tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/configs/config.xml b/tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/configs/config.xml new file mode 100644 index 00000000000..331bfede220 --- /dev/null +++ b/tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/configs/config.xml @@ -0,0 +1,42 @@ + + + + zoo1 + 2181 + + + zoo2 + 2181 + + + zoo3 + 2181 + + + + + + zoo1 + 2181 + + + zoo2 + 2181 + + + + + + + + node1 + 9000 + + + node2 + 9000 + + + + + diff --git a/tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/test.py b/tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/test.py new file mode 100644 index 00000000000..3a6deaef3ec --- /dev/null +++ b/tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/test.py @@ -0,0 +1,68 @@ +import time + +import helpers.client as client +import pytest +from helpers.cluster import ClickHouseCluster +from helpers.test_tools import TSV + +cluster = ClickHouseCluster(__file__) +cluster = ClickHouseCluster(__file__) +node1 = cluster.add_instance("node1", main_configs=["configs/config.xml"], with_zookeeper=True) +node2 = cluster.add_instance("node2", main_configs=["configs/config.xml"], with_zookeeper=True) + + +@pytest.fixture(scope="module") +def started_cluster(): + try: + cluster.start() + + yield cluster + + except Exception as ex: + print(ex) + + finally: + cluster.shutdown() + + +def drop_table(nodes, table_name): + for node in nodes: + node.query("DROP TABLE IF EXISTS {} NO DELAY".format(table_name)) + +# Create table with default zookeeper. +def test_create_replicated_merge_tree_with_default_zookeeper(started_cluster): + drop_table([node1, node2], "test_default_zookeeper") + for node in [node1, node2]: + node.query( + ''' + CREATE TABLE test_default_zookeeper(a Int32) + ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/test_default_zookeeper', '{replica}') + ORDER BY a; + '''.format(replica=node.name)) + + # Insert data into node1, and query it from node2. + node1.query("INSERT INTO test_default_zookeeper VALUES (1)") + time.sleep(5) + + expected = "1\n" + assert TSV(node1.query("SELECT a FROM test_default_zookeeper")) == TSV(expected) + assert TSV(node2.query("SELECT a FROM test_default_zookeeper")) == TSV(expected) + +# Create table with auxiliary zookeeper. +def test_create_replicated_merge_tree_with_auxiliary_zookeeper(started_cluster): + drop_table([node1, node2], "test_auxiliary_zookeeper") + for node in [node1, node2]: + node.query( + ''' + CREATE TABLE test_auxiliary_zookeeper(a Int32) + ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/test_auxiliary_zookeeper', '{replica}') + ORDER BY a; + '''.format(replica=node.name)) + + # Insert data into node1, and query it from node2. + node1.query("INSERT INTO test_auxiliary_zookeeper VALUES (1)") + time.sleep(5) + + expected = "1\n" + assert TSV(node1.query("SELECT a FROM test_auxiliary_zookeeper")) == TSV(expected) + assert TSV(node2.query("SELECT a FROM test_auxiliary_zookeeper")) == TSV(expected) From 2df0c3e0b043cbba1ae24edba4da678cd0674b77 Mon Sep 17 00:00:00 2001 From: Peng Jian Date: Mon, 16 Nov 2020 20:30:54 +0800 Subject: [PATCH 179/425] Add helper function for extracting zookeeper name and path. --- src/Storages/StorageReplicatedMergeTree.cpp | 47 ++++++++++----------- src/Storages/StorageReplicatedMergeTree.h | 1 + 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 6cbd7bac7a5..3be8286e3d0 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -165,7 +165,6 @@ zkutil::ZooKeeperPtr StorageReplicatedMergeTree::getZooKeeper() const return res; } - static std::string normalizeZooKeeperPath(std::string zookeeper_path) { if (!zookeeper_path.empty() && zookeeper_path.back() == '/') @@ -177,6 +176,24 @@ static std::string normalizeZooKeeperPath(std::string zookeeper_path) return zookeeper_path; } +void StorageReplicatedMergeTree::extractZooKeeperNameAndPath(const String & path, String & zookeeper_name_, String & zookeeper_path_) const +{ + if (path.empty()) + throw Exception("ZooKeeper path should not be empty", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); + auto pos = path.find(':'); + if (pos != String::npos) + { + zookeeper_name_ = path.substr(0, pos); + if (zookeeper_name_.empty()) + throw Exception("Zookeeper path should start with '/' or ':/'", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); + zookeeper_path_ = normalizeZooKeeperPath(path.substr(pos + 1, String::npos)); + } + else + { + zookeeper_name_ = default_zookeeper_name; + zookeeper_path_ = normalizeZooKeeperPath(path); + } +} StorageReplicatedMergeTree::StorageReplicatedMergeTree( const String & zookeeper_path_, @@ -216,21 +233,7 @@ StorageReplicatedMergeTree::StorageReplicatedMergeTree( , allow_renaming(allow_renaming_) , replicated_fetches_pool_size(global_context.getSettingsRef().background_fetches_pool_size) { - if (zookeeper_path_.empty()) - throw Exception("ZooKeeper path should not be empty", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); - auto pos = zookeeper_path_.find(':'); - if (pos != String::npos) - { - zookeeper_name = zookeeper_path_.substr(0, pos); - if (zookeeper_name.empty()) - throw Exception("Zookeeper path should start with '/' or ':/'", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); - zookeeper_path = normalizeZooKeeperPath(zookeeper_path_.substr(pos + 1, String::npos)); - } - else - { - zookeeper_name = default_zookeeper_name; - zookeeper_path = normalizeZooKeeperPath(zookeeper_path_); - } + extractZooKeeperNameAndPath(zookeeper_path_, zookeeper_name, zookeeper_path); replica_path = zookeeper_path + "/replicas/" + replica_name; queue_updating_task = global_context.getSchedulePool().createTask( getStorageID().getFullTableName() + " (StorageReplicatedMergeTree::queueUpdatingTask)", [this]{ queueUpdatingTask(); }); @@ -4871,22 +4874,16 @@ void StorageReplicatedMergeTree::fetchPartition( const String & from_, const Context & query_context) { + String auxiliary_zookeeper_name; String from = from_; + extractZooKeeperNameAndPath(from, auxiliary_zookeeper_name, from); if (from.empty()) throw Exception("ZooKeeper path should not be empty", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); String partition_id = getPartitionIDFromQuery(partition, query_context); - zkutil::ZooKeeperPtr zookeeper; - if (from[0] != '/') + if (auxiliary_zookeeper_name != default_zookeeper_name) { - auto delimiter = from.find(':'); - if (delimiter == String::npos) - throw Exception("Zookeeper path should start with '/' or ':/'", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); - auto auxiliary_zookeeper_name = from.substr(0, delimiter); - from = from.substr(delimiter + 1, String::npos); - if (from.empty()) - throw Exception("ZooKeeper path should not be empty", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); zookeeper = global_context.getAuxiliaryZooKeeper(auxiliary_zookeeper_name); LOG_INFO(log, "Will fetch partition {} from shard {} (auxiliary zookeeper '{}')", partition_id, from_, auxiliary_zookeeper_name); diff --git a/src/Storages/StorageReplicatedMergeTree.h b/src/Storages/StorageReplicatedMergeTree.h index 78dd2d39fef..1e20dab1f09 100644 --- a/src/Storages/StorageReplicatedMergeTree.h +++ b/src/Storages/StorageReplicatedMergeTree.h @@ -238,6 +238,7 @@ private: zkutil::ZooKeeperPtr tryGetZooKeeper() const; zkutil::ZooKeeperPtr getZooKeeper() const; void setZooKeeper(); + void extractZooKeeperNameAndPath(const String & path, String & zookeeper_name_, String & zookeeper_path_) const; /// If true, the table is offline and can not be written to it. std::atomic_bool is_readonly {false}; From 091f7065cd7e6beec6a6615895ebf92f6d2d061a Mon Sep 17 00:00:00 2001 From: Peng Jian Date: Tue, 17 Nov 2020 09:55:25 +0800 Subject: [PATCH 180/425] fix build --- src/Storages/StorageReplicatedMergeTree.cpp | 2 +- src/Storages/StorageReplicatedMergeTree.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 3be8286e3d0..7fded676ecd 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -176,7 +176,7 @@ static std::string normalizeZooKeeperPath(std::string zookeeper_path) return zookeeper_path; } -void StorageReplicatedMergeTree::extractZooKeeperNameAndPath(const String & path, String & zookeeper_name_, String & zookeeper_path_) const +void StorageReplicatedMergeTree::extractZooKeeperNameAndPath(const String & path, String & zookeeper_name_, String & zookeeper_path_) { if (path.empty()) throw Exception("ZooKeeper path should not be empty", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); diff --git a/src/Storages/StorageReplicatedMergeTree.h b/src/Storages/StorageReplicatedMergeTree.h index 1e20dab1f09..b64b9e1f25e 100644 --- a/src/Storages/StorageReplicatedMergeTree.h +++ b/src/Storages/StorageReplicatedMergeTree.h @@ -238,7 +238,7 @@ private: zkutil::ZooKeeperPtr tryGetZooKeeper() const; zkutil::ZooKeeperPtr getZooKeeper() const; void setZooKeeper(); - void extractZooKeeperNameAndPath(const String & path, String & zookeeper_name_, String & zookeeper_path_) const; + static void extractZooKeeperNameAndPath(const String & path, String & zookeeper_name_, String & zookeeper_path_); /// If true, the table is offline and can not be written to it. std::atomic_bool is_readonly {false}; From 3c86c8b3c9ac19a980f74a5017788ddca8a27c6a Mon Sep 17 00:00:00 2001 From: Peng Jian Date: Tue, 17 Nov 2020 20:27:19 +0800 Subject: [PATCH 181/425] fix test cases --- src/Storages/StorageReplicatedMergeTree.cpp | 32 ++++++++++++------- src/Storages/StorageReplicatedMergeTree.h | 1 - .../configs/remote_servers.xml | 16 ++++++++++ .../{config.xml => zookeeper_config.xml} | 14 -------- .../test.py | 18 +++++++++-- 5 files changed, 52 insertions(+), 29 deletions(-) create mode 100644 tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/configs/remote_servers.xml rename tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/configs/{config.xml => zookeeper_config.xml} (63%) diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 7fded676ecd..77f4ed9304c 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -151,6 +151,7 @@ void StorageReplicatedMergeTree::setZooKeeper() current_zookeeper = global_context.getAuxiliaryZooKeeper(zookeeper_name); } } + zkutil::ZooKeeperPtr StorageReplicatedMergeTree::tryGetZooKeeper() const { std::lock_guard lock(current_zookeeper_mutex); @@ -176,23 +177,32 @@ static std::string normalizeZooKeeperPath(std::string zookeeper_path) return zookeeper_path; } -void StorageReplicatedMergeTree::extractZooKeeperNameAndPath(const String & path, String & zookeeper_name_, String & zookeeper_path_) +static String extractZooKeeperName(const String & path) { if (path.empty()) throw Exception("ZooKeeper path should not be empty", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); auto pos = path.find(':'); if (pos != String::npos) { - zookeeper_name_ = path.substr(0, pos); + auto zookeeper_name_ = path.substr(0, pos); if (zookeeper_name_.empty()) throw Exception("Zookeeper path should start with '/' or ':/'", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); - zookeeper_path_ = normalizeZooKeeperPath(path.substr(pos + 1, String::npos)); + return zookeeper_name_; } - else + static constexpr auto default_zookeeper_name = "default"; + return default_zookeeper_name; +} + +static String extractZooKeeperPath(const String & path) +{ + if (path.empty()) + throw Exception("ZooKeeper path should not be empty", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); + auto pos = path.find(':'); + if (pos != String::npos) { - zookeeper_name_ = default_zookeeper_name; - zookeeper_path_ = normalizeZooKeeperPath(path); + return normalizeZooKeeperPath(path.substr(pos + 1, String::npos)); } + return normalizeZooKeeperPath(path); } StorageReplicatedMergeTree::StorageReplicatedMergeTree( @@ -218,7 +228,10 @@ StorageReplicatedMergeTree::StorageReplicatedMergeTree( true, /// require_part_metadata attach, [this] (const std::string & name) { enqueuePartForCheck(name); }) + , zookeeper_name(extractZooKeeperName(zookeeper_path_)) + , zookeeper_path(extractZooKeeperPath(zookeeper_path_)) , replica_name(replica_name_) + , replica_path(zookeeper_path + "/replicas/" + replica_name_) , reader(*this) , writer(*this) , merger_mutator(*this, global_context.getSettingsRef().background_pool_size) @@ -233,8 +246,6 @@ StorageReplicatedMergeTree::StorageReplicatedMergeTree( , allow_renaming(allow_renaming_) , replicated_fetches_pool_size(global_context.getSettingsRef().background_fetches_pool_size) { - extractZooKeeperNameAndPath(zookeeper_path_, zookeeper_name, zookeeper_path); - replica_path = zookeeper_path + "/replicas/" + replica_name; queue_updating_task = global_context.getSchedulePool().createTask( getStorageID().getFullTableName() + " (StorageReplicatedMergeTree::queueUpdatingTask)", [this]{ queueUpdatingTask(); }); @@ -4874,9 +4885,8 @@ void StorageReplicatedMergeTree::fetchPartition( const String & from_, const Context & query_context) { - String auxiliary_zookeeper_name; - String from = from_; - extractZooKeeperNameAndPath(from, auxiliary_zookeeper_name, from); + String auxiliary_zookeeper_name = extractZooKeeperName(from_); + String from = extractZooKeeperPath(from_); if (from.empty()) throw Exception("ZooKeeper path should not be empty", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); diff --git a/src/Storages/StorageReplicatedMergeTree.h b/src/Storages/StorageReplicatedMergeTree.h index b64b9e1f25e..78dd2d39fef 100644 --- a/src/Storages/StorageReplicatedMergeTree.h +++ b/src/Storages/StorageReplicatedMergeTree.h @@ -238,7 +238,6 @@ private: zkutil::ZooKeeperPtr tryGetZooKeeper() const; zkutil::ZooKeeperPtr getZooKeeper() const; void setZooKeeper(); - static void extractZooKeeperNameAndPath(const String & path, String & zookeeper_name_, String & zookeeper_path_); /// If true, the table is offline and can not be written to it. std::atomic_bool is_readonly {false}; diff --git a/tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/configs/remote_servers.xml b/tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/configs/remote_servers.xml new file mode 100644 index 00000000000..3593cbd7f36 --- /dev/null +++ b/tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/configs/remote_servers.xml @@ -0,0 +1,16 @@ + + + + + + node1 + 9000 + + + node2 + 9000 + + + + + diff --git a/tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/configs/config.xml b/tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/configs/zookeeper_config.xml similarity index 63% rename from tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/configs/config.xml rename to tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/configs/zookeeper_config.xml index 331bfede220..b2b0667ebbf 100644 --- a/tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/configs/config.xml +++ b/tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/configs/zookeeper_config.xml @@ -25,18 +25,4 @@ - - - - - node1 - 9000 - - - node2 - 9000 - - - - diff --git a/tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/test.py b/tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/test.py index 3a6deaef3ec..91a25ec8d8a 100644 --- a/tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/test.py +++ b/tests/integration/test_replicated_merge_tree_with_auxiliary_zookeepers/test.py @@ -3,12 +3,13 @@ import time import helpers.client as client import pytest from helpers.cluster import ClickHouseCluster +from helpers.client import QueryRuntimeException from helpers.test_tools import TSV cluster = ClickHouseCluster(__file__) cluster = ClickHouseCluster(__file__) -node1 = cluster.add_instance("node1", main_configs=["configs/config.xml"], with_zookeeper=True) -node2 = cluster.add_instance("node2", main_configs=["configs/config.xml"], with_zookeeper=True) +node1 = cluster.add_instance("node1", main_configs=["configs/zookeeper_config.xml", "configs/remote_servers.xml"], with_zookeeper=True) +node2 = cluster.add_instance("node2", main_configs=["configs/zookeeper_config.xml", "configs/remote_servers.xml"], with_zookeeper=True) @pytest.fixture(scope="module") @@ -55,7 +56,7 @@ def test_create_replicated_merge_tree_with_auxiliary_zookeeper(started_cluster): node.query( ''' CREATE TABLE test_auxiliary_zookeeper(a Int32) - ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/test_auxiliary_zookeeper', '{replica}') + ENGINE = ReplicatedMergeTree('zookeeper2:/clickhouse/tables/test/test_auxiliary_zookeeper', '{replica}') ORDER BY a; '''.format(replica=node.name)) @@ -66,3 +67,14 @@ def test_create_replicated_merge_tree_with_auxiliary_zookeeper(started_cluster): expected = "1\n" assert TSV(node1.query("SELECT a FROM test_auxiliary_zookeeper")) == TSV(expected) assert TSV(node2.query("SELECT a FROM test_auxiliary_zookeeper")) == TSV(expected) + +# Create table with auxiliary zookeeper. +def test_create_replicated_merge_tree_with_not_exists_auxiliary_zookeeper(started_cluster): + drop_table([node1], "test_auxiliary_zookeeper") + with pytest.raises(QueryRuntimeException): + node1.query( + ''' + CREATE TABLE test_auxiliary_zookeeper(a Int32) + ENGINE = ReplicatedMergeTree('zookeeper_not_exits:/clickhouse/tables/test/test_auxiliary_zookeeper', '{replica}') + ORDER BY a; + '''.format(replica=node1.name)) From 10cefe4f513dcec2d94028081ec8f29c4c2cefbb Mon Sep 17 00:00:00 2001 From: Peng Jian Date: Tue, 17 Nov 2020 20:45:21 +0800 Subject: [PATCH 182/425] fix code style --- src/Storages/StorageReplicatedMergeTree.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 77f4ed9304c..9159275aed1 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -184,10 +184,10 @@ static String extractZooKeeperName(const String & path) auto pos = path.find(':'); if (pos != String::npos) { - auto zookeeper_name_ = path.substr(0, pos); - if (zookeeper_name_.empty()) + auto zookeeper_name = path.substr(0, pos); + if (zookeeper_name.empty()) throw Exception("Zookeeper path should start with '/' or ':/'", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); - return zookeeper_name_; + return zookeeper_name; } static constexpr auto default_zookeeper_name = "default"; return default_zookeeper_name; @@ -228,8 +228,8 @@ StorageReplicatedMergeTree::StorageReplicatedMergeTree( true, /// require_part_metadata attach, [this] (const std::string & name) { enqueuePartForCheck(name); }) - , zookeeper_name(extractZooKeeperName(zookeeper_path_)) - , zookeeper_path(extractZooKeeperPath(zookeeper_path_)) + , zookeeper_name(extractZooKeeperName(zookeeper_path_)) + , zookeeper_path(extractZooKeeperPath(zookeeper_path_)) , replica_name(replica_name_) , replica_path(zookeeper_path + "/replicas/" + replica_name_) , reader(*this) From fd0705c93db0f9d87ad62224a6120eb79a3ac855 Mon Sep 17 00:00:00 2001 From: Peng Jian Date: Wed, 18 Nov 2020 10:54:48 +0800 Subject: [PATCH 183/425] add doc --- .../mergetree-family/replication.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/docs/en/engines/table-engines/mergetree-family/replication.md b/docs/en/engines/table-engines/mergetree-family/replication.md index 932facc9ddc..7c628b8d8cc 100644 --- a/docs/en/engines/table-engines/mergetree-family/replication.md +++ b/docs/en/engines/table-engines/mergetree-family/replication.md @@ -53,6 +53,42 @@ Example of setting the addresses of the ZooKeeper cluster: ``` +ClickHouse also supports to store replicas meta information in the auxiliary ZooKeeper cluster by providing ZooKeeper cluster name and path as engine arguments. +In other word, it supports to store the metadata of differnt tables in different ZooKeeper clusters. + +Example of setting the addresses of the auxiliary ZooKeeper cluster: + +``` xml + + + + example_2_1 + 2181 + + + example_2_2 + 2181 + + + example_2_3 + 2181 + + + + + example_3_1 + 2181 + + + +``` + +To store table datameta in a auxiliary ZooKeeper cluster instead of default ZooKeeper cluster, we can use the SQL to create table with +ReplicatedMergeTree engine as follow: + +``` +CREATE TABLE table_name ( ... ) ENGINE = ReplicatedMergeTree('zookeeper_name_configurated_in_auxiliary_zookeepers:path', 'replica_name') ... +``` You can specify any existing ZooKeeper cluster and the system will use a directory on it for its own data (the directory is specified when creating a replicatable table). If ZooKeeper isn’t set in the config file, you can’t create replicated tables, and any existing replicated tables will be read-only. From f326536ef056cb8cf8cc1ed519464aa386570564 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Thu, 19 Nov 2020 15:30:44 +0300 Subject: [PATCH 184/425] fixup --- src/Common/OpenTelemetryTraceContext.h | 3 ++- src/Common/ThreadStatus.h | 2 +- tests/queries/0_stateless/01455_opentelemetry_distributed.sh | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Common/OpenTelemetryTraceContext.h b/src/Common/OpenTelemetryTraceContext.h index 1024230703d..fe88981cb1e 100644 --- a/src/Common/OpenTelemetryTraceContext.h +++ b/src/Common/OpenTelemetryTraceContext.h @@ -1,6 +1,7 @@ #pragma once -namespace DB { +namespace DB +{ // The runtime info we need to create new OpenTelemetry spans. struct OpenTelemetryTraceContext diff --git a/src/Common/ThreadStatus.h b/src/Common/ThreadStatus.h index 4f6422ab151..5c46ff3bf40 100644 --- a/src/Common/ThreadStatus.h +++ b/src/Common/ThreadStatus.h @@ -109,7 +109,7 @@ public: using Deleter = std::function; Deleter deleter; - // This is the current most-derived OpenTelemetry span for this thread. It + // This is the current most-derived OpenTelemetry span for this thread. It // can be changed throughout the query execution, whenever we enter a new // span or exit it. See OpenTelemetrySpanHolder that is normally responsible // for these changes. diff --git a/tests/queries/0_stateless/01455_opentelemetry_distributed.sh b/tests/queries/0_stateless/01455_opentelemetry_distributed.sh index 08c8b1ce808..f81a010cf95 100755 --- a/tests/queries/0_stateless/01455_opentelemetry_distributed.sh +++ b/tests/queries/0_stateless/01455_opentelemetry_distributed.sh @@ -60,7 +60,7 @@ trace_id=$(${CLICKHOUSE_CLIENT} -q "select lower(hex(reverse(reinterpretAsString # https://github.com/ClickHouse/ClickHouse/issues/14228 ${CLICKHOUSE_CURL} \ --header "traceparent: 00-$trace_id-0000000000000073-01" \ - --header "tracestate: some custom state" "http://localhost:8123/" \ + --header "tracestate: some custom state" "http://127.0.0.2:8123/" \ --get \ --data-urlencode "query=select 1 from remote('127.0.0.2', system, one) format Null" From 7fa779c2efa9dba43d066229191fd3e03c4346cc Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Thu, 19 Nov 2020 18:26:44 +0300 Subject: [PATCH 185/425] Remove escaping from toString(std::string) This is just confusing, I'd expect it to be an identity. It looks especially weird when you do something like `toString(Field("don't escape me"))`. Let's see which tests are going to fail. --- src/IO/WriteHelpers.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/IO/WriteHelpers.h b/src/IO/WriteHelpers.h index dcf4e50e5af..201dbb30a86 100644 --- a/src/IO/WriteHelpers.h +++ b/src/IO/WriteHelpers.h @@ -859,15 +859,15 @@ template inline std::enable_if_t, void> writeText(const T & x, WriteBuffer & buf) { writeFloatText(x, buf); } -inline void writeText(const String & x, WriteBuffer & buf) { writeEscapedString(x, buf); } +inline void writeText(const String & x, WriteBuffer & buf) { writeString(x.c_str(), x.size(), buf); } /// Implemented as template specialization (not function overload) to avoid preference over templates on arithmetic types above. template <> inline void writeText(const bool & x, WriteBuffer & buf) { writeBoolText(x, buf); } /// unlike the method for std::string /// assumes here that `x` is a null-terminated string. -inline void writeText(const char * x, WriteBuffer & buf) { writeEscapedString(x, strlen(x), buf); } -inline void writeText(const char * x, size_t size, WriteBuffer & buf) { writeEscapedString(x, size, buf); } +inline void writeText(const char * x, WriteBuffer & buf) { writeCString(x, buf); } +inline void writeText(const char * x, size_t size, WriteBuffer & buf) { writeString(x, size, buf); } inline void writeText(const DayNum & x, WriteBuffer & buf) { writeDateText(LocalDate(x), buf); } inline void writeText(const LocalDate & x, WriteBuffer & buf) { writeDateText(x, buf); } From 6cb378e07259315a922a2f5ebdee2c288835ae0d Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Thu, 19 Nov 2020 18:52:11 +0300 Subject: [PATCH 186/425] cleanup --- src/Interpreters/ClientInfo.cpp | 66 --------------- src/Interpreters/InterpreterFactory.cpp | 2 +- src/Interpreters/InterpreterSelectQuery.cpp | 3 + src/Interpreters/OpenTelemetrySpanLog.cpp | 80 ++++++++++++++++++- src/Interpreters/ThreadStatusExt.cpp | 12 ++- src/Interpreters/executeQuery.cpp | 2 +- src/Processors/Executors/PipelineExecutor.cpp | 3 +- src/Server/TCPHandler.cpp | 2 +- 8 files changed, 94 insertions(+), 76 deletions(-) diff --git a/src/Interpreters/ClientInfo.cpp b/src/Interpreters/ClientInfo.cpp index f021d989158..4dbec8af3a4 100644 --- a/src/Interpreters/ClientInfo.cpp +++ b/src/Interpreters/ClientInfo.cpp @@ -155,72 +155,6 @@ void ClientInfo::setInitialQuery() client_name = (DBMS_NAME " ") + client_name; } -bool OpenTelemetryTraceContext::parseTraceparentHeader(const std::string & traceparent, - std::string & error) -{ - trace_id = 0; - - uint8_t version = -1; - uint64_t trace_id_high = 0; - uint64_t trace_id_low = 0; - - // Version 00, which is the only one we can parse, is fixed width. Use this - // fact for an additional sanity check. - const int expected_length = 2 + 1 + 32 + 1 + 16 + 1 + 2; - if (traceparent.length() != expected_length) - { - error = fmt::format("unexpected length {}, expected {}", - traceparent.length(), expected_length); - return false; - } - - // clang-tidy doesn't like sscanf: - // error: 'sscanf' used to convert a string to an unsigned integer value, - // but function will not report conversion errors; consider using 'strtoul' - // instead [cert-err34-c,-warnings-as-errors] - // There is no other ready solution, and hand-rolling a more complicated - // parser for an HTTP header in C++ sounds like RCE. - // NOLINTNEXTLINE(cert-err34-c) - int result = sscanf(&traceparent[0], - "%2" SCNx8 "-%16" SCNx64 "%16" SCNx64 "-%16" SCNx64 "-%2" SCNx8, - &version, &trace_id_high, &trace_id_low, &span_id, &trace_flags); - - if (result == EOF) - { - error = "EOF"; - return false; - } - - // We read uint128 as two uint64, so 5 parts and not 4. - if (result != 5) - { - error = fmt::format("could only read {} parts instead of the expected 5", - result); - return false; - } - - if (version != 0) - { - error = fmt::format("unexpected version {}, expected 00", version); - return false; - } - - trace_id = static_cast<__uint128_t>(trace_id_high) << 64 - | trace_id_low; - return true; -} - - -std::string OpenTelemetryTraceContext::composeTraceparentHeader() const -{ - // This span is a parent for its children, so we specify this span_id as a - // parent id. - return fmt::format("00-{:032x}-{:016x}-{:02x}", trace_id, - span_id, - // This cast is needed because fmt is being weird and complaining that - // "mixing character types is not allowed". - static_cast(trace_flags)); -} void ClientInfo::fillOSUserHostNameAndVersionInfo() { diff --git a/src/Interpreters/InterpreterFactory.cpp b/src/Interpreters/InterpreterFactory.cpp index 7505c017953..30992905f5d 100644 --- a/src/Interpreters/InterpreterFactory.cpp +++ b/src/Interpreters/InterpreterFactory.cpp @@ -94,7 +94,7 @@ namespace ErrorCodes std::unique_ptr InterpreterFactory::get(ASTPtr & query, Context & context, QueryProcessingStage::Enum stage) { - OpenTelemetrySpanHolder span(__FUNCTION__); + OpenTelemetrySpanHolder span("InterpreterFactory::get()"); ProfileEvents::increment(ProfileEvents::Query); diff --git a/src/Interpreters/InterpreterSelectQuery.cpp b/src/Interpreters/InterpreterSelectQuery.cpp index 2eee269efe1..949d4e7b0d4 100644 --- a/src/Interpreters/InterpreterSelectQuery.cpp +++ b/src/Interpreters/InterpreterSelectQuery.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -497,6 +498,8 @@ BlockIO InterpreterSelectQuery::execute() Block InterpreterSelectQuery::getSampleBlockImpl() { + OpenTelemetrySpanHolder span(__PRETTY_FUNCTION__); + query_info.query = query_ptr; if (storage && !options.only_analyze) diff --git a/src/Interpreters/OpenTelemetrySpanLog.cpp b/src/Interpreters/OpenTelemetrySpanLog.cpp index 853428cf7b9..6edfb1f8584 100644 --- a/src/Interpreters/OpenTelemetrySpanLog.cpp +++ b/src/Interpreters/OpenTelemetrySpanLog.cpp @@ -28,6 +28,7 @@ Block OpenTelemetrySpanLogElement::createBlock() }; } + void OpenTelemetrySpanLogElement::appendToBlock(MutableColumns & columns) const { size_t i = 0; @@ -52,6 +53,7 @@ void OpenTelemetrySpanLogElement::appendToBlock(MutableColumns & columns) const columns[i++]->insert(string_values); } + OpenTelemetrySpanHolder::OpenTelemetrySpanHolder(const std::string & _operation_name) { trace_id = 0; @@ -78,13 +80,15 @@ OpenTelemetrySpanHolder::OpenTelemetrySpanHolder(const std::string & _operation_ start_time_us = std::chrono::duration_cast( std::chrono::system_clock::now().time_since_epoch()).count(); - // ****** remove this +#ifndef NDEBUG attribute_names.push_back("clickhouse.start.stacktrace"); attribute_values.push_back(StackTrace().toString()); +#endif thread.thread_trace_context.span_id = span_id; } + OpenTelemetrySpanHolder::~OpenTelemetrySpanHolder() { try @@ -116,11 +120,10 @@ OpenTelemetrySpanHolder::~OpenTelemetrySpanHolder() return; } - //******** remove this - attribute_names.push_back("clickhouse.query_id"); - attribute_values.push_back(context->getCurrentQueryId()); +#ifndef NDEBUG attribute_names.push_back("clickhouse.end.stacktrace"); attribute_values.push_back(StackTrace().toString()); +#endif auto log = context->getOpenTelemetrySpanLog(); if (!log) @@ -146,5 +149,74 @@ OpenTelemetrySpanHolder::~OpenTelemetrySpanHolder() } } + +bool OpenTelemetryTraceContext::parseTraceparentHeader(const std::string & traceparent, + std::string & error) +{ + trace_id = 0; + + uint8_t version = -1; + uint64_t trace_id_high = 0; + uint64_t trace_id_low = 0; + + // Version 00, which is the only one we can parse, is fixed width. Use this + // fact for an additional sanity check. + const int expected_length = 2 + 1 + 32 + 1 + 16 + 1 + 2; + if (traceparent.length() != expected_length) + { + error = fmt::format("unexpected length {}, expected {}", + traceparent.length(), expected_length); + return false; + } + + // clang-tidy doesn't like sscanf: + // error: 'sscanf' used to convert a string to an unsigned integer value, + // but function will not report conversion errors; consider using 'strtoul' + // instead [cert-err34-c,-warnings-as-errors] + // There is no other ready solution, and hand-rolling a more complicated + // parser for an HTTP header in C++ sounds like RCE. + // NOLINTNEXTLINE(cert-err34-c) + int result = sscanf(&traceparent[0], + "%2" SCNx8 "-%16" SCNx64 "%16" SCNx64 "-%16" SCNx64 "-%2" SCNx8, + &version, &trace_id_high, &trace_id_low, &span_id, &trace_flags); + + if (result == EOF) + { + error = "EOF"; + return false; + } + + // We read uint128 as two uint64, so 5 parts and not 4. + if (result != 5) + { + error = fmt::format("could only read {} parts instead of the expected 5", + result); + return false; + } + + if (version != 0) + { + error = fmt::format("unexpected version {}, expected 00", version); + return false; + } + + trace_id = static_cast<__uint128_t>(trace_id_high) << 64 + | trace_id_low; + return true; +} + + +std::string OpenTelemetryTraceContext::composeTraceparentHeader() const +{ + // This span is a parent for its children, so we specify this span_id as a + // parent id. + return fmt::format("00-{:032x}-{:016x}-{:02x}", trace_id, + span_id, + // This cast is needed because fmt is being weird and complaining that + // "mixing character types is not allowed". + static_cast(trace_flags)); +} + + } diff --git a/src/Interpreters/ThreadStatusExt.cpp b/src/Interpreters/ThreadStatusExt.cpp index c9742615e03..4e8debe410b 100644 --- a/src/Interpreters/ThreadStatusExt.cpp +++ b/src/Interpreters/ThreadStatusExt.cpp @@ -341,8 +341,11 @@ void ThreadStatus::detachQuery(bool exit_if_already_detached, bool thread_exits) OpenTelemetrySpanLogElement span; span.trace_id = thread_trace_context.trace_id; - // Might be problematic if some span holder isn't finished by the time - // we detach this thread... + // All child span holders should be finished by the time we detach this + // thread, so the current span id should be the thread span id. If not, + // an assertion for a proper parent span in ~OpenTelemetrySpanHolder() + // is going to fail, because we're going to reset it to zero later in + // this function. span.span_id = thread_trace_context.span_id; span.parent_span_id = query_context->query_trace_context.span_id; span.operation_name = getThreadName(); @@ -355,6 +358,11 @@ void ThreadStatus::detachQuery(bool exit_if_already_detached, bool thread_exits) span.attribute_names.push_back("clickhouse.thread_id"); span.attribute_values.push_back(thread_id); +#ifndef NDEBUG + span.attribute_names.push_back("clickhouse.end.stacktrace"); + span.attribute_values.push_back(StackTrace().toString()); +#endif + opentelemetry_span_log->add(span); } diff --git a/src/Interpreters/executeQuery.cpp b/src/Interpreters/executeQuery.cpp index b0ffea59037..610dd9217ff 100644 --- a/src/Interpreters/executeQuery.cpp +++ b/src/Interpreters/executeQuery.cpp @@ -478,7 +478,7 @@ static std::tuple executeQueryImpl( } { - OpenTelemetrySpanHolder span("execute interpreter"); + OpenTelemetrySpanHolder span("IInterpreter::execute()"); res = interpreter->execute(); } diff --git a/src/Processors/Executors/PipelineExecutor.cpp b/src/Processors/Executors/PipelineExecutor.cpp index f940ea148c7..517e07a3ba4 100644 --- a/src/Processors/Executors/PipelineExecutor.cpp +++ b/src/Processors/Executors/PipelineExecutor.cpp @@ -76,7 +76,6 @@ static void executeJob(IProcessor * processor) { try { - OpenTelemetrySpanHolder span(demangle(typeid(*processor).name())); processor->work(); } catch (Exception & exception) @@ -694,6 +693,8 @@ void PipelineExecutor::initializeExecution(size_t num_threads) void PipelineExecutor::executeImpl(size_t num_threads) { + OpenTelemetrySpanHolder span("PipelineExecutor::executeImpl()"); + initializeExecution(num_threads); using ThreadsData = std::vector; diff --git a/src/Server/TCPHandler.cpp b/src/Server/TCPHandler.cpp index 37a0f12bf8d..1f55a3af635 100644 --- a/src/Server/TCPHandler.cpp +++ b/src/Server/TCPHandler.cpp @@ -518,7 +518,7 @@ void TCPHandler::processInsertQuery(const Settings & connection_settings) void TCPHandler::processOrdinaryQuery() { - OpenTelemetrySpanHolder span(__FUNCTION__); + OpenTelemetrySpanHolder span(__PRETTY_FUNCTION__); /// Pull query execution result, if exists, and send it to network. if (state.io.in) From 87a306ed23ba331524f0fdb498c1ddd7c53913f9 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Thu, 19 Nov 2020 18:58:33 +0300 Subject: [PATCH 187/425] Enable OpenTelemetry tracing in functional tests --- tests/config/install.sh | 1 + tests/config/users.d/opentelemetry.xml | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 tests/config/users.d/opentelemetry.xml diff --git a/tests/config/install.sh b/tests/config/install.sh index f6fae181ac8..fe32915ff0d 100755 --- a/tests/config/install.sh +++ b/tests/config/install.sh @@ -32,6 +32,7 @@ ln -sf $SRC_PATH/users.d/log_queries.xml $DEST_SERVER_PATH/users.d/ ln -sf $SRC_PATH/users.d/readonly.xml $DEST_SERVER_PATH/users.d/ ln -sf $SRC_PATH/users.d/access_management.xml $DEST_SERVER_PATH/users.d/ ln -sf $SRC_PATH/users.d/database_atomic_drop_detach_sync.xml $DEST_SERVER_PATH/users.d/ +ln -sf $SRC_PATH/users.d/opentelemetry.xml $DEST_SERVER_PATH/users.d/ ln -sf $SRC_PATH/ints_dictionary.xml $DEST_SERVER_PATH/ ln -sf $SRC_PATH/strings_dictionary.xml $DEST_SERVER_PATH/ diff --git a/tests/config/users.d/opentelemetry.xml b/tests/config/users.d/opentelemetry.xml new file mode 100644 index 00000000000..e003b51e9b0 --- /dev/null +++ b/tests/config/users.d/opentelemetry.xml @@ -0,0 +1,7 @@ + + + + 0.1 + + + From 5cd23e269ddf032a1c133f9cbf0824f21a2e29d2 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Thu, 19 Nov 2020 19:55:56 +0300 Subject: [PATCH 188/425] cleanup --- docs/en/operations/opentelemetry.md | 35 ++++++++++++++++++++--- src/Interpreters/OpenTelemetrySpanLog.cpp | 19 +++++++----- src/Interpreters/OpenTelemetrySpanLog.h | 5 ++-- src/Interpreters/ThreadStatusExt.cpp | 2 -- src/Interpreters/executeQuery.cpp | 2 -- 5 files changed, 45 insertions(+), 18 deletions(-) diff --git a/docs/en/operations/opentelemetry.md b/docs/en/operations/opentelemetry.md index 45533d3733f..2afeabc7956 100644 --- a/docs/en/operations/opentelemetry.md +++ b/docs/en/operations/opentelemetry.md @@ -44,11 +44,10 @@ stages, such as query planning or distributed queries. To be useful, the tracing information has to be exported to a monitoring system that supports OpenTelemetry, such as Jaeger or Prometheus. ClickHouse avoids -a dependency on a particular monitoring system, instead only -providing the tracing data conforming to the standard. A natural way to do so -in an SQL RDBMS is a system table. OpenTelemetry trace span information +a dependency on a particular monitoring system, instead only providing the +tracing data through a system table. OpenTelemetry trace span information [required by the standard](https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/overview.md#span) -is stored in the system table called `system.opentelemetry_span_log`. +is stored in the `system.opentelemetry_span_log` table. The table must be enabled in the server configuration, see the `opentelemetry_span_log` element in the default config file `config.xml`. It is enabled by default. @@ -67,3 +66,31 @@ The table has the following columns: The tags or attributes are saved as two parallel arrays, containing the keys and values. Use `ARRAY JOIN` to work with them. + +## Integration with monitoring systems + +At the moment, there is no ready tool that can export the tracing data from +ClickHouse to a monitoring system. + +For testing, it is possible to setup the export using a materialized view with the URL engine over the `system.opentelemetry_span_log` table, which would push the arriving log data to an HTTP endpoint of a trace collector. For example, to push the minimal span data to a Zipkin instance running at `http://localhost:9411`, in Zipkin v2 JSON format: + +```sql +CREATE MATERIALIZED VIEW default.zipkin_spans +ENGINE = URL('http://127.0.0.1:9411/api/v2/spans', 'JSONEachRow') +SETTINGS output_format_json_named_tuples_as_objects = 1, + output_format_json_array_of_rows = 1 AS +SELECT + lower(hex(reinterpretAsFixedString(trace_id))) AS traceId, + lower(hex(parent_span_id)) AS parentId, + lower(hex(span_id)) AS id, + operation_name AS name, + start_time_us AS timestamp, + finish_time_us - start_time_us AS duration, + cast(tuple('clickhouse'), 'Tuple(serviceName text)') AS localEndpoint, + cast(tuple( + attribute.values[indexOf(attribute.names, 'db.statement')]), + 'Tuple("db.statement" text)') AS tags +FROM system.opentelemetry_span_log +``` + +In case of any errors, the part of the log data for which the error has occurred will be silently lost. Check the server log for error messages if the data does not arrive. diff --git a/src/Interpreters/OpenTelemetrySpanLog.cpp b/src/Interpreters/OpenTelemetrySpanLog.cpp index 6edfb1f8584..cf82f1d5209 100644 --- a/src/Interpreters/OpenTelemetrySpanLog.cpp +++ b/src/Interpreters/OpenTelemetrySpanLog.cpp @@ -18,8 +18,18 @@ Block OpenTelemetrySpanLogElement::createBlock() {std::make_shared(), "span_id"}, {std::make_shared(), "parent_span_id"}, {std::make_shared(), "operation_name"}, - {std::make_shared(6), "start_time_us"}, - {std::make_shared(6), "finish_time_us"}, + // DateTime64 is really unwieldy -- there is no "normal" way to convert + // it to an UInt64 count of microseconds, except: + // 1) reinterpretAsUInt64(reinterpretAsFixedString(date)), which just + // doesn't look sane; + // 2) things like toUInt64(toDecimal64(date, 6) * 1000000) that are also + // excessively verbose -- why do I have to write scale '6' again, and + // write out 6 zeros? -- and also don't work because of overflow. + // Also subtraction of two DateTime64 points doesn't work, so you can't + // get duration. + // It is much less hassle to just use UInt64 of microseconds. + {std::make_shared(), "start_time_us"}, + {std::make_shared(), "finish_time_us"}, {std::make_shared(), "finish_date"}, {std::make_shared(std::make_shared()), "attribute.names"}, @@ -135,11 +145,6 @@ OpenTelemetrySpanHolder::~OpenTelemetrySpanHolder() finish_time_us = std::chrono::duration_cast( std::chrono::system_clock::now().time_since_epoch()).count(); - // We should use a high resolution monotonic clock for calculating - // duration, but this way will do for now. - duration_ns = (finish_time_us - start_time_us) * 1000; - - log->add(OpenTelemetrySpanLogElement( static_cast(*this))); } diff --git a/src/Interpreters/OpenTelemetrySpanLog.h b/src/Interpreters/OpenTelemetrySpanLog.h index a1c198559b8..f74e1f0c9fd 100644 --- a/src/Interpreters/OpenTelemetrySpanLog.h +++ b/src/Interpreters/OpenTelemetrySpanLog.h @@ -11,9 +11,8 @@ struct OpenTelemetrySpan UInt64 span_id; UInt64 parent_span_id; std::string operation_name; - Decimal64 start_time_us; - Decimal64 finish_time_us; - UInt64 duration_ns; + UInt64 start_time_us; + UInt64 finish_time_us; Array attribute_names; Array attribute_values; // I don't understand how Links work, namely, which direction should they diff --git a/src/Interpreters/ThreadStatusExt.cpp b/src/Interpreters/ThreadStatusExt.cpp index 4e8debe410b..d698e8d103b 100644 --- a/src/Interpreters/ThreadStatusExt.cpp +++ b/src/Interpreters/ThreadStatusExt.cpp @@ -353,8 +353,6 @@ void ThreadStatus::detachQuery(bool exit_if_already_detached, bool thread_exits) span.finish_time_us = std::chrono::duration_cast( std::chrono::system_clock::now().time_since_epoch()).count(); - // We could use a more precise and monotonic counter for this. - span.duration_ns = (span.finish_time_us - span.start_time_us) * 1000; span.attribute_names.push_back("clickhouse.thread_id"); span.attribute_values.push_back(thread_id); diff --git a/src/Interpreters/executeQuery.cpp b/src/Interpreters/executeQuery.cpp index 610dd9217ff..7aa5f90db9f 100644 --- a/src/Interpreters/executeQuery.cpp +++ b/src/Interpreters/executeQuery.cpp @@ -255,7 +255,6 @@ static void onExceptionBeforeStart(const String & query_for_logging, Context & c span.operation_name = "query"; span.start_time_us = current_time_us; span.finish_time_us = current_time_us; - span.duration_ns = 0; /// Keep values synchronized to type enum in QueryLogElement::createBlock. span.attribute_names.push_back("clickhouse.query_status"); @@ -697,7 +696,6 @@ static std::tuple executeQueryImpl( span.operation_name = "query"; span.start_time_us = elem.query_start_time_microseconds; span.finish_time_us = time_in_microseconds(finish_time); - span.duration_ns = elapsed_seconds * 1000000000; /// Keep values synchronized to type enum in QueryLogElement::createBlock. span.attribute_names.push_back("clickhouse.query_status"); From 0d43e4c4483b060f38f0e82d8c3ceef990555f1a Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Thu, 19 Nov 2020 20:16:45 +0300 Subject: [PATCH 189/425] fixup --- src/Storages/ColumnsDescription.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Storages/ColumnsDescription.cpp b/src/Storages/ColumnsDescription.cpp index dbe0b0247f6..b43aab71af2 100644 --- a/src/Storages/ColumnsDescription.cpp +++ b/src/Storages/ColumnsDescription.cpp @@ -63,34 +63,34 @@ void ColumnDescription::writeText(WriteBuffer & buf) const { writeBackQuotedString(name, buf); writeChar(' ', buf); - DB::writeText(type->getName(), buf); + writeEscapedString(type->getName(), buf); if (default_desc.expression) { writeChar('\t', buf); DB::writeText(DB::toString(default_desc.kind), buf); writeChar('\t', buf); - DB::writeText(queryToString(default_desc.expression), buf); + writeEscapedString(queryToString(default_desc.expression), buf); } if (!comment.empty()) { writeChar('\t', buf); DB::writeText("COMMENT ", buf); - DB::writeText(queryToString(ASTLiteral(Field(comment))), buf); + writeEscapedString(queryToString(ASTLiteral(Field(comment))), buf); } if (codec) { writeChar('\t', buf); - DB::writeText(queryToString(codec), buf); + writeEscapedString(queryToString(codec), buf); } if (ttl) { writeChar('\t', buf); DB::writeText("TTL ", buf); - DB::writeText(queryToString(ttl), buf); + writeEscapedString(queryToString(ttl), buf); } writeChar('\n', buf); From 52974170503b2d2109f3f04509ad2dceb1d668b0 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Sat, 14 Nov 2020 01:56:25 +0300 Subject: [PATCH 190/425] Fix Merge(Distributed()) with JOIN --- src/Storages/StorageMerge.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/Storages/StorageMerge.cpp b/src/Storages/StorageMerge.cpp index 3e6f99878a6..d569007637d 100644 --- a/src/Storages/StorageMerge.cpp +++ b/src/Storages/StorageMerge.cpp @@ -134,6 +134,18 @@ bool StorageMerge::mayBenefitFromIndexForIn(const ASTPtr & left_in_operand, cons QueryProcessingStage::Enum StorageMerge::getQueryProcessingStage(const Context & context, QueryProcessingStage::Enum to_stage, SelectQueryInfo & query_info) const { + ASTPtr modified_query = query_info.query->clone(); + auto & modified_select = modified_query->as(); + /// In case of JOIN the first stage (which includes JOIN) + /// should be done on the initiator always. + /// + /// Since in case of JOIN query on shards will receive query w/o JOIN (and their columns). + /// (see modifySelect()/removeJoin()) + /// + /// And for this we need to return FetchColumns. + if (removeJoin(modified_select)) + return QueryProcessingStage::FetchColumns; + auto stage_in_source_tables = QueryProcessingStage::FetchColumns; DatabaseTablesIteratorPtr iterator = getDatabaseIterator(context); From a7d4f4be651d3725a2103ad87bbc6ad200c16e24 Mon Sep 17 00:00:00 2001 From: Anton Ivashkin Date: Fri, 20 Nov 2020 11:18:44 +0300 Subject: [PATCH 191/425] Add 's3_max_redirects' test --- src/IO/S3/PocoHTTPClient.cpp | 3 +- .../configs/s3_max_redirects.xml | 7 +++++ tests/integration/test_storage_s3/test.py | 29 +++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 tests/integration/test_storage_s3/configs/s3_max_redirects.xml diff --git a/src/IO/S3/PocoHTTPClient.cpp b/src/IO/S3/PocoHTTPClient.cpp index d2a70b5c5c8..6552734295f 100644 --- a/src/IO/S3/PocoHTTPClient.cpp +++ b/src/IO/S3/PocoHTTPClient.cpp @@ -162,9 +162,10 @@ void PocoHTTPClient::makeRequestInternal( ProfileEvents::increment(select_metric(S3MetricType::Count)); unsigned int max_redirect_attempts = global_context.getSettingsRef().s3_max_redirects; + try { - for (unsigned int attempt = 0; attempt < max_redirect_attempts; ++attempt) + for (unsigned int attempt = 0; attempt <= max_redirect_attempts; ++attempt) { Poco::URI poco_uri(uri); diff --git a/tests/integration/test_storage_s3/configs/s3_max_redirects.xml b/tests/integration/test_storage_s3/configs/s3_max_redirects.xml new file mode 100644 index 00000000000..7c5988a6249 --- /dev/null +++ b/tests/integration/test_storage_s3/configs/s3_max_redirects.xml @@ -0,0 +1,7 @@ + + + + 0 + + + diff --git a/tests/integration/test_storage_s3/test.py b/tests/integration/test_storage_s3/test.py index 4a2cd77e233..927817714aa 100644 --- a/tests/integration/test_storage_s3/test.py +++ b/tests/integration/test_storage_s3/test.py @@ -85,6 +85,7 @@ def cluster(): cluster.add_instance("restricted_dummy", main_configs=["configs/config_for_test_remote_host_filter.xml"], with_minio=True) cluster.add_instance("dummy", with_minio=True, main_configs=["configs/defaultS3.xml"]) + cluster.add_instance("s3_max_redirects", with_minio=True, main_configs=["configs/defaultS3.xml"], user_configs=["configs/s3_max_redirects.xml"]) logging.info("Starting cluster...") cluster.start() logging.info("Cluster started") @@ -224,6 +225,34 @@ def test_put_get_with_redirect(cluster): ] +# Test put and get with S3 server redirect. +def test_put_with_zero_redirect(cluster): + # type: (ClickHouseCluster) -> None + + bucket = cluster.minio_bucket + instance = cluster.instances["s3_max_redirects"] # type: ClickHouseInstance + table_format = "column1 UInt32, column2 UInt32, column3 UInt32" + values = "(1, 1, 1), (1, 1, 1), (11, 11, 11)" + filename = "test.csv" + + # Should work without redirect + query = "insert into table function s3('http://{}:{}/{}/{}', 'CSV', '{}') values {}".format( + cluster.minio_host, cluster.minio_port, bucket, filename, table_format, values) + run_query(instance, query) + + # Should not work with redirect + query = "insert into table function s3('http://{}:{}/{}/{}', 'CSV', '{}') values {}".format( + cluster.minio_redirect_host, cluster.minio_redirect_port, bucket, filename, table_format, values) + exception_raised = False + try: + run_query(instance, query) + except Exception as e: + assert str(e).find("Too many redirects while trying to access") != -1 + exception_raised = True + finally: + assert exception_raised + + def test_put_get_with_globs(cluster): # type: (ClickHouseCluster) -> None From 9cbb251be628aec800bd39b1dca8c93fc9b1056e Mon Sep 17 00:00:00 2001 From: Pavel Kovalenko Date: Fri, 20 Nov 2020 14:08:43 +0300 Subject: [PATCH 192/425] Store read-only flag into metadata file for DiskS3. --- src/Disks/S3/DiskS3.cpp | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/src/Disks/S3/DiskS3.cpp b/src/Disks/S3/DiskS3.cpp index 2705040841c..3c75a8980ac 100644 --- a/src/Disks/S3/DiskS3.cpp +++ b/src/Disks/S3/DiskS3.cpp @@ -34,6 +34,7 @@ namespace ErrorCodes extern const int UNKNOWN_FORMAT; extern const int INCORRECT_DISK_INDEX; extern const int NOT_IMPLEMENTED; + extern const int PATH_ACCESS_DENIED; } @@ -93,6 +94,7 @@ namespace /// Metadata file version. static constexpr UInt32 VERSION_ABSOLUTE_PATHS = 1; static constexpr UInt32 VERSION_RELATIVE_PATHS = 2; + static constexpr UInt32 VERSION_READ_ONLY_FLAG = 3; using PathAndSize = std::pair; @@ -109,6 +111,8 @@ namespace std::vector s3_objects; /// Number of references (hardlinks) to this metadata file. UInt32 ref_count; + /// Flag indicates that file is read only. + bool read_only; /// Load metadata by path or create empty if `create` flag is set. explicit Metadata(const String & s3_root_path_, const String & disk_path_, const String & metadata_file_path_, bool create = false) @@ -122,10 +126,10 @@ namespace UInt32 version; readIntText(version, buf); - if (version != VERSION_RELATIVE_PATHS && version != VERSION_ABSOLUTE_PATHS) + if (version < VERSION_ABSOLUTE_PATHS || version > VERSION_READ_ONLY_FLAG) throw Exception( "Unknown metadata file version. Path: " + disk_path + metadata_file_path - + " Version: " + std::to_string(version) + ", Maximum expected version: " + std::to_string(VERSION_RELATIVE_PATHS), + + " Version: " + std::to_string(version) + ", Maximum expected version: " + std::to_string(VERSION_READ_ONLY_FLAG), ErrorCodes::UNKNOWN_FORMAT); assertChar('\n', buf); @@ -158,6 +162,12 @@ namespace readIntText(ref_count, buf); assertChar('\n', buf); + + if (version >= VERSION_READ_ONLY_FLAG) + { + readBoolText(read_only, buf); + assertChar('\n', buf); + } } void addObject(const String & path, size_t size) @@ -189,6 +199,9 @@ namespace writeIntText(ref_count, buf); writeChar('\n', buf); + writeBoolText(read_only, buf); + writeChar('\n', buf); + buf.finalize(); if (sync) buf.sync(); @@ -632,6 +645,12 @@ std::unique_ptr DiskS3::readFile(const String & path, si std::unique_ptr DiskS3::writeFile(const String & path, size_t buf_size, WriteMode mode, size_t estimated_size, size_t) { bool exist = exists(path); + if (exist) + { + Metadata metadata(s3_root_path, metadata_path, path); + if (metadata.read_only) + throw Exception("File is read-only: " + path, ErrorCodes::PATH_ACCESS_DENIED); + } /// Path to store new S3 object. auto s3_path = getRandomName(); bool is_multipart = estimated_size >= min_multi_part_upload_size; @@ -797,7 +816,11 @@ void DiskS3::createFile(const String & path) void DiskS3::setReadOnly(const String & path) { - Poco::File(metadata_path + path).setReadOnly(true); + /// We should store read only flag inside metadata file (instead of using FS flag), + /// because we modify metadata file when create hard-links from it. + Metadata metadata(s3_root_path, metadata_path, path); + metadata.read_only = true; + metadata.save(); } int DiskS3::open(const String & /*path*/, mode_t /*mode*/) const From ee4267c1babc8e37a15c1879f9e115920aa689f6 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Sat, 21 Nov 2020 13:31:26 +0300 Subject: [PATCH 193/425] Rename 01247_optimize_distributed_group_by_sharding_key to distingiush it Otherwise flaky tests will run then both, not a problem, but this is just to trigger flaky check, since there is some tricky issue [1]: 2020-11-20 00:35:51 01247_optimize_distributed_group_by_sharding_key: [ FAIL ] 0.67 sec. - return code 101 2020-11-20 00:35:51 Received exception from server (version 20.12.1): 2020-11-20 00:35:51 Code: 101. DB::Exception: Received from localhost:9000. DB::Exception: Received from 127.0.0.2:9000. DB::Exception: Unexpected packet Data received from client. [1]: https://clickhouse-test-reports.s3.yandex.net/16996/8d71564056925df1415880f382aaa169cbdf37b0/functional_stateless_tests_flaky_check_(address)/test_run.txt.out.log --- ...=> 01244_optimize_distributed_group_by_sharding_key.reference} | 0 ...y.sql => 01244_optimize_distributed_group_by_sharding_key.sql} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename tests/queries/0_stateless/{01247_optimize_distributed_group_by_sharding_key.reference => 01244_optimize_distributed_group_by_sharding_key.reference} (100%) rename tests/queries/0_stateless/{01247_optimize_distributed_group_by_sharding_key.sql => 01244_optimize_distributed_group_by_sharding_key.sql} (100%) diff --git a/tests/queries/0_stateless/01247_optimize_distributed_group_by_sharding_key.reference b/tests/queries/0_stateless/01244_optimize_distributed_group_by_sharding_key.reference similarity index 100% rename from tests/queries/0_stateless/01247_optimize_distributed_group_by_sharding_key.reference rename to tests/queries/0_stateless/01244_optimize_distributed_group_by_sharding_key.reference diff --git a/tests/queries/0_stateless/01247_optimize_distributed_group_by_sharding_key.sql b/tests/queries/0_stateless/01244_optimize_distributed_group_by_sharding_key.sql similarity index 100% rename from tests/queries/0_stateless/01247_optimize_distributed_group_by_sharding_key.sql rename to tests/queries/0_stateless/01244_optimize_distributed_group_by_sharding_key.sql From 97c34a0fc98d9a5ff22a75b0a175d36d8b418e5d Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Sat, 21 Nov 2020 13:35:03 +0300 Subject: [PATCH 194/425] Pass logger for the RemoteQueryExecutor So now you will get additional message: 2020.11.21 13:37:15.429767 [ 380840 ] {47e1540d-f4cd-4f2f-9383-f1216e8328dc} StorageDistributed (dist_01247): (127.0.0.2:9000) Cancelling query --- src/Interpreters/ClusterProxy/IStreamFactory.h | 3 ++- src/Interpreters/ClusterProxy/SelectStreamFactory.cpp | 5 ++++- src/Interpreters/ClusterProxy/SelectStreamFactory.h | 3 ++- src/Interpreters/ClusterProxy/executeQuery.cpp | 7 ++++++- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Interpreters/ClusterProxy/IStreamFactory.h b/src/Interpreters/ClusterProxy/IStreamFactory.h index 80be585d15e..c0b887e0489 100644 --- a/src/Interpreters/ClusterProxy/IStreamFactory.h +++ b/src/Interpreters/ClusterProxy/IStreamFactory.h @@ -36,7 +36,8 @@ public: const SelectQueryInfo & query_info, std::vector & res, Pipes & remote_pipes, - Pipes & delayed_pipes) = 0; + Pipes & delayed_pipes, + Poco::Logger * log) = 0; }; } diff --git a/src/Interpreters/ClusterProxy/SelectStreamFactory.cpp b/src/Interpreters/ClusterProxy/SelectStreamFactory.cpp index 3017550aaf1..c1cd6c9dfb5 100644 --- a/src/Interpreters/ClusterProxy/SelectStreamFactory.cpp +++ b/src/Interpreters/ClusterProxy/SelectStreamFactory.cpp @@ -112,7 +112,8 @@ void SelectStreamFactory::createForShard( const SelectQueryInfo &, std::vector & plans, Pipes & remote_pipes, - Pipes & delayed_pipes) + Pipes & delayed_pipes, + Poco::Logger * log) { bool add_agg_info = processed_stage == QueryProcessingStage::WithMergeableState; bool add_totals = false; @@ -138,6 +139,8 @@ void SelectStreamFactory::createForShard( { auto remote_query_executor = std::make_shared( shard_info.pool, modified_query, header, context, nullptr, throttler, scalars, external_tables, processed_stage); + remote_query_executor->setLogger(log); + remote_query_executor->setPoolMode(PoolMode::GET_MANY); if (!table_func_ptr) remote_query_executor->setMainTable(main_table); diff --git a/src/Interpreters/ClusterProxy/SelectStreamFactory.h b/src/Interpreters/ClusterProxy/SelectStreamFactory.h index 9b57b92ed50..b51ac109a11 100644 --- a/src/Interpreters/ClusterProxy/SelectStreamFactory.h +++ b/src/Interpreters/ClusterProxy/SelectStreamFactory.h @@ -41,7 +41,8 @@ public: const SelectQueryInfo & query_info, std::vector & plans, Pipes & remote_pipes, - Pipes & delayed_pipes) override; + Pipes & delayed_pipes, + Poco::Logger * log) override; private: const Block header; diff --git a/src/Interpreters/ClusterProxy/executeQuery.cpp b/src/Interpreters/ClusterProxy/executeQuery.cpp index 6b4f28694a9..d1fc9621de3 100644 --- a/src/Interpreters/ClusterProxy/executeQuery.cpp +++ b/src/Interpreters/ClusterProxy/executeQuery.cpp @@ -119,7 +119,12 @@ void executeQuery( throttler = user_level_throttler; for (const auto & shard_info : query_info.cluster->getShardsInfo()) - stream_factory.createForShard(shard_info, query, query_ast, new_context, throttler, query_info, plans, remote_pipes, delayed_pipes); + { + stream_factory.createForShard(shard_info, query, query_ast, + new_context, throttler, query_info, plans, + remote_pipes, delayed_pipes, + log); + } if (!remote_pipes.empty()) { From 77ffd25cc050cbe77d481dadc91197238ae0f418 Mon Sep 17 00:00:00 2001 From: vdimir Date: Sat, 21 Nov 2020 17:56:58 +0300 Subject: [PATCH 195/425] Fixes for IP dictionary More meaningful parse errors Code style fixes, more comments Fix bytes_allocated calculation --- src/Common/IPv6ToBinary.cpp | 15 ++-- src/Common/IPv6ToBinary.h | 4 ++ src/Dictionaries/TrieDictionary.cpp | 102 ++++++++++++++++------------ src/Dictionaries/TrieDictionary.h | 18 +++-- 4 files changed, 84 insertions(+), 55 deletions(-) diff --git a/src/Common/IPv6ToBinary.cpp b/src/Common/IPv6ToBinary.cpp index e3d14c796ce..1fd2e3312f6 100644 --- a/src/Common/IPv6ToBinary.cpp +++ b/src/Common/IPv6ToBinary.cpp @@ -8,25 +8,28 @@ namespace DB { -std::array IPv6ToBinary(const Poco::Net::IPAddress & address) +void IPv6ToRawBinary(const Poco::Net::IPAddress & address, char * res) { - std::array res; - if (Poco::Net::IPAddress::IPv6 == address.family()) { - memcpy(res.data(), address.addr(), 16); + memcpy(res, address.addr(), 16); } else if (Poco::Net::IPAddress::IPv4 == address.family()) { /// Convert to IPv6-mapped address. - memset(res.data(), 0, 10); + memset(res, 0, 10); res[10] = '\xFF'; res[11] = '\xFF'; memcpy(&res[12], address.addr(), 4); } else - memset(res.data(), 0, 16); + memset(res, 0, 16); +} +std::array IPv6ToBinary(const Poco::Net::IPAddress & address) +{ + std::array res; + IPv6ToRawBinary(address, res.data()); return res; } diff --git a/src/Common/IPv6ToBinary.h b/src/Common/IPv6ToBinary.h index a3e82ee08f5..2d0d4a20ecb 100644 --- a/src/Common/IPv6ToBinary.h +++ b/src/Common/IPv6ToBinary.h @@ -7,6 +7,10 @@ namespace Poco { namespace Net { class IPAddress; }} namespace DB { +/// Convert IP address to raw binary with IPv6 data (big endian). If it's an IPv4, map it to IPv6. +/// Saves result into the first 16 bytes of `res`. +void IPv6ToRawBinary(const Poco::Net::IPAddress & address, char * res); + /// Convert IP address to 16-byte array with IPv6 data (big endian). If it's an IPv4, map it to IPv6. std::array IPv6ToBinary(const Poco::Net::IPAddress & address); diff --git a/src/Dictionaries/TrieDictionary.cpp b/src/Dictionaries/TrieDictionary.cpp index 9e01ca1347b..bf67d793d4f 100644 --- a/src/Dictionaries/TrieDictionary.cpp +++ b/src/Dictionaries/TrieDictionary.cpp @@ -1,5 +1,6 @@ #include "TrieDictionary.h" #include +#include #include #include #include @@ -75,6 +76,37 @@ namespace }; } +static std::pair parseIPFromString(const std::string_view addr_str) +{ + try + { + size_t pos = addr_str.find('/'); + if (pos != std::string::npos) + { + Poco::Net::IPAddress addr{std::string(addr_str.substr(0, pos))}; + + UInt8 prefix; + auto addr_str_end = addr_str.data() + addr_str.size(); + auto [p, ec] = std::from_chars(addr_str.data() + pos + 1, addr_str_end, prefix); + if (p != addr_str_end) + throw DB::Exception("extra characters at the end", ErrorCodes::LOGICAL_ERROR); + if (ec != std::errc()) + throw DB::Exception("mask is not a valid number", ErrorCodes::LOGICAL_ERROR); + + addr = addr & Poco::Net::IPAddress(prefix, addr.family()); + return {addr, prefix}; + } + + Poco::Net::IPAddress addr{std::string(addr_str)}; + return {addr, addr.length() * 8}; + } + catch (Poco::Exception & ex) + { + throw DB::Exception("can't parse address \"" + std::string(addr_str) + "\": " + ex.what(), + ErrorCodes::LOGICAL_ERROR); + } +} + static void validateKeyTypes(const DataTypes & key_types) { if (key_types.empty() || key_types.size() > 2) @@ -93,19 +125,16 @@ static void validateKeyTypes(const DataTypes & key_types) } template -size_t sort_and_unique(std::vector & vec, Comp comp) +size_t sortAndUnique(std::vector & vec, Comp comp) { std::sort(vec.begin(), vec.end(), [&](const auto & a, const auto & b) { return comp(a, b) < 0; }); auto new_end = std::unique(vec.begin(), vec.end(), [&](const auto & a, const auto & b) { return comp(a, b) == 0; }); - if (new_end != vec.end()) - { - vec.erase(new_end, vec.end()); - return std::distance(new_end, vec.end()); - } - return 0; + size_t deleted_count = std::distance(new_end, vec.end()); + vec.erase(new_end, vec.end()); + return deleted_count; } template @@ -140,12 +169,12 @@ inline static void mapIPv4ToIPv6(UInt32 addr, uint8_t * buf) buf[10] = '\xFF'; buf[11] = '\xFF'; addr = Poco::ByteOrder::toNetwork(addr); - memcpy(&buf[12], reinterpret_cast(&addr), 4); + memcpy(&buf[12], &addr, 4); } static bool matchIPv4Subnet(UInt32 target, UInt32 addr, UInt8 prefix) { - UInt32 mask = (prefix >= 32) ? 0xffffffff : ~(0xffffffff >> prefix); + UInt32 mask = (prefix >= 32) ? 0xffffffffu : ~(0xffffffffu >> prefix); return (target & mask) == addr; } @@ -159,7 +188,7 @@ static bool matchIPv6Subnet(const uint8_t * target, const uint8_t * addr, UInt8 _mm_loadu_si128(reinterpret_cast(addr)))); mask = ~mask; - if (unlikely(mask)) + if (mask) { auto offset = __builtin_ctz(mask); @@ -484,27 +513,11 @@ void TrieDictionary::loadData() setAttributeValue(attribute, attribute_column[row]); } + const auto [addr, prefix] = parseIPFromString(std::string_view(key_column->getDataAt(row))); + has_ipv6 = has_ipv6 || (addr.family() == Poco::Net::IPAddress::IPv6); + size_t row_number = ip_records.size(); - - std::string addr_str(key_column->getDataAt(row).toString()); - size_t pos = addr_str.find('/'); - if (pos != std::string::npos) - { - IPAddress addr(addr_str.substr(0, pos)); - has_ipv6 = has_ipv6 || (addr.family() == Poco::Net::IPAddress::IPv6); - - UInt8 prefix = std::stoi(addr_str.substr(pos + 1), nullptr, 10); - - addr = addr & IPAddress(prefix, addr.family()); - ip_records.emplace_back(addr, prefix, row_number); - } - else - { - IPAddress addr(addr_str); - has_ipv6 = has_ipv6 || (addr.family() == Poco::Net::IPAddress::IPv6); - UInt8 prefix = addr.length() * 8; - ip_records.emplace_back(addr, prefix, row_number); - } + ip_records.emplace_back(addr, prefix, row_number); } } @@ -512,7 +525,7 @@ void TrieDictionary::loadData() if (has_ipv6) { - auto deleted_count = sort_and_unique(ip_records, + auto deleted_count = sortAndUnique(ip_records, [](const auto & record_a, const auto & record_b) { uint8_t a_buf[IPV6_BINARY_LENGTH]; @@ -532,20 +545,16 @@ void TrieDictionary::loadData() for (const auto & record : ip_records) { - auto ip_array = IPv6ToBinary(record.addr); - size_t i = row_idx.size(); - memcpySmallAllowReadWriteOverflow15(&ipv6_col[i * IPV6_BINARY_LENGTH], - reinterpret_cast(ip_array.data()), - IPV6_BINARY_LENGTH); + IPv6ToRawBinary(record.addr, reinterpret_cast(&ipv6_col[i * IPV6_BINARY_LENGTH])); mask_column.push_back(record.prefixIPv6()); row_idx.push_back(record.row); } } else { - auto deleted_count = sort_and_unique(ip_records, + auto deleted_count = sortAndUnique(ip_records, [](const auto & record_a, const auto & record_b) { UInt32 a = IPv4AsUInt32(record_a.addr.addr()); @@ -633,6 +642,7 @@ void TrieDictionary::calculateBytesAllocated() bytes_allocated += ipv6_col->size() * sizeof((*ipv6_col)[0]); } bytes_allocated += mask_column.size() * sizeof(mask_column[0]); + bytes_allocated += parent_subnet.size() * sizeof(parent_subnet[0]); bytes_allocated += row_idx.size() * sizeof(row_idx[0]); bytes_allocated += attributes.size() * sizeof(attributes.front()); @@ -786,7 +796,7 @@ void TrieDictionary::getItemsByTwoKeyColumnsImpl( const auto & key_mask_column = assert_cast &>(*key_columns.back()); - auto comp_v4 = [&](size_t elem, IPv4Subnet target) + auto comp_v4 = [&](size_t elem, const IPv4Subnet & target) { UInt32 addr = (*ipv4_col)[elem]; if (addr == target.addr) @@ -815,13 +825,13 @@ void TrieDictionary::getItemsByTwoKeyColumnsImpl( } const auto * key_ip_column_ptr = typeid_cast(&*key_columns.front()); - if (key_ip_column_ptr == nullptr) - throw Exception{"Expected a UInt32 IP column", ErrorCodes::TYPE_MISMATCH}; + if (key_ip_column_ptr == nullptr || key_ip_column_ptr->getN() != IPV6_BINARY_LENGTH) + throw Exception{"Expected a FixedString(16) IP column", ErrorCodes::TYPE_MISMATCH}; const auto & key_mask_column = assert_cast &>(*key_columns.back()); const auto * ipv6_col = std::get_if(&ip_column); - auto comp_v6 = [&](size_t i, IPv6Subnet target) + auto comp_v6 = [&](size_t i, const IPv6Subnet & target) { auto cmpres = memcmp16(getIPv6FromOffset(*ipv6_col, i), target.addr); if (cmpres == 0) @@ -874,7 +884,10 @@ void TrieDictionary::getItemsImpl( // addrv4 has native endianness auto addrv4 = UInt32(first_column->get64(i)); auto found = tryLookupIPv4(addrv4, addrv6_buf); - set_value(i, (found != ipNotFound()) ? static_cast(vec[*found]) : get_default(i)); + if (found != ipNotFound()) + set_value(i, static_cast(vec[*found])); + else + set_value(i, get_default(i)); } } else @@ -886,7 +899,10 @@ void TrieDictionary::getItemsImpl( throw Exception("Expected key to be FixedString(16)", ErrorCodes::LOGICAL_ERROR); auto found = tryLookupIPv6(reinterpret_cast(addr.data)); - set_value(i, (found != ipNotFound()) ? static_cast(vec[*found]) : get_default(i)); + if (found != ipNotFound()) + set_value(i, static_cast(vec[*found])); + else + set_value(i, get_default(i)); } } diff --git a/src/Dictionaries/TrieDictionary.h b/src/Dictionaries/TrieDictionary.h index c6b28fdfe8d..c563c3ecd6c 100644 --- a/src/Dictionaries/TrieDictionary.h +++ b/src/Dictionaries/TrieDictionary.h @@ -159,10 +159,6 @@ private: using IPMaskContainer = PODArray; using RowIdxConstIter = ContainerType::const_iterator; - template struct IPContainerToValueType {}; - template <> struct IPContainerToValueType { using type = UInt32; }; - template <> struct IPContainerToValueType { using type = const uint8_t *; }; - struct Attribute final { AttributeUnderlyingType type; @@ -240,8 +236,7 @@ private: RowIdxConstIter tryLookupIPv4(UInt32 addr, uint8_t * buf) const; RowIdxConstIter tryLookupIPv6(const uint8_t * addr) const; - template ::value> + template RowIdxConstIter lookupIP(IPValueType target) const; static const uint8_t * getIPv6FromOffset(const IPv6Container & ipv6_col, size_t i); @@ -252,9 +247,20 @@ private: const bool require_nonempty; const std::string key_description{dict_struct.getKeyDescription()}; + /// Contains sorted IP subnetworks. If some addresses equals, subnet with lower mask is placed first. std::variant ip_column; + + /// Prefix lengths corresponding to ip_column. IPMaskContainer mask_column; + + /** Contains links to parent subnetworks in ip_column. + * Array holds such ip_column's (and mask_column's) indices that + * - if parent_subnet[i] < i, then ip_column[i] is subnetwork of ip_column[parent_subnet[i]], + * - if parent_subnet[i] == i, then ip_column[i] doesn't belong to any other subnet. + */ ContainerType parent_subnet; + + /// Contains corresponding indices in attributes array. ContainerType row_idx; std::map attribute_index_by_name; From 7adbc5a0c618e330b41f70e32ff57c825c8361af Mon Sep 17 00:00:00 2001 From: vdimir Date: Sat, 21 Nov 2020 20:39:16 +0300 Subject: [PATCH 196/425] Fix ip dict build --- src/Dictionaries/TrieDictionary.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Dictionaries/TrieDictionary.cpp b/src/Dictionaries/TrieDictionary.cpp index bf67d793d4f..5a93e452123 100644 --- a/src/Dictionaries/TrieDictionary.cpp +++ b/src/Dictionaries/TrieDictionary.cpp @@ -85,8 +85,8 @@ static std::pair parseIPFromString(const std::strin { Poco::Net::IPAddress addr{std::string(addr_str.substr(0, pos))}; - UInt8 prefix; - auto addr_str_end = addr_str.data() + addr_str.size(); + uint8_t prefix = 0; + const auto * addr_str_end = addr_str.data() + addr_str.size(); auto [p, ec] = std::from_chars(addr_str.data() + pos + 1, addr_str_end, prefix); if (p != addr_str_end) throw DB::Exception("extra characters at the end", ErrorCodes::LOGICAL_ERROR); From e2fac1968673d4900d82503d0046a1d1bf5f7f8d Mon Sep 17 00:00:00 2001 From: vdimir Date: Sat, 21 Nov 2020 18:24:50 +0300 Subject: [PATCH 197/425] Remove libbtrie --- CMakeLists.txt | 3 - cmake/Modules/Findbtrie.cmake | 44 --- contrib/libbtrie/CMakeLists.txt | 6 - contrib/libbtrie/LICENSE | 23 -- contrib/libbtrie/include/btrie.h | 160 ---------- contrib/libbtrie/src/btrie.c | 460 ----------------------------- contrib/libbtrie/test/test_btrie.c | 103 ------- docs/en/development/contrib.md | 1 - docs/es/development/contrib.md | 1 - docs/fa/development/contrib.md | 1 - docs/fr/development/contrib.md | 1 - docs/ja/development/contrib.md | 1 - docs/ru/development/contrib.md | 1 - docs/tr/development/contrib.md | 1 - docs/zh/development/contrib.md | 1 - src/CMakeLists.txt | 1 - src/Dictionaries/CMakeLists.txt | 1 - utils/check-style/check-include | 1 - 18 files changed, 810 deletions(-) delete mode 100644 cmake/Modules/Findbtrie.cmake delete mode 100644 contrib/libbtrie/CMakeLists.txt delete mode 100644 contrib/libbtrie/LICENSE delete mode 100644 contrib/libbtrie/include/btrie.h delete mode 100644 contrib/libbtrie/src/btrie.c delete mode 100644 contrib/libbtrie/test/test_btrie.c diff --git a/CMakeLists.txt b/CMakeLists.txt index cababc083fa..0d3bd46d015 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -475,9 +475,6 @@ find_contrib_lib(cityhash) find_contrib_lib(farmhash) -set (USE_INTERNAL_BTRIE_LIBRARY ON CACHE INTERNAL "") -find_contrib_lib(btrie) - if (ENABLE_TESTS) include (cmake/find/gtest.cmake) endif () diff --git a/cmake/Modules/Findbtrie.cmake b/cmake/Modules/Findbtrie.cmake deleted file mode 100644 index 4f3c27f5225..00000000000 --- a/cmake/Modules/Findbtrie.cmake +++ /dev/null @@ -1,44 +0,0 @@ -# - Try to find btrie headers and libraries. -# -# Usage of this module as follows: -# -# find_package(btrie) -# -# Variables used by this module, they can change the default behaviour and need -# to be set before calling find_package: -# -# BTRIE_ROOT_DIR Set this variable to the root installation of -# btrie if the module has problems finding -# the proper installation path. -# -# Variables defined by this module: -# -# BTRIE_FOUND System has btrie libs/headers -# BTRIE_LIBRARIES The btrie library/libraries -# BTRIE_INCLUDE_DIR The location of btrie headers - -find_path(BTRIE_ROOT_DIR - NAMES include/btrie.h -) - -find_library(BTRIE_LIBRARIES - NAMES btrie - PATHS ${BTRIE_ROOT_DIR}/lib ${BTRIE_LIBRARIES_PATHS} -) - -find_path(BTRIE_INCLUDE_DIR - NAMES btrie.h - PATHS ${BTRIE_ROOT_DIR}/include ${BTRIE_INCLUDE_PATHS} -) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(btrie DEFAULT_MSG - BTRIE_LIBRARIES - BTRIE_INCLUDE_DIR -) - -mark_as_advanced( - BTRIE_ROOT_DIR - BTRIE_LIBRARIES - BTRIE_INCLUDE_DIR -) diff --git a/contrib/libbtrie/CMakeLists.txt b/contrib/libbtrie/CMakeLists.txt deleted file mode 100644 index 2b0c8e3fd75..00000000000 --- a/contrib/libbtrie/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ -add_library(btrie - src/btrie.c - include/btrie.h -) - -target_include_directories (btrie SYSTEM PUBLIC include) diff --git a/contrib/libbtrie/LICENSE b/contrib/libbtrie/LICENSE deleted file mode 100644 index d386c6f7b79..00000000000 --- a/contrib/libbtrie/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright (c) 2013, CobbLiu -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/contrib/libbtrie/include/btrie.h b/contrib/libbtrie/include/btrie.h deleted file mode 100644 index 6d805108e7a..00000000000 --- a/contrib/libbtrie/include/btrie.h +++ /dev/null @@ -1,160 +0,0 @@ -#pragma once - -#if defined (__cplusplus) -extern "C" { -#endif - -#include -#include - -/** - * In btrie, each leaf means one bit in ip tree. - * Left means 0, and right means 1. - */ - -#define BTRIE_NULL (uintptr_t) -1 - -#if !defined(BTRIE_MAX_PAGES) -/// 54 ip per page. 8 bytes memory per page when empty -#define BTRIE_MAX_PAGES 1024 * 2048 /// 128m ips , ~16mb ram when empty -// #define BTRIE_MAX_PAGES 1024 * 65535 /// 4g ips (whole ipv4), ~512mb ram when empty -#endif - -typedef struct btrie_node_s btrie_node_t; - -struct btrie_node_s { - btrie_node_t *right; - btrie_node_t *left; - btrie_node_t *parent; - uintptr_t value; -}; - - -typedef struct btrie_s { - btrie_node_t *root; - - btrie_node_t *free; /* free list of btrie */ - char *start; - size_t size; - - /* - * memory pool. - * memory management(esp free) will be so easy by using this facility. - */ - char *pools[BTRIE_MAX_PAGES]; - size_t len; -} btrie_t; - - -/** - * Create an empty btrie - * - * @Return: - * An ip radix_tree created. - * NULL if creation failed. - */ - -btrie_t *btrie_create(); - -/** - * Destroy the ip radix_tree - * - * @Return: - * OK if deletion succeed. - * ERROR if error occurs while deleting. - */ -int btrie_destroy(btrie_t *tree); - -/** - * Count the nodes in the radix tree. - */ -size_t btrie_count(btrie_t *tree); - -/** - * Return the allocated number of bytes. - */ -size_t btrie_allocated(btrie_t *tree); - - -/** - * Add an ipv4 into btrie - * - * @Args: - * key: ip address - * mask: key's mask - * value: value of this IP, may be NULL. - * - * @Return: - * OK for success. - * ERROR for failure. - */ -int btrie_insert(btrie_t *tree, uint32_t key, uint32_t mask, - uintptr_t value); - - -/** - * Delete an ipv4 from btrie - * - * @Args: - * - * @Return: - * OK for success. - * ERROR for failure. - */ -int btrie_delete(btrie_t *tree, uint32_t key, uint32_t mask); - - -/** - * Find an ipv4 from btrie - * - - * @Args: - * - * @Return: - * Value if succeed. - * NULL if failed. - */ -uintptr_t btrie_find(btrie_t *tree, uint32_t key); - - -/** - * Add an ipv6 into btrie - * - * @Args: - * key: ip address - * mask: key's mask - * value: value of this IP, may be NULL. - * - * @Return: - * OK for success. - * ERROR for failure. - */ -int btrie_insert_a6(btrie_t *tree, const uint8_t *key, const uint8_t *mask, - uintptr_t value); - -/** - * Delete an ipv6 from btrie - * - * @Args: - * - * @Return: - * OK for success. - * ERROR for failure. - */ -int btrie_delete_a6(btrie_t *tree, const uint8_t *key, const uint8_t *mask); - -/** - * Find an ipv6 from btrie - * - - * @Args: - * - * @Return: - * Value if succeed. - * NULL if failed. - */ -uintptr_t btrie_find_a6(btrie_t *tree, const uint8_t *key); - -#if defined (__cplusplus) -} -#endif \ No newline at end of file diff --git a/contrib/libbtrie/src/btrie.c b/contrib/libbtrie/src/btrie.c deleted file mode 100644 index f9353019ac1..00000000000 --- a/contrib/libbtrie/src/btrie.c +++ /dev/null @@ -1,460 +0,0 @@ -#include -#include -#include - -#define PAGE_SIZE 4096 - - -static btrie_node_t * -btrie_alloc(btrie_t *tree) -{ - btrie_node_t *p; - - if (tree->free) { - p = tree->free; - tree->free = tree->free->right; - return p; - } - - if (tree->size < sizeof(btrie_node_t)) { - tree->start = (char *) calloc(sizeof(char), PAGE_SIZE); - if (tree->start == NULL) { - return NULL; - } - - tree->pools[tree->len++] = tree->start; - tree->size = PAGE_SIZE; - } - - p = (btrie_node_t *) tree->start; - - tree->start += sizeof(btrie_node_t); - tree->size -= sizeof(btrie_node_t); - - return p; -} - - -btrie_t * -btrie_create() -{ - btrie_t *tree = (btrie_t *) malloc(sizeof(btrie_t)); - if (tree == NULL) { - return NULL; - } - - tree->free = NULL; - tree->start = NULL; - tree->size = 0; - memset(tree->pools, 0, sizeof(btrie_t *) * BTRIE_MAX_PAGES); - tree->len = 0; - - tree->root = btrie_alloc(tree); - if (tree->root == NULL) { - return NULL; - } - - tree->root->right = NULL; - tree->root->left = NULL; - tree->root->parent = NULL; - tree->root->value = BTRIE_NULL; - - return tree; -} - -static size_t -subtree_weight(btrie_node_t *node) -{ - size_t weight = 1; - if (node->left) { - weight += subtree_weight(node->left); - } - if (node->right) { - weight += subtree_weight(node->right); - } - return weight; -} - -size_t -btrie_count(btrie_t *tree) -{ - if (tree->root == NULL) { - return 0; - } - - return subtree_weight(tree->root); -} - -size_t -btrie_allocated(btrie_t *tree) -{ - return tree->len * PAGE_SIZE; -} - - -int -btrie_insert(btrie_t *tree, uint32_t key, uint32_t mask, - uintptr_t value) -{ - uint32_t bit; - btrie_node_t *node, *next; - - bit = 0x80000000; - - node = tree->root; - next = tree->root; - - while (bit & mask) { - if (key & bit) { - next = node->right; - - } else { - next = node->left; - } - - if (next == NULL) { - break; - } - - bit >>= 1; - node = next; - } - - if (next) { - if (node->value != BTRIE_NULL) { - return -1; - } - - node->value = value; - return 0; - } - - while (bit & mask) { - next = btrie_alloc(tree); - if (next == NULL) { - return -1; - } - - next->right = NULL; - next->left = NULL; - next->parent = node; - next->value = BTRIE_NULL; - - if (key & bit) { - node->right = next; - - } else { - node->left = next; - } - - bit >>= 1; - node = next; - } - - node->value = value; - - return 0; -} - - -int -btrie_delete(btrie_t *tree, uint32_t key, uint32_t mask) -{ - uint32_t bit; - btrie_node_t *node; - - bit = 0x80000000; - node = tree->root; - - while (node && (bit & mask)) { - if (key & bit) { - node = node->right; - - } else { - node = node->left; - } - - bit >>= 1; - } - - if (node == NULL) { - return -1; - } - - if (node->right || node->left) { - if (node->value != BTRIE_NULL) { - node->value = BTRIE_NULL; - return 0; - } - - return -1; - } - - for ( ;; ) { - if (node->parent->right == node) { - node->parent->right = NULL; - - } else { - node->parent->left = NULL; - } - - node->right = tree->free; - tree->free = node; - - node = node->parent; - - if (node->right || node->left) { - break; - } - - if (node->value != BTRIE_NULL) { - break; - } - - if (node->parent == NULL) { - break; - } - } - - return 0; -} - - -uintptr_t -btrie_find(btrie_t *tree, uint32_t key) -{ - uint32_t bit; - uintptr_t value; - btrie_node_t *node; - - bit = 0x80000000; - value = BTRIE_NULL; - node = tree->root; - - while (node) { - if (node->value != BTRIE_NULL) { - value = node->value; - } - - if (key & bit) { - node = node->right; - - } else { - node = node->left; - } - - bit >>= 1; - } - - return value; -} - - -int -btrie_insert_a6(btrie_t *tree, const uint8_t *key, const uint8_t *mask, - uintptr_t value) -{ - uint8_t bit; - unsigned int i; - btrie_node_t *node, *next; - - i = 0; - bit = 0x80; - - node = tree->root; - next = tree->root; - - while (bit & mask[i]) { - if (key[i] & bit) { - next = node->right; - - } else { - next = node->left; - } - - if (next == NULL) { - break; - } - - bit >>= 1; - node = next; - - if (bit == 0) { - if (++i == 16) { - break; - } - - bit = 0x80; - } - } - - if (next) { - if (node->value != BTRIE_NULL) { - return -1; - } - - node->value = value; - return 0; - } - - while (bit & mask[i]) { - next = btrie_alloc(tree); - if (next == NULL) { - return -1; - } - - next->right = NULL; - next->left = NULL; - next->parent = node; - next->value = BTRIE_NULL; - - if (key[i] & bit) { - node->right = next; - - } else { - node->left = next; - } - - bit >>= 1; - node = next; - - if (bit == 0) { - if (++i == 16) { - break; - } - - bit = 0x80; - } - } - - node->value = value; - - return 0; -} - - -int -btrie_delete_a6(btrie_t *tree, const uint8_t *key, const uint8_t *mask) -{ - uint8_t bit; - unsigned int i; - btrie_node_t *node; - - i = 0; - bit = 0x80; - node = tree->root; - - while (node && (bit & mask[i])) { - if (key[i] & bit) { - node = node->right; - - } else { - node = node->left; - } - - bit >>= 1; - - if (bit == 0) { - if (++i == 16) { - break; - } - - bit = 0x80; - } - } - - if (node == NULL) { - return -1; - } - - if (node->right || node->left) { - if (node->value != BTRIE_NULL) { - node->value = BTRIE_NULL; - return 0; - } - - return -1; - } - - for ( ;; ) { - if (node->parent->right == node) { - node->parent->right = NULL; - - } else { - node->parent->left = NULL; - } - - node->right = tree->free; - tree->free = node; - - node = node->parent; - - if (node->right || node->left) { - break; - } - - if (node->value != BTRIE_NULL) { - break; - } - - if (node->parent == NULL) { - break; - } - } - - return 0; -} - - -uintptr_t -btrie_find_a6(btrie_t *tree, const uint8_t *key) -{ - uint8_t bit; - uintptr_t value; - unsigned int i; - btrie_node_t *node; - - i = 0; - bit = 0x80; - value = BTRIE_NULL; - node = tree->root; - - while (node) { - if (node->value != BTRIE_NULL) { - value = node->value; - } - - if (key[i] & bit) { - node = node->right; - - } else { - node = node->left; - } - - bit >>= 1; - - if (bit == 0) { - i++; - bit = 0x80; - } - } - - return value; -} - - -int -btrie_destroy(btrie_t *tree) -{ - size_t i; - - - /* free memory pools */ - for (i = 0; i < tree->len; i++) { - free(tree->pools[i]); - } - - free(tree); - - return 0; -} diff --git a/contrib/libbtrie/test/test_btrie.c b/contrib/libbtrie/test/test_btrie.c deleted file mode 100644 index 2bbf2b2db7e..00000000000 --- a/contrib/libbtrie/test/test_btrie.c +++ /dev/null @@ -1,103 +0,0 @@ -#include -#include - -int main() -{ - btrie_t *it; - int ret; - - uint8_t prefix_v6[16] = {0xde, 0xad, 0xbe, 0xef}; - uint8_t mask_v6[16] = {0xff, 0xff, 0xff}; - uint8_t ip_v6[16] = {0xde, 0xad, 0xbe, 0xef, 0xde}; - - it = btrie_create(); - if (it == NULL) { - printf("create error!\n"); - return 0; - } - - //add 101.45.69.50/16 - ret = btrie_insert(it, 1697465650, 0xffff0000, 1); - if (ret != 0) { - printf("insert 1 error.\n"); - goto error; - } - - //add 10.45.69.50/16 - ret = btrie_insert(it, 170738994, 0xffff0000, 1); - if (ret != 0) { - printf("insert 2 error.\n"); - goto error; - } - - //add 10.45.79.50/16 - ret = btrie_insert(it, 170741554, 0xffff0000, 1); - if (ret == 0) { - printf("insert 3 error.\n"); - goto error; - } - - //add 102.45.79.50/24 - ret = btrie_insert(it, 1714245426, 0xffffff00, 1); - if (ret != 0) { - printf("insert 4 error.\n"); - goto error; - } - - ret = btrie_find(it, 170741554); - if (ret == 1) { - printf("test case 1 passed\n"); - } else { - printf("test case 1 error\n"); - } - - ret = btrie_find(it, 170786817); - if (ret != 1) { - printf("test case 2 passed\n"); - } else { - printf("test case 2 error\n"); - } - - ret = btrie_delete(it, 1714245426, 0xffffff00); - if (ret != 0) { - printf("delete 1 error\n"); - goto error; - } - - ret = btrie_find(it, 1714245426); - if (ret != 1) { - printf("test case 3 passed\n"); - } else { - printf("test case 3 error\n"); - } - - //add dead:beef::/32 - ret = btrie_insert_a6(it, prefix_v6, mask_v6, 1); - if (ret != 0) { - printf("insert 5 error\n"); - goto error; - } - - ret = btrie_find_a6(it, ip_v6); - if (ret == 1) { - printf("test case 4 passed\n"); - } else { - printf("test case 4 error\n"); - } - - // insert 4m ips - for (size_t ip = 1; ip < 1024 * 1024 * 4; ++ip) { - ret = btrie_insert(it, ip, 0xffffffff, 1); - if (ret != 0) { - printf("insert 5 error (%d) (%zu) .\n", ret, ip); - goto error; - } - } - - return 0; - - error: - btrie_destroy(it); - printf("test failed\n"); - return 1; -} diff --git a/docs/en/development/contrib.md b/docs/en/development/contrib.md index 639b78185e4..76a2f647231 100644 --- a/docs/en/development/contrib.md +++ b/docs/en/development/contrib.md @@ -17,7 +17,6 @@ toc_title: Third-Party Libraries Used | googletest | [BSD 3-Clause License](https://github.com/google/googletest/blob/master/LICENSE) | | h3 | [Apache License 2.0](https://github.com/uber/h3/blob/master/LICENSE) | | hyperscan | [BSD 3-Clause License](https://github.com/intel/hyperscan/blob/master/LICENSE) | -| libbtrie | [BSD 2-Clause License](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/libbtrie/LICENSE) | | libcxxabi | [BSD + MIT](https://github.com/ClickHouse/ClickHouse/blob/master/libs/libglibc-compatibility/libcxxabi/LICENSE.TXT) | | libdivide | [Zlib License](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/libdivide/LICENSE.txt) | | libgsasl | [LGPL v2.1](https://github.com/ClickHouse-Extras/libgsasl/blob/3b8948a4042e34fb00b4fb987535dc9e02e39040/LICENSE) | diff --git a/docs/es/development/contrib.md b/docs/es/development/contrib.md index 9018c19cc92..3f3013570e5 100644 --- a/docs/es/development/contrib.md +++ b/docs/es/development/contrib.md @@ -19,7 +19,6 @@ toc_title: Bibliotecas de terceros utilizadas | Más información | [Licencia de 3 cláusulas BSD](https://github.com/google/googletest/blob/master/LICENSE) | | H3 | [Licencia Apache 2.0](https://github.com/uber/h3/blob/master/LICENSE) | | hyperscan | [Licencia de 3 cláusulas BSD](https://github.com/intel/hyperscan/blob/master/LICENSE) | -| libbtrie | [Licencia BSD de 2 cláusulas](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/libbtrie/LICENSE) | | libcxxabi | [BSD + MIT](https://github.com/ClickHouse/ClickHouse/blob/master/libs/libglibc-compatibility/libcxxabi/LICENSE.TXT) | | libdivide | [Licencia Zlib](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/libdivide/LICENSE.txt) | | libgsasl | [Información adicional](https://github.com/ClickHouse-Extras/libgsasl/blob/3b8948a4042e34fb00b4fb987535dc9e02e39040/LICENSE) | diff --git a/docs/fa/development/contrib.md b/docs/fa/development/contrib.md index 25573c28125..2ee5fc73369 100644 --- a/docs/fa/development/contrib.md +++ b/docs/fa/development/contrib.md @@ -21,7 +21,6 @@ toc_title: "\u06A9\u062A\u0627\u0628\u062E\u0627\u0646\u0647 \u0647\u0627\u06CC | googletest | [لیسانس 3 بند](https://github.com/google/googletest/blob/master/LICENSE) | | اچ 3 | [نمایی مجوز 2.0](https://github.com/uber/h3/blob/master/LICENSE) | | hyperscan | [لیسانس 3 بند](https://github.com/intel/hyperscan/blob/master/LICENSE) | -| لیبتری | [لیسانس 2 بند](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/libbtrie/LICENSE) | | شکنجه نوجوان | [BSD + MIT](https://github.com/ClickHouse/ClickHouse/blob/master/libs/libglibc-compatibility/libcxxabi/LICENSE.TXT) | | لیبیدوید | [مجوز زلب](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/libdivide/LICENSE.txt) | | نوشیدن شراب | [الجی پی ال2.1](https://github.com/ClickHouse-Extras/libgsasl/blob/3b8948a4042e34fb00b4fb987535dc9e02e39040/LICENSE) | diff --git a/docs/fr/development/contrib.md b/docs/fr/development/contrib.md index f4006d0a787..6909ef905bd 100644 --- a/docs/fr/development/contrib.md +++ b/docs/fr/development/contrib.md @@ -19,7 +19,6 @@ toc_title: "Biblioth\xE8ques Tierces Utilis\xE9es" | googletest | [Licence BSD 3-Clause](https://github.com/google/googletest/blob/master/LICENSE) | | h3 | [Licence Apache 2.0](https://github.com/uber/h3/blob/master/LICENSE) | | hyperscan | [Licence BSD 3-Clause](https://github.com/intel/hyperscan/blob/master/LICENSE) | -| libbtrie | [Licence BSD 2-Clause](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/libbtrie/LICENSE) | | libcxxabi | [BSD + MIT](https://github.com/ClickHouse/ClickHouse/blob/master/libs/libglibc-compatibility/libcxxabi/LICENSE.TXT) | | libdivide | [Licence Zlib](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/libdivide/LICENSE.txt) | | libgsasl | [LGPL v2.1](https://github.com/ClickHouse-Extras/libgsasl/blob/3b8948a4042e34fb00b4fb987535dc9e02e39040/LICENSE) | diff --git a/docs/ja/development/contrib.md b/docs/ja/development/contrib.md index 2e16b2bc72a..892d2c66a13 100644 --- a/docs/ja/development/contrib.md +++ b/docs/ja/development/contrib.md @@ -20,7 +20,6 @@ toc_title: "\u30B5\u30FC\u30C9\u30D1\u30FC\u30C6\u30A3\u88FD\u30E9\u30A4\u30D6\u | googletest | [BSD3条項ライセンス](https://github.com/google/googletest/blob/master/LICENSE) | | h3 | [Apacheライセンス2.0](https://github.com/uber/h3/blob/master/LICENSE) | | hyperscan | [BSD3条項ライセンス](https://github.com/intel/hyperscan/blob/master/LICENSE) | -| libbtrie | [BSD2条項ライセンス](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/libbtrie/LICENSE) | | libcxxabi | [BSD + MIT](https://github.com/ClickHouse/ClickHouse/blob/master/libs/libglibc-compatibility/libcxxabi/LICENSE.TXT) | | libdivide | [Zlibライセンス](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/libdivide/LICENSE.txt) | | libgsasl | [LGPL v2.1](https://github.com/ClickHouse-Extras/libgsasl/blob/3b8948a4042e34fb00b4fb987535dc9e02e39040/LICENSE) | diff --git a/docs/ru/development/contrib.md b/docs/ru/development/contrib.md index e65ab4819e8..05367267e41 100644 --- a/docs/ru/development/contrib.md +++ b/docs/ru/development/contrib.md @@ -18,7 +18,6 @@ toc_title: "\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u | googletest | [BSD 3-Clause License](https://github.com/google/googletest/blob/master/LICENSE) | | h3 | [Apache License 2.0](https://github.com/uber/h3/blob/master/LICENSE) | | hyperscan | [BSD 3-Clause License](https://github.com/intel/hyperscan/blob/master/LICENSE) | -| libbtrie | [BSD 2-Clause License](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/libbtrie/LICENSE) | | libcxxabi | [BSD + MIT](https://github.com/ClickHouse/ClickHouse/blob/master/libs/libglibc-compatibility/libcxxabi/LICENSE.TXT) | | libdivide | [Zlib License](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/libdivide/LICENSE.txt) | | libgsasl | [LGPL v2.1](https://github.com/ClickHouse-Extras/libgsasl/blob/3b8948a4042e34fb00b4fb987535dc9e02e39040/LICENSE) | diff --git a/docs/tr/development/contrib.md b/docs/tr/development/contrib.md index 63cc289ec9b..f56cf2a625b 100644 --- a/docs/tr/development/contrib.md +++ b/docs/tr/development/contrib.md @@ -19,7 +19,6 @@ toc_title: "Kullan\u0131lan \xDC\xE7\xFCnc\xFC Taraf K\xFCt\xFCphaneleri" | googletest | [BSD 3-Clause Lisansı](https://github.com/google/googletest/blob/master/LICENSE) | | h33 | [Apache Lic 2.0ense 2.0](https://github.com/uber/h3/blob/master/LICENSE) | | hyperscan | [BSD 3-Clause Lisansı](https://github.com/intel/hyperscan/blob/master/LICENSE) | -| libbtrie | [BSD 2-Clause Lisansı](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/libbtrie/LICENSE) | | libcxxabi | [BSD + MIT](https://github.com/ClickHouse/ClickHouse/blob/master/libs/libglibc-compatibility/libcxxabi/LICENSE.TXT) | | libdivide | [Zlib Lisansı](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/libdivide/LICENSE.txt) | | libgsasl | [LGPL v2. 1](https://github.com/ClickHouse-Extras/libgsasl/blob/3b8948a4042e34fb00b4fb987535dc9e02e39040/LICENSE) | diff --git a/docs/zh/development/contrib.md b/docs/zh/development/contrib.md index 0129ee62ce7..8e8efc3c04e 100644 --- a/docs/zh/development/contrib.md +++ b/docs/zh/development/contrib.md @@ -11,7 +11,6 @@ | FastMemcpy | [MIT](https://github.com/ClickHouse/ClickHouse/blob/master/libs/libmemcpy/impl/LICENSE) | | googletest | [BSD3-条款许可](https://github.com/google/googletest/blob/master/LICENSE) | | 超扫描 | [BSD3-条款许可](https://github.com/intel/hyperscan/blob/master/LICENSE) | -| libbtrie | [BSD2-条款许可](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/libbtrie/LICENSE) | | libcxxabi | [BSD + MIT](https://github.com/ClickHouse/ClickHouse/blob/master/libs/libglibc-compatibility/libcxxabi/LICENSE.TXT) | | libdivide | [Zlib许可证](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/libdivide/LICENSE.txt) | | libgsasl | [LGPL v2.1](https://github.com/ClickHouse-Extras/libgsasl/blob/3b8948a4042e34fb00b4fb987535dc9e02e39040/LICENSE) | diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9fc8a62a066..0a3edff1bd2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -305,7 +305,6 @@ endif() dbms_target_link_libraries ( PRIVATE - ${BTRIE_LIBRARIES} boost::filesystem boost::program_options clickhouse_common_config diff --git a/src/Dictionaries/CMakeLists.txt b/src/Dictionaries/CMakeLists.txt index 0eb3c5f44d6..4d6ab4b85f8 100644 --- a/src/Dictionaries/CMakeLists.txt +++ b/src/Dictionaries/CMakeLists.txt @@ -11,7 +11,6 @@ add_library(clickhouse_dictionaries ${clickhouse_dictionaries_sources}) target_link_libraries(clickhouse_dictionaries PRIVATE - ${BTRIE_LIBRARIES} clickhouse_common_io dbms Poco::Data diff --git a/utils/check-style/check-include b/utils/check-style/check-include index b4f105ed0cb..6c7b3d02e6a 100755 --- a/utils/check-style/check-include +++ b/utils/check-style/check-include @@ -41,7 +41,6 @@ inc="-I. \ -I/usr/include/llvm-5.0 \ -I./contrib/llvm/llvm/include \ -I${BUILD_DIR}/contrib/llvm/llvm/include \ --I./contrib/libbtrie/include \ -I./contrib/libpcg-random/include \ -I./contrib/capnproto/c++/src \ -I./contrib/unixodbc/include \ From a277a5bb16e00208e7f58cbd3f4fb94ddd55203e Mon Sep 17 00:00:00 2001 From: vdimir Date: Sat, 21 Nov 2020 21:38:10 +0300 Subject: [PATCH 198/425] Rename TrieDictionary -> IPAddressDictionary --- src/CMakeLists.txt | 2 +- ...Dictionary.cpp => IPAddressDictionary.cpp} | 62 +++++++++---------- ...TrieDictionary.h => IPAddressDictionary.h} | 6 +- src/Functions/FunctionsExternalDictionaries.h | 12 ++-- 4 files changed, 41 insertions(+), 41 deletions(-) rename src/Dictionaries/{TrieDictionary.cpp => IPAddressDictionary.cpp} (94%) rename src/Dictionaries/{TrieDictionary.h => IPAddressDictionary.h} (97%) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0a3edff1bd2..7fff06f80e0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -223,7 +223,7 @@ if (CMAKE_BUILD_TYPE_UC STREQUAL "RELEASE" OR CMAKE_BUILD_TYPE_UC STREQUAL "RELW Dictionaries/FlatDictionary.cpp Dictionaries/HashedDictionary.cpp Dictionaries/CacheDictionary.cpp - Dictionaries/TrieDictionary.cpp + Dictionaries/IPAddressDictionary.cpp Dictionaries/RangeHashedDictionary.cpp Dictionaries/ComplexKeyHashedDictionary.cpp Dictionaries/ComplexKeyCacheDictionary.cpp diff --git a/src/Dictionaries/TrieDictionary.cpp b/src/Dictionaries/IPAddressDictionary.cpp similarity index 94% rename from src/Dictionaries/TrieDictionary.cpp rename to src/Dictionaries/IPAddressDictionary.cpp index 5a93e452123..1e6ac5f7783 100644 --- a/src/Dictionaries/TrieDictionary.cpp +++ b/src/Dictionaries/IPAddressDictionary.cpp @@ -1,4 +1,4 @@ -#include "TrieDictionary.h" +#include "IPAddressDictionary.h" #include #include #include @@ -223,7 +223,7 @@ static bool matchIPv6Subnet(const uint8_t * target, const uint8_t * addr, UInt8 #endif // __SSE2__ -TrieDictionary::TrieDictionary( +IPAddressDictionary::IPAddressDictionary( const StorageID & dict_id_, const DictionaryStructure & dict_struct_, DictionarySourcePtr source_ptr_, @@ -234,7 +234,7 @@ TrieDictionary::TrieDictionary( , source_ptr{std::move(source_ptr_)} , dict_lifetime(dict_lifetime_) , require_nonempty(require_nonempty_) - , logger(&Poco::Logger::get("TrieDictionary")) + , logger(&Poco::Logger::get("IPAddressDictionary")) { createAttributes(); @@ -243,7 +243,7 @@ TrieDictionary::TrieDictionary( } #define DECLARE(TYPE) \ - void TrieDictionary::get##TYPE( \ + void IPAddressDictionary::get##TYPE( \ const std::string & attribute_name, const Columns & key_columns, const DataTypes & key_types, ResultArrayType & out) const \ { \ validateKeyTypes(key_types); \ @@ -275,7 +275,7 @@ DECLARE(Decimal64) DECLARE(Decimal128) #undef DECLARE -void TrieDictionary::getString( +void IPAddressDictionary::getString( const std::string & attribute_name, const Columns & key_columns, const DataTypes & key_types, ColumnString * out) const { validateKeyTypes(key_types); @@ -293,7 +293,7 @@ void TrieDictionary::getString( } #define DECLARE(TYPE) \ - void TrieDictionary::get##TYPE( \ + void IPAddressDictionary::get##TYPE( \ const std::string & attribute_name, \ const Columns & key_columns, \ const DataTypes & key_types, \ @@ -327,7 +327,7 @@ DECLARE(Decimal64) DECLARE(Decimal128) #undef DECLARE -void TrieDictionary::getString( +void IPAddressDictionary::getString( const std::string & attribute_name, const Columns & key_columns, const DataTypes & key_types, @@ -347,7 +347,7 @@ void TrieDictionary::getString( } #define DECLARE(TYPE) \ - void TrieDictionary::get##TYPE( \ + void IPAddressDictionary::get##TYPE( \ const std::string & attribute_name, \ const Columns & key_columns, \ const DataTypes & key_types, \ @@ -378,7 +378,7 @@ DECLARE(Decimal64) DECLARE(Decimal128) #undef DECLARE -void TrieDictionary::getString( +void IPAddressDictionary::getString( const std::string & attribute_name, const Columns & key_columns, const DataTypes & key_types, @@ -397,7 +397,7 @@ void TrieDictionary::getString( [&](const size_t) { return StringRef{def}; }); } -void TrieDictionary::has(const Columns & key_columns, const DataTypes & key_types, PaddedPODArray & out) const +void IPAddressDictionary::has(const Columns & key_columns, const DataTypes & key_types, PaddedPODArray & out) const { validateKeyTypes(key_types); @@ -454,7 +454,7 @@ void TrieDictionary::has(const Columns & key_columns, const DataTypes & key_type } } -void TrieDictionary::createAttributes() +void IPAddressDictionary::createAttributes() { const auto size = dict_struct.attributes.size(); attributes.reserve(size); @@ -470,7 +470,7 @@ void TrieDictionary::createAttributes() } } -void TrieDictionary::loadData() +void IPAddressDictionary::loadData() { auto stream = source_ptr->loadAll(); stream->readPrefix(); @@ -624,14 +624,14 @@ void TrieDictionary::loadData() } template -void TrieDictionary::addAttributeSize(const Attribute & attribute) +void IPAddressDictionary::addAttributeSize(const Attribute & attribute) { const auto & vec = std::get>(attribute.maps); bytes_allocated += sizeof(ContainerType) + (vec.capacity() * sizeof(T)); bucket_count = vec.size(); } -void TrieDictionary::calculateBytesAllocated() +void IPAddressDictionary::calculateBytesAllocated() { if (auto * ipv4_col = std::get_if(&ip_column)) { @@ -707,13 +707,13 @@ void TrieDictionary::calculateBytesAllocated() template -void TrieDictionary::createAttributeImpl(Attribute & attribute, const Field & null_value) +void IPAddressDictionary::createAttributeImpl(Attribute & attribute, const Field & null_value) { attribute.null_values = T(null_value.get>()); attribute.maps.emplace>(); } -TrieDictionary::Attribute TrieDictionary::createAttributeWithType(const AttributeUnderlyingType type, const Field & null_value) +IPAddressDictionary::Attribute IPAddressDictionary::createAttributeWithType(const AttributeUnderlyingType type, const Field & null_value) { Attribute attr{type, {}, {}, {}}; @@ -775,13 +775,13 @@ TrieDictionary::Attribute TrieDictionary::createAttributeWithType(const Attribut return attr; } -const uint8_t * TrieDictionary::getIPv6FromOffset(const TrieDictionary::IPv6Container & ipv6_col, size_t i) +const uint8_t * IPAddressDictionary::getIPv6FromOffset(const IPAddressDictionary::IPv6Container & ipv6_col, size_t i) { return reinterpret_cast(&ipv6_col[i * IPV6_BINARY_LENGTH]); } template -void TrieDictionary::getItemsByTwoKeyColumnsImpl( +void IPAddressDictionary::getItemsByTwoKeyColumnsImpl( const Attribute & attribute, const Columns & key_columns, ValueSetter && set_value, DefaultGetter && get_default) const { const auto first_column = key_columns.front(); @@ -859,7 +859,7 @@ void TrieDictionary::getItemsByTwoKeyColumnsImpl( } template -void TrieDictionary::getItemsImpl( +void IPAddressDictionary::getItemsImpl( const Attribute & attribute, const Columns & key_columns, ValueSetter && set_value, DefaultGetter && get_default) const { const auto first_column = key_columns.front(); @@ -910,13 +910,13 @@ void TrieDictionary::getItemsImpl( } template -void TrieDictionary::setAttributeValueImpl(Attribute & attribute, const T value) +void IPAddressDictionary::setAttributeValueImpl(Attribute & attribute, const T value) { auto & vec = std::get>(attribute.maps); vec.push_back(value); } -void TrieDictionary::setAttributeValue(Attribute & attribute, const Field & value) +void IPAddressDictionary::setAttributeValue(Attribute & attribute, const Field & value) { switch (attribute.type) { @@ -959,7 +959,7 @@ void TrieDictionary::setAttributeValue(Attribute & attribute, const Field & valu } } -const TrieDictionary::Attribute & TrieDictionary::getAttribute(const std::string & attribute_name) const +const IPAddressDictionary::Attribute & IPAddressDictionary::getAttribute(const std::string & attribute_name) const { const auto it = attribute_index_by_name.find(attribute_name); if (it == std::end(attribute_index_by_name)) @@ -969,7 +969,7 @@ const TrieDictionary::Attribute & TrieDictionary::getAttribute(const std::string } template -void TrieDictionary::has(const Attribute &, const Columns & key_columns, PaddedPODArray & out) const +void IPAddressDictionary::has(const Attribute &, const Columns & key_columns, PaddedPODArray & out) const { const auto first_column = key_columns.front(); const auto rows = first_column->size(); @@ -999,7 +999,7 @@ void TrieDictionary::has(const Attribute &, const Columns & key_columns, PaddedP query_count.fetch_add(rows, std::memory_order_relaxed); } -Columns TrieDictionary::getKeyColumns() const +Columns IPAddressDictionary::getKeyColumns() const { const auto * ipv4_col = std::get_if(&ip_column); if (ipv4_col) @@ -1054,9 +1054,9 @@ static auto keyViewGetter() }; } -BlockInputStreamPtr TrieDictionary::getBlockInputStream(const Names & column_names, size_t max_block_size) const +BlockInputStreamPtr IPAddressDictionary::getBlockInputStream(const Names & column_names, size_t max_block_size) const { - using BlockInputStreamType = DictionaryBlockInputStream; + using BlockInputStreamType = DictionaryBlockInputStream; const bool is_ipv4 = std::get_if(&ip_column) != nullptr; @@ -1088,12 +1088,12 @@ BlockInputStreamPtr TrieDictionary::getBlockInputStream(const Names & column_nam shared_from_this(), max_block_size, getKeyColumns(), column_names, std::move(get_keys), std::move(get_view)); } -TrieDictionary::RowIdxConstIter TrieDictionary::ipNotFound() const +IPAddressDictionary::RowIdxConstIter IPAddressDictionary::ipNotFound() const { return row_idx.end(); } -TrieDictionary::RowIdxConstIter TrieDictionary::tryLookupIPv4(UInt32 addr, uint8_t * buf) const +IPAddressDictionary::RowIdxConstIter IPAddressDictionary::tryLookupIPv4(UInt32 addr, uint8_t * buf) const { if (std::get_if(&ip_column)) { @@ -1103,7 +1103,7 @@ TrieDictionary::RowIdxConstIter TrieDictionary::tryLookupIPv4(UInt32 addr, uint8 return lookupIP(addr); } -TrieDictionary::RowIdxConstIter TrieDictionary::tryLookupIPv6(const uint8_t * addr) const +IPAddressDictionary::RowIdxConstIter IPAddressDictionary::tryLookupIPv6(const uint8_t * addr) const { if (std::get_if(&ip_column)) { @@ -1117,7 +1117,7 @@ TrieDictionary::RowIdxConstIter TrieDictionary::tryLookupIPv6(const uint8_t * ad } template -TrieDictionary::RowIdxConstIter TrieDictionary::lookupIP(IPValueType target) const +IPAddressDictionary::RowIdxConstIter IPAddressDictionary::lookupIP(IPValueType target) const { if (row_idx.empty()) return ipNotFound(); @@ -1182,7 +1182,7 @@ void registerDictionaryTrie(DictionaryFactory & factory) const DictionaryLifetime dict_lifetime{config, config_prefix + ".lifetime"}; const bool require_nonempty = config.getBool(config_prefix + ".require_nonempty", false); // This is specialised trie for storing IPv4 and IPv6 prefixes. - return std::make_unique(dict_id, dict_struct, std::move(source_ptr), dict_lifetime, require_nonempty); + return std::make_unique(dict_id, dict_struct, std::move(source_ptr), dict_lifetime, require_nonempty); }; factory.registerLayout("ip_trie", create_layout, true); } diff --git a/src/Dictionaries/TrieDictionary.h b/src/Dictionaries/IPAddressDictionary.h similarity index 97% rename from src/Dictionaries/TrieDictionary.h rename to src/Dictionaries/IPAddressDictionary.h index c563c3ecd6c..bf0a9755445 100644 --- a/src/Dictionaries/TrieDictionary.h +++ b/src/Dictionaries/IPAddressDictionary.h @@ -19,10 +19,10 @@ namespace DB { -class TrieDictionary final : public IDictionaryBase +class IPAddressDictionary final : public IDictionaryBase { public: - TrieDictionary( + IPAddressDictionary( const StorageID & dict_id_, const DictionaryStructure & dict_struct_, DictionarySourcePtr source_ptr_, @@ -45,7 +45,7 @@ public: std::shared_ptr clone() const override { - return std::make_shared(getDictionaryID(), dict_struct, source_ptr->clone(), dict_lifetime, require_nonempty); + return std::make_shared(getDictionaryID(), dict_struct, source_ptr->clone(), dict_lifetime, require_nonempty); } const IDictionarySource * getSource() const override { return source_ptr.get(); } diff --git a/src/Functions/FunctionsExternalDictionaries.h b/src/Functions/FunctionsExternalDictionaries.h index 0fae3de1fb2..39fb42f0014 100644 --- a/src/Functions/FunctionsExternalDictionaries.h +++ b/src/Functions/FunctionsExternalDictionaries.h @@ -37,7 +37,7 @@ #include #include #include -#include +#include #include #include @@ -192,7 +192,7 @@ private: || (res = executeDispatchComplex(arguments, dict)) #endif #if !defined(ARCADIA_BUILD) - || (res = executeDispatchComplex(arguments, dict)) + || (res = executeDispatchComplex(arguments, dict)) #endif || (res = executeDispatchComplex(arguments, dict)) || (res = executeDispatchComplex(arguments, dict)) @@ -346,7 +346,7 @@ private: || (res = executeDispatchComplex(arguments, dict)) #endif #if !defined(ARCADIA_BUILD) - || (res = executeDispatchComplex(arguments, dict)) + || (res = executeDispatchComplex(arguments, dict)) #endif || (res = executeDispatchComplex(arguments, dict)) || (res = executeDispatchComplex(arguments, dict)) @@ -524,7 +524,7 @@ private: || (res = executeDispatchComplex(arguments, dict)) #endif #if !defined(ARCADIA_BUILD) - || (res = executeDispatchComplex(arguments, dict)) + || (res = executeDispatchComplex(arguments, dict)) #endif || (res = executeDispatchComplex(arguments, dict)) || (res = executeDispatchComplex(arguments, dict)) @@ -861,7 +861,7 @@ private: || (res = executeDispatchComplex(arguments, dict)) #endif #if !defined(ARCADIA_BUILD) - || (res = executeDispatchComplex(arguments, dict)) + || (res = executeDispatchComplex(arguments, dict)) #endif || (res = executeDispatchComplex(arguments, dict)) || (res = executeDispatchComplex(arguments, dict)) @@ -1116,7 +1116,7 @@ private: || (res = executeDispatchComplex(arguments, dict)) #endif #if !defined(ARCADIA_BUILD) - || (res = executeDispatchComplex(arguments, dict)) + || (res = executeDispatchComplex(arguments, dict)) #endif || (res = executeDispatchComplex(arguments, dict)) || (res = executeDispatchComplex(arguments, dict)) From 83f27c8d4f3fd2191ac8784aa76a07b0a6295ceb Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Sun, 22 Nov 2020 12:18:51 +0300 Subject: [PATCH 199/425] Fix libunwind build for cmake 3.19+ --- contrib/libunwind-cmake/CMakeLists.txt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/contrib/libunwind-cmake/CMakeLists.txt b/contrib/libunwind-cmake/CMakeLists.txt index 82b3b9c0de5..3afff30eee7 100644 --- a/contrib/libunwind-cmake/CMakeLists.txt +++ b/contrib/libunwind-cmake/CMakeLists.txt @@ -22,7 +22,16 @@ set_source_files_properties(${LIBUNWIND_C_SOURCES} PROPERTIES COMPILE_FLAGS "-st set(LIBUNWIND_ASM_SOURCES ${LIBUNWIND_SOURCE_DIR}/src/UnwindRegistersRestore.S ${LIBUNWIND_SOURCE_DIR}/src/UnwindRegistersSave.S) -set_source_files_properties(${LIBUNWIND_ASM_SOURCES} PROPERTIES LANGUAGE C) + +# CMake doesn't pass the correct architecture for Apple prior to CMake 3.19 [1] +# Workaround these two issues by compiling as C. +# +# [1]: https://gitlab.kitware.com/cmake/cmake/-/issues/20771 +if (APPLE AND CMAKE_VERSION VERSION_LESS 3.19) + set_source_files_properties(${LIBUNWIND_ASM_SOURCES} PROPERTIES LANGUAGE C) +else() + enable_language(ASM) +endif() set(LIBUNWIND_SOURCES ${LIBUNWIND_CXX_SOURCES} From 9689b293caacb9ed8f2135d3f59b9c1595a99125 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Sun, 22 Nov 2020 00:20:00 +0300 Subject: [PATCH 200/425] Fix "Unexpected packet Data received from client" error Fix query cancelation in case of Distributed queries with LIMIT (when the initator does not required to read all the data), since this cannot be done until the query was sent (from the Query packet up to the empty data Block), otherwise you will get: 2020.11.21 21:47:23.297161 [ 184 ] {} TCPHandler: Code: 101, e.displayText() = DB::Exception: Unexpected packet Data received from client, Stack trace: 0. /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/exception:129: Poco::Exception::Exception(std::__1::basic_string, std::__1::allocator > const&, int) @ 0x244f5bc9 in /usr/bin/clickhouse 1. /build/obj-x86_64-linux-gnu/../src/Common/Exception.cpp:40: DB::Exception::Exception(std::__1::basic_string, std::__1::allocator > const&, int) @ 0xa14a421 in /usr/bin/clickhouse 2. /build/obj-x86_64-linux-gnu/../src/Common/NetException.h:0: DB::TCPHandler::receiveUnexpectedData() @ 0x1e032a74 in /usr/bin/clickhouse 3. /build/obj-x86_64-linux-gnu/../src/Server/TCPHandler.cpp:824: DB::TCPHandler::receivePacket() @ 0x1e024685 in /usr/bin/clickhouse 4. /build/obj-x86_64-linux-gnu/../src/Server/TCPHandler.cpp:178: DB::TCPHandler::runImpl() @ 0x1e01736b in /usr/bin/clickhouse 5. /build/obj-x86_64-linux-gnu/../src/Server/TCPHandler.cpp:0: DB::TCPHandler::run() @ 0x1e035c1b in /usr/bin/clickhouse 6. /build/obj-x86_64-linux-gnu/../contrib/poco/Net/src/TCPServerConnection.cpp:57: Poco::Net::TCPServerConnection::start() @ 0x243559cf in /usr/bin/clickhouse 7. /build/obj-x86_64-linux-gnu/../contrib/poco/Net/src/TCPServerDispatcher.cpp:0: Poco::Net::TCPServerDispatcher::run() @ 0x24356521 in /usr/bin/clickhouse 8. /build/obj-x86_64-linux-gnu/../contrib/poco/Foundation/src/ThreadPool.cpp:0: Poco::PooledThread::run() @ 0x24609175 in /usr/bin/clickhouse 9. /build/obj-x86_64-linux-gnu/../contrib/poco/Foundation/src/Thread_POSIX.cpp:0: Poco::ThreadImpl::runnableEntry(void*) @ 0x24603cb7 in /usr/bin/clickhouse 10. start_thread @ 0x9669 in /usr/lib/x86_64-linux-gnu/libpthread-2.30.so 11. __clone @ 0x1222b3 in /usr/lib/x86_64-linux-gnu/libc-2.30.so --- src/DataStreams/RemoteQueryExecutor.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/DataStreams/RemoteQueryExecutor.cpp b/src/DataStreams/RemoteQueryExecutor.cpp index 38486aa6368..6ee78d80583 100644 --- a/src/DataStreams/RemoteQueryExecutor.cpp +++ b/src/DataStreams/RemoteQueryExecutor.cpp @@ -151,6 +151,17 @@ void RemoteQueryExecutor::sendQuery() if (settings.skip_unavailable_shards && 0 == multiplexed_connections->size()) return; + /// Query cannot be canceled in the middle of the send query, + /// since there are multiple packages: + /// - Query + /// - Data (multiple times) + /// + /// And after the Cancel packet none Data packet can be sent, otherwise the remote side will throw: + /// + /// Unexpected packet Data received from client + /// + std::lock_guard guard(was_cancelled_mutex); + established = true; auto timeouts = ConnectionTimeouts::getTCPTimeoutsWithFailover(settings); From 6b2fa22000a7be9fed448a96d63dafeccf104212 Mon Sep 17 00:00:00 2001 From: zhang2014 Date: Thu, 5 Nov 2020 23:54:31 +0800 Subject: [PATCH 201/425] ISSUES-16605 try fix MySQL handler affected rows when insert select query --- src/Server/MySQLHandler.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Server/MySQLHandler.cpp b/src/Server/MySQLHandler.cpp index c88b9016e84..076a5d72125 100644 --- a/src/Server/MySQLHandler.cpp +++ b/src/Server/MySQLHandler.cpp @@ -328,6 +328,9 @@ void MySQLHandler::comQuery(ReadBuffer & payload) Context query_context = connection_context; + size_t affected_rows = 0; + query_context.setProgressCallback([&](const Progress & progress) { affected_rows += progress.written_rows; }); + executeQuery(should_replace ? replacement : payload, *out, true, query_context, [&with_output](const String &, const String &, const String &, const String &) { @@ -336,7 +339,7 @@ void MySQLHandler::comQuery(ReadBuffer & payload) ); if (!with_output) - packet_endpoint->sendPacket(OKPacket(0x00, client_capability_flags, 0, 0, 0), true); + packet_endpoint->sendPacket(OKPacket(0x00, client_capability_flags, affected_rows, 0, 0), true); } } From a6dbba59324d79d6e50ca635b935c3f52858a6e3 Mon Sep 17 00:00:00 2001 From: zhang2014 Date: Fri, 6 Nov 2020 00:10:27 +0800 Subject: [PATCH 202/425] ISSUES-16605 add integration test --- tests/integration/test_mysql_protocol/test.py | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/integration/test_mysql_protocol/test.py b/tests/integration/test_mysql_protocol/test.py index 04cbef59af7..a8df0db05b7 100644 --- a/tests/integration/test_mysql_protocol/test.py +++ b/tests/integration/test_mysql_protocol/test.py @@ -154,6 +154,36 @@ def test_mysql_client_exception(mysql_client, server_address): "ERROR 1000 (00000) at line 1: Poco::Exception. Code: 1000, e.code() = 2002, e.displayText() = mysqlxx::ConnectionFailed: Can't connect to MySQL server on '127.0.0.1' (115) ((nullptr):0)" +def test_mysql_affected_rows(mysql_client, server_address): + code, (stdout, stderr) = mysql_client.exec_run(''' + mysql --protocol tcp -h {host} -P {port} default -u default --password=123 + -e "CREATE TABLE IF NOT EXISTS default.t1 (n UInt64) ENGINE MergeTree() ORDER BY tuple();" + '''.format(host=server_address, port=server_port), demux=True) + assert code == 0 + + code, (stdout, stderr) = mysql_client.exec_run(''' + mysql -vvv --protocol tcp -h {host} -P {port} default -u default --password=123 + -e "INSERT INTO default.t1(n) VALUES(1);" + '''.format(host=server_address, port=server_port), demux=True) + + assert code == 0 + assert "1 rows affected" in stdout + + code, (stdout, stderr) = mysql_client.exec_run(''' + mysql -vvv --protocol tcp -h {host} -P {port} default -u default --password=123 + -e "INSERT INTO default.t1(n) SELECT * FROM numbers(1000)" + '''.format(host=server_address, port=server_port), demux=True) + + assert code == 0 + assert "1000 rows affected" in stdout + + code, (stdout, stderr) = mysql_client.exec_run(''' + mysql --protocol tcp -h {host} -P {port} default -u default --password=123 + -e "DROP TABLE default.t1;" + '''.format(host=server_address, port=server_port), demux=True) + assert code == 0 + + def test_mysql_replacement_query(mysql_client, server_address): # SHOW TABLE STATUS LIKE. code, (stdout, stderr) = mysql_client.exec_run(''' From 5b3154b2988d735d321c975646853180edf70f48 Mon Sep 17 00:00:00 2001 From: zhang2014 Date: Fri, 6 Nov 2020 09:54:33 +0800 Subject: [PATCH 203/425] ISSUES-16605 try fix integration test failure --- tests/integration/test_mysql_protocol/test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/integration/test_mysql_protocol/test.py b/tests/integration/test_mysql_protocol/test.py index a8df0db05b7..8b4be51191f 100644 --- a/tests/integration/test_mysql_protocol/test.py +++ b/tests/integration/test_mysql_protocol/test.py @@ -167,7 +167,7 @@ def test_mysql_affected_rows(mysql_client, server_address): '''.format(host=server_address, port=server_port), demux=True) assert code == 0 - assert "1 rows affected" in stdout + assert "1 rows affected" in stdout.decode() code, (stdout, stderr) = mysql_client.exec_run(''' mysql -vvv --protocol tcp -h {host} -P {port} default -u default --password=123 @@ -175,7 +175,7 @@ def test_mysql_affected_rows(mysql_client, server_address): '''.format(host=server_address, port=server_port), demux=True) assert code == 0 - assert "1000 rows affected" in stdout + assert "1000 rows affected" in stdout.decode() code, (stdout, stderr) = mysql_client.exec_run(''' mysql --protocol tcp -h {host} -P {port} default -u default --password=123 From e1e5eede869d281d96b3046b43315d6660728807 Mon Sep 17 00:00:00 2001 From: zhang2014 Date: Fri, 6 Nov 2020 18:28:37 +0800 Subject: [PATCH 204/425] ISSUES-16605 try fix integration failure --- tests/integration/test_mysql_protocol/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/test_mysql_protocol/test.py b/tests/integration/test_mysql_protocol/test.py index 8b4be51191f..e2f787f9ee3 100644 --- a/tests/integration/test_mysql_protocol/test.py +++ b/tests/integration/test_mysql_protocol/test.py @@ -167,7 +167,7 @@ def test_mysql_affected_rows(mysql_client, server_address): '''.format(host=server_address, port=server_port), demux=True) assert code == 0 - assert "1 rows affected" in stdout.decode() + assert "1 row affected" in stdout.decode() code, (stdout, stderr) = mysql_client.exec_run(''' mysql -vvv --protocol tcp -h {host} -P {port} default -u default --password=123 From 0985029f49e2614b548990ae261a67297c902df8 Mon Sep 17 00:00:00 2001 From: zhang2014 Date: Wed, 11 Nov 2020 20:46:43 +0800 Subject: [PATCH 205/425] trigger CI From ade04b5dc462b807a9d1496c213ef6cb404b7049 Mon Sep 17 00:00:00 2001 From: zhang2014 Date: Sun, 22 Nov 2020 20:42:55 +0800 Subject: [PATCH 206/425] ISSUES-16605 try fix review comment --- src/Server/MySQLHandler.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Server/MySQLHandler.cpp b/src/Server/MySQLHandler.cpp index 076a5d72125..957930ad43b 100644 --- a/src/Server/MySQLHandler.cpp +++ b/src/Server/MySQLHandler.cpp @@ -328,8 +328,15 @@ void MySQLHandler::comQuery(ReadBuffer & payload) Context query_context = connection_context; - size_t affected_rows = 0; - query_context.setProgressCallback([&](const Progress & progress) { affected_rows += progress.written_rows; }); + std::atomic affected_rows {0}; + auto prev = query_context.getProgressCallback(); + query_context.setProgressCallback([&, prev = prev](const Progress & progress) + { + if (prev) + prev(progress); + + affected_rows += progress.written_rows; + }); executeQuery(should_replace ? replacement : payload, *out, true, query_context, [&with_output](const String &, const String &, const String &, const String &) From 60a5782c75072d52adf9ef2d30d61270cab35c13 Mon Sep 17 00:00:00 2001 From: Alexander Tokmakov Date: Sun, 22 Nov 2020 20:13:40 +0300 Subject: [PATCH 207/425] fix AST formatting in log messages --- base/common/logger_useful.h | 1 - src/Interpreters/InterpreterCreateQuery.cpp | 4 ++-- src/Parsers/formatAST.h | 18 +++++++++++++++++- .../Kafka/ReadBufferFromKafkaConsumer.cpp | 1 + src/Storages/StorageDistributed.cpp | 2 +- 5 files changed, 21 insertions(+), 5 deletions(-) diff --git a/base/common/logger_useful.h b/base/common/logger_useful.h index f760d59de45..d3b4d38d546 100644 --- a/base/common/logger_useful.h +++ b/base/common/logger_useful.h @@ -3,7 +3,6 @@ /// Macros for convenient usage of Poco logger. #include -#include #include #include #include diff --git a/src/Interpreters/InterpreterCreateQuery.cpp b/src/Interpreters/InterpreterCreateQuery.cpp index 88066b8f158..d1c989c5347 100644 --- a/src/Interpreters/InterpreterCreateQuery.cpp +++ b/src/Interpreters/InterpreterCreateQuery.cpp @@ -115,7 +115,7 @@ BlockIO InterpreterCreateQuery::createDatabase(ASTCreateQuery & create) auto ast = DatabaseOnDisk::parseQueryFromMetadata(nullptr, context, metadata_file_path); create = ast->as(); if (!create.table.empty() || !create.storage) - throw Exception(ErrorCodes::INCORRECT_QUERY, "Metadata file {} contains incorrect CREATE DATABASE query", metadata_file_path); + throw Exception(ErrorCodes::INCORRECT_QUERY, "Metadata file {} contains incorrect CREATE DATABASE query", metadata_file_path.string()); create.attach = true; create.attach_short_syntax = true; create.database = database_name; @@ -149,7 +149,7 @@ BlockIO InterpreterCreateQuery::createDatabase(ASTCreateQuery & create) metadata_path = metadata_path / "store" / DatabaseCatalog::getPathForUUID(create.uuid); if (!create.attach && fs::exists(metadata_path)) - throw Exception(ErrorCodes::DATABASE_ALREADY_EXISTS, "Metadata directory {} already exists", metadata_path); + throw Exception(ErrorCodes::DATABASE_ALREADY_EXISTS, "Metadata directory {} already exists", metadata_path.string()); } else { diff --git a/src/Parsers/formatAST.h b/src/Parsers/formatAST.h index 15381b62028..28af2400a4c 100644 --- a/src/Parsers/formatAST.h +++ b/src/Parsers/formatAST.h @@ -1,6 +1,5 @@ #pragma once -#include #include @@ -29,3 +28,20 @@ inline WriteBuffer & operator<<(WriteBuffer & buf, const ASTPtr & ast) } } + +template<> +struct fmt::formatter +{ + template + constexpr auto parse(ParseContext & context) + { + return context.begin(); + } + + template + auto format(const DB::ASTPtr & ast, FormatContext & context) + { + return fmt::format_to(context.out(), "{}", DB::serializeAST(*ast)); + } +}; + diff --git a/src/Storages/Kafka/ReadBufferFromKafkaConsumer.cpp b/src/Storages/Kafka/ReadBufferFromKafkaConsumer.cpp index 4114ab05975..b3ca1579bd1 100644 --- a/src/Storages/Kafka/ReadBufferFromKafkaConsumer.cpp +++ b/src/Storages/Kafka/ReadBufferFromKafkaConsumer.cpp @@ -4,6 +4,7 @@ #include #include +#include #include namespace DB diff --git a/src/Storages/StorageDistributed.cpp b/src/Storages/StorageDistributed.cpp index 911842be5e5..e91ba1fb5c4 100644 --- a/src/Storages/StorageDistributed.cpp +++ b/src/Storages/StorageDistributed.cpp @@ -695,7 +695,7 @@ void StorageDistributed::createDirectoryMonitors(const std::string & disk) if (std::filesystem::is_empty(dir_path)) { - LOG_DEBUG(log, "Removing {} (used for async INSERT into Distributed)", dir_path); + LOG_DEBUG(log, "Removing {} (used for async INSERT into Distributed)", dir_path.string()); /// Will be created by DistributedBlockOutputStream on demand. std::filesystem::remove(dir_path); } From f6041c22804d82c0366bbb45e85e33176f419bda Mon Sep 17 00:00:00 2001 From: Pavel Kovalenko Date: Mon, 23 Nov 2020 00:14:52 +0300 Subject: [PATCH 208/425] Use default value for read-only flag in metadata for Disk3. --- src/Disks/S3/DiskS3.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Disks/S3/DiskS3.cpp b/src/Disks/S3/DiskS3.cpp index 3c75a8980ac..507af58f9fa 100644 --- a/src/Disks/S3/DiskS3.cpp +++ b/src/Disks/S3/DiskS3.cpp @@ -112,7 +112,7 @@ namespace /// Number of references (hardlinks) to this metadata file. UInt32 ref_count; /// Flag indicates that file is read only. - bool read_only; + bool read_only = false; /// Load metadata by path or create empty if `create` flag is set. explicit Metadata(const String & s3_root_path_, const String & disk_path_, const String & metadata_file_path_, bool create = false) From 18491d89206c8c2d95c35c6ff4b3292bd769238f Mon Sep 17 00:00:00 2001 From: feng lv Date: Mon, 23 Nov 2020 05:30:36 +0000 Subject: [PATCH 209/425] fix --- src/Storages/StorageMemory.cpp | 41 ++++++++----------- ...1498_alter_column_storage_memory.reference | 0 .../01498_alter_column_storage_memory.sql | 11 +++++ 3 files changed, 29 insertions(+), 23 deletions(-) create mode 100644 tests/queries/0_stateless/01498_alter_column_storage_memory.reference create mode 100644 tests/queries/0_stateless/01498_alter_column_storage_memory.sql diff --git a/src/Storages/StorageMemory.cpp b/src/Storages/StorageMemory.cpp index b6b6cb6285b..f9227764792 100644 --- a/src/Storages/StorageMemory.cpp +++ b/src/Storages/StorageMemory.cpp @@ -207,7 +207,6 @@ BlockOutputStreamPtr StorageMemory::write(const ASTPtr & /*query*/, const Storag void StorageMemory::drop() { - std::lock_guard lock(mutex); data.set(std::make_unique()); total_size_bytes.store(0, std::memory_order_relaxed); total_size_rows.store(0, std::memory_order_relaxed); @@ -241,49 +240,45 @@ void StorageMemory::mutate(const MutationCommands & commands, const Context & co } in->readSuffix(); + std::unique_ptr new_data; + // all column affected if (interpreter->isAffectingAllColumns()) { - size_t rows = 0; - size_t bytes = 0; - for (const auto & buffer : out) - { - rows += buffer.rows(); - bytes += buffer.bytes(); - } - data.set(std::make_unique(out)); - total_size_bytes.store(rows, std::memory_order_relaxed); - total_size_rows.store(bytes, std::memory_order_relaxed); + new_data = std::make_unique(out); } else { - auto new_data = std::make_unique(*(data.get())); + /// just some of the column affected, we need update it with new column + new_data = std::make_unique(*(data.get())); auto data_it = new_data->begin(); auto out_it = out.begin(); + /// Mutation does not change the number of blocks, so we don't need + // to check whether old data and new data have same number of blocks or not while (data_it != new_data->end() && out_it != out.end()) { updateBlockData(*data_it, *out_it); ++data_it; ++out_it; } - size_t rows = 0; - size_t bytes = 0; - for (const auto & buffer : *new_data) - { - rows += buffer.rows(); - bytes += buffer.bytes(); - } - total_size_bytes.store(rows, std::memory_order_relaxed); - total_size_rows.store(bytes, std::memory_order_relaxed); - data.set(std::move(new_data)); } + + size_t rows = 0; + size_t bytes = 0; + for (const auto & buffer : *new_data) + { + rows += buffer.rows(); + bytes += buffer.bytes(); + } + total_size_bytes.store(rows, std::memory_order_relaxed); + total_size_rows.store(bytes, std::memory_order_relaxed); + data.set(std::move(new_data)); } void StorageMemory::truncate( const ASTPtr &, const StorageMetadataPtr &, const Context &, TableExclusiveLockHolder &) { - std::lock_guard lock(mutex); data.set(std::make_unique()); total_size_bytes.store(0, std::memory_order_relaxed); total_size_rows.store(0, std::memory_order_relaxed); diff --git a/tests/queries/0_stateless/01498_alter_column_storage_memory.reference b/tests/queries/0_stateless/01498_alter_column_storage_memory.reference new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/queries/0_stateless/01498_alter_column_storage_memory.sql b/tests/queries/0_stateless/01498_alter_column_storage_memory.sql new file mode 100644 index 00000000000..5f0b001f178 --- /dev/null +++ b/tests/queries/0_stateless/01498_alter_column_storage_memory.sql @@ -0,0 +1,11 @@ +DROP TABLE IF EXISTS defaults; +CREATE TABLE defaults +( + n Int32, + s String +)ENGINE = Memory(); + +ALTER TABLE defaults ADD COLUMN m Int8; -- { serverError 48 } +ALTER TABLE defaults DROP COLUMN n; -- { serverError 48 } + +DROP TABLE defaults; From 5c3d4b22458611ef310b1d8409f701f641eaa5b6 Mon Sep 17 00:00:00 2001 From: taichong Date: Mon, 9 Nov 2020 17:45:41 +0800 Subject: [PATCH 210/425] add network partition integration test for MaterializeMySQL --- src/Storages/StorageMaterializeMySQL.h | 2 +- .../materialize_with_ddl.py | 29 ++++++++++++++++++- .../test_materialize_mysql_database/test.py | 10 +++++++ 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/src/Storages/StorageMaterializeMySQL.h b/src/Storages/StorageMaterializeMySQL.h index 19532ec9c89..ff86c7abdc2 100644 --- a/src/Storages/StorageMaterializeMySQL.h +++ b/src/Storages/StorageMaterializeMySQL.h @@ -36,7 +36,7 @@ private: StoragePtr getNested() const override { return nested_storage; } [[noreturn]] void throwNotAllowed() const { - throw Exception("This method is not allowed for MaterializeMySQ", ErrorCodes::NOT_IMPLEMENTED); + throw Exception("This method is not allowed for MaterializeMySQL", ErrorCodes::NOT_IMPLEMENTED); } StoragePtr nested_storage; diff --git a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py index f0b69c84be9..8188ab98dde 100644 --- a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py +++ b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py @@ -4,6 +4,7 @@ import pymysql.cursors import pytest from helpers.client import QueryRuntimeException +from helpers.network import PartitionManager def check_query(clickhouse_node, query, result_set, retry_count=60, interval_seconds=3): lastest_result = '' @@ -24,7 +25,6 @@ def dml_with_materialize_mysql_database(clickhouse_node, mysql_node, service_nam clickhouse_node.query("DROP DATABASE IF EXISTS test_database") mysql_node.query("CREATE DATABASE test_database DEFAULT CHARACTER SET 'utf8'") # existed before the mapping was created - mysql_node.query("CREATE TABLE test_database.test_table_1 (" "`key` INT NOT NULL PRIMARY KEY, " "unsigned_tiny_int TINYINT UNSIGNED, tiny_int TINYINT, " @@ -556,3 +556,30 @@ def err_sync_user_privs_with_materialize_mysql_database(clickhouse_node, mysql_n mysql_node.query("DROP DATABASE priv_err_db;") mysql_node.grant_min_priv_for_user("test") + + +def network_partition_test(clickhouse_node, mysql_node, service_name): + mysql_node.query("CREATE DATABASE test_database;") + mysql_node.query("CREATE TABLE test_database.test_table ( `id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB;") + + with PartitionManager() as pm: + clickhouse_node.query( + "CREATE DATABASE test_database ENGINE = MaterializeMySQL('{}:3306', 'test_database', 'root', 'clickhouse')".format(service_name)) + + pm._check_instance(clickhouse_node) + pm._add_rule({'source': clickhouse_node.ip_address, 'destination_port': 3306, 'action': 'DROP'}) + pm._add_rule({'destination': clickhouse_node.ip_address, 'source_port': 3306, 'action': 'DROP'}) + time.sleep(5) + + mysql_node.query('INSERT INTO test_database.test_table VALUES(1)') + check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV", "test_table\n") + check_query(clickhouse_node, "SELECT * FROM test_database.test_table FORMAT TSV", '') + clickhouse_node.query("DETACH DATABASE test_database") + + pm._delete_rule({'source': clickhouse_node.ip_address, 'destination_port': 3306, 'action': 'DROP'}) + pm._delete_rule({'destination': clickhouse_node.ip_address, 'source_port': 3306, 'action': 'DROP'}) + time.sleep(5) + + clickhouse_node.query("ATTACH DATABASE test_database") + check_query(clickhouse_node, "SELECT * FROM test_database.test_table FORMAT TSV", '1\n') + diff --git a/tests/integration/test_materialize_mysql_database/test.py b/tests/integration/test_materialize_mysql_database/test.py index 7881dcc222e..3089a4b5dd1 100644 --- a/tests/integration/test_materialize_mysql_database/test.py +++ b/tests/integration/test_materialize_mysql_database/test.py @@ -31,6 +31,10 @@ class MySQLNodeInstance: self.password = password self.mysql_connection = None # lazy init + def getPort(self): + if self.port is not None: + return self.port + def alloc_connection(self): if self.mysql_connection is None: self.mysql_connection = pymysql.connect(user=self.user, password=self.password, host=self.hostname, @@ -197,3 +201,9 @@ def test_materialize_database_err_sync_user_privs_8_0(started_cluster, started_m "select '\n', thread_id, query_id, arrayStringConcat(arrayMap(x -> concat(demangle(addressToSymbol(x)), '\n ', addressToLine(x)), trace), '\n') AS sym from system.stack_trace format TSVRaw"))) raise +def test_network_partition_5_7(started_cluster, started_mysql_5_7): + materialize_with_ddl.network_partition_test(clickhouse_node, started_mysql_5_7, "mysql1") + +def test_network_partition_8_0(started_cluster, started_mysql_8_0): + materialize_with_ddl.network_partition_test(clickhouse_node, started_mysql_8_0, "mysql8_0") + From 3287f691ee8924179f54120c9251d2c6ec15419b Mon Sep 17 00:00:00 2001 From: taichong Date: Tue, 10 Nov 2020 17:08:12 +0800 Subject: [PATCH 211/425] add some except error test --- .../materialize_with_ddl.py | 32 ++++++++++++++----- .../test_materialize_mysql_database/test.py | 12 +++---- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py index 8188ab98dde..3cdc6863b2b 100644 --- a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py +++ b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py @@ -5,6 +5,8 @@ import pymysql.cursors import pytest from helpers.client import QueryRuntimeException from helpers.network import PartitionManager +import pytest +from helpers.client import QueryRuntimeException def check_query(clickhouse_node, query, result_set, retry_count=60, interval_seconds=3): lastest_result = '' @@ -557,28 +559,42 @@ def err_sync_user_privs_with_materialize_mysql_database(clickhouse_node, mysql_n mysql_node.query("DROP DATABASE priv_err_db;") mysql_node.grant_min_priv_for_user("test") +def restore_instance_mysql_connections(clickhouse_node, pm, action='DROP'): + pm._check_instance(clickhouse_node) + pm._delete_rule({'source': clickhouse_node.ip_address, 'destination_port': 3306, 'action': action}) + pm._delete_rule({'destination': clickhouse_node.ip_address, 'source_port': 3306, 'action': action}) + time.sleep(5) + +def drop_instance_mysql_connections(clickhouse_node, pm, action='DROP'): + pm._check_instance(clickhouse_node) + pm._add_rule({'source': clickhouse_node.ip_address, 'destination_port': 3306, 'action': action}) + pm._add_rule({'destination': clickhouse_node.ip_address, 'source_port': 3306, 'action': action}) + time.sleep(5) def network_partition_test(clickhouse_node, mysql_node, service_name): mysql_node.query("CREATE DATABASE test_database;") + mysql_node.query("CREATE DATABASE test;") mysql_node.query("CREATE TABLE test_database.test_table ( `id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB;") with PartitionManager() as pm: clickhouse_node.query( "CREATE DATABASE test_database ENGINE = MaterializeMySQL('{}:3306', 'test_database', 'root', 'clickhouse')".format(service_name)) - pm._check_instance(clickhouse_node) - pm._add_rule({'source': clickhouse_node.ip_address, 'destination_port': 3306, 'action': 'DROP'}) - pm._add_rule({'destination': clickhouse_node.ip_address, 'source_port': 3306, 'action': 'DROP'}) - time.sleep(5) + drop_instance_mysql_connections(clickhouse_node, pm) mysql_node.query('INSERT INTO test_database.test_table VALUES(1)') check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV", "test_table\n") - check_query(clickhouse_node, "SELECT * FROM test_database.test_table FORMAT TSV", '') + check_query(clickhouse_node, "SELECT * FROM test_database.test_table", '') + + with pytest.raises(QueryRuntimeException) as exception: + clickhouse_node.query( + "CREATE DATABASE test ENGINE = MaterializeMySQL('{}:3306', 'test', 'root', 'clickhouse')".format(service_name)) + + assert "Can't connect to MySQL server" in str(exception.value) + clickhouse_node.query("DETACH DATABASE test_database") - pm._delete_rule({'source': clickhouse_node.ip_address, 'destination_port': 3306, 'action': 'DROP'}) - pm._delete_rule({'destination': clickhouse_node.ip_address, 'source_port': 3306, 'action': 'DROP'}) - time.sleep(5) + restore_instance_mysql_connections(clickhouse_node, pm) clickhouse_node.query("ATTACH DATABASE test_database") check_query(clickhouse_node, "SELECT * FROM test_database.test_table FORMAT TSV", '1\n') diff --git a/tests/integration/test_materialize_mysql_database/test.py b/tests/integration/test_materialize_mysql_database/test.py index 3089a4b5dd1..62a57d020b9 100644 --- a/tests/integration/test_materialize_mysql_database/test.py +++ b/tests/integration/test_materialize_mysql_database/test.py @@ -20,24 +20,22 @@ def started_cluster(): cluster.start() yield cluster finally: - cluster.shutdown() + #cluster.shutdown() + pass class MySQLNodeInstance: - def __init__(self, user='root', password='clickhouse', hostname='127.0.0.1', port=3308): + def __init__(self, user='root', password='clickhouse', ip_address='127.0.0.1', port=3308): self.user = user self.port = port - self.hostname = hostname + self.ip_address = ip_address self.password = password self.mysql_connection = None # lazy init - def getPort(self): - if self.port is not None: - return self.port def alloc_connection(self): if self.mysql_connection is None: - self.mysql_connection = pymysql.connect(user=self.user, password=self.password, host=self.hostname, + self.mysql_connection = pymysql.connect(user=self.user, password=self.password, host=self.ip_address, port=self.port, autocommit=True) return self.mysql_connection From e8628f61e0fde5e888c036a6b427236c40f6fec0 Mon Sep 17 00:00:00 2001 From: taichong Date: Tue, 10 Nov 2020 19:31:20 +0800 Subject: [PATCH 212/425] add mysql kill sync id test --- .../materialize_with_ddl.py | 38 +++++++++++++++++++ .../test_materialize_mysql_database/test.py | 11 ++++++ 2 files changed, 49 insertions(+) diff --git a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py index 3cdc6863b2b..646bd739455 100644 --- a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py +++ b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py @@ -7,6 +7,7 @@ from helpers.client import QueryRuntimeException from helpers.network import PartitionManager import pytest from helpers.client import QueryRuntimeException +import random def check_query(clickhouse_node, query, result_set, retry_count=60, interval_seconds=3): lastest_result = '' @@ -573,6 +574,8 @@ def drop_instance_mysql_connections(clickhouse_node, pm, action='DROP'): def network_partition_test(clickhouse_node, mysql_node, service_name): mysql_node.query("CREATE DATABASE test_database;") + mysql_node.query("DROP DATABASE IF EXISTS test") + clickhouse_node.query("DROP DATABASE IF EXISTS test") mysql_node.query("CREATE DATABASE test;") mysql_node.query("CREATE TABLE test_database.test_table ( `id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB;") @@ -599,3 +602,38 @@ def network_partition_test(clickhouse_node, mysql_node, service_name): clickhouse_node.query("ATTACH DATABASE test_database") check_query(clickhouse_node, "SELECT * FROM test_database.test_table FORMAT TSV", '1\n') + clickhouse_node.query("DROP DATABASE test_database") + mysql_node.query("DROP DATABASE test_database") + +def mysql_kill_sync_thread_restore_test(clickhouse_node, mysql_node, service_name): + mysql_node.query("CREATE DATABASE test_database;") + mysql_node.query("CREATE TABLE test_database.test_table ( `id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB;") + mysql_node.query("INSERT INTO test_database.test_table VALUES (1)") + + clickhouse_node.query("CREATE DATABASE test_database ENGINE = MaterializeMySQL('{}:3306', 'test_database', 'root', 'clickhouse')".format(service_name)) + check_query(clickhouse_node, "SELECT * FROM test_database.test_table FORMAT TSV", '1\n') + + result = mysql_node.query_and_get_data("select id from information_schema.processlist where STATE='Master has sent all binlog to slave; waiting for more updates'") + + for row in result: + row_result = {} + query = "kill " + str(row[0]) + ";" + mysql_node.query(query) + + time.sleep(5) + + with pytest.raises(QueryRuntimeException) as exception: + clickhouse_node.query("SELECT * FROM test_database.test_table") + assert "Cannot read all data" in str(exception.value) + + check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV;", 'test_table\n') + clickhouse_node.query("DETACH DATABASE test_database") + clickhouse_node.query("ATTACH DATABASE test_database") + check_query(clickhouse_node, "SELECT * FROM test_database.test_table FORMAT TSV", '1\n') + + mysql_node.query("INSERT INTO test_database.test_table VALUES (2)") + check_query(clickhouse_node, "SELECT * FROM test_database.test_table FORMAT TSV", '2\n1\n') + + mysql_node.query("DROP DATABASE test_database") + clickhouse_node.query("DROP DATABASE test_database") + diff --git a/tests/integration/test_materialize_mysql_database/test.py b/tests/integration/test_materialize_mysql_database/test.py index 62a57d020b9..23aea0a7907 100644 --- a/tests/integration/test_materialize_mysql_database/test.py +++ b/tests/integration/test_materialize_mysql_database/test.py @@ -57,6 +57,11 @@ class MySQLNodeInstance: if result is not None: print(cursor.fetchall()) + def query_and_get_data(self, executio_query): + with self.alloc_connection().cursor() as cursor: + cursor.execute(executio_query) + return cursor.fetchall() + def close(self): if self.mysql_connection is not None: self.mysql_connection.close() @@ -205,3 +210,9 @@ def test_network_partition_5_7(started_cluster, started_mysql_5_7): def test_network_partition_8_0(started_cluster, started_mysql_8_0): materialize_with_ddl.network_partition_test(clickhouse_node, started_mysql_8_0, "mysql8_0") +def test_mysql_kill_sync_thread_restore_5_7(started_cluster, started_mysql_5_7): + materialize_with_ddl.mysql_kill_sync_thread_restore_test(clickhouse_node, started_mysql_5_7, "mysql1") + +def test_mysql_kill_sync_thread_restore_8_0(started_cluster, started_mysql_8_0): + materialize_with_ddl.mysql_kill_sync_thread_restore_test(clickhouse_node, started_mysql_8_0, "mysql8_0") + From e691b4a0d46a25c376262095d1536e7477a1b1d0 Mon Sep 17 00:00:00 2001 From: taichong Date: Mon, 9 Nov 2020 17:45:41 +0800 Subject: [PATCH 213/425] add network partition integration test for MaterializeMySQL --- .../test_materialize_mysql_database/materialize_with_ddl.py | 3 --- tests/integration/test_materialize_mysql_database/test.py | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py index 646bd739455..9a2b08e9ea4 100644 --- a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py +++ b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py @@ -5,9 +5,6 @@ import pymysql.cursors import pytest from helpers.client import QueryRuntimeException from helpers.network import PartitionManager -import pytest -from helpers.client import QueryRuntimeException -import random def check_query(clickhouse_node, query, result_set, retry_count=60, interval_seconds=3): lastest_result = '' diff --git a/tests/integration/test_materialize_mysql_database/test.py b/tests/integration/test_materialize_mysql_database/test.py index 23aea0a7907..81d3037ca86 100644 --- a/tests/integration/test_materialize_mysql_database/test.py +++ b/tests/integration/test_materialize_mysql_database/test.py @@ -32,6 +32,9 @@ class MySQLNodeInstance: self.password = password self.mysql_connection = None # lazy init + def getPort(self): + if self.port is not None: + return self.port def alloc_connection(self): if self.mysql_connection is None: From 81bdf5008536fc5584d8822f9dafbc63c19ddd02 Mon Sep 17 00:00:00 2001 From: taichong Date: Tue, 10 Nov 2020 17:08:12 +0800 Subject: [PATCH 214/425] add some except error test --- .../test_materialize_mysql_database/materialize_with_ddl.py | 2 ++ tests/integration/test_materialize_mysql_database/test.py | 3 --- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py index 9a2b08e9ea4..30c2f48a079 100644 --- a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py +++ b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py @@ -5,6 +5,8 @@ import pymysql.cursors import pytest from helpers.client import QueryRuntimeException from helpers.network import PartitionManager +import pytest +from helpers.client import QueryRuntimeException def check_query(clickhouse_node, query, result_set, retry_count=60, interval_seconds=3): lastest_result = '' diff --git a/tests/integration/test_materialize_mysql_database/test.py b/tests/integration/test_materialize_mysql_database/test.py index 81d3037ca86..23aea0a7907 100644 --- a/tests/integration/test_materialize_mysql_database/test.py +++ b/tests/integration/test_materialize_mysql_database/test.py @@ -32,9 +32,6 @@ class MySQLNodeInstance: self.password = password self.mysql_connection = None # lazy init - def getPort(self): - if self.port is not None: - return self.port def alloc_connection(self): if self.mysql_connection is None: From 5a50535abc9522841865a8ccf572b03ade8fafaa Mon Sep 17 00:00:00 2001 From: taichong Date: Tue, 10 Nov 2020 19:31:20 +0800 Subject: [PATCH 215/425] add mysql kill sync id test --- .../test_materialize_mysql_database/materialize_with_ddl.py | 1 + tests/integration/test_materialize_mysql_database/test.py | 3 +++ 2 files changed, 4 insertions(+) diff --git a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py index 30c2f48a079..646bd739455 100644 --- a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py +++ b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py @@ -7,6 +7,7 @@ from helpers.client import QueryRuntimeException from helpers.network import PartitionManager import pytest from helpers.client import QueryRuntimeException +import random def check_query(clickhouse_node, query, result_set, retry_count=60, interval_seconds=3): lastest_result = '' diff --git a/tests/integration/test_materialize_mysql_database/test.py b/tests/integration/test_materialize_mysql_database/test.py index 23aea0a7907..41dc7d3ca54 100644 --- a/tests/integration/test_materialize_mysql_database/test.py +++ b/tests/integration/test_materialize_mysql_database/test.py @@ -215,4 +215,7 @@ def test_mysql_kill_sync_thread_restore_5_7(started_cluster, started_mysql_5_7): def test_mysql_kill_sync_thread_restore_8_0(started_cluster, started_mysql_8_0): materialize_with_ddl.mysql_kill_sync_thread_restore_test(clickhouse_node, started_mysql_8_0, "mysql8_0") +<<<<<<< HEAD +======= +>>>>>>> add mysql kill sync id test From 714767f491b85f16c877d36a3cd7b646c64944c0 Mon Sep 17 00:00:00 2001 From: taichong Date: Mon, 16 Nov 2020 17:01:18 +0800 Subject: [PATCH 216/425] make it normal --- .../test_materialize_mysql_database/materialize_with_ddl.py | 4 +--- tests/integration/test_materialize_mysql_database/test.py | 3 +-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py index 646bd739455..ef2d7fcbace 100644 --- a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py +++ b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py @@ -620,8 +620,6 @@ def mysql_kill_sync_thread_restore_test(clickhouse_node, mysql_node, service_nam query = "kill " + str(row[0]) + ";" mysql_node.query(query) - time.sleep(5) - with pytest.raises(QueryRuntimeException) as exception: clickhouse_node.query("SELECT * FROM test_database.test_table") assert "Cannot read all data" in str(exception.value) @@ -632,7 +630,7 @@ def mysql_kill_sync_thread_restore_test(clickhouse_node, mysql_node, service_nam check_query(clickhouse_node, "SELECT * FROM test_database.test_table FORMAT TSV", '1\n') mysql_node.query("INSERT INTO test_database.test_table VALUES (2)") - check_query(clickhouse_node, "SELECT * FROM test_database.test_table FORMAT TSV", '2\n1\n') + check_query(clickhouse_node, "SELECT * FROM test_database.test_table ORDER BY id FORMAT TSV", '1\n2\n') mysql_node.query("DROP DATABASE test_database") clickhouse_node.query("DROP DATABASE test_database") diff --git a/tests/integration/test_materialize_mysql_database/test.py b/tests/integration/test_materialize_mysql_database/test.py index 41dc7d3ca54..ca8c522e3f3 100644 --- a/tests/integration/test_materialize_mysql_database/test.py +++ b/tests/integration/test_materialize_mysql_database/test.py @@ -20,8 +20,7 @@ def started_cluster(): cluster.start() yield cluster finally: - #cluster.shutdown() - pass + cluster.shutdown() class MySQLNodeInstance: From 122740767f3bc7c7eeb00ef375c4048b52da8822 Mon Sep 17 00:00:00 2001 From: taichong Date: Tue, 17 Nov 2020 17:47:25 +0800 Subject: [PATCH 217/425] add integration test err --- .../materialize_with_ddl.py | 47 +++++++++++++------ .../test_materialize_mysql_database/test.py | 21 ++------- 2 files changed, 37 insertions(+), 31 deletions(-) diff --git a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py index ef2d7fcbace..7a7f0620090 100644 --- a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py +++ b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py @@ -9,7 +9,7 @@ import pytest from helpers.client import QueryRuntimeException import random -def check_query(clickhouse_node, query, result_set, retry_count=60, interval_seconds=3): +def check_query(clickhouse_node, query, result_set, retry_count=10, interval_seconds=3): lastest_result = '' for index in range(retry_count): lastest_result = clickhouse_node.query(query) @@ -560,6 +560,7 @@ def err_sync_user_privs_with_materialize_mysql_database(clickhouse_node, mysql_n mysql_node.query("DROP DATABASE priv_err_db;") mysql_node.grant_min_priv_for_user("test") + def restore_instance_mysql_connections(clickhouse_node, pm, action='DROP'): pm._check_instance(clickhouse_node) pm._delete_rule({'source': clickhouse_node.ip_address, 'destination_port': 3306, 'action': action}) @@ -573,20 +574,22 @@ def drop_instance_mysql_connections(clickhouse_node, pm, action='DROP'): time.sleep(5) def network_partition_test(clickhouse_node, mysql_node, service_name): - mysql_node.query("CREATE DATABASE test_database;") + clickhouse_node.query("DROP DATABASE IF EXISTS test_database") + clickhouse_node.query("DROP DATABASE IF EXISTS test") + mysql_node.query("DROP DATABASE IF EXISTS test_database") mysql_node.query("DROP DATABASE IF EXISTS test") - clickhouse_node.query("DROP DATABASE IF EXISTS test") - mysql_node.query("CREATE DATABASE test;") + mysql_node.query("CREATE DATABASE test_database;") mysql_node.query("CREATE TABLE test_database.test_table ( `id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB;") + mysql_node.query("CREATE DATABASE test;") + + clickhouse_node.query( + "CREATE DATABASE test_database ENGINE = MaterializeMySQL('{}:3306', 'test_database', 'root', 'clickhouse')".format(service_name)) + check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV", "test_table\n") + with PartitionManager() as pm: - clickhouse_node.query( - "CREATE DATABASE test_database ENGINE = MaterializeMySQL('{}:3306', 'test_database', 'root', 'clickhouse')".format(service_name)) - drop_instance_mysql_connections(clickhouse_node, pm) - mysql_node.query('INSERT INTO test_database.test_table VALUES(1)') - check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV", "test_table\n") check_query(clickhouse_node, "SELECT * FROM test_database.test_table", '') with pytest.raises(QueryRuntimeException) as exception: @@ -595,17 +598,29 @@ def network_partition_test(clickhouse_node, mysql_node, service_name): assert "Can't connect to MySQL server" in str(exception.value) - clickhouse_node.query("DETACH DATABASE test_database") - restore_instance_mysql_connections(clickhouse_node, pm) + clickhouse_node.query("DETACH DATABASE test_database") clickhouse_node.query("ATTACH DATABASE test_database") + check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV", 'test_table\n') check_query(clickhouse_node, "SELECT * FROM test_database.test_table FORMAT TSV", '1\n') + clickhouse_node.query( + "CREATE DATABASE test ENGINE = MaterializeMySQL('{}:3306', 'test', 'root', 'clickhouse')".format(service_name)) + check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV", "test_table\n") + + mysql_node.query("CREATE TABLE test.test ( `id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB;") + check_query(clickhouse_node, "SHOW TABLES FROM test FORMAT TSV", "test\n") + clickhouse_node.query("DROP DATABASE test_database") + clickhouse_node.query("DROP DATABASE test") mysql_node.query("DROP DATABASE test_database") + mysql_node.query("DROP DATABASE test") + def mysql_kill_sync_thread_restore_test(clickhouse_node, mysql_node, service_name): + clickhouse_node.query("DROP DATABASE IF EXISTS test_database;") + mysql_node.query("DROP DATABASE IF EXISTS test_database;") mysql_node.query("CREATE DATABASE test_database;") mysql_node.query("CREATE TABLE test_database.test_table ( `id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB;") mysql_node.query("INSERT INTO test_database.test_table VALUES (1)") @@ -613,7 +628,8 @@ def mysql_kill_sync_thread_restore_test(clickhouse_node, mysql_node, service_nam clickhouse_node.query("CREATE DATABASE test_database ENGINE = MaterializeMySQL('{}:3306', 'test_database', 'root', 'clickhouse')".format(service_name)) check_query(clickhouse_node, "SELECT * FROM test_database.test_table FORMAT TSV", '1\n') - result = mysql_node.query_and_get_data("select id from information_schema.processlist where STATE='Master has sent all binlog to slave; waiting for more updates'") + get_sync_id_query = "select id from information_schema.processlist where STATE='Master has sent all binlog to slave; waiting for more updates'" + result = mysql_node.query_and_get_data(get_sync_id_query) for row in result: row_result = {} @@ -621,17 +637,20 @@ def mysql_kill_sync_thread_restore_test(clickhouse_node, mysql_node, service_nam mysql_node.query(query) with pytest.raises(QueryRuntimeException) as exception: + # https://dev.mysql.com/doc/refman/5.7/en/kill.html + # When you use KILL, a thread-specific kill flag is set for the thread. In most cases, it might take some time for the thread to die because the kill flag is checked only at specific intervals: + time.sleep(3) clickhouse_node.query("SELECT * FROM test_database.test_table") assert "Cannot read all data" in str(exception.value) check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV;", 'test_table\n') clickhouse_node.query("DETACH DATABASE test_database") clickhouse_node.query("ATTACH DATABASE test_database") + check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV", 'test_table\n') check_query(clickhouse_node, "SELECT * FROM test_database.test_table FORMAT TSV", '1\n') mysql_node.query("INSERT INTO test_database.test_table VALUES (2)") check_query(clickhouse_node, "SELECT * FROM test_database.test_table ORDER BY id FORMAT TSV", '1\n2\n') - mysql_node.query("DROP DATABASE test_database") clickhouse_node.query("DROP DATABASE test_database") - + mysql_node.query("DROP DATABASE test_database") diff --git a/tests/integration/test_materialize_mysql_database/test.py b/tests/integration/test_materialize_mysql_database/test.py index ca8c522e3f3..e16d6a3cf8e 100644 --- a/tests/integration/test_materialize_mysql_database/test.py +++ b/tests/integration/test_materialize_mysql_database/test.py @@ -187,21 +187,11 @@ def test_insert_with_modify_binlog_checksum_8_0(started_cluster, started_mysql_8 def test_materialize_database_err_sync_user_privs_5_7(started_cluster, started_mysql_5_7): - try: - materialize_with_ddl.err_sync_user_privs_with_materialize_mysql_database(clickhouse_node, started_mysql_5_7, "mysql1") - except: - print((clickhouse_node.query( - "select '\n', thread_id, query_id, arrayStringConcat(arrayMap(x -> concat(demangle(addressToSymbol(x)), '\n ', addressToLine(x)), trace), '\n') AS sym from system.stack_trace format TSVRaw"))) - raise - + materialize_with_ddl.err_sync_user_privs_with_materialize_mysql_database(clickhouse_node, started_mysql_5_7, "mysql1") def test_materialize_database_err_sync_user_privs_8_0(started_cluster, started_mysql_8_0): - try: - materialize_with_ddl.err_sync_user_privs_with_materialize_mysql_database(clickhouse_node, started_mysql_8_0, "mysql8_0") - except: - print((clickhouse_node.query( - "select '\n', thread_id, query_id, arrayStringConcat(arrayMap(x -> concat(demangle(addressToSymbol(x)), '\n ', addressToLine(x)), trace), '\n') AS sym from system.stack_trace format TSVRaw"))) - raise + materialize_with_ddl.err_sync_user_privs_with_materialize_mysql_database(clickhouse_node, started_mysql_8_0, "mysql8_0") + def test_network_partition_5_7(started_cluster, started_mysql_5_7): materialize_with_ddl.network_partition_test(clickhouse_node, started_mysql_5_7, "mysql1") @@ -209,12 +199,9 @@ def test_network_partition_5_7(started_cluster, started_mysql_5_7): def test_network_partition_8_0(started_cluster, started_mysql_8_0): materialize_with_ddl.network_partition_test(clickhouse_node, started_mysql_8_0, "mysql8_0") + def test_mysql_kill_sync_thread_restore_5_7(started_cluster, started_mysql_5_7): materialize_with_ddl.mysql_kill_sync_thread_restore_test(clickhouse_node, started_mysql_5_7, "mysql1") def test_mysql_kill_sync_thread_restore_8_0(started_cluster, started_mysql_8_0): materialize_with_ddl.mysql_kill_sync_thread_restore_test(clickhouse_node, started_mysql_8_0, "mysql8_0") -<<<<<<< HEAD - -======= ->>>>>>> add mysql kill sync id test From f99d6ea7992edfeaab551ae0a0d23454c1a0ba69 Mon Sep 17 00:00:00 2001 From: taichong Date: Thu, 19 Nov 2020 09:56:47 +0800 Subject: [PATCH 218/425] add ck & mysql killed while insert --- .../materialize_with_ddl.py | 7 +++++++ .../test_materialize_mysql_database/test.py | 14 ++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py index 7a7f0620090..e487191ef43 100644 --- a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py +++ b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py @@ -654,3 +654,10 @@ def mysql_kill_sync_thread_restore_test(clickhouse_node, mysql_node, service_nam clickhouse_node.query("DROP DATABASE test_database") mysql_node.query("DROP DATABASE test_database") + + +def mysql_killed_while_insert(clickhouse_node, mysql_node, service_name): + pass + +def clickhouse_killed_while_insert(clickhouse_node, mysql_node, service_name): + pass diff --git a/tests/integration/test_materialize_mysql_database/test.py b/tests/integration/test_materialize_mysql_database/test.py index e16d6a3cf8e..f184dd1cf02 100644 --- a/tests/integration/test_materialize_mysql_database/test.py +++ b/tests/integration/test_materialize_mysql_database/test.py @@ -205,3 +205,17 @@ def test_mysql_kill_sync_thread_restore_5_7(started_cluster, started_mysql_5_7): def test_mysql_kill_sync_thread_restore_8_0(started_cluster, started_mysql_8_0): materialize_with_ddl.mysql_kill_sync_thread_restore_test(clickhouse_node, started_mysql_8_0, "mysql8_0") + + +def test_mysql_killed_while_insert_5_7(started_cluster, started_mysql_5_7): + materialize_with_ddl.mysql_killed_while_insert(clickhouse_node, started_mysql_5_7, "mysql1") + +def test_mysql_killed_while_insert_8_0(started_cluster, started_mysql_8_0): + materialize_with_ddl.mysql_killed_while_insert(clickhouse_node, started_mysql_8_0, "mysql8_0") + + +def test_clickhouse_killed_while_insert_5_7(started_cluster, started_mysql_5_7): + materialize_with_ddl.clickhouse_killed_while_insert(clickhouse_node, started_mysql_5_7, "mysql1") + +def test_clickhouse_killed_while_insert_8_0(started_cluster, started_mysql_8_0): + materialize_with_ddl.clickhouse_killed_while_insert(clickhouse_node, started_mysql_8_0, "mysql8_0") From fdde2d1e8aae33683772ddb5dfa8d9f5653091b9 Mon Sep 17 00:00:00 2001 From: lichengxiang Date: Mon, 23 Nov 2020 17:06:59 +0800 Subject: [PATCH 219/425] fix #17294: Distinct on subquery with group by may return duplicate result --- src/Processors/QueryPlan/DistinctStep.cpp | 10 +++++++--- .../01582_distinct_subquery_groupby.reference | 9 +++++++++ .../01582_distinct_subquery_groupby.sql | 18 ++++++++++++++++++ 3 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 tests/queries/0_stateless/01582_distinct_subquery_groupby.reference create mode 100644 tests/queries/0_stateless/01582_distinct_subquery_groupby.sql diff --git a/src/Processors/QueryPlan/DistinctStep.cpp b/src/Processors/QueryPlan/DistinctStep.cpp index 8c7195e36b7..0628048411a 100644 --- a/src/Processors/QueryPlan/DistinctStep.cpp +++ b/src/Processors/QueryPlan/DistinctStep.cpp @@ -9,9 +9,13 @@ namespace DB static bool checkColumnsAlreadyDistinct(const Names & columns, const NameSet & distinct_names) { bool columns_already_distinct = true; - for (const auto & name : columns) - if (distinct_names.count(name) == 0) - columns_already_distinct = false; + if (columns.size() != distinct_names.size()) { + columns_already_distinct = false; + } else { + for (const auto & name : columns) + if (distinct_names.count(name) == 0) + columns_already_distinct = false; + } return columns_already_distinct; } diff --git a/tests/queries/0_stateless/01582_distinct_subquery_groupby.reference b/tests/queries/0_stateless/01582_distinct_subquery_groupby.reference new file mode 100644 index 00000000000..69d09141fb3 --- /dev/null +++ b/tests/queries/0_stateless/01582_distinct_subquery_groupby.reference @@ -0,0 +1,9 @@ +a 0 +a 1 +b 0 +--- +0 +1 +--- +0 +1 diff --git a/tests/queries/0_stateless/01582_distinct_subquery_groupby.sql b/tests/queries/0_stateless/01582_distinct_subquery_groupby.sql new file mode 100644 index 00000000000..08aad8421c0 --- /dev/null +++ b/tests/queries/0_stateless/01582_distinct_subquery_groupby.sql @@ -0,0 +1,18 @@ +DROP TABLE IF EXISTS t; +DROP TABLE IF EXISTS d; + +CREATE TABLE t (a String, b Int) ENGINE = TinyLog; +INSERT INTO t VALUES ('a', 0), ('a', 1), ('b', 0); +SELECT * FROM t; + +SELECT '---'; +CREATE TABLE d (a String, b Int) ENGINE = Distributed(test_shard_localhost, currentDatabase(), t); +SELECT DISTINCT b FROM (SELECT a, b FROM d GROUP BY a, b); +DROP TABLE d; + +SELECT '---'; +CREATE TABLE d (a String, b Int) ENGINE = Distributed(test_cluster_two_shards_localhost, currentDatabase(), t); +SELECT DISTINCT b FROM (SELECT a, b FROM d GROUP BY a, b); +DROP TABLE d; + +DROP TABLE t; From f38db2d42160494aaa747234c4b1fc1b8f5681a9 Mon Sep 17 00:00:00 2001 From: alexey-milovidov Date: Mon, 23 Nov 2020 12:51:59 +0300 Subject: [PATCH 220/425] Update 01560_merge_distributed_join.sql --- tests/queries/0_stateless/01560_merge_distributed_join.sql | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/queries/0_stateless/01560_merge_distributed_join.sql b/tests/queries/0_stateless/01560_merge_distributed_join.sql index 5f0a8b0f99c..991a0609dcd 100644 --- a/tests/queries/0_stateless/01560_merge_distributed_join.sql +++ b/tests/queries/0_stateless/01560_merge_distributed_join.sql @@ -12,3 +12,8 @@ CREATE TABLE products as prod_hist ENGINE = Merge(currentDatabase(), '^products_ SELECT * FROM products AS p LEFT JOIN cat_hist AS c USING (categoryId); SELECT * FROM products AS p GLOBAL LEFT JOIN cat_hist AS c USING (categoryId); + +DROP TABLE cat_hist; +DROP TABLE prod_hist; +DROP TABLE products_l; +DROP TABLE products; From a6c2a90756b8fa49747c510b4b5673f5798ca3bb Mon Sep 17 00:00:00 2001 From: taichong Date: Fri, 20 Nov 2020 13:59:03 +0800 Subject: [PATCH 221/425] modify integration test materialize mysql database 1. fix asan test err 2. reset pymysql conn if ping err 3. finish mysql & ck killed test 4. modify check_query --- .../runner/compose/docker_compose_mysql.yml | 4 +- .../compose/docker_compose_mysql_8_0.yml | 2 +- src/Databases/MySQL/MaterializeMetadata.cpp | 8 +- src/Databases/MySQL/MaterializeMetadata.h | 2 +- tests/integration/helpers/cluster.py | 7 +- .../materialize_with_ddl.py | 113 +++++++++++++----- .../test_materialize_mysql_database/test.py | 23 ++-- 7 files changed, 108 insertions(+), 51 deletions(-) diff --git a/docker/test/integration/runner/compose/docker_compose_mysql.yml b/docker/test/integration/runner/compose/docker_compose_mysql.yml index 2f09c2c01e3..e7d762203ee 100644 --- a/docker/test/integration/runner/compose/docker_compose_mysql.yml +++ b/docker/test/integration/runner/compose/docker_compose_mysql.yml @@ -2,9 +2,9 @@ version: '2.3' services: mysql1: image: mysql:5.7 - restart: always + restart: 'no' environment: MYSQL_ROOT_PASSWORD: clickhouse ports: - 3308:3306 - command: --server_id=100 --log-bin='mysql-bin-1.log' --default-time-zone='+3:00' --gtid-mode="ON" --enforce-gtid-consistency \ No newline at end of file + command: --server_id=100 --log-bin='mysql-bin-1.log' --default-time-zone='+3:00' --gtid-mode="ON" --enforce-gtid-consistency diff --git a/docker/test/integration/runner/compose/docker_compose_mysql_8_0.yml b/docker/test/integration/runner/compose/docker_compose_mysql_8_0.yml index 1aa97f59a83..918a2b5f80f 100644 --- a/docker/test/integration/runner/compose/docker_compose_mysql_8_0.yml +++ b/docker/test/integration/runner/compose/docker_compose_mysql_8_0.yml @@ -2,7 +2,7 @@ version: '2.3' services: mysql8_0: image: mysql:8.0 - restart: always + restart: 'no' environment: MYSQL_ROOT_PASSWORD: clickhouse ports: diff --git a/src/Databases/MySQL/MaterializeMetadata.cpp b/src/Databases/MySQL/MaterializeMetadata.cpp index c001955a8ae..1acc0e78b6c 100644 --- a/src/Databases/MySQL/MaterializeMetadata.cpp +++ b/src/Databases/MySQL/MaterializeMetadata.cpp @@ -131,7 +131,7 @@ static Block getShowMasterLogHeader(const String & mysql_version) }; } -static bool checkSyncUserPrivImpl(mysqlxx::PoolWithFailover::Entry & connection, WriteBuffer & out) +static bool checkSyncUserPrivImpl(const mysqlxx::PoolWithFailover::Entry & connection, WriteBuffer & out) { Block sync_user_privs_header { @@ -163,7 +163,7 @@ static bool checkSyncUserPrivImpl(mysqlxx::PoolWithFailover::Entry & connection, return false; } -static void checkSyncUserPriv(mysqlxx::PoolWithFailover::Entry & connection) +static void checkSyncUserPriv(const mysqlxx::PoolWithFailover::Entry & connection) { WriteBufferFromOwnString out; @@ -174,7 +174,7 @@ static void checkSyncUserPriv(mysqlxx::PoolWithFailover::Entry & connection) "But the SYNC USER grant query is: " + out.str(), ErrorCodes::SYNC_MYSQL_USER_ACCESS_ERROR); } -bool MaterializeMetadata::checkBinlogFileExists(mysqlxx::PoolWithFailover::Entry & connection, const String & mysql_version) const +bool MaterializeMetadata::checkBinlogFileExists(const mysqlxx::PoolWithFailover::Entry & connection, const String & mysql_version) const { MySQLBlockInputStream input(connection, "SHOW MASTER LOGS", getShowMasterLogHeader(mysql_version), DEFAULT_BLOCK_SIZE); @@ -182,7 +182,7 @@ bool MaterializeMetadata::checkBinlogFileExists(mysqlxx::PoolWithFailover::Entry { for (size_t index = 0; index < block.rows(); ++index) { - const auto & log_name = (*block.getByPosition(0).column)[index].safeGet(); + const auto log_name = (*block.getByPosition(0).column)[index].safeGet(); if (log_name == binlog_file) return true; } diff --git a/src/Databases/MySQL/MaterializeMetadata.h b/src/Databases/MySQL/MaterializeMetadata.h index 94dfc73e5df..545d162ca18 100644 --- a/src/Databases/MySQL/MaterializeMetadata.h +++ b/src/Databases/MySQL/MaterializeMetadata.h @@ -41,7 +41,7 @@ struct MaterializeMetadata void fetchMasterVariablesValue(const mysqlxx::PoolWithFailover::Entry & connection); - bool checkBinlogFileExists(mysqlxx::PoolWithFailover::Entry & connection, const String & mysql_version) const; + bool checkBinlogFileExists(const mysqlxx::PoolWithFailover::Entry & connection, const String & mysql_version) const; void transaction(const MySQLReplication::Position & position, const std::function & fun); diff --git a/tests/integration/helpers/cluster.py b/tests/integration/helpers/cluster.py index 7c44065320b..78f1c4c081f 100644 --- a/tests/integration/helpers/cluster.py +++ b/tests/integration/helpers/cluster.py @@ -436,9 +436,10 @@ class ClickHouseCluster: while time.time() - start < timeout: try: conn = pymysql.connect(user='root', password='clickhouse', host='127.0.0.1', port=3308) - conn.close() - print("Mysql Started") - return + if conn.ping(): + conn.close() + print("Mysql Started") + return except Exception as ex: print("Can't connect to MySQL " + str(ex)) time.sleep(0.5) diff --git a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py index e487191ef43..5747f441f40 100644 --- a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py +++ b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py @@ -1,26 +1,33 @@ import time import pymysql.cursors - +import subprocess import pytest from helpers.client import QueryRuntimeException from helpers.network import PartitionManager import pytest from helpers.client import QueryRuntimeException +from helpers.cluster import get_docker_compose_path import random -def check_query(clickhouse_node, query, result_set, retry_count=10, interval_seconds=3): +import threading +from multiprocessing.dummy import Pool + +def check_query(clickhouse_node, query, result_set, retry_count=60, interval_seconds=3): lastest_result = '' - for index in range(retry_count): - lastest_result = clickhouse_node.query(query) + for i in range(retry_count): + try: + lastest_result = clickhouse_node.query(query) + if result_set == lastest_result: + return - if result_set == lastest_result: - return - - print(lastest_result) - time.sleep(interval_seconds) - - assert lastest_result == result_set + print(lastest_result) + time.sleep(interval_seconds) + except Exception as e: + print(("check_query retry {} exception {}".format(i + 1, e))) + time.sleep(interval_seconds) + else: + assert clickhouse_node.query(query) == result_set def dml_with_materialize_mysql_database(clickhouse_node, mysql_node, service_name): @@ -53,7 +60,7 @@ def dml_with_materialize_mysql_database(clickhouse_node, mysql_node, service_nam service_name)) assert "test_database" in clickhouse_node.query("SHOW DATABASES") - check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV", "test_table_1\n") + check_query(clickhouse_node, "SELECT * FROM test_database.test_table_1 ORDER BY key FORMAT TSV", "1\t1\t-1\t2\t-2\t3\t-3\t4\t-4\t5\t-5\t6\t-6\t3.2\t-3.2\t3.4\t-3.4\tvarchar\tchar\t2020-01-01\t" "2020-01-01 00:00:00\t2020-01-01 00:00:00\t1\n") @@ -118,7 +125,7 @@ def materialize_mysql_database_with_datetime_and_decimal(clickhouse_node, mysql_ clickhouse_node.query("CREATE DATABASE test_database ENGINE = MaterializeMySQL('{}:3306', 'test_database', 'root', 'clickhouse')".format(service_name)) assert "test_database" in clickhouse_node.query("SHOW DATABASES") - check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV", "test_table_1\n") + check_query(clickhouse_node, "SELECT * FROM test_database.test_table_1 ORDER BY key FORMAT TSV", "1\t2020-01-01 01:02:03.999999\t2020-01-01 01:02:03.999\t" + ('9' * 35) + "." + ('9' * 30) + "\n" "2\t2020-01-01 01:02:03.000000\t2020-01-01 01:02:03.000\t0." + ('0' * 29) + "1\n" @@ -130,7 +137,7 @@ def materialize_mysql_database_with_datetime_and_decimal(clickhouse_node, mysql_ mysql_node.query("INSERT INTO test_database.test_table_2 VALUES(2, '2020-01-01 01:02:03.000000', '2020-01-01 01:02:03.000', ." + ('0' * 29) + "1)") mysql_node.query("INSERT INTO test_database.test_table_2 VALUES(3, '2020-01-01 01:02:03.9999', '2020-01-01 01:02:03.99', -" + ('9' * 35) + "." + ('9' * 30) + ")") mysql_node.query("INSERT INTO test_database.test_table_2 VALUES(4, '2020-01-01 01:02:03.9999', '2020-01-01 01:02:03.9999', -." + ('0' * 29) + "1)") - check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV", "test_table_1\ntest_table_2\n") + check_query(clickhouse_node, "SELECT * FROM test_database.test_table_2 ORDER BY key FORMAT TSV", "1\t2020-01-01 01:02:03.999999\t2020-01-01 01:02:03.999\t" + ('9' * 35) + "." + ('9' * 30) + "\n" "2\t2020-01-01 01:02:03.000000\t2020-01-01 01:02:03.000\t0." + ('0' * 29) + "1\n" @@ -159,7 +166,6 @@ def drop_table_with_materialize_mysql_database(clickhouse_node, mysql_node, serv service_name)) assert "test_database" in clickhouse_node.query("SHOW DATABASES") - check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV", "test_table_2\n") check_query(clickhouse_node, "SELECT * FROM test_database.test_table_2 ORDER BY id FORMAT TSV", "") mysql_node.query("INSERT INTO test_database.test_table_2 VALUES(1), (2), (3), (4), (5), (6)") @@ -192,13 +198,11 @@ def create_table_with_materialize_mysql_database(clickhouse_node, mysql_node, se # Check for pre-existing status assert "test_database" in clickhouse_node.query("SHOW DATABASES") - check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV", "test_table_1\n") check_query(clickhouse_node, "SELECT * FROM test_database.test_table_1 ORDER BY id FORMAT TSV", "1\n2\n3\n5\n6\n7\n") mysql_node.query("CREATE TABLE test_database.test_table_2 (id INT NOT NULL PRIMARY KEY) ENGINE = InnoDB;") mysql_node.query("INSERT INTO test_database.test_table_2 VALUES(1), (2), (3), (4), (5), (6);") - check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV", "test_table_1\ntest_table_2\n") check_query(clickhouse_node, "SELECT * FROM test_database.test_table_2 ORDER BY id FORMAT TSV", "1\n2\n3\n4\n5\n6\n") @@ -246,7 +250,6 @@ def alter_add_column_with_materialize_mysql_database(clickhouse_node, mysql_node service_name)) assert "test_database" in clickhouse_node.query("SHOW DATABASES") - check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV", "test_table_1\n") check_query(clickhouse_node, "DESC test_database.test_table_1 FORMAT TSV", "add_column_2\tInt32\t\t\t\t\t\nid\tInt32\t\t\t\t\t\nadd_column_1\tInt32\t\t\t\t\t\nadd_column_3\tInt32\t\t\t\t\t\nadd_column_4\tInt32\t\t\t\t\t\n_sign\tInt8\tMATERIALIZED\t1\t\t\t\n_version\tUInt64\tMATERIALIZED\t1\t\t\t\n") mysql_node.query("CREATE TABLE test_database.test_table_2 (id INT NOT NULL PRIMARY KEY) ENGINE = InnoDB;") @@ -322,12 +325,10 @@ def alter_rename_column_with_materialize_mysql_database(clickhouse_node, mysql_n service_name)) assert "test_database" in clickhouse_node.query("SHOW DATABASES") - check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV", "test_table_1\n") check_query(clickhouse_node, "DESC test_database.test_table_1 FORMAT TSV", "id\tInt32\t\t\t\t\t\nnew_column_name\tInt32\t\t\t\t\t\n_sign\tInt8\tMATERIALIZED\t1\t\t\t\n_version\tUInt64\tMATERIALIZED\t1\t\t\t\n") mysql_node.query( "CREATE TABLE test_database.test_table_2 (id INT NOT NULL PRIMARY KEY, rename_column INT NOT NULL) ENGINE = InnoDB;") - check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV", "test_table_1\ntest_table_2\n") check_query(clickhouse_node, "DESC test_database.test_table_2 FORMAT TSV", "id\tInt32\t\t\t\t\t\nrename_column\tInt32\t\t\t\t\t\n_sign\tInt8\tMATERIALIZED\t1\t\t\t\n_version\tUInt64\tMATERIALIZED\t1\t\t\t\n") mysql_node.query("ALTER TABLE test_database.test_table_2 RENAME COLUMN rename_column TO new_column_name") @@ -454,7 +455,6 @@ def query_event_with_empty_transaction(clickhouse_node, mysql_node, service_name mysql_node.query("INSERT INTO test_database.t1(a) VALUES(2)") mysql_node.query("/* start */ commit /* end */") - check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV", "t1\n") check_query(clickhouse_node, "SELECT * FROM test_database.t1 ORDER BY a FORMAT TSV", "1\tBEGIN\n2\tBEGIN\n") clickhouse_node.query("DROP DATABASE test_database") mysql_node.query("DROP DATABASE test_database") @@ -519,14 +519,13 @@ def err_sync_user_privs_with_materialize_mysql_database(clickhouse_node, mysql_n mysql_node.query("CREATE DATABASE priv_err_db DEFAULT CHARACTER SET 'utf8'") mysql_node.query("CREATE TABLE priv_err_db.test_table_1 (id INT NOT NULL PRIMARY KEY) ENGINE = InnoDB;") mysql_node.query("INSERT INTO priv_err_db.test_table_1 VALUES(1);") - + mysql_node.create_min_priv_user("test", "123") mysql_node.result("SHOW GRANTS FOR 'test'@'%';") clickhouse_node.query( "CREATE DATABASE priv_err_db ENGINE = MaterializeMySQL('{}:3306', 'priv_err_db', 'test', '123')".format( service_name)) - # wait MaterializeMySQL read binlog events - check_query(clickhouse_node, "SHOW TABLES FROM priv_err_db FORMAT TSV;", "test_table_1\n") + check_query(clickhouse_node, "SELECT count() FROM priv_err_db.test_table_1 FORMAT TSV", "1\n", 30, 5) mysql_node.query("INSERT INTO priv_err_db.test_table_1 VALUES(2);") check_query(clickhouse_node, "SELECT count() FROM priv_err_db.test_table_1 FORMAT TSV", "2\n") @@ -558,7 +557,7 @@ def err_sync_user_privs_with_materialize_mysql_database(clickhouse_node, mysql_n assert "priv_err_db" not in clickhouse_node.query("SHOW DATABASES") mysql_node.query("DROP DATABASE priv_err_db;") - mysql_node.grant_min_priv_for_user("test") + mysql_node.query("DROP USER 'test'@'%'") def restore_instance_mysql_connections(clickhouse_node, pm, action='DROP'): @@ -585,7 +584,6 @@ def network_partition_test(clickhouse_node, mysql_node, service_name): clickhouse_node.query( "CREATE DATABASE test_database ENGINE = MaterializeMySQL('{}:3306', 'test_database', 'root', 'clickhouse')".format(service_name)) - check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV", "test_table\n") with PartitionManager() as pm: drop_instance_mysql_connections(clickhouse_node, pm) @@ -602,7 +600,6 @@ def network_partition_test(clickhouse_node, mysql_node, service_name): clickhouse_node.query("DETACH DATABASE test_database") clickhouse_node.query("ATTACH DATABASE test_database") - check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV", 'test_table\n') check_query(clickhouse_node, "SELECT * FROM test_database.test_table FORMAT TSV", '1\n') clickhouse_node.query( @@ -643,10 +640,8 @@ def mysql_kill_sync_thread_restore_test(clickhouse_node, mysql_node, service_nam clickhouse_node.query("SELECT * FROM test_database.test_table") assert "Cannot read all data" in str(exception.value) - check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV;", 'test_table\n') clickhouse_node.query("DETACH DATABASE test_database") clickhouse_node.query("ATTACH DATABASE test_database") - check_query(clickhouse_node, "SHOW TABLES FROM test_database FORMAT TSV", 'test_table\n') check_query(clickhouse_node, "SELECT * FROM test_database.test_table FORMAT TSV", '1\n') mysql_node.query("INSERT INTO test_database.test_table VALUES (2)") @@ -657,7 +652,63 @@ def mysql_kill_sync_thread_restore_test(clickhouse_node, mysql_node, service_nam def mysql_killed_while_insert(clickhouse_node, mysql_node, service_name): - pass + mysql_node.query("CREATE DATABASE kill_mysql_while_insert") + mysql_node.query("CREATE TABLE kill_mysql_while_insert.test ( `id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB;") + clickhouse_node.query("CREATE DATABASE kill_mysql_while_insert ENGINE = MaterializeMySQL('{}:3306', 'kill_mysql_while_insert', 'root', 'clickhouse')".format(service_name)) + check_query(clickhouse_node, "SHOW TABLES FROM kill_mysql_while_insert FORMAT TSV", 'test\n') + try: + def insert(num): + for i in range(num): + query = "INSERT INTO kill_mysql_while_insert.test VALUES({v});".format( v = i + 1 ) + mysql_node.query(query) + + t = threading.Thread(target=insert, args=(10000,)) + t.start() + + subprocess.check_call( + ['docker-compose', '-p', mysql_node.project_name, '-f', mysql_node.docker_compose, 'stop']) + finally: + with pytest.raises(QueryRuntimeException) as execption: + time.sleep(5) + clickhouse_node.query("SELECT count() FROM kill_mysql_while_insert.test") + assert "Master maybe lost." in str(execption.value) + + subprocess.check_call( + ['docker-compose', '-p', mysql_node.project_name, '-f', mysql_node.docker_compose, 'start']) + mysql_node.wait_mysql_to_start(120) + + clickhouse_node.query("DETACH DATABASE kill_mysql_while_insert") + clickhouse_node.query("ATTACH DATABASE kill_mysql_while_insert") + + result = mysql_node.query_and_get_data("SELECT COUNT(1) FROM kill_mysql_while_insert.test") + for row in result: + res = str(row[0]) + '\n' + check_query(clickhouse_node, "SELECT count() FROM kill_mysql_while_insert.test", res) + + mysql_node.query("DROP DATABASE kill_mysql_while_insert") + clickhouse_node.query("DROP DATABASE kill_mysql_while_insert") def clickhouse_killed_while_insert(clickhouse_node, mysql_node, service_name): - pass + mysql_node.query("CREATE DATABASE kill_clickhouse_while_insert") + mysql_node.query("CREATE TABLE kill_clickhouse_while_insert.test ( `id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB;") + clickhouse_node.query("CREATE DATABASE kill_clickhouse_while_insert ENGINE = MaterializeMySQL('{}:3306', 'kill_clickhouse_while_insert', 'root', 'clickhouse')".format(service_name)) + check_query(clickhouse_node, "SHOW TABLES FROM kill_clickhouse_while_insert FORMAT TSV", 'test\n') + + def insert(num): + for i in range(num): + query = "INSERT INTO kill_clickhouse_while_insert.test VALUES({v});".format( v = i + 1 ) + mysql_node.query(query) + + t = threading.Thread(target=insert, args=(1000,)) + t.start() + + clickhouse_node.restart_clickhouse() + t.join() + + result = mysql_node.query_and_get_data("SELECT COUNT(1) FROM kill_clickhouse_while_insert.test") + for row in result: + res = str(row[0]) + '\n' + check_query(clickhouse_node, "SELECT count() FROM kill_clickhouse_while_insert.test FORMAT TSV", res) + + mysql_node.query("DROP DATABASE kill_clickhouse_while_insert") + clickhouse_node.query("DROP DATABASE kill_clickhouse_while_insert") diff --git a/tests/integration/test_materialize_mysql_database/test.py b/tests/integration/test_materialize_mysql_database/test.py index f184dd1cf02..653cddfb6de 100644 --- a/tests/integration/test_materialize_mysql_database/test.py +++ b/tests/integration/test_materialize_mysql_database/test.py @@ -1,18 +1,20 @@ import os +import os.path as p import subprocess import time - +import pwd +import re import pymysql.cursors import pytest from helpers.cluster import ClickHouseCluster, get_docker_compose_path +import docker from . import materialize_with_ddl DOCKER_COMPOSE_PATH = get_docker_compose_path() cluster = ClickHouseCluster(__file__) -clickhouse_node = cluster.add_instance('node1', user_configs=["configs/users.xml"], with_mysql=False) - +clickhouse_node = cluster.add_instance('node1', user_configs=["configs/users.xml"], with_mysql=False, stay_alive=True) @pytest.fixture(scope="module") def started_cluster(): @@ -24,18 +26,24 @@ def started_cluster(): class MySQLNodeInstance: - def __init__(self, user='root', password='clickhouse', ip_address='127.0.0.1', port=3308): + def __init__(self, user='root', password='clickhouse', ip_address='127.0.0.1', port=3308, docker_compose=None, project_name=cluster.project_name): self.user = user self.port = port self.ip_address = ip_address self.password = password self.mysql_connection = None # lazy init + self.docker_compose = docker_compose + self.project_name = project_name def alloc_connection(self): if self.mysql_connection is None: self.mysql_connection = pymysql.connect(user=self.user, password=self.password, host=self.ip_address, port=self.port, autocommit=True) + else: + if self.mysql_connection.ping(): + self.mysql_connection = pymysql.connect(user=self.user, password=self.password, host=self.ip_address, + port=self.port, autocommit=True) return self.mysql_connection def query(self, execution_query): @@ -71,8 +79,6 @@ class MySQLNodeInstance: try: self.alloc_connection() print("Mysql Started") - self.create_min_priv_user("test", "123") - print("min priv user created") return except Exception as ex: print("Can't connect to MySQL " + str(ex)) @@ -81,11 +87,10 @@ class MySQLNodeInstance: subprocess.check_call(['docker-compose', 'ps', '--services', 'all']) raise Exception("Cannot wait MySQL container") - @pytest.fixture(scope="module") def started_mysql_5_7(): - mysql_node = MySQLNodeInstance('root', 'clickhouse', '127.0.0.1', 3308) docker_compose = os.path.join(DOCKER_COMPOSE_PATH, 'docker_compose_mysql.yml') + mysql_node = MySQLNodeInstance('root', 'clickhouse', '127.0.0.1', 3308, docker_compose) try: subprocess.check_call( @@ -100,8 +105,8 @@ def started_mysql_5_7(): @pytest.fixture(scope="module") def started_mysql_8_0(): - mysql_node = MySQLNodeInstance('root', 'clickhouse', '127.0.0.1', 33308) docker_compose = os.path.join(DOCKER_COMPOSE_PATH, 'docker_compose_mysql_8_0.yml') + mysql_node = MySQLNodeInstance('root', 'clickhouse', '127.0.0.1', 33308, docker_compose) try: subprocess.check_call( From 5f98d3868982bf9f6495a8467a9dc639a3e4a411 Mon Sep 17 00:00:00 2001 From: Pavel Kovalenko Date: Mon, 23 Nov 2020 13:19:43 +0300 Subject: [PATCH 222/425] Fixed flaky test_storage_s3::test_custom_auth_headers --- tests/integration/test_storage_s3/test.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/tests/integration/test_storage_s3/test.py b/tests/integration/test_storage_s3/test.py index 4a2cd77e233..f08fc1a618e 100644 --- a/tests/integration/test_storage_s3/test.py +++ b/tests/integration/test_storage_s3/test.py @@ -351,14 +351,23 @@ def run_s3_mock(cluster): current_dir = os.path.dirname(__file__) cluster.copy_file_to_container(container_id, os.path.join(current_dir, "s3_mock", "mock_s3.py"), "mock_s3.py") cluster.exec_in_container(container_id, ["python", "mock_s3.py"], detach=True) + + # Wait for S3 mock start + for attempt in range(10): + ping_response = cluster.exec_in_container(cluster.get_container_id('resolver'), + ["curl", "-s", "http://resolver:8080/"], nothrow=True) + if ping_response != 'OK': + if attempt == 9: + assert ping_response == 'OK', 'Expected "OK", but got "{}"'.format(ping_response) + else: + time.sleep(1) + else: + break + logging.info("S3 mock started") def test_custom_auth_headers(cluster): - ping_response = cluster.exec_in_container(cluster.get_container_id('resolver'), - ["curl", "-s", "http://resolver:8080"]) - assert ping_response == 'OK', 'Expected "OK", but got "{}"'.format(ping_response) - table_format = "column1 UInt32, column2 UInt32, column3 UInt32" filename = "test.csv" get_query = "select * from s3('http://resolver:8080/{bucket}/{file}', 'CSV', '{table_format}')".format( From aa208a9d9f7e2bbbbd6bbce7b8cdc830a5a2a2cc Mon Sep 17 00:00:00 2001 From: Anton Ivashkin Date: Mon, 23 Nov 2020 14:02:17 +0300 Subject: [PATCH 223/425] Use only 's3_max_redirect' in params instead of all settings --- src/Disks/S3/registerDiskS3.cpp | 2 +- src/IO/S3/PocoHTTPClient.cpp | 11 ++++------- src/IO/S3/PocoHTTPClient.h | 6 +++--- src/IO/S3Common.cpp | 12 ++++++------ src/IO/S3Common.h | 7 +++---- src/Storages/StorageS3.cpp | 2 +- tests/integration/test_storage_s3/test.py | 2 +- 7 files changed, 19 insertions(+), 23 deletions(-) diff --git a/src/Disks/S3/registerDiskS3.cpp b/src/Disks/S3/registerDiskS3.cpp index 1bdd86f9f57..e69c2aad3ee 100644 --- a/src/Disks/S3/registerDiskS3.cpp +++ b/src/Disks/S3/registerDiskS3.cpp @@ -133,7 +133,7 @@ void registerDiskS3(DiskFactory & factory) config.getString(config_prefix + ".access_key_id", ""), config.getString(config_prefix + ".secret_access_key", ""), context.getRemoteHostFilter(), - context.getGlobalContext()); + context.getGlobalContext().getSettingsRef().s3_max_redirects); String metadata_path = config.getString(config_prefix + ".metadata_path", context.getPath() + "disks/" + name + "/"); diff --git a/src/IO/S3/PocoHTTPClient.cpp b/src/IO/S3/PocoHTTPClient.cpp index 6552734295f..38170ef7fa3 100644 --- a/src/IO/S3/PocoHTTPClient.cpp +++ b/src/IO/S3/PocoHTTPClient.cpp @@ -10,7 +10,6 @@ #include #include #include -#include #include #include #include @@ -52,10 +51,10 @@ namespace DB::S3 PocoHTTPClientConfiguration::PocoHTTPClientConfiguration( const Aws::Client::ClientConfiguration & cfg, const RemoteHostFilter & remote_host_filter_, - const Context & global_context_) + unsigned int s3_max_redirects_) : Aws::Client::ClientConfiguration(cfg) , remote_host_filter(remote_host_filter_) - , global_context(global_context_) + , s3_max_redirects(s3_max_redirects_) { } @@ -86,7 +85,7 @@ PocoHTTPClient::PocoHTTPClient(const PocoHTTPClientConfiguration & clientConfigu Poco::Timespan(clientConfiguration.httpRequestTimeoutMs * 1000) /// receive timeout. )) , remote_host_filter(clientConfiguration.remote_host_filter) - , global_context(clientConfiguration.global_context) + , s3_max_redirects(clientConfiguration.s3_max_redirects) { } @@ -161,11 +160,9 @@ void PocoHTTPClient::makeRequestInternal( ProfileEvents::increment(select_metric(S3MetricType::Count)); - unsigned int max_redirect_attempts = global_context.getSettingsRef().s3_max_redirects; - try { - for (unsigned int attempt = 0; attempt <= max_redirect_attempts; ++attempt) + for (unsigned int attempt = 0; attempt <= s3_max_redirects; ++attempt) { Poco::URI poco_uri(uri); diff --git a/src/IO/S3/PocoHTTPClient.h b/src/IO/S3/PocoHTTPClient.h index 385a5a22e48..560f0a455f0 100644 --- a/src/IO/S3/PocoHTTPClient.h +++ b/src/IO/S3/PocoHTTPClient.h @@ -22,10 +22,10 @@ namespace DB::S3 struct PocoHTTPClientConfiguration : public Aws::Client::ClientConfiguration { const RemoteHostFilter & remote_host_filter; - const Context & global_context; + unsigned int s3_max_redirects; PocoHTTPClientConfiguration(const Aws::Client::ClientConfiguration & cfg, const RemoteHostFilter & remote_host_filter_, - const Context & global_context_); + unsigned int s3_max_redirects_); void updateSchemeAndRegion(); }; @@ -55,7 +55,7 @@ private: std::function per_request_configuration; ConnectionTimeouts timeouts; const RemoteHostFilter & remote_host_filter; - const Context & global_context; + unsigned int s3_max_redirects; }; } diff --git a/src/IO/S3Common.cpp b/src/IO/S3Common.cpp index a69349a609b..97aa95f3c0d 100644 --- a/src/IO/S3Common.cpp +++ b/src/IO/S3Common.cpp @@ -165,14 +165,14 @@ namespace S3 const String & access_key_id, const String & secret_access_key, const RemoteHostFilter & remote_host_filter, - const Context & global_context) + unsigned int s3_max_redirects) { Aws::Client::ClientConfiguration cfg; if (!endpoint.empty()) cfg.endpointOverride = endpoint; - return create(cfg, is_virtual_hosted_style, access_key_id, secret_access_key, remote_host_filter, global_context); + return create(cfg, is_virtual_hosted_style, access_key_id, secret_access_key, remote_host_filter, s3_max_redirects); } std::shared_ptr ClientFactory::create( // NOLINT @@ -181,11 +181,11 @@ namespace S3 const String & access_key_id, const String & secret_access_key, const RemoteHostFilter & remote_host_filter, - const Context & global_context) + unsigned int s3_max_redirects) { Aws::Auth::AWSCredentials credentials(access_key_id, secret_access_key); - PocoHTTPClientConfiguration client_configuration(cfg, remote_host_filter, global_context); + PocoHTTPClientConfiguration client_configuration(cfg, remote_host_filter, s3_max_redirects); client_configuration.updateSchemeAndRegion(); @@ -204,9 +204,9 @@ namespace S3 const String & secret_access_key, HeaderCollection headers, const RemoteHostFilter & remote_host_filter, - const Context & global_context) + unsigned int s3_max_redirects) { - PocoHTTPClientConfiguration client_configuration({}, remote_host_filter, global_context); + PocoHTTPClientConfiguration client_configuration({}, remote_host_filter, s3_max_redirects); if (!endpoint.empty()) client_configuration.endpointOverride = endpoint; diff --git a/src/IO/S3Common.h b/src/IO/S3Common.h index ff422b5b511..39d9068a6f4 100644 --- a/src/IO/S3Common.h +++ b/src/IO/S3Common.h @@ -19,7 +19,6 @@ namespace DB class RemoteHostFilter; struct HttpHeader; using HeaderCollection = std::vector; - class Context; } namespace DB::S3 @@ -38,7 +37,7 @@ public: const String & access_key_id, const String & secret_access_key, const RemoteHostFilter & remote_host_filter, - const Context & global_context); + unsigned int s3_max_redirects); std::shared_ptr create( Aws::Client::ClientConfiguration & cfg, @@ -46,7 +45,7 @@ public: const String & access_key_id, const String & secret_access_key, const RemoteHostFilter & remote_host_filter, - const Context & global_context); + unsigned int s3_max_redirects); std::shared_ptr create( const String & endpoint, @@ -55,7 +54,7 @@ public: const String & secret_access_key, HeaderCollection headers, const RemoteHostFilter & remote_host_filter, - const Context & global_context); + unsigned int s3_max_redirects); private: ClientFactory(); diff --git a/src/Storages/StorageS3.cpp b/src/Storages/StorageS3.cpp index e3babb7d7aa..40b9233bc2e 100644 --- a/src/Storages/StorageS3.cpp +++ b/src/Storages/StorageS3.cpp @@ -217,7 +217,7 @@ StorageS3::StorageS3( client = S3::ClientFactory::instance().create( uri_.endpoint, uri_.is_virtual_hosted_style, access_key_id_, secret_access_key_, std::move(settings.headers), - context_.getRemoteHostFilter(), context_.getGlobalContext()); + context_.getRemoteHostFilter(), context_.getGlobalContext().getSettingsRef().s3_max_redirects); } diff --git a/tests/integration/test_storage_s3/test.py b/tests/integration/test_storage_s3/test.py index 927817714aa..650d36edcaf 100644 --- a/tests/integration/test_storage_s3/test.py +++ b/tests/integration/test_storage_s3/test.py @@ -225,7 +225,7 @@ def test_put_get_with_redirect(cluster): ] -# Test put and get with S3 server redirect. +# Test put with restricted S3 server redirect. def test_put_with_zero_redirect(cluster): # type: (ClickHouseCluster) -> None From d423ce34a118457153fae274c37c96a82d1eaf79 Mon Sep 17 00:00:00 2001 From: damozhaeva <68770561+damozhaeva@users.noreply.github.com> Date: Mon, 23 Nov 2020 14:52:09 +0300 Subject: [PATCH 224/425] DOCSUP-3584 edit and translate (#17176) * Edit and translate. * Update docs/ru/operations/utilities/clickhouse-obfuscator.md Co-authored-by: BayoNet * Update docs/ru/operations/utilities/clickhouse-obfuscator.md Co-authored-by: BayoNet * Update docs/ru/operations/utilities/clickhouse-obfuscator.md Co-authored-by: BayoNet * Update docs/ru/operations/utilities/clickhouse-obfuscator.md Co-authored-by: BayoNet * Update docs/ru/operations/utilities/clickhouse-obfuscator.md Co-authored-by: BayoNet * Update docs/ru/operations/utilities/clickhouse-obfuscator.md Co-authored-by: BayoNet * Update docs/ru/operations/utilities/clickhouse-obfuscator.md Co-authored-by: BayoNet * Update docs/en/operations/utilities/clickhouse-obfuscator.md Co-authored-by: BayoNet * Update docs/en/operations/utilities/clickhouse-obfuscator.md Co-authored-by: BayoNet * Update docs/en/operations/utilities/clickhouse-obfuscator.md Co-authored-by: BayoNet * Update docs/ru/operations/utilities/clickhouse-obfuscator.md Co-authored-by: BayoNet * Update docs/en/operations/utilities/clickhouse-obfuscator.md Co-authored-by: BayoNet Co-authored-by: Daria Mozhaeva Co-authored-by: BayoNet --- .../utilities/clickhouse-obfuscator.md | 84 +++++++++---------- .../utilities/clickhouse-obfuscator.md | 43 ++++++++++ 2 files changed, 85 insertions(+), 42 deletions(-) create mode 100644 docs/ru/operations/utilities/clickhouse-obfuscator.md diff --git a/docs/en/operations/utilities/clickhouse-obfuscator.md b/docs/en/operations/utilities/clickhouse-obfuscator.md index 8a2ea1eecf6..7fd608fcac0 100644 --- a/docs/en/operations/utilities/clickhouse-obfuscator.md +++ b/docs/en/operations/utilities/clickhouse-obfuscator.md @@ -1,42 +1,42 @@ -# ClickHouse obfuscator - -Simple tool for table data obfuscation. - -It reads input table and produces output table, that retain some properties of input, but contains different data. -It allows to publish almost real production data for usage in benchmarks. - -It is designed to retain the following properties of data: -- cardinalities of values (number of distinct values) for every column and for every tuple of columns; -- conditional cardinalities: number of distinct values of one column under condition on value of another column; -- probability distributions of absolute value of integers; sign of signed integers; exponent and sign for floats; -- probability distributions of length of strings; -- probability of zero values of numbers; empty strings and arrays, NULLs; -- data compression ratio when compressed with LZ77 and entropy family of codecs; -- continuity (magnitude of difference) of time values across table; continuity of floating point values. -- date component of DateTime values; -- UTF-8 validity of string values; -- string values continue to look somewhat natural. - -Most of the properties above are viable for performance testing: - -reading data, filtering, aggregation and sorting will work at almost the same speed -as on original data due to saved cardinalities, magnitudes, compression ratios, etc. - -It works in deterministic fashion: you define a seed value and transform is totally determined by input data and by seed. -Some transforms are one to one and could be reversed, so you need to have large enough seed and keep it in secret. - -It use some cryptographic primitives to transform data, but from the cryptographic point of view, -It doesn't do anything properly and you should never consider the result as secure, unless you have other reasons for it. - -It may retain some data you don't want to publish. - -It always leave numbers 0, 1, -1 as is. Also it leaves dates, lengths of arrays and null flags exactly as in source data. -For example, you have a column IsMobile in your table with values 0 and 1. In transformed data, it will have the same value. -So, the user will be able to count exact ratio of mobile traffic. - -Another example, suppose you have some private data in your table, like user email and you don't want to publish any single email address. -If your table is large enough and contain multiple different emails and there is no email that have very high frequency than all others, -It will perfectly anonymize all data. But if you have small amount of different values in a column, it can possibly reproduce some of them. -And you should take care and look at exact algorithm, how this tool works, and probably fine tune some of it command line parameters. - -This tool works fine only with reasonable amount of data (at least 1000s of rows). +# ClickHouse obfuscator + +A simple tool for table data obfuscation. + +It reads an input table and produces an output table, that retains some properties of input, but contains different data. +It allows publishing almost real production data for usage in benchmarks. + +It is designed to retain the following properties of data: +- cardinalities of values (number of distinct values) for every column and every tuple of columns; +- conditional cardinalities: number of distinct values of one column under the condition on the value of another column; +- probability distributions of the absolute value of integers; the sign of signed integers; exponent and sign for floats; +- probability distributions of the length of strings; +- probability of zero values of numbers; empty strings and arrays, `NULL`s; + +- data compression ratio when compressed with LZ77 and entropy family of codecs; +- continuity (magnitude of difference) of time values across the table; continuity of floating-point values; +- date component of `DateTime` values; + +- UTF-8 validity of string values; +- string values look natural. + +Most of the properties above are viable for performance testing: + +reading data, filtering, aggregatio, and sorting will work at almost the same speed +as on original data due to saved cardinalities, magnitudes, compression ratios, etc. + +It works in a deterministic fashion: you define a seed value and the transformation is determined by input data and by seed. +Some transformations are one to one and could be reversed, so you need to have a large seed and keep it in secret. + +It uses some cryptographic primitives to transform data but from the cryptographic point of view, it doesn't do it properly, that is why you should not consider the result as secure unless you have another reason. The result may retain some data you don't want to publish. + + +It always leaves 0, 1, -1 numbers, dates, lengths of arrays, and null flags exactly as in source data. +For example, you have a column `IsMobile` in your table with values 0 and 1. In transformed data, it will have the same value. + +So, the user will be able to count the exact ratio of mobile traffic. + +Let's give another example. When you have some private data in your table, like user email and you don't want to publish any single email address. +If your table is large enough and contains multiple different emails and no email has a very high frequency than all others, it will anonymize all data. But if you have a small number of different values in a column, it can reproduce some of them. +You should look at the working algorithm of this tool works, and fine-tune its command line parameters. + +This tool works fine only with an average amount of data (at least 1000s of rows). diff --git a/docs/ru/operations/utilities/clickhouse-obfuscator.md b/docs/ru/operations/utilities/clickhouse-obfuscator.md new file mode 100644 index 00000000000..a52d538965b --- /dev/null +++ b/docs/ru/operations/utilities/clickhouse-obfuscator.md @@ -0,0 +1,43 @@ +# Обфускатор ClickHouse + +Простой инструмент для обфускации табличных данных. + +Он считывает данные входной таблицы и создает выходную таблицу, которая сохраняет некоторые свойства входных данных, но при этом содержит другие данные. + +Это позволяет публиковать практически реальные данные и использовать их в тестах на производительность. + +Обфускатор предназначен для сохранения следующих свойств данных: +- кардинальность (количество уникальных данных) для каждого столбца и каждого кортежа столбцов; +- условная кардинальность: количество уникальных данных одного столбца в соответствии со значением другого столбца; +- вероятностные распределения абсолютного значения целых чисел; знак числа типа Int; показатель степени и знак для чисел с плавающей запятой; +- вероятностное распределение длины строк; +- вероятность нулевых значений чисел; пустые строки и массивы, `NULL`; +- степень сжатия данных алгоритмом LZ77 и семейством энтропийных кодеков; + +- непрерывность (величина разницы) значений времени в таблице; непрерывность значений с плавающей запятой; +- дату из значений `DateTime`; + +- кодировка UTF-8 значений строки; +- строковые значения выглядят естественным образом. + + +Большинство перечисленных выше свойств пригодны для тестирования производительности. Чтение данных, фильтрация, агрегирование и сортировка будут работать почти с той же скоростью, что и исходные данные, благодаря сохраненной кардинальности, величине, степени сжатия и т. д. + +Он работает детерминированно. Вы задаёте значение инициализатора, а преобразование полностью определяется входными данными и инициализатором. + +Некоторые преобразования выполняются один к одному, и их можно отменить. Поэтому нужно использовать большое значение инициализатора и хранить его в секрете. + + +Обфускатор использует некоторые криптографические примитивы для преобразования данных, но, с криптографической точки зрения, результат будет небезопасным. В нем могут сохраниться данные, которые не следует публиковать. + + +Он всегда оставляет без изменений числа 0, 1, -1, даты, длины массивов и нулевые флаги. +Например, если у вас есть столбец `IsMobile` в таблице со значениями 0 и 1, то в преобразованных данных он будет иметь то же значение. + +Таким образом, пользователь сможет посчитать точное соотношение мобильного трафика. + +Давайте рассмотрим случай, когда у вас есть какие-то личные данные в таблице (например, электронная почта пользователя), и вы не хотите их публиковать. +Если ваша таблица достаточно большая и содержит несколько разных электронных почтовых адресов, и ни один из них не встречается часто, то обфускатор полностью анонимизирует все данные. Но, если у вас есть небольшое количество разных значений в столбце, он может скопировать некоторые из них. +В этом случае вам следует посмотреть на алгоритм работы инструмента и настроить параметры командной строки. + +Обфускатор полезен в работе со средним объемом данных (не менее 1000 строк). From e76f7c316b85a69bf7a1fd2493de991e6e92e1ca Mon Sep 17 00:00:00 2001 From: Anna <42538400+adevyatova@users.noreply.github.com> Date: Mon, 23 Nov 2020 16:11:15 +0300 Subject: [PATCH 225/425] DOCSUP-4280: Update the SELECT query (#17231) * Add description for column modifiers * Update index.md * Update docs/en/sql-reference/statements/select/index.md * Update docs/en/sql-reference/statements/select/index.md Co-authored-by: BayoNet --- .../sql-reference/statements/select/index.md | 109 +++++++++++++++++- 1 file changed, 108 insertions(+), 1 deletion(-) diff --git a/docs/en/sql-reference/statements/select/index.md b/docs/en/sql-reference/statements/select/index.md index 901b850fc46..fb1548f0abb 100644 --- a/docs/en/sql-reference/statements/select/index.md +++ b/docs/en/sql-reference/statements/select/index.md @@ -159,4 +159,111 @@ If the query omits the `DISTINCT`, `GROUP BY` and `ORDER BY` clauses and the `IN For more information, see the section “Settings”. It is possible to use external sorting (saving temporary tables to a disk) and external aggregation. -{## [Original article](https://clickhouse.tech/docs/en/sql-reference/statements/select/) ##} +## SELECT modifiers {#select-modifiers} + +You can use the following modifiers in `SELECT` queries. + +### APPLY {#apply-modifier} + +Allows you to invoke some function for each row returned by an outer table expression of a query. + +**Syntax:** + +``` sql +SELECT APPLY( ) FROM [db.]table_name +``` + +**Example:** + +``` sql +CREATE TABLE columns_transformers (i Int64, j Int16, k Int64) ENGINE = MergeTree ORDER by (i); +INSERT INTO columns_transformers VALUES (100, 10, 324), (120, 8, 23); +SELECT * APPLY(sum) FROM columns_transformers; +``` + +``` +┌─sum(i)─┬─sum(j)─┬─sum(k)─┐ +│ 220 │ 18 │ 347 │ +└────────┴────────┴────────┘ +``` + +### EXCEPT {#except-modifier} + +Specifies the names of one or more columns to exclude from the result. All matching column names are omitted from the output. + +**Syntax:** + +``` sql +SELECT EXCEPT ( col_name1 [, col_name2, col_name3, ...] ) FROM [db.]table_name +``` + +**Example:** + +``` sql +SELECT * EXCEPT (i) from columns_transformers; +``` + +``` +┌──j─┬───k─┐ +│ 10 │ 324 │ +│ 8 │ 23 │ +└────┴─────┘ +``` + +### REPLACE {#replace-modifier} + +Specifies one or more [expression aliases](../../../sql-reference/syntax.md#syntax-expression_aliases). Each alias must match a column name from the `SELECT *` statement. In the output column list, the column that matches the alias is replaced by the expression in that `REPLACE`. + +This modifier does not change the names or order of columns. However, it can change the value and the value type. + +**Syntax:** + +``` sql +SELECT REPLACE( AS col_name) from [db.]table_name +``` + +**Example:** + +``` sql +SELECT * REPLACE(i + 1 AS i) from columns_transformers; +``` + +``` +┌───i─┬──j─┬───k─┐ +│ 101 │ 10 │ 324 │ +│ 121 │ 8 │ 23 │ +└─────┴────┴─────┘ +``` + +### Modifier Combinations {#modifier-combinations} + +You can use each modifier separately or combine them. + +**Examples:** + +Using the same modifier multiple times. + +``` sql +SELECT COLUMNS('[jk]') APPLY(toString) APPLY(length) APPLY(max) from columns_transformers; +``` + +``` +┌─max(length(toString(j)))─┬─max(length(toString(k)))─┐ +│ 2 │ 3 │ +└──────────────────────────┴──────────────────────────┘ +``` + +Using multiple modifiers in a single query. + +``` sql +SELECT * REPLACE(i + 1 AS i) EXCEPT (j) APPLY(sum) from columns_transformers; +``` + +``` +┌─sum(plus(i, 1))─┬─sum(k)─┐ +│ 222 │ 347 │ +└─────────────────┴────────┘ +``` + +[Original article](https://clickhouse.tech/docs/en/sql-reference/statements/select/) + From 172b7e9ed1cd77f8e028b214ca7bccac3750b553 Mon Sep 17 00:00:00 2001 From: Amos Bird Date: Sat, 21 Nov 2020 16:25:45 +0800 Subject: [PATCH 226/425] global in set index. --- src/Interpreters/ExpressionAnalyzer.cpp | 2 +- src/Interpreters/GlobalSubqueriesVisitor.h | 25 ++++++++++++++++--- src/Storages/MergeTree/KeyCondition.cpp | 16 ++++++++++++ .../01585_use_index_for_global_in.reference | 8 ++++++ .../01585_use_index_for_global_in.sql | 16 ++++++++++++ 5 files changed, 63 insertions(+), 4 deletions(-) create mode 100644 tests/queries/0_stateless/01585_use_index_for_global_in.reference create mode 100644 tests/queries/0_stateless/01585_use_index_for_global_in.sql diff --git a/src/Interpreters/ExpressionAnalyzer.cpp b/src/Interpreters/ExpressionAnalyzer.cpp index de82a9b9645..3e718b4edb8 100644 --- a/src/Interpreters/ExpressionAnalyzer.cpp +++ b/src/Interpreters/ExpressionAnalyzer.cpp @@ -364,7 +364,7 @@ void SelectQueryExpressionAnalyzer::makeSetsForIndex(const ASTPtr & node) } const auto * func = node->as(); - if (func && functionIsInOperator(func->name)) + if (func && functionIsInOrGlobalInOperator(func->name)) { const IAST & args = *func->arguments; const ASTPtr & left_in_operand = args.children.at(0); diff --git a/src/Interpreters/GlobalSubqueriesVisitor.h b/src/Interpreters/GlobalSubqueriesVisitor.h index 719794f0607..e87ee6349f3 100644 --- a/src/Interpreters/GlobalSubqueriesVisitor.h +++ b/src/Interpreters/GlobalSubqueriesVisitor.h @@ -135,9 +135,28 @@ public: ast = database_and_table_name; external_tables[external_table_name] = external_storage_holder; - subqueries_for_sets[external_table_name].source = std::make_unique(); - interpreter->buildQueryPlan(*subqueries_for_sets[external_table_name].source); - subqueries_for_sets[external_table_name].table = external_storage; + + if (context.getSettingsRef().use_index_for_in_with_subqueries) + { + auto external_table = external_storage_holder->getTable(); + auto table_out = external_table->write({}, external_table->getInMemoryMetadataPtr(), context); + auto stream = interpreter->execute().getInputStream(); + + table_out->writePrefix(); + stream->readPrefix(); + while (Block block = stream->read()) + { + table_out->write(block); + } + table_out->writeSuffix(); + stream->readSuffix(); + } + else + { + subqueries_for_sets[external_table_name].source = std::make_unique(); + interpreter->buildQueryPlan(*subqueries_for_sets[external_table_name].source); + subqueries_for_sets[external_table_name].table = external_storage; + } /** NOTE If it was written IN tmp_table - the existing temporary (but not external) table, * then a new temporary table will be created (for example, _data1), diff --git a/src/Storages/MergeTree/KeyCondition.cpp b/src/Storages/MergeTree/KeyCondition.cpp index 7b2044ef765..f6ff13dc9c6 100644 --- a/src/Storages/MergeTree/KeyCondition.cpp +++ b/src/Storages/MergeTree/KeyCondition.cpp @@ -184,6 +184,22 @@ const KeyCondition::AtomMap KeyCondition::atom_map return true; } }, + { + "globalIn", + [] (RPNElement & out, const Field &) + { + out.function = RPNElement::FUNCTION_IN_SET; + return true; + } + }, + { + "globalNotIn", + [] (RPNElement & out, const Field &) + { + out.function = RPNElement::FUNCTION_NOT_IN_SET; + return true; + } + }, { "empty", [] (RPNElement & out, const Field & value) diff --git a/tests/queries/0_stateless/01585_use_index_for_global_in.reference b/tests/queries/0_stateless/01585_use_index_for_global_in.reference new file mode 100644 index 00000000000..063e8c2af75 --- /dev/null +++ b/tests/queries/0_stateless/01585_use_index_for_global_in.reference @@ -0,0 +1,8 @@ +0 2 +1 3 +0 2 +1 3 +0 2 +1 3 +0 2 +1 3 diff --git a/tests/queries/0_stateless/01585_use_index_for_global_in.sql b/tests/queries/0_stateless/01585_use_index_for_global_in.sql new file mode 100644 index 00000000000..8f89fc1a57b --- /dev/null +++ b/tests/queries/0_stateless/01585_use_index_for_global_in.sql @@ -0,0 +1,16 @@ +drop table if exists xp; +drop table if exists xp_d; + +create table xp(i UInt64, j UInt64) engine MergeTree order by i settings index_granularity = 1; +create table xp_d as xp engine Distributed(test_shard_localhost, currentDatabase(), xp); + +insert into xp select number, number + 2 from numbers(10); + +set max_rows_to_read = 2; +select * from xp where i in (select * from numbers(2)); +select * from xp where i global in (select * from numbers(2)); +select * from xp_d where i in (select * from numbers(2)); +select * from xp_d where i global in (select * from numbers(2)); + +drop table if exists xp; +drop table if exists xp_d; From 065cd002578f2e8228f12a2744bd40c970065e0c Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Mon, 23 Nov 2020 17:24:32 +0300 Subject: [PATCH 227/425] better --- .../test_reload_zookeeper/configs/users.xml | 2 -- .../test_reload_zookeeper/configs/zookeeper.xml | 2 +- tests/integration/test_reload_zookeeper/test.py | 8 +++++--- ..._select_sequence_consistency_zookeeper.reference} | 0 ...ithout_select_sequence_consistency_zookeeper.sql} | 12 ++++++------ 5 files changed, 12 insertions(+), 12 deletions(-) rename tests/queries/0_stateless/{01513_count_without_select_sequence_consistency.reference => 01513_count_without_select_sequence_consistency_zookeeper.reference} (100%) rename tests/queries/0_stateless/{01513_count_without_select_sequence_consistency.sql => 01513_count_without_select_sequence_consistency_zookeeper.sql} (86%) diff --git a/tests/integration/test_reload_zookeeper/configs/users.xml b/tests/integration/test_reload_zookeeper/configs/users.xml index 59802e82698..6061af8e33d 100644 --- a/tests/integration/test_reload_zookeeper/configs/users.xml +++ b/tests/integration/test_reload_zookeeper/configs/users.xml @@ -2,8 +2,6 @@ - 1 - 1 diff --git a/tests/integration/test_reload_zookeeper/configs/zookeeper.xml b/tests/integration/test_reload_zookeeper/configs/zookeeper.xml index ecadd4c74c3..0cbf9d8e156 100644 --- a/tests/integration/test_reload_zookeeper/configs/zookeeper.xml +++ b/tests/integration/test_reload_zookeeper/configs/zookeeper.xml @@ -13,7 +13,7 @@ zoo3 2181 - 2000 + 20000 \ No newline at end of file diff --git a/tests/integration/test_reload_zookeeper/test.py b/tests/integration/test_reload_zookeeper/test.py index 6bb8ec6580a..292fe6e0772 100644 --- a/tests/integration/test_reload_zookeeper/test.py +++ b/tests/integration/test_reload_zookeeper/test.py @@ -8,7 +8,7 @@ from helpers.test_tools import assert_eq_with_retry cluster = ClickHouseCluster(__file__, zookeeper_config_path='configs/zookeeper.xml') -node = cluster.add_instance('node', with_zookeeper=True, user_configs=["configs/users.xml"]) +node = cluster.add_instance('node', with_zookeeper=True) @pytest.fixture(scope="module") @@ -62,14 +62,16 @@ def test_reload_zookeeper(start_cluster): ## stop all zookeepers, table will be readonly cluster.stop_zookeeper_nodes(["zoo1", "zoo2", "zoo3"]) + node.query("SELECT COUNT() FROM test_table") with pytest.raises(QueryRuntimeException): - node.query("SELECT COUNT() FROM test_table") + node.query("SELECT COUNT() FROM test_table", settings={"select_sequential_consistency" : 1}) ## start zoo2, zoo3, table will be readonly too, because it only connect to zoo1 cluster.start_zookeeper_nodes(["zoo2", "zoo3"]) wait_zookeeper_node_to_start(["zoo2", "zoo3"]) + node.query("SELECT COUNT() FROM test_table") with pytest.raises(QueryRuntimeException): - node.query("SELECT COUNT() FROM test_table") + node.query("SELECT COUNT() FROM test_table", settings={"select_sequential_consistency" : 1}) ## set config to zoo2, server will be normal new_config = """ diff --git a/tests/queries/0_stateless/01513_count_without_select_sequence_consistency.reference b/tests/queries/0_stateless/01513_count_without_select_sequence_consistency_zookeeper.reference similarity index 100% rename from tests/queries/0_stateless/01513_count_without_select_sequence_consistency.reference rename to tests/queries/0_stateless/01513_count_without_select_sequence_consistency_zookeeper.reference diff --git a/tests/queries/0_stateless/01513_count_without_select_sequence_consistency.sql b/tests/queries/0_stateless/01513_count_without_select_sequence_consistency_zookeeper.sql similarity index 86% rename from tests/queries/0_stateless/01513_count_without_select_sequence_consistency.sql rename to tests/queries/0_stateless/01513_count_without_select_sequence_consistency_zookeeper.sql index 8bf7e6a6931..6a6be32278d 100644 --- a/tests/queries/0_stateless/01513_count_without_select_sequence_consistency.sql +++ b/tests/queries/0_stateless/01513_count_without_select_sequence_consistency_zookeeper.sql @@ -1,8 +1,8 @@ SET send_logs_level = 'fatal'; -DROP TABLE IF EXISTS quorum1; -DROP TABLE IF EXISTS quorum2; -DROP TABLE IF EXISTS quorum3; +DROP TABLE IF EXISTS quorum1 SYNC; +DROP TABLE IF EXISTS quorum2 SYNC; +DROP TABLE IF EXISTS quorum3 SYNC; CREATE TABLE quorum1(x UInt32, y Date) ENGINE ReplicatedMergeTree('/clickhouse/tables/test_01513/sequence_consistency', '1') ORDER BY x PARTITION BY y; CREATE TABLE quorum2(x UInt32, y Date) ENGINE ReplicatedMergeTree('/clickhouse/tables/test_01513/sequence_consistency', '2') ORDER BY x PARTITION BY y; @@ -31,6 +31,6 @@ SELECT count() FROM quorum1; SELECT count() FROM quorum2; SELECT count() FROM quorum3; -DROP TABLE quorum1; -DROP TABLE quorum2; -DROP TABLE quorum3; +DROP TABLE quorum1 SYNC; +DROP TABLE quorum2 SYNC; +DROP TABLE quorum3 SYNC; From c9b382b4af047f099e329b3886328d307bd1c4fa Mon Sep 17 00:00:00 2001 From: alesapin Date: Mon, 23 Nov 2020 17:40:32 +0300 Subject: [PATCH 228/425] Fix flaky integration tests --- .../integration/test_odbc_interaction/test.py | 20 ++++++++----------- tests/integration/test_storage_s3/test.py | 12 ++++++++++- tests/integration/test_ttl_replicated/test.py | 10 +++++----- 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/tests/integration/test_odbc_interaction/test.py b/tests/integration/test_odbc_interaction/test.py index 028137cef12..a2031bf28cc 100644 --- a/tests/integration/test_odbc_interaction/test.py +++ b/tests/integration/test_odbc_interaction/test.py @@ -4,6 +4,7 @@ import psycopg2 import pymysql.cursors import pytest from helpers.cluster import ClickHouseCluster +from helpers.test_tools import assert_eq_with_retry from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT cluster = ClickHouseCluster(__file__) @@ -215,11 +216,8 @@ def test_sqlite_odbc_hashed_dictionary(started_cluster): node1.exec_in_container(["bash", "-c", "echo 'REPLACE INTO t2 values(1, 2, 5);' | sqlite3 {}".format(sqlite_db)], privileged=True, user='root') - # waiting for reload - time.sleep(5) - - assert node1.query("select dictGetUInt8('sqlite3_odbc_hashed', 'Z', toUInt64(1))") == "5\n" - assert node1.query("select dictGetUInt8('sqlite3_odbc_hashed', 'Z', toUInt64(200))") == "7\n" # new value + assert_eq_with_retry(node1, "select dictGetUInt8('sqlite3_odbc_hashed', 'Z', toUInt64(1))", "5") + assert_eq_with_retry(node1, "select dictGetUInt8('sqlite3_odbc_hashed', 'Z', toUInt64(200))", "7") def test_sqlite_odbc_cached_dictionary(started_cluster): @@ -241,18 +239,16 @@ def test_sqlite_odbc_cached_dictionary(started_cluster): node1.exec_in_container(["bash", "-c", "echo 'REPLACE INTO t3 values(1, 2, 12);' | sqlite3 {}".format(sqlite_db)], privileged=True, user='root') - time.sleep(5) - - assert node1.query("select dictGetUInt8('sqlite3_odbc_cached', 'Z', toUInt64(1))") == "12\n" + assert_eq_with_retry(node1, "select dictGetUInt8('sqlite3_odbc_cached', 'Z', toUInt64(1))", "12") def test_postgres_odbc_hached_dictionary_with_schema(started_cluster): conn = get_postgres_conn() cursor = conn.cursor() cursor.execute("insert into clickhouse.test_table values(1, 'hello'),(2, 'world')") - time.sleep(5) - assert node1.query("select dictGetString('postgres_odbc_hashed', 'column2', toUInt64(1))") == "hello\n" - assert node1.query("select dictGetString('postgres_odbc_hashed', 'column2', toUInt64(2))") == "world\n" + node1.query("SYSTEM RELOAD DICTIONARY postgres_odbc_hashed") + assert_eq_with_retry(node1, "select dictGetString('postgres_odbc_hashed', 'column2', toUInt64(1))", "hello") + assert_eq_with_retry(node1, "select dictGetString('postgres_odbc_hashed', 'column2', toUInt64(2))", "world") def test_postgres_odbc_hached_dictionary_no_tty_pipe_overflow(started_cluster): @@ -265,7 +261,7 @@ def test_postgres_odbc_hached_dictionary_no_tty_pipe_overflow(started_cluster): except Exception as ex: assert False, "Exception occured -- odbc-bridge hangs: " + str(ex) - assert node1.query("select dictGetString('postgres_odbc_hashed', 'column2', toUInt64(3))") == "xxx\n" + assert_eq_with_retry(node1, "select dictGetString('postgres_odbc_hashed', 'column2', toUInt64(3))", "xxx") def test_postgres_insert(started_cluster): diff --git a/tests/integration/test_storage_s3/test.py b/tests/integration/test_storage_s3/test.py index 4a2cd77e233..10af43ff4e2 100644 --- a/tests/integration/test_storage_s3/test.py +++ b/tests/integration/test_storage_s3/test.py @@ -355,8 +355,18 @@ def run_s3_mock(cluster): def test_custom_auth_headers(cluster): - ping_response = cluster.exec_in_container(cluster.get_container_id('resolver'), + for i in range(100): + try: + ping_response = cluster.exec_in_container(cluster.get_container_id('resolver'), ["curl", "-s", "http://resolver:8080"]) + break + except Exception as ex: + print("Exception curl resolver:8080", ex) + time.sleep(0.2) + else: + assert False, "Cannot wait for http://resolver:8080" + + assert ping_response == 'OK', 'Expected "OK", but got "{}"'.format(ping_response) table_format = "column1 UInt32, column2 UInt32, column3 UInt32" diff --git a/tests/integration/test_ttl_replicated/test.py b/tests/integration/test_ttl_replicated/test.py index e98b3ba5625..9418aeaaf01 100644 --- a/tests/integration/test_ttl_replicated/test.py +++ b/tests/integration/test_ttl_replicated/test.py @@ -35,7 +35,7 @@ def test_ttl_columns(started_cluster): node.query( ''' CREATE TABLE test_ttl(date DateTime, id UInt32, a Int32 TTL date + INTERVAL 1 DAY, b Int32 TTL date + INTERVAL 1 MONTH) - ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/test_ttl', '{replica}') + ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/test_ttl_columns', '{replica}') ORDER BY id PARTITION BY toDayOfMonth(date) SETTINGS merge_with_ttl_timeout=0, min_bytes_for_wide_part=0; '''.format(replica=node.name)) @@ -155,7 +155,7 @@ def test_modify_ttl(started_cluster): node.query( ''' CREATE TABLE test_ttl(d DateTime, id UInt32) - ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/test_ttl', '{replica}') + ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/test_ttl_modify', '{replica}') ORDER BY id '''.format(replica=node.name)) @@ -179,7 +179,7 @@ def test_modify_column_ttl(started_cluster): node.query( ''' CREATE TABLE test_ttl(d DateTime, id UInt32 DEFAULT 42) - ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/test_ttl', '{replica}') + ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/test_ttl_column', '{replica}') ORDER BY d '''.format(replica=node.name)) @@ -202,7 +202,7 @@ def test_ttl_double_delete_rule_returns_error(started_cluster): try: node1.query(''' CREATE TABLE test_ttl(date DateTime, id UInt32) - ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/test_ttl', '{replica}') + ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/test_ttl_double_delete', '{replica}') ORDER BY id PARTITION BY toDayOfMonth(date) TTL date + INTERVAL 1 DAY, date + INTERVAL 2 DAY SETTINGS merge_with_ttl_timeout=0 '''.format(replica=node1.name)) @@ -288,7 +288,7 @@ def test_ttl_empty_parts(started_cluster): node.query( ''' CREATE TABLE test_ttl_empty_parts(date Date, id UInt32) - ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/test_ttl', '{replica}') + ENGINE = ReplicatedMergeTree('/clickhouse/tables/test/test_ttl_empty_parts', '{replica}') ORDER BY id SETTINGS max_bytes_to_merge_at_min_space_in_pool = 1, max_bytes_to_merge_at_max_space_in_pool = 1, cleanup_delay_period = 1, cleanup_delay_period_random_add = 0 From eb9b3e673740b3109bf603870e845a7d17271948 Mon Sep 17 00:00:00 2001 From: alesapin Date: Mon, 23 Nov 2020 17:57:46 +0300 Subject: [PATCH 229/425] Less global queries in functional tests --- ...45_zookeeper_system_mutations_with_parts_names.sh | 12 ++++++------ tests/queries/0_stateless/01451_detach_drop_part.sql | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/queries/0_stateless/01045_zookeeper_system_mutations_with_parts_names.sh b/tests/queries/0_stateless/01045_zookeeper_system_mutations_with_parts_names.sh index 97a783cb07d..8368490c09d 100755 --- a/tests/queries/0_stateless/01045_zookeeper_system_mutations_with_parts_names.sh +++ b/tests/queries/0_stateless/01045_zookeeper_system_mutations_with_parts_names.sh @@ -7,11 +7,11 @@ CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) function wait_mutation_to_start() { - query_wait=$($CLICKHOUSE_CLIENT --query="SELECT length(parts_to_do_names) FROM system.mutations where table = '$1'" 2>&1) + query_wait=$($CLICKHOUSE_CLIENT --query="SELECT length(parts_to_do_names) FROM system.mutations where table = '$1' and database='${CLICKHOUSE_DATABASE}'" 2>&1) while [ "$query_wait" == "0" ] || [ -z "$query_wait" ] do - query_wait=$($CLICKHOUSE_CLIENT --query="SELECT length(parts_to_do_names) FROM system.mutations where table = '$1'" 2>&1) + query_wait=$($CLICKHOUSE_CLIENT --query="SELECT length(parts_to_do_names) FROM system.mutations where table = '$1' and database='${CLICKHOUSE_DATABASE}'" 2>&1) sleep 0.5 done } @@ -20,7 +20,7 @@ ${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS table_for_mutations" ${CLICKHOUSE_CLIENT} --query="CREATE TABLE table_for_mutations(k UInt32, v1 UInt64) ENGINE MergeTree ORDER BY k PARTITION BY modulo(k, 2)" -${CLICKHOUSE_CLIENT} --query="SYSTEM STOP MERGES" +${CLICKHOUSE_CLIENT} --query="SYSTEM STOP MERGES table_for_mutations" ${CLICKHOUSE_CLIENT} --query="INSERT INTO table_for_mutations select number, number from numbers(100000)" @@ -32,7 +32,7 @@ ${CLICKHOUSE_CLIENT} --query="SELECT is_done, parts_to_do_names, parts_to_do FRO wait_mutation_to_start "table_for_mutations" -${CLICKHOUSE_CLIENT} --query="SYSTEM START MERGES" +${CLICKHOUSE_CLIENT} --query="SYSTEM START MERGES table_for_mutations" wait_for_mutation "table_for_mutations" "mutation_3.txt" @@ -47,7 +47,7 @@ ${CLICKHOUSE_CLIENT} --query="DROP TABLE IF EXISTS replicated_table_for_mutation ${CLICKHOUSE_CLIENT} --query="CREATE TABLE replicated_table_for_mutations(k UInt32, v1 UInt64) ENGINE ReplicatedMergeTree('/clickhouse/tables/test_01045/replicated_table_for_mutations', '1') ORDER BY k PARTITION BY modulo(k, 2)" -${CLICKHOUSE_CLIENT} --query="SYSTEM STOP MERGES" +${CLICKHOUSE_CLIENT} --query="SYSTEM STOP MERGES replicated_table_for_mutations" ${CLICKHOUSE_CLIENT} --query="INSERT INTO replicated_table_for_mutations select number, number from numbers(100000)" @@ -59,7 +59,7 @@ wait_mutation_to_start "replicated_table_for_mutations" ${CLICKHOUSE_CLIENT} --query="SELECT is_done, parts_to_do_names, parts_to_do FROM system.mutations where table = 'replicated_table_for_mutations'" -${CLICKHOUSE_CLIENT} --query="SYSTEM START MERGES" +${CLICKHOUSE_CLIENT} --query="SYSTEM START MERGES replicated_table_for_mutations" wait_for_mutation "replicated_table_for_mutations" "0000000000" diff --git a/tests/queries/0_stateless/01451_detach_drop_part.sql b/tests/queries/0_stateless/01451_detach_drop_part.sql index 7a2815f9a3e..84973da5f25 100644 --- a/tests/queries/0_stateless/01451_detach_drop_part.sql +++ b/tests/queries/0_stateless/01451_detach_drop_part.sql @@ -1,7 +1,7 @@ DROP TABLE IF EXISTS mt; CREATE TABLE mt (v UInt8) ENGINE = MergeTree() order by tuple(); -SYSTEM STOP MERGES; +SYSTEM STOP MERGES mt; INSERT INTO mt VALUES (0); INSERT INTO mt VALUES (1); @@ -32,7 +32,7 @@ ALTER TABLE mt ATTACH PART 'all_4_4_0'; -- { serverError 233 } SELECT v FROM mt ORDER BY v; SELECT '-- resume merges --'; -SYSTEM START MERGES; +SYSTEM START MERGES mt; OPTIMIZE TABLE mt FINAL; SELECT v FROM mt ORDER BY v; From 1c5da1c17802d769283fd11d98724a6a907bcf59 Mon Sep 17 00:00:00 2001 From: alesapin Date: Mon, 23 Nov 2020 19:39:57 +0300 Subject: [PATCH 230/425] Better timeouts --- tests/integration/test_odbc_interaction/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/test_odbc_interaction/test.py b/tests/integration/test_odbc_interaction/test.py index a2031bf28cc..8235cc6d54d 100644 --- a/tests/integration/test_odbc_interaction/test.py +++ b/tests/integration/test_odbc_interaction/test.py @@ -300,7 +300,7 @@ def test_bridge_dies_with_parent(started_cluster): clickhouse_pid = node1.get_process_pid("clickhouse server") time.sleep(1) - for i in range(5): + for i in range(30): time.sleep(1) # just for sure, that odbc-bridge caught signal bridge_pid = node1.get_process_pid("odbc-bridge") if bridge_pid is None: From 084cac5bd5bbe858fc57cbfe224294d8f5693600 Mon Sep 17 00:00:00 2001 From: alexey-milovidov Date: Mon, 23 Nov 2020 20:45:59 +0300 Subject: [PATCH 231/425] Update StorageMemory.cpp --- src/Storages/StorageMemory.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Storages/StorageMemory.cpp b/src/Storages/StorageMemory.cpp index 3a86133be35..2ba32edb5b3 100644 --- a/src/Storages/StorageMemory.cpp +++ b/src/Storages/StorageMemory.cpp @@ -1,3 +1,4 @@ +#include #include #include @@ -253,14 +254,18 @@ void StorageMemory::mutate(const MutationCommands & commands, const Context & co new_data = std::make_unique(*(data.get())); auto data_it = new_data->begin(); auto out_it = out.begin(); - /// Mutation does not change the number of blocks, so we don't need - // to check whether old data and new data have same number of blocks or not - while (data_it != new_data->end() && out_it != out.end()) + + while (data_it != new_data->end()) { + /// Mutation does not change the number of blocks + assert(out_it != out.end()); + updateBlockData(*data_it, *out_it); ++data_it; ++out_it; } + + assert(out_it == out.end()); } size_t rows = 0; From 234bd09044ba38cfd991edd1c37338ab6b78af06 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Mon, 23 Nov 2020 20:48:00 +0300 Subject: [PATCH 232/425] debug an unreproducible test failure --- tests/queries/0_stateless/01317_no_password_in_command_line.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/queries/0_stateless/01317_no_password_in_command_line.sh b/tests/queries/0_stateless/01317_no_password_in_command_line.sh index 785d3b3751b..3e7145e0733 100755 --- a/tests/queries/0_stateless/01317_no_password_in_command_line.sh +++ b/tests/queries/0_stateless/01317_no_password_in_command_line.sh @@ -16,6 +16,7 @@ $CLICKHOUSE_CLIENT --user user --password hello --query "SELECT sleep(1)" & # Wait for query to start executing. At that time, the password should be cleared. while true; do sleep 0.1 + $CLICKHOUSE_CLIENT --query "SHOW PROCESSLIST" $CLICKHOUSE_CLIENT --query "SHOW PROCESSLIST" | grep -q 'SELECT sleep(1)' && break; done From a543c8e468c2876dd4826bbc5d87595c8b0129aa Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Mon, 23 Nov 2020 21:04:53 +0300 Subject: [PATCH 233/425] Add an option to use existing tables to perf.py --- docker/test/performance-comparison/perf.py | 93 ++++++++++++---------- 1 file changed, 50 insertions(+), 43 deletions(-) diff --git a/docker/test/performance-comparison/perf.py b/docker/test/performance-comparison/perf.py index 2568f7ac066..1c54479aab3 100755 --- a/docker/test/performance-comparison/perf.py +++ b/docker/test/performance-comparison/perf.py @@ -48,6 +48,8 @@ parser.add_argument('--profile-seconds', type=int, default=0, help='For how many parser.add_argument('--long', action='store_true', help='Do not skip the tests tagged as long.') parser.add_argument('--print-queries', action='store_true', help='Print test queries and exit.') parser.add_argument('--print-settings', action='store_true', help='Print test settings and exit.') +parser.add_argument('--keep-created-tables', action='store_true', help="Don't drop the created tables after the test.") +parser.add_argument('--use-existing-tables', action='store_true', help="Don't create or drop the tables, use the existing ones instead.") args = parser.parse_args() reportStageEnd('start') @@ -148,20 +150,21 @@ for i, s in enumerate(servers): reportStageEnd('connect') -# Run drop queries, ignoring errors. Do this before all other activity, because -# clickhouse_driver disconnects on error (this is not configurable), and the new -# connection loses the changes in settings. -drop_query_templates = [q.text for q in root.findall('drop_query')] -drop_queries = substitute_parameters(drop_query_templates) -for conn_index, c in enumerate(all_connections): - for q in drop_queries: - try: - c.execute(q) - print(f'drop\t{conn_index}\t{c.last_query.elapsed}\t{tsv_escape(q)}') - except: - pass +if not args.use_existing_tables: + # Run drop queries, ignoring errors. Do this before all other activity, + # because clickhouse_driver disconnects on error (this is not configurable), + # and the new connection loses the changes in settings. + drop_query_templates = [q.text for q in root.findall('drop_query')] + drop_queries = substitute_parameters(drop_query_templates) + for conn_index, c in enumerate(all_connections): + for q in drop_queries: + try: + c.execute(q) + print(f'drop\t{conn_index}\t{c.last_query.elapsed}\t{tsv_escape(q)}') + except: + pass -reportStageEnd('drop-1') + reportStageEnd('drop-1') # Apply settings. # If there are errors, report them and continue -- maybe a new test uses a setting @@ -193,37 +196,40 @@ for t in tables: reportStageEnd('preconditions') -# Run create and fill queries. We will run them simultaneously for both servers, -# to save time. -# The weird search is to keep the relative order of elements, which matters, and -# etree doesn't support the appropriate xpath query. -create_query_templates = [q.text for q in root.findall('./*') if q.tag in ('create_query', 'fill_query')] -create_queries = substitute_parameters(create_query_templates) +if not args.use_existing_tables: + # Run create and fill queries. We will run them simultaneously for both + # servers, to save time. The weird XML search + filter is because we want to + # keep the relative order of elements, and etree doesn't support the + # appropriate xpath query. + create_query_templates = [q.text for q in root.findall('./*') + if q.tag in ('create_query', 'fill_query')] + create_queries = substitute_parameters(create_query_templates) -# Disallow temporary tables, because the clickhouse_driver reconnects on errors, -# and temporary tables are destroyed. We want to be able to continue after some -# errors. -for q in create_queries: - if re.search('create temporary table', q, flags=re.IGNORECASE): - print(f"Temporary tables are not allowed in performance tests: '{q}'", - file = sys.stderr) - sys.exit(1) + # Disallow temporary tables, because the clickhouse_driver reconnects on + # errors, and temporary tables are destroyed. We want to be able to continue + # after some errors. + for q in create_queries: + if re.search('create temporary table', q, flags=re.IGNORECASE): + print(f"Temporary tables are not allowed in performance tests: '{q}'", + file = sys.stderr) + sys.exit(1) -def do_create(connection, index, queries): - for q in queries: - connection.execute(q) - print(f'create\t{index}\t{connection.last_query.elapsed}\t{tsv_escape(q)}') + def do_create(connection, index, queries): + for q in queries: + connection.execute(q) + print(f'create\t{index}\t{connection.last_query.elapsed}\t{tsv_escape(q)}') -threads = [Thread(target = do_create, args = (connection, index, create_queries)) - for index, connection in enumerate(all_connections)] + threads = [ + Thread(target = do_create, args = (connection, index, create_queries)) + for index, connection in enumerate(all_connections)] -for t in threads: - t.start() + for t in threads: + t.start() -for t in threads: - t.join() + for t in threads: + t.join() -reportStageEnd('create') + reportStageEnd('create') # By default, test all queries. queries_to_run = range(0, len(test_queries)) @@ -402,10 +408,11 @@ print(f'profile-total\t{profile_total_seconds}') reportStageEnd('run') # Run drop queries -drop_queries = substitute_parameters(drop_query_templates) -for conn_index, c in enumerate(all_connections): - for q in drop_queries: - c.execute(q) - print(f'drop\t{conn_index}\t{c.last_query.elapsed}\t{tsv_escape(q)}') +if not args.keep_created_tables and not args.use_existing_tables: + drop_queries = substitute_parameters(drop_query_templates) + for conn_index, c in enumerate(all_connections): + for q in drop_queries: + c.execute(q) + print(f'drop\t{conn_index}\t{c.last_query.elapsed}\t{tsv_escape(q)}') reportStageEnd('drop-2') From 852a08eacbdfd3a58e93bef69042695f357f7189 Mon Sep 17 00:00:00 2001 From: Anton Popov Date: Mon, 23 Nov 2020 21:27:59 +0300 Subject: [PATCH 234/425] allow to move conditions to prewhere with compact parts --- .../MergeTree/MergeTreeWhereOptimizer.cpp | 16 ++++++++++++---- ...1582_move_to_prewhere_compact_parts.reference | 5 +++++ .../01582_move_to_prewhere_compact_parts.sql | 7 +++++++ 3 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 tests/queries/0_stateless/01582_move_to_prewhere_compact_parts.reference create mode 100644 tests/queries/0_stateless/01582_move_to_prewhere_compact_parts.sql diff --git a/src/Storages/MergeTree/MergeTreeWhereOptimizer.cpp b/src/Storages/MergeTree/MergeTreeWhereOptimizer.cpp index 7e51bcff27d..5d6b74cabe9 100644 --- a/src/Storages/MergeTree/MergeTreeWhereOptimizer.cpp +++ b/src/Storages/MergeTree/MergeTreeWhereOptimizer.cpp @@ -147,9 +147,7 @@ void MergeTreeWhereOptimizer::analyzeImpl(Conditions & res, const ASTPtr & node) /// Only table columns are considered. Not array joined columns. NOTE We're assuming that aliases was expanded. && isSubsetOfTableColumns(cond.identifiers) /// Do not move conditions involving all queried columns. - && cond.identifiers.size() < queried_columns.size() - /// Columns size of compact parts can't be counted. If all parts are compact do not move any condition. - && cond.columns_size > 0; + && cond.identifiers.size() < queried_columns.size(); if (cond.viable) cond.good = isConditionGood(node); @@ -197,12 +195,14 @@ void MergeTreeWhereOptimizer::optimize(ASTSelectQuery & select) const Conditions prewhere_conditions; UInt64 total_size_of_moved_conditions = 0; + UInt64 total_number_of_moved_columns = 0; /// Move condition and all other conditions depend on the same set of columns. auto move_condition = [&](Conditions::iterator cond_it) { prewhere_conditions.splice(prewhere_conditions.end(), where_conditions, cond_it); total_size_of_moved_conditions += cond_it->columns_size; + total_number_of_moved_columns += cond_it->identifiers.size(); /// Move all other viable conditions that depend on the same set of columns. for (auto jt = where_conditions.begin(); jt != where_conditions.end();) @@ -225,7 +225,15 @@ void MergeTreeWhereOptimizer::optimize(ASTSelectQuery & select) const break; /// 10% ratio is just a guess. - if (total_size_of_moved_conditions > 0 && (total_size_of_moved_conditions + it->columns_size) * 10 > total_size_of_queried_columns) + /// If sizes of compressed columns cannot be calculated, e.g. for compact parts, + /// use number of moved columns as a fallback. + bool moved_enough = + (total_size_of_queried_columns > 0 && total_size_of_moved_conditions > 0 + && (total_size_of_moved_conditions + it->columns_size) * 10 > total_size_of_queried_columns) + || (total_number_of_moved_columns > 0 + && (total_number_of_moved_columns + it->identifiers.size()) * 10 > queried_columns.size()); + + if (moved_enough) break; move_condition(it); diff --git a/tests/queries/0_stateless/01582_move_to_prewhere_compact_parts.reference b/tests/queries/0_stateless/01582_move_to_prewhere_compact_parts.reference new file mode 100644 index 00000000000..6ed51e39d26 --- /dev/null +++ b/tests/queries/0_stateless/01582_move_to_prewhere_compact_parts.reference @@ -0,0 +1,5 @@ +SELECT + x, + y +FROM prewhere_move +PREWHERE x > 100 diff --git a/tests/queries/0_stateless/01582_move_to_prewhere_compact_parts.sql b/tests/queries/0_stateless/01582_move_to_prewhere_compact_parts.sql new file mode 100644 index 00000000000..436ebcd4ff8 --- /dev/null +++ b/tests/queries/0_stateless/01582_move_to_prewhere_compact_parts.sql @@ -0,0 +1,7 @@ +DROP TABLE IF EXISTS prewhere_move; +CREATE TABLE prewhere_move (x Int, y String) ENGINE = MergeTree ORDER BY tuple(); +INSERT INTO prewhere_move SELECT number, toString(number) FROM numbers(1000); + +EXPLAIN SYNTAX SELECT * FROM prewhere_move WHERE x > 100; + +DROP TABLE prewhere_move; From 3ab9ac03dfc5c26b930ed8a1425f555039e3ff1b Mon Sep 17 00:00:00 2001 From: alexey-milovidov Date: Mon, 23 Nov 2020 21:51:38 +0300 Subject: [PATCH 235/425] Update documentation-issue.md --- .github/ISSUE_TEMPLATE/documentation-issue.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/documentation-issue.md b/.github/ISSUE_TEMPLATE/documentation-issue.md index a8f31eadc56..557e5ea43c9 100644 --- a/.github/ISSUE_TEMPLATE/documentation-issue.md +++ b/.github/ISSUE_TEMPLATE/documentation-issue.md @@ -2,8 +2,7 @@ name: Documentation issue about: Report something incorrect or missing in documentation title: '' -labels: documentation -assignees: BayoNet +labels: comp-documentation --- From 9cc81dae85319e35d521d508cdc62a2c09833acf Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Mon, 23 Nov 2020 23:02:24 +0300 Subject: [PATCH 236/425] done --- src/Functions/FunctionBase64Conversion.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Functions/FunctionBase64Conversion.h b/src/Functions/FunctionBase64Conversion.h index adc131053e2..f2ad47c1c60 100644 --- a/src/Functions/FunctionBase64Conversion.h +++ b/src/Functions/FunctionBase64Conversion.h @@ -106,8 +106,8 @@ public: auto & dst_offsets = dst_column->getOffsets(); size_t reserve = Func::getBufferSize(input->getChars().size(), input->size()); - dst_data.resize(reserve); - dst_offsets.resize(input_rows_count); + dst_data.resize_fill(reserve); + dst_offsets.resize_fill(input_rows_count); const ColumnString::Offsets & src_offsets = input->getOffsets(); @@ -164,7 +164,7 @@ public: src_offset_prev = src_offsets[row]; } - dst_data.resize(dst_pos - dst); + dst_data.resize_fill(dst_pos - dst); return dst_column; } From 72ad486c6fa8f3e0de8f994979293192c06aa0dd Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Mon, 23 Nov 2020 23:33:38 +0300 Subject: [PATCH 237/425] rerun test just to be sure From db1aef89941f4f3d87a0b405e7137023408554d2 Mon Sep 17 00:00:00 2001 From: alesapin Date: Mon, 23 Nov 2020 23:44:46 +0300 Subject: [PATCH 238/425] More retries --- tests/integration/test_odbc_interaction/test.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/integration/test_odbc_interaction/test.py b/tests/integration/test_odbc_interaction/test.py index 8235cc6d54d..61b4a721a72 100644 --- a/tests/integration/test_odbc_interaction/test.py +++ b/tests/integration/test_odbc_interaction/test.py @@ -201,8 +201,8 @@ def test_sqlite_odbc_hashed_dictionary(started_cluster): node1.exec_in_container(["bash", "-c", "echo 'INSERT INTO t2 values(1, 2, 3);' | sqlite3 {}".format(sqlite_db)], privileged=True, user='root') - assert node1.query("select dictGetUInt8('sqlite3_odbc_hashed', 'Z', toUInt64(1))") == "3\n" - assert node1.query("select dictGetUInt8('sqlite3_odbc_hashed', 'Z', toUInt64(200))") == "1\n" # default + assert_eq_with_retry(node1, "select dictGetUInt8('sqlite3_odbc_hashed', 'Z', toUInt64(1))", "3") + assert_eq_with_retry(node1, "select dictGetUInt8('sqlite3_odbc_hashed', 'Z', toUInt64(200))", "1") # default time.sleep(5) # first reload node1.exec_in_container(["bash", "-c", "echo 'INSERT INTO t2 values(200, 2, 7);' | sqlite3 {}".format(sqlite_db)], @@ -210,8 +210,8 @@ def test_sqlite_odbc_hashed_dictionary(started_cluster): # No reload because of invalidate query time.sleep(5) - assert node1.query("select dictGetUInt8('sqlite3_odbc_hashed', 'Z', toUInt64(1))") == "3\n" - assert node1.query("select dictGetUInt8('sqlite3_odbc_hashed', 'Z', toUInt64(200))") == "1\n" # still default + assert_eq_with_retry(node1, "select dictGetUInt8('sqlite3_odbc_hashed', 'Z', toUInt64(1))", "3") + assert_eq_with_retry(node1, "select dictGetUInt8('sqlite3_odbc_hashed', 'Z', toUInt64(200))", "1") # still default node1.exec_in_container(["bash", "-c", "echo 'REPLACE INTO t2 values(1, 2, 5);' | sqlite3 {}".format(sqlite_db)], privileged=True, user='root') From b5440882cd89dfa183227e353b2468310920ccf7 Mon Sep 17 00:00:00 2001 From: taichong Date: Tue, 24 Nov 2020 10:10:57 +0800 Subject: [PATCH 239/425] remove kill server while insert --- .../materialize_with_ddl.py | 61 ------------------- .../test_materialize_mysql_database/test.py | 14 ----- 2 files changed, 75 deletions(-) diff --git a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py index 5747f441f40..f646cce0f9d 100644 --- a/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py +++ b/tests/integration/test_materialize_mysql_database/materialize_with_ddl.py @@ -651,64 +651,3 @@ def mysql_kill_sync_thread_restore_test(clickhouse_node, mysql_node, service_nam mysql_node.query("DROP DATABASE test_database") -def mysql_killed_while_insert(clickhouse_node, mysql_node, service_name): - mysql_node.query("CREATE DATABASE kill_mysql_while_insert") - mysql_node.query("CREATE TABLE kill_mysql_while_insert.test ( `id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB;") - clickhouse_node.query("CREATE DATABASE kill_mysql_while_insert ENGINE = MaterializeMySQL('{}:3306', 'kill_mysql_while_insert', 'root', 'clickhouse')".format(service_name)) - check_query(clickhouse_node, "SHOW TABLES FROM kill_mysql_while_insert FORMAT TSV", 'test\n') - try: - def insert(num): - for i in range(num): - query = "INSERT INTO kill_mysql_while_insert.test VALUES({v});".format( v = i + 1 ) - mysql_node.query(query) - - t = threading.Thread(target=insert, args=(10000,)) - t.start() - - subprocess.check_call( - ['docker-compose', '-p', mysql_node.project_name, '-f', mysql_node.docker_compose, 'stop']) - finally: - with pytest.raises(QueryRuntimeException) as execption: - time.sleep(5) - clickhouse_node.query("SELECT count() FROM kill_mysql_while_insert.test") - assert "Master maybe lost." in str(execption.value) - - subprocess.check_call( - ['docker-compose', '-p', mysql_node.project_name, '-f', mysql_node.docker_compose, 'start']) - mysql_node.wait_mysql_to_start(120) - - clickhouse_node.query("DETACH DATABASE kill_mysql_while_insert") - clickhouse_node.query("ATTACH DATABASE kill_mysql_while_insert") - - result = mysql_node.query_and_get_data("SELECT COUNT(1) FROM kill_mysql_while_insert.test") - for row in result: - res = str(row[0]) + '\n' - check_query(clickhouse_node, "SELECT count() FROM kill_mysql_while_insert.test", res) - - mysql_node.query("DROP DATABASE kill_mysql_while_insert") - clickhouse_node.query("DROP DATABASE kill_mysql_while_insert") - -def clickhouse_killed_while_insert(clickhouse_node, mysql_node, service_name): - mysql_node.query("CREATE DATABASE kill_clickhouse_while_insert") - mysql_node.query("CREATE TABLE kill_clickhouse_while_insert.test ( `id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB;") - clickhouse_node.query("CREATE DATABASE kill_clickhouse_while_insert ENGINE = MaterializeMySQL('{}:3306', 'kill_clickhouse_while_insert', 'root', 'clickhouse')".format(service_name)) - check_query(clickhouse_node, "SHOW TABLES FROM kill_clickhouse_while_insert FORMAT TSV", 'test\n') - - def insert(num): - for i in range(num): - query = "INSERT INTO kill_clickhouse_while_insert.test VALUES({v});".format( v = i + 1 ) - mysql_node.query(query) - - t = threading.Thread(target=insert, args=(1000,)) - t.start() - - clickhouse_node.restart_clickhouse() - t.join() - - result = mysql_node.query_and_get_data("SELECT COUNT(1) FROM kill_clickhouse_while_insert.test") - for row in result: - res = str(row[0]) + '\n' - check_query(clickhouse_node, "SELECT count() FROM kill_clickhouse_while_insert.test FORMAT TSV", res) - - mysql_node.query("DROP DATABASE kill_clickhouse_while_insert") - clickhouse_node.query("DROP DATABASE kill_clickhouse_while_insert") diff --git a/tests/integration/test_materialize_mysql_database/test.py b/tests/integration/test_materialize_mysql_database/test.py index 653cddfb6de..221e4559264 100644 --- a/tests/integration/test_materialize_mysql_database/test.py +++ b/tests/integration/test_materialize_mysql_database/test.py @@ -210,17 +210,3 @@ def test_mysql_kill_sync_thread_restore_5_7(started_cluster, started_mysql_5_7): def test_mysql_kill_sync_thread_restore_8_0(started_cluster, started_mysql_8_0): materialize_with_ddl.mysql_kill_sync_thread_restore_test(clickhouse_node, started_mysql_8_0, "mysql8_0") - - -def test_mysql_killed_while_insert_5_7(started_cluster, started_mysql_5_7): - materialize_with_ddl.mysql_killed_while_insert(clickhouse_node, started_mysql_5_7, "mysql1") - -def test_mysql_killed_while_insert_8_0(started_cluster, started_mysql_8_0): - materialize_with_ddl.mysql_killed_while_insert(clickhouse_node, started_mysql_8_0, "mysql8_0") - - -def test_clickhouse_killed_while_insert_5_7(started_cluster, started_mysql_5_7): - materialize_with_ddl.clickhouse_killed_while_insert(clickhouse_node, started_mysql_5_7, "mysql1") - -def test_clickhouse_killed_while_insert_8_0(started_cluster, started_mysql_8_0): - materialize_with_ddl.clickhouse_killed_while_insert(clickhouse_node, started_mysql_8_0, "mysql8_0") From f0a5bf4cd097810726a3b7c07e888d14767621cb Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 24 Nov 2020 06:10:18 +0000 Subject: [PATCH 240/425] Bump mkdocs-macros-plugin from 0.4.20 to 0.5.0 in /docs/tools Bumps [mkdocs-macros-plugin](https://github.com/fralau/mkdocs_macros_plugin) from 0.4.20 to 0.5.0. - [Release notes](https://github.com/fralau/mkdocs_macros_plugin/releases) - [Commits](https://github.com/fralau/mkdocs_macros_plugin/compare/v0.4.20...v0.5.0) Signed-off-by: dependabot-preview[bot] --- docs/tools/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tools/requirements.txt b/docs/tools/requirements.txt index 4106100bfa3..b21eb4892fd 100644 --- a/docs/tools/requirements.txt +++ b/docs/tools/requirements.txt @@ -18,7 +18,7 @@ Markdown==3.3.2 MarkupSafe==1.1.1 mkdocs==1.1.2 mkdocs-htmlproofer-plugin==0.0.3 -mkdocs-macros-plugin==0.4.20 +mkdocs-macros-plugin==0.5.0 nltk==3.5 nose==1.3.7 protobuf==3.14.0 From 54779848564abed6a5607e43b5ec8cdc00d7f0cd Mon Sep 17 00:00:00 2001 From: alesapin Date: Tue, 24 Nov 2020 10:33:35 +0300 Subject: [PATCH 241/425] Longer integration tests for rabbitMQ --- .../integration/test_storage_rabbitmq/test.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/integration/test_storage_rabbitmq/test.py b/tests/integration/test_storage_rabbitmq/test.py index d7f98d5cb77..5748268bb25 100644 --- a/tests/integration/test_storage_rabbitmq/test.py +++ b/tests/integration/test_storage_rabbitmq/test.py @@ -123,7 +123,7 @@ def rabbitmq_setup_teardown(): # Tests -@pytest.mark.timeout(180) +@pytest.mark.timeout(240) def test_rabbitmq_select(rabbitmq_cluster): instance.query(''' CREATE TABLE test.rabbitmq (key UInt64, value UInt64) @@ -159,7 +159,7 @@ def test_rabbitmq_select(rabbitmq_cluster): rabbitmq_check_result(result, True) -@pytest.mark.timeout(180) +@pytest.mark.timeout(240) def test_rabbitmq_select_empty(rabbitmq_cluster): instance.query(''' CREATE TABLE test.rabbitmq (key UInt64, value UInt64) @@ -173,7 +173,7 @@ def test_rabbitmq_select_empty(rabbitmq_cluster): assert int(instance.query('SELECT count() FROM test.rabbitmq')) == 0 -@pytest.mark.timeout(180) +@pytest.mark.timeout(240) def test_rabbitmq_json_without_delimiter(rabbitmq_cluster): instance.query(''' CREATE TABLE test.rabbitmq (key UInt64, value UInt64) @@ -215,7 +215,7 @@ def test_rabbitmq_json_without_delimiter(rabbitmq_cluster): rabbitmq_check_result(result, True) -@pytest.mark.timeout(180) +@pytest.mark.timeout(240) def test_rabbitmq_csv_with_delimiter(rabbitmq_cluster): instance.query(''' CREATE TABLE test.rabbitmq (key UInt64, value UInt64) @@ -250,7 +250,7 @@ def test_rabbitmq_csv_with_delimiter(rabbitmq_cluster): rabbitmq_check_result(result, True) -@pytest.mark.timeout(180) +@pytest.mark.timeout(240) def test_rabbitmq_tsv_with_delimiter(rabbitmq_cluster): instance.query(''' CREATE TABLE test.rabbitmq (key UInt64, value UInt64) @@ -285,7 +285,7 @@ def test_rabbitmq_tsv_with_delimiter(rabbitmq_cluster): rabbitmq_check_result(result, True) -@pytest.mark.timeout(180) +@pytest.mark.timeout(240) def test_rabbitmq_materialized_view(rabbitmq_cluster): instance.query(''' DROP TABLE IF EXISTS test.view; @@ -328,7 +328,7 @@ def test_rabbitmq_materialized_view(rabbitmq_cluster): rabbitmq_check_result(result, True) -@pytest.mark.timeout(180) +@pytest.mark.timeout(240) def test_rabbitmq_materialized_view_with_subquery(rabbitmq_cluster): instance.query(''' DROP TABLE IF EXISTS test.view; @@ -371,7 +371,7 @@ def test_rabbitmq_materialized_view_with_subquery(rabbitmq_cluster): rabbitmq_check_result(result, True) -@pytest.mark.timeout(180) +@pytest.mark.timeout(240) def test_rabbitmq_many_materialized_views(rabbitmq_cluster): instance.query(''' DROP TABLE IF EXISTS test.view1; @@ -426,7 +426,7 @@ def test_rabbitmq_many_materialized_views(rabbitmq_cluster): @pytest.mark.skip(reason="clichouse_path with rabbitmq.proto fails to be exported") -@pytest.mark.timeout(180) +@pytest.mark.timeout(240) def test_rabbitmq_protobuf(rabbitmq_cluster): instance.query(''' DROP TABLE IF EXISTS test.view; From cb234e28ea8e4f60f192041b24d57e3177cea6fb Mon Sep 17 00:00:00 2001 From: alesapin Date: Tue, 24 Nov 2020 11:09:10 +0300 Subject: [PATCH 242/425] Fix garbage test --- .../integration/test_odbc_interaction/test.py | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/tests/integration/test_odbc_interaction/test.py b/tests/integration/test_odbc_interaction/test.py index 61b4a721a72..9e1d6165262 100644 --- a/tests/integration/test_odbc_interaction/test.py +++ b/tests/integration/test_odbc_interaction/test.py @@ -201,15 +201,35 @@ def test_sqlite_odbc_hashed_dictionary(started_cluster): node1.exec_in_container(["bash", "-c", "echo 'INSERT INTO t2 values(1, 2, 3);' | sqlite3 {}".format(sqlite_db)], privileged=True, user='root') + node1.query("SYSTEM RELOAD DICTIONARY sqlite3_odbc_hashed") + first_update_time = node1.query("SELECT last_successful_update_time FROM system.dictionaries WHERE name = 'sqlite3_odbc_hashed'") + print("First update time", first_update_time) + assert_eq_with_retry(node1, "select dictGetUInt8('sqlite3_odbc_hashed', 'Z', toUInt64(1))", "3") assert_eq_with_retry(node1, "select dictGetUInt8('sqlite3_odbc_hashed', 'Z', toUInt64(200))", "1") # default - time.sleep(5) # first reload + second_update_time = node1.query("SELECT last_successful_update_time FROM system.dictionaries WHERE name = 'sqlite3_odbc_hashed'") + # Reloaded with new data + print("Second update time", second_update_time) + while first_update_time == second_update_time: + second_update_time = node1.query("SELECT last_successful_update_time FROM system.dictionaries WHERE name = 'sqlite3_odbc_hashed'") + print("Waiting dictionary to update for the second time") + time.sleep(0.1) + node1.exec_in_container(["bash", "-c", "echo 'INSERT INTO t2 values(200, 2, 7);' | sqlite3 {}".format(sqlite_db)], privileged=True, user='root') # No reload because of invalidate query - time.sleep(5) + third_update_time = node1.query("SELECT last_successful_update_time FROM system.dictionaries WHERE name = 'sqlite3_odbc_hashed'") + print("Third update time", second_update_time) + counter = 0 + while third_update_time == second_update_time: + third_update_time = node1.query("SELECT last_successful_update_time FROM system.dictionaries WHERE name = 'sqlite3_odbc_hashed'") + time.sleep(0.1) + if counter > 50: + break + counter += 1 + assert_eq_with_retry(node1, "select dictGetUInt8('sqlite3_odbc_hashed', 'Z', toUInt64(1))", "3") assert_eq_with_retry(node1, "select dictGetUInt8('sqlite3_odbc_hashed', 'Z', toUInt64(200))", "1") # still default From b05385cec0033aff9443f6bd5f40c17d2d995e50 Mon Sep 17 00:00:00 2001 From: alesapin Date: Tue, 24 Nov 2020 11:17:37 +0300 Subject: [PATCH 243/425] Remove code from test which copy-pasted from another test --- tests/integration/test_default_compression_codec/test.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/tests/integration/test_default_compression_codec/test.py b/tests/integration/test_default_compression_codec/test.py index db7dc032dcc..116454cc31f 100644 --- a/tests/integration/test_default_compression_codec/test.py +++ b/tests/integration/test_default_compression_codec/test.py @@ -228,10 +228,3 @@ def test_default_codec_version_update(start_cluster): "SELECT default_compression_codec FROM system.parts WHERE table = 'compression_table' and name = '2_2_2_1'") == "LZ4HC(5)\n" assert node3.query( "SELECT default_compression_codec FROM system.parts WHERE table = 'compression_table' and name = '3_3_3_1'") == "LZ4\n" - assert get_compression_codec_byte(node1, "compression_table_multiple", "2_0_0_1") == CODECS_MAPPING['Multiple'] - assert get_second_multiple_codec_byte(node1, "compression_table_multiple", "2_0_0_1") == CODECS_MAPPING['LZ4HC'] - assert get_compression_codec_byte(node1, "compression_table_multiple", "3_0_0_1") == CODECS_MAPPING['Multiple'] - assert get_second_multiple_codec_byte(node1, "compression_table_multiple", "3_0_0_1") == CODECS_MAPPING['LZ4'] - - assert node1.query("SELECT COUNT() FROM compression_table_multiple") == "3\n" - assert node2.query("SELECT COUNT() FROM compression_table_multiple") == "3\n" From 52bc29061634ef7f6259bea4d6662f3b316674ab Mon Sep 17 00:00:00 2001 From: vdimir Date: Tue, 24 Nov 2020 11:20:11 +0300 Subject: [PATCH 244/425] Regenerate ya.make, add format null to ip_trie.xml --- src/Dictionaries/ya.make | 1 + tests/performance/ip_trie.xml | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Dictionaries/ya.make b/src/Dictionaries/ya.make index 107d8871e84..19a0f5008b8 100644 --- a/src/Dictionaries/ya.make +++ b/src/Dictionaries/ya.make @@ -53,6 +53,7 @@ SRCS( FlatDictionary.cpp HTTPDictionarySource.cpp HashedDictionary.cpp + IPAddressDictionary.cpp LibraryDictionarySource.cpp LibraryDictionarySourceExternal.cpp MongoDBDictionarySource.cpp diff --git a/tests/performance/ip_trie.xml b/tests/performance/ip_trie.xml index 2a28a6716dc..9be0c4337e4 100644 --- a/tests/performance/ip_trie.xml +++ b/tests/performance/ip_trie.xml @@ -60,26 +60,26 @@ SELECT dictGetFloat32('default.dict_ip_trie', 'val', tuple(rand32())) - FROM numbers(500000) + FROM numbers(500000) FORMAT Null SELECT dictGetFloat32('default.dict_ip_trie', 'val', tuple(randomFixedString(16))) - FROM numbers(500000) + FROM numbers(500000) FORMAT Null SELECT dictGetFloat32('default.dict_ip_trie', 'val', tuple(IPv6StringToNum(ip))) FROM table_ip_from_dict WHERE ver == 4 - LIMIT 500000 + LIMIT 500000 FORMAT Null SELECT dictGetFloat32('default.dict_ip_trie', 'val', tuple(IPv6StringToNum(ip))) FROM table_ip_from_dict WHERE ver == 6 - LIMIT 500000 + LIMIT 500000 FORMAT Null DROP DICTIONARY IF EXISTS default.dict_ip_trie From 504e228d9f546d5c23e0c9bbf6fab3205786f2e6 Mon Sep 17 00:00:00 2001 From: qianmoQ Date: Tue, 24 Nov 2020 19:13:00 +0800 Subject: [PATCH 245/425] Fixed a problem with the translation of the document fix `clickhouse-local.md` document --- .../operations/utilities/clickhouse-local.md | 57 ++++++++++++------- 1 file changed, 36 insertions(+), 21 deletions(-) diff --git a/docs/zh/operations/utilities/clickhouse-local.md b/docs/zh/operations/utilities/clickhouse-local.md index 4e89961e198..3ff38c01651 100644 --- a/docs/zh/operations/utilities/clickhouse-local.md +++ b/docs/zh/operations/utilities/clickhouse-local.md @@ -3,18 +3,18 @@ toc_priority: 60 toc_title: clickhouse-local --- -# ツ环板-ョツ嘉ッツ偲 {#clickhouse-local} +# ClickHouse Local {#clickhouse-local} -该 `clickhouse-local` 程序使您能够对本地文件执行快速处理,而无需部署和配置ClickHouse服务器。 +`clickhouse-local`模式可以使您能够对本地文件执行快速处理,而无需部署和配置ClickHouse服务器。 -接受表示表的数据并使用以下方式查询它们 [ツ环板ECTョツ嘉ッツ偲](../../operations/utilities/clickhouse-local.md). +[ClickHouse SQL语法](../../operations/utilities/clickhouse-local.md)支持对表格数据的查询. -`clickhouse-local` 使用与ClickHouse server相同的核心,因此它支持大多数功能以及相同的格式和表引擎。 +`clickhouse-local`使用与ClickHouse Server相同的核心,因此它支持大多数功能以及相同的格式和表引擎。 -默认情况下 `clickhouse-local` 不能访问同一主机上的数据,但它支持使用以下方式加载服务器配置 `--config-file` 争论。 +默认情况下`clickhouse-local`不能访问同一主机上的数据,但它支持使用`--config-file`方式加载服务器配置。 !!! warning "警告" - 不建议将生产服务器配置加载到 `clickhouse-local` 因为数据可以在人为错误的情况下被损坏。 + 不建议将生产服务器配置加载到`clickhouse-local`因为数据可以在人为错误的情况下被损坏。 ## 用途 {#usage} @@ -26,21 +26,21 @@ clickhouse-local --structure "table_structure" --input-format "format_of_incomin 参数: -- `-S`, `--structure` — table structure for input data. -- `-if`, `--input-format` — input format, `TSV` 默认情况下。 -- `-f`, `--file` — path to data, `stdin` 默认情况下。 -- `-q` `--query` — queries to execute with `;` 如delimeter。 -- `-N`, `--table` — table name where to put output data, `table` 默认情况下。 -- `-of`, `--format`, `--output-format` — output format, `TSV` 默认情况下。 -- `--stacktrace` — whether to dump debug output in case of exception. -- `--verbose` — more details on query execution. -- `-s` — disables `stderr` 记录。 -- `--config-file` — path to configuration file in same format as for ClickHouse server, by default the configuration empty. -- `--help` — arguments references for `clickhouse-local`. +- `-S`, `--structure` — 输入数据的表结构。 +- `-if`, `--input-format` — 输入格式化类型, 默认是`TSV`。 +- `-f`, `--file` — 数据路径, 默认是`stdin`。 +- `-q` `--query` — 要查询的SQL语句使用`;`做分隔符。 +- `-N`, `--table` — 数据输出的表名,默认是`table`。 +- `-of`, `--format`, `--output-format` — 输出格式化类型, 默认是`TSV`。 +- `--stacktrace` — 是否在出现异常时输出栈信息。 +- `--verbose` — debug显示查询的详细信息。 +- `-s` — 禁用`stderr`输出信息。 +- `--config-file` — 与ClickHouse服务器格式相同配置文件的路径,默认情况下配置为空。 +- `--help` — `clickhouse-local`使用帮助信息。 -还有每个ClickHouse配置变量的参数,这些变量更常用,而不是 `--config-file`. +对于每个ClickHouse配置的参数,也可以单独使用,可以不使用`--config-file`指定。 -## 例 {#examples} +## 示例 {#examples} ``` bash echo -e "1,2\n3,4" | clickhouse-local -S "a Int64, b Int64" -if "CSV" -q "SELECT * FROM table" @@ -49,7 +49,7 @@ Read 2 rows, 32.00 B in 0.000 sec., 5182 rows/sec., 80.97 KiB/sec. 3 4 ``` -前面的例子是一样的: +另一个示例,类似上一个使用示例: ``` bash $ echo -e "1,2\n3,4" | clickhouse-local -q "CREATE TABLE table (a Int64, b Int64) ENGINE = File(CSV, stdin); SELECT a, b FROM table; DROP TABLE table" @@ -58,7 +58,22 @@ Read 2 rows, 32.00 B in 0.000 sec., 4987 rows/sec., 77.93 KiB/sec. 3 4 ``` -现在让我们为每个Unix用户输出内存用户: +你可以使用`stdin`或`--file`参数, 打开任意数量的文件来使用多个文件[`file` table function](../../sql-reference/table-functions/file.md): + +```bash +$ echo 1 | tee 1.tsv +1 + +$ echo 2 | tee 2.tsv +2 + +$ clickhouse-local --query " + select * from file('1.tsv', TSV, 'a int') t1 + cross join file('2.tsv', TSV, 'b int') t2" +1 2 +``` + +现在让我们查询每个Unix用户使用内存: ``` bash $ ps aux | tail -n +2 | awk '{ printf("%s\t%s\n", $1, $4) }' | clickhouse-local -S "user String, mem Float64" -q "SELECT user, round(sum(mem), 2) as memTotal FROM table GROUP BY user ORDER BY memTotal DESC FORMAT Pretty" From ff36dee2ecee5fe7c85ea4d0fb64a6764106322d Mon Sep 17 00:00:00 2001 From: Anton Popov Date: Tue, 24 Nov 2020 15:22:13 +0300 Subject: [PATCH 246/425] move test to bugs --- .../01482_move_to_prewhere_and_cast.reference | 0 .../{0_stateless => bugs}/01482_move_to_prewhere_and_cast.sql | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename tests/queries/{0_stateless => bugs}/01482_move_to_prewhere_and_cast.reference (100%) rename tests/queries/{0_stateless => bugs}/01482_move_to_prewhere_and_cast.sql (100%) diff --git a/tests/queries/0_stateless/01482_move_to_prewhere_and_cast.reference b/tests/queries/bugs/01482_move_to_prewhere_and_cast.reference similarity index 100% rename from tests/queries/0_stateless/01482_move_to_prewhere_and_cast.reference rename to tests/queries/bugs/01482_move_to_prewhere_and_cast.reference diff --git a/tests/queries/0_stateless/01482_move_to_prewhere_and_cast.sql b/tests/queries/bugs/01482_move_to_prewhere_and_cast.sql similarity index 100% rename from tests/queries/0_stateless/01482_move_to_prewhere_and_cast.sql rename to tests/queries/bugs/01482_move_to_prewhere_and_cast.sql From e740bd40f1b0acc0e5ef7bfbe28a5ebdc3b54669 Mon Sep 17 00:00:00 2001 From: qianmoQ Date: Tue, 24 Nov 2020 20:36:19 +0800 Subject: [PATCH 247/425] fix document for index.md and distinctive-features.md --- .gitignore | 2 + docs/zh/index.md | 49 +++++++++----------- docs/zh/introduction/distinctive-features.md | 22 +++++++-- 3 files changed, 43 insertions(+), 30 deletions(-) diff --git a/.gitignore b/.gitignore index 52d58e68cb6..2cb20976632 100644 --- a/.gitignore +++ b/.gitignore @@ -124,3 +124,5 @@ website/package-lock.json # Toolchains /cmake/toolchain/* + +*.iml diff --git a/docs/zh/index.md b/docs/zh/index.md index 5294dc6c8c7..2bef22f3de4 100644 --- a/docs/zh/index.md +++ b/docs/zh/index.md @@ -4,53 +4,50 @@ ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS) 在传统的行式数据库系统中,数据按如下顺序存储: -| row | watchID | JavaEnable | title | GoodEvent | EventTime | -|-----|-------------|------------|------------|-----------|---------------------| -| #0 | 89354350662 | 1 | 投资者关系 | 1 | 2016-05-18 05:19:20 | -| #1 | 90329509958 | 0 | 联系我们 | 1 | 2016-05-18 08:10:20 | -| #2 | 89953706054 | 1 | 任务 | 1 | 2016-05-18 07:38:00 | -| #N | … | … | … | … | … | +| Row | WatchID | JavaEnable | Title | GoodEvent | EventTime | +|-----|-------------|------------|--------------------|-----------|---------------------| +| #0 | 89354350662 | 1 | Investor Relations | 1 | 2016-05-18 05:19:20 | +| #1 | 90329509958 | 0 | Contact us | 1 | 2016-05-18 08:10:20 | +| #2 | 89953706054 | 1 | Mission | 1 | 2016-05-18 07:38:00 | +| #N | … | … | … | … | … | 处于同一行中的数据总是被物理的存储在一起。 -常见的行式数据库系统有: MySQL、Postgres和MS SQL Server。 -{: .灰色 } +常见的行式数据库系统有:`MySQL`、`Postgres`和`MS SQL Server`。 在列式数据库系统中,数据按如下的顺序存储: -| row: | #0 | #1 | #2 | #N | +| Row: | #0 | #1 | #2 | #N | |-------------|---------------------|---------------------|---------------------|-----| -| watchID: | 89354350662 | 90329509958 | 89953706054 | … | +| WatchID: | 89354350662 | 90329509958 | 89953706054 | … | | JavaEnable: | 1 | 0 | 1 | … | -| title: | 投资者关系 | 联系我们 | 任务 | … | +| Title: | Investor Relations | Contact us | Mission | … | | GoodEvent: | 1 | 1 | 1 | … | -| EventTime: | 2016-05-18 05:19:20 | 2016-05-18 08:10:20 | 2016-05-18 07:38:00 | … | +| EventTime: | 2016-05-18 05:19:20 | 2016-05-18 08:10:20 | 2016-05-18 07:38:00 | … | -该示例中只展示了数据在列式数据库中数据的排列方式。 -对于存储而言,列式数据库总是将同一列的数据存储在一起,不同列的数据也总是分开存储。 +这些示例只显示了数据的排列顺序。来自不同列的值被单独存储,来自同一列的数据被存储在一起。 常见的列式数据库有: Vertica、 Paraccel (Actian Matrix,Amazon Redshift)、 Sybase IQ、 Exasol、 Infobright、 InfiniDB、 MonetDB (VectorWise, Actian Vector)、 LucidDB、 SAP HANA、 Google Dremel、 Google PowerDrill、 Druid、 kdb+。 -{: .灰色 } -不同的数据存储方式适用不同的业务场景,数据访问的场景包括:进行了何种查询、多久查询一次以及各类查询的比例; 每种查询读取多少数据————行、列和字节;读取数据和写入数据之间的关系;使用的数据集大小以及如何使用本地的数据集;是否使用事务,以及它们是如何进行隔离的;数据的复制机制与数据的完整性要求;每种类型的查询要求的延迟与吞吐量等等。 +不同的数据存储方式适用不同的业务场景,数据访问的场景包括:进行了何种查询、多久查询一次以及各类查询的比例;每种类型的查询(行、列和字节)读取多少数据;读取数据和更新之间的关系;使用的数据集大小以及如何使用本地的数据集;是否使用事务,以及它们是如何进行隔离的;数据的复制机制与数据的完整性要求;每种类型的查询要求的延迟与吞吐量等等。 -系统负载越高,依据使用场景进行定制化就越重要,并且定制将会变的越精细。没有一个系统能够同时适用所有明显不同的业务场景。如果系统适用于广泛的场景,在负载高的情况下,要兼顾所有的场景,那么将不得不做出选择。是要平衡还是要效率? +系统负载越高,依据使用场景进行定制化就越重要,并且定制将会变的越精细。没有一个系统能够同时适用所有不同的业务场景。如果系统适用于广泛的场景,在负载高的情况下,要兼顾所有的场景,那么将不得不做出选择。是要平衡还是要效率? ## OLAP场景的关键特征 {#olapchang-jing-de-guan-jian-te-zheng} -- 大多数是读请求 -- 数据总是以相当大的批(\> 1000 rows)进行写入 -- 不修改已添加的数据 -- 每次查询都从数据库中读取大量的行,但是同时又仅需要少量的列 +- 绝大多数是读请求 +- 数据以相当大的批次(\> 1000行)更新,而不是单行更新;或者根本没有更新。 +- 已添加到数据库的数据不能修改。 +- 对于读取,从数据库中提取相当多的行,但只提取列的一小部分。 - 宽表,即每个表包含着大量的列 -- 较少的查询(通常每台服务器每秒数百个查询或更少) +- 查询相对较少(通常每台服务器每秒查询数百次或更少) - 对于简单查询,允许延迟大约50毫秒 -- 列中的数据相对较小: 数字和短字符串(例如,每个URL 60个字节) -- 处理单个查询时需要高吞吐量(每个服务器每秒高达数十亿行) +- 列中的数据相对较小:数字和短字符串(例如,每个URL 60个字节) +- 处理单个查询时需要高吞吐量(每台服务器每秒可达数十亿行) - 事务不是必须的 - 对数据一致性要求低 -- 每一个查询除了一个大表外都很小 -- 查询结果明显小于源数据,换句话说,数据被过滤或聚合后能够被盛放在单台服务器的内存中 +- 每个查询有一个大表。除了他意以外,其他的都很小。 +- 查询结果明显小于源数据。换句话说,数据经过过滤或聚合,因此结果适合于单个服务器的RAM中 很容易可以看出,OLAP场景与其他通常业务场景(例如,OLTP或K/V)有很大的不同, 因此想要使用OLTP或Key-Value数据库去高效的处理分析查询场景,并不是非常完美的适用方案。例如,使用OLAP数据库去处理分析请求通常要优于使用MongoDB或Redis去处理分析请求。 diff --git a/docs/zh/introduction/distinctive-features.md b/docs/zh/introduction/distinctive-features.md index 7396008f3b9..ac06b929dc7 100644 --- a/docs/zh/introduction/distinctive-features.md +++ b/docs/zh/introduction/distinctive-features.md @@ -12,9 +12,13 @@ 在一些列式数据库管理系统中(例如:InfiniDB CE 和 MonetDB) 并没有使用数据压缩。但是, 若想达到比较优异的性能,数据压缩确实起到了至关重要的作用。 +除了在磁盘空间和CPU消耗之间进行不同权衡的高效通用压缩编解码器之外,ClickHouse还提供针对特定类型数据的[专用编解码器](../sql-reference/statements/create/table.md#create-query-specialized-codecs),这使得ClickHouse能够与更小的数据库(如时间序列数据库)竞争并超越它们。 + ## 数据的磁盘存储 {#shu-ju-de-ci-pan-cun-chu} -许多的列式数据库(如 SAP HANA, Google PowerDrill)只能在内存中工作,这种方式会造成比实际更多的设备预算。ClickHouse被设计用于工作在传统磁盘上的系统,它提供每GB更低的存储成本,但如果有可以使用SSD和内存,它也会合理的利用这些资源。 +许多的列式数据库(如 SAP HANA, Google PowerDrill)只能在内存中工作,这种方式会造成比实际更多的设备预算。 + +ClickHouse被设计用于工作在传统磁盘上的系统,它提供每GB更低的存储成本,但如果可以使用SSD和内存,它也会合理的利用这些资源。 ## 多核心并行处理 {#duo-he-xin-bing-xing-chu-li} @@ -27,9 +31,11 @@ ClickHouse会使用服务器上一切可用的资源,从而以最自然的方 ## 支持SQL {#zhi-chi-sql} -ClickHouse支持基于SQL的声明式查询语言,该语言大部分情况下是与SQL标准兼容的。 -支持的查询包括 GROUP BY,ORDER BY,IN,JOIN以及非相关子查询。 -不支持窗口函数和相关子查询。 +ClickHouse支持一种[基于SQL的声明式查询语言](../sql-reference/index.md),它在许多情况下与[ANSI SQL标准](../sql-reference/ansi.md)相同。 + +支持的查询[GROUP BY](../sql-reference/statements/select/group-by.md), [ORDER BY](../sql-reference/statements/select/order-by.md), [FROM](../sql-reference/statements/select/from.md), [JOIN](../sql-reference/statements/select/join.md), [IN](../sql-reference/operators/in.md)以及非相关子查询。 + +相关(依赖性)子查询和窗口函数暂不受支持,但将来会被实现。 ## 向量引擎 {#xiang-liang-yin-qing} @@ -55,12 +61,20 @@ ClickHouse提供各种各样在允许牺牲数据精度的情况下对查询进 2. 基于数据的部分样本进行近似查询。这时,仅会从磁盘检索少部分比例的数据。 3. 不使用全部的聚合条件,通过随机选择有限个数据聚合条件进行聚合。这在数据聚合条件满足某些分布条件下,在提供相当准确的聚合结果的同时降低了计算资源的使用。 +## Adaptive Join Algorithm {#adaptive-join-algorithm} + +ClickHouse支持自定义[JOIN](../sql-reference/statements/select/join.md)多个表,它更倾向于散列连接算法,如果有多个大表,则使用合并-连接算法 + ## 支持数据复制和数据完整性 {#zhi-chi-shu-ju-fu-zhi-he-shu-ju-wan-zheng-xing} ClickHouse使用异步的多主复制技术。当数据被写入任何一个可用副本后,系统会在后台将数据分发给其他副本,以保证系统在不同副本上保持相同的数据。在大多数情况下ClickHouse能在故障后自动恢复,在一些少数的复杂情况下需要手动恢复。 更多信息,参见 [数据复制](../engines/table-engines/mergetree-family/replication.md)。 +## 角色的访问控制 {#role-based-access-control} + +ClickHouse使用SQL查询实现用户帐户管理,并允许[角色的访问控制](../operations/access-rights.md),类似于ANSI SQL标准和流行的关系数据库管理系统。 + # 限制 {#clickhouseke-xian-zhi} 1. 没有完整的事务支持。 From 93b6add26459f9896fdf099d7e8185d8e0e2298d Mon Sep 17 00:00:00 2001 From: qianmoQ Date: Tue, 24 Nov 2020 20:48:16 +0800 Subject: [PATCH 248/425] fix document for introduction toc priority --- docs/zh/introduction/adopters.md | 4 ++-- docs/zh/introduction/distinctive-features.md | 5 +++++ docs/zh/introduction/history.md | 5 +++++ docs/zh/introduction/performance.md | 5 +++++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/docs/zh/introduction/adopters.md b/docs/zh/introduction/adopters.md index 38b9ca690e3..fc7dfa4efeb 100644 --- a/docs/zh/introduction/adopters.md +++ b/docs/zh/introduction/adopters.md @@ -1,6 +1,6 @@ --- -toc_priority: 8 -toc_title: "\u91C7\u7528\u8005" +toc_priority: 5 +toc_title: "ClickHouse用户" --- # ClickHouse用户 {#clickhouse-adopters} diff --git a/docs/zh/introduction/distinctive-features.md b/docs/zh/introduction/distinctive-features.md index ac06b929dc7..e9a506f2481 100644 --- a/docs/zh/introduction/distinctive-features.md +++ b/docs/zh/introduction/distinctive-features.md @@ -1,3 +1,8 @@ +--- +toc_priority: 2 +toc_title: ClickHouse的特性 +--- + # ClickHouse的特性 {#clickhouse-de-te-xing} ## 真正的列式数据库管理系统 {#zhen-zheng-de-lie-shi-shu-ju-ku-guan-li-xi-tong} diff --git a/docs/zh/introduction/history.md b/docs/zh/introduction/history.md index 29c8c263f9f..265ade8785b 100644 --- a/docs/zh/introduction/history.md +++ b/docs/zh/introduction/history.md @@ -1,3 +1,8 @@ +--- +toc_priority: 4 +toc_title: ClickHouse历史 +--- + # ClickHouse历史 {#clickhouseli-shi} ClickHouse最初是为 [YandexMetrica](https://metrica.yandex.com/) [世界第二大Web分析平台](http://w3techs.com/technologies/overview/traffic_analysis/all) 而开发的。多年来一直作为该系统的核心组件被该系统持续使用着。目前为止,该系统在ClickHouse中有超过13万亿条记录,并且每天超过200多亿个事件被处理。它允许直接从原始数据中动态查询并生成报告。本文简要介绍了ClickHouse在其早期发展阶段的目标。 diff --git a/docs/zh/introduction/performance.md b/docs/zh/introduction/performance.md index a5960cfa52e..0ae4b9b1e1e 100644 --- a/docs/zh/introduction/performance.md +++ b/docs/zh/introduction/performance.md @@ -1,3 +1,8 @@ +--- +toc_priority: 3 +toc_title: ClickHouse性能 +--- + # 性能 {#performance} 根据Yandex的内部测试结果,ClickHouse表现出了比同类可比较产品更优的性能。你可以在 [这里](https://clickhouse.tech/benchmark/dbms/) 查看具体的测试结果。 From 4e076814448e46aa039344b5c0e9fa9278afd006 Mon Sep 17 00:00:00 2001 From: Anton Popov Date: Tue, 24 Nov 2020 16:30:52 +0300 Subject: [PATCH 249/425] remove outdated test --- .../00443_merge_tree_uniform_read_distribution_0.reference | 3 --- .../00443_merge_tree_uniform_read_distribution_0.sh | 7 ------- 2 files changed, 10 deletions(-) delete mode 100644 tests/queries/0_stateless/00443_merge_tree_uniform_read_distribution_0.reference delete mode 100755 tests/queries/0_stateless/00443_merge_tree_uniform_read_distribution_0.sh diff --git a/tests/queries/0_stateless/00443_merge_tree_uniform_read_distribution_0.reference b/tests/queries/0_stateless/00443_merge_tree_uniform_read_distribution_0.reference deleted file mode 100644 index bb6e92ae8e7..00000000000 --- a/tests/queries/0_stateless/00443_merge_tree_uniform_read_distribution_0.reference +++ /dev/null @@ -1,3 +0,0 @@ -1500000 1500000 1500000 1500000 1500000 1500000 -[['def']] [['','']] -0 diff --git a/tests/queries/0_stateless/00443_merge_tree_uniform_read_distribution_0.sh b/tests/queries/0_stateless/00443_merge_tree_uniform_read_distribution_0.sh deleted file mode 100755 index 81b9c015fb9..00000000000 --- a/tests/queries/0_stateless/00443_merge_tree_uniform_read_distribution_0.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -set -e - -CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) - -bash "$CURDIR"/00443_optimize_final_vertical_merge.sh From 420f2489a7d30281558379c7de35f0516acd03ba Mon Sep 17 00:00:00 2001 From: myrrc Date: Tue, 24 Nov 2020 17:07:59 +0300 Subject: [PATCH 250/425] fixed decimal scales calc, updated the tests --- src/AggregateFunctions/AggregateFunctionAvg.h | 23 +++++++++++-------- .../AggregateFunctionAvgWeighted.cpp | 9 +++++--- tests/performance/avg_weighted.xml | 1 + .../01035_avg_weighted_long.reference | 2 ++ .../0_stateless/01035_avg_weighted_long.sh | 2 ++ 5 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index 163ff1704ec..c3552883b8c 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -33,24 +33,26 @@ struct AvgFraction /// Allow division by zero as sometimes we need to return NaN. /// Invoked only is either Numerator or Denominator are Decimal. - Float64 NO_SANITIZE_UNDEFINED divideIfAnyDecimal(UInt32 scale) const + Float64 NO_SANITIZE_UNDEFINED divideIfAnyDecimal(UInt32 num_scale, UInt32 denom_scale) const { if constexpr (IsDecimalNumber && IsDecimalNumber) { + const UInt32 result_scale = std::max(num_scale, denom_scale); + if constexpr (std::is_same_v && std::is_same_v) ///Special case as Decimal256 / Decimal128 = compile error (as Decimal128 is not parametrized by a wide ///int), but an __int128 instead return DecimalUtils::convertTo( - numerator / (denominator.template convertTo()), scale); + numerator / (denominator.template convertTo()), result_scale); else - return DecimalUtils::convertTo(numerator / denominator, scale); + return DecimalUtils::convertTo(numerator / denominator, result_scale); } /// Numerator is always casted to Float64 to divide correctly if the denominator is not Float64. Float64 num_converted; if constexpr (IsDecimalNumber) - num_converted = DecimalUtils::convertTo(numerator, scale); + num_converted = DecimalUtils::convertTo(numerator, num_scale); else num_converted = static_cast(numerator); /// all other types, including extended integral. @@ -58,7 +60,7 @@ struct AvgFraction Float64, Denominator> denom_converted; if constexpr (IsDecimalNumber) - denom_converted = DecimalUtils::convertTo(denominator, scale); + denom_converted = DecimalUtils::convertTo(denominator, denom_scale); else if constexpr (DecimalOrExtendedInt) /// no way to divide Float64 and extended integral type without an explicit cast. denom_converted = static_cast(denominator); @@ -90,8 +92,9 @@ public: using Fraction = AvgFraction; using Base = IAggregateFunctionDataHelper; - explicit AggregateFunctionAvgBase(const DataTypes & argument_types_, UInt32 scale_ = 0) - : Base(argument_types_, {}), scale(scale_) {} + explicit AggregateFunctionAvgBase(const DataTypes & argument_types_, + UInt32 num_scale_ = 0, UInt32 denom_scale_ = 0) + : Base(argument_types_, {}), num_scale(num_scale_), denom_scale(denom_scale_) {} DataTypePtr getReturnType() const final { return std::make_shared>(); } @@ -124,12 +127,14 @@ public: void insertResultInto(AggregateDataPtr place, IColumn & to, Arena *) const override { if constexpr (IsDecimalNumber || IsDecimalNumber) - static_cast &>(to).getData().push_back(this->data(place).divideIfAnyDecimal(scale)); + static_cast &>(to).getData().push_back( + this->data(place).divideIfAnyDecimal(num_scale, denom_scale)); else static_cast &>(to).getData().push_back(this->data(place).divide()); } private: - UInt32 scale; + UInt32 num_scale; + UInt32 denom_scale; }; template diff --git a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp index 3fc9ebb8865..983b3bf3d4c 100644 --- a/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp +++ b/src/AggregateFunctions/AggregateFunctionAvgWeighted.cpp @@ -83,11 +83,14 @@ AggregateFunctionPtr createAggregateFunctionAvgWeighted(const std::string & name if (left_decimal && right_decimal) ptr.reset(create(*data_type, *data_type_weight, argument_types, - getDecimalScale((sizeof(*data_type) > sizeof(*data_type_weight)) ? *data_type : *data_type_weight))); + getDecimalScale(*data_type), getDecimalScale(*data_type_weight))); else if (left_decimal) - ptr.reset(create(*data_type, *data_type_weight, argument_types, getDecimalScale(*data_type))); + ptr.reset(create(*data_type, *data_type_weight, argument_types, + getDecimalScale(*data_type))); else if (right_decimal) - ptr.reset(create(*data_type, *data_type_weight, argument_types, getDecimalScale(*data_type_weight))); + ptr.reset(create(*data_type, *data_type_weight, argument_types, + // numerator is not decimal, so its scale is 0 + 0, getDecimalScale(*data_type_weight))); else ptr.reset(create(*data_type, *data_type_weight, argument_types)); diff --git a/tests/performance/avg_weighted.xml b/tests/performance/avg_weighted.xml index b62b8949bf1..b9baa106c22 100644 --- a/tests/performance/avg_weighted.xml +++ b/tests/performance/avg_weighted.xml @@ -20,6 +20,7 @@ INSERT INTO perf_avg(num) SELECT toUInt64(UserID / (WatchID + 1) * 1000000) FROM hits_100m_single + LIMIT 50000000 SELECT avg(num) FROM perf_avg FORMAT Null diff --git a/tests/queries/0_stateless/01035_avg_weighted_long.reference b/tests/queries/0_stateless/01035_avg_weighted_long.reference index 584f3184414..766cb5a8e3c 100644 --- a/tests/queries/0_stateless/01035_avg_weighted_long.reference +++ b/tests/queries/0_stateless/01035_avg_weighted_long.reference @@ -1,5 +1,7 @@ 2.3333333333333335 nan +1.0 +1.0 8 nan 8 diff --git a/tests/queries/0_stateless/01035_avg_weighted_long.sh b/tests/queries/0_stateless/01035_avg_weighted_long.sh index 2d764918026..afe830f32d8 100755 --- a/tests/queries/0_stateless/01035_avg_weighted_long.sh +++ b/tests/queries/0_stateless/01035_avg_weighted_long.sh @@ -5,6 +5,8 @@ CUR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, weight) FROM (SELECT t.1 AS x, t.2 AS weight FROM (SELECT arrayJoin([(1, 5), (2, 4), (3, 3), (4, 2), (5, 1)]) AS t));" ${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, weight) FROM (SELECT t.1 AS x, t.2 AS weight FROM (SELECT arrayJoin([(1, 0), (2, 0), (3, 0), (4, 0), (5, 0)]) AS t));" +${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, y) FROM (select toDecimal256(1, 0) x, toDecimal256(1, 1) y);" +${CLICKHOUSE_CLIENT} --query="SELECT avgWeighted(x, y) FROM (select toDecimal32(1, 0) x, toDecimal256(1, 1) y);" types=("Int8" "Int16" "Int32" "Int64" "UInt8" "UInt16" "UInt32" "UInt64" "Float32" "Float64") From b7e94b487c91674064b9e3bf7d59ed959953f586 Mon Sep 17 00:00:00 2001 From: myrrc Date: Tue, 24 Nov 2020 17:29:30 +0300 Subject: [PATCH 251/425] fixed scale calc, again --- src/AggregateFunctions/AggregateFunctionAvg.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/AggregateFunctions/AggregateFunctionAvg.h b/src/AggregateFunctions/AggregateFunctionAvg.h index c3552883b8c..fca9df9dd98 100644 --- a/src/AggregateFunctions/AggregateFunctionAvg.h +++ b/src/AggregateFunctions/AggregateFunctionAvg.h @@ -37,15 +37,15 @@ struct AvgFraction { if constexpr (IsDecimalNumber && IsDecimalNumber) { - const UInt32 result_scale = std::max(num_scale, denom_scale); + // According to the docs, num(S1) / denom(S2) would have scale S1 if constexpr (std::is_same_v && std::is_same_v) ///Special case as Decimal256 / Decimal128 = compile error (as Decimal128 is not parametrized by a wide ///int), but an __int128 instead return DecimalUtils::convertTo( - numerator / (denominator.template convertTo()), result_scale); + numerator / (denominator.template convertTo()), num_scale); else - return DecimalUtils::convertTo(numerator / denominator, result_scale); + return DecimalUtils::convertTo(numerator / denominator, num_scale); } /// Numerator is always casted to Float64 to divide correctly if the denominator is not Float64. From 6b4512809cc195b9d6c86789733468e175599910 Mon Sep 17 00:00:00 2001 From: Amos Bird Date: Sat, 21 Nov 2020 13:30:16 +0800 Subject: [PATCH 252/425] Fix const column in set index. --- src/Interpreters/Set.cpp | 2 +- .../01583_const_column_in_set_index.reference | 1 + .../0_stateless/01583_const_column_in_set_index.sql | 9 +++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 tests/queries/0_stateless/01583_const_column_in_set_index.reference create mode 100644 tests/queries/0_stateless/01583_const_column_in_set_index.sql diff --git a/src/Interpreters/Set.cpp b/src/Interpreters/Set.cpp index 8eeb939329b..08e6107590e 100644 --- a/src/Interpreters/Set.cpp +++ b/src/Interpreters/Set.cpp @@ -205,7 +205,7 @@ bool Set::insertFromBlock(const Block & block) { for (size_t i = 0; i < keys_size; ++i) { - auto filtered_column = block.getByPosition(i).column->filter(filter->getData(), rows); + auto filtered_column = key_columns[i]->filter(filter->getData(), rows); if (set_elements[i]->empty()) set_elements[i] = filtered_column; else diff --git a/tests/queries/0_stateless/01583_const_column_in_set_index.reference b/tests/queries/0_stateless/01583_const_column_in_set_index.reference new file mode 100644 index 00000000000..f723b9fd447 --- /dev/null +++ b/tests/queries/0_stateless/01583_const_column_in_set_index.reference @@ -0,0 +1 @@ +3 5 diff --git a/tests/queries/0_stateless/01583_const_column_in_set_index.sql b/tests/queries/0_stateless/01583_const_column_in_set_index.sql new file mode 100644 index 00000000000..e40249eaf08 --- /dev/null +++ b/tests/queries/0_stateless/01583_const_column_in_set_index.sql @@ -0,0 +1,9 @@ +drop table if exists insub; + +create table insub (i int, j int) engine MergeTree order by i settings index_granularity = 1; +insert into insub select number a, a + 2 from numbers(10); + +SET max_rows_to_read = 2; +select * from insub where i in (select toInt32(3) from numbers(10)); + +drop table if exists insub; From a800bff5d4566365465c288a03a803afc5fd3903 Mon Sep 17 00:00:00 2001 From: alesapin Date: Tue, 24 Nov 2020 17:33:42 +0300 Subject: [PATCH 253/425] Update ZooKeeperImpl.cpp --- src/Common/ZooKeeper/ZooKeeperImpl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Common/ZooKeeper/ZooKeeperImpl.cpp b/src/Common/ZooKeeper/ZooKeeperImpl.cpp index 048a53fc9d1..d328e34a5da 100644 --- a/src/Common/ZooKeeper/ZooKeeperImpl.cpp +++ b/src/Common/ZooKeeper/ZooKeeperImpl.cpp @@ -1345,7 +1345,7 @@ void ZooKeeper::finalize(bool error_send, bool error_receive) { bool check = false; /// If some thread (send/receive) already finalizing session don't try to do it - if (!finalization_started.compare_exchange_strong(check, true)) + if (!finalization_started.exchange(true)) return; auto expire_session_if_not_expired = [&] From 31505fb279f1116bc433af72fd62d09b80f7a2a3 Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Tue, 24 Nov 2020 17:40:38 +0300 Subject: [PATCH 254/425] done --- programs/copier/ClusterCopier.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/programs/copier/ClusterCopier.cpp b/programs/copier/ClusterCopier.cpp index a129dc7efcc..efd30e42b96 100644 --- a/programs/copier/ClusterCopier.cpp +++ b/programs/copier/ClusterCopier.cpp @@ -1803,7 +1803,7 @@ UInt64 ClusterCopier::executeQueryOnCluster( if (execution_mode == ClusterExecutionMode::ON_EACH_NODE) max_successful_executions_per_shard = 0; - std::atomic origin_replicas_number; + std::atomic origin_replicas_number = 0; /// We need to execute query on one replica at least auto do_for_shard = [&] (UInt64 shard_index, Settings shard_settings) From 821111e7167013b4e621d5d20412f0eca09388a8 Mon Sep 17 00:00:00 2001 From: alesapin Date: Tue, 24 Nov 2020 17:41:57 +0300 Subject: [PATCH 255/425] Update ZooKeeperImpl.cpp --- src/Common/ZooKeeper/ZooKeeperImpl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Common/ZooKeeper/ZooKeeperImpl.cpp b/src/Common/ZooKeeper/ZooKeeperImpl.cpp index d328e34a5da..e90eab17cfc 100644 --- a/src/Common/ZooKeeper/ZooKeeperImpl.cpp +++ b/src/Common/ZooKeeper/ZooKeeperImpl.cpp @@ -1345,7 +1345,7 @@ void ZooKeeper::finalize(bool error_send, bool error_receive) { bool check = false; /// If some thread (send/receive) already finalizing session don't try to do it - if (!finalization_started.exchange(true)) + if (finalization_started.exchange(true)) return; auto expire_session_if_not_expired = [&] From cfe7d853c134059a62982271f08da0e7ee4fd2d6 Mon Sep 17 00:00:00 2001 From: alesapin Date: Tue, 24 Nov 2020 17:42:31 +0300 Subject: [PATCH 256/425] Update ZooKeeperImpl.cpp --- src/Common/ZooKeeper/ZooKeeperImpl.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Common/ZooKeeper/ZooKeeperImpl.cpp b/src/Common/ZooKeeper/ZooKeeperImpl.cpp index e90eab17cfc..285dc32dcae 100644 --- a/src/Common/ZooKeeper/ZooKeeperImpl.cpp +++ b/src/Common/ZooKeeper/ZooKeeperImpl.cpp @@ -1343,7 +1343,6 @@ void ZooKeeper::receiveEvent() void ZooKeeper::finalize(bool error_send, bool error_receive) { - bool check = false; /// If some thread (send/receive) already finalizing session don't try to do it if (finalization_started.exchange(true)) return; From 5dde87fdcc6df4b2408153f47a3f21851c48a4f8 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Wed, 7 Oct 2020 22:11:56 +0300 Subject: [PATCH 257/425] Update contrib/grpc & contrib/protobuf. --- .gitmodules | 2 ++ contrib/grpc | 2 +- contrib/protobuf | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 081724c54c8..4a350f41238 100644 --- a/.gitmodules +++ b/.gitmodules @@ -44,6 +44,7 @@ [submodule "contrib/protobuf"] path = contrib/protobuf url = https://github.com/ClickHouse-Extras/protobuf.git + branch = v3.13.0.1 [submodule "contrib/boost"] path = contrib/boost url = https://github.com/ClickHouse-Extras/boost.git @@ -107,6 +108,7 @@ [submodule "contrib/grpc"] path = contrib/grpc url = https://github.com/ClickHouse-Extras/grpc.git + branch = v1.33.2 [submodule "contrib/aws"] path = contrib/aws url = https://github.com/ClickHouse-Extras/aws-sdk-cpp.git diff --git a/contrib/grpc b/contrib/grpc index a6570b863cf..437d3a4ac93 160000 --- a/contrib/grpc +++ b/contrib/grpc @@ -1 +1 @@ -Subproject commit a6570b863cf76c9699580ba51c7827d5bffaac43 +Subproject commit 437d3a4ac93dc153bbd2d34c0c6c9596f1fd6787 diff --git a/contrib/protobuf b/contrib/protobuf index 445d1ae73a4..73b12814204 160000 --- a/contrib/protobuf +++ b/contrib/protobuf @@ -1 +1 @@ -Subproject commit 445d1ae73a450b1e94622e7040989aa2048402e3 +Subproject commit 73b12814204ad9068ba352914d0dc244648b48ee From 8d96a11d8dc3b3bf63a9e31021126d4a0932f078 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Thu, 8 Oct 2020 00:42:27 +0300 Subject: [PATCH 258/425] Update grpc build scripts. --- cmake/Modules/FindgRPC.cmake | 27 +++++++++++++++---------- cmake/find/grpc.cmake | 10 +++++----- contrib/grpc-cmake/CMakeLists.txt | 33 +++++++++++++++++++++++++------ 3 files changed, 49 insertions(+), 21 deletions(-) diff --git a/cmake/Modules/FindgRPC.cmake b/cmake/Modules/FindgRPC.cmake index 671d207085b..945d307952b 100644 --- a/cmake/Modules/FindgRPC.cmake +++ b/cmake/Modules/FindgRPC.cmake @@ -6,11 +6,9 @@ Defines the following variables: The include directories of the gRPC framework, including the include directories of the C++ wrapper. ``gRPC_LIBRARIES`` The libraries of the gRPC framework. -``gRPC_UNSECURE_LIBRARIES`` - The libraries of the gRPC framework without SSL. -``_gRPC_CPP_PLUGIN`` +``gRPC_CPP_PLUGIN`` The plugin for generating gRPC client and server C++ stubs from `.proto` files -``_gRPC_PYTHON_PLUGIN`` +``gRPC_PYTHON_PLUGIN`` The plugin for generating gRPC client and server Python stubs from `.proto` files The following :prop_tgt:`IMPORTED` targets are also defined: @@ -19,6 +17,13 @@ The following :prop_tgt:`IMPORTED` targets are also defined: ``grpc_cpp_plugin`` ``grpc_python_plugin`` +Set the following variables to adjust the behaviour of this script: +``gRPC_USE_UNSECURE_LIBRARIES`` + if set gRPC_LIBRARIES will be filled with the unsecure version of the libraries (i.e. without SSL) + instead of the secure ones. +``gRPC_DEBUG` + if set the debug message will be printed. + Add custom commands to process ``.proto`` files to C++:: protobuf_generate_grpc_cpp( [DESCRIPTORS ] [EXPORT_MACRO ] [...]) @@ -242,6 +247,7 @@ find_library(gRPC_LIBRARY NAMES grpc) find_library(gRPC_CPP_LIBRARY NAMES grpc++) find_library(gRPC_UNSECURE_LIBRARY NAMES grpc_unsecure) find_library(gRPC_CPP_UNSECURE_LIBRARY NAMES grpc++_unsecure) +find_library(gRPC_CARES_LIBRARY NAMES cares) set(gRPC_LIBRARIES) if(gRPC_USE_UNSECURE_LIBRARIES) @@ -259,6 +265,7 @@ else() set(gRPC_LIBRARIES ${gRPC_LIBRARIES} ${gRPC_CPP_LIBRARY}) endif() endif() +set(gRPC_LIBRARIES ${gRPC_LIBRARIES} ${gRPC_CARES_LIBRARY}) # Restore the original find library ordering. if(gRPC_USE_STATIC_LIBS) @@ -278,11 +285,11 @@ else() endif() # Get full path to plugin. -find_program(_gRPC_CPP_PLUGIN +find_program(gRPC_CPP_PLUGIN NAMES grpc_cpp_plugin DOC "The plugin for generating gRPC client and server C++ stubs from `.proto` files") -find_program(_gRPC_PYTHON_PLUGIN +find_program(gRPC_PYTHON_PLUGIN NAMES grpc_python_plugin DOC "The plugin for generating gRPC client and server Python stubs from `.proto` files") @@ -317,14 +324,14 @@ endif() #include(FindPackageHandleStandardArgs.cmake) FIND_PACKAGE_HANDLE_STANDARD_ARGS(gRPC - REQUIRED_VARS gRPC_LIBRARY gRPC_CPP_LIBRARY gRPC_UNSECURE_LIBRARY gRPC_CPP_UNSECURE_LIBRARY - gRPC_INCLUDE_DIR gRPC_CPP_INCLUDE_DIR _gRPC_CPP_PLUGIN _gRPC_PYTHON_PLUGIN) + REQUIRED_VARS gRPC_LIBRARY gRPC_CPP_LIBRARY gRPC_UNSECURE_LIBRARY gRPC_CPP_UNSECURE_LIBRARY gRPC_CARES_LIBRARY + gRPC_INCLUDE_DIR gRPC_CPP_INCLUDE_DIR gRPC_CPP_PLUGIN gRPC_PYTHON_PLUGIN) if(gRPC_FOUND) if(gRPC_DEBUG) message(STATUS "gRPC: INCLUDE_DIRS=${gRPC_INCLUDE_DIRS}") message(STATUS "gRPC: LIBRARIES=${gRPC_LIBRARIES}") - message(STATUS "gRPC: CPP_PLUGIN=${_gRPC_CPP_PLUGIN}") - message(STATUS "gRPC: PYTHON_PLUGIN=${_gRPC_PYTHON_PLUGIN}") + message(STATUS "gRPC: CPP_PLUGIN=${gRPC_CPP_PLUGIN}") + message(STATUS "gRPC: PYTHON_PLUGIN=${gRPC_PYTHON_PLUGIN}") endif() endif() diff --git a/cmake/find/grpc.cmake b/cmake/find/grpc.cmake index fa283d98225..017a7b094b0 100644 --- a/cmake/find/grpc.cmake +++ b/cmake/find/grpc.cmake @@ -37,8 +37,8 @@ if(NOT USE_INTERNAL_GRPC_LIBRARY) if(NOT gRPC_INCLUDE_DIRS OR NOT gRPC_LIBRARIES) message(${RECONFIGURE_MESSAGE_LEVEL} "Can't find system gRPC library") set(EXTERNAL_GRPC_LIBRARY_FOUND 0) - elseif(NOT _gRPC_CPP_PLUGIN) - message(${RECONFIGURE_MESSAGE_LEVEL} "Can't find system grcp_cpp_plugin") + elseif(NOT gRPC_CPP_PLUGIN) + message(${RECONFIGURE_MESSAGE_LEVEL} "Can't find system grpc_cpp_plugin") set(EXTERNAL_GRPC_LIBRARY_FOUND 0) else() set(EXTERNAL_GRPC_LIBRARY_FOUND 1) @@ -53,8 +53,8 @@ if(NOT EXTERNAL_GRPC_LIBRARY_FOUND AND NOT MISSING_INTERNAL_GRPC_LIBRARY) else() set(gRPC_LIBRARIES grpc grpc++) endif() - set(_gRPC_CPP_PLUGIN $) - set(_gRPC_PROTOC_EXECUTABLE $) + set(gRPC_CPP_PLUGIN $) + set(gRPC_PYTHON_PLUGIN $) include("${ClickHouse_SOURCE_DIR}/contrib/grpc-cmake/protobuf_generate_grpc.cmake") @@ -62,4 +62,4 @@ if(NOT EXTERNAL_GRPC_LIBRARY_FOUND AND NOT MISSING_INTERNAL_GRPC_LIBRARY) set(USE_GRPC 1) endif() -message(STATUS "Using gRPC=${USE_GRPC}: ${gRPC_INCLUDE_DIRS} : ${gRPC_LIBRARIES} : ${_gRPC_CPP_PLUGIN}") +message(STATUS "Using gRPC=${USE_GRPC}: ${gRPC_INCLUDE_DIRS} : ${gRPC_LIBRARIES} : ${gRPC_CPP_PLUGIN}") diff --git a/contrib/grpc-cmake/CMakeLists.txt b/contrib/grpc-cmake/CMakeLists.txt index 5ab70d83429..7a057618ce7 100644 --- a/contrib/grpc-cmake/CMakeLists.txt +++ b/contrib/grpc-cmake/CMakeLists.txt @@ -1,6 +1,7 @@ set(_gRPC_SOURCE_DIR "${ClickHouse_SOURCE_DIR}/contrib/grpc") set(_gRPC_BINARY_DIR "${ClickHouse_BINARY_DIR}/contrib/grpc") +# Use re2 from ClickHouse contrib, not from gRPC third_party. if(NOT RE2_INCLUDE_DIR) message(FATAL_ERROR " grpc: The location of the \"re2\" library is unknown") endif() @@ -8,6 +9,7 @@ set(gRPC_RE2_PROVIDER "clickhouse" CACHE STRING "" FORCE) set(_gRPC_RE2_INCLUDE_DIR "${RE2_INCLUDE_DIR}") set(_gRPC_RE2_LIBRARIES "${RE2_LIBRARY}") +# Use zlib from ClickHouse contrib, not from gRPC third_party. if(NOT ZLIB_INCLUDE_DIRS) message(FATAL_ERROR " grpc: The location of the \"zlib\" library is unknown") endif() @@ -15,6 +17,7 @@ set(gRPC_ZLIB_PROVIDER "clickhouse" CACHE STRING "" FORCE) set(_gRPC_ZLIB_INCLUDE_DIR "${ZLIB_INCLUDE_DIRS}") set(_gRPC_ZLIB_LIBRARIES "${ZLIB_LIBRARIES}") +# Use protobuf from ClickHouse contrib, not from gRPC third_party. if(NOT Protobuf_INCLUDE_DIR OR NOT Protobuf_LIBRARY) message(FATAL_ERROR " grpc: The location of the \"protobuf\" library is unknown") elseif (NOT Protobuf_PROTOC_EXECUTABLE) @@ -29,21 +32,39 @@ set(_gRPC_PROTOBUF_PROTOC "protoc") set(_gRPC_PROTOBUF_PROTOC_EXECUTABLE "${Protobuf_PROTOC_EXECUTABLE}") set(_gRPC_PROTOBUF_PROTOC_LIBRARIES "${Protobuf_PROTOC_LIBRARY}") +# Use OpenSSL from ClickHouse contrib, not from gRPC third_party. set(gRPC_SSL_PROVIDER "clickhouse" CACHE STRING "" FORCE) set(_gRPC_SSL_INCLUDE_DIR ${OPENSSL_INCLUDE_DIR}) set(_gRPC_SSL_LIBRARIES ${OPENSSL_LIBRARIES}) +# Modify abseil-cpp cmake script to allow building it for ClickHouse. +set(gRPC_ABSL_PROVIDER "clickhouse" CACHE STRING "" FORCE) +set(ABSL_ROOT_DIR "${_gRPC_SOURCE_DIR}/third_party/abseil-cpp") +if(NOT EXISTS "${ABSL_ROOT_DIR}/CMakeLists.txt") + message(FATAL_ERROR " grpc: submodule third_party/abseil-cpp is missing. To fix try run: \n git submodule update --init --recursive") +endif() +set(_ABSL_ORIG_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS}) +set(_ABSL_ORIG_BUILD_TESTING ${BUILD_TESTING}) +set(BUILD_SHARED_LIBS OFF) # abseil-cpp can't be built correctly as a shared library +set(BUILD_TESTING OFF) # we don't want to build abseil tests +add_subdirectory(${ABSL_ROOT_DIR} "${ClickHouse_BINARY_DIR}/contrib/grpc/third_party/abseil-cpp") +set(BUILD_SHARED_LIBS ${_ABSL_ORIG_BUILD_SHARED_LIBS}) +set(BUILD_TESTING ${_ABSL_ORIG_BUILD_TESTING}) + +# Choose to build static or shared library for c-ares. +if (MAKE_STATIC_LIBRARIES) + set(CARES_STATIC ON CACHE BOOL "" FORCE) + set(CARES_SHARED OFF CACHE BOOL "" FORCE) +else () + set(CARES_STATIC OFF CACHE BOOL "" FORCE) + set(CARES_SHARED ON CACHE BOOL "" FORCE) +endif () + # We don't want to build C# extensions. set(gRPC_BUILD_CSHARP_EXT OFF) -# We don't want to build abseil tests, so we temporarily switch BUILD_TESTING off. -set(_gRPC_ORIG_BUILD_TESTING ${BUILD_TESTING}) -set(BUILD_TESTING OFF) - add_subdirectory("${_gRPC_SOURCE_DIR}" "${_gRPC_BINARY_DIR}") -set(BUILD_TESTING ${_gRPC_ORIG_BUILD_TESTING}) - # The contrib/grpc/CMakeLists.txt redefined the PROTOBUF_GENERATE_GRPC_CPP() function for its own purposes, # so we need to redefine it back. include("${ClickHouse_SOURCE_DIR}/contrib/grpc-cmake/protobuf_generate_grpc.cmake") From 6cd1557d677b7dc8aa17aa696da07461c95fd7c8 Mon Sep 17 00:00:00 2001 From: mnkonkova Date: Tue, 22 Sep 2020 01:12:55 +0300 Subject: [PATCH 259/425] Implement GRPC protocol. --- programs/CMakeLists.txt | 2 + programs/grpc-client/CMakeLists.txt | 7 + programs/grpc-client/grpc_client.cpp | 173 ++++++++ programs/server/CMakeLists.txt | 9 + programs/server/GRPCHandler.cpp | 399 ++++++++++++++++++ programs/server/GRPCHandler.h | 209 +++++++++ programs/server/Server.cpp | 20 +- programs/server/WriteBufferFromGRPC.h | 66 +++ .../server/grpc_protos/GrpcConnection.proto | 43 ++ programs/server/grpc_protos/grpc_protos.cmake | 7 + src/Interpreters/ClientInfo.h | 1 + .../test_grpc_protocol/configs/config.xml | 20 + .../test_grpc_protocol/configs/users.xml | 23 + .../protos/GrpcConnection.proto | 1 + tests/integration/test_grpc_protocol/test.py | 92 ++++ 15 files changed, 1071 insertions(+), 1 deletion(-) create mode 100644 programs/grpc-client/CMakeLists.txt create mode 100644 programs/grpc-client/grpc_client.cpp create mode 100644 programs/server/GRPCHandler.cpp create mode 100644 programs/server/GRPCHandler.h create mode 100644 programs/server/WriteBufferFromGRPC.h create mode 100644 programs/server/grpc_protos/GrpcConnection.proto create mode 100644 programs/server/grpc_protos/grpc_protos.cmake create mode 100644 tests/integration/test_grpc_protocol/configs/config.xml create mode 100644 tests/integration/test_grpc_protocol/configs/users.xml create mode 120000 tests/integration/test_grpc_protocol/protos/GrpcConnection.proto create mode 100644 tests/integration/test_grpc_protocol/test.py diff --git a/programs/CMakeLists.txt b/programs/CMakeLists.txt index 3817bc62bcb..c375ca0f50e 100644 --- a/programs/CMakeLists.txt +++ b/programs/CMakeLists.txt @@ -112,6 +112,8 @@ add_subdirectory (obfuscator) add_subdirectory (install) add_subdirectory (git-import) +add_subdirectory (grpc-client) + if (ENABLE_CLICKHOUSE_ODBC_BRIDGE) add_subdirectory (odbc-bridge) endif () diff --git a/programs/grpc-client/CMakeLists.txt b/programs/grpc-client/CMakeLists.txt new file mode 100644 index 00000000000..d848434e918 --- /dev/null +++ b/programs/grpc-client/CMakeLists.txt @@ -0,0 +1,7 @@ +include_directories(${CMAKE_CURRENT_BINARY_DIR}) +get_filename_component(rpc_proto "${CMAKE_CURRENT_SOURCE_DIR}/../server/grpc_protos/GrpcConnection.proto" ABSOLUTE) +protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS ${rpc_proto}) +PROTOBUF_GENERATE_GRPC_CPP(GRPC_SRCS GRPC_HDRS ${rpc_proto}) + +add_executable(grpc-client grpc_client.cpp ${PROTO_SRCS} ${PROTO_HDRS} ${GRPC_SRCS} ${GRPC_HDRS}) +target_link_libraries(grpc-client PUBLIC grpc++ PUBLIC libprotobuf PUBLIC daemon) \ No newline at end of file diff --git a/programs/grpc-client/grpc_client.cpp b/programs/grpc-client/grpc_client.cpp new file mode 100644 index 00000000000..5345b3e7d33 --- /dev/null +++ b/programs/grpc-client/grpc_client.cpp @@ -0,0 +1,173 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "GrpcConnection.grpc.pb.h" + +class GRPCClient +{ + public: + explicit GRPCClient(std::shared_ptr channel) + : stub_(GRPCConnection::GRPC::NewStub(channel)) + {} + std::string Query(const GRPCConnection::User& userInfo, + const std::string& query, + std::vector insert_data = {}) + { + GRPCConnection::QueryRequest request; + grpc::Status status; + GRPCConnection::QueryResponse reply; + grpc::ClientContext context; + auto deadline = std::chrono::system_clock::now() + std::chrono::milliseconds(10000); + context.set_deadline(deadline); + + auto user = std::make_unique(userInfo); + auto querySettigs = std::make_unique(); + int id = rand(); + request.set_allocated_user_info(user.release()); + // interactive_delay in miliseconds + request.set_interactive_delay(1000); + + querySettigs->set_query(query); + querySettigs->set_format("Values"); + querySettigs->set_query_id(std::to_string(id)); + querySettigs->set_data_stream((insert_data.size() != 0)); + (*querySettigs->mutable_settings())["max_query_size"] ="100"; + + + request.set_allocated_query_info(querySettigs.release()); + + void* got_tag = (void*)1; + bool ok = false; + + std::unique_ptr > reader(stub_->Query(&context)); + reader->Write(request); + + auto write = [&reply, &reader, &insert_data]() + { + GRPCConnection::QueryRequest request_insert; + for (const auto& data : insert_data) + { + request_insert.set_insert_data(data); + if (reply.exception_occured().empty()) + { + reader->Write(request_insert); + } + else + { + break; + } + } + request_insert.set_insert_data(""); + if (reply.exception_occured().empty()) + { + reader->Write(request_insert); + } + // reader->WritesDone(); + }; + std::thread write_thread(write); + write_thread.detach(); + + while (reader->Read(&reply)) + { + + if (!reply.output().empty()) + { + std::cout << "Query Part:\n " << id<< reply.output()<<'\n'; + } + else if (reply.progress().read_rows() + || reply.progress().read_bytes() + || reply.progress().total_rows_to_read() + || reply.progress().written_rows() + || reply.progress().written_bytes()) + { + std::cout << "Progress " << id<< ":{\n" << "read_rows: " << reply.progress().read_rows() << '\n' + << "read_bytes: " << reply.progress().read_bytes() << '\n' + << "total_rows_to_read: " << reply.progress().total_rows_to_read() << '\n' + << "written_rows: " << reply.progress().written_rows() << '\n' + << "written_bytes: " << reply.progress().written_bytes() << '\n'; + + + } + else if (!reply.totals().empty()) + { + std::cout << "Totals:\n " << id << " " << reply.totals() <<'\n'; + } + else if (!reply.extremes().empty()) + { + std::cout << "Extremes:\n " << id << " " << reply.extremes() <<'\n'; + } + } + + if (status.ok() && reply.exception_occured().empty()) + { + return ""; + } + else if (status.ok() && !reply.exception_occured().empty()) + { + return reply.exception_occured(); + } + else + { + return "RPC failed"; + } + } + + private: + std::unique_ptr stub_; +}; + +int main(int argc, char** argv) +{ + GRPCConnection::User userInfo1; + userInfo1.set_user("default"); + userInfo1.set_password(""); + userInfo1.set_quota("default"); + + std::cout << "Try: " << argv[1] << std::endl; + grpc::ChannelArguments ch_args; + ch_args.SetMaxReceiveMessageSize(-1); + GRPCClient client( + grpc::CreateCustomChannel(argv[1], grpc::InsecureChannelCredentials(), ch_args)); + { + std::cout << client.Query(userInfo1, "CREATE TABLE t (a UInt8) ENGINE = Memory") << std::endl; + std::cout << client.Query(userInfo1, "CREATE TABLE t (a UInt8) ENGINE = Memory") << std::endl; + std::cout << client.Query(userInfo1, "INSERT INTO t VALUES", {"(1),(2),(3)", "(4),(6),(5)"}) << std::endl; + std::cout << client.Query(userInfo1, "INSERT INTO t_not_defined VALUES", {"(1),(2),(3)", "(4),(6),(5)"}) << std::endl; + std::cout << client.Query(userInfo1, "SELECT a FROM t ORDER BY a") << std::endl; + std::cout << client.Query(userInfo1, "DROP TABLE t") << std::endl; + } + { + std::cout << client.Query(userInfo1, "SELECT count() FROM numbers(1)") << std::endl; + std::cout << client.Query(userInfo1, "SELECT 100") << std::endl; + std::cout << client.Query(userInfo1, "SELECT count() FROM numbers(10000000000)") << std::endl; + std::cout << client.Query(userInfo1, "SELECT count() FROM numbers(100)") << std::endl; + } + { + std::cout << client.Query(userInfo1, "CREATE TABLE arrays_test (s String, arr Array(UInt8)) ENGINE = Memory;") << std::endl; + std::cout << client.Query(userInfo1, "INSERT INTO arrays_test VALUES ('Hello', [1,2]), ('World', [3,4,5]), ('Goodbye', []);") << std::endl; + std::cout << client.Query(userInfo1, "SELECT s FROM arrays_test") << std::endl; + std::cout << client.Query(userInfo1, "DROP TABLE arrays_test") << std::endl; + std::cout << client.Query(userInfo1, "") << std::endl; + } + + {//Check null return from pipe + std::cout << client.Query(userInfo1, "CREATE TABLE table2 (x UInt8, y UInt8) ENGINE = Memory;") << std::endl; + std::cout << client.Query(userInfo1, "SELECT x FROM table2") << std::endl; + std::cout << client.Query(userInfo1, "DROP TABLE table2") << std::endl; + } + {//Check Totals + std::cout << client.Query(userInfo1, "CREATE TABLE tabl (x UInt8, y UInt8) ENGINE = Memory;") << std::endl; + std::cout << client.Query(userInfo1, "INSERT INTO tabl VALUES (1, 2), (2, 4), (3, 2), (3, 3), (3, 4);") << std::endl; + std::cout << client.Query(userInfo1, "SELECT sum(x), y FROM tabl GROUP BY y WITH TOTALS") << std::endl; + std::cout << client.Query(userInfo1, "DROP TABLE tabl") << std::endl; + } + + return 0; +} diff --git a/programs/server/CMakeLists.txt b/programs/server/CMakeLists.txt index 198d9081168..606bc80caf3 100644 --- a/programs/server/CMakeLists.txt +++ b/programs/server/CMakeLists.txt @@ -1,6 +1,13 @@ +include (${CMAKE_CURRENT_SOURCE_DIR}/grpc_protos/grpc_protos.cmake) + set(CLICKHOUSE_SERVER_SOURCES MetricsTransmitter.cpp Server.cpp + ${PROTO_SRCS} + ${PROTO_HDRS} + ${GRPC_SRCS} + ${GRPC_HDRS} + ${CMAKE_CURRENT_SOURCE_DIR}/GRPCHandler.cpp ) if (OS_LINUX) @@ -24,6 +31,8 @@ set (CLICKHOUSE_SERVER_LINK PUBLIC daemon + grpc++ + libprotobuf ) clickhouse_program_add(server) diff --git a/programs/server/GRPCHandler.cpp b/programs/server/GRPCHandler.cpp new file mode 100644 index 00000000000..fad4a056047 --- /dev/null +++ b/programs/server/GRPCHandler.cpp @@ -0,0 +1,399 @@ +#include "GRPCHandler.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using GRPCConnection::QueryRequest; +using GRPCConnection::QueryResponse; +using GRPCConnection::GRPC; + + +namespace DB +{ + +namespace ErrorCodes +{ + extern const int UNKNOWN_DATABASE; + extern const int NO_DATA_TO_INSERT; +} + +std::string ParseGrpcPeer(const grpc::ServerContext& context_) +{ + String info = context_.peer(); + return info.substr(info.find(":") + 1); +} + +void CallDataQuery::respond() +{ + try + { + switch (status) + { + case START_QUERY: + { + new CallDataQuery(service, notification_cq, new_call_cq, iServer, log); + status = PARSE_QUERY; + responder.Read(&request, (void*)this); + break; + } + case PARSE_QUERY: + { + ParseQuery(); + ParseData(); + break; + } + case READ_DATA: + { + ReadData(); + break; + } + case PROGRESS: + { + ProgressQuery(); + break; + } + case FINISH_QUERY: + { + delete this; + } + } + } + catch (...) + { + io.onException(); + + tryLogCurrentException(log); + std::string exception_message = getCurrentExceptionMessage(with_stacktrace, true); + int exception_code = getCurrentExceptionCode(); + response.set_exception_occured(exception_message); + status = FINISH_QUERY; + responder.WriteAndFinish(response, grpc::WriteOptions(), grpc::Status(), (void*)this); + } +} + +void CallDataQuery::ParseQuery() +{ + LOG_TRACE(log, "Process query"); + + Poco::Net::SocketAddress user_adress(ParseGrpcPeer(gRPCcontext)); + LOG_TRACE(log, "Request: " << request.query_info().query()); + + std::string user = request.user_info().user(); + std::string password = request.user_info().password(); + std::string quota_key = request.user_info().quota(); + interactive_delay = request.interactive_delay(); + format_output = "Values"; + if (user.empty()) + { + user = "default"; + password = ""; + } + if (interactive_delay == 0) + interactive_delay = INT_MAX; + context.setProgressCallback([this] (const Progress & value) { return progress.incrementPiecewiseAtomically(value); }); + + + query_context = context; + query_scope.emplace(*query_context); + query_context->setUser(user, password, user_adress); + query_context->setCurrentQueryId(request.query_info().query_id()); + if (!quota_key.empty()) + query_context->setQuotaKey(quota_key); + + if (!request.query_info().format().empty()) + { + format_output = request.query_info().format(); + query_context->setDefaultFormat(request.query_info().format()); + } + if (!request.query_info().database().empty()) + { + if (!DatabaseCatalog::instance().isDatabaseExist(request.query_info().database())) + { + Exception e("Database " + request.query_info().database() + " doesn't exist", ErrorCodes::UNKNOWN_DATABASE); + } + query_context->setCurrentDatabase(request.query_info().database()); + } + + SettingsChanges settings_changes; + for (const auto & [key, value] : request.query_info().settings()) + { + settings_changes.push_back({key, value}); + } + query_context->checkSettingsConstraints(settings_changes); + query_context->applySettingsChanges(settings_changes); + + ClientInfo & client_info = query_context->getClientInfo(); + client_info.query_kind = ClientInfo::QueryKind::INITIAL_QUERY; + client_info.interface = ClientInfo::Interface::GRPC; + + client_info.initial_user = client_info.current_user; + client_info.initial_query_id = client_info.current_query_id; + client_info.initial_address = client_info.current_address; +} + +void CallDataQuery::ParseData() +{ + LOG_TRACE(log, "ParseData"); + const char * begin = request.query_info().query().data(); + const char * end = begin + request.query_info().query().size(); + const Settings & settings = query_context->getSettingsRef(); + + ParserQuery parser(end, settings.enable_debug_queries); + ASTPtr ast = parseQuery(parser, begin, end, "", settings.max_query_size, settings.max_parser_depth); + + auto * insert_query = ast->as(); + auto query_end = end; + + if (insert_query && insert_query->data) + { + query_end = insert_query->data; + } + String query(begin, query_end); + io = executeQuery(query, *query_context, false, QueryProcessingStage::Complete, true, true); + if (io.out) + { + if (!insert_query || !(insert_query->data || request.query_info().data_stream() || !request.insert_data().empty())) + { + Exception e("Logical error: query requires data to insert, but it is not INSERT query", ErrorCodes::NO_DATA_TO_INSERT); + } + + format_input = insert_query->format; + if (format_input.empty()) + format_input = "Values"; + + if (format_output.empty()) + format_output = format_input; + ConcatReadBuffer::ReadBuffers buffers; + std::shared_ptr data_in_query; + std::shared_ptr data_in_insert_data; + if (insert_query->data) + { + data_in_query = std::make_shared(insert_query->data, insert_query->end - insert_query->data); + buffers.push_back(data_in_query.get()); + } + + if (!request.insert_data().empty()) + { + data_in_insert_data = std::make_shared(request.insert_data().data(), request.insert_data().size()); + buffers.push_back(data_in_insert_data.get()); + } + auto input_buffer_contacenated = std::make_unique(buffers); + auto res_stream = query_context->getInputFormat(format_input, *input_buffer_contacenated, io.out->getHeader(), query_context->getSettings().max_insert_block_size); + + auto table_id = query_context->resolveStorageID(insert_query->table_id, Context::ResolveOrdinary); + if (query_context->getSettingsRef().input_format_defaults_for_omitted_fields && table_id) + { + StoragePtr storage = DatabaseCatalog::instance().getTable(table_id); + auto column_defaults = storage->getColumns().getDefaults(); + if (!column_defaults.empty()) + res_stream = std::make_shared(res_stream, column_defaults, *query_context); + } + io.out->writePrefix(); + while (auto block = res_stream->read()) + io.out->write(block); + if (request.query_info().data_stream()) + { + status = READ_DATA; + responder.Read(&request, (void*)this); + return; + } + io.out->writeSuffix(); + } + + ExecuteQuery(); +} +void CallDataQuery::ReadData() +{ + if (request.insert_data().empty()) + { + io.out->writeSuffix(); + ExecuteQuery(); + } + else + { + const char * begin = request.insert_data().data(); + const char * end = begin + request.insert_data().size(); + ReadBufferFromMemory data_in(begin, end - begin); + auto res_stream = query_context->getInputFormat(format_input, data_in, io.out->getHeader(), query_context->getSettings().max_insert_block_size); + + while (auto block = res_stream->read()) + io.out->write(block); + responder.Read(&request, (void*)this); + } +} +void CallDataQuery::ExecuteQuery() +{ + LOG_TRACE(log, "Execute Query"); + if (io.pipeline.initialized()) + { + query_watch.start(); + progress_watch.start(); + executor = std::make_shared(io.pipeline); + ProgressQuery(); + } + else + { + FinishQuery(); + } +} + +void CallDataQuery::ProgressQuery() +{ + status = PROGRESS; + bool sent = false; + + Block block; + while (executor->pull(block, query_watch.elapsedMilliseconds())) + { + if (block) + { + if (!io.null_format) + sent = sendData(block); + break; + } + if (progress_watch.elapsedMilliseconds() >= interactive_delay) + { + progress_watch.restart(); + sent = sendProgress(); + break; + } + query_watch.restart(); + } + if (!sent) + { + SendDetails(); + } +} +void CallDataQuery::SendDetails() +{ + bool sent = false; + while (!sent) + { + switch (detailsStatus) + { + case SEND_TOTALS: + { + sent = sendTotals(executor->getTotalsBlock()); + detailsStatus = SEND_EXTREMES; + break; + } + case SEND_EXTREMES: + { + sent = sendExtremes(executor->getExtremesBlock()); + detailsStatus = FINISH; + break; + } + case FINISH: + { + sent = true; + FinishQuery(); + } + } + } +} + +void CallDataQuery::FinishQuery() +{ + io.onFinish(); + query_scope->logPeakMemoryUsage(); + status = FINISH_QUERY; + out->finalize(); +} + +bool CallDataQuery::sendData(const Block & block) +{ + out->setResponse([](const String& buffer) + { + QueryResponse tmp_response; + tmp_response.set_output(buffer); + return tmp_response; + }); + auto my_block_out_stream = query_context->getOutputFormat(format_output, *out, block); + my_block_out_stream->write(block); + my_block_out_stream->flush(); + out->next(); + return true; +} + +bool CallDataQuery::sendProgress() +{ + auto grpcProgress = [](const String& buffer) + { + auto in = std::make_unique(buffer); + ProgressValues progressValues; + progressValues.read(*in, DBMS_MIN_REVISION_WITH_CLIENT_WRITE_INFO); + GRPCConnection::Progress progress; + progress.set_read_rows(progressValues.read_rows); + progress.set_read_bytes(progressValues.read_bytes); + progress.set_total_rows_to_read(progressValues.total_rows_to_read); + progress.set_written_rows(progressValues.written_rows); + progress.set_written_bytes(progressValues.written_bytes); + return progress; + }; + + out->setResponse([&grpcProgress](const String& buffer) + { + QueryResponse tmp_response; + auto progress = std::make_unique(grpcProgress(buffer)); + tmp_response.set_allocated_progress(progress.release()); + return tmp_response; + }); + auto increment = progress.fetchAndResetPiecewiseAtomically(); + increment.write(*out, DBMS_MIN_REVISION_WITH_CLIENT_WRITE_INFO); + out->next(); + return true; +} + +bool CallDataQuery::sendTotals(const Block & totals) +{ + if (totals) + { + out->setResponse([](const String& buffer) + { + QueryResponse tmp_response; + tmp_response.set_totals(buffer); + return tmp_response; + }); + auto my_block_out_stream = query_context->getOutputFormat(format_output, *out, totals); + my_block_out_stream->write(totals); + my_block_out_stream->flush(); + out->next(); + return true; + } + return false; +} + +bool CallDataQuery::sendExtremes(const Block & extremes) +{ + if (extremes) + { + out->setResponse([](const String& buffer) + { + QueryResponse tmp_response; + tmp_response.set_extremes(buffer); + return tmp_response; + }); + auto my_block_out_stream = query_context->getOutputFormat(format_output, *out, extremes); + my_block_out_stream->write(extremes); + my_block_out_stream->flush(); + out->next(); + return true; + } + return false; +} + +} diff --git a/programs/server/GRPCHandler.h b/programs/server/GRPCHandler.h new file mode 100644 index 00000000000..4037ece1b39 --- /dev/null +++ b/programs/server/GRPCHandler.h @@ -0,0 +1,209 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "IServer.h" +#include +#include + +#include +#include +#include +#include "GrpcConnection.grpc.pb.h" + +#include "WriteBufferFromGRPC.h" + +using GRPCConnection::QueryRequest; +using GRPCConnection::QueryResponse; +using GRPCConnection::GRPC; + +namespace DB +{ + +class CommonCallData +{ + public: + GRPC::AsyncService* service; + grpc::ServerCompletionQueue* notification_cq; + grpc::ServerCompletionQueue* new_call_cq; + grpc::ServerContext gRPCcontext; + IServer* iServer; + bool with_stacktrace = false; + Poco::Logger * log; + std::unique_ptr next_client; + + public: + explicit CommonCallData(GRPC::AsyncService* Service_, grpc::ServerCompletionQueue* notification_cq_, grpc::ServerCompletionQueue* new_call_cq_, IServer* iServer_, Poco::Logger * log_) + : service(Service_), notification_cq(notification_cq_), new_call_cq(new_call_cq_), iServer(iServer_), log(log_) + {} + virtual ~CommonCallData() + {} + virtual void respond() = 0; +}; + +class CallDataQuery : public CommonCallData +{ + public: + CallDataQuery(GRPC::AsyncService* Service_, grpc::ServerCompletionQueue* notification_cq_, grpc::ServerCompletionQueue* new_call_cq_, IServer* server_, Poco::Logger * log_) + : CommonCallData(Service_, notification_cq_, new_call_cq_, server_, log_), responder(&gRPCcontext), context(iServer->context()) + { + detailsStatus = SEND_TOTALS; + status = START_QUERY; + out = std::make_shared(&responder, (void*)this, nullptr); + service->RequestQuery(&gRPCcontext, &responder, new_call_cq, notification_cq, this); + } + void ParseQuery(); + void ParseData(); + void ReadData(); + void ExecuteQuery(); + void ProgressQuery(); + void FinishQuery(); + + enum DetailsStatus + { + SEND_TOTALS, + SEND_EXTREMES, + SEND_PROFILEINFO, + FINISH + }; + void SendDetails(); + + bool sendData(const Block & block); + bool sendProgress(); + bool sendTotals(const Block & totals); + bool sendExtremes(const Block & block); + + enum Status + { + START_QUERY, + PARSE_QUERY, + READ_DATA, + PROGRESS, + FINISH_QUERY + }; + virtual void respond() override; + virtual ~CallDataQuery() override + { + query_watch.stop(); + progress_watch.stop(); + query_context.reset(); + query_scope.reset(); + } + + private: + QueryRequest request; + QueryResponse response; + grpc::ServerAsyncReaderWriter responder; + + Stopwatch progress_watch; + Stopwatch query_watch; + Progress progress; + + DetailsStatus detailsStatus; + Status status; + + BlockIO io; + Context context; + std::shared_ptr executor; + std::optional query_context; + + std::shared_ptr out; + String format_output; + String format_input; + uint64_t interactive_delay; + std::optional query_scope; + + +}; + +class GRPCServer final : public Poco::Runnable +{ + public: + GRPCServer(const GRPCServer &handler) = delete; + GRPCServer(GRPCServer &&handler) = delete; + GRPCServer(std::string server_address_, IServer & server_) : iServer(server_), log(&Poco::Logger::get("GRPCHandler")) + { + grpc::ServerBuilder builder; + builder.AddListeningPort(server_address_, grpc::InsecureServerCredentials()); + //keepalive pings default values + builder.RegisterService(&service); + builder.SetMaxReceiveMessageSize(INT_MAX); + notification_cq = builder.AddCompletionQueue(); + new_call_cq = builder.AddCompletionQueue(); + server = builder.BuildAndStart(); + } + void stop() + { + server->Shutdown(); + notification_cq->Shutdown(); + new_call_cq->Shutdown(); + } + virtual void run() override + { + HandleRpcs(); + } + void HandleRpcs() + { + new CallDataQuery(&service, notification_cq.get(), new_call_cq.get(), &iServer, log); + + // rpc event "read done / write done / close(already connected)" call-back by this completion queue + auto handle_calls_completion = [&]() + { + void* tag; + bool ok; + while (true) + { + GPR_ASSERT(new_call_cq->Next(&tag, &ok)); + if (!ok) + { + LOG_WARNING(log, "Client has gone away."); + delete static_cast(tag); + continue; + } + auto thread = ThreadFromGlobalPool{&CallDataQuery::respond, static_cast(tag)}; + thread.detach(); + } + }; + // rpc event "new connection / close(waiting for connect)" call-back by this completion queue + auto handle_requests_completion = [&] + { + void* tag; + bool ok; + while (true) + { + GPR_ASSERT(notification_cq->Next(&tag, &ok)); + if (!ok) + { + LOG_WARNING(log, "Client has gone away."); + delete static_cast(tag); + continue; + } + auto thread = ThreadFromGlobalPool{&CallDataQuery::respond, static_cast(tag)}; + thread.detach(); + } + }; + + auto notification_cq_thread = ThreadFromGlobalPool{handle_requests_completion}; + auto new_call_cq_thread = ThreadFromGlobalPool{handle_calls_completion}; + notification_cq_thread.detach(); + new_call_cq_thread.detach(); + } + + private: + IServer & iServer; + Poco::Logger * log; + std::unique_ptr notification_cq; + std::unique_ptr new_call_cq; + GRPC::AsyncService service; + std::unique_ptr server; + std::string server_address; +}; + + } diff --git a/programs/server/Server.cpp b/programs/server/Server.cpp index 951ece89929..ab8253b8566 100644 --- a/programs/server/Server.cpp +++ b/programs/server/Server.cpp @@ -64,6 +64,7 @@ #include #include #include +#include "GRPCHandler.h" #if !defined(ARCADIA_BUILD) @@ -817,7 +818,7 @@ int Server::main(const std::vector & /*args*/) listen_hosts.emplace_back("127.0.0.1"); listen_try = true; } - + std::vector> gRPCServers; auto make_socket_address = [&](const std::string & host, UInt16 port) { Poco::Net::SocketAddress socket_address; @@ -1035,6 +1036,13 @@ int Server::main(const std::vector & /*args*/) LOG_INFO(log, "Listening for PostgreSQL compatibility protocol: " + address.toString()); }); + create_server("grpc_port", [&](UInt16 port) + { + Poco::Net::SocketAddress server_address(listen_host, port); + gRPCServers.emplace_back(new GRPCServer(server_address.toString(), *this)); + LOG_INFO(log, "Listening for gRPC protocol: " + server_address.toString()); + }); + /// Prometheus (if defined and not setup yet with http_port) create_server("prometheus.port", [&](UInt16 port) { @@ -1057,6 +1065,11 @@ int Server::main(const std::vector & /*args*/) for (auto & server : servers) server->start(); + for (auto & server : gRPCServers) + { + if (server) + server_pool.start(*server); + } { String level_str = config().getString("text_log.level", ""); @@ -1091,6 +1104,11 @@ int Server::main(const std::vector & /*args*/) server->stop(); current_connections += server->currentConnections(); } + for (auto & server : gRPCServers) + { + if (server) + server->stop(); + } if (current_connections) LOG_INFO(log, "Closed all listening sockets. Waiting for {} outstanding connections.", current_connections); diff --git a/programs/server/WriteBufferFromGRPC.h b/programs/server/WriteBufferFromGRPC.h new file mode 100644 index 00000000000..3f4a2692729 --- /dev/null +++ b/programs/server/WriteBufferFromGRPC.h @@ -0,0 +1,66 @@ +#pragma once + +#include +#include +#include "GrpcConnection.grpc.pb.h" +#include + +using GRPCConnection::QueryRequest; +using GRPCConnection::QueryResponse; +using GRPCConnection::GRPC; + +namespace DB +{ + +class WriteBufferFromGRPC : public BufferWithOwnMemory +{ +protected: + + grpc::ServerAsyncReaderWriter* responder; + void* tag; + + bool progress = false; + bool finished = false; + std::function setResposeDetails; + + + void nextImpl() override + { + progress = true; + + String buffer(working_buffer.begin(), working_buffer.begin() + offset()); + auto response = setResposeDetails(buffer); + responder->Write(response, tag); + } + +public: + WriteBufferFromGRPC(grpc::ServerAsyncReaderWriter* responder_, void* tag_, std::function setResposeDetails_) + : responder(responder_), tag(tag_), setResposeDetails(setResposeDetails_) + {} + + ~WriteBufferFromGRPC() override {} + bool onProgress() + { + return progress; + } + bool isFinished() + { + return finished; + } + void setFinish(bool fl) + { + finished = fl; + } + void setResponse(std::function function) + { + setResposeDetails = function; + } + void finalize() override + { + progress = false; + finished = true; + responder->Finish(grpc::Status(), tag); + } +}; + +} \ No newline at end of file diff --git a/programs/server/grpc_protos/GrpcConnection.proto b/programs/server/grpc_protos/GrpcConnection.proto new file mode 100644 index 00000000000..8c8c510d90b --- /dev/null +++ b/programs/server/grpc_protos/GrpcConnection.proto @@ -0,0 +1,43 @@ +syntax = "proto3"; + +package GRPCConnection; + +message User { + string user = 1; + string password = 2; + string quota = 3; +} +message QuerySettings { + string query = 1; + string query_id = 2; + bool data_stream = 4; + string database = 5; + string format = 6; + map settings = 7; +} +message QueryRequest { + User user_info = 1; + QuerySettings query_info = 2; + string insert_data = 3; + uint64 interactive_delay = 4; +} + +message Progress { + uint64 read_rows = 1; + uint64 read_bytes = 2; + uint64 total_rows_to_read = 3; + uint64 written_rows = 4; + uint64 written_bytes = 5; +} + +message QueryResponse { + string output = 1; + string exception_occured = 2; + Progress progress = 3; + string totals = 4; + string extremes = 5; +} + +service GRPC { + rpc Query(stream QueryRequest) returns (stream QueryResponse) {} +} \ No newline at end of file diff --git a/programs/server/grpc_protos/grpc_protos.cmake b/programs/server/grpc_protos/grpc_protos.cmake new file mode 100644 index 00000000000..8aef0fe0305 --- /dev/null +++ b/programs/server/grpc_protos/grpc_protos.cmake @@ -0,0 +1,7 @@ +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/etcd_protos) +get_filename_component(rpc_proto "${CMAKE_CURRENT_SOURCE_DIR}/grpc_protos/GrpcConnection.proto" ABSOLUTE) + +include_directories(${Protobuf_INCLUDE_DIRS}) +include_directories(${CMAKE_CURRENT_BINARY_DIR}) +protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS ${rpc_proto}) +PROTOBUF_GENERATE_GRPC_CPP(GRPC_SRCS GRPC_HDRS ${rpc_proto}) \ No newline at end of file diff --git a/src/Interpreters/ClientInfo.h b/src/Interpreters/ClientInfo.h index 2edf47684d3..234b6329ff4 100644 --- a/src/Interpreters/ClientInfo.h +++ b/src/Interpreters/ClientInfo.h @@ -25,6 +25,7 @@ public: { TCP = 1, HTTP = 2, + GRPC = 3, }; enum class HTTPMethod : uint8_t diff --git a/tests/integration/test_grpc_protocol/configs/config.xml b/tests/integration/test_grpc_protocol/configs/config.xml new file mode 100644 index 00000000000..4990adb1119 --- /dev/null +++ b/tests/integration/test_grpc_protocol/configs/config.xml @@ -0,0 +1,20 @@ + + + + trace + /var/log/clickhouse-server/clickhouse-server.log + /var/log/clickhouse-server/clickhouse-server.err.log + 1000M + 10 + + + 9000 + 9001 + 127.0.0.1 + + 500 + 5368709120 + ./clickhouse/ + users.xml + + diff --git a/tests/integration/test_grpc_protocol/configs/users.xml b/tests/integration/test_grpc_protocol/configs/users.xml new file mode 100644 index 00000000000..2be13dca499 --- /dev/null +++ b/tests/integration/test_grpc_protocol/configs/users.xml @@ -0,0 +1,23 @@ + + + + + + + + + + 123 + + ::/0 + + default + default + + + + + + + + diff --git a/tests/integration/test_grpc_protocol/protos/GrpcConnection.proto b/tests/integration/test_grpc_protocol/protos/GrpcConnection.proto new file mode 120000 index 00000000000..270b4c9215b --- /dev/null +++ b/tests/integration/test_grpc_protocol/protos/GrpcConnection.proto @@ -0,0 +1 @@ +../../../../programs/server/grpc_protos/GrpcConnection.proto \ No newline at end of file diff --git a/tests/integration/test_grpc_protocol/test.py b/tests/integration/test_grpc_protocol/test.py new file mode 100644 index 00000000000..bf71d79aaa6 --- /dev/null +++ b/tests/integration/test_grpc_protocol/test.py @@ -0,0 +1,92 @@ +# coding: utf-8 +# proto file should be the same, as in server GRPC +import os +import pytest +import subprocess +import grpc +from docker.models.containers import Container + +from helpers.cluster import ClickHouseCluster + +SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) +proto_dir = os.path.join(SCRIPT_DIR, './protos') +try: + subprocess.check_call( + 'python -m grpc_tools.protoc -I{proto_path} --python_out=. --grpc_python_out=. \ + {proto_path}/GrpcConnection.proto'.format(proto_path=proto_dir), shell=True) +except subprocess.CalledProcessError, e: + print "Please, copy proto file, can be programs/server/grpc_proto/GrpcConnection.proto" + assert False +finally: + import GrpcConnection_pb2 + import GrpcConnection_pb2_grpc + + config_dir = os.path.join(SCRIPT_DIR, './configs') + cluster = ClickHouseCluster(__file__) + + node = cluster.add_instance('node', config_dir=config_dir, env_variables={'UBSAN_OPTIONS': 'print_stacktrace=1'}) + server_port = 9001 + + @pytest.fixture(scope="module") + def server_address(): + cluster.start() + try: + yield cluster.get_instance_ip('node') + finally: + cluster.shutdown() + def Query(server_address_and_port, query, mode="output", insert_data=[]): + output = [] + totals = [] + data_stream = (len(insert_data) != 0) + with grpc.insecure_channel(server_address_and_port) as channel: + stub = GrpcConnection_pb2_grpc.GRPCStub(channel) + def write_query(): + user_info = GrpcConnection_pb2.User(user="default", password='123', quota='default') + query_info = GrpcConnection_pb2.QuerySettings(query=query, query_id='123', data_stream=data_stream, format='TabSeparated') + yield GrpcConnection_pb2.QueryRequest(user_info=user_info, query_info=query_info) + if data_stream: + for data in insert_data: + yield GrpcConnection_pb2.QueryRequest(insert_data=data) + yield GrpcConnection_pb2.QueryRequest(insert_data="") + for response in stub.Query(write_query(), 10.0): + output += response.output.split() + totals += response.totals.split() + if mode == "output": + return output + elif mode == "totals": + return totals + + def test_ordinary_query(server_address): + server_address_and_port = server_address + ':' + str(server_port) + assert Query(server_address_and_port, "SELECT 1") == [u'1'] + assert Query(server_address_and_port, "SELECT count() FROM numbers(100)") == [u'100'] + + def test_query_insert(server_address): + server_address_and_port = server_address + ':' + str(server_port) + assert Query(server_address_and_port, "CREATE TABLE t (a UInt8) ENGINE = Memory") == [] + assert Query(server_address_and_port, "INSERT INTO t VALUES (1),(2),(3)") == [] + assert Query(server_address_and_port, "INSERT INTO t FORMAT TabSeparated 4\n5\n6\n") == [] + assert Query(server_address_and_port, "INSERT INTO t FORMAT TabSeparated 10\n11\n12\n") == [] + assert Query(server_address_and_port, "SELECT a FROM t ORDER BY a") == [u'1', u'2', u'3', u'4', u'5', u'6', u'10', u'11', u'12'] + assert Query(server_address_and_port, "DROP TABLE t") == [] + + def test_handle_mistakes(server_address): + server_address_and_port = server_address + ':' + str(server_port) + assert Query(server_address_and_port, "") == [] + assert Query(server_address_and_port, "CREATE TABLE t (a UInt8) ENGINE = Memory") == [] + assert Query(server_address_and_port, "CREATE TABLE t (a UInt8) ENGINE = Memory") == [] + + def test_totals(server_address): + server_address_and_port = server_address + ':' + str(server_port) + assert Query(server_address_and_port, "") == [] + assert Query(server_address_and_port, "CREATE TABLE tabl (x UInt8, y UInt8) ENGINE = Memory;") == [] + assert Query(server_address_and_port, "INSERT INTO tabl VALUES (1, 2), (2, 4), (3, 2), (3, 3), (3, 4);") == [] + assert Query(server_address_and_port, "SELECT sum(x), y FROM tabl GROUP BY y WITH TOTALS") == [u'4', u'2', u'3', u'3', u'5', u'4'] + assert Query(server_address_and_port, "SELECT sum(x), y FROM tabl GROUP BY y WITH TOTALS", mode="totals") == [u'12', u'0'] + + def test_query_insert(server_address): + server_address_and_port = server_address + ':' + str(server_port) + assert Query(server_address_and_port, "CREATE TABLE t (a UInt8) ENGINE = Memory") == [] + assert Query(server_address_and_port, "INSERT INTO t VALUES", insert_data=["(1),(2),(3)", "(5),(4),(6)", "(8),(7),(9)"]) == [] + assert Query(server_address_and_port, "SELECT a FROM t ORDER BY a") == [u'1', u'2', u'3', u'4', u'5', u'6', u'7', u'8', u'9'] + assert Query(server_address_and_port, "DROP TABLE t") == [] From 13f2352c576045aa7c9eaf79bd8b395697e65701 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sun, 11 Oct 2020 04:57:49 +0300 Subject: [PATCH 260/425] Move files to right places. --- programs/server/GRPCHandler.cpp => src/Server/GRPCServer.cpp | 0 programs/server/GRPCHandler.h => src/Server/GRPCServer.h | 0 {programs/server => src/Server}/WriteBufferFromGRPC.h | 0 .../Server/grpc_protos/clickhouse_grpc.proto | 0 {programs/server => src/Server}/grpc_protos/grpc_protos.cmake | 0 tests/integration/test_grpc_protocol/protos/GrpcConnection.proto | 1 - .../integration/test_grpc_protocol/protos/clickhouse_grpc.proto | 1 + 7 files changed, 1 insertion(+), 1 deletion(-) rename programs/server/GRPCHandler.cpp => src/Server/GRPCServer.cpp (100%) rename programs/server/GRPCHandler.h => src/Server/GRPCServer.h (100%) rename {programs/server => src/Server}/WriteBufferFromGRPC.h (100%) rename programs/server/grpc_protos/GrpcConnection.proto => src/Server/grpc_protos/clickhouse_grpc.proto (100%) rename {programs/server => src/Server}/grpc_protos/grpc_protos.cmake (100%) delete mode 120000 tests/integration/test_grpc_protocol/protos/GrpcConnection.proto create mode 120000 tests/integration/test_grpc_protocol/protos/clickhouse_grpc.proto diff --git a/programs/server/GRPCHandler.cpp b/src/Server/GRPCServer.cpp similarity index 100% rename from programs/server/GRPCHandler.cpp rename to src/Server/GRPCServer.cpp diff --git a/programs/server/GRPCHandler.h b/src/Server/GRPCServer.h similarity index 100% rename from programs/server/GRPCHandler.h rename to src/Server/GRPCServer.h diff --git a/programs/server/WriteBufferFromGRPC.h b/src/Server/WriteBufferFromGRPC.h similarity index 100% rename from programs/server/WriteBufferFromGRPC.h rename to src/Server/WriteBufferFromGRPC.h diff --git a/programs/server/grpc_protos/GrpcConnection.proto b/src/Server/grpc_protos/clickhouse_grpc.proto similarity index 100% rename from programs/server/grpc_protos/GrpcConnection.proto rename to src/Server/grpc_protos/clickhouse_grpc.proto diff --git a/programs/server/grpc_protos/grpc_protos.cmake b/src/Server/grpc_protos/grpc_protos.cmake similarity index 100% rename from programs/server/grpc_protos/grpc_protos.cmake rename to src/Server/grpc_protos/grpc_protos.cmake diff --git a/tests/integration/test_grpc_protocol/protos/GrpcConnection.proto b/tests/integration/test_grpc_protocol/protos/GrpcConnection.proto deleted file mode 120000 index 270b4c9215b..00000000000 --- a/tests/integration/test_grpc_protocol/protos/GrpcConnection.proto +++ /dev/null @@ -1 +0,0 @@ -../../../../programs/server/grpc_protos/GrpcConnection.proto \ No newline at end of file diff --git a/tests/integration/test_grpc_protocol/protos/clickhouse_grpc.proto b/tests/integration/test_grpc_protocol/protos/clickhouse_grpc.proto new file mode 120000 index 00000000000..25d15f11e3b --- /dev/null +++ b/tests/integration/test_grpc_protocol/protos/clickhouse_grpc.proto @@ -0,0 +1 @@ +../../../../src/Server/grpc_protos/clickhouse_grpc.proto \ No newline at end of file From 44717797c9f53e05793011d7b15c9f6bab588e2d Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sun, 11 Oct 2020 05:19:01 +0300 Subject: [PATCH 261/425] Fix code style and compilation. --- programs/CMakeLists.txt | 2 +- programs/server/CMakeLists.txt | 9 - programs/server/Server.cpp | 49 +- src/CMakeLists.txt | 4 + src/Server/CMakeLists.txt | 3 + src/Server/GRPCServer.cpp | 865 +++++++++++-------- src/Server/GRPCServer.h | 227 +---- src/Server/WriteBufferFromGRPC.h | 73 +- src/Server/grpc_protos/CMakeLists.txt | 11 + src/Server/grpc_protos/clickhouse_grpc.proto | 2 +- src/Server/grpc_protos/grpc_protos.cmake | 7 - src/Server/ya.make | 1 + 12 files changed, 644 insertions(+), 609 deletions(-) create mode 100644 src/Server/grpc_protos/CMakeLists.txt delete mode 100644 src/Server/grpc_protos/grpc_protos.cmake diff --git a/programs/CMakeLists.txt b/programs/CMakeLists.txt index c375ca0f50e..d9c5dc78fe4 100644 --- a/programs/CMakeLists.txt +++ b/programs/CMakeLists.txt @@ -112,7 +112,7 @@ add_subdirectory (obfuscator) add_subdirectory (install) add_subdirectory (git-import) -add_subdirectory (grpc-client) +#add_subdirectory (grpc-client) if (ENABLE_CLICKHOUSE_ODBC_BRIDGE) add_subdirectory (odbc-bridge) diff --git a/programs/server/CMakeLists.txt b/programs/server/CMakeLists.txt index 606bc80caf3..198d9081168 100644 --- a/programs/server/CMakeLists.txt +++ b/programs/server/CMakeLists.txt @@ -1,13 +1,6 @@ -include (${CMAKE_CURRENT_SOURCE_DIR}/grpc_protos/grpc_protos.cmake) - set(CLICKHOUSE_SERVER_SOURCES MetricsTransmitter.cpp Server.cpp - ${PROTO_SRCS} - ${PROTO_HDRS} - ${GRPC_SRCS} - ${GRPC_HDRS} - ${CMAKE_CURRENT_SOURCE_DIR}/GRPCHandler.cpp ) if (OS_LINUX) @@ -31,8 +24,6 @@ set (CLICKHOUSE_SERVER_LINK PUBLIC daemon - grpc++ - libprotobuf ) clickhouse_program_add(server) diff --git a/programs/server/Server.cpp b/programs/server/Server.cpp index ab8253b8566..dea82d949bd 100644 --- a/programs/server/Server.cpp +++ b/programs/server/Server.cpp @@ -64,7 +64,6 @@ #include #include #include -#include "GRPCHandler.h" #if !defined(ARCADIA_BUILD) @@ -85,6 +84,11 @@ # include #endif +#if USE_GRPC +# include +#endif + + namespace CurrentMetrics { extern const Metric Revision; @@ -818,7 +822,30 @@ int Server::main(const std::vector & /*args*/) listen_hosts.emplace_back("127.0.0.1"); listen_try = true; } - std::vector> gRPCServers; + +#if USE_GRPC + std::vector> grpc_servers; + auto start_grpc_servers = [&] + { + for (auto & server : grpc_servers) + { + if (server) + server_pool.start(*server); + } + }; + auto stop_grpc_servers = [&] + { + for (auto & server : grpc_servers) + { + if (server) + server->stop(); + } + }; +#else + auto start_grpc_servers = []{}; + auto stop_grpc_servers = []{}; +#endif + auto make_socket_address = [&](const std::string & host, UInt16 port) { Poco::Net::SocketAddress socket_address; @@ -1036,12 +1063,14 @@ int Server::main(const std::vector & /*args*/) LOG_INFO(log, "Listening for PostgreSQL compatibility protocol: " + address.toString()); }); +#if USE_GRPC create_server("grpc_port", [&](UInt16 port) { Poco::Net::SocketAddress server_address(listen_host, port); - gRPCServers.emplace_back(new GRPCServer(server_address.toString(), *this)); + grpc_servers.emplace_back(new GRPCServer(server_address.toString(), *this)); LOG_INFO(log, "Listening for gRPC protocol: " + server_address.toString()); }); +#endif /// Prometheus (if defined and not setup yet with http_port) create_server("prometheus.port", [&](UInt16 port) @@ -1065,11 +1094,8 @@ int Server::main(const std::vector & /*args*/) for (auto & server : servers) server->start(); - for (auto & server : gRPCServers) - { - if (server) - server_pool.start(*server); - } + + start_grpc_servers(); { String level_str = config().getString("text_log.level", ""); @@ -1104,11 +1130,8 @@ int Server::main(const std::vector & /*args*/) server->stop(); current_connections += server->currentConnections(); } - for (auto & server : gRPCServers) - { - if (server) - server->stop(); - } + + stop_grpc_servers(); if (current_connections) LOG_INFO(log, "Closed all listening sockets. Waiting for {} outstanding connections.", current_connections); diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9fc8a62a066..a207b4f98e1 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -382,6 +382,10 @@ if (USE_PROTOBUF) dbms_target_include_directories (SYSTEM BEFORE PRIVATE ${Protobuf_INCLUDE_DIR}) endif () +if (USE_GRPC) + dbms_target_link_libraries (PUBLIC clickhouse_grpc_protos) +endif() + if (USE_HDFS) target_link_libraries (clickhouse_common_io PUBLIC ${HDFS3_LIBRARY}) target_include_directories (clickhouse_common_io SYSTEM BEFORE PUBLIC ${HDFS3_INCLUDE_DIR}) diff --git a/src/Server/CMakeLists.txt b/src/Server/CMakeLists.txt index e69de29bb2d..61237d9bfdc 100644 --- a/src/Server/CMakeLists.txt +++ b/src/Server/CMakeLists.txt @@ -0,0 +1,3 @@ +if (USE_GRPC) + add_subdirectory (grpc_protos) +endif() diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index fad4a056047..e83a489c30d 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -1,13 +1,10 @@ -#include "GRPCHandler.h" -#include -#include +#include "GRPCServer.h" +#if USE_GRPC + #include #include -#include -#include -#include -#include #include +#include #include #include #include @@ -15,7 +12,13 @@ #include #include #include +#include +#include +#include #include +#include +#include +#include using GRPCConnection::QueryRequest; using GRPCConnection::QueryResponse; @@ -24,376 +27,556 @@ using GRPCConnection::GRPC; namespace DB { - namespace ErrorCodes { extern const int UNKNOWN_DATABASE; extern const int NO_DATA_TO_INSERT; } -std::string ParseGrpcPeer(const grpc::ServerContext& context_) -{ - String info = context_.peer(); - return info.substr(info.find(":") + 1); -} -void CallDataQuery::respond() +namespace { - try + class CommonCallData { - switch (status) + public: + GRPC::AsyncService * grpc_service; + grpc::ServerCompletionQueue * notification_cq; + grpc::ServerCompletionQueue * new_call_cq; + grpc::ServerContext grpc_context; + IServer * iserver; + bool with_stacktrace = false; + Poco::Logger * log; + std::unique_ptr next_client; + + explicit CommonCallData( + GRPC::AsyncService * grpc_service_, + grpc::ServerCompletionQueue * notification_cq_, + grpc::ServerCompletionQueue * new_call_cq_, + IServer * iserver_, + Poco::Logger * log_) + : grpc_service(grpc_service_), notification_cq(notification_cq_), new_call_cq(new_call_cq_), iserver(iserver_), log(log_) { - case START_QUERY: + } + virtual ~CommonCallData() = default; + virtual void respond() = 0; + }; + + class CallDataQuery : public CommonCallData + { + public: + CallDataQuery( + GRPC::AsyncService * grpc_service_, + grpc::ServerCompletionQueue * notification_cq_, + grpc::ServerCompletionQueue * new_call_cq_, + IServer * iserver_, + Poco::Logger * log_) + : CommonCallData(grpc_service_, notification_cq_, new_call_cq_, iserver_, log_), responder(&grpc_context), context(iserver->context()) + { + details_status = SEND_TOTALS; + status = START_QUERY; + out = std::make_shared(&responder, static_cast(this), nullptr); + grpc_service->RequestQuery(&grpc_context, &responder, new_call_cq, notification_cq, this); + } + void parseQuery(); + void parseData(); + void readData(); + void executeQuery(); + void progressQuery(); + void finishQuery(); + + enum DetailsStatus + { + SEND_TOTALS, + SEND_EXTREMES, + //SEND_PROFILEINFO, //? + FINISH + }; + void sendDetails(); + + bool sendData(const Block & block); + bool sendProgress(); + bool sendTotals(const Block & totals); + bool sendExtremes(const Block & extremes); + + enum Status + { + START_QUERY, + PARSE_QUERY, + READ_DATA, + PROGRESS, + FINISH_QUERY + }; + virtual void respond() override; + virtual ~CallDataQuery() override + { + query_watch.stop(); + progress_watch.stop(); + query_context.reset(); + query_scope.reset(); + } + + private: + QueryRequest request; + QueryResponse response; + grpc::ServerAsyncReaderWriter responder; + + Stopwatch progress_watch; + Stopwatch query_watch; + Progress progress; + + DetailsStatus details_status; + Status status; + + BlockIO io; + Context context; + std::shared_ptr executor; + std::optional query_context; + + std::shared_ptr out; + String format_output; + String format_input; + uint64_t interactive_delay; + std::optional query_scope; + }; + + std::string parseGRPCPeer(const grpc::ServerContext & context_) + { + String info = context_.peer(); + return info.substr(info.find(':') + 1); + } + + void CallDataQuery::respond() + { + try + { + switch (status) { - new CallDataQuery(service, notification_cq, new_call_cq, iServer, log); - status = PARSE_QUERY; - responder.Read(&request, (void*)this); + case START_QUERY: { + new CallDataQuery(grpc_service, notification_cq, new_call_cq, iserver, log); + status = PARSE_QUERY; + responder.Read(&request, static_cast(this)); + break; + } + case PARSE_QUERY: { + parseQuery(); + parseData(); + break; + } + case READ_DATA: { + readData(); + break; + } + case PROGRESS: { + progressQuery(); + break; + } + case FINISH_QUERY: { + delete this; + } + } + } + catch (...) + { + io.onException(); + + tryLogCurrentException(log); + std::string exception_message = getCurrentExceptionMessage(with_stacktrace, true); + //int exception_code = getCurrentExceptionCode(); //? + response.set_exception_occured(exception_message); + status = FINISH_QUERY; + responder.WriteAndFinish(response, grpc::WriteOptions(), grpc::Status(), static_cast(this)); + } + } + + void CallDataQuery::parseQuery() + { + LOG_TRACE(log, "Process query"); + + Poco::Net::SocketAddress user_adress(parseGRPCPeer(grpc_context)); + LOG_TRACE(log, "Request: {}", request.query_info().query()); + + std::string user = request.user_info().user(); + std::string password = request.user_info().password(); + std::string quota_key = request.user_info().quota(); + interactive_delay = request.interactive_delay(); + format_output = "Values"; + if (user.empty()) + { + user = "default"; + password = ""; + } + if (interactive_delay == 0) + interactive_delay = INT_MAX; + context.setProgressCallback([this](const Progress & value) { return progress.incrementPiecewiseAtomically(value); }); + + + query_context = context; + query_scope.emplace(*query_context); + query_context->setUser(user, password, user_adress); + query_context->setCurrentQueryId(request.query_info().query_id()); + if (!quota_key.empty()) + query_context->setQuotaKey(quota_key); + + if (!request.query_info().format().empty()) + { + format_output = request.query_info().format(); + query_context->setDefaultFormat(request.query_info().format()); + } + if (!request.query_info().database().empty()) + { + if (!DatabaseCatalog::instance().isDatabaseExist(request.query_info().database())) + { + Exception e("Database " + request.query_info().database() + " doesn't exist", ErrorCodes::UNKNOWN_DATABASE); + } + query_context->setCurrentDatabase(request.query_info().database()); + } + + SettingsChanges settings_changes; + for (const auto & [key, value] : request.query_info().settings()) + { + settings_changes.push_back({key, value}); + } + query_context->checkSettingsConstraints(settings_changes); + query_context->applySettingsChanges(settings_changes); + + ClientInfo & client_info = query_context->getClientInfo(); + client_info.query_kind = ClientInfo::QueryKind::INITIAL_QUERY; + client_info.interface = ClientInfo::Interface::GRPC; + + client_info.initial_user = client_info.current_user; + client_info.initial_query_id = client_info.current_query_id; + client_info.initial_address = client_info.current_address; + } + + void CallDataQuery::parseData() + { + LOG_TRACE(log, "ParseData"); + const char * begin = request.query_info().query().data(); + const char * end = begin + request.query_info().query().size(); + const Settings & settings = query_context->getSettingsRef(); + + ParserQuery parser(end); + ASTPtr ast = ::DB::parseQuery(parser, begin, end, "", settings.max_query_size, settings.max_parser_depth); + + auto * insert_query = ast->as(); + const auto * query_end = end; + + if (insert_query && insert_query->data) + { + query_end = insert_query->data; + } + String query(begin, query_end); + io = ::DB::executeQuery(query, *query_context, false, QueryProcessingStage::Complete, true, true); + if (io.out) + { + if (!insert_query || !(insert_query->data || request.query_info().data_stream() || !request.insert_data().empty())) + { + Exception e("Logical error: query requires data to insert, but it is not INSERT query", ErrorCodes::NO_DATA_TO_INSERT); + } + + format_input = insert_query->format; + if (format_input.empty()) + format_input = "Values"; + + if (format_output.empty()) + format_output = format_input; + ConcatReadBuffer::ReadBuffers buffers; + std::shared_ptr data_in_query; + std::shared_ptr data_in_insert_data; + if (insert_query->data) + { + data_in_query = std::make_shared(insert_query->data, insert_query->end - insert_query->data); + buffers.push_back(data_in_query.get()); + } + + if (!request.insert_data().empty()) + { + data_in_insert_data = std::make_shared(request.insert_data().data(), request.insert_data().size()); + buffers.push_back(data_in_insert_data.get()); + } + auto input_buffer_contacenated = std::make_unique(buffers); + auto res_stream = query_context->getInputFormat( + format_input, *input_buffer_contacenated, io.out->getHeader(), query_context->getSettings().max_insert_block_size); + + auto table_id = query_context->resolveStorageID(insert_query->table_id, Context::ResolveOrdinary); + if (query_context->getSettingsRef().input_format_defaults_for_omitted_fields && table_id) + { + StoragePtr storage = DatabaseCatalog::instance().getTable(table_id, *query_context); + const auto & columns = storage->getInMemoryMetadataPtr()->getColumns(); + if (!columns.empty()) + res_stream = std::make_shared(res_stream, columns, *query_context); + } + io.out->writePrefix(); + while (auto block = res_stream->read()) + io.out->write(block); + if (request.query_info().data_stream()) + { + status = READ_DATA; + responder.Read(&request, static_cast(this)); + return; + } + io.out->writeSuffix(); + } + + executeQuery(); + } + + void CallDataQuery::readData() + { + if (request.insert_data().empty()) + { + io.out->writeSuffix(); + executeQuery(); + } + else + { + const char * begin = request.insert_data().data(); + const char * end = begin + request.insert_data().size(); + ReadBufferFromMemory data_in(begin, end - begin); + auto res_stream = query_context->getInputFormat( + format_input, data_in, io.out->getHeader(), query_context->getSettings().max_insert_block_size); + + while (auto block = res_stream->read()) + io.out->write(block); + responder.Read(&request, static_cast(this)); + } + } + + void CallDataQuery::executeQuery() + { + LOG_TRACE(log, "Execute Query"); + if (io.pipeline.initialized()) + { + query_watch.start(); + progress_watch.start(); + executor = std::make_shared(io.pipeline); + progressQuery(); + } + else + { + finishQuery(); + } + } + + void CallDataQuery::progressQuery() + { + status = PROGRESS; + bool sent = false; + + Block block; + while (executor->pull(block, query_watch.elapsedMilliseconds())) + { + if (block) + { + if (!io.null_format) + { + sent = sendData(block); + break; //? + } + } + if (progress_watch.elapsedMilliseconds() >= interactive_delay) + { + progress_watch.restart(); + sent = sendProgress(); break; } - case PARSE_QUERY: + query_watch.restart(); + } + if (!sent) + { + sendDetails(); + } + } + + void CallDataQuery::sendDetails() + { + bool sent = false; + while (!sent) + { + switch (details_status) { - ParseQuery(); - ParseData(); - break; - } - case READ_DATA: - { - ReadData(); - break; - } - case PROGRESS: - { - ProgressQuery(); - break; - } - case FINISH_QUERY: - { - delete this; + case SEND_TOTALS: { + sent = sendTotals(executor->getTotalsBlock()); + details_status = SEND_EXTREMES; + break; + } + case SEND_EXTREMES: { + sent = sendExtremes(executor->getExtremesBlock()); + details_status = FINISH; + break; + } + case FINISH: { + sent = true; + finishQuery(); + break; + } } } } - catch (...) - { - io.onException(); - tryLogCurrentException(log); - std::string exception_message = getCurrentExceptionMessage(with_stacktrace, true); - int exception_code = getCurrentExceptionCode(); - response.set_exception_occured(exception_message); + void CallDataQuery::finishQuery() + { + io.onFinish(); + query_scope->logPeakMemoryUsage(); status = FINISH_QUERY; - responder.WriteAndFinish(response, grpc::WriteOptions(), grpc::Status(), (void*)this); + out->finalize(); } -} -void CallDataQuery::ParseQuery() -{ - LOG_TRACE(log, "Process query"); - - Poco::Net::SocketAddress user_adress(ParseGrpcPeer(gRPCcontext)); - LOG_TRACE(log, "Request: " << request.query_info().query()); - - std::string user = request.user_info().user(); - std::string password = request.user_info().password(); - std::string quota_key = request.user_info().quota(); - interactive_delay = request.interactive_delay(); - format_output = "Values"; - if (user.empty()) + bool CallDataQuery::sendData(const Block & block) { - user = "default"; - password = ""; - } - if (interactive_delay == 0) - interactive_delay = INT_MAX; - context.setProgressCallback([this] (const Progress & value) { return progress.incrementPiecewiseAtomically(value); }); - - - query_context = context; - query_scope.emplace(*query_context); - query_context->setUser(user, password, user_adress); - query_context->setCurrentQueryId(request.query_info().query_id()); - if (!quota_key.empty()) - query_context->setQuotaKey(quota_key); - - if (!request.query_info().format().empty()) - { - format_output = request.query_info().format(); - query_context->setDefaultFormat(request.query_info().format()); - } - if (!request.query_info().database().empty()) - { - if (!DatabaseCatalog::instance().isDatabaseExist(request.query_info().database())) + out->setResponse([](const String & buffer) { - Exception e("Database " + request.query_info().database() + " doesn't exist", ErrorCodes::UNKNOWN_DATABASE); - } - query_context->setCurrentDatabase(request.query_info().database()); + QueryResponse tmp_response; + tmp_response.set_output(buffer); + return tmp_response; + }); + auto my_block_out_stream = query_context->getOutputFormat(format_output, *out, block); + my_block_out_stream->write(block); + my_block_out_stream->flush(); + out->next(); + return true; } - SettingsChanges settings_changes; - for (const auto & [key, value] : request.query_info().settings()) + bool CallDataQuery::sendProgress() { - settings_changes.push_back({key, value}); - } - query_context->checkSettingsConstraints(settings_changes); - query_context->applySettingsChanges(settings_changes); - - ClientInfo & client_info = query_context->getClientInfo(); - client_info.query_kind = ClientInfo::QueryKind::INITIAL_QUERY; - client_info.interface = ClientInfo::Interface::GRPC; - - client_info.initial_user = client_info.current_user; - client_info.initial_query_id = client_info.current_query_id; - client_info.initial_address = client_info.current_address; -} - -void CallDataQuery::ParseData() -{ - LOG_TRACE(log, "ParseData"); - const char * begin = request.query_info().query().data(); - const char * end = begin + request.query_info().query().size(); - const Settings & settings = query_context->getSettingsRef(); - - ParserQuery parser(end, settings.enable_debug_queries); - ASTPtr ast = parseQuery(parser, begin, end, "", settings.max_query_size, settings.max_parser_depth); - - auto * insert_query = ast->as(); - auto query_end = end; - - if (insert_query && insert_query->data) - { - query_end = insert_query->data; - } - String query(begin, query_end); - io = executeQuery(query, *query_context, false, QueryProcessingStage::Complete, true, true); - if (io.out) - { - if (!insert_query || !(insert_query->data || request.query_info().data_stream() || !request.insert_data().empty())) - { - Exception e("Logical error: query requires data to insert, but it is not INSERT query", ErrorCodes::NO_DATA_TO_INSERT); - } - - format_input = insert_query->format; - if (format_input.empty()) - format_input = "Values"; - - if (format_output.empty()) - format_output = format_input; - ConcatReadBuffer::ReadBuffers buffers; - std::shared_ptr data_in_query; - std::shared_ptr data_in_insert_data; - if (insert_query->data) - { - data_in_query = std::make_shared(insert_query->data, insert_query->end - insert_query->data); - buffers.push_back(data_in_query.get()); - } - - if (!request.insert_data().empty()) - { - data_in_insert_data = std::make_shared(request.insert_data().data(), request.insert_data().size()); - buffers.push_back(data_in_insert_data.get()); - } - auto input_buffer_contacenated = std::make_unique(buffers); - auto res_stream = query_context->getInputFormat(format_input, *input_buffer_contacenated, io.out->getHeader(), query_context->getSettings().max_insert_block_size); - - auto table_id = query_context->resolveStorageID(insert_query->table_id, Context::ResolveOrdinary); - if (query_context->getSettingsRef().input_format_defaults_for_omitted_fields && table_id) - { - StoragePtr storage = DatabaseCatalog::instance().getTable(table_id); - auto column_defaults = storage->getColumns().getDefaults(); - if (!column_defaults.empty()) - res_stream = std::make_shared(res_stream, column_defaults, *query_context); - } - io.out->writePrefix(); - while (auto block = res_stream->read()) - io.out->write(block); - if (request.query_info().data_stream()) - { - status = READ_DATA; - responder.Read(&request, (void*)this); - return; - } - io.out->writeSuffix(); - } - - ExecuteQuery(); -} -void CallDataQuery::ReadData() -{ - if (request.insert_data().empty()) - { - io.out->writeSuffix(); - ExecuteQuery(); - } - else - { - const char * begin = request.insert_data().data(); - const char * end = begin + request.insert_data().size(); - ReadBufferFromMemory data_in(begin, end - begin); - auto res_stream = query_context->getInputFormat(format_input, data_in, io.out->getHeader(), query_context->getSettings().max_insert_block_size); - - while (auto block = res_stream->read()) - io.out->write(block); - responder.Read(&request, (void*)this); - } -} -void CallDataQuery::ExecuteQuery() -{ - LOG_TRACE(log, "Execute Query"); - if (io.pipeline.initialized()) - { - query_watch.start(); - progress_watch.start(); - executor = std::make_shared(io.pipeline); - ProgressQuery(); - } - else - { - FinishQuery(); - } -} - -void CallDataQuery::ProgressQuery() -{ - status = PROGRESS; - bool sent = false; - - Block block; - while (executor->pull(block, query_watch.elapsedMilliseconds())) - { - if (block) - { - if (!io.null_format) - sent = sendData(block); - break; - } - if (progress_watch.elapsedMilliseconds() >= interactive_delay) - { - progress_watch.restart(); - sent = sendProgress(); - break; - } - query_watch.restart(); - } - if (!sent) - { - SendDetails(); - } -} -void CallDataQuery::SendDetails() -{ - bool sent = false; - while (!sent) - { - switch (detailsStatus) - { - case SEND_TOTALS: - { - sent = sendTotals(executor->getTotalsBlock()); - detailsStatus = SEND_EXTREMES; - break; - } - case SEND_EXTREMES: - { - sent = sendExtremes(executor->getExtremesBlock()); - detailsStatus = FINISH; - break; - } - case FINISH: - { - sent = true; - FinishQuery(); - } - } - } -} - -void CallDataQuery::FinishQuery() -{ - io.onFinish(); - query_scope->logPeakMemoryUsage(); - status = FINISH_QUERY; - out->finalize(); -} - -bool CallDataQuery::sendData(const Block & block) -{ - out->setResponse([](const String& buffer) - { - QueryResponse tmp_response; - tmp_response.set_output(buffer); - return tmp_response; - }); - auto my_block_out_stream = query_context->getOutputFormat(format_output, *out, block); - my_block_out_stream->write(block); - my_block_out_stream->flush(); - out->next(); - return true; -} - -bool CallDataQuery::sendProgress() -{ - auto grpcProgress = [](const String& buffer) + auto grpc_progress = [](const String & buffer) { auto in = std::make_unique(buffer); - ProgressValues progressValues; - progressValues.read(*in, DBMS_MIN_REVISION_WITH_CLIENT_WRITE_INFO); - GRPCConnection::Progress progress; - progress.set_read_rows(progressValues.read_rows); - progress.set_read_bytes(progressValues.read_bytes); - progress.set_total_rows_to_read(progressValues.total_rows_to_read); - progress.set_written_rows(progressValues.written_rows); - progress.set_written_bytes(progressValues.written_bytes); - return progress; + ProgressValues progress_values; + progress_values.read(*in, DBMS_MIN_REVISION_WITH_CLIENT_WRITE_INFO); + GRPCConnection::Progress tmp_progress; + tmp_progress.set_read_rows(progress_values.read_rows); + tmp_progress.set_read_bytes(progress_values.read_bytes); + tmp_progress.set_total_rows_to_read(progress_values.total_rows_to_read); + tmp_progress.set_written_rows(progress_values.written_rows); + tmp_progress.set_written_bytes(progress_values.written_bytes); + return tmp_progress; }; - out->setResponse([&grpcProgress](const String& buffer) - { - QueryResponse tmp_response; - auto progress = std::make_unique(grpcProgress(buffer)); - tmp_response.set_allocated_progress(progress.release()); - return tmp_response; - }); - auto increment = progress.fetchAndResetPiecewiseAtomically(); - increment.write(*out, DBMS_MIN_REVISION_WITH_CLIENT_WRITE_INFO); - out->next(); - return true; -} - -bool CallDataQuery::sendTotals(const Block & totals) -{ - if (totals) - { - out->setResponse([](const String& buffer) - { - QueryResponse tmp_response; - tmp_response.set_totals(buffer); - return tmp_response; - }); - auto my_block_out_stream = query_context->getOutputFormat(format_output, *out, totals); - my_block_out_stream->write(totals); - my_block_out_stream->flush(); + out->setResponse([&grpc_progress](const String & buffer) + { + QueryResponse tmp_response; + auto tmp_progress = std::make_unique(grpc_progress(buffer)); + tmp_response.set_allocated_progress(tmp_progress.release()); + return tmp_response; + }); + auto increment = progress.fetchAndResetPiecewiseAtomically(); + increment.write(*out, DBMS_MIN_REVISION_WITH_CLIENT_WRITE_INFO); out->next(); return true; } - return false; -} -bool CallDataQuery::sendExtremes(const Block & extremes) -{ - if (extremes) + bool CallDataQuery::sendTotals(const Block & totals) { - out->setResponse([](const String& buffer) - { - QueryResponse tmp_response; - tmp_response.set_extremes(buffer); - return tmp_response; - }); - auto my_block_out_stream = query_context->getOutputFormat(format_output, *out, extremes); - my_block_out_stream->write(extremes); - my_block_out_stream->flush(); - out->next(); - return true; + if (totals) + { + out->setResponse([](const String & buffer) + { + QueryResponse tmp_response; + tmp_response.set_totals(buffer); + return tmp_response; + }); + auto my_block_out_stream = query_context->getOutputFormat(format_output, *out, totals); + my_block_out_stream->write(totals); + my_block_out_stream->flush(); + out->next(); + return true; + } + return false; } - return false; + + bool CallDataQuery::sendExtremes(const Block & extremes) + { + if (extremes) + { + out->setResponse([](const String & buffer) + { + QueryResponse tmp_response; + tmp_response.set_extremes(buffer); + return tmp_response; + }); + auto my_block_out_stream = query_context->getOutputFormat(format_output, *out, extremes); + my_block_out_stream->write(extremes); + my_block_out_stream->flush(); + out->next(); + return true; + } + return false; + } +} + + +GRPCServer::GRPCServer(std::string address_to_listen_, IServer & server_) : iserver(server_), log(&Poco::Logger::get("GRPCHandler")) +{ + grpc::ServerBuilder builder; + builder.AddListeningPort(address_to_listen_, grpc::InsecureServerCredentials()); + //keepalive pings default values + builder.RegisterService(&grpc_service); + builder.SetMaxReceiveMessageSize(INT_MAX); + notification_cq = builder.AddCompletionQueue(); + new_call_cq = builder.AddCompletionQueue(); + grpc_server = builder.BuildAndStart(); +} + +GRPCServer::~GRPCServer() = default; + +void GRPCServer::stop() +{ + grpc_server->Shutdown(); + notification_cq->Shutdown(); + new_call_cq->Shutdown(); +} + +void GRPCServer::run() +{ + HandleRpcs(); +} + +void GRPCServer::HandleRpcs() +{ + new CallDataQuery(&grpc_service, notification_cq.get(), new_call_cq.get(), &iserver, log); + + // rpc event "read done / write done / close(already connected)" call-back by this completion queue + auto handle_calls_completion = [&]() + { + void * tag; + bool ok; + while (true) + { + GPR_ASSERT(new_call_cq->Next(&tag, &ok)); + if (!ok) + { + LOG_WARNING(log, "Client has gone away."); + delete static_cast(tag); + continue; + } + auto thread = ThreadFromGlobalPool{&CallDataQuery::respond, static_cast(tag)}; + thread.detach(); + } + }; + // rpc event "new connection / close(waiting for connect)" call-back by this completion queue + auto handle_requests_completion = [&] { + void * tag; + bool ok; + while (true) + { + GPR_ASSERT(notification_cq->Next(&tag, &ok)); + if (!ok) + { + LOG_WARNING(log, "Client has gone away."); + delete static_cast(tag); + continue; + } + auto thread = ThreadFromGlobalPool{&CallDataQuery::respond, static_cast(tag)}; + thread.detach(); + } + }; + + auto notification_cq_thread = ThreadFromGlobalPool{handle_requests_completion}; + auto new_call_cq_thread = ThreadFromGlobalPool{handle_calls_completion}; + notification_cq_thread.detach(); + new_call_cq_thread.detach(); } } +#endif diff --git a/src/Server/GRPCServer.h b/src/Server/GRPCServer.h index 4037ece1b39..3c943a28d99 100644 --- a/src/Server/GRPCServer.h +++ b/src/Server/GRPCServer.h @@ -1,209 +1,46 @@ #pragma once -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "IServer.h" -#include -#include +#if !defined(ARCADIA_BUILD) +#include +#endif -#include -#include -#include -#include "GrpcConnection.grpc.pb.h" +#if USE_GRPC +#include +#include "clickhouse_grpc.grpc.pb.h" -#include "WriteBufferFromGRPC.h" +namespace Poco { class Logger; } -using GRPCConnection::QueryRequest; -using GRPCConnection::QueryResponse; -using GRPCConnection::GRPC; +namespace grpc +{ +class Server; +class ServerCompletionQueue; +} namespace DB { - -class CommonCallData -{ - public: - GRPC::AsyncService* service; - grpc::ServerCompletionQueue* notification_cq; - grpc::ServerCompletionQueue* new_call_cq; - grpc::ServerContext gRPCcontext; - IServer* iServer; - bool with_stacktrace = false; - Poco::Logger * log; - std::unique_ptr next_client; - - public: - explicit CommonCallData(GRPC::AsyncService* Service_, grpc::ServerCompletionQueue* notification_cq_, grpc::ServerCompletionQueue* new_call_cq_, IServer* iServer_, Poco::Logger * log_) - : service(Service_), notification_cq(notification_cq_), new_call_cq(new_call_cq_), iServer(iServer_), log(log_) - {} - virtual ~CommonCallData() - {} - virtual void respond() = 0; -}; - -class CallDataQuery : public CommonCallData -{ - public: - CallDataQuery(GRPC::AsyncService* Service_, grpc::ServerCompletionQueue* notification_cq_, grpc::ServerCompletionQueue* new_call_cq_, IServer* server_, Poco::Logger * log_) - : CommonCallData(Service_, notification_cq_, new_call_cq_, server_, log_), responder(&gRPCcontext), context(iServer->context()) - { - detailsStatus = SEND_TOTALS; - status = START_QUERY; - out = std::make_shared(&responder, (void*)this, nullptr); - service->RequestQuery(&gRPCcontext, &responder, new_call_cq, notification_cq, this); - } - void ParseQuery(); - void ParseData(); - void ReadData(); - void ExecuteQuery(); - void ProgressQuery(); - void FinishQuery(); - - enum DetailsStatus - { - SEND_TOTALS, - SEND_EXTREMES, - SEND_PROFILEINFO, - FINISH - }; - void SendDetails(); - - bool sendData(const Block & block); - bool sendProgress(); - bool sendTotals(const Block & totals); - bool sendExtremes(const Block & block); - - enum Status - { - START_QUERY, - PARSE_QUERY, - READ_DATA, - PROGRESS, - FINISH_QUERY - }; - virtual void respond() override; - virtual ~CallDataQuery() override - { - query_watch.stop(); - progress_watch.stop(); - query_context.reset(); - query_scope.reset(); - } - - private: - QueryRequest request; - QueryResponse response; - grpc::ServerAsyncReaderWriter responder; - - Stopwatch progress_watch; - Stopwatch query_watch; - Progress progress; - - DetailsStatus detailsStatus; - Status status; - - BlockIO io; - Context context; - std::shared_ptr executor; - std::optional query_context; - - std::shared_ptr out; - String format_output; - String format_input; - uint64_t interactive_delay; - std::optional query_scope; - - -}; +class IServer; class GRPCServer final : public Poco::Runnable { - public: - GRPCServer(const GRPCServer &handler) = delete; - GRPCServer(GRPCServer &&handler) = delete; - GRPCServer(std::string server_address_, IServer & server_) : iServer(server_), log(&Poco::Logger::get("GRPCHandler")) - { - grpc::ServerBuilder builder; - builder.AddListeningPort(server_address_, grpc::InsecureServerCredentials()); - //keepalive pings default values - builder.RegisterService(&service); - builder.SetMaxReceiveMessageSize(INT_MAX); - notification_cq = builder.AddCompletionQueue(); - new_call_cq = builder.AddCompletionQueue(); - server = builder.BuildAndStart(); - } - void stop() - { - server->Shutdown(); - notification_cq->Shutdown(); - new_call_cq->Shutdown(); - } - virtual void run() override - { - HandleRpcs(); - } - void HandleRpcs() - { - new CallDataQuery(&service, notification_cq.get(), new_call_cq.get(), &iServer, log); +public: + GRPCServer(const GRPCServer & handler) = delete; + GRPCServer(GRPCServer && handler) = delete; + GRPCServer(std::string address_to_listen_, IServer & server_); + ~GRPCServer() override; - // rpc event "read done / write done / close(already connected)" call-back by this completion queue - auto handle_calls_completion = [&]() - { - void* tag; - bool ok; - while (true) - { - GPR_ASSERT(new_call_cq->Next(&tag, &ok)); - if (!ok) - { - LOG_WARNING(log, "Client has gone away."); - delete static_cast(tag); - continue; - } - auto thread = ThreadFromGlobalPool{&CallDataQuery::respond, static_cast(tag)}; - thread.detach(); - } - }; - // rpc event "new connection / close(waiting for connect)" call-back by this completion queue - auto handle_requests_completion = [&] - { - void* tag; - bool ok; - while (true) - { - GPR_ASSERT(notification_cq->Next(&tag, &ok)); - if (!ok) - { - LOG_WARNING(log, "Client has gone away."); - delete static_cast(tag); - continue; - } - auto thread = ThreadFromGlobalPool{&CallDataQuery::respond, static_cast(tag)}; - thread.detach(); - } - }; + void stop(); + virtual void run() override; + void HandleRpcs(); - auto notification_cq_thread = ThreadFromGlobalPool{handle_requests_completion}; - auto new_call_cq_thread = ThreadFromGlobalPool{handle_calls_completion}; - notification_cq_thread.detach(); - new_call_cq_thread.detach(); - } - - private: - IServer & iServer; - Poco::Logger * log; - std::unique_ptr notification_cq; - std::unique_ptr new_call_cq; - GRPC::AsyncService service; - std::unique_ptr server; - std::string server_address; +private: + using GRPC = GRPCConnection::GRPC; + IServer & iserver; + Poco::Logger * log; + std::unique_ptr notification_cq; + std::unique_ptr new_call_cq; + GRPC::AsyncService grpc_service; + std::unique_ptr grpc_server; + std::string address_to_listen; }; - - } +} +#endif diff --git a/src/Server/WriteBufferFromGRPC.h b/src/Server/WriteBufferFromGRPC.h index 3f4a2692729..3a5d78b04e0 100644 --- a/src/Server/WriteBufferFromGRPC.h +++ b/src/Server/WriteBufferFromGRPC.h @@ -2,26 +2,45 @@ #include #include -#include "GrpcConnection.grpc.pb.h" +#include #include - -using GRPCConnection::QueryRequest; -using GRPCConnection::QueryResponse; -using GRPCConnection::GRPC; +#include "clickhouse_grpc.grpc.pb.h" namespace DB { - class WriteBufferFromGRPC : public BufferWithOwnMemory { -protected: +public: + using QueryRequest = GRPCConnection::QueryRequest; + using QueryResponse = GRPCConnection::QueryResponse; - grpc::ServerAsyncReaderWriter* responder; - void* tag; + WriteBufferFromGRPC( + grpc::ServerAsyncReaderWriter * responder_, + void * tag_, + std::function set_response_details_) + : responder(responder_), tag(tag_), set_response_details(set_response_details_) + { + } + + ~WriteBufferFromGRPC() override {} + bool onProgress() { return progress; } + bool isFinished() { return finished; } + void setFinish(bool fl) { finished = fl; } + void setResponse(std::function function) { set_response_details = function; } + void finalize() override + { + progress = false; + finished = true; + responder->Finish(grpc::Status(), tag); + } + +protected: + grpc::ServerAsyncReaderWriter * responder; + void * tag; bool progress = false; bool finished = false; - std::function setResposeDetails; + std::function set_response_details; void nextImpl() override @@ -29,38 +48,8 @@ protected: progress = true; String buffer(working_buffer.begin(), working_buffer.begin() + offset()); - auto response = setResposeDetails(buffer); + auto response = set_response_details(buffer); responder->Write(response, tag); } - -public: - WriteBufferFromGRPC(grpc::ServerAsyncReaderWriter* responder_, void* tag_, std::function setResposeDetails_) - : responder(responder_), tag(tag_), setResposeDetails(setResposeDetails_) - {} - - ~WriteBufferFromGRPC() override {} - bool onProgress() - { - return progress; - } - bool isFinished() - { - return finished; - } - void setFinish(bool fl) - { - finished = fl; - } - void setResponse(std::function function) - { - setResposeDetails = function; - } - void finalize() override - { - progress = false; - finished = true; - responder->Finish(grpc::Status(), tag); - } }; - -} \ No newline at end of file +} diff --git a/src/Server/grpc_protos/CMakeLists.txt b/src/Server/grpc_protos/CMakeLists.txt new file mode 100644 index 00000000000..584cf015a65 --- /dev/null +++ b/src/Server/grpc_protos/CMakeLists.txt @@ -0,0 +1,11 @@ +PROTOBUF_GENERATE_GRPC_CPP(clickhouse_grpc_proto_sources clickhouse_grpc_proto_headers clickhouse_grpc.proto) + +# Ignore warnings while compiling protobuf-generated *.pb.h and *.pb.cpp files. +set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w") + +# Disable clang-tidy for protobuf-generated *.pb.h and *.pb.cpp files. +set (CMAKE_CXX_CLANG_TIDY "") + +add_library(clickhouse_grpc_protos ${clickhouse_grpc_proto_headers} ${clickhouse_grpc_proto_sources}) +target_include_directories(clickhouse_grpc_protos SYSTEM PUBLIC ${gRPC_INCLUDE_DIRS} ${Protobuf_INCLUDE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) +target_link_libraries (clickhouse_grpc_protos PUBLIC ${gRPC_LIBRARIES}) diff --git a/src/Server/grpc_protos/clickhouse_grpc.proto b/src/Server/grpc_protos/clickhouse_grpc.proto index 8c8c510d90b..83b82c933b2 100644 --- a/src/Server/grpc_protos/clickhouse_grpc.proto +++ b/src/Server/grpc_protos/clickhouse_grpc.proto @@ -40,4 +40,4 @@ message QueryResponse { service GRPC { rpc Query(stream QueryRequest) returns (stream QueryResponse) {} -} \ No newline at end of file +} diff --git a/src/Server/grpc_protos/grpc_protos.cmake b/src/Server/grpc_protos/grpc_protos.cmake deleted file mode 100644 index 8aef0fe0305..00000000000 --- a/src/Server/grpc_protos/grpc_protos.cmake +++ /dev/null @@ -1,7 +0,0 @@ -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/etcd_protos) -get_filename_component(rpc_proto "${CMAKE_CURRENT_SOURCE_DIR}/grpc_protos/GrpcConnection.proto" ABSOLUTE) - -include_directories(${Protobuf_INCLUDE_DIRS}) -include_directories(${CMAKE_CURRENT_BINARY_DIR}) -protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS ${rpc_proto}) -PROTOBUF_GENERATE_GRPC_CPP(GRPC_SRCS GRPC_HDRS ${rpc_proto}) \ No newline at end of file diff --git a/src/Server/ya.make b/src/Server/ya.make index 586951f20cf..335bc8c4a2a 100644 --- a/src/Server/ya.make +++ b/src/Server/ya.make @@ -10,6 +10,7 @@ PEERDIR( SRCS( + GRPCServer.cpp HTTPHandler.cpp HTTPHandlerFactory.cpp InterserverIOHTTPHandler.cpp From 8e6c68f4f7ab2ff92a855d061be419b7aace8905 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Thu, 12 Nov 2020 17:49:12 +0300 Subject: [PATCH 262/425] Fix unbundled build. --- docker/packager/unbundled/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/packager/unbundled/Dockerfile b/docker/packager/unbundled/Dockerfile index 261edf1a86c..2f501f76e68 100644 --- a/docker/packager/unbundled/Dockerfile +++ b/docker/packager/unbundled/Dockerfile @@ -56,6 +56,7 @@ RUN apt-get update \ libprotoc-dev \ libgrpc++-dev \ protobuf-compiler-grpc \ + libc-ares-dev \ rapidjson-dev \ libsnappy-dev \ libparquet-dev \ From db9f762e73a855f2310c08ee39585f6681342bfb Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sun, 11 Oct 2020 05:19:16 +0300 Subject: [PATCH 263/425] Fix tests. --- tests/integration/runner | 15 ++ .../integration/test_grpc_protocol/.gitignore | 1 + .../test_grpc_protocol/__init__.py | 0 .../test_grpc_protocol/configs/config.xml | 20 --- .../test_grpc_protocol/configs/grpc_port.xml | 3 + .../test_grpc_protocol/configs/users.xml | 23 --- tests/integration/test_grpc_protocol/test.py | 152 +++++++++--------- 7 files changed, 95 insertions(+), 119 deletions(-) create mode 100644 tests/integration/test_grpc_protocol/.gitignore create mode 100644 tests/integration/test_grpc_protocol/__init__.py delete mode 100644 tests/integration/test_grpc_protocol/configs/config.xml create mode 100644 tests/integration/test_grpc_protocol/configs/grpc_port.xml delete mode 100644 tests/integration/test_grpc_protocol/configs/users.xml diff --git a/tests/integration/runner b/tests/integration/runner index dbcb6f21732..6dca7663310 100755 --- a/tests/integration/runner +++ b/tests/integration/runner @@ -16,6 +16,7 @@ CONTAINER_NAME = "clickhouse_integration_tests" CONFIG_DIR_IN_REPO = "programs/server" INTERGATION_DIR_IN_REPO = "tests/integration" +SRC_DIR_IN_REPO = "src" DIND_INTEGRATION_TESTS_IMAGE_NAME = "yandex/clickhouse-integration-tests-runner" @@ -51,6 +52,13 @@ def check_args_and_update_paths(args): args.cases_dir = os.path.abspath(os.path.join(CLICKHOUSE_ROOT, INTERGATION_DIR_IN_REPO)) logging.info("Cases dir is not set. Will use {}".format(args.cases_dir)) + if args.src_dir: + if not os.path.isabs(args.src_dir): + args.src_dir = os.path.abspath(os.path.join(CURRENT_WORK_DIR, args.src_dir)) + else: + args.src_dir = os.path.abspath(os.path.join(CLICKHOUSE_ROOT, SRC_DIR_IN_REPO)) + logging.info("src dir is not set. Will use {}".format(args.src_dir)) + logging.info("base_configs_dir: {}, binary: {}, cases_dir: {} ".format(args.base_configs_dir, args.binary, args.cases_dir)) for path in [args.binary, args.bridge_binary, args.base_configs_dir, args.cases_dir, CLICKHOUSE_ROOT]: @@ -104,6 +112,11 @@ if __name__ == "__main__": default=os.environ.get("CLICKHOUSE_TESTS_INTEGRATION_PATH"), help="Path to integration tests cases and configs directory. For example tests/integration in repository") + parser.add_argument( + "--src-dir", + default=os.environ.get("CLICKHOUSE_SRC_DIR"), + help="Path to the 'src' directory in repository. Used to provide schemas (e.g. *.proto) for some tests when those schemas are located in the 'src' directory") + parser.add_argument( "--clickhouse-root", help="Path to repository root folder. Used to take configuration from repository default paths.") @@ -174,6 +187,7 @@ if __name__ == "__main__": cmd = "docker run {net} {tty} --rm --name {name} --privileged --volume={bridge_bin}:/clickhouse-odbc-bridge --volume={bin}:/clickhouse \ --volume={base_cfg}:/clickhouse-config --volume={cases_dir}:/ClickHouse/tests/integration \ + --volume={src_dir}/Server/grpc_protos:/ClickHouse/src/Server/grpc_protos \ --volume={name}_volume:/var/lib/docker {env_tags} -e PYTEST_OPTS='{opts}' {img} {command}".format( net=net, tty=tty, @@ -181,6 +195,7 @@ if __name__ == "__main__": bridge_bin=args.bridge_binary, base_cfg=args.base_configs_dir, cases_dir=args.cases_dir, + src_dir=args.src_dir, env_tags=env_tags, opts=' '.join(args.pytest_args), img=DIND_INTEGRATION_TESTS_IMAGE_NAME + ":" + args.docker_image_version, diff --git a/tests/integration/test_grpc_protocol/.gitignore b/tests/integration/test_grpc_protocol/.gitignore new file mode 100644 index 00000000000..edf565ec632 --- /dev/null +++ b/tests/integration/test_grpc_protocol/.gitignore @@ -0,0 +1 @@ +_gen diff --git a/tests/integration/test_grpc_protocol/__init__.py b/tests/integration/test_grpc_protocol/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/integration/test_grpc_protocol/configs/config.xml b/tests/integration/test_grpc_protocol/configs/config.xml deleted file mode 100644 index 4990adb1119..00000000000 --- a/tests/integration/test_grpc_protocol/configs/config.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - trace - /var/log/clickhouse-server/clickhouse-server.log - /var/log/clickhouse-server/clickhouse-server.err.log - 1000M - 10 - - - 9000 - 9001 - 127.0.0.1 - - 500 - 5368709120 - ./clickhouse/ - users.xml - - diff --git a/tests/integration/test_grpc_protocol/configs/grpc_port.xml b/tests/integration/test_grpc_protocol/configs/grpc_port.xml new file mode 100644 index 00000000000..31b6229a3c6 --- /dev/null +++ b/tests/integration/test_grpc_protocol/configs/grpc_port.xml @@ -0,0 +1,3 @@ + + 9001 + diff --git a/tests/integration/test_grpc_protocol/configs/users.xml b/tests/integration/test_grpc_protocol/configs/users.xml deleted file mode 100644 index 2be13dca499..00000000000 --- a/tests/integration/test_grpc_protocol/configs/users.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - 123 - - ::/0 - - default - default - - - - - - - - diff --git a/tests/integration/test_grpc_protocol/test.py b/tests/integration/test_grpc_protocol/test.py index bf71d79aaa6..70be71c6b9e 100644 --- a/tests/integration/test_grpc_protocol/test.py +++ b/tests/integration/test_grpc_protocol/test.py @@ -1,92 +1,92 @@ -# coding: utf-8 -# proto file should be the same, as in server GRPC import os import pytest import subprocess +import sys import grpc -from docker.models.containers import Container - from helpers.cluster import ClickHouseCluster SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) + +# Use grpcio-tools to generate *pb2.py files from *.proto. proto_dir = os.path.join(SCRIPT_DIR, './protos') -try: - subprocess.check_call( - 'python -m grpc_tools.protoc -I{proto_path} --python_out=. --grpc_python_out=. \ - {proto_path}/GrpcConnection.proto'.format(proto_path=proto_dir), shell=True) -except subprocess.CalledProcessError, e: - print "Please, copy proto file, can be programs/server/grpc_proto/GrpcConnection.proto" - assert False -finally: - import GrpcConnection_pb2 - import GrpcConnection_pb2_grpc +proto_gen_dir = os.path.join(SCRIPT_DIR, './_gen') +os.makedirs(proto_gen_dir, exist_ok=True) +subprocess.check_call( + 'python3 -m grpc_tools.protoc -I{proto_dir} --python_out={proto_gen_dir} --grpc_python_out={proto_gen_dir} \ + {proto_dir}/clickhouse_grpc.proto'.format(proto_dir=proto_dir, proto_gen_dir=proto_gen_dir), shell=True) - config_dir = os.path.join(SCRIPT_DIR, './configs') - cluster = ClickHouseCluster(__file__) +# Import everything from the generated *pb2.py files. +sys.path.append(proto_gen_dir) +import clickhouse_grpc_pb2 +import clickhouse_grpc_pb2_grpc - node = cluster.add_instance('node', config_dir=config_dir, env_variables={'UBSAN_OPTIONS': 'print_stacktrace=1'}) - server_port = 9001 +config_dir = os.path.join(SCRIPT_DIR, './configs') +cluster = ClickHouseCluster(__file__) +node = cluster.add_instance('node', main_configs=['configs/grpc_port.xml']) +server_port = 9001 - @pytest.fixture(scope="module") - def server_address(): - cluster.start() - try: - yield cluster.get_instance_ip('node') - finally: - cluster.shutdown() - def Query(server_address_and_port, query, mode="output", insert_data=[]): - output = [] - totals = [] - data_stream = (len(insert_data) != 0) - with grpc.insecure_channel(server_address_and_port) as channel: - stub = GrpcConnection_pb2_grpc.GRPCStub(channel) - def write_query(): - user_info = GrpcConnection_pb2.User(user="default", password='123', quota='default') - query_info = GrpcConnection_pb2.QuerySettings(query=query, query_id='123', data_stream=data_stream, format='TabSeparated') - yield GrpcConnection_pb2.QueryRequest(user_info=user_info, query_info=query_info) - if data_stream: - for data in insert_data: - yield GrpcConnection_pb2.QueryRequest(insert_data=data) - yield GrpcConnection_pb2.QueryRequest(insert_data="") - for response in stub.Query(write_query(), 10.0): - output += response.output.split() - totals += response.totals.split() - if mode == "output": - return output - elif mode == "totals": - return totals +@pytest.fixture(scope="module") +def server_address(): + cluster.start() + try: + yield cluster.get_instance_ip('node') + finally: + cluster.shutdown() - def test_ordinary_query(server_address): - server_address_and_port = server_address + ':' + str(server_port) - assert Query(server_address_and_port, "SELECT 1") == [u'1'] - assert Query(server_address_and_port, "SELECT count() FROM numbers(100)") == [u'100'] +def Query(server_address_and_port, query, mode="output", insert_data=[]): + output = [] + totals = [] + data_stream = (len(insert_data) != 0) + with grpc.insecure_channel(server_address_and_port) as channel: + grpc.channel_ready_future(channel).result() + stub = clickhouse_grpc_pb2_grpc.GRPCStub(channel) + def write_query(): + user_info = clickhouse_grpc_pb2.User(user="default", quota='default') + query_info = clickhouse_grpc_pb2.QuerySettings(query=query, query_id='123', data_stream=data_stream, format='TabSeparated') + yield clickhouse_grpc_pb2.QueryRequest(user_info=user_info, query_info=query_info) + if data_stream: + for data in insert_data: + yield clickhouse_grpc_pb2.QueryRequest(insert_data=data) + yield clickhouse_grpc_pb2.QueryRequest(insert_data="") + for response in stub.Query(write_query(), 10.0): + output += response.output.split() + totals += response.totals.split() + if mode == "output": + return output + elif mode == "totals": + return totals - def test_query_insert(server_address): - server_address_and_port = server_address + ':' + str(server_port) - assert Query(server_address_and_port, "CREATE TABLE t (a UInt8) ENGINE = Memory") == [] - assert Query(server_address_and_port, "INSERT INTO t VALUES (1),(2),(3)") == [] - assert Query(server_address_and_port, "INSERT INTO t FORMAT TabSeparated 4\n5\n6\n") == [] - assert Query(server_address_and_port, "INSERT INTO t FORMAT TabSeparated 10\n11\n12\n") == [] - assert Query(server_address_and_port, "SELECT a FROM t ORDER BY a") == [u'1', u'2', u'3', u'4', u'5', u'6', u'10', u'11', u'12'] - assert Query(server_address_and_port, "DROP TABLE t") == [] +def test_ordinary_query(server_address): + server_address_and_port = server_address + ':' + str(server_port) + assert Query(server_address_and_port, "SELECT 1") == [u'1'] + assert Query(server_address_and_port, "SELECT count() FROM numbers(100)") == [u'100'] - def test_handle_mistakes(server_address): - server_address_and_port = server_address + ':' + str(server_port) - assert Query(server_address_and_port, "") == [] - assert Query(server_address_and_port, "CREATE TABLE t (a UInt8) ENGINE = Memory") == [] - assert Query(server_address_and_port, "CREATE TABLE t (a UInt8) ENGINE = Memory") == [] +def test_query_insert(server_address): + server_address_and_port = server_address + ':' + str(server_port) + assert Query(server_address_and_port, "CREATE TABLE t (a UInt8) ENGINE = Memory") == [] + assert Query(server_address_and_port, "INSERT INTO t VALUES (1),(2),(3)") == [] + assert Query(server_address_and_port, "INSERT INTO t FORMAT TabSeparated 4\n5\n6\n") == [] + assert Query(server_address_and_port, "INSERT INTO t FORMAT TabSeparated 10\n11\n12\n") == [] + assert Query(server_address_and_port, "SELECT a FROM t ORDER BY a") == [u'1', u'2', u'3', u'4', u'5', u'6', u'10', u'11', u'12'] + assert Query(server_address_and_port, "DROP TABLE t") == [] - def test_totals(server_address): - server_address_and_port = server_address + ':' + str(server_port) - assert Query(server_address_and_port, "") == [] - assert Query(server_address_and_port, "CREATE TABLE tabl (x UInt8, y UInt8) ENGINE = Memory;") == [] - assert Query(server_address_and_port, "INSERT INTO tabl VALUES (1, 2), (2, 4), (3, 2), (3, 3), (3, 4);") == [] - assert Query(server_address_and_port, "SELECT sum(x), y FROM tabl GROUP BY y WITH TOTALS") == [u'4', u'2', u'3', u'3', u'5', u'4'] - assert Query(server_address_and_port, "SELECT sum(x), y FROM tabl GROUP BY y WITH TOTALS", mode="totals") == [u'12', u'0'] +def test_handle_mistakes(server_address): + server_address_and_port = server_address + ':' + str(server_port) + assert Query(server_address_and_port, "") == [] + assert Query(server_address_and_port, "CREATE TABLE t (a UInt8) ENGINE = Memory") == [] + assert Query(server_address_and_port, "CREATE TABLE t (a UInt8) ENGINE = Memory") == [] - def test_query_insert(server_address): - server_address_and_port = server_address + ':' + str(server_port) - assert Query(server_address_and_port, "CREATE TABLE t (a UInt8) ENGINE = Memory") == [] - assert Query(server_address_and_port, "INSERT INTO t VALUES", insert_data=["(1),(2),(3)", "(5),(4),(6)", "(8),(7),(9)"]) == [] - assert Query(server_address_and_port, "SELECT a FROM t ORDER BY a") == [u'1', u'2', u'3', u'4', u'5', u'6', u'7', u'8', u'9'] - assert Query(server_address_and_port, "DROP TABLE t") == [] +def test_totals(server_address): + server_address_and_port = server_address + ':' + str(server_port) + assert Query(server_address_and_port, "") == [] + assert Query(server_address_and_port, "CREATE TABLE tabl (x UInt8, y UInt8) ENGINE = Memory;") == [] + assert Query(server_address_and_port, "INSERT INTO tabl VALUES (1, 2), (2, 4), (3, 2), (3, 3), (3, 4);") == [] + assert Query(server_address_and_port, "SELECT sum(x), y FROM tabl GROUP BY y WITH TOTALS") == [u'4', u'2', u'3', u'3', u'5', u'4'] + assert Query(server_address_and_port, "SELECT sum(x), y FROM tabl GROUP BY y WITH TOTALS", mode="totals") == [u'12', u'0'] + +def test_query_insert(server_address): + server_address_and_port = server_address + ':' + str(server_port) + assert Query(server_address_and_port, "CREATE TABLE t (a UInt8) ENGINE = Memory") == [] + assert Query(server_address_and_port, "INSERT INTO t VALUES", insert_data=["(1),(2),(3)", "(5),(4),(6)", "(8),(7),(9)"]) == [] + assert Query(server_address_and_port, "SELECT a FROM t ORDER BY a") == [u'1', u'2', u'3', u'4', u'5', u'6', u'7', u'8', u'9'] + assert Query(server_address_and_port, "DROP TABLE t") == [] From 93459d854b467d3afa1c10a5a61ae5902f41fc25 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Wed, 4 Nov 2020 22:16:14 +0300 Subject: [PATCH 264/425] Fix WriteBufferFromVector: restart() now resize empty container to initial_size because WriteBufferFromVector can't operate with empty container. --- src/IO/WriteBufferFromVector.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/IO/WriteBufferFromVector.h b/src/IO/WriteBufferFromVector.h index 54f43b6b591..ad0f8bd17a8 100644 --- a/src/IO/WriteBufferFromVector.h +++ b/src/IO/WriteBufferFromVector.h @@ -85,6 +85,8 @@ public: void restart() { + if (vector.empty()) + vector.resize(initial_size); set(reinterpret_cast(vector.data()), vector.size()); is_finished = false; } From 3856ae1a5e78cd3aba90089077ff4f50781fbfb7 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Mon, 9 Nov 2020 14:45:25 +0300 Subject: [PATCH 265/425] Fix PVS Error "Unable to start the analysis on this file" for files which include protobuf-generates files. --- docker/test/pvs/Dockerfile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docker/test/pvs/Dockerfile b/docker/test/pvs/Dockerfile index 0aedb67e572..382b486dda3 100644 --- a/docker/test/pvs/Dockerfile +++ b/docker/test/pvs/Dockerfile @@ -10,6 +10,11 @@ RUN apt-get update --yes \ gpg-agent \ debsig-verify \ strace \ + protobuf-compiler \ + protobuf-compiler-grpc \ + libprotoc-dev \ + libgrpc++-dev \ + libc-ares-dev \ --yes --no-install-recommends #RUN wget -nv -O - http://files.viva64.com/etc/pubkey.txt | sudo apt-key add - @@ -33,7 +38,8 @@ RUN set -x \ && dpkg -i "${PKG_VERSION}.deb" CMD echo "Running PVS version $PKG_VERSION" && cd /repo_folder && pvs-studio-analyzer credentials $LICENCE_NAME $LICENCE_KEY -o ./licence.lic \ - && cmake . -D"ENABLE_EMBEDDED_COMPILER"=OFF && ninja re2_st \ + && cmake . -D"ENABLE_EMBEDDED_COMPILER"=OFF -D"USE_INTERNAL_PROTOBUF_LIBRARY"=OFF -D"USE_INTERNAL_GRPC_LIBRARY"=OFF \ + && ninja re2_st clickhouse_grpc_protos \ && pvs-studio-analyzer analyze -o pvs-studio.log -e contrib -j 4 -l ./licence.lic; \ plog-converter -a GA:1,2 -t fullhtml -o /test_output/pvs-studio-html-report pvs-studio.log; \ plog-converter -a GA:1,2 -t tasklist -o /test_output/pvs-studio-task-report.txt pvs-studio.log From a327f24e3c1acc14843d59a80339305605b92e1a Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Mon, 5 Oct 2020 23:33:34 +0300 Subject: [PATCH 266/425] Refine the protocol. Code cleanup in tests. --- src/Server/GRPCServer.cpp | 104 +++++------ src/Server/GRPCServer.h | 4 +- src/Server/WriteBufferFromGRPC.h | 14 +- src/Server/grpc_protos/clickhouse_grpc.proto | 48 +++-- tests/integration/test_grpc_protocol/test.py | 175 ++++++++++++------- 5 files changed, 196 insertions(+), 149 deletions(-) diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index e83a489c30d..46232c8565f 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -20,10 +20,11 @@ #include #include -using GRPCConnection::QueryRequest; -using GRPCConnection::QueryResponse; -using GRPCConnection::GRPC; - +using GRPCService = clickhouse::grpc::ClickHouse::AsyncService; +using GRPCQueryInfo = clickhouse::grpc::QueryInfo; +using GRPCResult = clickhouse::grpc::Result; +using GRPCException = clickhouse::grpc::Exception; +using GRPCProgress = clickhouse::grpc::Progress; namespace DB { @@ -39,7 +40,7 @@ namespace class CommonCallData { public: - GRPC::AsyncService * grpc_service; + GRPCService * grpc_service; grpc::ServerCompletionQueue * notification_cq; grpc::ServerCompletionQueue * new_call_cq; grpc::ServerContext grpc_context; @@ -49,7 +50,7 @@ namespace std::unique_ptr next_client; explicit CommonCallData( - GRPC::AsyncService * grpc_service_, + GRPCService * grpc_service_, grpc::ServerCompletionQueue * notification_cq_, grpc::ServerCompletionQueue * new_call_cq_, IServer * iserver_, @@ -65,7 +66,7 @@ namespace { public: CallDataQuery( - GRPC::AsyncService * grpc_service_, + GRPCService * grpc_service_, grpc::ServerCompletionQueue * notification_cq_, grpc::ServerCompletionQueue * new_call_cq_, IServer * iserver_, @@ -75,7 +76,7 @@ namespace details_status = SEND_TOTALS; status = START_QUERY; out = std::make_shared(&responder, static_cast(this), nullptr); - grpc_service->RequestQuery(&grpc_context, &responder, new_call_cq, notification_cq, this); + grpc_service->RequestExecuteQuery(&grpc_context, &responder, new_call_cq, notification_cq, this); } void parseQuery(); void parseData(); @@ -116,9 +117,9 @@ namespace } private: - QueryRequest request; - QueryResponse response; - grpc::ServerAsyncReaderWriter responder; + GRPCQueryInfo request; + GRPCResult response; + grpc::ServerAsyncReaderWriter responder; Stopwatch progress_watch; Stopwatch query_watch; @@ -180,9 +181,9 @@ namespace io.onException(); tryLogCurrentException(log); - std::string exception_message = getCurrentExceptionMessage(with_stacktrace, true); - //int exception_code = getCurrentExceptionCode(); //? - response.set_exception_occured(exception_message); + auto & grpc_exception = *response.mutable_exception(); + grpc_exception.set_code(getCurrentExceptionCode()); + grpc_exception.set_message(getCurrentExceptionMessage(with_stacktrace, true)); status = FINISH_QUERY; responder.WriteAndFinish(response, grpc::WriteOptions(), grpc::Status(), static_cast(this)); } @@ -193,52 +194,51 @@ namespace LOG_TRACE(log, "Process query"); Poco::Net::SocketAddress user_adress(parseGRPCPeer(grpc_context)); - LOG_TRACE(log, "Request: {}", request.query_info().query()); + LOG_TRACE(log, "Request: {}", request.query()); - std::string user = request.user_info().user(); - std::string password = request.user_info().password(); - std::string quota_key = request.user_info().quota(); - interactive_delay = request.interactive_delay(); + std::string user = request.user_name(); + std::string password = request.password(); + std::string quota_key = request.quota(); format_output = "Values"; if (user.empty()) { user = "default"; password = ""; } - if (interactive_delay == 0) - interactive_delay = INT_MAX; context.setProgressCallback([this](const Progress & value) { return progress.incrementPiecewiseAtomically(value); }); query_context = context; query_scope.emplace(*query_context); query_context->setUser(user, password, user_adress); - query_context->setCurrentQueryId(request.query_info().query_id()); + query_context->setCurrentQueryId(request.query_id()); if (!quota_key.empty()) query_context->setQuotaKey(quota_key); - if (!request.query_info().format().empty()) + if (!request.output_format().empty()) { - format_output = request.query_info().format(); - query_context->setDefaultFormat(request.query_info().format()); + format_output = request.output_format(); + query_context->setDefaultFormat(request.output_format()); } - if (!request.query_info().database().empty()) + if (!request.database().empty()) { - if (!DatabaseCatalog::instance().isDatabaseExist(request.query_info().database())) + if (!DatabaseCatalog::instance().isDatabaseExist(request.database())) { - Exception e("Database " + request.query_info().database() + " doesn't exist", ErrorCodes::UNKNOWN_DATABASE); + Exception e("Database " + request.database() + " doesn't exist", ErrorCodes::UNKNOWN_DATABASE); } - query_context->setCurrentDatabase(request.query_info().database()); + query_context->setCurrentDatabase(request.database()); } SettingsChanges settings_changes; - for (const auto & [key, value] : request.query_info().settings()) + for (const auto & [key, value] : request.settings()) { settings_changes.push_back({key, value}); } query_context->checkSettingsConstraints(settings_changes); query_context->applySettingsChanges(settings_changes); + interactive_delay = query_context->getSettingsRef().interactive_delay; + ClientInfo & client_info = query_context->getClientInfo(); client_info.query_kind = ClientInfo::QueryKind::INITIAL_QUERY; client_info.interface = ClientInfo::Interface::GRPC; @@ -251,8 +251,8 @@ namespace void CallDataQuery::parseData() { LOG_TRACE(log, "ParseData"); - const char * begin = request.query_info().query().data(); - const char * end = begin + request.query_info().query().size(); + const char * begin = request.query().data(); + const char * end = begin + request.query().size(); const Settings & settings = query_context->getSettingsRef(); ParserQuery parser(end); @@ -269,7 +269,7 @@ namespace io = ::DB::executeQuery(query, *query_context, false, QueryProcessingStage::Complete, true, true); if (io.out) { - if (!insert_query || !(insert_query->data || request.query_info().data_stream() || !request.insert_data().empty())) + if (!insert_query || !(insert_query->data || !request.input_data().empty() || request.next_query_info())) { Exception e("Logical error: query requires data to insert, but it is not INSERT query", ErrorCodes::NO_DATA_TO_INSERT); } @@ -289,9 +289,9 @@ namespace buffers.push_back(data_in_query.get()); } - if (!request.insert_data().empty()) + if (!request.input_data().empty()) { - data_in_insert_data = std::make_shared(request.insert_data().data(), request.insert_data().size()); + data_in_insert_data = std::make_shared(request.input_data().data(), request.input_data().size()); buffers.push_back(data_in_insert_data.get()); } auto input_buffer_contacenated = std::make_unique(buffers); @@ -309,7 +309,7 @@ namespace io.out->writePrefix(); while (auto block = res_stream->read()) io.out->write(block); - if (request.query_info().data_stream()) + if (request.next_query_info()) { status = READ_DATA; responder.Read(&request, static_cast(this)); @@ -323,23 +323,27 @@ namespace void CallDataQuery::readData() { - if (request.insert_data().empty()) + if (!request.input_data().empty()) { - io.out->writeSuffix(); - executeQuery(); - } - else - { - const char * begin = request.insert_data().data(); - const char * end = begin + request.insert_data().size(); + const char * begin = request.input_data().data(); + const char * end = begin + request.input_data().size(); ReadBufferFromMemory data_in(begin, end - begin); auto res_stream = query_context->getInputFormat( format_input, data_in, io.out->getHeader(), query_context->getSettings().max_insert_block_size); while (auto block = res_stream->read()) io.out->write(block); + } + + if (request.next_query_info()) + { responder.Read(&request, static_cast(this)); } + else + { + io.out->writeSuffix(); + executeQuery(); + } } void CallDataQuery::executeQuery() @@ -426,7 +430,7 @@ namespace { out->setResponse([](const String & buffer) { - QueryResponse tmp_response; + GRPCResult tmp_response; tmp_response.set_output(buffer); return tmp_response; }); @@ -444,7 +448,7 @@ namespace auto in = std::make_unique(buffer); ProgressValues progress_values; progress_values.read(*in, DBMS_MIN_REVISION_WITH_CLIENT_WRITE_INFO); - GRPCConnection::Progress tmp_progress; + GRPCProgress tmp_progress; tmp_progress.set_read_rows(progress_values.read_rows); tmp_progress.set_read_bytes(progress_values.read_bytes); tmp_progress.set_total_rows_to_read(progress_values.total_rows_to_read); @@ -455,8 +459,8 @@ namespace out->setResponse([&grpc_progress](const String & buffer) { - QueryResponse tmp_response; - auto tmp_progress = std::make_unique(grpc_progress(buffer)); + GRPCResult tmp_response; + auto tmp_progress = std::make_unique(grpc_progress(buffer)); tmp_response.set_allocated_progress(tmp_progress.release()); return tmp_response; }); @@ -472,7 +476,7 @@ namespace { out->setResponse([](const String & buffer) { - QueryResponse tmp_response; + GRPCResult tmp_response; tmp_response.set_totals(buffer); return tmp_response; }); @@ -491,7 +495,7 @@ namespace { out->setResponse([](const String & buffer) { - QueryResponse tmp_response; + GRPCResult tmp_response; tmp_response.set_extremes(buffer); return tmp_response; }); diff --git a/src/Server/GRPCServer.h b/src/Server/GRPCServer.h index 3c943a28d99..aa8aa4f3f52 100644 --- a/src/Server/GRPCServer.h +++ b/src/Server/GRPCServer.h @@ -33,12 +33,12 @@ public: void HandleRpcs(); private: - using GRPC = GRPCConnection::GRPC; + using GRPCService = clickhouse::grpc::ClickHouse::AsyncService; IServer & iserver; Poco::Logger * log; std::unique_ptr notification_cq; std::unique_ptr new_call_cq; - GRPC::AsyncService grpc_service; + GRPCService grpc_service; std::unique_ptr grpc_server; std::string address_to_listen; }; diff --git a/src/Server/WriteBufferFromGRPC.h b/src/Server/WriteBufferFromGRPC.h index 3a5d78b04e0..ef9bcdae720 100644 --- a/src/Server/WriteBufferFromGRPC.h +++ b/src/Server/WriteBufferFromGRPC.h @@ -11,13 +11,13 @@ namespace DB class WriteBufferFromGRPC : public BufferWithOwnMemory { public: - using QueryRequest = GRPCConnection::QueryRequest; - using QueryResponse = GRPCConnection::QueryResponse; + using GRPCQueryInfo = clickhouse::grpc::QueryInfo; + using GRPCResult = clickhouse::grpc::Result; WriteBufferFromGRPC( - grpc::ServerAsyncReaderWriter * responder_, + grpc::ServerAsyncReaderWriter * responder_, void * tag_, - std::function set_response_details_) + std::function set_response_details_) : responder(responder_), tag(tag_), set_response_details(set_response_details_) { } @@ -26,7 +26,7 @@ public: bool onProgress() { return progress; } bool isFinished() { return finished; } void setFinish(bool fl) { finished = fl; } - void setResponse(std::function function) { set_response_details = function; } + void setResponse(std::function function) { set_response_details = function; } void finalize() override { progress = false; @@ -35,12 +35,12 @@ public: } protected: - grpc::ServerAsyncReaderWriter * responder; + grpc::ServerAsyncReaderWriter * responder; void * tag; bool progress = false; bool finished = false; - std::function set_response_details; + std::function set_response_details; void nextImpl() override diff --git a/src/Server/grpc_protos/clickhouse_grpc.proto b/src/Server/grpc_protos/clickhouse_grpc.proto index 83b82c933b2..824cf2a892e 100644 --- a/src/Server/grpc_protos/clickhouse_grpc.proto +++ b/src/Server/grpc_protos/clickhouse_grpc.proto @@ -1,25 +1,18 @@ syntax = "proto3"; -package GRPCConnection; +package clickhouse.grpc; -message User { - string user = 1; - string password = 2; - string quota = 3; -} -message QuerySettings { +message QueryInfo { string query = 1; string query_id = 2; - bool data_stream = 4; - string database = 5; - string format = 6; - map settings = 7; -} -message QueryRequest { - User user_info = 1; - QuerySettings query_info = 2; - string insert_data = 3; - uint64 interactive_delay = 4; + map settings = 3; + string database = 4; + string input_data = 5; + string output_format = 6; + string user_name = 7; + string password = 8; + string quota = 9; + bool next_query_info = 10; } message Progress { @@ -30,14 +23,19 @@ message Progress { uint64 written_bytes = 5; } -message QueryResponse { - string output = 1; - string exception_occured = 2; - Progress progress = 3; - string totals = 4; - string extremes = 5; +message Exception { + int32 code = 1; + string message = 2; } -service GRPC { - rpc Query(stream QueryRequest) returns (stream QueryResponse) {} +message Result { + string output = 1; + string totals = 2; + string extremes = 3; + Progress progress = 4; + Exception exception = 5; +} + +service ClickHouse { + rpc ExecuteQuery(stream QueryInfo) returns (stream Result) {} } diff --git a/tests/integration/test_grpc_protocol/test.py b/tests/integration/test_grpc_protocol/test.py index 70be71c6b9e..12bb73722c0 100644 --- a/tests/integration/test_grpc_protocol/test.py +++ b/tests/integration/test_grpc_protocol/test.py @@ -7,86 +7,131 @@ from helpers.cluster import ClickHouseCluster SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) -# Use grpcio-tools to generate *pb2.py files from *.proto. -proto_dir = os.path.join(SCRIPT_DIR, './protos') -proto_gen_dir = os.path.join(SCRIPT_DIR, './_gen') -os.makedirs(proto_gen_dir, exist_ok=True) -subprocess.check_call( - 'python3 -m grpc_tools.protoc -I{proto_dir} --python_out={proto_gen_dir} --grpc_python_out={proto_gen_dir} \ - {proto_dir}/clickhouse_grpc.proto'.format(proto_dir=proto_dir, proto_gen_dir=proto_gen_dir), shell=True) -# Import everything from the generated *pb2.py files. -sys.path.append(proto_gen_dir) +# Use grpcio-tools to generate *pb2.py files from *.proto. + +proto_dir = os.path.join(SCRIPT_DIR, './protos') +gen_dir = os.path.join(SCRIPT_DIR, './_gen') +os.makedirs(gen_dir, exist_ok=True) +subprocess.check_call( + 'python3 -m grpc_tools.protoc -I{proto_dir} --python_out={gen_dir} --grpc_python_out={gen_dir} \ + {proto_dir}/clickhouse_grpc.proto'.format(proto_dir=proto_dir, gen_dir=gen_dir), shell=True) + +sys.path.append(gen_dir) import clickhouse_grpc_pb2 import clickhouse_grpc_pb2_grpc + +# Utilities + config_dir = os.path.join(SCRIPT_DIR, './configs') cluster = ClickHouseCluster(__file__) node = cluster.add_instance('node', main_configs=['configs/grpc_port.xml']) -server_port = 9001 +grpc_port = 9001 +main_channel = None -@pytest.fixture(scope="module") -def server_address(): +def create_channel(): + node_ip_with_grpc_port = cluster.get_instance_ip('node') + ':' + str(grpc_port) + channel = grpc.insecure_channel(node_ip_with_grpc_port) + grpc.channel_ready_future(channel).result(timeout=10) + global main_channel + if not main_channel: + main_channel = channel + return channel + +def query_common(query_text, settings={}, input_data=[], output_format='TabSeparated', query_id='123', channel=None): + if type(input_data) == str: + input_data = [input_data] + if not channel: + channel = main_channel + stub = clickhouse_grpc_pb2_grpc.ClickHouseStub(channel) + def send_query_info(): + input_data_part = input_data.pop(0) if input_data else '' + yield clickhouse_grpc_pb2.QueryInfo(query=query_text, settings=settings, input_data=input_data_part, output_format=output_format, + query_id=query_id, next_query_info=bool(input_data)) + while input_data: + input_data_part = input_data.pop(0) + yield clickhouse_grpc_pb2.QueryInfo(input_data=input_data_part, next_query_info=bool(input_data)) + return list(stub.ExecuteQuery(send_query_info())) + +def query_no_errors(*args, **kwargs): + results = query_common(*args, **kwargs) + if results and results[-1].HasField('exception'): + raise Exception(results[-1].exception.message) + return results + +def query(*args, **kwargs): + output = "" + for result in query_no_errors(*args, **kwargs): + output += result.output + return output + +def query_and_get_error(*args, **kwargs): + results = query_common(*args, **kwargs) + if not results or not results[-1].HasField('exception'): + raise Exception("Expected to be failed but succeeded!") + return results[-1].exception + +def query_and_get_totals(*args, **kwargs): + totals = "" + for result in query_no_errors(*args, **kwargs): + totals += result.totals + return totals + +def query_and_get_extremes(*args, **kwargs): + extremes = "" + for result in query_no_errors(*args, **kwargs): + extremes += result.extremes + return extremes + +@pytest.fixture(scope="module", autouse=True) +def start_cluster(): cluster.start() try: - yield cluster.get_instance_ip('node') + with create_channel() as channel: + yield cluster + finally: cluster.shutdown() -def Query(server_address_and_port, query, mode="output", insert_data=[]): - output = [] - totals = [] - data_stream = (len(insert_data) != 0) - with grpc.insecure_channel(server_address_and_port) as channel: - grpc.channel_ready_future(channel).result() - stub = clickhouse_grpc_pb2_grpc.GRPCStub(channel) - def write_query(): - user_info = clickhouse_grpc_pb2.User(user="default", quota='default') - query_info = clickhouse_grpc_pb2.QuerySettings(query=query, query_id='123', data_stream=data_stream, format='TabSeparated') - yield clickhouse_grpc_pb2.QueryRequest(user_info=user_info, query_info=query_info) - if data_stream: - for data in insert_data: - yield clickhouse_grpc_pb2.QueryRequest(insert_data=data) - yield clickhouse_grpc_pb2.QueryRequest(insert_data="") - for response in stub.Query(write_query(), 10.0): - output += response.output.split() - totals += response.totals.split() - if mode == "output": - return output - elif mode == "totals": - return totals +@pytest.fixture(autouse=True) +def reset_after_test(): + yield + query("DROP TABLE IF EXISTS t") -def test_ordinary_query(server_address): - server_address_and_port = server_address + ':' + str(server_port) - assert Query(server_address_and_port, "SELECT 1") == [u'1'] - assert Query(server_address_and_port, "SELECT count() FROM numbers(100)") == [u'100'] +# Actual tests -def test_query_insert(server_address): - server_address_and_port = server_address + ':' + str(server_port) - assert Query(server_address_and_port, "CREATE TABLE t (a UInt8) ENGINE = Memory") == [] - assert Query(server_address_and_port, "INSERT INTO t VALUES (1),(2),(3)") == [] - assert Query(server_address_and_port, "INSERT INTO t FORMAT TabSeparated 4\n5\n6\n") == [] - assert Query(server_address_and_port, "INSERT INTO t FORMAT TabSeparated 10\n11\n12\n") == [] - assert Query(server_address_and_port, "SELECT a FROM t ORDER BY a") == [u'1', u'2', u'3', u'4', u'5', u'6', u'10', u'11', u'12'] - assert Query(server_address_and_port, "DROP TABLE t") == [] +def test_select_one(): + assert query("SELECT 1") == "1\n" -def test_handle_mistakes(server_address): - server_address_and_port = server_address + ':' + str(server_port) - assert Query(server_address_and_port, "") == [] - assert Query(server_address_and_port, "CREATE TABLE t (a UInt8) ENGINE = Memory") == [] - assert Query(server_address_and_port, "CREATE TABLE t (a UInt8) ENGINE = Memory") == [] +def test_ordinary_query(): + assert query("SELECT count() FROM numbers(100)") == "100\n" -def test_totals(server_address): - server_address_and_port = server_address + ':' + str(server_port) - assert Query(server_address_and_port, "") == [] - assert Query(server_address_and_port, "CREATE TABLE tabl (x UInt8, y UInt8) ENGINE = Memory;") == [] - assert Query(server_address_and_port, "INSERT INTO tabl VALUES (1, 2), (2, 4), (3, 2), (3, 3), (3, 4);") == [] - assert Query(server_address_and_port, "SELECT sum(x), y FROM tabl GROUP BY y WITH TOTALS") == [u'4', u'2', u'3', u'3', u'5', u'4'] - assert Query(server_address_and_port, "SELECT sum(x), y FROM tabl GROUP BY y WITH TOTALS", mode="totals") == [u'12', u'0'] +def test_insert_query(): + query("CREATE TABLE t (a UInt8) ENGINE = Memory") + query("INSERT INTO t VALUES (1),(2),(3)") + query("INSERT INTO t FORMAT TabSeparated 4\n5\n6\n") + query("INSERT INTO t VALUES", input_data="(7),(8)") + query("INSERT INTO t FORMAT TabSeparated", input_data="9\n10\n") + assert query("SELECT a FROM t ORDER BY a") == "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n" -def test_query_insert(server_address): - server_address_and_port = server_address + ':' + str(server_port) - assert Query(server_address_and_port, "CREATE TABLE t (a UInt8) ENGINE = Memory") == [] - assert Query(server_address_and_port, "INSERT INTO t VALUES", insert_data=["(1),(2),(3)", "(5),(4),(6)", "(8),(7),(9)"]) == [] - assert Query(server_address_and_port, "SELECT a FROM t ORDER BY a") == [u'1', u'2', u'3', u'4', u'5', u'6', u'7', u'8', u'9'] - assert Query(server_address_and_port, "DROP TABLE t") == [] +def test_insert_query_streaming(): + query("CREATE TABLE t (a UInt8) ENGINE = Memory") + query("INSERT INTO t VALUES", input_data=["(1),(2),(3)", "(5),(4),(6)", "(8),(7),(9)"]) + assert query("SELECT a FROM t ORDER BY a") == "1\n2\n3\n4\n5\n6\n7\n8\n9\n" + +def test_totals_and_extremes(): + query("CREATE TABLE t (x UInt8, y UInt8) ENGINE = Memory") + query("INSERT INTO t VALUES (1, 2), (2, 4), (3, 2), (3, 3), (3, 4)") + assert query("SELECT sum(x), y FROM t GROUP BY y WITH TOTALS") == "4\t2\n3\t3\n5\t4\n" + assert query_and_get_totals("SELECT sum(x), y FROM t GROUP BY y WITH TOTALS") == "12\t0\n" + assert query("SELECT x, y FROM t") == "1\t2\n2\t4\n3\t2\n3\t3\n3\t4\n" + assert query_and_get_extremes("SELECT x, y FROM t", settings={"extremes": "1"}) == "1\t2\n3\t4\n" + +def test_errors_handling(): + e = query_and_get_error("") + #print(e) + assert "Empty query" in e.message + query("CREATE TABLE t (a UInt8) ENGINE = Memory") + e = query_and_get_error("CREATE TABLE t (a UInt8) ENGINE = Memory") + assert "Table default.t already exists" in e.message From ff62fd4967118b62eb2e4b9ab69e0ef3e794452e Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Thu, 8 Oct 2020 03:23:10 +0300 Subject: [PATCH 267/425] Add an adapter for protocol servers. --- programs/server/Server.cpp | 40 ++++---------------- src/Server/GRPCServer.cpp | 18 +++++++-- src/Server/GRPCServer.h | 24 +++++++++--- src/Server/ProtocolServerAdapter.cpp | 50 +++++++++++++++++++++++++ src/Server/ProtocolServerAdapter.h | 55 ++++++++++++++++++++++++++++ src/Server/ya.make | 1 + 6 files changed, 145 insertions(+), 43 deletions(-) create mode 100644 src/Server/ProtocolServerAdapter.cpp create mode 100644 src/Server/ProtocolServerAdapter.h diff --git a/programs/server/Server.cpp b/programs/server/Server.cpp index dea82d949bd..8228a1fcc74 100644 --- a/programs/server/Server.cpp +++ b/programs/server/Server.cpp @@ -64,6 +64,7 @@ #include #include #include +#include #if !defined(ARCADIA_BUILD) @@ -811,7 +812,7 @@ int Server::main(const std::vector & /*args*/) http_params->setTimeout(settings.http_receive_timeout); http_params->setKeepAliveTimeout(keep_alive_timeout); - std::vector> servers; + std::vector servers; std::vector listen_hosts = DB::getMultipleValuesFromConfig(config(), "", "listen_host"); @@ -823,29 +824,6 @@ int Server::main(const std::vector & /*args*/) listen_try = true; } -#if USE_GRPC - std::vector> grpc_servers; - auto start_grpc_servers = [&] - { - for (auto & server : grpc_servers) - { - if (server) - server_pool.start(*server); - } - }; - auto stop_grpc_servers = [&] - { - for (auto & server : grpc_servers) - { - if (server) - server->stop(); - } - }; -#else - auto start_grpc_servers = []{}; - auto stop_grpc_servers = []{}; -#endif - auto make_socket_address = [&](const std::string & host, UInt16 port) { Poco::Net::SocketAddress socket_address; @@ -1067,7 +1045,7 @@ int Server::main(const std::vector & /*args*/) create_server("grpc_port", [&](UInt16 port) { Poco::Net::SocketAddress server_address(listen_host, port); - grpc_servers.emplace_back(new GRPCServer(server_address.toString(), *this)); + servers.emplace_back(std::make_unique(*this, server_pool, make_socket_address(listen_host, port))); LOG_INFO(log, "Listening for gRPC protocol: " + server_address.toString()); }); #endif @@ -1093,9 +1071,7 @@ int Server::main(const std::vector & /*args*/) global_context->enableNamedSessions(); for (auto & server : servers) - server->start(); - - start_grpc_servers(); + server.start(); { String level_str = config().getString("text_log.level", ""); @@ -1127,12 +1103,10 @@ int Server::main(const std::vector & /*args*/) int current_connections = 0; for (auto & server : servers) { - server->stop(); - current_connections += server->currentConnections(); + server.stop(); + current_connections += server.currentConnections(); } - stop_grpc_servers(); - if (current_connections) LOG_INFO(log, "Closed all listening sockets. Waiting for {} outstanding connections.", current_connections); else @@ -1150,7 +1124,7 @@ int Server::main(const std::vector & /*args*/) { current_connections = 0; for (auto & server : servers) - current_connections += server->currentConnections(); + current_connections += server.currentConnections(); if (!current_connections) break; sleep_current_ms += sleep_one_ms; diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index 46232c8565f..33af9791369 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -510,20 +510,25 @@ namespace } -GRPCServer::GRPCServer(std::string address_to_listen_, IServer & server_) : iserver(server_), log(&Poco::Logger::get("GRPCHandler")) +GRPCServer::GRPCServer(IServer & iserver_, Poco::ThreadPool & thread_pool_, const Poco::Net::SocketAddress & address_to_listen_) + : iserver(iserver_), thread_pool(thread_pool_), address_to_listen(address_to_listen_), log(&Poco::Logger::get("GRPCServer")) +{} + +GRPCServer::~GRPCServer() = default; + +void GRPCServer::start() { grpc::ServerBuilder builder; - builder.AddListeningPort(address_to_listen_, grpc::InsecureServerCredentials()); + builder.AddListeningPort(address_to_listen.toString(), grpc::InsecureServerCredentials()); //keepalive pings default values builder.RegisterService(&grpc_service); builder.SetMaxReceiveMessageSize(INT_MAX); notification_cq = builder.AddCompletionQueue(); new_call_cq = builder.AddCompletionQueue(); grpc_server = builder.BuildAndStart(); + thread_pool.start(*this); } -GRPCServer::~GRPCServer() = default; - void GRPCServer::stop() { grpc_server->Shutdown(); @@ -531,6 +536,11 @@ void GRPCServer::stop() new_call_cq->Shutdown(); } +size_t GRPCServer::currentConnections() const +{ + return 0; //TODO +} + void GRPCServer::run() { HandleRpcs(); diff --git a/src/Server/GRPCServer.h b/src/Server/GRPCServer.h index aa8aa4f3f52..0e477329fea 100644 --- a/src/Server/GRPCServer.h +++ b/src/Server/GRPCServer.h @@ -6,9 +6,14 @@ #if USE_GRPC #include +#include #include "clickhouse_grpc.grpc.pb.h" -namespace Poco { class Logger; } +namespace Poco +{ + class Logger; + class ThreadPool; +} namespace grpc { @@ -23,24 +28,31 @@ class IServer; class GRPCServer final : public Poco::Runnable { public: - GRPCServer(const GRPCServer & handler) = delete; - GRPCServer(GRPCServer && handler) = delete; - GRPCServer(std::string address_to_listen_, IServer & server_); + GRPCServer(IServer & server_, Poco::ThreadPool & thread_pool_, const Poco::Net::SocketAddress & address_to_listen_); ~GRPCServer() override; + /// Starts the server. A new thread will be created that waits for and accepts incoming connections. + void start(); + + /// Stops the server. No new connections will be accepted. void stop(); + + /// Returns the number of currently handled connections. + size_t currentConnections() const; + +private: virtual void run() override; void HandleRpcs(); -private: using GRPCService = clickhouse::grpc::ClickHouse::AsyncService; IServer & iserver; + Poco::ThreadPool & thread_pool; + Poco::Net::SocketAddress address_to_listen; Poco::Logger * log; std::unique_ptr notification_cq; std::unique_ptr new_call_cq; GRPCService grpc_service; std::unique_ptr grpc_server; - std::string address_to_listen; }; } #endif diff --git a/src/Server/ProtocolServerAdapter.cpp b/src/Server/ProtocolServerAdapter.cpp new file mode 100644 index 00000000000..7f57687f259 --- /dev/null +++ b/src/Server/ProtocolServerAdapter.cpp @@ -0,0 +1,50 @@ +#include +#include + +#if USE_GRPC +#include +#endif + + +namespace DB +{ +class ProtocolServerAdapter::TCPServerAdapterImpl : public Impl +{ +public: + explicit TCPServerAdapterImpl(std::unique_ptr tcp_server_) : tcp_server(std::move(tcp_server_)) {} + ~TCPServerAdapterImpl() override = default; + + void start() override { tcp_server->start(); } + void stop() override { tcp_server->stop(); } + size_t currentConnections() const override { return tcp_server->currentConnections(); } + +private: + std::unique_ptr tcp_server; +}; + +ProtocolServerAdapter::ProtocolServerAdapter(std::unique_ptr tcp_server_) +{ + impl = std::make_unique(std::move(tcp_server_)); +} + +#if USE_GRPC +class ProtocolServerAdapter::GRPCServerAdapterImpl : public Impl +{ +public: + explicit GRPCServerAdapterImpl(std::unique_ptr grpc_server_) : grpc_server(std::move(grpc_server_)) {} + ~GRPCServerAdapterImpl() override = default; + + void start() override { grpc_server->start(); } + void stop() override { grpc_server->stop(); } + size_t currentConnections() const override { return grpc_server->currentConnections(); } + +private: + std::unique_ptr grpc_server; +}; + +ProtocolServerAdapter::ProtocolServerAdapter(std::unique_ptr grpc_server_) +{ + impl = std::make_unique(std::move(grpc_server_)); +} +#endif +} diff --git a/src/Server/ProtocolServerAdapter.h b/src/Server/ProtocolServerAdapter.h new file mode 100644 index 00000000000..c0f82dbfde0 --- /dev/null +++ b/src/Server/ProtocolServerAdapter.h @@ -0,0 +1,55 @@ +#pragma once + +#if !defined(ARCADIA_BUILD) +#include +#endif + +#include + +namespace Poco::Net { class TCPServer; } + +namespace DB +{ +class GRPCServer; + +/// Provides an unified interface to access a protocol implementing server +/// no matter what type it has (HTTPServer, TCPServer, MySQLServer, GRPCServer, ...). +class ProtocolServerAdapter +{ +public: + ProtocolServerAdapter() {} + ProtocolServerAdapter(ProtocolServerAdapter && src) = default; + ProtocolServerAdapter & operator =(ProtocolServerAdapter && src) = default; + ~ProtocolServerAdapter() {} + + ProtocolServerAdapter(std::unique_ptr tcp_server_); + +#if USE_GRPC + ProtocolServerAdapter(std::unique_ptr grpc_server_); +#endif + + /// Starts the server. A new thread will be created that waits for and accepts incoming connections. + void start() { impl->start(); } + + /// Stops the server. No new connections will be accepted. + void stop() { impl->stop(); } + + /// Returns the number of currently handled connections. + size_t currentConnections() const { return impl->currentConnections(); } + +private: + class Impl + { + public: + virtual ~Impl() {} + virtual void start() = 0; + virtual void stop() = 0; + virtual size_t currentConnections() const = 0; + }; + class TCPServerAdapterImpl; + class GRPCServerAdapterImpl; + + std::unique_ptr impl; +}; + +} diff --git a/src/Server/ya.make b/src/Server/ya.make index 335bc8c4a2a..9a728b39641 100644 --- a/src/Server/ya.make +++ b/src/Server/ya.make @@ -21,6 +21,7 @@ SRCS( PostgreSQLHandlerFactory.cpp PrometheusMetricsWriter.cpp PrometheusRequestHandler.cpp + ProtocolServerAdapter.cpp ReplicasStatusHandler.cpp StaticRequestHandler.cpp TCPHandler.cpp From c2edd9f8ced6cfefb353c28f3395db7c5e682c95 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Thu, 15 Oct 2020 03:45:13 +0300 Subject: [PATCH 268/425] Rework async server: switch to coroutine-like approach, no using statuses anymore for control flow. --- programs/server/Server.cpp | 2 +- src/Core/include/config_core.h | 13 + src/Server/GRPCServer.cpp | 879 +++++++++++++++++++-------------- src/Server/GRPCServer.h | 25 +- 4 files changed, 543 insertions(+), 376 deletions(-) create mode 100644 src/Core/include/config_core.h diff --git a/programs/server/Server.cpp b/programs/server/Server.cpp index 8228a1fcc74..26339c5ad3f 100644 --- a/programs/server/Server.cpp +++ b/programs/server/Server.cpp @@ -1045,7 +1045,7 @@ int Server::main(const std::vector & /*args*/) create_server("grpc_port", [&](UInt16 port) { Poco::Net::SocketAddress server_address(listen_host, port); - servers.emplace_back(std::make_unique(*this, server_pool, make_socket_address(listen_host, port))); + servers.emplace_back(std::make_unique(*this, make_socket_address(listen_host, port))); LOG_INFO(log, "Listening for gRPC protocol: " + server_address.toString()); }); #endif diff --git a/src/Core/include/config_core.h b/src/Core/include/config_core.h new file mode 100644 index 00000000000..725f9146413 --- /dev/null +++ b/src/Core/include/config_core.h @@ -0,0 +1,13 @@ +#pragma once + +// .h autogenerated by cmake! + +#define USE_ICU 1 +#define USE_MYSQL 1 +#define USE_RDKAFKA 1 +#define USE_AMQPCPP 1 +#define USE_EMBEDDED_COMPILER 0 +#define USE_INTERNAL_LLVM_LIBRARY 0 +#define USE_SSL 1 +#define USE_OPENCL 0 +#define USE_LDAP 1 diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index 33af9791369..b449b918fb8 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -20,6 +21,7 @@ #include #include + using GRPCService = clickhouse::grpc::ClickHouse::AsyncService; using GRPCQueryInfo = clickhouse::grpc::QueryInfo; using GRPCResult = clickhouse::grpc::Result; @@ -30,274 +32,320 @@ namespace DB { namespace ErrorCodes { - extern const int UNKNOWN_DATABASE; + extern const int NETWORK_ERROR; extern const int NO_DATA_TO_INSERT; + extern const int UNKNOWN_DATABASE; } - namespace { - class CommonCallData + /// Requests a connection and provides low-level interface for reading and writing. + class Responder { public: - GRPCService * grpc_service; - grpc::ServerCompletionQueue * notification_cq; - grpc::ServerCompletionQueue * new_call_cq; - grpc::ServerContext grpc_context; - IServer * iserver; - bool with_stacktrace = false; - Poco::Logger * log; - std::unique_ptr next_client; + Responder() : tag(this) {} - explicit CommonCallData( - GRPCService * grpc_service_, - grpc::ServerCompletionQueue * notification_cq_, - grpc::ServerCompletionQueue * new_call_cq_, - IServer * iserver_, - Poco::Logger * log_) - : grpc_service(grpc_service_), notification_cq(notification_cq_), new_call_cq(new_call_cq_), iserver(iserver_), log(log_) + void setTag(void * tag_) { tag = tag_; } + + void start(GRPCService & grpc_service, grpc::ServerCompletionQueue & new_call_queue, grpc::ServerCompletionQueue & notification_queue) { + grpc_service.RequestExecuteQuery(&grpc_context, &reader_writer, &new_call_queue, ¬ification_queue, tag); } - virtual ~CommonCallData() = default; - virtual void respond() = 0; - }; - class CallDataQuery : public CommonCallData - { - public: - CallDataQuery( - GRPCService * grpc_service_, - grpc::ServerCompletionQueue * notification_cq_, - grpc::ServerCompletionQueue * new_call_cq_, - IServer * iserver_, - Poco::Logger * log_) - : CommonCallData(grpc_service_, notification_cq_, new_call_cq_, iserver_, log_), responder(&grpc_context), context(iserver->context()) + void read(GRPCQueryInfo & query_info_) { - details_status = SEND_TOTALS; - status = START_QUERY; - out = std::make_shared(&responder, static_cast(this), nullptr); - grpc_service->RequestExecuteQuery(&grpc_context, &responder, new_call_cq, notification_cq, this); + reader_writer.Read(&query_info_, tag); } - void parseQuery(); - void parseData(); - void readData(); - void executeQuery(); - void progressQuery(); - void finishQuery(); - enum DetailsStatus + /*void write(const GRPCResult & result) { - SEND_TOTALS, - SEND_EXTREMES, - //SEND_PROFILEINFO, //? - FINISH - }; - void sendDetails(); + reader_writer.Write(result, tag); + }*/ - bool sendData(const Block & block); - bool sendProgress(); - bool sendTotals(const Block & totals); - bool sendExtremes(const Block & extremes); + void writeAndFinish(const GRPCResult & result, const grpc::Status & status) + { + reader_writer.WriteAndFinish(result, {}, status, tag); + } - enum Status + Poco::Net::SocketAddress getClientAddress() const { - START_QUERY, - PARSE_QUERY, - READ_DATA, - PROGRESS, - FINISH_QUERY - }; - virtual void respond() override; - virtual ~CallDataQuery() override + String peer = grpc_context.peer(); + return Poco::Net::SocketAddress{peer.substr(peer.find(':') + 1)}; + } + + grpc::ServerAsyncReaderWriter & getReaderWriter() { - query_watch.stop(); - progress_watch.stop(); - query_context.reset(); - query_scope.reset(); + return reader_writer; } private: - GRPCQueryInfo request; - GRPCResult response; - grpc::ServerAsyncReaderWriter responder; - - Stopwatch progress_watch; - Stopwatch query_watch; - Progress progress; - - DetailsStatus details_status; - Status status; - - BlockIO io; - Context context; - std::shared_ptr executor; - std::optional query_context; - - std::shared_ptr out; - String format_output; - String format_input; - uint64_t interactive_delay; - std::optional query_scope; + grpc::ServerContext grpc_context; + grpc::ServerAsyncReaderWriter reader_writer{&grpc_context}; + void * tag; }; - std::string parseGRPCPeer(const grpc::ServerContext & context_) + + /// Handles a connection after a responder is started (i.e. after getting a new call). + class Call { - String info = context_.peer(); - return info.substr(info.find(':') + 1); + public: + Call(std::unique_ptr responder_, IServer & iserver_, Poco::Logger * log_); + ~Call(); + + void start(const std::function & on_finish_call_callback); + void sync(bool ok); + + private: + void run(); + void waitForSync(); + + void receiveQuery(); + void executeQuery(); + void processInput(); + void generateOutput(); + void generateOutputWithProcessors(); + void finishQuery(); + void onException(const Exception & exception); + void close(); + + void sendOutput(const Block & block); + void sendProgress(); + void sendTotals(const Block & totals); + void sendExtremes(const Block & extremes); + void sendException(const Exception & exception); + + std::unique_ptr responder; + IServer & iserver; + Poco::Logger * log = nullptr; + + std::optional query_context; + std::optional query_scope; + String query_text; + ASTPtr ast; + ASTInsertQuery * insert_query = nullptr; + String input_format; + String output_format; + uint64_t interactive_delay = 100000; + bool send_exception_with_stacktrace = true; + + BlockIO io; + std::shared_ptr out; + Progress progress; + + GRPCQueryInfo query_info; /// We reuse the same messages multiple times. + GRPCResult result; + + ThreadFromGlobalPool call_thread; + std::condition_variable signal; + std::atomic num_syncs_pending = 0; + std::atomic sync_failed = false; + }; + + Call::Call(std::unique_ptr responder_, IServer & iserver_, Poco::Logger * log_) + : responder(std::move(responder_)), iserver(iserver_), log(log_) + { + responder->setTag(this); + out = std::make_shared(&responder->getReaderWriter(), this, nullptr); } - void CallDataQuery::respond() + Call::~Call() + { + if (call_thread.joinable()) + call_thread.join(); + } + + void Call::start(const std::function & on_finish_call_callback) + { + auto runner_function = [this, on_finish_call_callback] + { + try + { + run(); + } + catch (...) + { + tryLogCurrentException("GRPCServer"); + } + on_finish_call_callback(); + }; + call_thread = ThreadFromGlobalPool(runner_function); + } + + void Call::sync(bool ok) + { + ++num_syncs_pending; + if (!ok) + sync_failed = true; + signal.notify_one(); + } + + void Call::waitForSync() + { + std::mutex mutex; + std::unique_lock lock{mutex}; + signal.wait(lock, [&] { return (num_syncs_pending > 0) || sync_failed; }); + if (sync_failed) + throw Exception("Client has gone away or network failure", ErrorCodes::NETWORK_ERROR); + --num_syncs_pending; + } + + void Call::run() { try { - switch (status) - { - case START_QUERY: { - new CallDataQuery(grpc_service, notification_cq, new_call_cq, iserver, log); - status = PARSE_QUERY; - responder.Read(&request, static_cast(this)); - break; - } - case PARSE_QUERY: { - parseQuery(); - parseData(); - break; - } - case READ_DATA: { - readData(); - break; - } - case PROGRESS: { - progressQuery(); - break; - } - case FINISH_QUERY: { - delete this; - } - } + receiveQuery(); + executeQuery(); + processInput(); + generateOutput(); + finishQuery(); } - catch (...) + catch (Exception & exception) { - io.onException(); - - tryLogCurrentException(log); - auto & grpc_exception = *response.mutable_exception(); - grpc_exception.set_code(getCurrentExceptionCode()); - grpc_exception.set_message(getCurrentExceptionMessage(with_stacktrace, true)); - status = FINISH_QUERY; - responder.WriteAndFinish(response, grpc::WriteOptions(), grpc::Status(), static_cast(this)); + onException(exception); + } + catch (Poco::Exception & exception) + { + onException(Exception{Exception::CreateFromPocoTag{}, exception}); + } + catch (std::exception & exception) + { + onException(Exception{Exception::CreateFromSTDTag{}, exception}); } } - void CallDataQuery::parseQuery() + void Call::receiveQuery() { - LOG_TRACE(log, "Process query"); + responder->read(query_info); + waitForSync(); + } - Poco::Net::SocketAddress user_adress(parseGRPCPeer(grpc_context)); - LOG_TRACE(log, "Request: {}", request.query()); + void Call::executeQuery() + { + /// Retrieve user credentials. + std::string user = query_info.user_name(); + std::string password = query_info.password(); + std::string quota_key = query_info.quota(); + Poco::Net::SocketAddress user_address = responder->getClientAddress(); - std::string user = request.user_name(); - std::string password = request.password(); - std::string quota_key = request.quota(); - format_output = "Values"; if (user.empty()) { user = "default"; password = ""; } - context.setProgressCallback([this](const Progress & value) { return progress.incrementPiecewiseAtomically(value); }); - - query_context = context; + /// Create context. + query_context.emplace(iserver.context()); query_scope.emplace(*query_context); - query_context->setUser(user, password, user_adress); - query_context->setCurrentQueryId(request.query_id()); + + /// Authentication. + query_context->setUser(user, password, user_address); + query_context->setCurrentQueryId(query_info.query_id()); if (!quota_key.empty()) query_context->setQuotaKey(quota_key); - if (!request.output_format().empty()) - { - format_output = request.output_format(); - query_context->setDefaultFormat(request.output_format()); - } - if (!request.database().empty()) - { - if (!DatabaseCatalog::instance().isDatabaseExist(request.database())) - { - Exception e("Database " + request.database() + " doesn't exist", ErrorCodes::UNKNOWN_DATABASE); - } - query_context->setCurrentDatabase(request.database()); - } + /// Set client info. + ClientInfo & client_info = query_context->getClientInfo(); + client_info.query_kind = ClientInfo::QueryKind::INITIAL_QUERY; + client_info.interface = ClientInfo::Interface::GRPC; + client_info.initial_user = client_info.current_user; + client_info.initial_query_id = client_info.current_query_id; + client_info.initial_address = client_info.current_address; + /// Prepare settings. SettingsChanges settings_changes; - for (const auto & [key, value] : request.settings()) + for (const auto & [key, value] : query_info.settings()) { settings_changes.push_back({key, value}); } query_context->checkSettingsConstraints(settings_changes); query_context->applySettingsChanges(settings_changes); - - interactive_delay = query_context->getSettingsRef().interactive_delay; - - ClientInfo & client_info = query_context->getClientInfo(); - client_info.query_kind = ClientInfo::QueryKind::INITIAL_QUERY; - client_info.interface = ClientInfo::Interface::GRPC; - - client_info.initial_user = client_info.current_user; - client_info.initial_query_id = client_info.current_query_id; - client_info.initial_address = client_info.current_address; - } - - void CallDataQuery::parseData() - { - LOG_TRACE(log, "ParseData"); - const char * begin = request.query().data(); - const char * end = begin + request.query().size(); const Settings & settings = query_context->getSettingsRef(); + /// Set the current database if specified. + if (!query_info.database().empty()) + { + if (!DatabaseCatalog::instance().isDatabaseExist(query_info.database())) + throw Exception("Database " + query_info.database() + " doesn't exist", ErrorCodes::UNKNOWN_DATABASE); + query_context->setCurrentDatabase(query_info.database()); + } + + /// The interactive delay will be used to show progress. + interactive_delay = query_context->getSettingsRef().interactive_delay; + query_context->setProgressCallback([this](const Progress & value) { return progress.incrementPiecewiseAtomically(value); }); + + /// Parse the query. + query_text = std::move(*query_info.mutable_query()); + const char * begin = query_text.data(); + const char * end = begin + query_text.size(); ParserQuery parser(end); - ASTPtr ast = ::DB::parseQuery(parser, begin, end, "", settings.max_query_size, settings.max_parser_depth); + ast = parseQuery(parser, begin, end, "", settings.max_query_size, settings.max_parser_depth); - auto * insert_query = ast->as(); + /// Choose output format. + output_format = "Values"; + if (!query_info.output_format().empty()) + { + output_format = query_info.output_format(); + query_context->setDefaultFormat(query_info.output_format()); + } + + /// Start executing the query. + insert_query = ast->as(); const auto * query_end = end; - if (insert_query && insert_query->data) { query_end = insert_query->data; } String query(begin, query_end); io = ::DB::executeQuery(query, *query_context, false, QueryProcessingStage::Complete, true, true); - if (io.out) + } + + void Call::processInput() + { + if (!io.out) + return; + + bool has_data_to_insert = (insert_query && insert_query->data) + || !query_info.input_data().empty() || query_info.next_query_info(); + if (!has_data_to_insert) { - if (!insert_query || !(insert_query->data || !request.input_data().empty() || request.next_query_info())) - { - Exception e("Logical error: query requires data to insert, but it is not INSERT query", ErrorCodes::NO_DATA_TO_INSERT); - } + if (!insert_query) + throw Exception("Query requires data to insert, but it is not an INSERT query", ErrorCodes::NO_DATA_TO_INSERT); + else + throw Exception("No data to insert", ErrorCodes::NO_DATA_TO_INSERT); + } - format_input = insert_query->format; - if (format_input.empty()) - format_input = "Values"; + /// Choose input format. + if (insert_query) + { + input_format = insert_query->format; + if (input_format.empty()) + input_format = "Values"; + } - if (format_output.empty()) - format_output = format_input; - ConcatReadBuffer::ReadBuffers buffers; - std::shared_ptr data_in_query; - std::shared_ptr data_in_insert_data; - if (insert_query->data) - { - data_in_query = std::make_shared(insert_query->data, insert_query->end - insert_query->data); - buffers.push_back(data_in_query.get()); - } + if (output_format.empty()) + output_format = input_format; - if (!request.input_data().empty()) - { - data_in_insert_data = std::make_shared(request.input_data().data(), request.input_data().size()); - buffers.push_back(data_in_insert_data.get()); - } - auto input_buffer_contacenated = std::make_unique(buffers); - auto res_stream = query_context->getInputFormat( - format_input, *input_buffer_contacenated, io.out->getHeader(), query_context->getSettings().max_insert_block_size); + /// Prepare read buffer with data to insert. + ConcatReadBuffer::ReadBuffers buffers; + std::shared_ptr insert_query_data_buffer; + std::shared_ptr input_data_buffer; + if (insert_query && insert_query->data) + { + insert_query_data_buffer = std::make_shared(insert_query->data, insert_query->end - insert_query->data); + buffers.push_back(insert_query_data_buffer.get()); + } + if (!query_info.input_data().empty()) + { + input_data_buffer = std::make_shared(query_info.input_data().data(), query_info.input_data().size()); + buffers.push_back(input_data_buffer.get()); + } + auto input_buffer_contacenated = std::make_unique(buffers); + auto res_stream = query_context->getInputFormat( + input_format, *input_buffer_contacenated, io.out->getHeader(), query_context->getSettings().max_insert_block_size); + /// Add default values if necessary. + if (insert_query) + { auto table_id = query_context->resolveStorageID(insert_query->table_id, Context::ResolveOrdinary); if (query_context->getSettingsRef().input_format_defaults_for_omitted_fields && table_id) { @@ -306,127 +354,138 @@ namespace if (!columns.empty()) res_stream = std::make_shared(res_stream, columns, *query_context); } - io.out->writePrefix(); - while (auto block = res_stream->read()) - io.out->write(block); - if (request.next_query_info()) + } + + /// Read input data. + io.out->writePrefix(); + + while (auto block = res_stream->read()) + io.out->write(block); + + while (query_info.next_query_info()) + { + responder->read(query_info); + waitForSync(); + if (!query_info.input_data().empty()) { - status = READ_DATA; - responder.Read(&request, static_cast(this)); - return; + const char * begin = query_info.input_data().data(); + const char * end = begin + query_info.input_data().size(); + ReadBufferFromMemory data_in(begin, end - begin); + res_stream = query_context->getInputFormat( + input_format, data_in, io.out->getHeader(), query_context->getSettings().max_insert_block_size); + + while (auto block = res_stream->read()) + io.out->write(block); } - io.out->writeSuffix(); } - executeQuery(); + io.out->writeSuffix(); } - void CallDataQuery::readData() + void Call::generateOutput() { - if (!request.input_data().empty()) - { - const char * begin = request.input_data().data(); - const char * end = begin + request.input_data().size(); - ReadBufferFromMemory data_in(begin, end - begin); - auto res_stream = query_context->getInputFormat( - format_input, data_in, io.out->getHeader(), query_context->getSettings().max_insert_block_size); - - while (auto block = res_stream->read()) - io.out->write(block); - } - - if (request.next_query_info()) - { - responder.Read(&request, static_cast(this)); - } - else - { - io.out->writeSuffix(); - executeQuery(); - } - } - - void CallDataQuery::executeQuery() - { - LOG_TRACE(log, "Execute Query"); if (io.pipeline.initialized()) { - query_watch.start(); - progress_watch.start(); - executor = std::make_shared(io.pipeline); - progressQuery(); + generateOutputWithProcessors(); + return; } - else + + if (!io.in) + return; + + AsynchronousBlockInputStream async_in(io.in); + Stopwatch after_send_progress; + + async_in.readPrefix(); + while (true) { - finishQuery(); + if (async_in.poll(interactive_delay / 1000)) + { + const auto block = async_in.read(); + if (!block) + break; + + if (!io.null_format) + sendOutput(block); + } + + if (after_send_progress.elapsedMicroseconds() >= interactive_delay) + { + sendProgress(); + after_send_progress.restart(); + } } + async_in.readSuffix(); + + sendTotals(io.in->getTotals()); + sendExtremes(io.in->getExtremes()); } - void CallDataQuery::progressQuery() + void Call::generateOutputWithProcessors() { - status = PROGRESS; - bool sent = false; + if (!io.pipeline.initialized()) + return; + + auto executor = std::make_shared(io.pipeline); + Stopwatch after_send_progress; Block block; - while (executor->pull(block, query_watch.elapsedMilliseconds())) + while (executor->pull(block, interactive_delay / 1000)) { if (block) { if (!io.null_format) - { - sent = sendData(block); - break; //? - } + sendOutput(block); } - if (progress_watch.elapsedMilliseconds() >= interactive_delay) + + if (after_send_progress.elapsedMicroseconds() >= interactive_delay) { - progress_watch.restart(); - sent = sendProgress(); - break; + sendProgress(); + after_send_progress.restart(); } - query_watch.restart(); - } - if (!sent) - { - sendDetails(); } + + sendTotals(executor->getTotalsBlock()); + sendExtremes(executor->getExtremesBlock()); } - void CallDataQuery::sendDetails() - { - bool sent = false; - while (!sent) - { - switch (details_status) - { - case SEND_TOTALS: { - sent = sendTotals(executor->getTotalsBlock()); - details_status = SEND_EXTREMES; - break; - } - case SEND_EXTREMES: { - sent = sendExtremes(executor->getExtremesBlock()); - details_status = FINISH; - break; - } - case FINISH: { - sent = true; - finishQuery(); - break; - } - } - } - } - - void CallDataQuery::finishQuery() + void Call::finishQuery() { io.onFinish(); query_scope->logPeakMemoryUsage(); - status = FINISH_QUERY; out->finalize(); + waitForSync(); } - bool CallDataQuery::sendData(const Block & block) + void Call::onException(const Exception & exception) + { + io.onException(); + + if (responder) + { + try + { + sendException(exception); + } + catch (...) + { + LOG_WARNING(log, "Couldn't send exception information to the client"); + } + } + + close(); + } + + void Call::close() + { + responder.reset(); + io = {}; + out.reset(); + query_scope.reset(); + query_context.reset(); + } + + void Call::sendOutput(const Block & block) { out->setResponse([](const String & buffer) { @@ -434,14 +493,14 @@ namespace tmp_response.set_output(buffer); return tmp_response; }); - auto my_block_out_stream = query_context->getOutputFormat(format_output, *out, block); + auto my_block_out_stream = query_context->getOutputFormat(output_format, *out, block); my_block_out_stream->write(block); my_block_out_stream->flush(); out->next(); - return true; + waitForSync(); } - bool CallDataQuery::sendProgress() + void Call::sendProgress() { auto grpc_progress = [](const String & buffer) { @@ -467,10 +526,10 @@ namespace auto increment = progress.fetchAndResetPiecewiseAtomically(); increment.write(*out, DBMS_MIN_REVISION_WITH_CLIENT_WRITE_INFO); out->next(); - return true; + waitForSync(); } - bool CallDataQuery::sendTotals(const Block & totals) + void Call::sendTotals(const Block & totals) { if (totals) { @@ -480,16 +539,15 @@ namespace tmp_response.set_totals(buffer); return tmp_response; }); - auto my_block_out_stream = query_context->getOutputFormat(format_output, *out, totals); + auto my_block_out_stream = query_context->getOutputFormat(output_format, *out, totals); my_block_out_stream->write(totals); my_block_out_stream->flush(); out->next(); - return true; + waitForSync(); } - return false; } - bool CallDataQuery::sendExtremes(const Block & extremes) + void Call::sendExtremes(const Block & extremes) { if (extremes) { @@ -499,97 +557,200 @@ namespace tmp_response.set_extremes(buffer); return tmp_response; }); - auto my_block_out_stream = query_context->getOutputFormat(format_output, *out, extremes); + auto my_block_out_stream = query_context->getOutputFormat(output_format, *out, extremes); my_block_out_stream->write(extremes); my_block_out_stream->flush(); out->next(); - return true; + waitForSync(); } - return false; + } + + void Call::sendException(const Exception & exception) + { + auto & grpc_exception = *result.mutable_exception(); + grpc_exception.set_code(exception.code()); + grpc_exception.set_message(getExceptionMessage(exception, send_exception_with_stacktrace, true)); + responder->writeAndFinish(result, {}); + waitForSync(); } } -GRPCServer::GRPCServer(IServer & iserver_, Poco::ThreadPool & thread_pool_, const Poco::Net::SocketAddress & address_to_listen_) - : iserver(iserver_), thread_pool(thread_pool_), address_to_listen(address_to_listen_), log(&Poco::Logger::get("GRPCServer")) +class GRPCServer::Runner +{ +public: + explicit Runner(GRPCServer & owner_) : owner(owner_) {} + + ~Runner() + { + if (queue_thread.joinable()) + queue_thread.join(); + } + + void start() + { + startReceivingNewCalls(); + + /// We run queue in a separate thread. + auto runner_function = [this] + { + try + { + run(); + } + catch (...) + { + tryLogCurrentException("GRPCServer"); + } + }; + queue_thread = ThreadFromGlobalPool{runner_function}; + } + + void stop() { stopReceivingNewCalls(); } + + size_t getNumCurrentCalls() const + { + std::lock_guard lock{mutex}; + return current_calls.size(); + } + +private: + void startReceivingNewCalls() + { + std::lock_guard lock{mutex}; + makeResponderForNewCall(); + } + + void makeResponderForNewCall() + { + /// `mutex` is already locked. + responder_for_new_call = std::make_unique(); + responder_for_new_call->start(owner.grpc_service, *owner.queue, *owner.queue); + } + + void stopReceivingNewCalls() + { + std::lock_guard lock{mutex}; + should_stop = true; + } + + void onNewCall(bool responder_started) + { + /// `mutex` is already locked. + auto responder = std::move(responder_for_new_call); + if (should_stop) + return; + makeResponderForNewCall(); + if (responder_started) + { + /// Connection established and the responder has been started. + /// So we pass this responder to a Call and make another responder for next connection. + auto new_call = std::make_unique(std::move(responder), owner.iserver, owner.log); + auto * new_call_ptr = new_call.get(); + current_calls[new_call_ptr] = std::move(new_call); + new_call_ptr->start([this, new_call_ptr]() { onFinishCall(new_call_ptr); }); + } + } + + void onFinishCall(Call * call) + { + /// Called on call_thread. That's why we can't destroy the `call` right now + /// (thread can't join to itself). Thus here we only move the `call` from + /// `current_call` to `finished_calls` and run() will actually destroy the `call`. + std::lock_guard lock{mutex}; + auto it = current_calls.find(call); + finished_calls.push_back(std::move(it->second)); + current_calls.erase(it); + } + + void run() + { + while (true) + { + { + std::lock_guard lock{mutex}; + finished_calls.clear(); /// Destroy finished calls. + + /// If (should_stop == true) we continue processing until there is no active calls. + if (should_stop && current_calls.empty() && !responder_for_new_call) + break; + } + + bool ok = false; + void * tag = nullptr; + if (!owner.queue->Next(&tag, &ok)) + { + /// Queue shutted down. + break; + } + + { + std::lock_guard lock{mutex}; + if (tag == responder_for_new_call.get()) + { + onNewCall(ok); + continue; + } + } + + /// Continue handling a Call. + auto call = static_cast(tag); + call->sync(ok); + } + } + + GRPCServer & owner; + ThreadFromGlobalPool queue_thread; + std::unique_ptr responder_for_new_call; + std::map> current_calls; + std::vector> finished_calls; + bool should_stop = false; + mutable std::mutex mutex; +}; + + +GRPCServer::GRPCServer(IServer & iserver_, const Poco::Net::SocketAddress & address_to_listen_) + : iserver(iserver_), address_to_listen(address_to_listen_), log(&Poco::Logger::get("GRPCServer")) {} -GRPCServer::~GRPCServer() = default; +GRPCServer::~GRPCServer() +{ + /// Server should be shutdown before CompletionQueue. + if (grpc_server) + grpc_server->Shutdown(); + + /// Completion Queue should be shutdown before destroying the runner, + /// because the runner is now probably executing CompletionQueue::Next() on queue_thread + /// which is blocked until an event is available or the queue is shutting down. + if (queue) + queue->Shutdown(); + + runner.reset(); +} void GRPCServer::start() { grpc::ServerBuilder builder; builder.AddListeningPort(address_to_listen.toString(), grpc::InsecureServerCredentials()); - //keepalive pings default values builder.RegisterService(&grpc_service); builder.SetMaxReceiveMessageSize(INT_MAX); - notification_cq = builder.AddCompletionQueue(); - new_call_cq = builder.AddCompletionQueue(); + + queue = builder.AddCompletionQueue(); grpc_server = builder.BuildAndStart(); - thread_pool.start(*this); + runner = std::make_unique(*this); + runner->start(); } + void GRPCServer::stop() { - grpc_server->Shutdown(); - notification_cq->Shutdown(); - new_call_cq->Shutdown(); + /// Stop receiving new calls. + runner->stop(); } size_t GRPCServer::currentConnections() const { - return 0; //TODO -} - -void GRPCServer::run() -{ - HandleRpcs(); -} - -void GRPCServer::HandleRpcs() -{ - new CallDataQuery(&grpc_service, notification_cq.get(), new_call_cq.get(), &iserver, log); - - // rpc event "read done / write done / close(already connected)" call-back by this completion queue - auto handle_calls_completion = [&]() - { - void * tag; - bool ok; - while (true) - { - GPR_ASSERT(new_call_cq->Next(&tag, &ok)); - if (!ok) - { - LOG_WARNING(log, "Client has gone away."); - delete static_cast(tag); - continue; - } - auto thread = ThreadFromGlobalPool{&CallDataQuery::respond, static_cast(tag)}; - thread.detach(); - } - }; - // rpc event "new connection / close(waiting for connect)" call-back by this completion queue - auto handle_requests_completion = [&] { - void * tag; - bool ok; - while (true) - { - GPR_ASSERT(notification_cq->Next(&tag, &ok)); - if (!ok) - { - LOG_WARNING(log, "Client has gone away."); - delete static_cast(tag); - continue; - } - auto thread = ThreadFromGlobalPool{&CallDataQuery::respond, static_cast(tag)}; - thread.detach(); - } - }; - - auto notification_cq_thread = ThreadFromGlobalPool{handle_requests_completion}; - auto new_call_cq_thread = ThreadFromGlobalPool{handle_calls_completion}; - notification_cq_thread.detach(); - new_call_cq_thread.detach(); + return runner->getNumCurrentCalls(); } } diff --git a/src/Server/GRPCServer.h b/src/Server/GRPCServer.h index 0e477329fea..b6bc8c7bf7f 100644 --- a/src/Server/GRPCServer.h +++ b/src/Server/GRPCServer.h @@ -5,15 +5,10 @@ #endif #if USE_GRPC -#include #include #include "clickhouse_grpc.grpc.pb.h" -namespace Poco -{ - class Logger; - class ThreadPool; -} +namespace Poco { class Logger; } namespace grpc { @@ -25,11 +20,11 @@ namespace DB { class IServer; -class GRPCServer final : public Poco::Runnable +class GRPCServer { public: - GRPCServer(IServer & server_, Poco::ThreadPool & thread_pool_, const Poco::Net::SocketAddress & address_to_listen_); - ~GRPCServer() override; + GRPCServer(IServer & iserver_, const Poco::Net::SocketAddress & address_to_listen_); + ~GRPCServer(); /// Starts the server. A new thread will be created that waits for and accepts incoming connections. void start(); @@ -41,18 +36,16 @@ public: size_t currentConnections() const; private: - virtual void run() override; - void HandleRpcs(); - using GRPCService = clickhouse::grpc::ClickHouse::AsyncService; + class Runner; + IServer & iserver; - Poco::ThreadPool & thread_pool; - Poco::Net::SocketAddress address_to_listen; + const Poco::Net::SocketAddress address_to_listen; Poco::Logger * log; - std::unique_ptr notification_cq; - std::unique_ptr new_call_cq; GRPCService grpc_service; std::unique_ptr grpc_server; + std::unique_ptr queue; + std::unique_ptr runner; }; } #endif From ba723d6d75dab0eefb408cbcbb120ea9f3006845 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Wed, 21 Oct 2020 17:35:38 +0300 Subject: [PATCH 269/425] Simplify the code: get rid of WriteBufferFromGRPC. --- src/Server/GRPCServer.cpp | 177 ++++++++++++++----------------- src/Server/WriteBufferFromGRPC.h | 55 ---------- 2 files changed, 78 insertions(+), 154 deletions(-) delete mode 100644 src/Server/WriteBufferFromGRPC.h diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index b449b918fb8..85dc8ce8f98 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include @@ -57,10 +56,10 @@ namespace reader_writer.Read(&query_info_, tag); } - /*void write(const GRPCResult & result) + void write(const GRPCResult & result) { reader_writer.Write(result, tag); - }*/ + } void writeAndFinish(const GRPCResult & result, const grpc::Status & status) { @@ -73,11 +72,6 @@ namespace return Poco::Net::SocketAddress{peer.substr(peer.find(':') + 1)}; } - grpc::ServerAsyncReaderWriter & getReaderWriter() - { - return reader_writer; - } - private: grpc::ServerContext grpc_context; grpc::ServerAsyncReaderWriter reader_writer{&grpc_context}; @@ -108,10 +102,11 @@ namespace void onException(const Exception & exception); void close(); - void sendOutput(const Block & block); - void sendProgress(); - void sendTotals(const Block & totals); - void sendExtremes(const Block & extremes); + void addOutputToResult(const Block & block); + void addProgressToResult(); + void addTotalsToResult(const Block & totals); + void addExtremesToResult(const Block & extremes); + void sendResult(); void sendException(const Exception & exception); std::unique_ptr responder; @@ -129,12 +124,14 @@ namespace bool send_exception_with_stacktrace = true; BlockIO io; - std::shared_ptr out; Progress progress; GRPCQueryInfo query_info; /// We reuse the same messages multiple times. GRPCResult result; + bool finalize = false; + bool responder_finished = false; + ThreadFromGlobalPool call_thread; std::condition_variable signal; std::atomic num_syncs_pending = 0; @@ -145,7 +142,6 @@ namespace : responder(std::move(responder_)), iserver(iserver_), log(log_) { responder->setTag(this); - out = std::make_shared(&responder->getReaderWriter(), this, nullptr); } Call::~Call() @@ -399,26 +395,30 @@ namespace async_in.readPrefix(); while (true) { + Block block; if (async_in.poll(interactive_delay / 1000)) { - const auto block = async_in.read(); + block = async_in.read(); if (!block) break; - - if (!io.null_format) - sendOutput(block); } + if (block && !io.null_format) + addOutputToResult(block); + if (after_send_progress.elapsedMicroseconds() >= interactive_delay) { - sendProgress(); + addProgressToResult(); after_send_progress.restart(); } + + if (!result.output().empty() || result.has_progress()) + sendResult(); } async_in.readSuffix(); - sendTotals(io.in->getTotals()); - sendExtremes(io.in->getExtremes()); + addTotalsToResult(io.in->getTotals()); + addExtremesToResult(io.in->getExtremes()); } void Call::generateOutputWithProcessors() @@ -435,33 +435,37 @@ namespace if (block) { if (!io.null_format) - sendOutput(block); + addOutputToResult(block); } if (after_send_progress.elapsedMicroseconds() >= interactive_delay) { - sendProgress(); + addProgressToResult(); after_send_progress.restart(); } + + if (!result.output().empty() || result.has_progress()) + sendResult(); } - sendTotals(executor->getTotalsBlock()); - sendExtremes(executor->getExtremesBlock()); + addTotalsToResult(executor->getTotalsBlock()); + addExtremesToResult(executor->getExtremesBlock()); } void Call::finishQuery() { + finalize = true; io.onFinish(); query_scope->logPeakMemoryUsage(); - out->finalize(); - waitForSync(); + sendResult(); + close(); } void Call::onException(const Exception & exception) { io.onException(); - if (responder) + if (responder && !responder_finished) { try { @@ -480,89 +484,65 @@ namespace { responder.reset(); io = {}; - out.reset(); query_scope.reset(); query_context.reset(); } - void Call::sendOutput(const Block & block) + void Call::addOutputToResult(const Block & block) { - out->setResponse([](const String & buffer) - { - GRPCResult tmp_response; - tmp_response.set_output(buffer); - return tmp_response; - }); - auto my_block_out_stream = query_context->getOutputFormat(output_format, *out, block); - my_block_out_stream->write(block); - my_block_out_stream->flush(); - out->next(); - waitForSync(); + WriteBufferFromString buf{*result.mutable_output()}; + auto stream = query_context->getOutputFormat(output_format, buf, block); + stream->write(block); } - void Call::sendProgress() + void Call::addProgressToResult() { - auto grpc_progress = [](const String & buffer) - { - auto in = std::make_unique(buffer); - ProgressValues progress_values; - progress_values.read(*in, DBMS_MIN_REVISION_WITH_CLIENT_WRITE_INFO); - GRPCProgress tmp_progress; - tmp_progress.set_read_rows(progress_values.read_rows); - tmp_progress.set_read_bytes(progress_values.read_bytes); - tmp_progress.set_total_rows_to_read(progress_values.total_rows_to_read); - tmp_progress.set_written_rows(progress_values.written_rows); - tmp_progress.set_written_bytes(progress_values.written_bytes); - return tmp_progress; - }; - - out->setResponse([&grpc_progress](const String & buffer) - { - GRPCResult tmp_response; - auto tmp_progress = std::make_unique(grpc_progress(buffer)); - tmp_response.set_allocated_progress(tmp_progress.release()); - return tmp_response; - }); - auto increment = progress.fetchAndResetPiecewiseAtomically(); - increment.write(*out, DBMS_MIN_REVISION_WITH_CLIENT_WRITE_INFO); - out->next(); - waitForSync(); + auto & grpc_progress = *result.mutable_progress(); + auto values = progress.fetchAndResetPiecewiseAtomically(); + grpc_progress.set_read_rows(values.read_rows); + grpc_progress.set_read_bytes(values.read_bytes); + grpc_progress.set_total_rows_to_read(values.total_rows_to_read); + grpc_progress.set_written_rows(values.written_rows); + grpc_progress.set_written_bytes(values.written_bytes); } - void Call::sendTotals(const Block & totals) + void Call::addTotalsToResult(const Block & totals) { - if (totals) + if (!totals) + return; + + WriteBufferFromString buf{*result.mutable_totals()}; + auto stream = query_context->getOutputFormat(output_format, buf, totals); + stream->write(totals); + } + + void Call::addExtremesToResult(const Block & extremes) + { + if (!extremes) + return; + + WriteBufferFromString buf{*result.mutable_extremes()}; + auto stream = query_context->getOutputFormat(output_format, buf, extremes); + stream->write(extremes); + } + + void Call::sendResult() + { + /// gRPC doesn't allow to write anything to a finished responder. + if (responder_finished) + return; + + bool send_final_message = finalize || result.has_exception(); + if (send_final_message) { - out->setResponse([](const String & buffer) - { - GRPCResult tmp_response; - tmp_response.set_totals(buffer); - return tmp_response; - }); - auto my_block_out_stream = query_context->getOutputFormat(output_format, *out, totals); - my_block_out_stream->write(totals); - my_block_out_stream->flush(); - out->next(); - waitForSync(); + responder_finished = true; + responder->writeAndFinish(result, {}); } - } + else + responder->write(result); - void Call::sendExtremes(const Block & extremes) - { - if (extremes) - { - out->setResponse([](const String & buffer) - { - GRPCResult tmp_response; - tmp_response.set_extremes(buffer); - return tmp_response; - }); - auto my_block_out_stream = query_context->getOutputFormat(output_format, *out, extremes); - my_block_out_stream->write(extremes); - my_block_out_stream->flush(); - out->next(); - waitForSync(); - } + waitForSync(); + result.Clear(); } void Call::sendException(const Exception & exception) @@ -570,8 +550,7 @@ namespace auto & grpc_exception = *result.mutable_exception(); grpc_exception.set_code(exception.code()); grpc_exception.set_message(getExceptionMessage(exception, send_exception_with_stacktrace, true)); - responder->writeAndFinish(result, {}); - waitForSync(); + sendResult(); } } diff --git a/src/Server/WriteBufferFromGRPC.h b/src/Server/WriteBufferFromGRPC.h deleted file mode 100644 index ef9bcdae720..00000000000 --- a/src/Server/WriteBufferFromGRPC.h +++ /dev/null @@ -1,55 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include "clickhouse_grpc.grpc.pb.h" - -namespace DB -{ -class WriteBufferFromGRPC : public BufferWithOwnMemory -{ -public: - using GRPCQueryInfo = clickhouse::grpc::QueryInfo; - using GRPCResult = clickhouse::grpc::Result; - - WriteBufferFromGRPC( - grpc::ServerAsyncReaderWriter * responder_, - void * tag_, - std::function set_response_details_) - : responder(responder_), tag(tag_), set_response_details(set_response_details_) - { - } - - ~WriteBufferFromGRPC() override {} - bool onProgress() { return progress; } - bool isFinished() { return finished; } - void setFinish(bool fl) { finished = fl; } - void setResponse(std::function function) { set_response_details = function; } - void finalize() override - { - progress = false; - finished = true; - responder->Finish(grpc::Status(), tag); - } - -protected: - grpc::ServerAsyncReaderWriter * responder; - void * tag; - - bool progress = false; - bool finished = false; - std::function set_response_details; - - - void nextImpl() override - { - progress = true; - - String buffer(working_buffer.begin(), working_buffer.begin() + offset()); - auto response = set_response_details(buffer); - responder->Write(response, tag); - } -}; -} From fb90e9d09197942d42b21faa2e24c6dd96fe2763 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sun, 1 Nov 2020 23:43:50 +0300 Subject: [PATCH 270/425] Simplify the code: pass callbacks as tags to grpc. --- src/Server/GRPCServer.cpp | 197 +++++++++++++++++++++++++------------- 1 file changed, 132 insertions(+), 65 deletions(-) diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index 85dc8ce8f98..9ca6fe123b6 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -38,32 +38,34 @@ namespace ErrorCodes namespace { + using CompletionCallback = std::function; + /// Requests a connection and provides low-level interface for reading and writing. class Responder { public: - Responder() : tag(this) {} - - void setTag(void * tag_) { tag = tag_; } - - void start(GRPCService & grpc_service, grpc::ServerCompletionQueue & new_call_queue, grpc::ServerCompletionQueue & notification_queue) + void start( + GRPCService & grpc_service, + grpc::ServerCompletionQueue & new_call_queue, + grpc::ServerCompletionQueue & notification_queue, + const CompletionCallback & callback) { - grpc_service.RequestExecuteQuery(&grpc_context, &reader_writer, &new_call_queue, ¬ification_queue, tag); + grpc_service.RequestExecuteQuery(&grpc_context, &reader_writer, &new_call_queue, ¬ification_queue, getCallbackPtr(callback)); } - void read(GRPCQueryInfo & query_info_) + void read(GRPCQueryInfo & query_info_, const CompletionCallback & callback) { - reader_writer.Read(&query_info_, tag); + reader_writer.Read(&query_info_, getCallbackPtr(callback)); } - void write(const GRPCResult & result) + void write(const GRPCResult & result, const CompletionCallback & callback) { - reader_writer.Write(result, tag); + reader_writer.Write(result, getCallbackPtr(callback)); } - void writeAndFinish(const GRPCResult & result, const grpc::Status & status) + void writeAndFinish(const GRPCResult & result, const grpc::Status & status, const CompletionCallback & callback) { - reader_writer.WriteAndFinish(result, {}, status, tag); + reader_writer.WriteAndFinish(result, {}, status, getCallbackPtr(callback)); } Poco::Net::SocketAddress getClientAddress() const @@ -73,9 +75,31 @@ namespace } private: + CompletionCallback * getCallbackPtr(const CompletionCallback & callback) + { + /// It would be better to pass callbacks to gRPC calls. + /// However gRPC calls can be tagged with `void *` tags only. + /// The map `callbacks` here is used to keep callbacks until they're called. + std::lock_guard lock{mutex}; + size_t callback_id = next_callback_id++; + auto & callback_in_map = callbacks[callback_id]; + callback_in_map = [this, callback, callback_id](bool ok) + { + CompletionCallback callback_to_call; + { + std::lock_guard lock2{mutex}; + callback_to_call = callback; + callbacks.erase(callback_id); + } + callback_to_call(ok); + }; + return &callback_in_map; + } grpc::ServerContext grpc_context; grpc::ServerAsyncReaderWriter reader_writer{&grpc_context}; - void * tag; + std::unordered_map callbacks; + size_t next_callback_id = 0; + std::mutex mutex; }; @@ -87,11 +111,9 @@ namespace ~Call(); void start(const std::function & on_finish_call_callback); - void sync(bool ok); private: void run(); - void waitForSync(); void receiveQuery(); void executeQuery(); @@ -102,11 +124,13 @@ namespace void onException(const Exception & exception); void close(); + void readQueryInfo(); void addOutputToResult(const Block & block); void addProgressToResult(); void addTotalsToResult(const Block & totals); void addExtremesToResult(const Block & extremes); void sendResult(); + void throwIfFailedToSendResult(); void sendException(const Exception & exception); std::unique_ptr responder; @@ -129,19 +153,24 @@ namespace GRPCQueryInfo query_info; /// We reuse the same messages multiple times. GRPCResult result; + /// 0 - no query info has been read, 1 - initial query info, 2 - next query info, ... + size_t query_info_index = 0; + bool finalize = false; bool responder_finished = false; + std::atomic sending_result = false; /// atomic because it can be accessed both from call_thread and queue_thread + std::atomic failed_to_send_result = false; + ThreadFromGlobalPool call_thread; - std::condition_variable signal; - std::atomic num_syncs_pending = 0; - std::atomic sync_failed = false; + std::condition_variable read_finished; + std::condition_variable write_finished; + std::mutex dummy_mutex; /// Doesn't protect anything. }; Call::Call(std::unique_ptr responder_, IServer & iserver_, Poco::Logger * log_) : responder(std::move(responder_)), iserver(iserver_), log(log_) { - responder->setTag(this); } Call::~Call() @@ -167,24 +196,6 @@ namespace call_thread = ThreadFromGlobalPool(runner_function); } - void Call::sync(bool ok) - { - ++num_syncs_pending; - if (!ok) - sync_failed = true; - signal.notify_one(); - } - - void Call::waitForSync() - { - std::mutex mutex; - std::unique_lock lock{mutex}; - signal.wait(lock, [&] { return (num_syncs_pending > 0) || sync_failed; }); - if (sync_failed) - throw Exception("Client has gone away or network failure", ErrorCodes::NETWORK_ERROR); - --num_syncs_pending; - } - void Call::run() { try @@ -211,8 +222,7 @@ namespace void Call::receiveQuery() { - responder->read(query_info); - waitForSync(); + readQueryInfo(); } void Call::executeQuery() @@ -360,8 +370,7 @@ namespace while (query_info.next_query_info()) { - responder->read(query_info); - waitForSync(); + readQueryInfo(); if (!query_info.input_data().empty()) { const char * begin = query_info.input_data().data(); @@ -403,6 +412,8 @@ namespace break; } + throwIfFailedToSendResult(); + if (block && !io.null_format) addOutputToResult(block); @@ -414,6 +425,8 @@ namespace if (!result.output().empty() || result.has_progress()) sendResult(); + + throwIfFailedToSendResult(); } async_in.readSuffix(); @@ -432,11 +445,10 @@ namespace Block block; while (executor->pull(block, interactive_delay / 1000)) { - if (block) - { - if (!io.null_format) - addOutputToResult(block); - } + throwIfFailedToSendResult(); + + if (block && !io.null_format) + addOutputToResult(block); if (after_send_progress.elapsedMicroseconds() >= interactive_delay) { @@ -446,6 +458,8 @@ namespace if (!result.output().empty() || result.has_progress()) sendResult(); + + throwIfFailedToSendResult(); } addTotalsToResult(executor->getTotalsBlock()); @@ -488,6 +502,35 @@ namespace query_context.reset(); } + void Call::readQueryInfo() + { + bool ok = false; + + /// Start reading a query info. + bool reading_query_info = true; + responder->read(query_info, [&](bool ok_) + { + /// Called on queue_thread. + ok = ok_; + reading_query_info = false; + read_finished.notify_one(); + }); + + /// Wait until the reading is finished. + std::unique_lock lock{dummy_mutex}; + read_finished.wait(lock, [&] { return !reading_query_info; }); + + if (!ok) + { + if (!query_info_index) + throw Exception("Failed to read initial QueryInfo", ErrorCodes::NETWORK_ERROR); + else + throw Exception("Failed to read extra QueryInfo with input data", ErrorCodes::NETWORK_ERROR); + } + + ++query_info_index; + } + void Call::addOutputToResult(const Block & block) { WriteBufferFromString buf{*result.mutable_output()}; @@ -532,17 +575,51 @@ namespace if (responder_finished) return; + /// Wait for previous write to finish. + /// (gRPC doesn't allow to start sending another result while the previous is still being sending.) + if (sending_result) + { + std::unique_lock lock{dummy_mutex}; + write_finished.wait(lock, [this] { return !sending_result; }); + } + throwIfFailedToSendResult(); + + /// Start sending the result. + sending_result = true; + auto callback = [this](bool ok) + { + /// Called on queue_thread. + if (!ok) + failed_to_send_result = true; + sending_result = false; + write_finished.notify_one(); + }; + bool send_final_message = finalize || result.has_exception(); if (send_final_message) { responder_finished = true; - responder->writeAndFinish(result, {}); + responder->writeAndFinish(result, {}, callback); } else - responder->write(result); + responder->write(result, callback); - waitForSync(); + /// gRPC has already retrieved all data from `result`, so we don't have to keep it. result.Clear(); + + if (send_final_message) + { + /// Wait until the result is actually sent. + std::unique_lock lock{dummy_mutex}; + write_finished.wait(lock, [this] { return !sending_result; }); + throwIfFailedToSendResult(); + } + } + + void Call::throwIfFailedToSendResult() + { + if (failed_to_send_result) + throw Exception("Failed to send result to client", ErrorCodes::NETWORK_ERROR); } void Call::sendException(const Exception & exception) @@ -604,7 +681,7 @@ private: { /// `mutex` is already locked. responder_for_new_call = std::make_unique(); - responder_for_new_call->start(owner.grpc_service, *owner.queue, *owner.queue); + responder_for_new_call->start(owner.grpc_service, *owner.queue, *owner.queue, [this](bool ok) { onNewCall(ok); }); } void stopReceivingNewCalls() @@ -613,14 +690,14 @@ private: should_stop = true; } - void onNewCall(bool responder_started) + void onNewCall(bool responder_started_ok) { - /// `mutex` is already locked. + std::lock_guard lock{mutex}; auto responder = std::move(responder_for_new_call); if (should_stop) return; makeResponderForNewCall(); - if (responder_started) + if (responder_started_ok) { /// Connection established and the responder has been started. /// So we pass this responder to a Call and make another responder for next connection. @@ -663,18 +740,8 @@ private: break; } - { - std::lock_guard lock{mutex}; - if (tag == responder_for_new_call.get()) - { - onNewCall(ok); - continue; - } - } - - /// Continue handling a Call. - auto call = static_cast(tag); - call->sync(ok); + auto & callback = *static_cast(tag); + callback(ok); } } From 81460937945871e6f787dbd9a208300f3cfdb814 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sat, 24 Oct 2020 00:48:34 +0300 Subject: [PATCH 271/425] Provide more information about errors. --- src/Common/ErrorCodes.cpp | 1 + src/Server/GRPCServer.cpp | 18 +++++++++++++++++- src/Server/grpc_protos/clickhouse_grpc.proto | 6 ++++-- tests/integration/test_grpc_protocol/test.py | 6 +++--- 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/Common/ErrorCodes.cpp b/src/Common/ErrorCodes.cpp index cc5785524c0..7174866ba00 100644 --- a/src/Common/ErrorCodes.cpp +++ b/src/Common/ErrorCodes.cpp @@ -525,6 +525,7 @@ M(556, SYNC_MYSQL_USER_ACCESS_ERROR)\ M(557, UNKNOWN_UNION) \ M(558, EXPECTED_ALL_OR_DISTINCT) \ + M(559, INVALID_GRPC_QUERY_INFO) \ \ M(999, KEEPER_EXCEPTION) \ M(1000, POCO_EXCEPTION) \ diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index 9ca6fe123b6..da2309218d7 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -31,6 +31,7 @@ namespace DB { namespace ErrorCodes { + extern const int INVALID_GRPC_QUERY_INFO; extern const int NETWORK_ERROR; extern const int NO_DATA_TO_INSERT; extern const int UNKNOWN_DATABASE; @@ -267,6 +268,8 @@ namespace query_context->applySettingsChanges(settings_changes); const Settings & settings = query_context->getSettingsRef(); + send_exception_with_stacktrace = query_context->getSettingsRef().calculate_text_stack_trace; + /// Set the current database if specified. if (!query_info.database().empty()) { @@ -371,6 +374,14 @@ namespace while (query_info.next_query_info()) { readQueryInfo(); + if (!query_info.query().empty() || !query_info.query_id().empty() || query_info.settings_size() + || !query_info.database().empty() || !query_info.input_data_delimiter().empty() || !query_info.output_format().empty() + || !query_info.user_name().empty() || !query_info.password().empty() || !query_info.quota().empty()) + { + throw Exception("Extra query infos can be used only to add more input data. " + "Only the following fields can be set: input_data, next_query_info", + ErrorCodes::INVALID_GRPC_QUERY_INFO); + } if (!query_info.input_data().empty()) { const char * begin = query_info.input_data().data(); @@ -479,6 +490,8 @@ namespace { io.onException(); + LOG_ERROR(log, "Code: {}, e.displayText() = {}, Stack trace:\n\n{}", exception.code(), exception.displayText(), exception.getStackTraceString()); + if (responder && !responder_finished) { try @@ -626,7 +639,10 @@ namespace { auto & grpc_exception = *result.mutable_exception(); grpc_exception.set_code(exception.code()); - grpc_exception.set_message(getExceptionMessage(exception, send_exception_with_stacktrace, true)); + grpc_exception.set_name(exception.name()); + grpc_exception.set_display_text(exception.displayText()); + if (send_exception_with_stacktrace) + grpc_exception.set_stack_trace(exception.getStackTraceString()); sendResult(); } } diff --git a/src/Server/grpc_protos/clickhouse_grpc.proto b/src/Server/grpc_protos/clickhouse_grpc.proto index 824cf2a892e..b50fd734267 100644 --- a/src/Server/grpc_protos/clickhouse_grpc.proto +++ b/src/Server/grpc_protos/clickhouse_grpc.proto @@ -24,8 +24,10 @@ message Progress { } message Exception { - int32 code = 1; - string message = 2; + int32 code = 1; + string name = 2; + string display_text = 3; + string stack_trace = 4; } message Result { diff --git a/tests/integration/test_grpc_protocol/test.py b/tests/integration/test_grpc_protocol/test.py index 12bb73722c0..f9cc53bb49a 100644 --- a/tests/integration/test_grpc_protocol/test.py +++ b/tests/integration/test_grpc_protocol/test.py @@ -57,7 +57,7 @@ def query_common(query_text, settings={}, input_data=[], output_format='TabSepar def query_no_errors(*args, **kwargs): results = query_common(*args, **kwargs) if results and results[-1].HasField('exception'): - raise Exception(results[-1].exception.message) + raise Exception(results[-1].exception.display_text) return results def query(*args, **kwargs): @@ -131,7 +131,7 @@ def test_totals_and_extremes(): def test_errors_handling(): e = query_and_get_error("") #print(e) - assert "Empty query" in e.message + assert "Empty query" in e.display_text query("CREATE TABLE t (a UInt8) ENGINE = Memory") e = query_and_get_error("CREATE TABLE t (a UInt8) ENGINE = Memory") - assert "Table default.t already exists" in e.message + assert "Table default.t already exists" in e.display_text From 1bab6a2337e877bb73f0576d52d74b4faa8a83de Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Mon, 2 Nov 2020 00:23:27 +0300 Subject: [PATCH 272/425] Added logging for grpc calls. --- src/Server/GRPCServer.cpp | 74 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 71 insertions(+), 3 deletions(-) diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index da2309218d7..0ce36445777 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -39,6 +39,49 @@ namespace ErrorCodes namespace { + /// Generates a description of a query by a specified query info. + /// This description is used for logging only. + String getQueryDescription(const GRPCQueryInfo & query_info) + { + String str; + if (!query_info.query().empty()) + { + std::string_view query = query_info.query(); + constexpr size_t max_query_length_to_log = 64; + if (query.length() > max_query_length_to_log) + query.remove_suffix(query.length() - max_query_length_to_log); + if (size_t format_pos = query.find(" FORMAT "); format_pos != String::npos) + query.remove_suffix(query.length() - format_pos - strlen(" FORMAT ")); + str.append("\"").append(query); + if (query != query_info.query()) + str.append("..."); + str.append("\""); + } + if (!query_info.query_id().empty()) + str.append(str.empty() ? "" : ", ").append("query_id: ").append(query_info.query_id()); + if (!query_info.input_data().empty()) + str.append(str.empty() ? "" : ", ").append("input_data: ").append(std::to_string(query_info.input_data().size())).append(" bytes"); + return str; + } + + /// Generates a description of a result. + /// This description is used for logging only. + String getResultDescription(const GRPCResult & result) + { + String str; + if (!result.output().empty()) + str.append("output: ").append(std::to_string(result.output().size())).append(" bytes"); + if (!result.totals().empty()) + str.append(str.empty() ? "" : ", ").append("totals"); + if (!result.extremes().empty()) + str.append(str.empty() ? "" : ", ").append("extremes"); + if (result.has_progress()) + str.append(str.empty() ? "" : ", ").append("progress"); + if (result.has_exception()) + str.append(str.empty() ? "" : ", ").append("exception"); + return str; + } + using CompletionCallback = std::function; /// Requests a connection and provides low-level interface for reading and writing. @@ -160,6 +203,10 @@ namespace bool finalize = false; bool responder_finished = false; + Stopwatch query_time; + UInt64 waited_for_client_reading = 0; + UInt64 waited_for_client_writing = 0; + std::atomic sending_result = false; /// atomic because it can be accessed both from call_thread and queue_thread std::atomic failed_to_send_result = false; @@ -223,7 +270,11 @@ namespace void Call::receiveQuery() { + LOG_INFO(log, "Handling call ExecuteQuery()"); + readQueryInfo(); + + LOG_DEBUG(log, "Received initial QueryInfo: {}", getQueryDescription(query_info)); } void Call::executeQuery() @@ -382,6 +433,7 @@ namespace "Only the following fields can be set: input_data, next_query_info", ErrorCodes::INVALID_GRPC_QUERY_INFO); } + LOG_DEBUG(log, "Received extra QueryInfo: input_data: {} bytes", query_info.input_data().size()); if (!query_info.input_data().empty()) { const char * begin = query_info.input_data().data(); @@ -484,6 +536,13 @@ namespace query_scope->logPeakMemoryUsage(); sendResult(); close(); + + LOG_INFO( + log, + "Finished call ExecuteQuery() in {} secs. (including reading by client: {}, writing by client: {})", + query_time.elapsedSeconds(), + static_cast(waited_for_client_reading) / 1000000000ULL, + static_cast(waited_for_client_writing) / 1000000000ULL); } void Call::onException(const Exception & exception) @@ -518,6 +577,7 @@ namespace void Call::readQueryInfo() { bool ok = false; + Stopwatch client_writing_watch; /// Start reading a query info. bool reading_query_info = true; @@ -532,13 +592,14 @@ namespace /// Wait until the reading is finished. std::unique_lock lock{dummy_mutex}; read_finished.wait(lock, [&] { return !reading_query_info; }); + waited_for_client_writing += client_writing_watch.elapsedNanoseconds(); if (!ok) { if (!query_info_index) throw Exception("Failed to read initial QueryInfo", ErrorCodes::NETWORK_ERROR); else - throw Exception("Failed to read extra QueryInfo with input data", ErrorCodes::NETWORK_ERROR); + throw Exception("Failed to read extra QueryInfo", ErrorCodes::NETWORK_ERROR); } ++query_info_index; @@ -592,12 +653,17 @@ namespace /// (gRPC doesn't allow to start sending another result while the previous is still being sending.) if (sending_result) { + Stopwatch client_reading_watch; std::unique_lock lock{dummy_mutex}; write_finished.wait(lock, [this] { return !sending_result; }); + waited_for_client_reading += client_reading_watch.elapsedNanoseconds(); } throwIfFailedToSendResult(); /// Start sending the result. + bool send_final_message = finalize || result.has_exception(); + LOG_DEBUG(log, "Sending {} result to the client: {}", (send_final_message ? "final" : "intermediate"), getResultDescription(result)); + sending_result = true; auto callback = [this](bool ok) { @@ -608,7 +674,7 @@ namespace write_finished.notify_one(); }; - bool send_final_message = finalize || result.has_exception(); + Stopwatch client_reading_final_watch; if (send_final_message) { responder_finished = true; @@ -625,14 +691,16 @@ namespace /// Wait until the result is actually sent. std::unique_lock lock{dummy_mutex}; write_finished.wait(lock, [this] { return !sending_result; }); + waited_for_client_reading += client_reading_final_watch.elapsedNanoseconds(); throwIfFailedToSendResult(); + LOG_TRACE(log, "Final result has been sent to the client"); } } void Call::throwIfFailedToSendResult() { if (failed_to_send_result) - throw Exception("Failed to send result to client", ErrorCodes::NETWORK_ERROR); + throw Exception("Failed to send result to the client", ErrorCodes::NETWORK_ERROR); } void Call::sendException(const Exception & exception) From de4586739af0349242b2d457eb481781cb60c603 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Fri, 23 Oct 2020 23:55:47 +0300 Subject: [PATCH 273/425] Fix using output format. --- src/Server/GRPCServer.cpp | 35 ++++++++++---------- tests/integration/test_grpc_protocol/test.py | 6 ++++ 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index 0ce36445777..6fc3d3b8421 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -11,7 +11,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -340,16 +342,26 @@ namespace ParserQuery parser(end); ast = parseQuery(parser, begin, end, "", settings.max_query_size, settings.max_parser_depth); - /// Choose output format. - output_format = "Values"; - if (!query_info.output_format().empty()) + /// Choose input format. + insert_query = ast->as(); + if (insert_query) { - output_format = query_info.output_format(); - query_context->setDefaultFormat(query_info.output_format()); + input_format = insert_query->format; + if (input_format.empty()) + input_format = "Values"; } + /// Choose output format. + query_context->setDefaultFormat(query_info.output_format()); + if (const auto * ast_query_with_output = dynamic_cast(ast.get()); + ast_query_with_output && ast_query_with_output->format) + { + output_format = getIdentifierName(ast_query_with_output->format); + } + if (output_format.empty()) + output_format = query_context->getDefaultFormat(); + /// Start executing the query. - insert_query = ast->as(); const auto * query_end = end; if (insert_query && insert_query->data) { @@ -374,17 +386,6 @@ namespace throw Exception("No data to insert", ErrorCodes::NO_DATA_TO_INSERT); } - /// Choose input format. - if (insert_query) - { - input_format = insert_query->format; - if (input_format.empty()) - input_format = "Values"; - } - - if (output_format.empty()) - output_format = input_format; - /// Prepare read buffer with data to insert. ConcatReadBuffer::ReadBuffers buffers; std::shared_ptr insert_query_data_buffer; diff --git a/tests/integration/test_grpc_protocol/test.py b/tests/integration/test_grpc_protocol/test.py index f9cc53bb49a..6d547c32a3a 100644 --- a/tests/integration/test_grpc_protocol/test.py +++ b/tests/integration/test_grpc_protocol/test.py @@ -120,6 +120,12 @@ def test_insert_query_streaming(): query("INSERT INTO t VALUES", input_data=["(1),(2),(3)", "(5),(4),(6)", "(8),(7),(9)"]) assert query("SELECT a FROM t ORDER BY a") == "1\n2\n3\n4\n5\n6\n7\n8\n9\n" +def test_output_format(): + query("CREATE TABLE t (a UInt8) ENGINE = Memory") + query("INSERT INTO t VALUES (1),(2),(3)") + assert query("SELECT a FROM t ORDER BY a FORMAT JSONEachRow") == '{"a":1}\n{"a":2}\n{"a":3}\n' + assert query("SELECT a FROM t ORDER BY a", output_format="JSONEachRow") == '{"a":1}\n{"a":2}\n{"a":3}\n' + def test_totals_and_extremes(): query("CREATE TABLE t (x UInt8, y UInt8) ENGINE = Memory") query("INSERT INTO t VALUES (1, 2), (2, 4), (3, 2), (3, 3), (3, 4)") From 63c8d8124a0092d69088a7713511ef1f76b28f52 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Wed, 4 Nov 2020 00:26:09 +0300 Subject: [PATCH 274/425] Added test for inserting to columns with defaults. --- tests/integration/test_grpc_protocol/test.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/integration/test_grpc_protocol/test.py b/tests/integration/test_grpc_protocol/test.py index 6d547c32a3a..e4aefd8e956 100644 --- a/tests/integration/test_grpc_protocol/test.py +++ b/tests/integration/test_grpc_protocol/test.py @@ -120,6 +120,15 @@ def test_insert_query_streaming(): query("INSERT INTO t VALUES", input_data=["(1),(2),(3)", "(5),(4),(6)", "(8),(7),(9)"]) assert query("SELECT a FROM t ORDER BY a") == "1\n2\n3\n4\n5\n6\n7\n8\n9\n" +def test_insert_default_column(): + query("CREATE TABLE t (a UInt8, b Int32 DEFAULT 100, c String DEFAULT 'c') ENGINE = Memory") + query("INSERT INTO t (c, a) VALUES ('x',1),('y',2)") + query("INSERT INTO t (a) FORMAT TabSeparated", input_data="3\n4\n") + assert query("SELECT * FROM t ORDER BY a") == "1\t100\tx\n" \ + "2\t100\ty\n" \ + "3\t100\tc\n" \ + "4\t100\tc\n" + def test_output_format(): query("CREATE TABLE t (a UInt8) ENGINE = Memory") query("INSERT INTO t VALUES (1),(2),(3)") From 797c84889f0f40b1e827a38b369bcf177e2ce268 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Wed, 4 Nov 2020 00:33:23 +0300 Subject: [PATCH 275/425] Use ReadBuffer to join input data from multiple query infos. That fixes inserting of a row splitted between two query infos. --- src/Server/GRPCServer.cpp | 199 ++++++++++++------- tests/integration/test_grpc_protocol/test.py | 7 +- 2 files changed, 137 insertions(+), 69 deletions(-) diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index 6fc3d3b8421..22ec855d186 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -149,6 +149,29 @@ namespace }; + /// Implementation of ReadBuffer, which just calls a callback. + class ReadBufferFromCallback : public ReadBuffer + { + public: + explicit ReadBufferFromCallback(const std::function(void)> & callback_) + : ReadBuffer(nullptr, 0), callback(callback_) {} + + private: + bool nextImpl() override + { + const void * new_pos; + size_t new_size; + std::tie(new_pos, new_size) = callback(); + if (!new_size) + return false; + BufferBase::set(static_cast(const_cast(new_pos)), new_size, 0); + return true; + } + + std::function(void)> callback; + }; + + /// Handles a connection after a responder is started (i.e. after getting a new call). class Call { @@ -163,15 +186,19 @@ namespace void receiveQuery(); void executeQuery(); + void processInput(); + void initializeBlockInputStream(const Block & header); + void generateOutput(); void generateOutputWithProcessors(); + void finishQuery(); void onException(const Exception & exception); void close(); void readQueryInfo(); - void addOutputToResult(const Block & block); + void addProgressToResult(); void addTotalsToResult(const Block & totals); void addExtremesToResult(const Block & extremes); @@ -205,6 +232,13 @@ namespace bool finalize = false; bool responder_finished = false; + std::optional read_buffer; + std::optional write_buffer; + BlockInputStreamPtr block_input_stream; + BlockOutputStreamPtr block_output_stream; + bool need_input_data_from_insert_query = true; + bool need_input_data_from_query_info = true; + Stopwatch query_time; UInt64 waited_for_client_reading = 0; UInt64 waited_for_client_writing = 0; @@ -376,6 +410,8 @@ namespace if (!io.out) return; + initializeBlockInputStream(io.out->getHeader()); + bool has_data_to_insert = (insert_query && insert_query->data) || !query_info.input_data().empty() || query_info.next_query_info(); if (!has_data_to_insert) @@ -386,69 +422,77 @@ namespace throw Exception("No data to insert", ErrorCodes::NO_DATA_TO_INSERT); } - /// Prepare read buffer with data to insert. - ConcatReadBuffer::ReadBuffers buffers; - std::shared_ptr insert_query_data_buffer; - std::shared_ptr input_data_buffer; - if (insert_query && insert_query->data) - { - insert_query_data_buffer = std::make_shared(insert_query->data, insert_query->end - insert_query->data); - buffers.push_back(insert_query_data_buffer.get()); - } - if (!query_info.input_data().empty()) - { - input_data_buffer = std::make_shared(query_info.input_data().data(), query_info.input_data().size()); - buffers.push_back(input_data_buffer.get()); - } - auto input_buffer_contacenated = std::make_unique(buffers); - auto res_stream = query_context->getInputFormat( - input_format, *input_buffer_contacenated, io.out->getHeader(), query_context->getSettings().max_insert_block_size); - - /// Add default values if necessary. - if (insert_query) - { - auto table_id = query_context->resolveStorageID(insert_query->table_id, Context::ResolveOrdinary); - if (query_context->getSettingsRef().input_format_defaults_for_omitted_fields && table_id) - { - StoragePtr storage = DatabaseCatalog::instance().getTable(table_id, *query_context); - const auto & columns = storage->getInMemoryMetadataPtr()->getColumns(); - if (!columns.empty()) - res_stream = std::make_shared(res_stream, columns, *query_context); - } - } - - /// Read input data. + block_input_stream->readPrefix(); io.out->writePrefix(); - while (auto block = res_stream->read()) + while (auto block = block_input_stream->read()) io.out->write(block); - while (query_info.next_query_info()) - { - readQueryInfo(); - if (!query_info.query().empty() || !query_info.query_id().empty() || query_info.settings_size() - || !query_info.database().empty() || !query_info.input_data_delimiter().empty() || !query_info.output_format().empty() - || !query_info.user_name().empty() || !query_info.password().empty() || !query_info.quota().empty()) - { - throw Exception("Extra query infos can be used only to add more input data. " - "Only the following fields can be set: input_data, next_query_info", - ErrorCodes::INVALID_GRPC_QUERY_INFO); - } - LOG_DEBUG(log, "Received extra QueryInfo: input_data: {} bytes", query_info.input_data().size()); - if (!query_info.input_data().empty()) - { - const char * begin = query_info.input_data().data(); - const char * end = begin + query_info.input_data().size(); - ReadBufferFromMemory data_in(begin, end - begin); - res_stream = query_context->getInputFormat( - input_format, data_in, io.out->getHeader(), query_context->getSettings().max_insert_block_size); + block_input_stream->readSuffix(); + io.out->writeSuffix(); + } - while (auto block = res_stream->read()) - io.out->write(block); + void Call::initializeBlockInputStream(const Block & header) + { + assert(!read_buffer); + read_buffer.emplace([this]() -> std::pair + { + if (need_input_data_from_insert_query) + { + need_input_data_from_insert_query = false; + if (insert_query && insert_query->data && (insert_query->data != insert_query->end)) + { + return {insert_query->data, insert_query->end - insert_query->data}; + } + } + + while (true) + { + if (need_input_data_from_query_info) + { + need_input_data_from_query_info = false; + if (!query_info.input_data().empty()) + return {query_info.input_data().data(), query_info.input_data().size()}; + } + + if (!query_info.next_query_info()) + break; + + readQueryInfo(); + if (!query_info.query().empty() || !query_info.query_id().empty() || !query_info.settings().empty() + || !query_info.database().empty() || !query_info.input_data_delimiter().empty() || !query_info.output_format().empty() + || !query_info.user_name().empty() || !query_info.password().empty() || !query_info.quota().empty()) + { + throw Exception("Extra query infos can be used only to add more input data. " + "Only the following fields can be set: input_data, next_query_info", + ErrorCodes::INVALID_GRPC_QUERY_INFO); + } + LOG_DEBUG(log, "Received extra QueryInfo with input data: {} bytes", query_info.input_data().size()); + need_input_data_from_query_info = true; + } + + return {nullptr, 0}; /// no more input data + }); + + assert(!block_input_stream); + block_input_stream = query_context->getInputFormat( + input_format, *read_buffer, header, query_context->getSettings().max_insert_block_size); + + /// Add default values if necessary. + if (ast) + { + if (insert_query) + { + auto table_id = query_context->resolveStorageID(insert_query->table_id, Context::ResolveOrdinary); + if (query_context->getSettingsRef().input_format_defaults_for_omitted_fields && table_id) + { + StoragePtr storage = DatabaseCatalog::instance().getTable(table_id, *query_context); + const auto & columns = storage->getInMemoryMetadataPtr()->getColumns(); + if (!columns.empty()) + block_input_stream = std::make_shared(block_input_stream, columns, *query_context); + } } } - - io.out->writeSuffix(); } void Call::generateOutput() @@ -463,9 +507,13 @@ namespace return; AsynchronousBlockInputStream async_in(io.in); + write_buffer.emplace(*result.mutable_output()); + block_output_stream = query_context->getOutputFormat(output_format, *write_buffer, async_in.getHeader()); Stopwatch after_send_progress; async_in.readPrefix(); + block_output_stream->writePrefix(); + while (true) { Block block; @@ -479,7 +527,7 @@ namespace throwIfFailedToSendResult(); if (block && !io.null_format) - addOutputToResult(block); + block_output_stream->write(block); if (after_send_progress.elapsedMicroseconds() >= interactive_delay) { @@ -487,12 +535,15 @@ namespace after_send_progress.restart(); } - if (!result.output().empty() || result.has_progress()) + bool has_output = write_buffer->offset(); + if (has_output || result.has_progress()) sendResult(); throwIfFailedToSendResult(); } + async_in.readSuffix(); + block_output_stream->writeSuffix(); addTotalsToResult(io.in->getTotals()); addExtremesToResult(io.in->getExtremes()); @@ -504,6 +555,9 @@ namespace return; auto executor = std::make_shared(io.pipeline); + write_buffer.emplace(*result.mutable_output()); + block_output_stream = query_context->getOutputFormat(output_format, *write_buffer, executor->getHeader()); + block_output_stream->writePrefix(); Stopwatch after_send_progress; Block block; @@ -512,7 +566,7 @@ namespace throwIfFailedToSendResult(); if (block && !io.null_format) - addOutputToResult(block); + block_output_stream->write(block); if (after_send_progress.elapsedMicroseconds() >= interactive_delay) { @@ -520,12 +574,15 @@ namespace after_send_progress.restart(); } - if (!result.output().empty() || result.has_progress()) + bool has_output = write_buffer->offset(); + if (has_output || result.has_progress()) sendResult(); throwIfFailedToSendResult(); } + block_output_stream->writeSuffix(); + addTotalsToResult(executor->getTotalsBlock()); addExtremesToResult(executor->getExtremesBlock()); } @@ -570,6 +627,10 @@ namespace void Call::close() { responder.reset(); + block_input_stream.reset(); + block_output_stream.reset(); + read_buffer.reset(); + write_buffer.reset(); io = {}; query_scope.reset(); query_context.reset(); @@ -606,13 +667,6 @@ namespace ++query_info_index; } - void Call::addOutputToResult(const Block & block) - { - WriteBufferFromString buf{*result.mutable_output()}; - auto stream = query_context->getOutputFormat(output_format, buf, block); - stream->write(block); - } - void Call::addProgressToResult() { auto & grpc_progress = *result.mutable_progress(); @@ -631,7 +685,9 @@ namespace WriteBufferFromString buf{*result.mutable_totals()}; auto stream = query_context->getOutputFormat(output_format, buf, totals); + stream->writePrefix(); stream->write(totals); + stream->writeSuffix(); } void Call::addExtremesToResult(const Block & extremes) @@ -641,7 +697,9 @@ namespace WriteBufferFromString buf{*result.mutable_extremes()}; auto stream = query_context->getOutputFormat(output_format, buf, extremes); + stream->writePrefix(); stream->write(extremes); + stream->writeSuffix(); } void Call::sendResult() @@ -665,6 +723,9 @@ namespace bool send_final_message = finalize || result.has_exception(); LOG_DEBUG(log, "Sending {} result to the client: {}", (send_final_message ? "final" : "intermediate"), getResultDescription(result)); + if (write_buffer) + write_buffer->finalize(); + sending_result = true; auto callback = [this](bool ok) { @@ -686,6 +747,8 @@ namespace /// gRPC has already retrieved all data from `result`, so we don't have to keep it. result.Clear(); + if (write_buffer) + write_buffer->restart(); if (send_final_message) { diff --git a/tests/integration/test_grpc_protocol/test.py b/tests/integration/test_grpc_protocol/test.py index e4aefd8e956..8a6a4d9cf6f 100644 --- a/tests/integration/test_grpc_protocol/test.py +++ b/tests/integration/test_grpc_protocol/test.py @@ -117,7 +117,7 @@ def test_insert_query(): def test_insert_query_streaming(): query("CREATE TABLE t (a UInt8) ENGINE = Memory") - query("INSERT INTO t VALUES", input_data=["(1),(2),(3)", "(5),(4),(6)", "(8),(7),(9)"]) + query("INSERT INTO t VALUES", input_data=["(1),(2),(3),", "(5),(4),(6),", "(7),(8),(9)"]) assert query("SELECT a FROM t ORDER BY a") == "1\n2\n3\n4\n5\n6\n7\n8\n9\n" def test_insert_default_column(): @@ -129,6 +129,11 @@ def test_insert_default_column(): "3\t100\tc\n" \ "4\t100\tc\n" +def test_insert_splitted_row(): + query("CREATE TABLE t (a UInt8) ENGINE = Memory") + query("INSERT INTO t VALUES", input_data=["(1),(2),(", "3),(5),(4),(6)"]) + assert query("SELECT a FROM t ORDER BY a") == "1\n2\n3\n4\n5\n6\n" + def test_output_format(): query("CREATE TABLE t (a UInt8) ENGINE = Memory") query("INSERT INTO t VALUES (1),(2),(3)") From 218d9ea3e81956d4bf164289db5567ac286935f9 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Wed, 4 Nov 2020 17:59:31 +0300 Subject: [PATCH 276/425] Added input_data_delimiter to protocol. --- src/Server/GRPCServer.cpp | 13 +++++++++++++ src/Server/grpc_protos/clickhouse_grpc.proto | 11 ++++++----- tests/integration/test_grpc_protocol/test.py | 15 ++++++++++++--- 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index 22ec855d186..80f738d63bf 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -216,6 +216,7 @@ namespace ASTPtr ast; ASTInsertQuery * insert_query = nullptr; String input_format; + String input_data_delimiter; String output_format; uint64_t interactive_delay = 100000; bool send_exception_with_stacktrace = true; @@ -238,6 +239,7 @@ namespace BlockOutputStreamPtr block_output_stream; bool need_input_data_from_insert_query = true; bool need_input_data_from_query_info = true; + bool need_input_data_delimiter = false; Stopwatch query_time; UInt64 waited_for_client_reading = 0; @@ -385,6 +387,8 @@ namespace input_format = "Values"; } + input_data_delimiter = query_info.input_data_delimiter(); + /// Choose output format. query_context->setDefaultFormat(query_info.output_format()); if (const auto * ast_query_with_output = dynamic_cast(ast.get()); @@ -442,6 +446,7 @@ namespace need_input_data_from_insert_query = false; if (insert_query && insert_query->data && (insert_query->data != insert_query->end)) { + need_input_data_delimiter = !input_data_delimiter.empty(); return {insert_query->data, insert_query->end - insert_query->data}; } } @@ -450,9 +455,17 @@ namespace { if (need_input_data_from_query_info) { + if (need_input_data_delimiter && !query_info.input_data().empty()) + { + need_input_data_delimiter = false; + return {input_data_delimiter.data(), input_data_delimiter.size()}; + } need_input_data_from_query_info = false; if (!query_info.input_data().empty()) + { + need_input_data_delimiter = !input_data_delimiter.empty(); return {query_info.input_data().data(), query_info.input_data().size()}; + } } if (!query_info.next_query_info()) diff --git a/src/Server/grpc_protos/clickhouse_grpc.proto b/src/Server/grpc_protos/clickhouse_grpc.proto index b50fd734267..61ccaebf8b4 100644 --- a/src/Server/grpc_protos/clickhouse_grpc.proto +++ b/src/Server/grpc_protos/clickhouse_grpc.proto @@ -8,11 +8,12 @@ message QueryInfo { map settings = 3; string database = 4; string input_data = 5; - string output_format = 6; - string user_name = 7; - string password = 8; - string quota = 9; - bool next_query_info = 10; + string input_data_delimiter = 6; + string output_format = 7; + string user_name = 8; + string password = 9; + string quota = 10; + bool next_query_info = 11; } message Progress { diff --git a/tests/integration/test_grpc_protocol/test.py b/tests/integration/test_grpc_protocol/test.py index 8a6a4d9cf6f..71e47e7fe14 100644 --- a/tests/integration/test_grpc_protocol/test.py +++ b/tests/integration/test_grpc_protocol/test.py @@ -39,7 +39,7 @@ def create_channel(): main_channel = channel return channel -def query_common(query_text, settings={}, input_data=[], output_format='TabSeparated', query_id='123', channel=None): +def query_common(query_text, settings={}, input_data=[], input_data_delimiter='', output_format='TabSeparated', query_id='123', channel=None): if type(input_data) == str: input_data = [input_data] if not channel: @@ -47,8 +47,8 @@ def query_common(query_text, settings={}, input_data=[], output_format='TabSepar stub = clickhouse_grpc_pb2_grpc.ClickHouseStub(channel) def send_query_info(): input_data_part = input_data.pop(0) if input_data else '' - yield clickhouse_grpc_pb2.QueryInfo(query=query_text, settings=settings, input_data=input_data_part, output_format=output_format, - query_id=query_id, next_query_info=bool(input_data)) + yield clickhouse_grpc_pb2.QueryInfo(query=query_text, settings=settings, input_data=input_data_part, input_data_delimiter=input_data_delimiter, + output_format=output_format, query_id=query_id, next_query_info=bool(input_data)) while input_data: input_data_part = input_data.pop(0) yield clickhouse_grpc_pb2.QueryInfo(input_data=input_data_part, next_query_info=bool(input_data)) @@ -120,6 +120,15 @@ def test_insert_query_streaming(): query("INSERT INTO t VALUES", input_data=["(1),(2),(3),", "(5),(4),(6),", "(7),(8),(9)"]) assert query("SELECT a FROM t ORDER BY a") == "1\n2\n3\n4\n5\n6\n7\n8\n9\n" +def test_insert_query_delimiter(): + query("CREATE TABLE t (a UInt8) ENGINE = Memory") + query("INSERT INTO t FORMAT CSV 1\n2", input_data=["3", "4\n5"], input_data_delimiter='\n') + assert query("SELECT a FROM t ORDER BY a") == "1\n2\n3\n4\n5\n" + query("DROP TABLE t") + query("CREATE TABLE t (a UInt8) ENGINE = Memory") + query("INSERT INTO t FORMAT CSV 1\n2", input_data=["3", "4\n5"]) + assert query("SELECT a FROM t ORDER BY a") == "1\n5\n234\n" + def test_insert_default_column(): query("CREATE TABLE t (a UInt8, b Int32 DEFAULT 100, c String DEFAULT 'c') ENGINE = Memory") query("INSERT INTO t (c, a) VALUES ('x',1),('y',2)") From 4f0405af93fb7d54eae010a52ef9d02c861bb779 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sat, 24 Oct 2020 03:37:57 +0300 Subject: [PATCH 277/425] Send logs via gRPC protocol too. --- src/Server/GRPCServer.cpp | 101 ++++++++++++++++++- src/Server/grpc_protos/clickhouse_grpc.proto | 27 ++++- tests/integration/test_grpc_protocol/test.py | 14 +++ 3 files changed, 137 insertions(+), 5 deletions(-) diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index 80f738d63bf..d4246d253d8 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -1,11 +1,14 @@ #include "GRPCServer.h" #if USE_GRPC +#include +#include #include #include #include #include #include +#include #include #include #include @@ -79,6 +82,8 @@ namespace str.append(str.empty() ? "" : ", ").append("extremes"); if (result.has_progress()) str.append(str.empty() ? "" : ", ").append("progress"); + if (result.logs_size()) + str.append(str.empty() ? "" : ", ").append("logs: ").append(std::to_string(result.logs_size())).append(" entries"); if (result.has_exception()) str.append(str.empty() ? "" : ", ").append("exception"); return str; @@ -195,6 +200,7 @@ namespace void finishQuery(); void onException(const Exception & exception); + void onFatalError(); void close(); void readQueryInfo(); @@ -202,6 +208,7 @@ namespace void addProgressToResult(); void addTotalsToResult(const Block & totals); void addExtremesToResult(const Block & extremes); + void addLogsToResult(); void sendResult(); void throwIfFailedToSendResult(); void sendException(const Exception & exception); @@ -223,6 +230,7 @@ namespace BlockIO io; Progress progress; + InternalTextLogsQueuePtr logs_queue; GRPCQueryInfo query_info; /// We reuse the same messages multiple times. GRPCResult result; @@ -357,7 +365,16 @@ namespace query_context->applySettingsChanges(settings_changes); const Settings & settings = query_context->getSettingsRef(); + /// Prepare for sending exceptions and logs. send_exception_with_stacktrace = query_context->getSettingsRef().calculate_text_stack_trace; + const auto client_logs_level = query_context->getSettingsRef().send_logs_level; + if (client_logs_level != LogsLevel::none) + { + logs_queue = std::make_shared(); + logs_queue->max_priority = Poco::Logger::parseLevel(client_logs_level.toString()); + CurrentThread::attachInternalTextLogsQueue(logs_queue, client_logs_level); + CurrentThread::setFatalErrorCallback([this]{ onFatalError(); }); + } /// Set the current database if specified. if (!query_info.database().empty()) @@ -480,7 +497,7 @@ namespace "Only the following fields can be set: input_data, next_query_info", ErrorCodes::INVALID_GRPC_QUERY_INFO); } - LOG_DEBUG(log, "Received extra QueryInfo with input data: {} bytes", query_info.input_data().size()); + LOG_DEBUG(log, "Received extra QueryInfo: input_data: {} bytes", query_info.input_data().size()); need_input_data_from_query_info = true; } @@ -548,8 +565,10 @@ namespace after_send_progress.restart(); } + addLogsToResult(); + bool has_output = write_buffer->offset(); - if (has_output || result.has_progress()) + if (has_output || result.has_progress() || result.logs_size()) sendResult(); throwIfFailedToSendResult(); @@ -587,8 +606,10 @@ namespace after_send_progress.restart(); } + addLogsToResult(); + bool has_output = write_buffer->offset(); - if (has_output || result.has_progress()) + if (has_output || result.has_progress() || result.logs_size()) sendResult(); throwIfFailedToSendResult(); @@ -605,6 +626,7 @@ namespace finalize = true; io.onFinish(); query_scope->logPeakMemoryUsage(); + addLogsToResult(); sendResult(); close(); @@ -624,6 +646,16 @@ namespace if (responder && !responder_finished) { + try + { + /// Try to send logs to client, but it could be risky too. + addLogsToResult(); + } + catch (...) + { + LOG_WARNING(log, "Couldn't send logs to client"); + } + try { sendException(exception); @@ -637,6 +669,22 @@ namespace close(); } + void Call::onFatalError() + { + if (responder && !responder_finished) + { + try + { + finalize = true; + addLogsToResult(); + sendResult(); + } + catch (...) + { + } + } + } + void Call::close() { responder.reset(); @@ -715,6 +763,53 @@ namespace stream->writeSuffix(); } + void Call::addLogsToResult() + { + if (!logs_queue) + return; + + static_assert(::clickhouse::grpc::LOG_NONE == 0); + static_assert(::clickhouse::grpc::LOG_FATAL == static_cast(Poco::Message::PRIO_FATAL)); + static_assert(::clickhouse::grpc::LOG_CRITICAL == static_cast(Poco::Message::PRIO_CRITICAL)); + static_assert(::clickhouse::grpc::LOG_ERROR == static_cast(Poco::Message::PRIO_ERROR)); + static_assert(::clickhouse::grpc::LOG_WARNING == static_cast(Poco::Message::PRIO_WARNING)); + static_assert(::clickhouse::grpc::LOG_NOTICE == static_cast(Poco::Message::PRIO_NOTICE)); + static_assert(::clickhouse::grpc::LOG_INFORMATION == static_cast(Poco::Message::PRIO_INFORMATION)); + static_assert(::clickhouse::grpc::LOG_DEBUG == static_cast(Poco::Message::PRIO_DEBUG)); + static_assert(::clickhouse::grpc::LOG_TRACE == static_cast(Poco::Message::PRIO_TRACE)); + + MutableColumns columns; + while (logs_queue->tryPop(columns)) + { + if (columns.empty() || columns[0]->empty()) + continue; + + const auto & column_time = typeid_cast(*columns[0]); + const auto & column_time_microseconds = typeid_cast(*columns[1]); + const auto & column_query_id = typeid_cast(*columns[3]); + const auto & column_thread_id = typeid_cast(*columns[4]); + const auto & column_level = typeid_cast(*columns[5]); + const auto & column_source = typeid_cast(*columns[6]); + const auto & column_text = typeid_cast(*columns[7]); + size_t num_rows = column_time.size(); + + for (size_t row = 0; row != num_rows; ++row) + { + auto & log_entry = *result.add_logs(); + log_entry.set_time(column_time.getElement(row)); + log_entry.set_time_microseconds(column_time_microseconds.getElement(row)); + StringRef query_id = column_query_id.getDataAt(row); + log_entry.set_query_id(query_id.data, query_id.size); + log_entry.set_thread_id(column_thread_id.getElement(row)); + log_entry.set_level(static_cast<::clickhouse::grpc::LogsLevel>(column_level.getElement(row))); + StringRef source = column_source.getDataAt(row); + log_entry.set_source(source.data, source.size); + StringRef text = column_text.getDataAt(row); + log_entry.set_text(text.data, text.size); + } + } + } + void Call::sendResult() { /// gRPC doesn't allow to write anything to a finished responder. diff --git a/src/Server/grpc_protos/clickhouse_grpc.proto b/src/Server/grpc_protos/clickhouse_grpc.proto index 61ccaebf8b4..0fa01645825 100644 --- a/src/Server/grpc_protos/clickhouse_grpc.proto +++ b/src/Server/grpc_protos/clickhouse_grpc.proto @@ -16,6 +16,28 @@ message QueryInfo { bool next_query_info = 11; } +enum LogsLevel { + LOG_NONE = 0; + LOG_FATAL = 1; + LOG_CRITICAL = 2; + LOG_ERROR = 3; + LOG_WARNING = 4; + LOG_NOTICE = 5; + LOG_INFORMATION = 6; + LOG_DEBUG = 7; + LOG_TRACE = 8; +} + +message LogEntry { + uint32 time = 1; + uint32 time_microseconds = 2; + uint64 thread_id = 3; + string query_id = 4; + LogsLevel level = 5; + string source = 6; + string text = 7; +} + message Progress { uint64 read_rows = 1; uint64 read_bytes = 2; @@ -35,8 +57,9 @@ message Result { string output = 1; string totals = 2; string extremes = 3; - Progress progress = 4; - Exception exception = 5; + repeated LogEntry logs = 4; + Progress progress = 5; + Exception exception = 6; } service ClickHouse { diff --git a/tests/integration/test_grpc_protocol/test.py b/tests/integration/test_grpc_protocol/test.py index 71e47e7fe14..0f1e448bf22 100644 --- a/tests/integration/test_grpc_protocol/test.py +++ b/tests/integration/test_grpc_protocol/test.py @@ -84,6 +84,14 @@ def query_and_get_extremes(*args, **kwargs): extremes += result.extremes return extremes +def query_and_get_logs(*args, **kwargs): + logs = "" + for result in query_no_errors(*args, **kwargs): + for log_entry in result.logs: + #print(log_entry) + logs += log_entry.text + "\n" + return logs + @pytest.fixture(scope="module", autouse=True) def start_cluster(): cluster.start() @@ -164,3 +172,9 @@ def test_errors_handling(): query("CREATE TABLE t (a UInt8) ENGINE = Memory") e = query_and_get_error("CREATE TABLE t (a UInt8) ENGINE = Memory") assert "Table default.t already exists" in e.display_text + +def test_logs(): + logs = query_and_get_logs("SELECT 1", settings={'send_logs_level':'debug'}) + assert "SELECT 1" in logs + assert "Read 1 rows" in logs + assert "Peak memory usage" in logs From 98e2cc4117afc6e2b44524873900c5dc7a5496fa Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sat, 24 Oct 2020 09:49:45 +0300 Subject: [PATCH 278/425] Fix sending progress. --- src/Server/GRPCServer.cpp | 5 +++- tests/integration/test_grpc_protocol/test.py | 27 ++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index d4246d253d8..e9c100f7c1f 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -625,6 +625,7 @@ namespace { finalize = true; io.onFinish(); + addProgressToResult(); query_scope->logPeakMemoryUsage(); addLogsToResult(); sendResult(); @@ -730,8 +731,10 @@ namespace void Call::addProgressToResult() { - auto & grpc_progress = *result.mutable_progress(); auto values = progress.fetchAndResetPiecewiseAtomically(); + if (!values.read_rows && !values.read_bytes && !values.total_rows_to_read && !values.written_rows && !values.written_bytes) + return; + auto & grpc_progress = *result.mutable_progress(); grpc_progress.set_read_rows(values.read_rows); grpc_progress.set_read_bytes(values.read_bytes); grpc_progress.set_total_rows_to_read(values.total_rows_to_read); diff --git a/tests/integration/test_grpc_protocol/test.py b/tests/integration/test_grpc_protocol/test.py index 0f1e448bf22..10162a692dc 100644 --- a/tests/integration/test_grpc_protocol/test.py +++ b/tests/integration/test_grpc_protocol/test.py @@ -178,3 +178,30 @@ def test_logs(): assert "SELECT 1" in logs assert "Read 1 rows" in logs assert "Peak memory usage" in logs + +def test_progress(): + results = query_no_errors("SELECT number, sleep(0.31) FROM numbers(8) SETTINGS max_block_size=2, interactive_delay=100000") + #print(results) + assert str(results) ==\ +"""[progress { + read_rows: 2 + read_bytes: 16 + total_rows_to_read: 8 +} +, output: "0\\t0\\n1\\t0\\n" +, progress { + read_rows: 2 + read_bytes: 16 +} +, output: "2\\t0\\n3\\t0\\n" +, progress { + read_rows: 2 + read_bytes: 16 +} +, output: "4\\t0\\n5\\t0\\n" +, progress { + read_rows: 2 + read_bytes: 16 +} +, output: "6\\t0\\n7\\t0\\n" +, ]""" From 9285f7edc1905676ad85971ea91f84d6770cc0c4 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sat, 7 Nov 2020 21:00:55 +0300 Subject: [PATCH 279/425] Send profile info to client. --- src/Server/GRPCServer.cpp | 13 +++++++++++++ src/Server/grpc_protos/clickhouse_grpc.proto | 11 ++++++++++- tests/integration/test_grpc_protocol/test.py | 9 ++++++++- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index e9c100f7c1f..c43cef3cb8e 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -208,6 +208,7 @@ namespace void addProgressToResult(); void addTotalsToResult(const Block & totals); void addExtremesToResult(const Block & extremes); + void addProfileInfoToResult(const BlockStreamProfileInfo & info); void addLogsToResult(); void sendResult(); void throwIfFailedToSendResult(); @@ -579,6 +580,7 @@ namespace addTotalsToResult(io.in->getTotals()); addExtremesToResult(io.in->getExtremes()); + addProfileInfoToResult(io.in->getProfileInfo()); } void Call::generateOutputWithProcessors() @@ -619,6 +621,7 @@ namespace addTotalsToResult(executor->getTotalsBlock()); addExtremesToResult(executor->getExtremesBlock()); + addProfileInfoToResult(executor->getProfileInfo()); } void Call::finishQuery() @@ -766,6 +769,16 @@ namespace stream->writeSuffix(); } + void Call::addProfileInfoToResult(const BlockStreamProfileInfo & info) + { + auto & stats = *result.mutable_stats(); + stats.set_rows(info.rows); + stats.set_blocks(info.blocks); + stats.set_allocated_bytes(info.bytes); + stats.set_applied_limit(info.hasAppliedLimit()); + stats.set_rows_before_limit(info.getRowsBeforeLimit()); + } + void Call::addLogsToResult() { if (!logs_queue) diff --git a/src/Server/grpc_protos/clickhouse_grpc.proto b/src/Server/grpc_protos/clickhouse_grpc.proto index 0fa01645825..87b61295a58 100644 --- a/src/Server/grpc_protos/clickhouse_grpc.proto +++ b/src/Server/grpc_protos/clickhouse_grpc.proto @@ -46,6 +46,14 @@ message Progress { uint64 written_bytes = 5; } +message Stats { + uint64 rows = 1; + uint64 blocks = 2; + uint64 allocated_bytes = 3; + bool applied_limit = 4; + uint64 rows_before_limit = 5; +} + message Exception { int32 code = 1; string name = 2; @@ -59,7 +67,8 @@ message Result { string extremes = 3; repeated LogEntry logs = 4; Progress progress = 5; - Exception exception = 6; + Stats stats = 6; + Exception exception = 7; } service ClickHouse { diff --git a/tests/integration/test_grpc_protocol/test.py b/tests/integration/test_grpc_protocol/test.py index 10162a692dc..b6acd2451c2 100644 --- a/tests/integration/test_grpc_protocol/test.py +++ b/tests/integration/test_grpc_protocol/test.py @@ -204,4 +204,11 @@ def test_progress(): read_bytes: 16 } , output: "6\\t0\\n7\\t0\\n" -, ]""" +, stats { + rows: 8 + blocks: 4 + allocated_bytes: 324 + applied_limit: true + rows_before_limit: 8 +} +]""" From b51e14253d9507d445f98e795b51471f343ed434 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sat, 24 Oct 2020 19:57:27 +0300 Subject: [PATCH 280/425] Added support for sessions in gRPC protocol. --- src/Server/GRPCServer.cpp | 37 +++++++++++++++++++- src/Server/grpc_protos/clickhouse_grpc.proto | 5 ++- tests/integration/test_grpc_protocol/test.py | 18 ++++++++-- 3 files changed, 56 insertions(+), 4 deletions(-) diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index c43cef3cb8e..d985a0d4df7 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -37,6 +38,7 @@ namespace DB namespace ErrorCodes { extern const int INVALID_GRPC_QUERY_INFO; + extern const int INVALID_SESSION_TIMEOUT; extern const int NETWORK_ERROR; extern const int NO_DATA_TO_INSERT; extern const int UNKNOWN_DATABASE; @@ -44,6 +46,24 @@ namespace ErrorCodes namespace { + /// Gets session's timeout from query info or from the server config. + std::chrono::steady_clock::duration getSessionTimeout(const GRPCQueryInfo & query_info, const Poco::Util::AbstractConfiguration & config) + { + auto session_timeout = query_info.session_timeout(); + if (session_timeout) + { + auto max_session_timeout = config.getUInt("max_session_timeout", 3600); + if (session_timeout > max_session_timeout) + throw Exception( + "Session timeout '" + std::to_string(session_timeout) + "' is larger than max_session_timeout: " + + std::to_string(max_session_timeout) + ". Maximum session timeout could be modified in configuration file.", + ErrorCodes::INVALID_SESSION_TIMEOUT); + } + else + session_timeout = config.getInt("default_session_timeout", 60); + return std::chrono::seconds(session_timeout); + } + /// Generates a description of a query by a specified query info. /// This description is used for logging only. String getQueryDescription(const GRPCQueryInfo & query_info) @@ -218,6 +238,7 @@ namespace IServer & iserver; Poco::Logger * log = nullptr; + std::shared_ptr session; std::optional query_context; std::optional query_scope; String query_text; @@ -348,6 +369,16 @@ namespace if (!quota_key.empty()) query_context->setQuotaKey(quota_key); + /// The user could specify session identifier and session timeout. + /// It allows to modify settings, create temporary tables and reuse them in subsequent requests. + if (!query_info.session_id().empty()) + { + session = query_context->acquireNamedSession( + query_info.session_id(), getSessionTimeout(query_info, iserver.config()), query_info.session_check()); + query_context = session->context; + query_context->setSessionContext(session->context); + } + /// Set client info. ClientInfo & client_info = query_context->getClientInfo(); client_info.query_kind = ClientInfo::QueryKind::INITIAL_QUERY; @@ -492,7 +523,8 @@ namespace readQueryInfo(); if (!query_info.query().empty() || !query_info.query_id().empty() || !query_info.settings().empty() || !query_info.database().empty() || !query_info.input_data_delimiter().empty() || !query_info.output_format().empty() - || !query_info.user_name().empty() || !query_info.password().empty() || !query_info.quota().empty()) + || !query_info.user_name().empty() || !query_info.password().empty() || !query_info.quota().empty() + || !query_info.session_id().empty()) { throw Exception("Extra query infos can be used only to add more input data. " "Only the following fields can be set: input_data, next_query_info", @@ -699,6 +731,9 @@ namespace io = {}; query_scope.reset(); query_context.reset(); + if (session) + session->release(); + session.reset(); } void Call::readQueryInfo() diff --git a/src/Server/grpc_protos/clickhouse_grpc.proto b/src/Server/grpc_protos/clickhouse_grpc.proto index 87b61295a58..6d42c2be2de 100644 --- a/src/Server/grpc_protos/clickhouse_grpc.proto +++ b/src/Server/grpc_protos/clickhouse_grpc.proto @@ -13,7 +13,10 @@ message QueryInfo { string user_name = 8; string password = 9; string quota = 10; - bool next_query_info = 11; + string session_id = 11; + bool session_check = 12; + uint32 session_timeout = 13; + bool next_query_info = 14; } enum LogsLevel { diff --git a/tests/integration/test_grpc_protocol/test.py b/tests/integration/test_grpc_protocol/test.py index b6acd2451c2..11bac101f76 100644 --- a/tests/integration/test_grpc_protocol/test.py +++ b/tests/integration/test_grpc_protocol/test.py @@ -39,7 +39,7 @@ def create_channel(): main_channel = channel return channel -def query_common(query_text, settings={}, input_data=[], input_data_delimiter='', output_format='TabSeparated', query_id='123', channel=None): +def query_common(query_text, settings={}, input_data=[], input_data_delimiter='', output_format='TabSeparated', query_id='123', session_id='', channel=None): if type(input_data) == str: input_data = [input_data] if not channel: @@ -48,7 +48,7 @@ def query_common(query_text, settings={}, input_data=[], input_data_delimiter='' def send_query_info(): input_data_part = input_data.pop(0) if input_data else '' yield clickhouse_grpc_pb2.QueryInfo(query=query_text, settings=settings, input_data=input_data_part, input_data_delimiter=input_data_delimiter, - output_format=output_format, query_id=query_id, next_query_info=bool(input_data)) + output_format=output_format, query_id=query_id, session_id=session_id, next_query_info=bool(input_data)) while input_data: input_data_part = input_data.pop(0) yield clickhouse_grpc_pb2.QueryInfo(input_data=input_data_part, next_query_info=bool(input_data)) @@ -212,3 +212,17 @@ def test_progress(): rows_before_limit: 8 } ]""" + +def test_session(): + session_a = "session A" + session_b = "session B" + query("SET custom_x=1", session_id=session_a) + query("SET custom_y=2", session_id=session_a) + query("SET custom_x=3", session_id=session_b) + query("SET custom_y=4", session_id=session_b) + assert query("SELECT getSetting('custom_x'), getSetting('custom_y')", session_id=session_a) == "1\t2\n" + assert query("SELECT getSetting('custom_x'), getSetting('custom_y')", session_id=session_b) == "3\t4\n" + +def test_no_session(): + e = query_and_get_error("SET custom_x=1") + assert "There is no session" in e.display_text From b0cb3eb306d5542e24015b8ffb989d9b89b7eba9 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sun, 25 Oct 2020 01:03:49 +0300 Subject: [PATCH 281/425] Extend the protocol with streaming and nonstreaming functions. --- src/Server/GRPCServer.cpp | 292 +++++++++++++++---- src/Server/grpc_protos/clickhouse_grpc.proto | 5 +- tests/integration/test_grpc_protocol/test.py | 22 +- 3 files changed, 261 insertions(+), 58 deletions(-) diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index d985a0d4df7..10ae6e873a4 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -39,6 +39,7 @@ namespace ErrorCodes { extern const int INVALID_GRPC_QUERY_INFO; extern const int INVALID_SESSION_TIMEOUT; + extern const int LOGICAL_ERROR; extern const int NETWORK_ERROR; extern const int NO_DATA_TO_INSERT; extern const int UNKNOWN_DATABASE; @@ -112,40 +113,23 @@ namespace using CompletionCallback = std::function; /// Requests a connection and provides low-level interface for reading and writing. - class Responder + class BaseResponder { public: - void start( - GRPCService & grpc_service, - grpc::ServerCompletionQueue & new_call_queue, - grpc::ServerCompletionQueue & notification_queue, - const CompletionCallback & callback) - { - grpc_service.RequestExecuteQuery(&grpc_context, &reader_writer, &new_call_queue, ¬ification_queue, getCallbackPtr(callback)); - } + virtual ~BaseResponder() = default; - void read(GRPCQueryInfo & query_info_, const CompletionCallback & callback) - { - reader_writer.Read(&query_info_, getCallbackPtr(callback)); - } + virtual void start(GRPCService & grpc_service, + grpc::ServerCompletionQueue & new_call_queue, + grpc::ServerCompletionQueue & notification_queue, + const CompletionCallback & callback) = 0; - void write(const GRPCResult & result, const CompletionCallback & callback) - { - reader_writer.Write(result, getCallbackPtr(callback)); - } + virtual void read(GRPCQueryInfo & query_info_, const CompletionCallback & callback) = 0; + virtual void write(const GRPCResult & result, const CompletionCallback & callback) = 0; + virtual void writeAndFinish(const GRPCResult & result, const grpc::Status & status, const CompletionCallback & callback) = 0; - void writeAndFinish(const GRPCResult & result, const grpc::Status & status, const CompletionCallback & callback) - { - reader_writer.WriteAndFinish(result, {}, status, getCallbackPtr(callback)); - } + Poco::Net::SocketAddress getClientAddress() const { String peer = grpc_context.peer(); return Poco::Net::SocketAddress{peer.substr(peer.find(':') + 1)}; } - Poco::Net::SocketAddress getClientAddress() const - { - String peer = grpc_context.peer(); - return Poco::Net::SocketAddress{peer.substr(peer.find(':') + 1)}; - } - - private: + protected: CompletionCallback * getCallbackPtr(const CompletionCallback & callback) { /// It would be better to pass callbacks to gRPC calls. @@ -166,13 +150,198 @@ namespace }; return &callback_in_map; } + grpc::ServerContext grpc_context; + + private: grpc::ServerAsyncReaderWriter reader_writer{&grpc_context}; std::unordered_map callbacks; size_t next_callback_id = 0; std::mutex mutex; }; + enum CallType + { + CALL_SIMPLE, /// ExecuteQuery() call + CALL_WITH_STREAM_INPUT, /// ExecuteQueryWithStreamInput() call + CALL_WITH_STREAM_OUTPUT, /// ExecuteQueryWithStreamOutput() call + CALL_WITH_STREAM_IO, /// ExecuteQueryWithStreamIO() call + CALL_MAX, + }; + + const char * getCallName(CallType call_type) + { + switch (call_type) + { + case CALL_SIMPLE: return "ExecuteQuery()"; + case CALL_WITH_STREAM_INPUT: return "ExecuteQueryWithStreamInput()"; + case CALL_WITH_STREAM_OUTPUT: return "ExecuteQueryWithStreamOutput()"; + case CALL_WITH_STREAM_IO: return "ExecuteQueryWithStreamIO()"; + case CALL_MAX: break; + } + __builtin_unreachable(); + } + + bool isInputStreaming(CallType call_type) + { + return (call_type == CALL_WITH_STREAM_INPUT) || (call_type == CALL_WITH_STREAM_IO); + } + + bool isOutputStreaming(CallType call_type) + { + return (call_type == CALL_WITH_STREAM_OUTPUT) || (call_type == CALL_WITH_STREAM_IO); + } + + template + class Responder; + + template<> + class Responder : public BaseResponder + { + public: + void start(GRPCService & grpc_service, + grpc::ServerCompletionQueue & new_call_queue, + grpc::ServerCompletionQueue & notification_queue, + const CompletionCallback & callback) override + { + grpc_service.RequestExecuteQuery(&grpc_context, &query_info.emplace(), &response_writer, &new_call_queue, ¬ification_queue, getCallbackPtr(callback)); + } + + void read(GRPCQueryInfo & query_info_, const CompletionCallback & callback) override + { + if (!query_info.has_value()) + callback(false); + query_info_ = std::move(query_info).value(); + query_info.reset(); + callback(true); + } + + void write(const GRPCResult &, const CompletionCallback &) override + { + throw Exception("Responder::write() should not be called", ErrorCodes::LOGICAL_ERROR); + } + + void writeAndFinish(const GRPCResult & result, const grpc::Status & status, const CompletionCallback & callback) override + { + response_writer.Finish(result, status, getCallbackPtr(callback)); + } + + private: + grpc::ServerAsyncResponseWriter response_writer{&grpc_context}; + std::optional query_info; + }; + + template<> + class Responder : public BaseResponder + { + public: + void start(GRPCService & grpc_service, + grpc::ServerCompletionQueue & new_call_queue, + grpc::ServerCompletionQueue & notification_queue, + const CompletionCallback & callback) override + { + grpc_service.RequestExecuteQueryWithStreamInput(&grpc_context, &reader, &new_call_queue, ¬ification_queue, getCallbackPtr(callback)); + } + + void read(GRPCQueryInfo & query_info_, const CompletionCallback & callback) override + { + reader.Read(&query_info_, getCallbackPtr(callback)); + } + + void write(const GRPCResult &, const CompletionCallback &) override + { + throw Exception("Responder::write() should not be called", ErrorCodes::LOGICAL_ERROR); + } + + void writeAndFinish(const GRPCResult & result, const grpc::Status & status, const CompletionCallback & callback) override + { + reader.Finish(result, status, getCallbackPtr(callback)); + } + + private: + grpc::ServerAsyncReader reader{&grpc_context}; + }; + + template<> + class Responder : public BaseResponder + { + public: + void start(GRPCService & grpc_service, + grpc::ServerCompletionQueue & new_call_queue, + grpc::ServerCompletionQueue & notification_queue, + const CompletionCallback & callback) override + { + grpc_service.RequestExecuteQueryWithStreamOutput(&grpc_context, &query_info.emplace(), &writer, &new_call_queue, ¬ification_queue, getCallbackPtr(callback)); + } + + void read(GRPCQueryInfo & query_info_, const CompletionCallback & callback) override + { + if (!query_info.has_value()) + callback(false); + query_info_ = std::move(query_info).value(); + query_info.reset(); + callback(true); + } + + void write(const GRPCResult & result, const CompletionCallback & callback) override + { + writer.Write(result, getCallbackPtr(callback)); + } + + void writeAndFinish(const GRPCResult & result, const grpc::Status & status, const CompletionCallback & callback) override + { + writer.WriteAndFinish(result, {}, status, getCallbackPtr(callback)); + } + + private: + grpc::ServerAsyncWriter writer{&grpc_context}; + std::optional query_info; + }; + + template<> + class Responder : public BaseResponder + { + public: + void start(GRPCService & grpc_service, + grpc::ServerCompletionQueue & new_call_queue, + grpc::ServerCompletionQueue & notification_queue, + const CompletionCallback & callback) override + { + grpc_service.RequestExecuteQueryWithStreamIO(&grpc_context, &reader_writer, &new_call_queue, ¬ification_queue, getCallbackPtr(callback)); + } + + void read(GRPCQueryInfo & query_info_, const CompletionCallback & callback) override + { + reader_writer.Read(&query_info_, getCallbackPtr(callback)); + } + + void write(const GRPCResult & result, const CompletionCallback & callback) override + { + reader_writer.Write(result, getCallbackPtr(callback)); + } + + void writeAndFinish(const GRPCResult & result, const grpc::Status & status, const CompletionCallback & callback) override + { + reader_writer.WriteAndFinish(result, {}, status, getCallbackPtr(callback)); + } + + private: + grpc::ServerAsyncReaderWriter reader_writer{&grpc_context}; + }; + + std::unique_ptr makeResponder(CallType call_type) + { + switch (call_type) + { + case CALL_SIMPLE: return std::make_unique>(); + case CALL_WITH_STREAM_INPUT: return std::make_unique>(); + case CALL_WITH_STREAM_OUTPUT: return std::make_unique>(); + case CALL_WITH_STREAM_IO: return std::make_unique>(); + case CALL_MAX: break; + } + __builtin_unreachable(); + } + /// Implementation of ReadBuffer, which just calls a callback. class ReadBufferFromCallback : public ReadBuffer @@ -201,7 +370,7 @@ namespace class Call { public: - Call(std::unique_ptr responder_, IServer & iserver_, Poco::Logger * log_); + Call(CallType call_type_, std::unique_ptr responder_, IServer & iserver_, Poco::Logger * log_); ~Call(); void start(const std::function & on_finish_call_callback); @@ -234,7 +403,8 @@ namespace void throwIfFailedToSendResult(); void sendException(const Exception & exception); - std::unique_ptr responder; + const CallType call_type; + std::unique_ptr responder; IServer & iserver; Poco::Logger * log = nullptr; @@ -284,8 +454,8 @@ namespace std::mutex dummy_mutex; /// Doesn't protect anything. }; - Call::Call(std::unique_ptr responder_, IServer & iserver_, Poco::Logger * log_) - : responder(std::move(responder_)), iserver(iserver_), log(log_) + Call::Call(CallType call_type_, std::unique_ptr responder_, IServer & iserver_, Poco::Logger * log_) + : call_type(call_type_), responder(std::move(responder_)), iserver(iserver_), log(log_) { } @@ -338,7 +508,7 @@ namespace void Call::receiveQuery() { - LOG_INFO(log, "Handling call ExecuteQuery()"); + LOG_INFO(log, "Handling call {}", getCallName(call_type)); readQueryInfo(); @@ -520,6 +690,9 @@ namespace if (!query_info.next_query_info()) break; + if (!isInputStreaming(call_type)) + throw Exception("next_query_info is allowed to be set only for streaming input", ErrorCodes::INVALID_GRPC_QUERY_INFO); + readQueryInfo(); if (!query_info.query().empty() || !query_info.query_id().empty() || !query_info.settings().empty() || !query_info.database().empty() || !query_info.input_data_delimiter().empty() || !query_info.output_format().empty() @@ -668,7 +841,8 @@ namespace LOG_INFO( log, - "Finished call ExecuteQuery() in {} secs. (including reading by client: {}, writing by client: {})", + "Finished call {} in {} secs. (including reading by client: {}, writing by client: {})", + getCallName(call_type), query_time.elapsedSeconds(), static_cast(waited_for_client_reading) / 1000000000ULL, static_cast(waited_for_client_writing) / 1000000000ULL); @@ -773,11 +947,12 @@ namespace if (!values.read_rows && !values.read_bytes && !values.total_rows_to_read && !values.written_rows && !values.written_bytes) return; auto & grpc_progress = *result.mutable_progress(); - grpc_progress.set_read_rows(values.read_rows); - grpc_progress.set_read_bytes(values.read_bytes); - grpc_progress.set_total_rows_to_read(values.total_rows_to_read); - grpc_progress.set_written_rows(values.written_rows); - grpc_progress.set_written_bytes(values.written_bytes); + /// Sum is used because we need to accumulate values for the case if streaming output is disabled. + grpc_progress.set_read_rows(grpc_progress.read_rows() + values.read_rows); + grpc_progress.set_read_bytes(grpc_progress.read_bytes() + values.read_bytes); + grpc_progress.set_total_rows_to_read(grpc_progress.total_rows_to_read() + values.total_rows_to_read); + grpc_progress.set_written_rows(grpc_progress.written_rows() + values.written_rows); + grpc_progress.set_written_bytes(grpc_progress.written_bytes() + values.written_bytes); } void Call::addTotalsToResult(const Block & totals) @@ -867,6 +1042,11 @@ namespace if (responder_finished) return; + /// If output is not streaming then only the final result can be sent. + bool send_final_message = finalize || result.has_exception(); + if (!send_final_message && !isOutputStreaming(call_type)) + return; + /// Wait for previous write to finish. /// (gRPC doesn't allow to start sending another result while the previous is still being sending.) if (sending_result) @@ -879,7 +1059,6 @@ namespace throwIfFailedToSendResult(); /// Start sending the result. - bool send_final_message = finalize || result.has_exception(); LOG_DEBUG(log, "Sending {} result to the client: {}", (send_final_message ? "final" : "intermediate"), getResultDescription(result)); if (write_buffer) @@ -981,14 +1160,19 @@ private: void startReceivingNewCalls() { std::lock_guard lock{mutex}; - makeResponderForNewCall(); + responders_for_new_calls.resize(CALL_MAX); + for (CallType call_type : ext::range(CALL_MAX)) + makeResponderForNewCall(call_type); } - void makeResponderForNewCall() + void makeResponderForNewCall(CallType call_type) { /// `mutex` is already locked. - responder_for_new_call = std::make_unique(); - responder_for_new_call->start(owner.grpc_service, *owner.queue, *owner.queue, [this](bool ok) { onNewCall(ok); }); + responders_for_new_calls[call_type] = makeResponder(call_type); + + responders_for_new_calls[call_type]->start( + owner.grpc_service, *owner.queue, *owner.queue, + [this, call_type](bool ok) { onNewCall(call_type, ok); }); } void stopReceivingNewCalls() @@ -997,18 +1181,18 @@ private: should_stop = true; } - void onNewCall(bool responder_started_ok) + void onNewCall(CallType call_type, bool responder_started_ok) { std::lock_guard lock{mutex}; - auto responder = std::move(responder_for_new_call); + auto responder = std::move(responders_for_new_calls[call_type]); if (should_stop) return; - makeResponderForNewCall(); + makeResponderForNewCall(call_type); if (responder_started_ok) { /// Connection established and the responder has been started. /// So we pass this responder to a Call and make another responder for next connection. - auto new_call = std::make_unique(std::move(responder), owner.iserver, owner.log); + auto new_call = std::make_unique(call_type, std::move(responder), owner.iserver, owner.log); auto * new_call_ptr = new_call.get(); current_calls[new_call_ptr] = std::move(new_call); new_call_ptr->start([this, new_call_ptr]() { onFinishCall(new_call_ptr); }); @@ -1035,8 +1219,14 @@ private: finished_calls.clear(); /// Destroy finished calls. /// If (should_stop == true) we continue processing until there is no active calls. - if (should_stop && current_calls.empty() && !responder_for_new_call) - break; + if (should_stop && current_calls.empty()) + { + bool all_responders_gone = std::all_of( + responders_for_new_calls.begin(), responders_for_new_calls.end(), + [](std::unique_ptr & responder) { return !responder; }); + if (all_responders_gone) + break; + } } bool ok = false; @@ -1054,7 +1244,7 @@ private: GRPCServer & owner; ThreadFromGlobalPool queue_thread; - std::unique_ptr responder_for_new_call; + std::vector> responders_for_new_calls; std::map> current_calls; std::vector> finished_calls; bool should_stop = false; diff --git a/src/Server/grpc_protos/clickhouse_grpc.proto b/src/Server/grpc_protos/clickhouse_grpc.proto index 6d42c2be2de..665f3247dbb 100644 --- a/src/Server/grpc_protos/clickhouse_grpc.proto +++ b/src/Server/grpc_protos/clickhouse_grpc.proto @@ -75,5 +75,8 @@ message Result { } service ClickHouse { - rpc ExecuteQuery(stream QueryInfo) returns (stream Result) {} + rpc ExecuteQuery(QueryInfo) returns (Result) {} + rpc ExecuteQueryWithStreamInput(stream QueryInfo) returns (Result) {} + rpc ExecuteQueryWithStreamOutput(QueryInfo) returns (stream Result) {} + rpc ExecuteQueryWithStreamIO(stream QueryInfo) returns (stream Result) {} } diff --git a/tests/integration/test_grpc_protocol/test.py b/tests/integration/test_grpc_protocol/test.py index 11bac101f76..b1847ec5388 100644 --- a/tests/integration/test_grpc_protocol/test.py +++ b/tests/integration/test_grpc_protocol/test.py @@ -39,20 +39,30 @@ def create_channel(): main_channel = channel return channel -def query_common(query_text, settings={}, input_data=[], input_data_delimiter='', output_format='TabSeparated', query_id='123', session_id='', channel=None): +def query_common(query_text, settings={}, input_data=[], input_data_delimiter='', output_format='TabSeparated', query_id='123', session_id='', stream_output=False, channel=None): if type(input_data) == str: input_data = [input_data] if not channel: channel = main_channel stub = clickhouse_grpc_pb2_grpc.ClickHouseStub(channel) - def send_query_info(): + def query_info(): input_data_part = input_data.pop(0) if input_data else '' - yield clickhouse_grpc_pb2.QueryInfo(query=query_text, settings=settings, input_data=input_data_part, input_data_delimiter=input_data_delimiter, - output_format=output_format, query_id=query_id, session_id=session_id, next_query_info=bool(input_data)) + return clickhouse_grpc_pb2.QueryInfo(query=query_text, settings=settings, input_data=input_data_part, input_data_delimiter=input_data_delimiter, + output_format=output_format, query_id=query_id, session_id=session_id, next_query_info=bool(input_data)) + def send_query_info(): + yield query_info() while input_data: input_data_part = input_data.pop(0) yield clickhouse_grpc_pb2.QueryInfo(input_data=input_data_part, next_query_info=bool(input_data)) - return list(stub.ExecuteQuery(send_query_info())) + stream_input = len(input_data) > 1 + if stream_input and stream_output: + return list(stub.ExecuteQueryWithStreamIO(send_query_info())) + elif stream_input: + return [stub.ExecuteQueryWithStreamInput(send_query_info())] + elif stream_output: + return list(stub.ExecuteQueryWithStreamOutput(query_info())) + else: + return [stub.ExecuteQuery(query_info())] def query_no_errors(*args, **kwargs): results = query_common(*args, **kwargs) @@ -180,7 +190,7 @@ def test_logs(): assert "Peak memory usage" in logs def test_progress(): - results = query_no_errors("SELECT number, sleep(0.31) FROM numbers(8) SETTINGS max_block_size=2, interactive_delay=100000") + results = query_no_errors("SELECT number, sleep(0.31) FROM numbers(8) SETTINGS max_block_size=2, interactive_delay=100000", stream_output=True) #print(results) assert str(results) ==\ """[progress { From eab3006a4db412366f488494512e7a262c095aac Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Tue, 27 Oct 2020 17:38:55 +0300 Subject: [PATCH 282/425] Support SSL and compression when using gRPC protocol. --- programs/server/config.xml | 28 ++++++ src/Server/GRPCServer.cpp | 81 ++++++++++++++++- .../test_grpc_protocol_ssl/.gitignore | 1 + .../test_grpc_protocol_ssl/__init__.py | 0 .../configs/ca-cert.pem | 32 +++++++ .../configs/ca-cert.srl | 1 + .../test_grpc_protocol_ssl/configs/ca-key.pem | 52 +++++++++++ .../configs/client-cert.pem | 30 +++++++ .../configs/client-key.pem | 52 +++++++++++ .../configs/client-req.pem | 27 ++++++ .../configs/generate_certs.sh | 19 ++++ .../configs/grpc_config.xml | 24 +++++ .../configs/server-cert.pem | 31 +++++++ .../configs/server-ext.cnf | 1 + .../configs/server-key.pem | 52 +++++++++++ .../configs/server-req.pem | 27 ++++++ .../configs/wrong-client-cert.pem | 32 +++++++ .../configs/wrong-client-key.pem | 52 +++++++++++ .../protos/clickhouse_grpc.proto | 1 + .../test_grpc_protocol_ssl/test.py | 88 +++++++++++++++++++ 20 files changed, 629 insertions(+), 2 deletions(-) create mode 100644 tests/integration/test_grpc_protocol_ssl/.gitignore create mode 100644 tests/integration/test_grpc_protocol_ssl/__init__.py create mode 100644 tests/integration/test_grpc_protocol_ssl/configs/ca-cert.pem create mode 100644 tests/integration/test_grpc_protocol_ssl/configs/ca-cert.srl create mode 100644 tests/integration/test_grpc_protocol_ssl/configs/ca-key.pem create mode 100644 tests/integration/test_grpc_protocol_ssl/configs/client-cert.pem create mode 100644 tests/integration/test_grpc_protocol_ssl/configs/client-key.pem create mode 100644 tests/integration/test_grpc_protocol_ssl/configs/client-req.pem create mode 100755 tests/integration/test_grpc_protocol_ssl/configs/generate_certs.sh create mode 100644 tests/integration/test_grpc_protocol_ssl/configs/grpc_config.xml create mode 100644 tests/integration/test_grpc_protocol_ssl/configs/server-cert.pem create mode 100644 tests/integration/test_grpc_protocol_ssl/configs/server-ext.cnf create mode 100644 tests/integration/test_grpc_protocol_ssl/configs/server-key.pem create mode 100644 tests/integration/test_grpc_protocol_ssl/configs/server-req.pem create mode 100644 tests/integration/test_grpc_protocol_ssl/configs/wrong-client-cert.pem create mode 100644 tests/integration/test_grpc_protocol_ssl/configs/wrong-client-key.pem create mode 120000 tests/integration/test_grpc_protocol_ssl/protos/clickhouse_grpc.proto create mode 100644 tests/integration/test_grpc_protocol_ssl/test.py diff --git a/programs/server/config.xml b/programs/server/config.xml index 21def379535..cef191a71f1 100644 --- a/programs/server/config.xml +++ b/programs/server/config.xml @@ -134,6 +134,34 @@ 4096 3 + + + + + + + + + + + + + + 100 diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index 10ae6e873a4..a967c599d4a 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -21,12 +21,18 @@ #include #include #include +#include +#include #include #include #include #include +/// For diagnosing problems use the following environment variables: +/// export GRPC_TRACE=all +/// export GRPC_VERBOSITY=DEBUG + using GRPCService = clickhouse::grpc::ClickHouse::AsyncService; using GRPCQueryInfo = clickhouse::grpc::QueryInfo; using GRPCResult = clickhouse::grpc::Result; @@ -37,16 +43,84 @@ namespace DB { namespace ErrorCodes { + extern const int INVALID_CONFIG_PARAMETER; extern const int INVALID_GRPC_QUERY_INFO; extern const int INVALID_SESSION_TIMEOUT; extern const int LOGICAL_ERROR; extern const int NETWORK_ERROR; extern const int NO_DATA_TO_INSERT; + extern const int SUPPORT_IS_DISABLED; extern const int UNKNOWN_DATABASE; } namespace { + grpc_compression_algorithm parseCompressionAlgorithm(const String & str) + { + if (str == "none") + return GRPC_COMPRESS_NONE; + else if (str == "deflate") + return GRPC_COMPRESS_DEFLATE; + else if (str == "gzip") + return GRPC_COMPRESS_GZIP; + else if (str == "stream_gzip") + return GRPC_COMPRESS_STREAM_GZIP; + else + throw Exception("Unknown compression algorithm: '" + str + "'", ErrorCodes::INVALID_CONFIG_PARAMETER); + } + + grpc_compression_level parseCompressionLevel(const String & str) + { + if (str == "none") + return GRPC_COMPRESS_LEVEL_NONE; + else if (str == "low") + return GRPC_COMPRESS_LEVEL_LOW; + else if (str == "medium") + return GRPC_COMPRESS_LEVEL_MED; + else if (str == "high") + return GRPC_COMPRESS_LEVEL_HIGH; + else + throw Exception("Unknown compression level: '" + str + "'", ErrorCodes::INVALID_CONFIG_PARAMETER); + } + + + /// Gets file's contents as a string, throws an exception if failed. + String readFile(const String & filepath) + { + Poco::FileInputStream ifs(filepath); + String res; + Poco::StreamCopier::copyToString(ifs, res); + return res; + } + + /// Makes credentials based on the server config. + std::shared_ptr makeCredentials(const Poco::Util::AbstractConfiguration & config) + { + if (config.getBool("grpc.enable_ssl", false)) + { +#if USE_SSL + grpc::SslServerCredentialsOptions options; + grpc::SslServerCredentialsOptions::PemKeyCertPair key_cert_pair; + key_cert_pair.private_key = readFile(config.getString("grpc.ssl_key_file")); + key_cert_pair.cert_chain = readFile(config.getString("grpc.ssl_cert_file")); + options.pem_key_cert_pairs.emplace_back(std::move(key_cert_pair)); + if (config.getBool("grpc.ssl_require_client_auth", false)) + { + options.client_certificate_request = GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY; + if (config.has("grpc.ssl_ca_cert_file")) + options.pem_root_certs = readFile(config.getString("grpc.ssl_ca_cert_file")); + } + return grpc::SslServerCredentials(options); +#else + throw DB::Exception( + "Can't use SSL in grpc, because ClickHouse was built without SSL library", + DB::ErrorCodes::SUPPORT_IS_DISABLED); +#endif + } + return grpc::InsecureServerCredentials(); + } + + /// Gets session's timeout from query info or from the server config. std::chrono::steady_clock::duration getSessionTimeout(const GRPCQueryInfo & query_info, const Poco::Util::AbstractConfiguration & config) { @@ -1274,9 +1348,12 @@ GRPCServer::~GRPCServer() void GRPCServer::start() { grpc::ServerBuilder builder; - builder.AddListeningPort(address_to_listen.toString(), grpc::InsecureServerCredentials()); + builder.AddListeningPort(address_to_listen.toString(), makeCredentials(iserver.config())); builder.RegisterService(&grpc_service); - builder.SetMaxReceiveMessageSize(INT_MAX); + builder.SetMaxSendMessageSize(iserver.config().getInt("grpc.max_send_message_size", -1)); + builder.SetMaxReceiveMessageSize(iserver.config().getInt("grpc.max_receive_message_size", -1)); + builder.SetDefaultCompressionAlgorithm(parseCompressionAlgorithm(iserver.config().getString("grpc.compression", "none"))); + builder.SetDefaultCompressionLevel(parseCompressionLevel(iserver.config().getString("grpc.compression_level", "none"))); queue = builder.AddCompletionQueue(); grpc_server = builder.BuildAndStart(); diff --git a/tests/integration/test_grpc_protocol_ssl/.gitignore b/tests/integration/test_grpc_protocol_ssl/.gitignore new file mode 100644 index 00000000000..edf565ec632 --- /dev/null +++ b/tests/integration/test_grpc_protocol_ssl/.gitignore @@ -0,0 +1 @@ +_gen diff --git a/tests/integration/test_grpc_protocol_ssl/__init__.py b/tests/integration/test_grpc_protocol_ssl/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/integration/test_grpc_protocol_ssl/configs/ca-cert.pem b/tests/integration/test_grpc_protocol_ssl/configs/ca-cert.pem new file mode 100644 index 00000000000..036e0a3b655 --- /dev/null +++ b/tests/integration/test_grpc_protocol_ssl/configs/ca-cert.pem @@ -0,0 +1,32 @@ +-----BEGIN CERTIFICATE----- +MIIFhTCCA22gAwIBAgIUVM3x4bsymB902aSmqQ3OCNSfqCQwDQYJKoZIhvcNAQEL +BQAwUjELMAkGA1UEBhMCUlUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDELMAkGA1UEAwwCY2EwHhcNMjAxMDI4 +MDYzNzExWhcNMzAxMDI2MDYzNzExWjBSMQswCQYDVQQGEwJSVTETMBEGA1UECAwK +U29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMQsw +CQYDVQQDDAJjYTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMKSY4+t +V/E+GFt0eKUjRLYui+0662Gqp3/5U3n2NXUeeZEFf6c85v3uyyVLnr1lyWM8dYFG +gR7esvZejequG1bA6OPXbet45veiBVWDANeIXw1Mpr5191wmQ/Jb4Eic9c+GSEiE +UXWP7Ebx0WXZIuh22ESvtUYmrjHI4r1+W2HjbSPQ5ISVA7x5r1LiQzZu0bZ4FfRf +C5s0IhM3DIvvmwu9P1Zwn10/UTOcbrGfDGYklKUZ/JBrXVffMs3n16xnFLSjp59v +V6vqoiP9X7mLcMuBBbe1l+YIQZt0iN0lzqXf6+gXYRS9rLjpNKYiA8Ejbivtel25 +fzi3pIF+FFHG7bRCLd78eUh2cNC+Wt7AZKXtlGyG7+hCd0fEBrmEzQWP2pXPyQI2 +7SnOSa/mQzCGfETfDRWcDFN0fYA2RHLZSEp/ImxGPeCiAKMg6wecYKcPj5QVWL8F +R9RN8B2i37DEs+dtHpuGdRY8mGoVnkQiP6MXKF6RJV8PG5BFBpIWrdUr6XdXPZLs +fpXQ9iVNxRzj1Qs3x3b2Da38hxSWTSP1zbkBPlMkXRuw+5m8PpkBpiarXF+4i7MM +RCsg07AIKilTM3p21qFLnKMCgCAZX16zPVfBPBipPbk3EjfFPWQ29v5KHm6zFxn6 +mBk+2nOmaSXhAjGexHjhikl76SZhA0Re17PXAgMBAAGjUzBRMB0GA1UdDgQWBBTZ +k26nfmjd7o/kNQ7wt+0xnFS3FzAfBgNVHSMEGDAWgBTZk26nfmjd7o/kNQ7wt+0x +nFS3FzAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4ICAQA1vfdcnkXt +8TSDJJl+PBJTvpKjipAyilipXjpq4vjxTBVtivdUekpV7U8O28RoOOSqtLWaN7uX +rTZyRJK61mWkyJdnS+YPhUG0cvNp7faHXJf9NB74hO57j00kPE5zYvUl35/zRd28 +146omM3s9dMf6yKKoESib5Ixm4zntDkqH5Yi88U6/ODwm8jJuJxkJBdYBUtRA4Ky +ETML7GL9Vm2A5QTGBue8nTlYpy1avUK8lsP8W4S3zX8lKuTok4fxmd8TsVMgYLKF +67QKDboPeJNN/Il74Yvd6KhHO5AkcvjLHbwV8NRMi8+0vtQWcpSysrZfoeFS3kcD +lJL532F8IP2mMPsx3ARKEsYZWGKtEjQIUuI0sSIbN2V01nbKQ7zj1tNBe6xhnzyx +Uthx05WWl7YLtM75/Wycesz7ZKxkKbGPu9nhvEhRJjrDT0p0Tjx+of2qKkCkdXRw +QkrGROFvkMcn/YXs95YDZ97pKb355zMiqpBXKqsPHbrgDZbbowmEOgCPiYbxgzce +TVAr00uofy+uFfrdtUGpKncmmvFtVBuNo4Pj9tdsRkDuO8Y10jFIG+2S2gKeTAsy +japTT3FjHjGm9KF/QtbK7RZdxzcn1eUuOO3mF4dj30le0E4iOh6XxFlth3ppoOeb +Z1kFHCU8MtmoINIVYP23aJy8pm1d8D/2Kw== +-----END CERTIFICATE----- diff --git a/tests/integration/test_grpc_protocol_ssl/configs/ca-cert.srl b/tests/integration/test_grpc_protocol_ssl/configs/ca-cert.srl new file mode 100644 index 00000000000..9ebd704bef5 --- /dev/null +++ b/tests/integration/test_grpc_protocol_ssl/configs/ca-cert.srl @@ -0,0 +1 @@ +37C29522A49A2D3B8AF225D079D67FA4A62556E5 diff --git a/tests/integration/test_grpc_protocol_ssl/configs/ca-key.pem b/tests/integration/test_grpc_protocol_ssl/configs/ca-key.pem new file mode 100644 index 00000000000..cd28012e236 --- /dev/null +++ b/tests/integration/test_grpc_protocol_ssl/configs/ca-key.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDCkmOPrVfxPhhb +dHilI0S2LovtOuthqqd/+VN59jV1HnmRBX+nPOb97sslS569ZcljPHWBRoEe3rL2 +Xo3qrhtWwOjj123reOb3ogVVgwDXiF8NTKa+dfdcJkPyW+BInPXPhkhIhFF1j+xG +8dFl2SLodthEr7VGJq4xyOK9flth420j0OSElQO8ea9S4kM2btG2eBX0XwubNCIT +NwyL75sLvT9WcJ9dP1EznG6xnwxmJJSlGfyQa11X3zLN59esZxS0o6efb1er6qIj +/V+5i3DLgQW3tZfmCEGbdIjdJc6l3+voF2EUvay46TSmIgPBI24r7XpduX84t6SB +fhRRxu20Qi3e/HlIdnDQvlrewGSl7ZRshu/oQndHxAa5hM0Fj9qVz8kCNu0pzkmv +5kMwhnxE3w0VnAxTdH2ANkRy2UhKfyJsRj3gogCjIOsHnGCnD4+UFVi/BUfUTfAd +ot+wxLPnbR6bhnUWPJhqFZ5EIj+jFyhekSVfDxuQRQaSFq3VK+l3Vz2S7H6V0PYl +TcUc49ULN8d29g2t/IcUlk0j9c25AT5TJF0bsPuZvD6ZAaYmq1xfuIuzDEQrINOw +CCopUzN6dtahS5yjAoAgGV9esz1XwTwYqT25NxI3xT1kNvb+Sh5usxcZ+pgZPtpz +pmkl4QIxnsR44YpJe+kmYQNEXtez1wIDAQABAoICAQCpIab51ayEP33cwbm9kpK/ +6mYnqPfCxh0j2Q7/DU4aqIrzzNvR+9avFUvw93LdIAWXBY7++NJ0ixD1p+uk/AM3 +viizJSifb1EWIPiSBHZO5HP7k42+Mbz7lSerHMIxXH8wDYH3x00n7Btu7/Udm0oE +2InV6wagHC9/hyfRoGy/Anp0j7iUpxPAWeZVHele/6W7/1bWPWhRWVflbAyz92vH +IJJWCT/+RnPHcUuniqG0iEfN3HD2+N0C7Tm0UrvfWRteioPCy35iKmsW7cCwAM3j +mBvoPSn1A2hEQWBXG+4tsh/Wd7wj01y4v77MSvUIhkvWU2/y2LQGEVwmU/pFu64T +ZZ6+unfhCPqblvUyXLCZ2qwnYO9XiMv5j9v7E7m+6FIsnDPwC9smxuMdZ9C8frlV +PUdIkirIDO3NtGFHawWwbI/5iQgg3IM4qwVtsJNdrR3c+GZ7Xvk/0HU3VykT4J5w +CfAkrTClT6COm2G9mUjdXpdoXA1uoB1hj7vYs6ktSt3gKN8bz3qF2oNm+DH6xaUA +pvouIY/QDPzAHSzm2efYInVBh7lvyMIIx5eYmp2R9cxep0/p8QbsCNsfSJyN7ay1 +xo/V+8BavGtO+jOgobiTKupxWQrn/RYYIQvqFSPb/HoA+6aXvWnvvHoHDrHaNbgO +KXs3nWlR2vTklUC46zUdQQKCAQEA81BygvrL3MPsl+fh6rHKIrOqZph6z5LMNjTP +1todV7OFProS6eftKM+D1zj/LIo1GaO9qu4GseZkS+NEAfCPQWXrRDcjId0ZsywR +eMSO8v7OIO247+WXOnx5HoQiolin/mVs6wUgfxM64OripV2CVLwF5D5w/woq5SuK +7qdn1LTiiTOJkurv7cpQLnsZusV3hlbnkrM+SDaw6E3jjGRRKs06+ouUYw7YZdv9 +KxIJVepk5Bpy2FFlevC5JZ0W0Fgq+i0FmwwCr5hwT0h/DZ3a4JUh3t7NdmxRVjbm +WwTQLdrA2PeJ1YtdHCQA3gaqzYmmer75+IuBK3ZCKTI5NS0l6wKCAQEAzLdefA2E +HChSsH5guznksYGW5D0lXlA21hcs3xIixcpvcizBEfCyltZK7TgeFaZ6FOBra5XA +ctOsR+0VVVMUEEH+r0MOS5j2VEQUxwiilr5iar/+HTM4rrJ78hxzBTDJsc4lquhq +ytTSVEyYZ+U5yHoxHWZJ7RISTpNFEIFfMbH/S109YDwoXQAJ6qdu3kktLohxpAAo +nA/oeGi1+UDqr3KfUCC6hfZ0bt2OkA2IfFCP7xZ4rRiRl+fjkCLrIslR6rdbSYD1 +d8xr2ub5uP6gIPo9tEdC3AO9/mlpeIR92JRcwmXwHP1KCZNhmGxc6npJogUhnfag +B/F5OJ6dLI0SxQKCAQEAxVsNZxxSW2E3+QcHAjzvfjJJFyq7Ar9JkPZJVzZX8pkU +jQqU6NFMVnvrrpj2sYPxCjj8UTb8izQbSkqvEPu01xD6QbyPbJpQjDpEebbFVGhF +fgQUq9GIVtI70/rNtO1AZmKSdBcWgrxwV5tt9z/fxSc1iCr1sIjovjYRXP7Ag5Gs +5ii9gEO8FR6y5uDGv+4HwxmegCmPbTefSu5Skb+U7qjFHBA3bhnOgOBte5AHrn6P +E044tSlgrNWw98dxh9DcG0yFbXvSeeelwUlGdR8DOIL+lC4YbePyHYIuWsmOqoLz +RYmTbXi7L2Yspeq2hD0QoiNh0q4lOcGUbKHmMTHLvQKCAQB+yjs8vepKvjaolT03 ++F1KCyb3aV+RkEDGTEhASK08r2pi3pEdmWQiw8pYLd+ELT2DXJNraK5u7+bODWqf +E/tjLlydE/zwmWZHPntX4mNA1d2CnDK4xxaeLHFTvIcIefURqMnvlk8+HJ3AFEh4 +YKJvJi7xNH8o035/J/sog9f/oWyqsq7mwZuGLhX2PYkPJ2dSYLNxjZ+ZOMkUelXq +cGhqDaXaLMsZWVE3sQUw9xDHXeYngFVxb7wMx1RL2zSisOmJY9KoLbTaY8ORKmkU +SK/IfPRmiZRBTBgKUCNAv15qG0lwJU6XxdBrKdrSWpsZpm+gZ2kwuqTXBpm7lZFn +HGC5AoIBABSoejuKUD5eCWIgnLwX3D1XnnIV1yHJCDEIXs5FmNfeT8BX8A2JItJj +7NnfRxGL3l62Qo1h4Leo4M8XdrbCnlD61QlqrRkmff5JUCv2dVQfG72Hyj4S4hWC +6AHnG59U46vberljdmIj4FHm3AZP3W3LLW3sUZEkyjEFvaHpRNejFw4jXxbB5Tas +7ObWT/JJ/6zzmW65m5rDzHvV8vf5sPN6KQaAL2+KZGV7s8P4KccTyr2jwBoqyI+l +8Fa/OVC4O9xwvrt4flUuQWMT3Y7j37v5FJg0lCJPUpRAGNdfZYJJt2INHe0XsX0v +z6BihHf8+GVDIxxQroO9XAdgMPExVeM= +-----END PRIVATE KEY----- diff --git a/tests/integration/test_grpc_protocol_ssl/configs/client-cert.pem b/tests/integration/test_grpc_protocol_ssl/configs/client-cert.pem new file mode 100644 index 00000000000..e1f44d5c733 --- /dev/null +++ b/tests/integration/test_grpc_protocol_ssl/configs/client-cert.pem @@ -0,0 +1,30 @@ +-----BEGIN CERTIFICATE----- +MIIFLzCCAxcCFDfClSKkmi07ivIl0HnWf6SmJVblMA0GCSqGSIb3DQEBCwUAMFIx +CzAJBgNVBAYTAlJVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl +cm5ldCBXaWRnaXRzIFB0eSBMdGQxCzAJBgNVBAMMAmNhMB4XDTIwMTAyODA2Mzcx +NFoXDTMwMDcyODA2MzcxNFowVjELMAkGA1UEBhMCUlUxEzARBgNVBAgMClNvbWUt +U3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEPMA0GA1UE +AwwGY2xpZW50MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAynkPl+kW +iMW2ACkZDN26HzCbfudqPANt6JIYFdIq3scs/uqWf7jdsrlyw4j0YeMHLe6tL/NJ +klYBjd5LcxcZe1e7nlES74ShvplX6W1TlJoIp2OVwbhQSn98ctvBsj66g2kdiKae +Bjt811bxw2FbU6aDXGZyUi2NMWNU1pRW80znXuZ0mwcSsV05eStnR2kCx9g58fUe +mEkUMDumFvNQdI2cdxCBQp7Z0lFV90jD1cHAS0pc9EQnj43gIlnjKdoUyjgavLPA +03uhVCjQwK/tIsnu5JtAn+bHhjBST4dHEEbyukoYXqdAGgMLNNble/vIANMG99mn +KnkEoUS1N3M/fpprjJzmz1ElGq1JOL5mpcho56AdY4tCzPo8crUXkMz7BJ4HcqcG +fKjN/gb+2erDK6QGQExUyHXH9d/Vho2Ok91mIxyp2a+hayHFm1pyoTth/tr1f6ZQ +MCMdgTY82ue76nehBejtD/XNN35k75jbqkjLc2lythyL8vnNa3nhml/Gupbggkyp +4iPU/04Ta2JAK1Gat+0chcVJpOiFr7K4YFNrVocoLyCRZ8KxCAdiaFbYFDAcmKr4 +rCVQcu4q3ZvJuCx4eQ1M5NwJezulUykrJ02l3xzJ/r6aOBo3mMwRR0Kq5REYowTu +VXbVzhH4U2fPBuW18tQd4ZlALjURdnrqY98CAwEAATANBgkqhkiG9w0BAQsFAAOC +AgEAdP/4Nh37vRcDhZD7vqeC8WhqmRlwWzJeOpukcXuuyAhCDmktQpnYooDxYqz/ +2khlPFhltt4/kfyZF0F8kQe+W+563pUd81syttxw0XvpfHDo/sQ2HYJTvowUUA+9 +EViLu1wcyujdsOO3bpFz6DClMp8bQy4imC32TZyc4BSx7QBR/mJD3VE16gWl/R2K +GIpdEE6Afz4L8OMr15XE90mT6xsvX1hp3+P2UWtSVDJQrTdy2/FCMXeM1OfYP0LT +f3U5I5SPN4WJfRMIFkULbqyjU2UXuSAEg7nwlli9TgizjAXt6oJsDBYrqIWSuDog +b/1JKCQdonkyDG5U0gZ1yaT88/V+BoXVo1xJt0Jeo1L42wPii8zJHVAbi2EPCz9V +GQ6p3P6ZiSeoRa3EgYI0KxEQSNjYlhOLWrGvPW3dhrkOcVPncx0kFuwHjkKIMajZ +7gvh8CU8aZ0z58h4LIGYMAfwebdEz9XeFM0qPVNO8io0W8VxjQiv7O+OOsjkIm1E +7GjKW80orEonQ4X/uGYJv+nx1ZcV2vzNMEA5ZeoXjYBetGO9+SqBw8F7KO2Wnz+k +vXgXs04J4HcISwc5xbAb5yiZDOSBjwSUqYtwC6nt9XXX/gXnQ2BX/G6lt8mNEx/G +GHXNA6Zl/GQmONFBUqdctyFwf555LgsvhDs2WzxLxLX9HrA= +-----END CERTIFICATE----- diff --git a/tests/integration/test_grpc_protocol_ssl/configs/client-key.pem b/tests/integration/test_grpc_protocol_ssl/configs/client-key.pem new file mode 100644 index 00000000000..3c53302873f --- /dev/null +++ b/tests/integration/test_grpc_protocol_ssl/configs/client-key.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDKeQ+X6RaIxbYA +KRkM3bofMJt+52o8A23okhgV0irexyz+6pZ/uN2yuXLDiPRh4wct7q0v80mSVgGN +3ktzFxl7V7ueURLvhKG+mVfpbVOUmginY5XBuFBKf3xy28GyPrqDaR2Ipp4GO3zX +VvHDYVtTpoNcZnJSLY0xY1TWlFbzTOde5nSbBxKxXTl5K2dHaQLH2Dnx9R6YSRQw +O6YW81B0jZx3EIFCntnSUVX3SMPVwcBLSlz0RCePjeAiWeMp2hTKOBq8s8DTe6FU +KNDAr+0iye7km0Cf5seGMFJPh0cQRvK6Shhep0AaAws01uV7+8gA0wb32acqeQSh +RLU3cz9+mmuMnObPUSUarUk4vmalyGjnoB1ji0LM+jxytReQzPsEngdypwZ8qM3+ +Bv7Z6sMrpAZATFTIdcf139WGjY6T3WYjHKnZr6FrIcWbWnKhO2H+2vV/plAwIx2B +Njza57vqd6EF6O0P9c03fmTvmNuqSMtzaXK2HIvy+c1reeGaX8a6luCCTKniI9T/ +ThNrYkArUZq37RyFxUmk6IWvsrhgU2tWhygvIJFnwrEIB2JoVtgUMByYqvisJVBy +7irdm8m4LHh5DUzk3Al7O6VTKSsnTaXfHMn+vpo4GjeYzBFHQqrlERijBO5VdtXO +EfhTZ88G5bXy1B3hmUAuNRF2eupj3wIDAQABAoICACvwJZAjxv4bWamjQYpnO5K1 +K6lYctdfLyS/P3bMyvzZYExZgBtrdMDqOZtxRwdPCynOl8rGEvssqt2sldb99kur ++E0c7u0HbUo9YLSJQxAGdUZN+Bu38cSY8drDEb+qmTMXRo93COf1VNwuQ/zQTc9T +XUJaAQkQVYmYMrr2KgBWegdAH6Hc4ROYVXaUEq+OfEn+BGUbem41vanR5/MnDhic ++o1kCYj5i+92Mx+crNLgXuh31MA1YhhnA3Kw6vkUGFrh3fuBTqEWPSZUTSjjhKR+ +CdeWUWnh3P6j0djsVGGV4+rFVZCE3wZGDtKCp/5F31s+cE6s7vfqlzSgAmtsGSTv +Vd1cFf/W1qkx0y8EyUN5EdA8HMeJJdNayc8RZsbtYzByMII54ryGxSa9S5M0iKNR +vjk3ogdz54AmQuMOVZHOoBkmNCuTPeHavNoo5xxtC+Qezrj1IvCfcMUhOFdRDTPd +bJwJYr9X9HrD8/geSUkQeAXGXMpcOljigk7HZz9u0CdbK85su6jKvCLSmvIUIlYd +Le77oI2CJmcgawDGHRnr8bt/GQEM3nbPt4HzMrYhKxPyrax1AhIFMfROJjeib1a/ +lGBiHFJGQ8y7qCZmgPqNMxgKZibe8IM3OmdLTqMWqn0fl+rq5TinEqVTfG7Lzd+m +uEgSHTUDMxiB+6iv+OmRAoIBAQDumfH9dsOwyA9vd6H6V6e59SON5aRixOLZsY1M +BEG1CdWNOP9iq5uChz2LLUmXg9KZmoBdFzf5RSO2QXDB+fZwbDM2ugq7BtW8RNj2 +piG8Hfm0JA9x6xEq9a4XulA//bs3/LqmSWNVIUqxOItPYVa2VvaIo9mrTRJ6DZCe ++nTxZyI/QOY0haeh0OoI3bShOsgLPUrr28higD97fuDM1zWHjfRkBPOA83qObG7I +bDd/t2xYMylBCLuG7hm/2NOPKX0a3Z4Cxwb7UOQwYAqiGPzd8ibCZaGCLVUkPD+9 +LlztaGfZMxWLPt7U+OwgCq1AMeNiGPFCNrqy/2Zo5IFhuuWtAoIBAQDZPLFys1Tx +yagx97v9sLz/WEYkfN/Gp2DPVyFB8hMT3zj6G+FHEt72XYyQFM3GtD6JlUbwcStv +GgW4MawA7A7Jtyj9WXAj/YeGbkZfT9cVaxiB4mYXTvLvDvAixHwob4HAJ73i3R47 +lc7E6oJqNoyQvlIRCeOWkMIZYNy7eVRWun5TdmV4w/i6TdswJ1ZcbZGm/VZeUpyT +pBzVf3XrpFNZpCcLnsi/fHOpu2gOdP8ynoeOJ0y7pigAMrqGS+MVwKVcpVUcOPZr +bg0HFCQ6L1fdp3UmMBGLD8lMEOcfH7aTqAO3CC0NGu7npQCmsQTeMlW5Zjwr9lwj +DllUEyIIoek7AoIBABe9t6dpvtUDQw3rUHGxcR3+t1fyJqYxQwU4Nn/+2G7kGJyh +tD+kJagaPtRvYCg0VKs2BVm96rLh30jOQCL89TmAeqQSZOjxKClAjHoWU7r9HJCB +GgxSwHWO1pDD2CJV4+ARRJ0xJjIdSupRXwM6Az/HbWZxL0JtO85rNR2sfCBdC7pR +gdZuChz+xZq2PLfiOm9r3N2VE95BNo/aMxIOw+PGCzA8keId1+79+RP2OJt7q8sm +5A71iHtHi8ZcE8jl7u3SaVuLZDVzehEaLVStudN3ucWUCTsDuboOSKVRTKvOvK6O +97DQQ6nbTtttVInTrPVg1/inq3IOGamMOxd3Wk0CggEBAJBF+7+mlEKkX/0Xf5Wj +vFGFSchP2rpvTR9GyYKnh74J4ShSPdJbGRLb3E+QUX2nFWWAa4WiU2tNCAFlk8tk ++wlCiImBzbVJWqmQMVJ5jundn4AbYRwXxcW40Qj2H1Mngy+f9T9nBP4jpxgmewiZ +Q8+ZZp2ESM8lQpNiPhaQJNAYuW8q0Ydb96Obs3eOmI94AWS7GZI5IV34f2HXbfRa +xTRijb/s63wo5hQSr6/ySc5PdM2XEiIJ3sUK68/nNGCs+eXGs/izaAy/IQ3TdZ/i +82L1JRuAjxYhHNpU23pTMIlt61Gyr2Dlw0a60ezi4c3D9iTUXiAAVP6/N9pbfp3n +EiMCggEBALJHpSPkphZT/z8+olAzmpG5hXF2wz5Tf06ripGKXOAjo77xMTqoOv8F +MrTnNtd08vV0rKiGS3yv7yESp+wWH52h3wIAA2BBXGfWpKaf172faUfWRQNdAF9x +bKJzHHSLOI/YIkzOuH/nZJVaN9K+8+IFEehUFrItXeqrsTIo7HyO5M7uqZb6OkVa +cbOPbAZCkSB+5WEZ9ioOtL1qGvqIovMxixyUrBWUSnse5iiheMMym6Af5396owEP +i4OYkjk+NuXGFCI/q2HZV28+3ENsLcgkAR5VRLRrkc1UYZahWUxoXGqDRKnGkOmc +V3Xoig0C2fgC/iiuaMKUh9T9dBnFsjw= +-----END PRIVATE KEY----- diff --git a/tests/integration/test_grpc_protocol_ssl/configs/client-req.pem b/tests/integration/test_grpc_protocol_ssl/configs/client-req.pem new file mode 100644 index 00000000000..60b819c9709 --- /dev/null +++ b/tests/integration/test_grpc_protocol_ssl/configs/client-req.pem @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIEmzCCAoMCAQAwVjELMAkGA1UEBhMCUlUxEzARBgNVBAgMClNvbWUtU3RhdGUx +ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEPMA0GA1UEAwwGY2xp +ZW50MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAynkPl+kWiMW2ACkZ +DN26HzCbfudqPANt6JIYFdIq3scs/uqWf7jdsrlyw4j0YeMHLe6tL/NJklYBjd5L +cxcZe1e7nlES74ShvplX6W1TlJoIp2OVwbhQSn98ctvBsj66g2kdiKaeBjt811bx +w2FbU6aDXGZyUi2NMWNU1pRW80znXuZ0mwcSsV05eStnR2kCx9g58fUemEkUMDum +FvNQdI2cdxCBQp7Z0lFV90jD1cHAS0pc9EQnj43gIlnjKdoUyjgavLPA03uhVCjQ +wK/tIsnu5JtAn+bHhjBST4dHEEbyukoYXqdAGgMLNNble/vIANMG99mnKnkEoUS1 +N3M/fpprjJzmz1ElGq1JOL5mpcho56AdY4tCzPo8crUXkMz7BJ4HcqcGfKjN/gb+ +2erDK6QGQExUyHXH9d/Vho2Ok91mIxyp2a+hayHFm1pyoTth/tr1f6ZQMCMdgTY8 +2ue76nehBejtD/XNN35k75jbqkjLc2lythyL8vnNa3nhml/Gupbggkyp4iPU/04T +a2JAK1Gat+0chcVJpOiFr7K4YFNrVocoLyCRZ8KxCAdiaFbYFDAcmKr4rCVQcu4q +3ZvJuCx4eQ1M5NwJezulUykrJ02l3xzJ/r6aOBo3mMwRR0Kq5REYowTuVXbVzhH4 +U2fPBuW18tQd4ZlALjURdnrqY98CAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4ICAQCS +2GjAzmqJidkh4qxwztOG1ufnZmPmVX9b2j3O284Kfm3dgqF9wKRCfKP9Te/pn+xO +zCTqO5yMcNDTVapIawZ07JWdAbRO7Laj9GYNJwnO7xDpjCcuUwfmGXRSgNQpNzL3 +zuYty/sBKmwZ7+LzKG6jjaqSMtw0LglWO94GtdURilpH4VjOCkp9RraDCrKICYn4 +UQhx80ieI4jwxuyZ6I5UJQuabCQ8PdrKQEBOnPGfMYqf+0JRDKIvHWQJvbx43Pyp +d69hJeY0742zRXVPk/W+2p2BhIE/uQWabLp6bqQhc6ZHINuMq1N60NdLMAu5iRoj +vhTiOB/uMG/GBOVswAnCNjn0jTlJd0qoY5EFMrXyDZ+cobmbZiQ0hUCrtV2kP7/5 +swOeMTa5dqoLqklvon8RjQlJvzPYMUV6CA5vU4mmeXORNgRmYuVG3xpZkSGB+XtW +QiK0u+4bPLKGslJjowZJvlE7A/ANzwSuGqiLs/UIAnA6URlg0K6gGyzc6c9kVi2k +ryH/Yv72cZ0jE4vpHagM1Ka21VfyS6RAuQxH3OveIi6OViKqGexhPBuja1eIjxVy +yc4i9Y/iZFNXn8AH1bMeXlWoG92Rsm0zhj+Oe082LkF72gwf8p4Khw/otbquGJzX +V24aeSrQCo+lxen7tooDo6BThGjNVnZQOIQSQJqtqA== +-----END CERTIFICATE REQUEST----- diff --git a/tests/integration/test_grpc_protocol_ssl/configs/generate_certs.sh b/tests/integration/test_grpc_protocol_ssl/configs/generate_certs.sh new file mode 100755 index 00000000000..318b07b03a1 --- /dev/null +++ b/tests/integration/test_grpc_protocol_ssl/configs/generate_certs.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# 1. Generate CA's private key and self-signed certificate +openssl req -newkey rsa:4096 -x509 -days 3650 -nodes -batch -keyout ca-key.pem -out ca-cert.pem -subj "/C=RU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=ca" + +# 2. Generate server's private key and certificate signing request (CSR) +openssl req -newkey rsa:4096 -nodes -batch -keyout server-key.pem -out server-req.pem -subj "/C=RU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=server" + +# 3. Use CA's private key to sign server's CSR and get back the signed certificate +openssl x509 -req -days 3650 -in server-req.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -extfile server-ext.cnf -out server-cert.pem + +# 4. Generate client's private key and certificate signing request (CSR) +openssl req -newkey rsa:4096 -nodes -batch -keyout client-key.pem -out client-req.pem -subj "/C=RU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=client" + +# 5. Use CA's private key to sign client's CSR and get back the signed certificate +openssl x509 -req -days 3650 -in client-req.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem + +# 6. Generate one more self-signed certificate and private key for using as wrong certificate (because it's not signed by CA) +openssl req -newkey rsa:4096 -x509 -days 3650 -nodes -batch -keyout wrong-client-key.pem -out wrong-client-cert.pem -subj "/C=RU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=client" diff --git a/tests/integration/test_grpc_protocol_ssl/configs/grpc_config.xml b/tests/integration/test_grpc_protocol_ssl/configs/grpc_config.xml new file mode 100644 index 00000000000..e9754b7e79b --- /dev/null +++ b/tests/integration/test_grpc_protocol_ssl/configs/grpc_config.xml @@ -0,0 +1,24 @@ + + 9001 + + true + + + /etc/clickhouse-server/config.d/server-cert.pem + /etc/clickhouse-server/config.d/server-key.pem + + + true + + + /etc/clickhouse-server/config.d/ca-cert.pem + + + gzip + + + high + + diff --git a/tests/integration/test_grpc_protocol_ssl/configs/server-cert.pem b/tests/integration/test_grpc_protocol_ssl/configs/server-cert.pem new file mode 100644 index 00000000000..3e2f4e7a16f --- /dev/null +++ b/tests/integration/test_grpc_protocol_ssl/configs/server-cert.pem @@ -0,0 +1,31 @@ +-----BEGIN CERTIFICATE----- +MIIFSTCCAzGgAwIBAgIUN8KVIqSaLTuK8iXQedZ/pKYlVuQwDQYJKoZIhvcNAQEL +BQAwUjELMAkGA1UEBhMCUlUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDELMAkGA1UEAwwCY2EwHhcNMjAxMDI4 +MDYzNzEyWhcNMzAwNzI4MDYzNzEyWjBWMQswCQYDVQQGEwJSVTETMBEGA1UECAwK +U29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMQ8w +DQYDVQQDDAZzZXJ2ZXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCv +bbMHZ/fsnqclKmRK7Br6b+qGlXfzF3m8nmbkj0sffXz1lHD9lVyDb2MghOMDstoD +set9xYwBasD3sFuIxgtVi1zMqFHe7Dj8pu8HkWm/9siZ0KkLOJQNvPPtRfcif7R6 +btDJgnEEGr+GZWxoo664fYUNT4bF/Ds7hqVPxVfUFJloeuficQXbwb8oAdjuGr6D +0njXUJuE33N2C7a2kpySs6s2JosgxCIpUvPNEciWD5dJOESE4v6KlM9f15lwck+3 +e4Vjp1HXKOIdw5owdtnUtqXEefQE/8NwXW1e3HckiNLSZRnv6Es7ZbP3HjmlYW34 +GgHpbwxbe2A7z4ZrFjg/O6UQxNuz2vJUE+54tPr/VVkTxhrDo+ST/CH5eWhY3tq1 +okatu8jbAys5XeQR+IHiYR/JPVupuynNm8fHsaWvFOcNMfckRsU50r2CysFTsJoY +Y+vNP01PU/RduPeH4iEO35s/Du/iNrTNyZQr+hc353txR2HTa9WjwnQt0xSvh/EU +LsH6TbDVsu9eJu4Eg4Z4IW9KOtUYiwn2aWlq3aUA3XBh2TSvjp8UbDVPdVn0AVdf +G0p+HBV9+fiAMEOv0YCksuj2eYtAVrFcJQ/scc6NVoRPz/+r+v5jKUDp1IpG0wLe +C/kzJ4o/S8TY5wdtZ5fUACwRs6zCE0yT9Wyc1txp9QIDAQABoxMwETAPBgNVHREE +CDAGhwQKBaxNMA0GCSqGSIb3DQEBCwUAA4ICAQB5t5kEGSpbEwrodv25k2J14Zv/ +ypRgPbo3QHPgpIJnDLhioxh7ju2yPECw7x9V8QnwxLYvTJTrQ5MZDzM2z8T56bJs +jXxFaOmgE5wSOcugszqsBQ2vGgrZujR+tob2xVAVjBTHh66JBQL9pbPPDi7AAGok +Zh+LZFcjyEUs7IzkSL7UtsvV49ify76ziXuhwQdfAD/MCsnrkdrRInHmXs+umH7h +Wvh91iFKqwEhLx5l4Ojb/LREuBS7W1iXsUWdj4aQUxBxjSS7amX8UoLJTXgVYEN/ +Lf8tJfHL3UqKx8WjlFEaqef7+JMW9Jn3ZB0zWaKeawatOrlGQ0E9qTTTmDVyygkT +l1q1pkPX8UAq+pq4SPOpUEn+QOfDWTFtun1rsrdLTKyO6j4Nfi2QDqwhwvUK9PGh +SJHqFCLhFTihDTfSQ39n45frOBLhbx882ex6N1biLFPzPsIFBjKwrItJsSSBzo+B +gVMfbtwxde1hk/KBhyHN9Fll9rzqhA9Xt1/4gAookeeLsWT4yX7RRdp2YrINdgw5 +a4bjVo9FbRS8DGYgjDRAqq3Khp1J6EzCIWxcLNWZNfxBdI9thxQNNUQR9g8n6yM0 +9oHcAib47ybEgRQ4owXCoBOujklQJmJyrVEk+yOFQxUqWu6zMrrU29j6YhqT//x+ +IZu+bd0qm9vdws6oGw== +-----END CERTIFICATE----- diff --git a/tests/integration/test_grpc_protocol_ssl/configs/server-ext.cnf b/tests/integration/test_grpc_protocol_ssl/configs/server-ext.cnf new file mode 100644 index 00000000000..83d9b03ccb7 --- /dev/null +++ b/tests/integration/test_grpc_protocol_ssl/configs/server-ext.cnf @@ -0,0 +1 @@ +subjectAltName=IP:10.5.172.77 diff --git a/tests/integration/test_grpc_protocol_ssl/configs/server-key.pem b/tests/integration/test_grpc_protocol_ssl/configs/server-key.pem new file mode 100644 index 00000000000..c3edbb3b244 --- /dev/null +++ b/tests/integration/test_grpc_protocol_ssl/configs/server-key.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQCvbbMHZ/fsnqcl +KmRK7Br6b+qGlXfzF3m8nmbkj0sffXz1lHD9lVyDb2MghOMDstoDset9xYwBasD3 +sFuIxgtVi1zMqFHe7Dj8pu8HkWm/9siZ0KkLOJQNvPPtRfcif7R6btDJgnEEGr+G +ZWxoo664fYUNT4bF/Ds7hqVPxVfUFJloeuficQXbwb8oAdjuGr6D0njXUJuE33N2 +C7a2kpySs6s2JosgxCIpUvPNEciWD5dJOESE4v6KlM9f15lwck+3e4Vjp1HXKOId +w5owdtnUtqXEefQE/8NwXW1e3HckiNLSZRnv6Es7ZbP3HjmlYW34GgHpbwxbe2A7 +z4ZrFjg/O6UQxNuz2vJUE+54tPr/VVkTxhrDo+ST/CH5eWhY3tq1okatu8jbAys5 +XeQR+IHiYR/JPVupuynNm8fHsaWvFOcNMfckRsU50r2CysFTsJoYY+vNP01PU/Rd +uPeH4iEO35s/Du/iNrTNyZQr+hc353txR2HTa9WjwnQt0xSvh/EULsH6TbDVsu9e +Ju4Eg4Z4IW9KOtUYiwn2aWlq3aUA3XBh2TSvjp8UbDVPdVn0AVdfG0p+HBV9+fiA +MEOv0YCksuj2eYtAVrFcJQ/scc6NVoRPz/+r+v5jKUDp1IpG0wLeC/kzJ4o/S8TY +5wdtZ5fUACwRs6zCE0yT9Wyc1txp9QIDAQABAoICAEp4ijCRrUiwjQoU9eBsXIOF +8QxS9Umn5JDyuYE7Z0ul7N8ftdughVZyeaU7ZFeUnEJHTE3nB6kuVV6Qajskv3kA +IVPr/F1i8Eoo333Z+Ad6zuulDa3qxccTOIW4VtI5Xjc/RbjVe/6fEEEQWzYMjkZZ +Wpss8Gypx8dcQF8dykwItpsI2dlh23fPxsNIDXv+tHOnbI8S9AIzDYPGMzlMAdWx +GfRx5kvxlwLt6PtcGkfBtJprnYLADghsZaAtGUEH9dlRQW3tgKuS+nJiL9l1CsHn +C3Xdw34/yQqxTpWfh6BlyQFx09HpTc6YPQ6hsR0IwDM7byZWcut+83pQfaKGGzfg +tXQvMOA8LFYKR9nBMJTvUmpwWIWfXlS2NU8AvJapdgbFvLksjPxuKKXB5zZgnaHY +QH5DqXT+QhHDWLKuo925lh7j8Z3OAZsUvKfhFstYhXRENm8/pkKpkDEDD2Pkjxll +QnQfCg+qCySgfjf5962DdqkepJUWuTCnmIJrn8H4eheMfEs8QRZAuYt6F7cNqdD/ +VREGeQ45/5pfPZslK7yVn2SRcVFL/CHg8BR1YalusHtOQsXJRU3Wczd3c4/H6xJw +7xpRuKsit/W/iFjgmg8ai6Q2xJu9wcOMb12jSPIzOywadUvMuxr80z71g3ZzJUIq +VoTWR4brjgfgVwaXoJphAoIBAQDYh4MlD4y1yKCdCXbonANiM4C8as4Tiy4yHryO +Wwrm8zlBnNYlA7Dvz92JHYPYAef+uz9761B7H1UE0fQhj3qzdUdT/79ay8ITSKFf +5yZR3OBcv+GUCKCkMX+M9fhC5L3YTZNMvSjhfcf7Z6Wf7qjEQ+qgVu+vhm+++ReP +6Fa4GB1xjMpbzAj1eh5Pt504NKPYjwojHbkhzrGc3hx3auYksh2JA7wOaQsuLw0R +BJP5EaDn+ByoM77agxGcynWZNDzayy0qHkblAa4PilIbYTt/2/uBhGzCwitVAViB +LO2JMMmNSdi9/+6tAhLViY/aNLU5MuGy4g12KhovDttt4fEtAoIBAQDPaDBlYne5 +TgJHxhRwyJmVrpunHolAeqIjUvDkuZfbgGNXjJmamLrHqcIAZqvLdTeRQPgG83Bg +aW6l5kjVzYa/++LCfqSSwqln/OAvzII7+h4XbwYyWn8m/R5Qg8GNAdS/T5J6HqOw +hmZAZVTo6qCcOgOnkdzCBWScEh+LsKcGJ7+WjY25MKUCSdfbFav42vlnI8TeMiKW +Yr/v9i4j6VpIl+TiVViiPCWz0yPuG/L63cqnGL2r6PgJnQloGLfRhrahAv0eClVr +qIRNzGpOJ8H28tZqIlXqtzIc7uVXGFv7mlem8qbjH3xpXtrIlTXfpyU43ZJX5D9f +2hdeYQEbeIjpAoIBAQC2cjCBqMGCZoNW7qOfyd1cAFOH72Kmuw54ssdkF7hu8yAa +dgFGfP64gmiDYTg3aRvG2pXaX2OX6sWjYxkWsiPMVJR+Za8h3TAxOXCoM0dpkPgH +jrKPHlnlH8P+zT6bdsu0F2F3NqfcoDRCVIoM4XaYsTVgVwBs4JUF0DMXUcjII6Gj +jOLxSFGALZ6ewvMZadlo3tXG0wOsRdIIgGpyAMPcxav3SAtMBRyjlIepADeClWUE +MF5NKBS3X9sWRs2iAo8IOExdAdfwnGLCu2UFpv8QdBZOgnt1+0+xt4mQhn+7qj0Z +7NBQ//ZnFqkx/lAUp3bPtFzScoCvQTiA0D76LngdAoIBAB/BQfej1dTHPs4iY6rI +68rhCu/RWw5GOGDUKBG84KU4yPz0h+gFjkNXmF5bWd4yuilBGzhlOUVpnwlDcs9Z +QlJOjG9e2G+n4iwLqX9n/mCUcNsBop8+/8zGYEfPhGjEaQBJfJG58zHpweoGGbP3 +iFOjBkA3sub50Gec1ruadlgY6dpxHcvGyNzK1YOzk7rsO9cwwMmMP4Nq5xwkQvg4 +mBwZNW/5xTJBpzwbDZs9KDyEjKx8uz2A08kVBAWuEya/S2LnhD1/M4jiKi+HJpeE +usvGblGdpC3lkoSfhvmIvzyMavMin66SeYfgf/rJ7Y+qlaZZNjjCt3lDeOR4UaUV +FVECggEAfstkAVKF0grLfJ0NNdQBg9AYtudiRVVdCQe9UMoJCtTLemaOZt2beDk5 +yZ1JvlbuqSTBEqPNECqZMOTxaPUtY6dfkRDI8zTY+MsT2OE9Q75+HYB+Jr/GMAKn +258pjju4emDSaGjmOHFefuti7ODeELQtmoaNL7qOZuTAsoVxa5P+xvsFSq4Nkv1+ +TiYLuzZdZHcIf+qZIRm5/P2mvuSmL/SZkh/2kdhPQqib8q2cpzBULj0cNpt13P0c +hB5sujZTY6PjFtZUlMIcTJ6xtzjiVM7Gf4jOf+kxvszcQpkOTg2UXdCac8+uquwU +mBf26auAKORLhL9eFF9XY8tojdEmdA== +-----END PRIVATE KEY----- diff --git a/tests/integration/test_grpc_protocol_ssl/configs/server-req.pem b/tests/integration/test_grpc_protocol_ssl/configs/server-req.pem new file mode 100644 index 00000000000..1d2c2053431 --- /dev/null +++ b/tests/integration/test_grpc_protocol_ssl/configs/server-req.pem @@ -0,0 +1,27 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIEmzCCAoMCAQAwVjELMAkGA1UEBhMCUlUxEzARBgNVBAgMClNvbWUtU3RhdGUx +ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEPMA0GA1UEAwwGc2Vy +dmVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr22zB2f37J6nJSpk +Suwa+m/qhpV38xd5vJ5m5I9LH3189ZRw/ZVcg29jIITjA7LaA7HrfcWMAWrA97Bb +iMYLVYtczKhR3uw4/KbvB5Fpv/bImdCpCziUDbzz7UX3In+0em7QyYJxBBq/hmVs +aKOuuH2FDU+Gxfw7O4alT8VX1BSZaHrn4nEF28G/KAHY7hq+g9J411CbhN9zdgu2 +tpKckrOrNiaLIMQiKVLzzRHIlg+XSThEhOL+ipTPX9eZcHJPt3uFY6dR1yjiHcOa +MHbZ1LalxHn0BP/DcF1tXtx3JIjS0mUZ7+hLO2Wz9x45pWFt+BoB6W8MW3tgO8+G +axY4PzulEMTbs9ryVBPueLT6/1VZE8Yaw6Pkk/wh+XloWN7ataJGrbvI2wMrOV3k +EfiB4mEfyT1bqbspzZvHx7GlrxTnDTH3JEbFOdK9gsrBU7CaGGPrzT9NT1P0Xbj3 +h+IhDt+bPw7v4ja0zcmUK/oXN+d7cUdh02vVo8J0LdMUr4fxFC7B+k2w1bLvXibu +BIOGeCFvSjrVGIsJ9mlpat2lAN1wYdk0r46fFGw1T3VZ9AFXXxtKfhwVffn4gDBD +r9GApLLo9nmLQFaxXCUP7HHOjVaET8//q/r+YylA6dSKRtMC3gv5MyeKP0vE2OcH +bWeX1AAsEbOswhNMk/VsnNbcafUCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4ICAQAX +jRopZcCxRE3Ir/9NeoH7zl0ySWMP2m27tiO9ts/iiRqqz8RRyoyXwBxjvdWP+T8i +QO4z0YiuIBQxybBh5S8cyFsI5webf8srRfWBfrUa9Sa28XXdfVtWEkYxNy9Qg3+C +9YQh2GhIMAnnm9lqd0AjtIsMIrswDwy3t8goqXh68Vz9/lzuJXfqP4xQEsbPWy1e +7hTJI7E/BLGpSmCe20HHzmnQd3TtSWVpR/JZCorAd13ePt07rSifrrYNpPCkvEyK +h9xVWF00rp+ftwDaHPaDVuYfMVN3N0HEM+I8377P8IW8FsQGkDZe8IYCdkRZGotY +tFue8/71IekfNokrfXLJw4fCF1gGjx4WWRZvzbFvSiWQZAxwX6Jt2iA/qn05Hv6f +KO3Up9MXF6JqLG3HFRAeMNBhwMpBLYAgGN4uK5S4PBMtbujbgm0ELhDcJv0SrZ4r +am2pzL2h4aoZF8pCPyLubwicFu2SfoWhX6XPRRStuz1g57KX7f41T0xGz5U0PJ/n +Ln7tcUBxEZfhkkWHbdVBgI5CrYQtAGSUU5hE6bNEXeH5VN3TodXXFcoYvgQ2LSb5 +f8QKG97x60Aqbq8VdPExPqczjalli9JSaIXfP9pL2F/1PJ6pbZPbeCLMYPvZUxSJ +YnJlvQ2V4uAQJEdEXzMns0drU5+tJTe4hB66uBE2vQ== +-----END CERTIFICATE REQUEST----- diff --git a/tests/integration/test_grpc_protocol_ssl/configs/wrong-client-cert.pem b/tests/integration/test_grpc_protocol_ssl/configs/wrong-client-cert.pem new file mode 100644 index 00000000000..0b2117674d5 --- /dev/null +++ b/tests/integration/test_grpc_protocol_ssl/configs/wrong-client-cert.pem @@ -0,0 +1,32 @@ +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIUGi5763gLrWzkBKSEOkeo1gyKdlUwDQYJKoZIhvcNAQEL +BQAwVjELMAkGA1UEBhMCUlUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEPMA0GA1UEAwwGY2xpZW50MB4XDTIw +MTEwMjIyMzE0NloXDTMwMTAzMTIyMzE0NlowVjELMAkGA1UEBhMCUlUxEzARBgNV +BAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0 +ZDEPMA0GA1UEAwwGY2xpZW50MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC +AgEAyJGQ+Vg/8ryZ4dgv5cIRRxQeNVNi7amKf+GGZr8ARVLlh+zcz7sWa/stRpQI +Q57F8DHuOvy+Q3FsCtwVcXBI8uNkgmTxwHlq8rqaG5usPb97VejiPrShK4U4h3XM +uZIkLC5pGpo+nHi6BtX8oBXP1BT5++cow/2kQGn0/f+fOjrjpD8jmapnyaUoEloA +laS8Rw9Qw/CGXzSRuUb+w0glDZ3w0ys7XevjWS/2lXHbDy0OnLwlhvQIJb6v/DJW +JGWTZD1cZ+JHwaLS5OE9vLlCmIAPdmqo1m2IHDsFgHsZGYcRZ9c6t1Jh0FQewol1 +KFtgbPHDMSYZd2EwrdYbYConrqFleT8AxwOyQNQeZ0tkOCML2cKNtTKLcLPA2E9h +jZqJ8U1ydr1zSwSi/u6bbIhJM9LnBEAxVwzRAut2lpXdtoPQLfNd7NRfFGafOAvN +cYbhf8Drw4pBTtqmlkHguHlDHdwYWOhi/HkuvyZso3T/aQKAd/clAwH0bKfhWuTY +ugyf2yr81WornoPwSDdLis04174g9qc7mGKVjL4JKNl1kyUmGwqEGV7m37hwqy5t +bSH9SPYMLq+qesB+3Nig2O5WJC2uw9ebMTAdzhC6AKxt6WsF2eTlh8UQdCh4PT8d +cyaLBQ0y/OGdg7HU1afeHTXN0FiTvvBT/Bh1Xjbz8dfq4h8CAwEAAaNTMFEwHQYD +VR0OBBYEFKe9PZgSPYKS4G4wlDh47FW5hGaKMB8GA1UdIwQYMBaAFKe9PZgSPYKS +4G4wlDh47FW5hGaKMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIB +AJsaPvL7Tb0JJhBv8I+DLXAPmX7ITnpOmK5xoSJxdJVrPEqqnA/K/nJqB0qb5+vt +oYyq91IIIMClySOmA42oNHT7UmsuFRCXMg1wW3x+DwLAHMBL0L3us+0FkCLXUTey +0QMcg3mvWTeQR5ShA8qZTXiv2z7NZudtOA6UznMjXsiHmRAJa0B+L0/JStaRmRZy +m5u59sRyoJ9C8rIFTa5gfBFahjMkm0r1QkafIkpimMLhzsofYNvJ7ZmxBoXSqs6S +Z0Orl0lpNa1sUedm7axoQ10ZXv43kHfLbEB2AIIr8AN+oFAe8Lh1+KALphGPXsFS +zjSQ6kbeSHhoaZCN87Jb0RHC5EQCN5POWSM/cq5WnUMtAtq6JttawaSxw2yP0/ps +Gl8ZUqFGAmo864BLAEbD/wXOGSpUSudN3ITdrlWAM63bmjFfEZH2rD6kmbmliZWN +JcQwwT6sinof1sDBW3qCie/vPh1HNKZG/oA85zndrOCIrMb5yHC3uhYpMeEV4zSi +m8beFGJPKoNl8Fn7Y9GA+7BuhLSaW2FZMN4bn1aub4kifohjjdjXoRwnQ79CGdkl +g7U9hmqzxcjG1ObQsCBrTmO5ju39rDTm8DJohhoAu4c+fUOwXPUE8vTXhklxphfF +lNzuwdJ8yqLxzD7ouuIL2580LJjRTEwbg0S7zxNjQAAx +-----END CERTIFICATE----- diff --git a/tests/integration/test_grpc_protocol_ssl/configs/wrong-client-key.pem b/tests/integration/test_grpc_protocol_ssl/configs/wrong-client-key.pem new file mode 100644 index 00000000000..389f213b5d0 --- /dev/null +++ b/tests/integration/test_grpc_protocol_ssl/configs/wrong-client-key.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDIkZD5WD/yvJnh +2C/lwhFHFB41U2LtqYp/4YZmvwBFUuWH7NzPuxZr+y1GlAhDnsXwMe46/L5DcWwK +3BVxcEjy42SCZPHAeWryupobm6w9v3tV6OI+tKErhTiHdcy5kiQsLmkamj6ceLoG +1fygFc/UFPn75yjD/aRAafT9/586OuOkPyOZqmfJpSgSWgCVpLxHD1DD8IZfNJG5 +Rv7DSCUNnfDTKztd6+NZL/aVcdsPLQ6cvCWG9Aglvq/8MlYkZZNkPVxn4kfBotLk +4T28uUKYgA92aqjWbYgcOwWAexkZhxFn1zq3UmHQVB7CiXUoW2Bs8cMxJhl3YTCt +1htgKieuoWV5PwDHA7JA1B5nS2Q4IwvZwo21Motws8DYT2GNmonxTXJ2vXNLBKL+ +7ptsiEkz0ucEQDFXDNEC63aWld22g9At813s1F8UZp84C81xhuF/wOvDikFO2qaW +QeC4eUMd3BhY6GL8eS6/JmyjdP9pAoB39yUDAfRsp+Fa5Ni6DJ/bKvzVaiueg/BI +N0uKzTjXviD2pzuYYpWMvgko2XWTJSYbCoQZXubfuHCrLm1tIf1I9gwur6p6wH7c +2KDY7lYkLa7D15sxMB3OELoArG3pawXZ5OWHxRB0KHg9Px1zJosFDTL84Z2DsdTV +p94dNc3QWJO+8FP8GHVeNvPx1+riHwIDAQABAoICADEjOJld/YzCmBC0nkdz3DfF +vgDihQIk30GlRwA1GyPgw0shxJdABqY9y0HXUo7+fw/xq6PX9+UeDJI8iSRZlgWr +oBwyDuhQ1trQzKCm6vPVzammfIdQSYwX/1lwis+L9kC8vhM+Zsh+61RxaIrvzRLw +cK4+W8Zoha0iSFtSHPhvJQZAUcB79yF3zPFyC2KeEWJ3Zhoa+1Cn2GvD8PZ23l0P +rMiPduPzvqdDEO5cDocRStsrXSZK8xQMO6FV07TnDc0pG1J4JYxTD8fzRuTNnnsu +JJumVebyvr3r19U6U1Plu2XtXP08uaoIceDHPGS+vkjykhegdezBauOr6NkOetnm +q7uPeSqCZKlLK7WKPPLLsMaO6ospfcbmChn8OwK7OuFj3PpMz40pyj2rB9iec5HJ +tWkf9MFKJpmsxudwUzD0YB7u8/75thKObMmCLbBYg0KW0koPxEhl3paGnwz+40mn +0IsPL07CV9/hvPQcjY269XPkOPPiJHmahuCnLHHXPjeTOv3M5sW2cQBW/riKhXRF +HOrkkXC4rNKDj6JWtSf05RL+8YbGDvhhyNsi/khtEZBxukQ/OwE2pnhEtcE1WIJS +eVbxQxArgSeZs+6gwhSwMlVz5IeqKuAncEauVfroEhzkdTX54Kd16p08PcL7s6T8 +p6WptMteyFTXdK2RCScBAoIBAQDppoI696GXJdaKr5BJBW/TAJ1nzy6FQw1X7G5i +AWo2fGvChQCOyCSwiKIitQo4lf2MVggzHLQuXKfejcz2Oghg2d94tKWRVaTy1KPl +qldlPbE2C+hAZWdMAA/z5AgG4vNorHtODDOhCdfxJ4Ht06G/RwZUlxyLJUptX7Qt +el32J/n1juPUKBiVKvSms7WnG0gBhDi789dn8LJGciQ7P17B9N+Z1aV9xAcj3cjx +HbH4xMr9LajnfpAMqQYvJHywTxFFHl13dGD2RSeEyD/ZtHjwcesmWMjF+NnOMUli +PCs7iAaZ0PsJ34GL9wFJ4x4YaJT5TEx3dUQvpRxO5jNfUDePAoIBAQDbwPheJAdD +vpzM/Qz/RO+3btG5f7yRVWRyIrs0mSvWYP7dvGIAFPzaK9iRIys8PsB1pXm7vDjD +CEG9sHghEHaHtll2qQ5o1vvRK8aMk08YRV4idTUuVXXfaHao+K1rGb9iS0ss/ORe +m34UB23omGrn2GTaWHQgcxuclmRKvT5PGeQ/Nc2+wgvoiostoGLXUcAJ5AtSBPV/ +Vr1g+osV/ho0z2Z9PLYWG1hggx2+4huqZpQdLcQBEobNOThRQA+IfdTerx4jiB0p +4YeiFRSNEZ6d7QChTvQUWmdsABATBBVPcaGdUH5ZfGytjOkMjbIMlIsWoJH00Biq +YXuxDcqgCeRxAoIBAQC1wmgwww6bbD33aRfPFkGlXScV6GACHuU0bqJ37y3W8PdL +PPfwGtYf1kp6wWcQGe5By3NZf4zTPBUC1kCJkx+NaC+l0LGz23ITzUMqmFagVVuT +9bNY1QmEX9AJJGzyHn7IANVzI57OOcAYw2kZv7Zl/DR6fYsg24OIjhi2ACk0Imka +k2u8UOy+rcngHJDFTD25oEgaPlhlbSLiFk0FIgjuzTVckIzKx0HerttwZm9aXIyk +Y26vlw8sKhi7d6Df7sI6iKKhGJGNQsK5UqYJD5G9SoFpNUwKZcnZ0xGJL9FZ4Dly +UtXXGl3GqgIAnoN87W5meOpLS5gdkE3zOrTgAqEVAoIBAQDbLwrLIxZX3Iwa7Z8E +EWcjx5XJdn3HW6u3J6sfWFNgHRi4Y0hAGq7kkO0OPkzGZzShYy4bMS5QYTDpGVWI +bRo8XIW5E/+6VAuQ4x/DYL54T+AHcG5dy4GpFlGcUYTvGRxJ1x2hPpAtSNwk8BAQ ++c1PeAeHvMf/AbCdq2dXIJBAZ2vAHFMdnAAyrdUJ6joL1486jkk4Qpf2rbZwPxVx +FyReXis0aNSZEidBBCYsGOxNNskunVItW6Q2l4bzi3iyxAcJIRNnj0C/YCJfaLU5 +y0Qw8o45Vj2e+1jCYQGnZeA3f/gZp4qOiMsBA1YDXmUjpRlhtUA/NTwU3Ox5eW8L +1zIRAoIBAHtIeWclcp0q/Owjghk6IWqldfWjHqtWeG9saOf+EjqxnIfLaKxaOtgx +A7j7nbO7D4coZ/rByLAFubs5hdDkKlZULBMM1mtdprJP0uNdVxFTcGk79a4CvbAs +kH5Jd8wfR2MnMQp6PAFjyN3VX0zFZx1gYJd4nl7XT3jO1t9oL8xFG8foZ7NMYwek +MbyysZkSsXlfCHvqTDJKEm4VCttMOYaDd86hJtdqibEfb9lg2jx04Yc7rbRtCHlZ +jfyA2TczituYZ2ESaSIiAk7QXvMzH6vbCM3yCJwFQ9dMJtz4e07rQOyrzqwvUUBU +G8i1dUPnAE+ptBu6wVo+RrverCmfe4Q= +-----END PRIVATE KEY----- diff --git a/tests/integration/test_grpc_protocol_ssl/protos/clickhouse_grpc.proto b/tests/integration/test_grpc_protocol_ssl/protos/clickhouse_grpc.proto new file mode 120000 index 00000000000..25d15f11e3b --- /dev/null +++ b/tests/integration/test_grpc_protocol_ssl/protos/clickhouse_grpc.proto @@ -0,0 +1 @@ +../../../../src/Server/grpc_protos/clickhouse_grpc.proto \ No newline at end of file diff --git a/tests/integration/test_grpc_protocol_ssl/test.py b/tests/integration/test_grpc_protocol_ssl/test.py new file mode 100644 index 00000000000..339a41c799d --- /dev/null +++ b/tests/integration/test_grpc_protocol_ssl/test.py @@ -0,0 +1,88 @@ +import os +import pytest +import subprocess +import sys +import grpc +from helpers.cluster import ClickHouseCluster + +SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) + + +# Use grpcio-tools to generate *pb2.py files from *.proto. + +proto_dir = os.path.join(SCRIPT_DIR, './protos') +gen_dir = os.path.join(SCRIPT_DIR, './_gen') +os.makedirs(gen_dir, exist_ok=True) +subprocess.check_call( + 'python3 -m grpc_tools.protoc -I{proto_dir} --python_out={gen_dir} --grpc_python_out={gen_dir} \ + {proto_dir}/clickhouse_grpc.proto'.format(proto_dir=proto_dir, gen_dir=gen_dir), shell=True) + +sys.path.append(gen_dir) +import clickhouse_grpc_pb2 +import clickhouse_grpc_pb2_grpc + + +# Utilities + +node_ip = '10.5.172.77' # It's important for the node to work at this IP because 'server-cert.pem' requires that (see server-ext.cnf). +grpc_port = 9001 +node_ip_with_grpc_port = node_ip + ':' + str(grpc_port) +config_dir = os.path.join(SCRIPT_DIR, './configs') +cluster = ClickHouseCluster(__file__) +node = cluster.add_instance('node', ipv4_address=node_ip, main_configs=['configs/grpc_config.xml', 'configs/server-key.pem', 'configs/server-cert.pem', 'configs/ca-cert.pem']) + +def create_secure_channel(): + ca_cert = open(os.path.join(config_dir, 'ca-cert.pem'), 'rb').read() + client_key = open(os.path.join(config_dir, 'client-key.pem'), 'rb').read() + client_cert = open(os.path.join(config_dir, 'client-cert.pem'), 'rb').read() + credentials = grpc.ssl_channel_credentials(ca_cert, client_key, client_cert) + channel = grpc.secure_channel(node_ip_with_grpc_port, credentials) + grpc.channel_ready_future(channel).result(timeout=10) + return channel + +def create_insecure_channel(): + channel = grpc.insecure_channel(node_ip_with_grpc_port) + grpc.channel_ready_future(channel).result(timeout=2) + return channel + +def create_secure_channel_with_wrong_client_certificate(): + ca_cert = open(os.path.join(config_dir, 'ca-cert.pem'), 'rb').read() + client_key = open(os.path.join(config_dir, 'wrong-client-key.pem'), 'rb').read() + client_cert = open(os.path.join(config_dir, 'wrong-client-cert.pem'), 'rb').read() + credentials = grpc.ssl_channel_credentials(ca_cert, client_key, client_cert) + channel = grpc.secure_channel(node_ip_with_grpc_port, credentials) + grpc.channel_ready_future(channel).result(timeout=2) + return channel + +def query(query_text, channel): + query_info = clickhouse_grpc_pb2.QueryInfo(query=query_text) + stub = clickhouse_grpc_pb2_grpc.ClickHouseStub(channel) + result = stub.ExecuteQuery(query_info) + if result and result.HasField('exception'): + raise Exception(result.exception.display_text) + return result.output + +@pytest.fixture(scope="module", autouse=True) +def start_cluster(): + cluster.start() + try: + yield cluster + + finally: + cluster.shutdown() + +# Actual tests + +def test_secure_channel(): + with create_secure_channel() as channel: + assert query("SELECT 'ok'", channel) == "ok\n" + +def test_insecure_channel(): + with pytest.raises(grpc.FutureTimeoutError): + with create_insecure_channel() as channel: + query("SELECT 'ok'", channel) + +def test_wrong_client_certificate(): + with pytest.raises(grpc.FutureTimeoutError): + with create_insecure_channel() as channel: + query("SELECT 'ok'", channel) From 88f1eeec2f2111f8df9a8d158306a2bfb9bfd3db Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Wed, 28 Oct 2020 11:09:08 +0300 Subject: [PATCH 283/425] Add tests for parallel executing of queries. --- tests/integration/test_grpc_protocol/test.py | 38 ++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tests/integration/test_grpc_protocol/test.py b/tests/integration/test_grpc_protocol/test.py index b1847ec5388..6e324151a5e 100644 --- a/tests/integration/test_grpc_protocol/test.py +++ b/tests/integration/test_grpc_protocol/test.py @@ -4,6 +4,7 @@ import subprocess import sys import grpc from helpers.cluster import ClickHouseCluster +from threading import Thread SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) @@ -102,6 +103,21 @@ def query_and_get_logs(*args, **kwargs): logs += log_entry.text + "\n" return logs +class QueryThread(Thread): + def __init__(self, query_text, expected_output, query_id, use_separate_channel=False): + Thread.__init__(self) + self.query_text = query_text + self.expected_output = expected_output + self.use_separate_channel = use_separate_channel + self.query_id = query_id + + def run(self): + if self.use_separate_channel: + with create_channel() as channel: + assert query(self.query_text, query_id=self.query_id, channel=channel) == self.expected_output + else: + assert query(self.query_text, query_id=self.query_id) == self.expected_output + @pytest.fixture(scope="module", autouse=True) def start_cluster(): cluster.start() @@ -236,3 +252,25 @@ def test_session(): def test_no_session(): e = query_and_get_error("SET custom_x=1") assert "There is no session" in e.display_text + +def test_simultaneous_queries_same_channel(): + threads=[] + try: + for i in range(0, 100): + thread = QueryThread("SELECT sum(number) FROM numbers(10)", expected_output="45\n", query_id='sqA'+str(i)) + threads.append(thread) + thread.start() + finally: + for thread in threads: + thread.join() + +def test_simultaneous_queries_multiple_channels(): + threads=[] + try: + for i in range(0, 100): + thread = QueryThread("SELECT sum(number) FROM numbers(10)", expected_output="45\n", query_id='sqB'+str(i), use_separate_channel=True) + threads.append(thread) + thread.start() + finally: + for thread in threads: + thread.join() From 18ebea5d66b0cda896a900443d3eeca62928316f Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sun, 8 Nov 2020 13:26:45 +0300 Subject: [PATCH 284/425] Optimization: Forward reading of next query infos. --- src/Server/GRPCServer.cpp | 88 +++++++++++++++++++++++++++------------ 1 file changed, 61 insertions(+), 27 deletions(-) diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index a967c599d4a..c1b99a809df 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -467,6 +467,7 @@ namespace void close(); void readQueryInfo(); + void throwIfFailedToReadQueryInfo(); void addProgressToResult(); void addTotalsToResult(const Block & totals); @@ -501,9 +502,7 @@ namespace GRPCQueryInfo query_info; /// We reuse the same messages multiple times. GRPCResult result; - /// 0 - no query info has been read, 1 - initial query info, 2 - next query info, ... - size_t query_info_index = 0; - + bool initial_query_info_read = false; bool finalize = false; bool responder_finished = false; @@ -519,7 +518,11 @@ namespace UInt64 waited_for_client_reading = 0; UInt64 waited_for_client_writing = 0; - std::atomic sending_result = false; /// atomic because it can be accessed both from call_thread and queue_thread + /// The following fields are accessed both from call_thread and queue_thread. + std::atomic reading_query_info = false; + std::atomic failed_to_read_query_info = false; + GRPCQueryInfo next_query_info_while_reading; + std::atomic sending_result = false; std::atomic failed_to_send_result = false; ThreadFromGlobalPool call_thread; @@ -665,7 +668,7 @@ namespace query_context->setProgressCallback([this](const Progress & value) { return progress.incrementPiecewiseAtomically(value); }); /// Parse the query. - query_text = std::move(*query_info.mutable_query()); + query_text = std::move(*(query_info.mutable_query())); const char * begin = query_text.data(); const char * end = begin + query_text.size(); ParserQuery parser(end); @@ -986,33 +989,64 @@ namespace void Call::readQueryInfo() { - bool ok = false; - Stopwatch client_writing_watch; - - /// Start reading a query info. - bool reading_query_info = true; - responder->read(query_info, [&](bool ok_) + auto start_reading = [&] { - /// Called on queue_thread. - ok = ok_; - reading_query_info = false; - read_finished.notify_one(); - }); + assert(!reading_query_info); + reading_query_info = true; + responder->read(next_query_info_while_reading, [this](bool ok) + { + /// Called on queue_thread. + if (!ok) + { + /// We cannot throw an exception right here because this code is executed + /// on queue_thread. + failed_to_read_query_info = true; + } + reading_query_info = false; + read_finished.notify_one(); + }); + }; - /// Wait until the reading is finished. - std::unique_lock lock{dummy_mutex}; - read_finished.wait(lock, [&] { return !reading_query_info; }); - waited_for_client_writing += client_writing_watch.elapsedNanoseconds(); - - if (!ok) + auto finish_reading = [&] { - if (!query_info_index) - throw Exception("Failed to read initial QueryInfo", ErrorCodes::NETWORK_ERROR); - else - throw Exception("Failed to read extra QueryInfo", ErrorCodes::NETWORK_ERROR); + if (reading_query_info) + { + Stopwatch client_writing_watch; + std::unique_lock lock{dummy_mutex}; + read_finished.wait(lock, [this] { return !reading_query_info; }); + waited_for_client_writing += client_writing_watch.elapsedNanoseconds(); + } + throwIfFailedToReadQueryInfo(); + query_info = std::move(next_query_info_while_reading); + initial_query_info_read = true; + }; + + if (!initial_query_info_read) + { + /// Initial query info hasn't been read yet, so we're going to read it now. + start_reading(); } - ++query_info_index; + /// Maybe it's reading a query info right now. Let it finish. + finish_reading(); + + if (isInputStreaming(call_type) && query_info.next_query_info()) + { + /// Next query info can contain more input data. Now we start reading a next query info, + /// so another call of readQueryInfo() in the future will probably be able to take it. + start_reading(); + } + } + + void Call::throwIfFailedToReadQueryInfo() + { + if (failed_to_read_query_info) + { + if (initial_query_info_read) + throw Exception("Failed to read extra QueryInfo", ErrorCodes::NETWORK_ERROR); + else + throw Exception("Failed to read initial QueryInfo", ErrorCodes::NETWORK_ERROR); + } } void Call::addProgressToResult() From 0e3a8840b565164c9046445e56208e6b1dc5fd48 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Mon, 2 Nov 2020 03:47:43 +0300 Subject: [PATCH 285/425] Support cancellation of executing query via gRPC. --- src/Server/GRPCServer.cpp | 116 ++++++++++++++++--- src/Server/grpc_protos/clickhouse_grpc.proto | 4 +- tests/integration/test_grpc_protocol/test.py | 27 +++++ 3 files changed, 133 insertions(+), 14 deletions(-) diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index c1b99a809df..79e1630931a 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -179,6 +179,8 @@ namespace str.append(str.empty() ? "" : ", ").append("progress"); if (result.logs_size()) str.append(str.empty() ? "" : ", ").append("logs: ").append(std::to_string(result.logs_size())).append(" entries"); + if (result.cancelled()) + str.append(str.empty() ? "" : ", ").append("cancelled"); if (result.has_exception()) str.append(str.empty() ? "" : ", ").append("exception"); return str; @@ -468,6 +470,7 @@ namespace void readQueryInfo(); void throwIfFailedToReadQueryInfo(); + bool isQueryCancelled(); void addProgressToResult(); void addTotalsToResult(const Block & totals); @@ -505,6 +508,7 @@ namespace bool initial_query_info_read = false; bool finalize = false; bool responder_finished = false; + bool cancelled = false; std::optional read_buffer; std::optional write_buffer; @@ -522,6 +526,8 @@ namespace std::atomic reading_query_info = false; std::atomic failed_to_read_query_info = false; GRPCQueryInfo next_query_info_while_reading; + std::atomic want_to_cancel = false; + std::atomic check_query_info_contains_cancel_only = false; std::atomic sending_result = false; std::atomic failed_to_send_result = false; @@ -589,6 +595,9 @@ namespace readQueryInfo(); + if (query_info.cancel()) + throw Exception("Initial query info cannot set the 'cancel' field", ErrorCodes::INVALID_GRPC_QUERY_INFO); + LOG_DEBUG(log, "Received initial QueryInfo: {}", getQueryDescription(query_info)); } @@ -777,9 +786,13 @@ namespace || !query_info.session_id().empty()) { throw Exception("Extra query infos can be used only to add more input data. " - "Only the following fields can be set: input_data, next_query_info", + "Only the following fields can be set: input_data, next_query_info, cancel", ErrorCodes::INVALID_GRPC_QUERY_INFO); } + + if (isQueryCancelled()) + break; + LOG_DEBUG(log, "Received extra QueryInfo: input_data: {} bytes", query_info.input_data().size()); need_input_data_from_query_info = true; } @@ -824,10 +837,23 @@ namespace block_output_stream = query_context->getOutputFormat(output_format, *write_buffer, async_in.getHeader()); Stopwatch after_send_progress; + /// We are not going to receive input data anymore. + check_query_info_contains_cancel_only = true; + + auto check_for_cancel = [&] + { + if (isQueryCancelled()) + { + async_in.cancel(false); + return false; + } + return true; + }; + async_in.readPrefix(); block_output_stream->writePrefix(); - while (true) + while (check_for_cancel()) { Block block; if (async_in.poll(interactive_delay / 1000)) @@ -838,6 +864,8 @@ namespace } throwIfFailedToSendResult(); + if (!check_for_cancel()) + break; if (block && !io.null_format) block_output_stream->write(block); @@ -855,14 +883,19 @@ namespace sendResult(); throwIfFailedToSendResult(); + if (!check_for_cancel()) + break; } async_in.readSuffix(); block_output_stream->writeSuffix(); - addTotalsToResult(io.in->getTotals()); - addExtremesToResult(io.in->getExtremes()); - addProfileInfoToResult(io.in->getProfileInfo()); + if (!isQueryCancelled()) + { + addTotalsToResult(io.in->getTotals()); + addExtremesToResult(io.in->getExtremes()); + addProfileInfoToResult(io.in->getProfileInfo()); + } } void Call::generateOutputWithProcessors() @@ -876,10 +909,28 @@ namespace block_output_stream->writePrefix(); Stopwatch after_send_progress; - Block block; - while (executor->pull(block, interactive_delay / 1000)) + /// We are not going to receive input data anymore. + check_query_info_contains_cancel_only = true; + + auto check_for_cancel = [&] { + if (isQueryCancelled()) + { + executor->cancel(); + return false; + } + return true; + }; + + Block block; + while (check_for_cancel()) + { + if (!executor->pull(block, interactive_delay / 1000)) + break; + throwIfFailedToSendResult(); + if (!check_for_cancel()) + break; if (block && !io.null_format) block_output_stream->write(block); @@ -897,13 +948,18 @@ namespace sendResult(); throwIfFailedToSendResult(); + if (!check_for_cancel()) + break; } block_output_stream->writeSuffix(); - addTotalsToResult(executor->getTotalsBlock()); - addExtremesToResult(executor->getExtremesBlock()); - addProfileInfoToResult(executor->getProfileInfo()); + if (!isQueryCancelled()) + { + addTotalsToResult(executor->getTotalsBlock()); + addExtremesToResult(executor->getExtremesBlock()); + addProfileInfoToResult(executor->getProfileInfo()); + } } void Call::finishQuery() @@ -996,7 +1052,22 @@ namespace responder->read(next_query_info_while_reading, [this](bool ok) { /// Called on queue_thread. - if (!ok) + if (ok) + { + const auto & nqi = next_query_info_while_reading; + if (check_query_info_contains_cancel_only) + { + if (!nqi.query().empty() || !nqi.query_id().empty() || !nqi.settings().empty() || !nqi.database().empty() + || !nqi.input_data().empty() || !nqi.input_data_delimiter().empty() || !nqi.output_format().empty() + || !nqi.user_name().empty() || !nqi.password().empty() || !nqi.quota().empty() || !nqi.session_id().empty()) + { + LOG_WARNING(log, "Cannot add extra information to a query which is already executing. Only the 'cancel' field can be set"); + } + } + if (nqi.cancel()) + want_to_cancel = true; + } + else { /// We cannot throw an exception right here because this code is executed /// on queue_thread. @@ -1030,7 +1101,7 @@ namespace /// Maybe it's reading a query info right now. Let it finish. finish_reading(); - if (isInputStreaming(call_type) && query_info.next_query_info()) + if (isInputStreaming(call_type)) { /// Next query info can contain more input data. Now we start reading a next query info, /// so another call of readQueryInfo() in the future will probably be able to take it. @@ -1049,6 +1120,25 @@ namespace } } + bool Call::isQueryCancelled() + { + if (cancelled) + { + result.set_cancelled(true); + return true; + } + + if (want_to_cancel) + { + LOG_INFO(log, "Query cancelled"); + cancelled = true; + result.set_cancelled(true); + return true; + } + + return false; + } + void Call::addProgressToResult() { auto values = progress.fetchAndResetPiecewiseAtomically(); @@ -1151,7 +1241,7 @@ namespace return; /// If output is not streaming then only the final result can be sent. - bool send_final_message = finalize || result.has_exception(); + bool send_final_message = finalize || result.has_exception() || result.cancelled(); if (!send_final_message && !isOutputStreaming(call_type)) return; diff --git a/src/Server/grpc_protos/clickhouse_grpc.proto b/src/Server/grpc_protos/clickhouse_grpc.proto index 665f3247dbb..745e12d2dc4 100644 --- a/src/Server/grpc_protos/clickhouse_grpc.proto +++ b/src/Server/grpc_protos/clickhouse_grpc.proto @@ -16,7 +16,8 @@ message QueryInfo { string session_id = 11; bool session_check = 12; uint32 session_timeout = 13; - bool next_query_info = 14; + bool cancel = 14; + bool next_query_info = 15; } enum LogsLevel { @@ -72,6 +73,7 @@ message Result { Progress progress = 5; Stats stats = 6; Exception exception = 7; + bool cancelled = 8; } service ClickHouse { diff --git a/tests/integration/test_grpc_protocol/test.py b/tests/integration/test_grpc_protocol/test.py index 6e324151a5e..d242947f953 100644 --- a/tests/integration/test_grpc_protocol/test.py +++ b/tests/integration/test_grpc_protocol/test.py @@ -2,6 +2,7 @@ import os import pytest import subprocess import sys +import time import grpc from helpers.cluster import ClickHouseCluster from threading import Thread @@ -274,3 +275,29 @@ def test_simultaneous_queries_multiple_channels(): finally: for thread in threads: thread.join() + +def test_cancel_while_processing_input(): + query("CREATE TABLE t (a UInt8) ENGINE = Memory") + def send_query_info(): + yield clickhouse_grpc_pb2.QueryInfo(query="INSERT INTO t FORMAT TabSeparated", input_data="1\n2\n3\n", next_query_info=True) + yield clickhouse_grpc_pb2.QueryInfo(input_data="4\n5\n6\n", next_query_info=True) + yield clickhouse_grpc_pb2.QueryInfo(cancel=True) + stub = clickhouse_grpc_pb2_grpc.ClickHouseStub(main_channel) + result = stub.ExecuteQueryWithStreamInput(send_query_info()) + assert result.cancelled == True + assert result.progress.written_rows == 6 + assert query("SELECT a FROM t ORDER BY a") == "1\n2\n3\n4\n5\n6\n" + +def test_cancel_while_generating_output(): + def send_query_info(): + yield clickhouse_grpc_pb2.QueryInfo(query="SELECT number, sleep(0.2) FROM numbers(10) SETTINGS max_block_size=2") + time.sleep(0.5) + yield clickhouse_grpc_pb2.QueryInfo(cancel=True) + stub = clickhouse_grpc_pb2_grpc.ClickHouseStub(main_channel) + results = list(stub.ExecuteQueryWithStreamIO(send_query_info())) + assert len(results) >= 1 + assert results[-1].cancelled == True + output = '' + for result in results: + output += result.output + assert output == '0\t0\n1\t0\n2\t0\n3\t0\n' From 23842e7ac6b23cd7266aa60f56fee37f34db75cd Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Tue, 3 Nov 2020 07:37:59 +0300 Subject: [PATCH 286/425] Added support for input() function. --- src/Server/GRPCServer.cpp | 31 +++++++++++++++++--- tests/integration/test_grpc_protocol/test.py | 9 ++++++ 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index 79e1630931a..d09f4d2f04f 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -497,6 +497,7 @@ namespace String output_format; uint64_t interactive_delay = 100000; bool send_exception_with_stacktrace = true; + bool input_function_is_used = false; BlockIO io; Progress progress; @@ -704,6 +705,26 @@ namespace if (output_format.empty()) output_format = query_context->getDefaultFormat(); + /// Set callbacks to execute function input(). + query_context->setInputInitializer([this] (Context & context, const StoragePtr & input_storage) + { + if (&context != &query_context.value()) + throw Exception("Unexpected context in Input initializer", ErrorCodes::LOGICAL_ERROR); + input_function_is_used = true; + initializeBlockInputStream(input_storage->getInMemoryMetadataPtr()->getSampleBlock()); + block_input_stream->readPrefix(); + }); + + query_context->setInputBlocksReaderCallback([this](Context & context) -> Block + { + if (&context != &query_context.value()) + throw Exception("Unexpected context in InputBlocksReader", ErrorCodes::LOGICAL_ERROR); + auto block = block_input_stream->read(); + if (!block) + block_input_stream->readSuffix(); + return block; + }); + /// Start executing the query. const auto * query_end = end; if (insert_query && insert_query->data) @@ -837,8 +858,9 @@ namespace block_output_stream = query_context->getOutputFormat(output_format, *write_buffer, async_in.getHeader()); Stopwatch after_send_progress; - /// We are not going to receive input data anymore. - check_query_info_contains_cancel_only = true; + /// Unless the input() function is used we are not going to receive input data anymore. + if (!input_function_is_used) + check_query_info_contains_cancel_only = true; auto check_for_cancel = [&] { @@ -909,8 +931,9 @@ namespace block_output_stream->writePrefix(); Stopwatch after_send_progress; - /// We are not going to receive input data anymore. - check_query_info_contains_cancel_only = true; + /// Unless the input() function is used we are not going to receive input data anymore. + if (!input_function_is_used) + check_query_info_contains_cancel_only = true; auto check_for_cancel = [&] { diff --git a/tests/integration/test_grpc_protocol/test.py b/tests/integration/test_grpc_protocol/test.py index d242947f953..1a2eecfc890 100644 --- a/tests/integration/test_grpc_protocol/test.py +++ b/tests/integration/test_grpc_protocol/test.py @@ -254,6 +254,15 @@ def test_no_session(): e = query_and_get_error("SET custom_x=1") assert "There is no session" in e.display_text +def test_input_function(): + query("CREATE TABLE t (a UInt8) ENGINE = Memory") + query("INSERT INTO t SELECT col1 * col2 FROM input('col1 UInt8, col2 UInt8') FORMAT CSV", input_data=["5,4\n", "8,11\n", "10,12\n"]) + assert query("SELECT a FROM t ORDER BY a") == "20\n88\n120\n" + query("INSERT INTO t SELECT col1 * col2 FROM input('col1 UInt8, col2 UInt8') FORMAT CSV 11,13") + assert query("SELECT a FROM t ORDER BY a") == "20\n88\n120\n143\n" + query("INSERT INTO t SELECT col1 * col2 FROM input('col1 UInt8, col2 UInt8') FORMAT CSV 20,10\n", input_data="15,15\n") + assert query("SELECT a FROM t ORDER BY a") == "20\n88\n120\n143\n200\n225\n" + def test_simultaneous_queries_same_channel(): threads=[] try: From a0e384b0c06bcc2010754b6c8a2d1ff19adc1b19 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Tue, 3 Nov 2020 14:47:34 +0300 Subject: [PATCH 287/425] Added support for external tables. --- src/Server/GRPCServer.cpp | 114 ++++++++++++++++++- src/Server/grpc_protos/clickhouse_grpc.proto | 30 +++-- tests/integration/test_grpc_protocol/test.py | 37 +++++- 3 files changed, 169 insertions(+), 12 deletions(-) diff --git a/src/Server/GRPCServer.cpp b/src/Server/GRPCServer.cpp index d09f4d2f04f..cf5c6112312 100644 --- a/src/Server/GRPCServer.cpp +++ b/src/Server/GRPCServer.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -24,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -161,6 +163,8 @@ namespace str.append(str.empty() ? "" : ", ").append("query_id: ").append(query_info.query_id()); if (!query_info.input_data().empty()) str.append(str.empty() ? "" : ", ").append("input_data: ").append(std::to_string(query_info.input_data().size())).append(" bytes"); + if (query_info.external_tables_size()) + str.append(str.empty() ? "" : ", ").append("external tables: ").append(std::to_string(query_info.external_tables_size())); return str; } @@ -459,6 +463,7 @@ namespace void processInput(); void initializeBlockInputStream(const Block & header); + void createExternalTables(); void generateOutput(); void generateOutputWithProcessors(); @@ -705,6 +710,14 @@ namespace if (output_format.empty()) output_format = query_context->getDefaultFormat(); + /// Set callback to create and fill external tables + query_context->setExternalTablesInitializer([this] (Context & context) + { + if (&context != &*query_context) + throw Exception("Unexpected context in external tables initializer", ErrorCodes::LOGICAL_ERROR); + createExternalTables(); + }); + /// Set callbacks to execute function input(). query_context->setInputInitializer([this] (Context & context, const StoragePtr & input_storage) { @@ -803,8 +816,8 @@ namespace readQueryInfo(); if (!query_info.query().empty() || !query_info.query_id().empty() || !query_info.settings().empty() || !query_info.database().empty() || !query_info.input_data_delimiter().empty() || !query_info.output_format().empty() - || !query_info.user_name().empty() || !query_info.password().empty() || !query_info.quota().empty() - || !query_info.session_id().empty()) + || query_info.external_tables_size() || !query_info.user_name().empty() || !query_info.password().empty() + || !query_info.quota().empty() || !query_info.session_id().empty()) { throw Exception("Extra query infos can be used only to add more input data. " "Only the following fields can be set: input_data, next_query_info, cancel", @@ -842,6 +855,103 @@ namespace } } + void Call::createExternalTables() + { + while (true) + { + for (const auto & external_table : query_info.external_tables()) + { + String name = external_table.name(); + if (name.empty()) + name = "_data"; + auto temporary_id = StorageID::createEmpty(); + temporary_id.table_name = name; + + /// If such a table does not exist, create it. + StoragePtr storage; + if (auto resolved = query_context->tryResolveStorageID(temporary_id, Context::ResolveExternal)) + { + storage = DatabaseCatalog::instance().getTable(resolved, *query_context); + } + else + { + NamesAndTypesList columns; + for (size_t column_idx : ext::range(external_table.columns_size())) + { + const auto & name_and_type = external_table.columns(column_idx); + NameAndTypePair column; + column.name = name_and_type.name(); + if (column.name.empty()) + column.name = "_" + std::to_string(column_idx + 1); + column.type = DataTypeFactory::instance().get(name_and_type.type()); + columns.emplace_back(std::move(column)); + } + auto temporary_table = TemporaryTableHolder(*query_context, ColumnsDescription{columns}, {}); + storage = temporary_table.getTable(); + query_context->addExternalTable(temporary_id.table_name, std::move(temporary_table)); + } + + if (!external_table.data().empty()) + { + /// The data will be written directly to the table. + auto metadata_snapshot = storage->getInMemoryMetadataPtr(); + auto out_stream = storage->write(ASTPtr(), metadata_snapshot, *query_context); + ReadBufferFromMemory data(external_table.data().data(), external_table.data().size()); + String format = external_table.format(); + if (format.empty()) + format = "TabSeparated"; + Context * external_table_context = &*query_context; + std::optional temp_context; + if (!external_table.settings().empty()) + { + temp_context = *query_context; + external_table_context = &*temp_context; + SettingsChanges settings_changes; + for (const auto & [key, value] : external_table.settings()) + settings_changes.push_back({key, value}); + external_table_context->checkSettingsConstraints(settings_changes); + external_table_context->applySettingsChanges(settings_changes); + } + auto in_stream = external_table_context->getInputFormat( + format, data, metadata_snapshot->getSampleBlock(), external_table_context->getSettings().max_insert_block_size); + in_stream->readPrefix(); + out_stream->writePrefix(); + while (auto block = in_stream->read()) + out_stream->write(block); + in_stream->readSuffix(); + out_stream->writeSuffix(); + } + } + + if (!query_info.input_data().empty()) + { + /// External tables must be created before executing query, + /// so all external tables must be send no later sending any input data. + break; + } + + if (!query_info.next_query_info()) + break; + + if (!isInputStreaming(call_type)) + throw Exception("next_query_info is allowed to be set only for streaming input", ErrorCodes::INVALID_GRPC_QUERY_INFO); + + readQueryInfo(); + if (!query_info.query().empty() || !query_info.query_id().empty() || !query_info.settings().empty() + || !query_info.database().empty() || !query_info.input_data_delimiter().empty() + || !query_info.output_format().empty() || !query_info.user_name().empty() || !query_info.password().empty() + || !query_info.quota().empty() || !query_info.session_id().empty()) + { + throw Exception("Extra query infos can be used only to add more data to input or more external tables. " + "Only the following fields can be set: input_data, external_tables, next_query_info, cancel", + ErrorCodes::INVALID_GRPC_QUERY_INFO); + } + if (isQueryCancelled()) + break; + LOG_DEBUG(log, "Received extra QueryInfo: external tables: {}", query_info.external_tables_size()); + } + } + void Call::generateOutput() { if (io.pipeline.initialized()) diff --git a/src/Server/grpc_protos/clickhouse_grpc.proto b/src/Server/grpc_protos/clickhouse_grpc.proto index 745e12d2dc4..5f60d49e7db 100644 --- a/src/Server/grpc_protos/clickhouse_grpc.proto +++ b/src/Server/grpc_protos/clickhouse_grpc.proto @@ -2,6 +2,19 @@ syntax = "proto3"; package clickhouse.grpc; +message NameAndType { + string name = 1; + string type = 2; +} + +message ExternalTable { + string name = 1; + repeated NameAndType columns = 2; + string data = 3; + string format = 4; + map settings = 5; +} + message QueryInfo { string query = 1; string query_id = 2; @@ -10,14 +23,15 @@ message QueryInfo { string input_data = 5; string input_data_delimiter = 6; string output_format = 7; - string user_name = 8; - string password = 9; - string quota = 10; - string session_id = 11; - bool session_check = 12; - uint32 session_timeout = 13; - bool cancel = 14; - bool next_query_info = 15; + repeated ExternalTable external_tables = 8; + string user_name = 9; + string password = 10; + string quota = 11; + string session_id = 12; + bool session_check = 13; + uint32 session_timeout = 14; + bool cancel = 15; + bool next_query_info = 16; } enum LogsLevel { diff --git a/tests/integration/test_grpc_protocol/test.py b/tests/integration/test_grpc_protocol/test.py index 1a2eecfc890..fcd214509d6 100644 --- a/tests/integration/test_grpc_protocol/test.py +++ b/tests/integration/test_grpc_protocol/test.py @@ -41,7 +41,7 @@ def create_channel(): main_channel = channel return channel -def query_common(query_text, settings={}, input_data=[], input_data_delimiter='', output_format='TabSeparated', query_id='123', session_id='', stream_output=False, channel=None): +def query_common(query_text, settings={}, input_data=[], input_data_delimiter='', output_format='TabSeparated', external_tables=[], query_id='123', session_id='', stream_output=False, channel=None): if type(input_data) == str: input_data = [input_data] if not channel: @@ -50,7 +50,8 @@ def query_common(query_text, settings={}, input_data=[], input_data_delimiter='' def query_info(): input_data_part = input_data.pop(0) if input_data else '' return clickhouse_grpc_pb2.QueryInfo(query=query_text, settings=settings, input_data=input_data_part, input_data_delimiter=input_data_delimiter, - output_format=output_format, query_id=query_id, session_id=session_id, next_query_info=bool(input_data)) + output_format=output_format, external_tables=external_tables, query_id=query_id, session_id=session_id, + next_query_info=bool(input_data)) def send_query_info(): yield query_info() while input_data: @@ -263,6 +264,38 @@ def test_input_function(): query("INSERT INTO t SELECT col1 * col2 FROM input('col1 UInt8, col2 UInt8') FORMAT CSV 20,10\n", input_data="15,15\n") assert query("SELECT a FROM t ORDER BY a") == "20\n88\n120\n143\n200\n225\n" +def test_external_table(): + columns = [clickhouse_grpc_pb2.NameAndType(name='UserID', type='UInt64'), clickhouse_grpc_pb2.NameAndType(name='UserName', type='String')] + ext1 = clickhouse_grpc_pb2.ExternalTable(name='ext1', columns=columns, data='1\tAlex\n2\tBen\n3\tCarl\n', format='TabSeparated') + assert query("SELECT * FROM ext1 ORDER BY UserID", external_tables=[ext1]) == "1\tAlex\n"\ + "2\tBen\n"\ + "3\tCarl\n" + ext2 = clickhouse_grpc_pb2.ExternalTable(name='ext2', columns=columns, data='4,Daniel\n5,Ethan\n', format='CSV') + assert query("SELECT * FROM (SELECT * FROM ext1 UNION ALL SELECT * FROM ext2) ORDER BY UserID", external_tables=[ext1, ext2]) == "1\tAlex\n"\ + "2\tBen\n"\ + "3\tCarl\n"\ + "4\tDaniel\n"\ + "5\tEthan\n" + unnamed_columns = [clickhouse_grpc_pb2.NameAndType(type='UInt64'), clickhouse_grpc_pb2.NameAndType(type='String')] + unnamed_table = clickhouse_grpc_pb2.ExternalTable(columns=unnamed_columns, data='6\tGeorge\n7\tFred\n') + assert query("SELECT * FROM _data ORDER BY _2", external_tables=[unnamed_table]) == "7\tFred\n"\ + "6\tGeorge\n" + +def test_external_table_streaming(): + columns = [clickhouse_grpc_pb2.NameAndType(name='UserID', type='UInt64'), clickhouse_grpc_pb2.NameAndType(name='UserName', type='String')] + def send_query_info(): + yield clickhouse_grpc_pb2.QueryInfo(query="SELECT * FROM exts ORDER BY UserID", + external_tables=[clickhouse_grpc_pb2.ExternalTable(name='exts', columns=columns, data='1\tAlex\n2\tBen\n3\tCarl\n')], + next_query_info=True) + yield clickhouse_grpc_pb2.QueryInfo(external_tables=[clickhouse_grpc_pb2.ExternalTable(name='exts', data='4\tDaniel\n5\tEthan\n')]) + stub = clickhouse_grpc_pb2_grpc.ClickHouseStub(main_channel) + result = stub.ExecuteQueryWithStreamInput(send_query_info()) + assert result.output == "1\tAlex\n"\ + "2\tBen\n"\ + "3\tCarl\n"\ + "4\tDaniel\n"\ + "5\tEthan\n" + def test_simultaneous_queries_same_channel(): threads=[] try: From 950bccb130997b7d0e4b49c0344a2313421abb9c Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sat, 7 Nov 2020 14:42:29 +0300 Subject: [PATCH 288/425] Add test for authentication. --- tests/integration/test_grpc_protocol/test.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/tests/integration/test_grpc_protocol/test.py b/tests/integration/test_grpc_protocol/test.py index fcd214509d6..6589e2336d7 100644 --- a/tests/integration/test_grpc_protocol/test.py +++ b/tests/integration/test_grpc_protocol/test.py @@ -41,7 +41,8 @@ def create_channel(): main_channel = channel return channel -def query_common(query_text, settings={}, input_data=[], input_data_delimiter='', output_format='TabSeparated', external_tables=[], query_id='123', session_id='', stream_output=False, channel=None): +def query_common(query_text, settings={}, input_data=[], input_data_delimiter='', output_format='TabSeparated', external_tables=[], + user_name='', password='', query_id='123', session_id='', stream_output=False, channel=None): if type(input_data) == str: input_data = [input_data] if not channel: @@ -50,8 +51,8 @@ def query_common(query_text, settings={}, input_data=[], input_data_delimiter='' def query_info(): input_data_part = input_data.pop(0) if input_data else '' return clickhouse_grpc_pb2.QueryInfo(query=query_text, settings=settings, input_data=input_data_part, input_data_delimiter=input_data_delimiter, - output_format=output_format, external_tables=external_tables, query_id=query_id, session_id=session_id, - next_query_info=bool(input_data)) + output_format=output_format, external_tables=external_tables, user_name=user_name, password=password, + query_id=query_id, session_id=session_id, next_query_info=bool(input_data)) def send_query_info(): yield query_info() while input_data: @@ -201,6 +202,10 @@ def test_errors_handling(): e = query_and_get_error("CREATE TABLE t (a UInt8) ENGINE = Memory") assert "Table default.t already exists" in e.display_text +def test_authentication(): + query("CREATE USER john IDENTIFIED BY 'qwe123'") + assert query("SELECT currentUser()", user_name="john", password="qwe123") == "john\n" + def test_logs(): logs = query_and_get_logs("SELECT 1", settings={'send_logs_level':'debug'}) assert "SELECT 1" in logs From 1bd19bb1242439b75137ed569c81431f8970b4bc Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Thu, 5 Nov 2020 17:17:13 +0300 Subject: [PATCH 289/425] Implemented clickhouse grpc client. --- utils/grpc-client/.gitignore | 1 + utils/grpc-client/clickhouse-grpc-client.py | 301 ++++++++++++++++++ .../grpc-client/protos/clickhouse_grpc.proto | 1 + 3 files changed, 303 insertions(+) create mode 100644 utils/grpc-client/.gitignore create mode 100755 utils/grpc-client/clickhouse-grpc-client.py create mode 120000 utils/grpc-client/protos/clickhouse_grpc.proto diff --git a/utils/grpc-client/.gitignore b/utils/grpc-client/.gitignore new file mode 100644 index 00000000000..edf565ec632 --- /dev/null +++ b/utils/grpc-client/.gitignore @@ -0,0 +1 @@ +_gen diff --git a/utils/grpc-client/clickhouse-grpc-client.py b/utils/grpc-client/clickhouse-grpc-client.py new file mode 100755 index 00000000000..ef5f6d1f154 --- /dev/null +++ b/utils/grpc-client/clickhouse-grpc-client.py @@ -0,0 +1,301 @@ +#!/usr/bin/env python3 + +# This utility provides similar interface to clickhouse-client. +# This utility also can work in two modes: interactive and non-interactive (batch). +# +# For example, +# ./clickhouse_grpc_client.py - runs interactive mode; and +# ./clickhouse_grpc_client.py -u John -q "SELECT * FROM mytable" - runs only a specified query from the user John. +# +# Most of the command line options are the same, for more information type +# ./clickhouse_grpc_client.py --help + +import argparse, cmd, os, signal, subprocess, sys, threading, time, uuid, grpc + +default_host = 'localhost' +default_port = 9001 +default_user_name = 'default' +default_output_format_for_interactive_mode = 'PrettyCompact' +history_filename = '~/.clickhouse_grpc_history' +history_size = 1000 +stdin_bufsize = 1048576 + + +class ClickHouseGRPCError(Exception): + pass + + +# Temporary override reaction on Ctrl+C. +class KeyboardInterruptHandlerOverride: + # If `handler` return True that means pressing Ctrl+C has been handled, no need to call previous handler. + def __init__(self, handler): + self.handler = handler + + def __enter__(self): + self.previous_handler = signal.signal(signal.SIGINT, self.__handler) + + def __exit__(self, exc_type, exc_value, traceback): + signal.signal(signal.SIGINT, self.previous_handler) + + def __handler(self, signum, frame): + if not self.handler(): + self.previous_handler(signum, frame) + + +# Print to stderr +def error_print(*args, **kwargs): + print(*args, file=sys.stderr, **kwargs) + + +class ClickHouseGRPCClient(cmd.Cmd): + prompt="grpc :) " + + def __init__(self, host=default_host, port=default_port, user_name=default_user_name, password='', + database='', output_format='', settings='', verbatim=False, show_debug_info=False): + super(ClickHouseGRPCClient, self).__init__(completekey=None) + self.host = host + self.port = port + self.user_name = user_name + self.password = password + self.database = database + self.output_format = output_format + self.settings = settings + self.verbatim = verbatim + self.show_debug_info = show_debug_info + self.channel = None + self.stub = None + self.session_id = None + + def __enter__(self): + ClickHouseGRPCClient.__generate_pb2() + ClickHouseGRPCClient.__import_pb2() + self.__connect() + return self + + def __exit__(self, exc_type, exc_value, traceback): + self.__disconnect() + + # Executes a simple query and returns its output. + def get_simple_query_output(self, query_text): + result = self.stub.ExecuteQuery(clickhouse_grpc_pb2.QueryInfo(query=query_text, user_name=self.user_name, password=self.password, + database=self.database, output_format='TabSeparated', settings=self.settings, + session_id=self.session_id, query_id=str(uuid.uuid4()))) + if self.show_debug_info: + print('\nresult={}'.format(result)) + ClickHouseGRPCClient.__check_no_errors(result) + return result.output + + # Executes a query using the stream IO and with ability to cancel it by pressing Ctrl+C. + def run_query(self, query_text, raise_exceptions=True, allow_cancel=False): + start_time = time.time() + cancelled = False + cancel_tries = 0 + cancel_event = threading.Event() + + def keyboard_interrupt_handler(): + if allow_cancel: + nonlocal cancel_tries + cancel_tries = cancel_tries + 1 + if cancel_tries < 3: + self.verbatim_print("Cancelling query.") + if cancel_tries == 1: + cancel_event.set() + return True + # third attempt to cancel - we use previous handler which will terminate the client. + self.verbatim_print("Couldn't cancel the query, terminating.") + return False + + with KeyboardInterruptHandlerOverride(keyboard_interrupt_handler): + try: + def send_query_info(): + # send main query info + info = clickhouse_grpc_pb2.QueryInfo(query=query_text, user_name=self.user_name, password=self.password, + database=self.database, output_format=self.output_format, settings=self.settings, + session_id=self.session_id, query_id=str(uuid.uuid4())) + # send input data + if not sys.stdin.isatty(): + while True: + info.input_data = sys.stdin.buffer.read(stdin_bufsize) + if not info.input_data: + break + info.next_query_info = True + yield info + info = clickhouse_grpc_pb2.QueryInfo() + yield info + # wait for possible cancel + if allow_cancel: + cancel_event.wait() + if cancel_tries > 0: + yield clickhouse_grpc_pb2.QueryInfo(cancel=True) + + for result in self.stub.ExecuteQueryWithStreamIO(send_query_info()): + if self.show_debug_info: + print('\nresult={}'.format(result)) + ClickHouseGRPCClient.__check_no_errors(result) + print(result.output, end='') + if result.cancelled: + cancelled = True + self.verbatim_print("Query was cancelled.") + + cancel_event.set() + if not cancelled: + execution_time = time.time() - start_time + self.verbatim_print('\nElapsed: {execution_time} sec.\n'.format(execution_time=execution_time)) + + except Exception as e: + if raise_exceptions: + raise + error_print(e) + + # Establish connection. + def __connect(self): + self.verbatim_print("Connecting to {host}:{port} as user {user_name}.".format(host=self.host, port=self.port, user_name=self.user_name)) + # Secure channels are supported by server but not supported by this client. + start_time = time.time() + self.channel = grpc.insecure_channel(self.host + ':' + str(self.port)) + connection_time = 0 + timeout=5 + while True: + try: + grpc.channel_ready_future(self.channel).result(timeout=timeout) + break; + except grpc.FutureTimeoutError: + connection_time += timeout + self.verbatim_print("Couldn't connect to ClickHouse server in {connection_time} seconds.".format(connection_time=connection_time)) + self.stub = clickhouse_grpc_pb2_grpc.ClickHouseStub(self.channel) + connection_time = time.time() - start_time + if self.verbatim: + version = self.get_simple_query_output("SELECT version() FORMAT TabSeparated").rstrip('\n') + self.verbatim_print("Connected to ClickHouse server version {version} via gRPC protocol in {connection_time}.".format(version=version, connection_time=connection_time)) + + def __disconnect(self): + if self.channel: + self.channel.close() + self.channel = None + self.stub = None + self.session_id = None + + @staticmethod + def __check_no_errors(result): + if result.HasField('exception'): + raise ClickHouseGRPCError(result.exception.display_text) + + # Use grpcio-tools to generate *pb2.py files from *.proto. + @staticmethod + def __generate_pb2(): + script_dir = os.path.dirname(os.path.realpath(__file__)) + proto_dir = os.path.join(script_dir, './protos') + gen_dir = os.path.join(script_dir, './_gen') + if os.path.exists(os.path.join(gen_dir, 'clickhouse_grpc_pb2_grpc.py')): + return + os.makedirs(gen_dir, exist_ok=True) + cmd = ['python3', '-m', 'grpc_tools.protoc', '-I'+proto_dir, '--python_out='+gen_dir, '--grpc_python_out='+gen_dir, + proto_dir+'/clickhouse_grpc.proto'] + p = subprocess.Popen(cmd, stderr=subprocess.PIPE) + # We don't want to show grpc_tools warnings. + errors = p.stderr.read().decode().strip('\n').split('\n') + only_warnings = all(('Warning' in error) for error in errors) + if not only_warnings: + error_print(errors.join('\n')) + + # Import the generated *pb2.py files. + @staticmethod + def __import_pb2(): + script_dir = os.path.dirname(os.path.realpath(__file__)) + gen_dir = os.path.join(script_dir, './_gen') + sys.path.append(gen_dir) + global clickhouse_grpc_pb2, clickhouse_grpc_pb2_grpc + import clickhouse_grpc_pb2, clickhouse_grpc_pb2_grpc + + # Prints only if interactive mode is activated. + def verbatim_print(self, *args, **kwargs): + if self.verbatim: + print(*args, **kwargs) + + # Overrides Cmd.preloop(). Executed once when cmdloop() is called. + def preloop(self): + super(ClickHouseGRPCClient, self).preloop() + ClickHouseGRPCClient.__read_history() + # we use session for interactive mode + self.session_id = str(uuid.uuid4()) + + # Overrides Cmd.postloop(). Executed once when cmdloop() is about to return. + def postloop(self): + super(ClickHouseGRPCClient, self).postloop() + ClickHouseGRPCClient.__write_history() + + # Overrides Cmd.onecmd(). Runs single command. + def onecmd(self, line): + stripped = line.strip() + if stripped == 'exit' or stripped == 'quit': + return True + if stripped == '': + return False + self.run_query(line, raise_exceptions=False, allow_cancel=True) + return False + + # Enables history of commands for interactive mode. + @staticmethod + def __read_history(): + global readline + try: + import readline + except ImportError: + readline = None + histfile = os.path.expanduser(history_filename) + if readline and os.path.exists(histfile): + readline.read_history_file(histfile) + + @staticmethod + def __write_history(): + global readline + if readline: + readline.set_history_length(history_size) + histfile = os.path.expanduser(history_filename) + readline.write_history_file(histfile) + + +# MAIN + +def main(args): + parser = argparse.ArgumentParser(description='ClickHouse client accessing server through gRPC protocol.', add_help=False) + parser.add_argument('--help', help='Show this help message and exit', action='store_true') + parser.add_argument('--host', '-h', help='The server name, ‘localhost’ by default. You can use either the name or the IPv4 or IPv6 address.', default='localhost') + parser.add_argument('--port', help='The port to connect to. This port should be enabled on the ClickHouse server (see grpc_port in the config).', default=9001) + parser.add_argument('--user', '-u', dest='user_name', help='The username. Default value: ‘default’.', default='default') + parser.add_argument('--password', help='The password. Default value: empty string.', default='') + parser.add_argument('--query', '-q', help='The query to process when using non-interactive mode.', default='') + parser.add_argument('--database', '-d', help='Select the current default database. Default value: the current database from the server settings (‘default’ by default).', default='') + parser.add_argument('--format', '-f', dest='output_format', help='Use the specified default format to output the result.', default='') + parser.add_argument('--debug', dest='show_debug_info', help='Enables showing the debug information.', action='store_true') + args = parser.parse_args(args) + + if args.help: + parser.print_help() + sys.exit(0) + + interactive_mode = not args.query + verbatim = interactive_mode + + output_format = args.output_format + if not output_format and interactive_mode: + output_format = default_output_format_for_interactive_mode + + try: + with ClickHouseGRPCClient(host=args.host, port=args.port, user_name=args.user_name, password=args.password, + database=args.database, output_format=output_format, verbatim=verbatim, + show_debug_info=args.show_debug_info) as client: + if interactive_mode: + client.cmdloop() + else: + client.run_query(args.query) + except KeyboardInterrupt: + pass + except Exception as e: + error_print(e) + + if verbatim: + print("\nBye") + +if __name__ == '__main__': + main(sys.argv[1:]) diff --git a/utils/grpc-client/protos/clickhouse_grpc.proto b/utils/grpc-client/protos/clickhouse_grpc.proto new file mode 120000 index 00000000000..14d51a404bd --- /dev/null +++ b/utils/grpc-client/protos/clickhouse_grpc.proto @@ -0,0 +1 @@ +../../../src/Server/grpc_protos/clickhouse_grpc.proto \ No newline at end of file From be056a93aba22b183f614db5ea53cb2b57fb8b7a Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sat, 7 Nov 2020 17:59:23 +0300 Subject: [PATCH 290/425] Add comments desribing the protocol. --- src/Server/grpc_protos/clickhouse_grpc.proto | 53 ++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/src/Server/grpc_protos/clickhouse_grpc.proto b/src/Server/grpc_protos/clickhouse_grpc.proto index 5f60d49e7db..c80a8bf1d40 100644 --- a/src/Server/grpc_protos/clickhouse_grpc.proto +++ b/src/Server/grpc_protos/clickhouse_grpc.proto @@ -1,3 +1,17 @@ +/* This file describes gRPC protocol supported in ClickHouse. + * + * To use this protocol a client should send one or more messages of the QueryInfo type + * and then receive one or more messages of the Result type. + * According to that the service provides four methods for that: + * ExecuteQuery(QueryInfo) returns (Result) + * ExecuteQueryWithStreamInput(stream QueryInfo) returns (Result) + * ExecuteQueryWithStreamOutput(QueryInfo) returns (stream Result) + * ExecuteQueryWithStreamIO(stream QueryInfo) returns (stream Result) + * It's up to the client to choose which method to use. + * For example, ExecuteQueryWithStreamInput() allows the client to add data multiple times + * while executing a query, which is suitable for inserting many rows. + */ + syntax = "proto3"; package clickhouse.grpc; @@ -7,30 +21,62 @@ message NameAndType { string type = 2; } +// Desribes an external table - a table which will exists only while a query is executing. message ExternalTable { + // Name of the table. If omitted, "_data" is used. string name = 1; + + // Columns of the table. Types are required, names can be omitted. If the names are omitted, "_1", "_2", ... is used. repeated NameAndType columns = 2; + + // Data to insert to the external table. + // If a method with streaming input (i.e. ExecuteQueryWithStreamInput() or ExecuteQueryWithStreamIO()) is used, + // then data for insertion to the same external table can be splitted between multiple QueryInfos. string data = 3; + + // Format of the data to insert to the external table. string format = 4; + + // Settings for executing that insertion, applied after QueryInfo.settings. map settings = 5; } +// Information about a query which a client sends to a ClickHouse server. +// The first QueryInfo can set any of the following fields. Extra QueryInfos only add extra data. +// In extra QueryInfos only `input_data`, `external_tables`, `next_query_info` and `cancel` fields can be set. message QueryInfo { string query = 1; string query_id = 2; map settings = 3; + + // Default database. string database = 4; + + // Input data, used both as data for INSERT query and as data for the input() function. string input_data = 5; + + // Delimiter for input_data, inserted between input_data from adjacent QueryInfos. string input_data_delimiter = 6; + + // Default output format. If not specified, 'TabSeparated' is used. string output_format = 7; + repeated ExternalTable external_tables = 8; + string user_name = 9; string password = 10; string quota = 11; + + // Works exactly like sessions in the HTTP protocol. string session_id = 12; bool session_check = 13; uint32 session_timeout = 14; + + // Set `cancel` to true to stop executing the query. bool cancel = 15; + + // If true there will be at least one more QueryInfo in the input stream. + // `next_query_info` is allowed to be set only if a method with streaming input (i.e. ExecuteQueryWithStreamInput() or ExecuteQueryWithStreamIO()) is used. bool next_query_info = 16; } @@ -79,14 +125,21 @@ message Exception { string stack_trace = 4; } +// Result of execution of a query which is sent back by the ClickHouse server to the client. message Result { + // Output of the query, represented in the `output_format` or in a format specified in `query`. string output = 1; string totals = 2; string extremes = 3; + repeated LogEntry logs = 4; Progress progress = 5; Stats stats = 6; + + // Set by the ClickHouse server if there was an exception thrown while executing. Exception exception = 7; + + // Set by the ClickHouse server if executing was cancelled by the `cancel` field in QueryInfo. bool cancelled = 8; } From d9498988903da18a822d8d019e3469bec8dce994 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sat, 14 Nov 2020 07:04:03 +0300 Subject: [PATCH 291/425] glibc-compatibility: Add eventfd(), eventfd_read(), eventfd_write() from musl 1.2.1. --- base/glibc-compatibility/musl/eventfd.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 base/glibc-compatibility/musl/eventfd.c diff --git a/base/glibc-compatibility/musl/eventfd.c b/base/glibc-compatibility/musl/eventfd.c new file mode 100644 index 00000000000..68e489c8364 --- /dev/null +++ b/base/glibc-compatibility/musl/eventfd.c @@ -0,0 +1,23 @@ +#include +#include +#include +#include "syscall.h" + +int eventfd(unsigned int count, int flags) +{ + int r = __syscall(SYS_eventfd2, count, flags); +#ifdef SYS_eventfd + if (r==-ENOSYS && !flags) r = __syscall(SYS_eventfd, count); +#endif + return __syscall_ret(r); +} + +int eventfd_read(int fd, eventfd_t *value) +{ + return (sizeof(*value) == read(fd, value, sizeof(*value))) ? 0 : -1; +} + +int eventfd_write(int fd, eventfd_t value) +{ + return (sizeof(value) == write(fd, &value, sizeof(value))) ? 0 : -1; +} From fc67aaec2070bf71fbcf5886ca0092dc4f0a9d37 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sat, 14 Nov 2020 07:21:27 +0300 Subject: [PATCH 292/425] glibc-compatibility: Add epoll_create1() from musl 1.2.1. --- base/glibc-compatibility/musl/epoll.c | 37 +++++++++++++++++++++++++ base/glibc-compatibility/musl/syscall.h | 2 ++ 2 files changed, 39 insertions(+) create mode 100644 base/glibc-compatibility/musl/epoll.c diff --git a/base/glibc-compatibility/musl/epoll.c b/base/glibc-compatibility/musl/epoll.c new file mode 100644 index 00000000000..deff5b101aa --- /dev/null +++ b/base/glibc-compatibility/musl/epoll.c @@ -0,0 +1,37 @@ +#include +#include +#include +#include "syscall.h" + +int epoll_create(int size) +{ + return epoll_create1(0); +} + +int epoll_create1(int flags) +{ + int r = __syscall(SYS_epoll_create1, flags); +#ifdef SYS_epoll_create + if (r==-ENOSYS && !flags) r = __syscall(SYS_epoll_create, 1); +#endif + return __syscall_ret(r); +} + +int epoll_ctl(int fd, int op, int fd2, struct epoll_event *ev) +{ + return syscall(SYS_epoll_ctl, fd, op, fd2, ev); +} + +int epoll_pwait(int fd, struct epoll_event *ev, int cnt, int to, const sigset_t *sigs) +{ + int r = __syscall(SYS_epoll_pwait, fd, ev, cnt, to, sigs, _NSIG/8); +#ifdef SYS_epoll_wait + if (r==-ENOSYS && !sigs) r = __syscall(SYS_epoll_wait, fd, ev, cnt, to); +#endif + return __syscall_ret(r); +} + +int epoll_wait(int fd, struct epoll_event *ev, int cnt, int to) +{ + return epoll_pwait(fd, ev, cnt, to, 0); +} diff --git a/base/glibc-compatibility/musl/syscall.h b/base/glibc-compatibility/musl/syscall.h index 70b4688f642..7e540f67197 100644 --- a/base/glibc-compatibility/musl/syscall.h +++ b/base/glibc-compatibility/musl/syscall.h @@ -13,3 +13,5 @@ long __syscall(syscall_arg_t, ...); __attribute__((visibility("hidden"))) void *__vdsosym(const char *, const char *); + +#define syscall(...) __syscall_ret(__syscall(__VA_ARGS__)) From a61359c224f8c0376b7f137e5d476186291a6707 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sat, 14 Nov 2020 08:20:39 +0300 Subject: [PATCH 293/425] glibc-compatibility: Add accept4() from musl 1.2.1. --- base/glibc-compatibility/musl/accept4.c | 19 +++++++++++++++++++ base/glibc-compatibility/musl/syscall.h | 6 ++++++ 2 files changed, 25 insertions(+) create mode 100644 base/glibc-compatibility/musl/accept4.c diff --git a/base/glibc-compatibility/musl/accept4.c b/base/glibc-compatibility/musl/accept4.c new file mode 100644 index 00000000000..59ab1726bdc --- /dev/null +++ b/base/glibc-compatibility/musl/accept4.c @@ -0,0 +1,19 @@ +#define _GNU_SOURCE +#include +#include +#include +#include "syscall.h" + +int accept4(int fd, struct sockaddr *restrict addr, socklen_t *restrict len, int flg) +{ + if (!flg) return accept(fd, addr, len); + int ret = socketcall_cp(accept4, fd, addr, len, flg, 0, 0); + if (ret>=0 || (errno != ENOSYS && errno != EINVAL)) return ret; + ret = accept(fd, addr, len); + if (ret<0) return ret; + if (flg & SOCK_CLOEXEC) + __syscall(SYS_fcntl, ret, F_SETFD, FD_CLOEXEC); + if (flg & SOCK_NONBLOCK) + __syscall(SYS_fcntl, ret, F_SETFL, O_NONBLOCK); + return ret; +} diff --git a/base/glibc-compatibility/musl/syscall.h b/base/glibc-compatibility/musl/syscall.h index 7e540f67197..3160357f252 100644 --- a/base/glibc-compatibility/musl/syscall.h +++ b/base/glibc-compatibility/musl/syscall.h @@ -15,3 +15,9 @@ __attribute__((visibility("hidden"))) void *__vdsosym(const char *, const char *); #define syscall(...) __syscall_ret(__syscall(__VA_ARGS__)) + +#define socketcall(...) __syscall_ret(__socketcall(__VA_ARGS__)) + +#define __socketcall(nm,a,b,c,d,e,f) __syscall(SYS_##nm, a, b, c, d, e, f) + +#define socketcall_cp socketcall From 3253a525e2d2c6ff0d7f753866e79cfc46d2fa28 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sat, 14 Nov 2020 11:36:44 +0300 Subject: [PATCH 294/425] glibc-compatibility: Add getauxval(). --- base/glibc-compatibility/musl/getauxval.c | 45 +++++++++++++++++++++++ base/glibc-compatibility/musl/vdso.c | 16 +------- 2 files changed, 46 insertions(+), 15 deletions(-) create mode 100644 base/glibc-compatibility/musl/getauxval.c diff --git a/base/glibc-compatibility/musl/getauxval.c b/base/glibc-compatibility/musl/getauxval.c new file mode 100644 index 00000000000..a429273fa1a --- /dev/null +++ b/base/glibc-compatibility/musl/getauxval.c @@ -0,0 +1,45 @@ +#include +#include // __environ +#include + +// We don't have libc struct available here. Compute aux vector manually. +static unsigned long * __auxv = NULL; +static unsigned long __auxv_secure = 0; + +static size_t __find_auxv(unsigned long type) +{ + size_t i; + for (i = 0; __auxv[i]; i += 2) + { + if (__auxv[i] == type) + return i + 1; + } + return (size_t) -1; +} + +__attribute__((constructor)) static void __auxv_init() +{ + size_t i; + for (i = 0; __environ[i]; i++); + __auxv = (unsigned long *) (__environ + i + 1); + + size_t secure_idx = __find_auxv(AT_SECURE); + if (secure_idx != ((size_t) -1)) + __auxv_secure = __auxv[secure_idx]; +} + +unsigned long getauxval(unsigned long type) +{ + if (type == AT_SECURE) + return __auxv_secure; + + if (__auxv) + { + size_t index = __find_auxv(type); + if (index != ((size_t) -1)) + return __auxv[index]; + } + + errno = ENOENT; + return 0; +} diff --git a/base/glibc-compatibility/musl/vdso.c b/base/glibc-compatibility/musl/vdso.c index c0dd0f33e4e..b108c4ef752 100644 --- a/base/glibc-compatibility/musl/vdso.c +++ b/base/glibc-compatibility/musl/vdso.c @@ -40,24 +40,10 @@ static int checkver(Verdef *def, int vsym, const char *vername, char *strings) #define OK_TYPES (1<e_phoff); size_t *dynv=0, base=-1; From 7b0f94b5f28c4a91e64ed03a0170abde172a7480 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sat, 14 Nov 2020 11:37:15 +0300 Subject: [PATCH 295/425] glibc-compatibility: Add secure_getenv(). --- base/glibc-compatibility/musl/secure_getenv.c | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 base/glibc-compatibility/musl/secure_getenv.c diff --git a/base/glibc-compatibility/musl/secure_getenv.c b/base/glibc-compatibility/musl/secure_getenv.c new file mode 100644 index 00000000000..fbd9ef3bdcc --- /dev/null +++ b/base/glibc-compatibility/musl/secure_getenv.c @@ -0,0 +1,8 @@ +#define _GNU_SOURCE +#include +#include + +char * secure_getenv(const char * name) +{ + return getauxval(AT_SECURE) ? NULL : getenv(name); +} From a32ed231981c6838ecc0f8d959c672da9a83fc90 Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Mon, 16 Nov 2020 12:45:59 +0300 Subject: [PATCH 296/425] Fork abseil-cpp to remove dependency on errno@GLIBC_PRIVATE, __pthread_unwind@GLIBC_PRIVATE and to fix shared build. --- .gitmodules | 4 ++++ contrib/abseil-cpp | 1 + contrib/grpc | 2 +- contrib/grpc-cmake/CMakeLists.txt | 12 +++--------- 4 files changed, 9 insertions(+), 10 deletions(-) create mode 160000 contrib/abseil-cpp diff --git a/.gitmodules b/.gitmodules index 4a350f41238..10a1419125d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -202,3 +202,7 @@ [submodule "contrib/xz"] path = contrib/xz url = https://github.com/xz-mirror/xz +[submodule "contrib/abseil-cpp"] + path = contrib/abseil-cpp + url = https://github.com/ClickHouse-Extras/abseil-cpp.git + branch = lts_2020_02_25 diff --git a/contrib/abseil-cpp b/contrib/abseil-cpp new file mode 160000 index 00000000000..4f3b686f86c --- /dev/null +++ b/contrib/abseil-cpp @@ -0,0 +1 @@ +Subproject commit 4f3b686f86c3ebaba7e4e926e62a79cb1c659a54 diff --git a/contrib/grpc b/contrib/grpc index 437d3a4ac93..7436366ceb3 160000 --- a/contrib/grpc +++ b/contrib/grpc @@ -1 +1 @@ -Subproject commit 437d3a4ac93dc153bbd2d34c0c6c9596f1fd6787 +Subproject commit 7436366ceb341ba5c00ea29f1645e02a2b70bf93 diff --git a/contrib/grpc-cmake/CMakeLists.txt b/contrib/grpc-cmake/CMakeLists.txt index 7a057618ce7..efb0f1c4f43 100644 --- a/contrib/grpc-cmake/CMakeLists.txt +++ b/contrib/grpc-cmake/CMakeLists.txt @@ -37,19 +37,13 @@ set(gRPC_SSL_PROVIDER "clickhouse" CACHE STRING "" FORCE) set(_gRPC_SSL_INCLUDE_DIR ${OPENSSL_INCLUDE_DIR}) set(_gRPC_SSL_LIBRARIES ${OPENSSL_LIBRARIES}) -# Modify abseil-cpp cmake script to allow building it for ClickHouse. +# Use abseil-cpp from ClickHouse contrib, not from gRPC third_party. set(gRPC_ABSL_PROVIDER "clickhouse" CACHE STRING "" FORCE) -set(ABSL_ROOT_DIR "${_gRPC_SOURCE_DIR}/third_party/abseil-cpp") +set(ABSL_ROOT_DIR "${ClickHouse_SOURCE_DIR}/contrib/abseil-cpp") if(NOT EXISTS "${ABSL_ROOT_DIR}/CMakeLists.txt") message(FATAL_ERROR " grpc: submodule third_party/abseil-cpp is missing. To fix try run: \n git submodule update --init --recursive") endif() -set(_ABSL_ORIG_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS}) -set(_ABSL_ORIG_BUILD_TESTING ${BUILD_TESTING}) -set(BUILD_SHARED_LIBS OFF) # abseil-cpp can't be built correctly as a shared library -set(BUILD_TESTING OFF) # we don't want to build abseil tests -add_subdirectory(${ABSL_ROOT_DIR} "${ClickHouse_BINARY_DIR}/contrib/grpc/third_party/abseil-cpp") -set(BUILD_SHARED_LIBS ${_ABSL_ORIG_BUILD_SHARED_LIBS}) -set(BUILD_TESTING ${_ABSL_ORIG_BUILD_TESTING}) +add_subdirectory("${ABSL_ROOT_DIR}" "${ClickHouse_BINARY_DIR}/contrib/abseil-cpp") # Choose to build static or shared library for c-ares. if (MAKE_STATIC_LIBRARIES) From 3c85165e6025a2e0a78842180085f0139728881f Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Sat, 21 Nov 2020 19:36:25 +0300 Subject: [PATCH 297/425] Redirect stderr, stdout for clickhouse-odbc-bridge to files. --- programs/odbc-bridge/ODBCBridge.cpp | 29 +++++++++++++++++++ src/Common/XDBCBridgeHelper.h | 10 +++++++ .../configs/odbc_logging.xml | 2 ++ 3 files changed, 41 insertions(+) diff --git a/programs/odbc-bridge/ODBCBridge.cpp b/programs/odbc-bridge/ODBCBridge.cpp index 24aa8e32ddb..3b26e192a07 100644 --- a/programs/odbc-bridge/ODBCBridge.cpp +++ b/programs/odbc-bridge/ODBCBridge.cpp @@ -109,6 +109,14 @@ void ODBCBridge::defineOptions(Poco::Util::OptionSet & options) .argument("err-log-path") .binding("logger.errorlog")); + options.addOption(Poco::Util::Option("stdout-path", "", "stdout log path, default console") + .argument("stdout-path") + .binding("logger.stdout")); + + options.addOption(Poco::Util::Option("stderr-path", "", "stderr log path, default console") + .argument("stderr-path") + .binding("logger.stderr")); + using Me = std::decay_t; options.addOption(Poco::Util::Option("help", "", "produce this help message") .binding("help") @@ -127,6 +135,27 @@ void ODBCBridge::initialize(Application & self) config().setString("logger", "ODBCBridge"); + /// Redirect stdout, stderr to specified files. + /// Some libraries and sanitizers write to stderr in case of errors. + const auto stdout_path = config().getString("logger.stdout", ""); + if (!stdout_path.empty()) + { + if (!freopen(stdout_path.c_str(), "a+", stdout)) + throw Poco::OpenFileException("Cannot attach stdout to " + stdout_path); + + /// Disable buffering for stdout. + setbuf(stdout, nullptr); + } + const auto stderr_path = config().getString("logger.stderr", ""); + if (!stderr_path.empty()) + { + if (!freopen(stderr_path.c_str(), "a+", stderr)) + throw Poco::OpenFileException("Cannot attach stderr to " + stderr_path); + + /// Disable buffering for stderr. + setbuf(stderr, nullptr); + } + buildLoggers(config(), logger(), self.commandName()); BaseDaemon::logRevision(); diff --git a/src/Common/XDBCBridgeHelper.h b/src/Common/XDBCBridgeHelper.h index 59bae33d88d..ed1f63a2507 100644 --- a/src/Common/XDBCBridgeHelper.h +++ b/src/Common/XDBCBridgeHelper.h @@ -326,6 +326,16 @@ struct ODBCBridgeMixin cmd_args.push_back("--err-log-path"); cmd_args.push_back(config.getString("logger." + configPrefix() + "_errlog")); } + if (config.has("logger." + configPrefix() + "_stdout")) + { + cmd_args.push_back("--stdout-path"); + cmd_args.push_back(config.getString("logger." + configPrefix() + "_stdout")); + } + if (config.has("logger." + configPrefix() + "_stderr")) + { + cmd_args.push_back("--stderr-path"); + cmd_args.push_back(config.getString("logger." + configPrefix() + "_stderr")); + } if (config.has("logger." + configPrefix() + "_level")) { cmd_args.push_back("--log-level"); diff --git a/tests/integration/test_odbc_interaction/configs/odbc_logging.xml b/tests/integration/test_odbc_interaction/configs/odbc_logging.xml index 029275eb09c..139db0d5c20 100644 --- a/tests/integration/test_odbc_interaction/configs/odbc_logging.xml +++ b/tests/integration/test_odbc_interaction/configs/odbc_logging.xml @@ -3,6 +3,8 @@ /var/log/clickhouse-server/clickhouse-odbc-bridge.log /var/log/clickhouse-server/clickhouse-odbc-bridge.err.log + /var/log/clickhouse-server/clickhouse-odbc-bridge.stdout + /var/log/clickhouse-server/clickhouse-odbc-bridge.stderr trace
From 4b3488934c904ec7ec3b6da1bbd6b2665cb1bf3d Mon Sep 17 00:00:00 2001 From: Vitaly Baranov Date: Mon, 23 Nov 2020 18:18:09 +0300 Subject: [PATCH 298/425] Disable running test test_odbc_interaction.test_bridge_dies_with_parent with asan. --- tests/integration/helpers/cluster.py | 4 ++++ tests/integration/test_odbc_interaction/test.py | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/tests/integration/helpers/cluster.py b/tests/integration/helpers/cluster.py index d21f44fb2b2..b712bad756e 100644 --- a/tests/integration/helpers/cluster.py +++ b/tests/integration/helpers/cluster.py @@ -907,6 +907,10 @@ class ClickHouseInstance: build_opts = self.query("SELECT value FROM system.build_options WHERE name = 'CXX_FLAGS'") return "-fsanitize=thread" in build_opts + def is_built_with_address_sanitizer(self): + build_opts = self.query("SELECT value FROM system.build_options WHERE name = 'CXX_FLAGS'") + return "-fsanitize=address" in build_opts + # Connects to the instance via clickhouse-client, sends a query (1st argument) and returns the answer def query(self, sql, stdin=None, timeout=None, settings=None, user=None, password=None, database=None, ignore_error=False): diff --git a/tests/integration/test_odbc_interaction/test.py b/tests/integration/test_odbc_interaction/test.py index 028137cef12..c80a6e2d661 100644 --- a/tests/integration/test_odbc_interaction/test.py +++ b/tests/integration/test_odbc_interaction/test.py @@ -289,6 +289,12 @@ def test_postgres_insert(started_cluster): def test_bridge_dies_with_parent(started_cluster): + if node1.is_built_with_address_sanitizer(): + # TODO: Leak sanitizer falsely reports about a leak of 16 bytes in clickhouse-odbc-bridge in this test and + # that's linked somehow with that we have replaced getauxval() in glibc-compatibility. + # The leak sanitizer calls getauxval() for its own purposes, and our replaced version doesn't seem to be equivalent in that case. + return + node1.query("select dictGetString('postgres_odbc_hashed', 'column2', toUInt64(1))") clickhouse_pid = node1.get_process_pid("clickhouse server") From 5b94dd2f7437375a360e38af4df358c16c6c5c72 Mon Sep 17 00:00:00 2001 From: Pavel Kruglov Date: Tue, 24 Nov 2020 18:15:13 +0300 Subject: [PATCH 299/425] Add eof check in receiveHello --- src/Client/Connection.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Client/Connection.cpp b/src/Client/Connection.cpp index 0a499540c41..f7119195e97 100644 --- a/src/Client/Connection.cpp +++ b/src/Client/Connection.cpp @@ -207,6 +207,12 @@ void Connection::receiveHello() /// Receive hello packet. UInt64 packet_type = 0; + /// Prevent read after eof in readVarUInt in case of reset connection + /// (Poco should throw such exception while reading from socket but + /// sometimes it doesn't for unknown reason) + if (in->eof()) + throw Poco::Net::NetException("Connection reset by peer"); + readVarUInt(packet_type, *in); if (packet_type == Protocol::Server::Hello) { From b28fc3d4f622eb2fe1ef83e877828c8ce080955c Mon Sep 17 00:00:00 2001 From: alesapin Date: Tue, 24 Nov 2020 19:24:36 +0300 Subject: [PATCH 300/425] Ugly fix for dangling reference --- .../RabbitMQ/RabbitMQBlockInputStream.cpp | 6 ++--- .../RabbitMQ/RabbitMQBlockInputStream.h | 4 ++-- src/Storages/RabbitMQ/StorageRabbitMQ.cpp | 22 ++++++++++--------- src/Storages/RabbitMQ/StorageRabbitMQ.h | 4 ++-- 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/Storages/RabbitMQ/RabbitMQBlockInputStream.cpp b/src/Storages/RabbitMQ/RabbitMQBlockInputStream.cpp index 0909f858fe4..4e6de4d4715 100644 --- a/src/Storages/RabbitMQ/RabbitMQBlockInputStream.cpp +++ b/src/Storages/RabbitMQ/RabbitMQBlockInputStream.cpp @@ -16,7 +16,7 @@ namespace DB RabbitMQBlockInputStream::RabbitMQBlockInputStream( StorageRabbitMQ & storage_, const StorageMetadataPtr & metadata_snapshot_, - const Context & context_, + std::shared_ptr context_, const Names & columns, size_t max_block_size_, bool ack_in_suffix_) @@ -54,7 +54,7 @@ Block RabbitMQBlockInputStream::getHeader() const void RabbitMQBlockInputStream::readPrefixImpl() { - auto timeout = std::chrono::milliseconds(context.getSettingsRef().rabbitmq_max_wait_ms.totalMilliseconds()); + auto timeout = std::chrono::milliseconds(context->getSettingsRef().rabbitmq_max_wait_ms.totalMilliseconds()); buffer = storage.popReadBuffer(timeout); } @@ -96,7 +96,7 @@ Block RabbitMQBlockInputStream::readImpl() MutableColumns virtual_columns = virtual_header.cloneEmptyColumns(); auto input_format = FormatFactory::instance().getInputFormat( - storage.getFormatName(), *buffer, non_virtual_header, context, max_block_size); + storage.getFormatName(), *buffer, non_virtual_header, *context, max_block_size); InputPort port(input_format->getPort().getHeader(), input_format.get()); connect(input_format->getPort(), port); diff --git a/src/Storages/RabbitMQ/RabbitMQBlockInputStream.h b/src/Storages/RabbitMQ/RabbitMQBlockInputStream.h index 2ef1ab70b95..1a3b9ae7bda 100644 --- a/src/Storages/RabbitMQ/RabbitMQBlockInputStream.h +++ b/src/Storages/RabbitMQ/RabbitMQBlockInputStream.h @@ -15,7 +15,7 @@ public: RabbitMQBlockInputStream( StorageRabbitMQ & storage_, const StorageMetadataPtr & metadata_snapshot_, - const Context & context_, + std::shared_ptr context_, const Names & columns, size_t max_block_size_, bool ack_in_suffix = true); @@ -37,7 +37,7 @@ public: private: StorageRabbitMQ & storage; StorageMetadataPtr metadata_snapshot; - const Context & context; + std::shared_ptr context; Names column_names; const size_t max_block_size; bool ack_in_suffix; diff --git a/src/Storages/RabbitMQ/StorageRabbitMQ.cpp b/src/Storages/RabbitMQ/StorageRabbitMQ.cpp index d32cbaf66ae..4aee51a1750 100644 --- a/src/Storages/RabbitMQ/StorageRabbitMQ.cpp +++ b/src/Storages/RabbitMQ/StorageRabbitMQ.cpp @@ -74,7 +74,7 @@ StorageRabbitMQ::StorageRabbitMQ( std::unique_ptr rabbitmq_settings_) : IStorage(table_id_) , global_context(context_.getGlobalContext()) - , rabbitmq_context(Context(global_context)) + , rabbitmq_context(std::make_shared(global_context)) , rabbitmq_settings(std::move(rabbitmq_settings_)) , exchange_name(global_context.getMacros()->expand(rabbitmq_settings->rabbitmq_exchange_name.value)) , format_name(global_context.getMacros()->expand(rabbitmq_settings->rabbitmq_format.value)) @@ -114,8 +114,8 @@ StorageRabbitMQ::StorageRabbitMQ( storage_metadata.setColumns(columns_); setInMemoryMetadata(storage_metadata); - rabbitmq_context.makeQueryContext(); - rabbitmq_context = addSettings(rabbitmq_context); + rabbitmq_context->makeQueryContext(); + rabbitmq_context = addSettings(*rabbitmq_context); /// One looping task for all consumers as they share the same connection == the same handler == the same event loop event_handler->updateLoopState(Loop::STOP); @@ -193,16 +193,17 @@ String StorageRabbitMQ::getTableBasedName(String name, const StorageID & table_i } -Context StorageRabbitMQ::addSettings(Context context) const +std::shared_ptr StorageRabbitMQ::addSettings(const Context & context) const { - context.setSetting("input_format_skip_unknown_fields", true); - context.setSetting("input_format_allow_errors_ratio", 0.); - context.setSetting("input_format_allow_errors_num", rabbitmq_settings->rabbitmq_skip_broken_messages.value); + auto modified_context = std::make_shared(context); + modified_context->setSetting("input_format_skip_unknown_fields", true); + modified_context->setSetting("input_format_allow_errors_ratio", 0.); + modified_context->setSetting("input_format_allow_errors_num", rabbitmq_settings->rabbitmq_skip_broken_messages.value); if (!schema_name.empty()) - context.setSetting("format_schema", schema_name); + modified_context->setSetting("format_schema", schema_name); - return context; + return modified_context; } @@ -538,6 +539,7 @@ Pipe StorageRabbitMQ::read( auto sample_block = metadata_snapshot->getSampleBlockForColumns(column_names, getVirtuals(), getStorageID()); auto modified_context = addSettings(context); + auto block_size = getMaxBlockSize(); bool update_channels = false; @@ -785,7 +787,7 @@ bool StorageRabbitMQ::streamToViews() insert->table_id = table_id; // Only insert into dependent views and expect that input blocks contain virtual columns - InterpreterInsertQuery interpreter(insert, rabbitmq_context, false, true, true); + InterpreterInsertQuery interpreter(insert, *rabbitmq_context, false, true, true); auto block_io = interpreter.execute(); auto metadata_snapshot = getInMemoryMetadataPtr(); diff --git a/src/Storages/RabbitMQ/StorageRabbitMQ.h b/src/Storages/RabbitMQ/StorageRabbitMQ.h index ebdc7cd8f68..9369a737b59 100644 --- a/src/Storages/RabbitMQ/StorageRabbitMQ.h +++ b/src/Storages/RabbitMQ/StorageRabbitMQ.h @@ -73,7 +73,7 @@ protected: private: const Context & global_context; - Context rabbitmq_context; + std::shared_ptr rabbitmq_context; std::unique_ptr rabbitmq_settings; const String exchange_name; @@ -135,7 +135,7 @@ private: static AMQP::ExchangeType defineExchangeType(String exchange_type_); static String getTableBasedName(String name, const StorageID & table_id); - Context addSettings(Context context) const; + std::shared_ptr addSettings(const Context & context) const; size_t getMaxBlockSize() const; void deactivateTask(BackgroundSchedulePool::TaskHolder & task, bool wait, bool stop_loop); From c25558ad2e9ca6d9e1832b65d45ea68b035f49de Mon Sep 17 00:00:00 2001 From: Nikita Mikhaylov Date: Tue, 24 Nov 2020 20:36:17 +0300 Subject: [PATCH 301/425] Revert "Attempt to fix Stress test (MSan)" --- src/Functions/FunctionBase64Conversion.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Functions/FunctionBase64Conversion.h b/src/Functions/FunctionBase64Conversion.h index 9b3540f35fa..4bc2a779cf4 100644 --- a/src/Functions/FunctionBase64Conversion.h +++ b/src/Functions/FunctionBase64Conversion.h @@ -106,8 +106,8 @@ public: auto & dst_offsets = dst_column->getOffsets(); size_t reserve = Func::getBufferSize(input->getChars().size(), input->size()); - dst_data.resize_fill(reserve); - dst_offsets.resize_fill(input_rows_count); + dst_data.resize(reserve); + dst_offsets.resize(input_rows_count); const ColumnString::Offsets & src_offsets = input->getOffsets(); @@ -164,7 +164,7 @@ public: src_offset_prev = src_offsets[row]; } - dst_data.resize_fill(dst_pos - dst); + dst_data.resize(dst_pos - dst); return dst_column; } From f2106f9683a672d4f599769a357cbf4c14a75fec Mon Sep 17 00:00:00 2001 From: Anton Popov Date: Tue, 24 Nov 2020 20:41:11 +0300 Subject: [PATCH 302/425] add test --- .../01582_move_to_prewhere_compact_parts.reference | 8 ++++++++ .../0_stateless/01582_move_to_prewhere_compact_parts.sql | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/tests/queries/0_stateless/01582_move_to_prewhere_compact_parts.reference b/tests/queries/0_stateless/01582_move_to_prewhere_compact_parts.reference index 6ed51e39d26..6b762abd192 100644 --- a/tests/queries/0_stateless/01582_move_to_prewhere_compact_parts.reference +++ b/tests/queries/0_stateless/01582_move_to_prewhere_compact_parts.reference @@ -3,3 +3,11 @@ SELECT y FROM prewhere_move PREWHERE x > 100 +SELECT + x1, + x2, + x3, + x4 +FROM prewhere_move +PREWHERE x1 > 100 +WHERE (x1 > 100) AND ((x2 > 100) AND (x3 > 100) AND (x4 > 100)) diff --git a/tests/queries/0_stateless/01582_move_to_prewhere_compact_parts.sql b/tests/queries/0_stateless/01582_move_to_prewhere_compact_parts.sql index 436ebcd4ff8..788c99da76d 100644 --- a/tests/queries/0_stateless/01582_move_to_prewhere_compact_parts.sql +++ b/tests/queries/0_stateless/01582_move_to_prewhere_compact_parts.sql @@ -5,3 +5,11 @@ INSERT INTO prewhere_move SELECT number, toString(number) FROM numbers(1000); EXPLAIN SYNTAX SELECT * FROM prewhere_move WHERE x > 100; DROP TABLE prewhere_move; + +CREATE TABLE prewhere_move (x1 Int, x2 Int, x3 Int, x4 Int) ENGINE = MergeTree ORDER BY tuple(); +INSERT INTO prewhere_move SELECT number, number, number, number FROM numbers(1000); + +-- Not all conditions moved +EXPLAIN SYNTAX SELECT * FROM prewhere_move WHERE x1 > 100 AND x2 > 100 AND x3 > 100 AND x4 > 100; + +DROP TABLE prewhere_move; From 828d27d801726b0e444bb5b10f5d5ccbab25946e Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Tue, 24 Nov 2020 20:45:24 +0300 Subject: [PATCH 303/425] Remove unused ProfileEvents --- src/Common/ProfileEvents.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/Common/ProfileEvents.cpp b/src/Common/ProfileEvents.cpp index 486cb7e1a6e..0b0604cbe30 100644 --- a/src/Common/ProfileEvents.cpp +++ b/src/Common/ProfileEvents.cpp @@ -97,9 +97,6 @@ M(DistributedConnectionStaleReplica, "") \ M(DistributedConnectionFailAtAll, "Total count when distributed connection fails after all retries finished") \ \ - M(CompileAttempt, "Number of times a compilation of generated C++ code was initiated.") \ - M(CompileSuccess, "Number of times a compilation of generated C++ code was successful.") \ - \ M(CompileFunction, "Number of times a compilation of generated LLVM code (to create fused function for complex expressions) was initiated.") \ M(CompiledFunctionExecute, "Number of times a compiled function was executed.") \ M(CompileExpressionsMicroseconds, "Total time spent for compilation of expressions to LLVM code.") \ From ebd51db987b3c0ffab84ab469a91f83573fb4b69 Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Tue, 24 Nov 2020 21:22:50 +0300 Subject: [PATCH 304/425] better --- programs/copier/ClusterCopier.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/programs/copier/ClusterCopier.cpp b/programs/copier/ClusterCopier.cpp index efd30e42b96..4551ca3c0e6 100644 --- a/programs/copier/ClusterCopier.cpp +++ b/programs/copier/ClusterCopier.cpp @@ -62,6 +62,9 @@ decltype(auto) ClusterCopier::retry(T && func, UInt64 max_tries) { std::exception_ptr exception; + if (max_tries == 0) + throw Exception("Cannot perform zero retries", ErrorCodes::LOGICAL_ERROR); + for (UInt64 try_number = 1; try_number <= max_tries; ++try_number) { try From 1d6558f69408da2e8f957b71b9a0cdb5de94b7d9 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov Date: Tue, 24 Nov 2020 21:45:01 +0300 Subject: [PATCH 305/425] not sure what's going on --- .../01317_no_password_in_command_line.sh | 37 +++++++++++++++---- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/tests/queries/0_stateless/01317_no_password_in_command_line.sh b/tests/queries/0_stateless/01317_no_password_in_command_line.sh index 3e7145e0733..db86613b197 100755 --- a/tests/queries/0_stateless/01317_no_password_in_command_line.sh +++ b/tests/queries/0_stateless/01317_no_password_in_command_line.sh @@ -12,25 +12,48 @@ $CLICKHOUSE_CLIENT --query "CREATE USER user IDENTIFIED WITH PLAINTEXT_PASSWORD # False positive result due to race condition with sleeps is Ok. $CLICKHOUSE_CLIENT --user user --password hello --query "SELECT sleep(1)" & +bg_query=$! # Wait for query to start executing. At that time, the password should be cleared. -while true; do - sleep 0.1 - $CLICKHOUSE_CLIENT --query "SHOW PROCESSLIST" - $CLICKHOUSE_CLIENT --query "SHOW PROCESSLIST" | grep -q 'SELECT sleep(1)' && break; +for _ in {1..20} +do + if $CLICKHOUSE_CLIENT --query "SHOW PROCESSLIST" | grep -q 'SELECT sleep(1)' + then + break + fi + + if ! kill -0 -- $bg_query + then + >&2 echo "The SELECT sleep(1) query finished earlier that we could grep for it in the process list, but it should have run for at least one second. Looks like a bug" + fi done ps auxw | grep -F -- '--password' | grep -F hello ||: +# Check that it is still running +kill -0 -- $bg_query wait +# Once again with different syntax $CLICKHOUSE_CLIENT --user user --password=hello --query "SELECT sleep(1)" & +bg_query=$! -while true; do - sleep 0.1 - $CLICKHOUSE_CLIENT --query "SHOW PROCESSLIST" | grep -q 'SELECT sleep(1)' && break; +# Wait for query to start executing. At that time, the password should be cleared. +for _ in {1..20} +do + if $CLICKHOUSE_CLIENT --query "SHOW PROCESSLIST" | grep -q 'SELECT sleep(1)' + then + break + fi + + if ! kill -0 -- $bg_query + then + >&2 echo "The SELECT sleep(1) query finished earlier that we could grep for it in the process list, but it should have run for at least one second. Looks like a bug" + fi done ps auxw | grep -F -- '--password' | grep -F hello ||: +# Check that it is still running +kill -0 -- $bg_query wait $CLICKHOUSE_CLIENT --query "DROP USER user" From 99073c26ee2692f8efe2ab14b2d8ae0fd813b80e Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Wed, 25 Nov 2020 00:00:55 +0300 Subject: [PATCH 306/425] Added a test for what was always working --- tests/queries/0_stateless/01586_columns_pruning.reference | 1 + tests/queries/0_stateless/01586_columns_pruning.sql | 4 ++++ 2 files changed, 5 insertions(+) create mode 100644 tests/queries/0_stateless/01586_columns_pruning.reference create mode 100644 tests/queries/0_stateless/01586_columns_pruning.sql diff --git a/tests/queries/0_stateless/01586_columns_pruning.reference b/tests/queries/0_stateless/01586_columns_pruning.reference new file mode 100644 index 00000000000..749fce669df --- /dev/null +++ b/tests/queries/0_stateless/01586_columns_pruning.reference @@ -0,0 +1 @@ +1000000 diff --git a/tests/queries/0_stateless/01586_columns_pruning.sql b/tests/queries/0_stateless/01586_columns_pruning.sql new file mode 100644 index 00000000000..4ae6b6c7c10 --- /dev/null +++ b/tests/queries/0_stateless/01586_columns_pruning.sql @@ -0,0 +1,4 @@ +-- Unneeded column is removed from subquery. +SELECT count() FROM (SELECT number, groupArray(repeat(toString(number), 1000000)) FROM numbers(1000000) GROUP BY number); +-- Unneeded column cannot be removed from subquery and the query is out of memory +SELECT count() FROM (SELECT number, groupArray(repeat(toString(number), 1000000)) AS agg FROM numbers(1000000) GROUP BY number HAVING notEmpty(agg)); -- { serverError 241 } From 7e014967dbb83b85fcb0341ae0b9b825d8ed8e2f Mon Sep 17 00:00:00 2001 From: alesapin Date: Wed, 25 Nov 2020 00:07:56 +0300 Subject: [PATCH 307/425] Less broken ugly hack --- src/Storages/RabbitMQ/StorageRabbitMQ.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Storages/RabbitMQ/StorageRabbitMQ.cpp b/src/Storages/RabbitMQ/StorageRabbitMQ.cpp index 4aee51a1750..dc6890e250b 100644 --- a/src/Storages/RabbitMQ/StorageRabbitMQ.cpp +++ b/src/Storages/RabbitMQ/StorageRabbitMQ.cpp @@ -74,7 +74,6 @@ StorageRabbitMQ::StorageRabbitMQ( std::unique_ptr rabbitmq_settings_) : IStorage(table_id_) , global_context(context_.getGlobalContext()) - , rabbitmq_context(std::make_shared(global_context)) , rabbitmq_settings(std::move(rabbitmq_settings_)) , exchange_name(global_context.getMacros()->expand(rabbitmq_settings->rabbitmq_exchange_name.value)) , format_name(global_context.getMacros()->expand(rabbitmq_settings->rabbitmq_format.value)) @@ -114,8 +113,8 @@ StorageRabbitMQ::StorageRabbitMQ( storage_metadata.setColumns(columns_); setInMemoryMetadata(storage_metadata); + rabbitmq_context = addSettings(global_context); rabbitmq_context->makeQueryContext(); - rabbitmq_context = addSettings(*rabbitmq_context); /// One looping task for all consumers as they share the same connection == the same handler == the same event loop event_handler->updateLoopState(Loop::STOP); @@ -583,7 +582,9 @@ Pipe StorageRabbitMQ::read( looping_task->activateAndSchedule(); LOG_DEBUG(log, "Starting reading {} streams", pipes.size()); - return Pipe::unitePipes(std::move(pipes)); + auto united_pipe = Pipe::unitePipes(std::move(pipes)); + united_pipe.addInterpreterContext(modified_context); + return united_pipe; } From 17f6c82ffa9d507b661143cc25b5980395b3df3d Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Wed, 25 Nov 2020 00:11:28 +0300 Subject: [PATCH 308/425] Prohibit toUnixTimestamp(Date()) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Making it implicitly cast to Date() does not looks correct, since before it returns somewhat unexpected result: SELECT toUnixTimestamp(today()) ┌─toUnixTimestamp(today())─┐ │ 18591 │ └──────────────────────────┘ --- src/Functions/FunctionsConversion.h | 13 ++++++++++--- .../01592_toUnixTimestamp_Date.reference | 0 .../0_stateless/01592_toUnixTimestamp_Date.sql | 1 + 3 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 tests/queries/0_stateless/01592_toUnixTimestamp_Date.reference create mode 100644 tests/queries/0_stateless/01592_toUnixTimestamp_Date.sql diff --git a/src/Functions/FunctionsConversion.h b/src/Functions/FunctionsConversion.h index f9f614e47f2..968893578f8 100644 --- a/src/Functions/FunctionsConversion.h +++ b/src/Functions/FunctionsConversion.h @@ -91,6 +91,9 @@ inline UInt32 extractToDecimalScale(const ColumnWithTypeAndName & named_column) return field.get(); } +/// Function toUnixTimestamp has exactly the same implementation as toDateTime of String type. +struct NameToUnixTimestamp { static constexpr auto name = "toUnixTimestamp"; }; + /** Conversion of number types to each other, enums to numbers, dates and datetimes to numbers and back: done by straight assignment. * (Date is represented internally as number of days from some day; DateTime - as unix timestamp) @@ -111,6 +114,13 @@ struct ConvertImpl using ColVecFrom = typename FromDataType::ColumnType; using ColVecTo = typename ToDataType::ColumnType; + if (std::is_same_v) + { + if (isDate(named_from.type)) + throw Exception("Illegal column " + named_from.column->getName() + " of first argument of function " + Name::name, + ErrorCodes::ILLEGAL_COLUMN); + } + if constexpr ((IsDataTypeDecimal || IsDataTypeDecimal) && !(std::is_same_v || std::is_same_v)) { @@ -923,9 +933,6 @@ struct ConvertImplGenericFromString }; -/// Function toUnixTimestamp has exactly the same implementation as toDateTime of String type. -struct NameToUnixTimestamp { static constexpr auto name = "toUnixTimestamp"; }; - template <> struct ConvertImpl : ConvertImpl {}; diff --git a/tests/queries/0_stateless/01592_toUnixTimestamp_Date.reference b/tests/queries/0_stateless/01592_toUnixTimestamp_Date.reference new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/queries/0_stateless/01592_toUnixTimestamp_Date.sql b/tests/queries/0_stateless/01592_toUnixTimestamp_Date.sql new file mode 100644 index 00000000000..5dc87e31f75 --- /dev/null +++ b/tests/queries/0_stateless/01592_toUnixTimestamp_Date.sql @@ -0,0 +1 @@ +select toUnixTimestamp(today()); -- { serverError 44; } From 302cd55f454cf484ab0c01fb4db8e3bef87ceb86 Mon Sep 17 00:00:00 2001 From: chenqi Date: Sat, 21 Nov 2020 12:32:29 +0800 Subject: [PATCH 309/425] Fix #15235. When clickhouse-copier handle non-partitioned table, throw segfault error. --- programs/copier/ClusterCopier.cpp | 21 +++++++--- .../task_non_partitioned_table.xml | 39 +++++++++++++++++++ tests/integration/test_cluster_copier/test.py | 23 +++++++++++ 3 files changed, 77 insertions(+), 6 deletions(-) create mode 100644 tests/integration/test_cluster_copier/task_non_partitioned_table.xml diff --git a/programs/copier/ClusterCopier.cpp b/programs/copier/ClusterCopier.cpp index a129dc7efcc..3b8d97f63e2 100644 --- a/programs/copier/ClusterCopier.cpp +++ b/programs/copier/ClusterCopier.cpp @@ -605,7 +605,7 @@ TaskStatus ClusterCopier::tryMoveAllPiecesToDestinationTable(const TaskTable & t settings_push.replication_alter_partitions_sync = 2; query_alter_ast_string += " ALTER TABLE " + getQuotedTable(original_table) + - " ATTACH PARTITION " + partition_name + + ((partition_name == "'all'") ? " ATTACH PARTITION ID " : " ATTACH PARTITION ") + partition_name + " FROM " + getQuotedTable(helping_table); LOG_DEBUG(log, "Executing ALTER query: {}", query_alter_ast_string); @@ -636,7 +636,7 @@ TaskStatus ClusterCopier::tryMoveAllPiecesToDestinationTable(const TaskTable & t if (!task_table.isReplicatedTable()) { query_deduplicate_ast_string += " OPTIMIZE TABLE " + getQuotedTable(original_table) + - " PARTITION " + partition_name + " DEDUPLICATE;"; + ((partition_name == "'all'") ? " PARTITION ID " : " PARTITION ") + partition_name + " DEDUPLICATE;"; LOG_DEBUG(log, "Executing OPTIMIZE DEDUPLICATE query: {}", query_alter_ast_string); @@ -807,7 +807,7 @@ bool ClusterCopier::tryDropPartitionPiece( DatabaseAndTableName helping_table = DatabaseAndTableName(original_table.first, original_table.second + "_piece_" + toString(current_piece_number)); String query = "ALTER TABLE " + getQuotedTable(helping_table); - query += " DROP PARTITION " + task_partition.name + ""; + query += ((task_partition.name == "'all'") ? " DROP PARTITION ID " : " DROP PARTITION ") + task_partition.name + ""; /// TODO: use this statement after servers will be updated up to 1.1.54310 // query += " DROP PARTITION ID '" + task_partition.name + "'"; @@ -1567,7 +1567,7 @@ void ClusterCopier::dropParticularPartitionPieceFromAllHelpingTables(const TaskT DatabaseAndTableName original_table = task_table.table_push; DatabaseAndTableName helping_table = DatabaseAndTableName(original_table.first, original_table.second + "_piece_" + toString(current_piece_number)); - String query = "ALTER TABLE " + getQuotedTable(helping_table) + " DROP PARTITION " + partition_name; + String query = "ALTER TABLE " + getQuotedTable(helping_table) + ((partition_name == "'all'") ? " DROP PARTITION ID " : " DROP PARTITION ") + partition_name; const ClusterPtr & cluster_push = task_table.cluster_push; Settings settings_push = task_cluster->settings_push; @@ -1670,14 +1670,24 @@ void ClusterCopier::createShardInternalTables(const ConnectionTimeouts & timeout std::set ClusterCopier::getShardPartitions(const ConnectionTimeouts & timeouts, TaskShard & task_shard) { + std::set res; + createShardInternalTables(timeouts, task_shard, false); TaskTable & task_table = task_shard.task_table; + const String & partition_name = queryToString(task_table.engine_push_partition_key_ast); + + if (partition_name == "'all'") + { + res.emplace("'all'"); + return res; + } + String query; { WriteBufferFromOwnString wb; - wb << "SELECT DISTINCT " << queryToString(task_table.engine_push_partition_key_ast) << " AS partition FROM" + wb << "SELECT DISTINCT " << partition_name << " AS partition FROM" << " " << getQuotedTable(task_shard.table_read_shard) << " ORDER BY partition DESC"; query = wb.str(); } @@ -1692,7 +1702,6 @@ std::set ClusterCopier::getShardPartitions(const ConnectionTimeouts & ti local_context.setSettings(task_cluster->settings_pull); Block block = getBlockWithAllStreamData(InterpreterFactory::get(query_ast, local_context)->execute().getInputStream()); - std::set res; if (block) { ColumnWithTypeAndName & column = block.getByPosition(0); diff --git a/tests/integration/test_cluster_copier/task_non_partitioned_table.xml b/tests/integration/test_cluster_copier/task_non_partitioned_table.xml new file mode 100644 index 00000000000..499c54ae46e --- /dev/null +++ b/tests/integration/test_cluster_copier/task_non_partitioned_table.xml @@ -0,0 +1,39 @@ + + + + + 1 + + s0_0_0 + 9000 + + + + + + + 1 + + s1_1_0 + 9000 + + + + + + 1 + + + + source_cluster + default + copier_test1 + + default_cluster + default + copier_test1_1 + ENGINE = MergeTree ORDER BY date SETTINGS index_granularity = 8192 + rand() + + + diff --git a/tests/integration/test_cluster_copier/test.py b/tests/integration/test_cluster_copier/test.py index 6a922dbfca7..d87969630cd 100644 --- a/tests/integration/test_cluster_copier/test.py +++ b/tests/integration/test_cluster_copier/test.py @@ -230,6 +230,27 @@ class Task_no_arg: instance = cluster.instances['s1_1_0'] instance.query("DROP TABLE copier_test1_1") +class Task_non_partitioned_table: + + def __init__(self, cluster): + self.cluster = cluster + self.zk_task_path = "/clickhouse-copier/task_non_partitoned_table" + self.copier_task_config = open(os.path.join(CURRENT_TEST_DIR, 'task_non_partitioned_table.xml'), 'r').read() + self.rows = 1000000 + + def start(self): + instance = cluster.instances['s0_0_0'] + instance.query( + "create table copier_test1 (date Date, id UInt32) engine = MergeTree ORDER BY date SETTINGS index_granularity = 8192") + instance.query("insert into copier_test1 values ('2016-01-01', 10);") + + def check(self): + assert TSV(self.cluster.instances['s1_1_0'].query("SELECT date FROM copier_test1_1")) == TSV("2016-01-01\n") + instance = cluster.instances['s0_0_0'] + instance.query("DROP TABLE copier_test1") + instance = cluster.instances['s1_1_0'] + instance.query("DROP TABLE copier_test1_1") + def execute_task(task, cmd_options): task.start() @@ -359,6 +380,8 @@ def test_no_index(started_cluster): def test_no_arg(started_cluster): execute_task(Task_no_arg(started_cluster), []) +def test_non_partitioned_table(started_cluster): + execute_task(Task_non_partitioned_table(started_cluster), []) if __name__ == '__main__': with contextmanager(started_cluster)() as cluster: From 9649b96bbbc9409dbb6b70fa115e9fcbe60fbb0a Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Wed, 25 Nov 2020 07:42:21 +0300 Subject: [PATCH 310/425] Update expectations for toUnixTimestamp(Date()) in 00921_datetime64_compatibility --- .../0_stateless/00921_datetime64_compatibility.reference | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/queries/0_stateless/00921_datetime64_compatibility.reference b/tests/queries/0_stateless/00921_datetime64_compatibility.reference index 398da88e460..004f4f5e824 100644 --- a/tests/queries/0_stateless/00921_datetime64_compatibility.reference +++ b/tests/queries/0_stateless/00921_datetime64_compatibility.reference @@ -53,7 +53,8 @@ Code: 43 "UInt8",11 ------------------------------------------ SELECT toUnixTimestamp(N) -"UInt32",18155 + +Code: 44 "UInt32",1568650811 "UInt32",1568650811 ------------------------------------------ From 1a9c3135291ef8c0b468c7bb58b08d886ae6f10d Mon Sep 17 00:00:00 2001 From: myrrc Date: Wed, 25 Nov 2020 12:19:19 +0300 Subject: [PATCH 311/425] fix test reference --- tests/queries/0_stateless/01035_avg_weighted_long.reference | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/queries/0_stateless/01035_avg_weighted_long.reference b/tests/queries/0_stateless/01035_avg_weighted_long.reference index 766cb5a8e3c..f3efdc522b7 100644 --- a/tests/queries/0_stateless/01035_avg_weighted_long.reference +++ b/tests/queries/0_stateless/01035_avg_weighted_long.reference @@ -1,7 +1,7 @@ 2.3333333333333335 nan -1.0 -1.0 +1 +1 8 nan 8 From 86c3240b924fae0ca4b3009c2757ebc0c09bedbf Mon Sep 17 00:00:00 2001 From: Nikhil Nadig Date: Wed, 25 Nov 2020 15:13:07 +0530 Subject: [PATCH 312/425] Update tutorial.md --- docs/en/getting-started/tutorial.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/getting-started/tutorial.md b/docs/en/getting-started/tutorial.md index 8d41279fef9..3e051456a75 100644 --- a/docs/en/getting-started/tutorial.md +++ b/docs/en/getting-started/tutorial.md @@ -11,7 +11,7 @@ By going through this tutorial, you’ll learn how to set up a simple ClickHouse ## Single Node Setup {#single-node-setup} -To postpone the complexities of a distributed environment, we’ll start with deploying ClickHouse on a single server or virtual machine. ClickHouse is usually installed from [deb](../getting-started/install.md#install-from-deb-packages) or [rpm](../getting-started/install.md#from-rpm-packages) packages, but there are [alternatives](../getting-started/install.md#from-docker-image) for the operating systems that do no support them. +To postpone the complexities of a distributed environment, we’ll start with deploying ClickHouse on a single server or virtual machine. ClickHouse is usually installed from [deb](../getting-started/install.md#install-from-deb-packages) or [rpm](../getting-started/install.md#from-rpm-packages) packages, but there are [alternatives](../getting-started/install.md#from-docker-image) for the operating systems that do not support them. For example, you have chosen `deb` packages and executed: From 81386689d95de03005bdf6a6a03e11257040ca3f Mon Sep 17 00:00:00 2001 From: Nikolai Kochetov Date: Wed, 25 Nov 2020 12:59:21 +0300 Subject: [PATCH 313/425] Update executeQuery.cpp --- src/Interpreters/ClusterProxy/executeQuery.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Interpreters/ClusterProxy/executeQuery.cpp b/src/Interpreters/ClusterProxy/executeQuery.cpp index d1fc9621de3..c79b17eac2a 100644 --- a/src/Interpreters/ClusterProxy/executeQuery.cpp +++ b/src/Interpreters/ClusterProxy/executeQuery.cpp @@ -122,8 +122,7 @@ void executeQuery( { stream_factory.createForShard(shard_info, query, query_ast, new_context, throttler, query_info, plans, - remote_pipes, delayed_pipes, - log); + remote_pipes, delayed_pipes, log); } if (!remote_pipes.empty()) From acba5ac0f16d34b2f6706e31d87f122d2fc25948 Mon Sep 17 00:00:00 2001 From: Alexander Kuzmenkov <36882414+akuzm@users.noreply.github.com> Date: Wed, 25 Nov 2020 14:10:04 +0300 Subject: [PATCH 314/425] Update src/DataTypes/DataTypeTuple.cpp --- src/DataTypes/DataTypeTuple.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/DataTypes/DataTypeTuple.cpp b/src/DataTypes/DataTypeTuple.cpp index d6044b6e37a..02fc49f7e9a 100644 --- a/src/DataTypes/DataTypeTuple.cpp +++ b/src/DataTypes/DataTypeTuple.cpp @@ -172,7 +172,6 @@ static void addElementSafe(const DataTypes & elems, IColumn & column, F && impl) throw; } - } From 89ee8aefd9fffc3baa4756595f69ffb61a0efafe Mon Sep 17 00:00:00 2001 From: Nikolai Kochetov Date: Wed, 25 Nov 2020 15:41:12 +0300 Subject: [PATCH 315/425] Cast columns to sample structure for StirageJoin::read --- src/Storages/StorageJoin.cpp | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/Storages/StorageJoin.cpp b/src/Storages/StorageJoin.cpp index 8cf170b04ea..636fe44b120 100644 --- a/src/Storages/StorageJoin.cpp +++ b/src/Storages/StorageJoin.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -321,7 +322,7 @@ private: template Chunk createChunk(const Maps & maps) { - MutableColumns columns = restored_block.cloneEmpty().mutateColumns(); + MutableColumns mut_columns = restored_block.cloneEmpty().mutateColumns(); size_t rows_added = 0; @@ -329,7 +330,7 @@ private: { #define M(TYPE) \ case HashJoin::Type::TYPE: \ - rows_added = fillColumns(*maps.TYPE, columns); \ + rows_added = fillColumns(*maps.TYPE, mut_columns); \ break; APPLY_FOR_JOIN_VARIANTS_LIMITED(M) #undef M @@ -342,19 +343,23 @@ private: if (!rows_added) return {}; - /// Correct nullability + Columns columns; + columns.reserve(mut_columns.size()); + for (auto & col : mut_columns) + columns.emplace_back(std::move(col)); + + /// Correct nullability and LowCardinality types for (size_t i = 0; i < columns.size(); ++i) { - bool src_nullable = restored_block.getByPosition(i).type->isNullable(); - bool dst_nullable = sample_block.getByPosition(i).type->isNullable(); + const auto & src = restored_block.getByPosition(i); + const auto & dst = sample_block.getByPosition(i); - if (src_nullable && !dst_nullable) + if (!src.type->equals(*dst.type)) { - auto & nullable_column = assert_cast(*columns[i]); - columns[i] = nullable_column.getNestedColumnPtr()->assumeMutable(); + auto arg = src; + arg.column = std::move(columns[i]); + columns[i] = castColumn(arg, dst.type); } - else if (!src_nullable && dst_nullable) - columns[i] = makeNullable(std::move(columns[i]))->assumeMutable(); } UInt64 num_rows = columns.at(0)->size(); From eec131df868b9dcb7108d1928732833ccc82228f Mon Sep 17 00:00:00 2001 From: Nikolai Kochetov Date: Wed, 25 Nov 2020 16:27:10 +0300 Subject: [PATCH 316/425] Update registerDictionaries.cpp --- src/Dictionaries/registerDictionaries.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Dictionaries/registerDictionaries.cpp b/src/Dictionaries/registerDictionaries.cpp index b5e98db05b4..7f1eb74a9ad 100644 --- a/src/Dictionaries/registerDictionaries.cpp +++ b/src/Dictionaries/registerDictionaries.cpp @@ -27,9 +27,7 @@ void registerDictionaries() registerDictionaryComplexKeyHashed(factory); registerDictionaryComplexKeyCache(factory); registerDictionaryComplexKeyDirect(factory); -#if !defined(ARCADIA_BUILD) registerDictionaryTrie(factory); -#endif registerDictionaryFlat(factory); registerDictionaryHashed(factory); registerDictionaryCache(factory); From 8e5f7acd07cb25b6b3e6e450a8f3517748732664 Mon Sep 17 00:00:00 2001 From: Nikolai Kochetov Date: Wed, 25 Nov 2020 16:34:07 +0300 Subject: [PATCH 317/425] Added test. --- .../01586_storage_join_low_cardinality_key.reference | 3 +++ .../01586_storage_join_low_cardinality_key.sql | 11 +++++++++++ 2 files changed, 14 insertions(+) create mode 100644 tests/queries/0_stateless/01586_storage_join_low_cardinality_key.reference create mode 100644 tests/queries/0_stateless/01586_storage_join_low_cardinality_key.sql diff --git a/tests/queries/0_stateless/01586_storage_join_low_cardinality_key.reference b/tests/queries/0_stateless/01586_storage_join_low_cardinality_key.reference new file mode 100644 index 00000000000..e8183f05f5d --- /dev/null +++ b/tests/queries/0_stateless/01586_storage_join_low_cardinality_key.reference @@ -0,0 +1,3 @@ +1 +1 +1 diff --git a/tests/queries/0_stateless/01586_storage_join_low_cardinality_key.sql b/tests/queries/0_stateless/01586_storage_join_low_cardinality_key.sql new file mode 100644 index 00000000000..4b613b6d7ce --- /dev/null +++ b/tests/queries/0_stateless/01586_storage_join_low_cardinality_key.sql @@ -0,0 +1,11 @@ +CREATE TABLE low_card +( + `lc` LowCardinality(String) +) +ENGINE = Join(ANY, LEFT, lc); + +INSERT INTO low_card VALUES ( '1' ); + +SELECT * FROM low_card; +SELECT * FROM low_card WHERE lc = '1'; +SELECT CAST(lc AS String) FROM low_card; From 72c7cd669377d6e8b9b83312931e1a531081e22a Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Wed, 25 Nov 2020 16:47:32 +0300 Subject: [PATCH 318/425] replace Context& to Settings& --- src/Interpreters/InterpreterSelectQuery.cpp | 2 +- src/Storages/IStorage.h | 4 ++-- src/Storages/StorageBuffer.cpp | 6 +++--- src/Storages/StorageBuffer.h | 4 ++-- src/Storages/StorageJoin.cpp | 4 ++-- src/Storages/StorageJoin.h | 4 ++-- src/Storages/StorageMemory.cpp | 4 ++-- src/Storages/StorageMemory.h | 4 ++-- src/Storages/StorageMergeTree.cpp | 4 ++-- src/Storages/StorageMergeTree.h | 4 ++-- src/Storages/StorageNull.h | 4 ++-- src/Storages/StorageProxy.h | 4 ++-- src/Storages/StorageReplicatedMergeTree.cpp | 16 +++++++--------- src/Storages/StorageReplicatedMergeTree.h | 6 +++--- src/Storages/StorageSet.cpp | 4 ++-- src/Storages/StorageSet.h | 4 ++-- src/Storages/System/StorageSystemTables.cpp | 4 ++-- 17 files changed, 40 insertions(+), 42 deletions(-) diff --git a/src/Interpreters/InterpreterSelectQuery.cpp b/src/Interpreters/InterpreterSelectQuery.cpp index 901c8ec1944..92021357b65 100644 --- a/src/Interpreters/InterpreterSelectQuery.cpp +++ b/src/Interpreters/InterpreterSelectQuery.cpp @@ -1182,7 +1182,7 @@ void InterpreterSelectQuery::executeFetchColumns( const auto & func = desc.function; std::optional num_rows{}; if (!query.prewhere() && !query.where()) - num_rows = storage->totalRows(*context); + num_rows = storage->totalRows(settings); else // It's possible to optimize count() given only partition predicates { SelectQueryInfo temp_query_info; diff --git a/src/Storages/IStorage.h b/src/Storages/IStorage.h index 58f634e70b1..61ce207a09d 100644 --- a/src/Storages/IStorage.h +++ b/src/Storages/IStorage.h @@ -463,7 +463,7 @@ public: /// - For total_rows column in system.tables /// /// Does takes underlying Storage (if any) into account. - virtual std::optional totalRows(const Context &) const { return {}; } + virtual std::optional totalRows(const Settings &) const { return {}; } /// Same as above but also take partition predicate into account. virtual std::optional totalRowsByPartitionPredicate(const SelectQueryInfo &, const Context &) const { return {}; } @@ -481,7 +481,7 @@ public: /// Memory part should be estimated as a resident memory size. /// In particular, alloctedBytes() is preferable over bytes() /// when considering in-memory blocks. - virtual std::optional totalBytes(const Context &) const { return {}; } + virtual std::optional totalBytes(const Settings &) const { return {}; } /// Number of rows INSERTed since server start. /// diff --git a/src/Storages/StorageBuffer.cpp b/src/Storages/StorageBuffer.cpp index 68b37d3cccc..549caf427ea 100644 --- a/src/Storages/StorageBuffer.cpp +++ b/src/Storages/StorageBuffer.cpp @@ -867,13 +867,13 @@ void StorageBuffer::checkAlterIsPossible(const AlterCommands & commands, const S } } -std::optional StorageBuffer::totalRows(const Context & context) const +std::optional StorageBuffer::totalRows(const Settings & settings) const { std::optional underlying_rows; auto underlying = DatabaseCatalog::instance().tryGetTable(destination_id, global_context); if (underlying) - underlying_rows = underlying->totalRows(context); + underlying_rows = underlying->totalRows(settings); if (!underlying_rows) return underlying_rows; @@ -886,7 +886,7 @@ std::optional StorageBuffer::totalRows(const Context & context) const return rows + *underlying_rows; } -std::optional StorageBuffer::totalBytes(const Context & /*context*/) const +std::optional StorageBuffer::totalBytes(const Settings & /*settings*/) const { UInt64 bytes = 0; for (const auto & buffer : buffers) diff --git a/src/Storages/StorageBuffer.h b/src/Storages/StorageBuffer.h index dc6c3df8757..b8031a42a1d 100644 --- a/src/Storages/StorageBuffer.h +++ b/src/Storages/StorageBuffer.h @@ -109,8 +109,8 @@ public: /// The structure of the subordinate table is not checked and does not change. void alter(const AlterCommands & params, const Context & context, TableLockHolder & table_lock_holder) override; - std::optional totalRows(const Context & context) const override; - std::optional totalBytes(const Context & context) const override; + std::optional totalRows(const Settings & settings) const override; + std::optional totalBytes(const Settings & settings) const override; std::optional lifetimeRows() const override { return writes.rows; } std::optional lifetimeBytes() const override { return writes.bytes; } diff --git a/src/Storages/StorageJoin.cpp b/src/Storages/StorageJoin.cpp index a427d72dd1a..a65badc6be7 100644 --- a/src/Storages/StorageJoin.cpp +++ b/src/Storages/StorageJoin.cpp @@ -102,8 +102,8 @@ HashJoinPtr StorageJoin::getJoin(std::shared_ptr analyzed_join) const void StorageJoin::insertBlock(const Block & block) { join->addJoinedBlock(block, true); } size_t StorageJoin::getSize() const { return join->getTotalRowCount(); } -std::optional StorageJoin::totalRows(const Context&) const { return join->getTotalRowCount(); } -std::optional StorageJoin::totalBytes(const Context&) const { return join->getTotalByteCount(); } +std::optional StorageJoin::totalRows(const Settings &) const { return join->getTotalRowCount(); } +std::optional StorageJoin::totalBytes(const Settings &) const { return join->getTotalByteCount(); } void registerStorageJoin(StorageFactory & factory) diff --git a/src/Storages/StorageJoin.h b/src/Storages/StorageJoin.h index d4c14dc8504..df250b89cb1 100644 --- a/src/Storages/StorageJoin.h +++ b/src/Storages/StorageJoin.h @@ -46,8 +46,8 @@ public: size_t max_block_size, unsigned num_streams) override; - std::optional totalRows(const Context& context) const override; - std::optional totalBytes(const Context& context) const override; + std::optional totalRows(const Settings & settings) const override; + std::optional totalBytes(const Settings & settings) const override; private: Block sample_block; diff --git a/src/Storages/StorageMemory.cpp b/src/Storages/StorageMemory.cpp index 9fa1aa28cbb..a58c4167565 100644 --- a/src/Storages/StorageMemory.cpp +++ b/src/Storages/StorageMemory.cpp @@ -216,14 +216,14 @@ void StorageMemory::truncate( total_size_rows.store(0, std::memory_order_relaxed); } -std::optional StorageMemory::totalRows(const Context &) const +std::optional StorageMemory::totalRows(const Settings &) const { /// All modifications of these counters are done under mutex which automatically guarantees synchronization/consistency /// When run concurrently we are fine with any value: "before" or "after" return total_size_rows.load(std::memory_order_relaxed); } -std::optional StorageMemory::totalBytes(const Context &) const +std::optional StorageMemory::totalBytes(const Settings &) const { return total_size_bytes.load(std::memory_order_relaxed); } diff --git a/src/Storages/StorageMemory.h b/src/Storages/StorageMemory.h index ceb1875dfc5..14fc5ac7826 100644 --- a/src/Storages/StorageMemory.h +++ b/src/Storages/StorageMemory.h @@ -46,8 +46,8 @@ public: void truncate(const ASTPtr &, const StorageMetadataPtr &, const Context &, TableExclusiveLockHolder &) override; - std::optional totalRows(const Context &) const override; - std::optional totalBytes(const Context &) const override; + std::optional totalRows(const Settings &) const override; + std::optional totalBytes(const Settings &) const override; /** Delays initialization of StorageMemory::read() until the first read is actually happen. * Usually, fore code like this: diff --git a/src/Storages/StorageMergeTree.cpp b/src/Storages/StorageMergeTree.cpp index 75c948feefa..2946c56080c 100644 --- a/src/Storages/StorageMergeTree.cpp +++ b/src/Storages/StorageMergeTree.cpp @@ -202,7 +202,7 @@ Pipe StorageMergeTree::read( return plan.convertToPipe(); } -std::optional StorageMergeTree::totalRows(const Context &) const +std::optional StorageMergeTree::totalRows(const Settings &) const { return getTotalActiveSizeInRows(); } @@ -223,7 +223,7 @@ std::optional StorageMergeTree::totalRowsByPartitionPredicate(const Sele return res; } -std::optional StorageMergeTree::totalBytes(const Context &) const +std::optional StorageMergeTree::totalBytes(const Settings &) const { return getTotalActiveSizeInBytes(); } diff --git a/src/Storages/StorageMergeTree.h b/src/Storages/StorageMergeTree.h index f272bea95ab..74c753b8870 100644 --- a/src/Storages/StorageMergeTree.h +++ b/src/Storages/StorageMergeTree.h @@ -56,9 +56,9 @@ public: size_t max_block_size, unsigned num_streams) override; - std::optional totalRows(const Context &) const override; + std::optional totalRows(const Settings &) const override; std::optional totalRowsByPartitionPredicate(const SelectQueryInfo &, const Context &) const override; - std::optional totalBytes(const Context &) const override; + std::optional totalBytes(const Settings &) const override; BlockOutputStreamPtr write(const ASTPtr & query, const StorageMetadataPtr & /*metadata_snapshot*/, const Context & context) override; diff --git a/src/Storages/StorageNull.h b/src/Storages/StorageNull.h index e4862ba9f0a..7d3d15f1b0f 100644 --- a/src/Storages/StorageNull.h +++ b/src/Storages/StorageNull.h @@ -45,11 +45,11 @@ public: void alter(const AlterCommands & params, const Context & context, TableLockHolder & table_lock_holder) override; - std::optional totalRows(const Context &) const override + std::optional totalRows(const Settings &) const override { return {0}; } - std::optional totalBytes(const Context &) const override + std::optional totalBytes(const Settings &) const override { return {0}; } diff --git a/src/Storages/StorageProxy.h b/src/Storages/StorageProxy.h index e638752bbc2..e2dc241dc6a 100644 --- a/src/Storages/StorageProxy.h +++ b/src/Storages/StorageProxy.h @@ -148,8 +148,8 @@ public: bool storesDataOnDisk() const override { return getNested()->storesDataOnDisk(); } Strings getDataPaths() const override { return getNested()->getDataPaths(); } StoragePolicyPtr getStoragePolicy() const override { return getNested()->getStoragePolicy(); } - std::optional totalRows(const Context& context) const override { return getNested()->totalRows(context); } - std::optional totalBytes(const Context& context) const override { return getNested()->totalBytes(context); } + std::optional totalRows(const Settings & settings) const override { return getNested()->totalRows(settings); } + std::optional totalBytes(const Settings & settings) const override { return getNested()->totalBytes(settings); } std::optional lifetimeRows() const override { return getNested()->lifetimeRows(); } std::optional lifetimeBytes() const override { return getNested()->lifetimeBytes(); } diff --git a/src/Storages/StorageReplicatedMergeTree.cpp b/src/Storages/StorageReplicatedMergeTree.cpp index 3024bfe35f1..41e86a98a4a 100644 --- a/src/Storages/StorageReplicatedMergeTree.cpp +++ b/src/Storages/StorageReplicatedMergeTree.cpp @@ -3742,17 +3742,15 @@ Pipe StorageReplicatedMergeTree::read( template -void StorageReplicatedMergeTree::foreachCommittedParts(const Func & func, const Context & context) const +void StorageReplicatedMergeTree::foreachCommittedParts(Func && func, bool select_sequential_consistency) const { std::optional max_added_blocks = {}; /** * Synchronously go to ZooKeeper when select_sequential_consistency enabled */ - if (context.getSettingsRef().select_sequential_consistency) - { + if (select_sequential_consistency) max_added_blocks = getMaxAddedBlocks(); - } auto lock = lockParts(); for (const auto & part : getDataPartsStateRange(DataPartState::Committed)) @@ -3771,10 +3769,10 @@ void StorageReplicatedMergeTree::foreachCommittedParts(const Func & func, const } } -std::optional StorageReplicatedMergeTree::totalRows(const Context & context) const +std::optional StorageReplicatedMergeTree::totalRows(const Settings & settings) const { UInt64 res = 0; - foreachCommittedParts([&res](auto & part) { res += part->rows_count; }, context); + foreachCommittedParts([&res](auto & part) { res += part->rows_count; }, settings.select_sequential_consistency); return res; } @@ -3789,14 +3787,14 @@ std::optional StorageReplicatedMergeTree::totalRowsByPartitionPredicate( { if (!partition_pruner.canBePruned(part)) res += part->rows_count; - }, context); + }, context.getSettingsRef().select_sequential_consistency); return res; } -std::optional StorageReplicatedMergeTree::totalBytes(const Context & context) const +std::optional StorageReplicatedMergeTree::totalBytes(const Settings & settings) const { UInt64 res = 0; - foreachCommittedParts([&res](auto & part) { res += part->getBytesOnDisk(); }, context); + foreachCommittedParts([&res](auto & part) { res += part->getBytesOnDisk(); }, settings.select_sequential_consistency); return res; } diff --git a/src/Storages/StorageReplicatedMergeTree.h b/src/Storages/StorageReplicatedMergeTree.h index 01c9dd4283e..929d00b66eb 100644 --- a/src/Storages/StorageReplicatedMergeTree.h +++ b/src/Storages/StorageReplicatedMergeTree.h @@ -107,9 +107,9 @@ public: size_t max_block_size, unsigned num_streams) override; - std::optional totalRows(const Context & context) const override; + std::optional totalRows(const Settings & settings) const override; std::optional totalRowsByPartitionPredicate(const SelectQueryInfo & query_info, const Context & context) const override; - std::optional totalBytes(const Context & context) const override; + std::optional totalBytes(const Settings & settings) const override; BlockOutputStreamPtr write(const ASTPtr & query, const StorageMetadataPtr & /*metadata_snapshot*/, const Context & context) override; @@ -326,7 +326,7 @@ private: const size_t replicated_fetches_pool_size; template - void foreachCommittedParts(const Func & func, const Context & context) const; + void foreachCommittedParts(Func && func, bool select_sequential_consistency) const; /** Creates the minimum set of nodes in ZooKeeper and create first replica. * Returns true if was created, false if exists. diff --git a/src/Storages/StorageSet.cpp b/src/Storages/StorageSet.cpp index 98ccc783b3c..d691a185e1e 100644 --- a/src/Storages/StorageSet.cpp +++ b/src/Storages/StorageSet.cpp @@ -153,8 +153,8 @@ void StorageSet::insertBlock(const Block & block) { set->insertFromBlock(block); void StorageSet::finishInsert() { set->finishInsert(); } size_t StorageSet::getSize() const { return set->getTotalRowCount(); } -std::optional StorageSet::totalRows(const Context&) const { return set->getTotalRowCount(); } -std::optional StorageSet::totalBytes(const Context&) const { return set->getTotalByteCount(); } +std::optional StorageSet::totalRows(const Settings &) const { return set->getTotalRowCount(); } +std::optional StorageSet::totalBytes(const Settings &) const { return set->getTotalByteCount(); } void StorageSet::truncate(const ASTPtr &, const StorageMetadataPtr & metadata_snapshot, const Context &, TableExclusiveLockHolder &) { diff --git a/src/Storages/StorageSet.h b/src/Storages/StorageSet.h index aa71c4ae92f..0f976fce17d 100644 --- a/src/Storages/StorageSet.h +++ b/src/Storages/StorageSet.h @@ -73,8 +73,8 @@ public: void truncate(const ASTPtr &, const StorageMetadataPtr & metadata_snapshot, const Context &, TableExclusiveLockHolder &) override; - std::optional totalRows(const Context& context) const override; - std::optional totalBytes(const Context& context) const override; + std::optional totalRows(const Settings & settings) const override; + std::optional totalBytes(const Settings & settings) const override; private: SetPtr set; diff --git a/src/Storages/System/StorageSystemTables.cpp b/src/Storages/System/StorageSystemTables.cpp index 35ead67ffb9..02aa7d8302a 100644 --- a/src/Storages/System/StorageSystemTables.cpp +++ b/src/Storages/System/StorageSystemTables.cpp @@ -429,7 +429,7 @@ protected: if (columns_mask[src_index++]) { assert(table != nullptr); - auto total_rows = table->totalRows(context); + auto total_rows = table->totalRows(context.getSettingsRef()); if (total_rows) res_columns[res_index++]->insert(*total_rows); else @@ -439,7 +439,7 @@ protected: if (columns_mask[src_index++]) { assert(table != nullptr); - auto total_bytes = table->totalBytes(context); + auto total_bytes = table->totalBytes(context.getSettingsRef()); if (total_bytes) res_columns[res_index++]->insert(*total_bytes); else From 2ca24c0f1683b4e98f8ff84db4dc5a0a4efcb755 Mon Sep 17 00:00:00 2001 From: alexey-milovidov Date: Wed, 25 Nov 2020 18:05:36 +0300 Subject: [PATCH 319/425] Revert "Bump mkdocs-macros-plugin from 0.4.20 to 0.5.0 in /docs/tools" --- docs/tools/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tools/requirements.txt b/docs/tools/requirements.txt index b21eb4892fd..4106100bfa3 100644 --- a/docs/tools/requirements.txt +++ b/docs/tools/requirements.txt @@ -18,7 +18,7 @@ Markdown==3.3.2 MarkupSafe==1.1.1 mkdocs==1.1.2 mkdocs-htmlproofer-plugin==0.0.3 -mkdocs-macros-plugin==0.5.0 +mkdocs-macros-plugin==0.4.20 nltk==3.5 nose==1.3.7 protobuf==3.14.0 From 68c8219edff5f3e25b849c85938841d650a02c40 Mon Sep 17 00:00:00 2001 From: alesapin Date: Wed, 25 Nov 2020 18:13:27 +0300 Subject: [PATCH 320/425] Add test for mutation with empty partition --- ...icated_mutations_empty_partition.reference | 5 +++ ...6_replicated_mutations_empty_partition.sql | 32 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 tests/queries/0_stateless/01586_replicated_mutations_empty_partition.reference create mode 100644 tests/queries/0_stateless/01586_replicated_mutations_empty_partition.sql diff --git a/tests/queries/0_stateless/01586_replicated_mutations_empty_partition.reference b/tests/queries/0_stateless/01586_replicated_mutations_empty_partition.reference new file mode 100644 index 00000000000..f79be33624b --- /dev/null +++ b/tests/queries/0_stateless/01586_replicated_mutations_empty_partition.reference @@ -0,0 +1,5 @@ +10 +10 +10 +24 +CREATE TABLE default.replicated_mutations_empty_partitions\n(\n `key` UInt64,\n `value` UInt64\n)\nENGINE = ReplicatedMergeTree(\'/clickhouse/test/01586_replicated_mutations_empty_partitions\', \'1\')\nPARTITION BY key\nORDER BY key\nSETTINGS index_granularity = 8192 diff --git a/tests/queries/0_stateless/01586_replicated_mutations_empty_partition.sql b/tests/queries/0_stateless/01586_replicated_mutations_empty_partition.sql new file mode 100644 index 00000000000..659cc060f32 --- /dev/null +++ b/tests/queries/0_stateless/01586_replicated_mutations_empty_partition.sql @@ -0,0 +1,32 @@ +DROP TABLE IF EXISTS replicated_mutations_empty_partitions; + +CREATE TABLE replicated_mutations_empty_partitions +( + key UInt64, + value String +) +ENGINE = ReplicatedMergeTree('/clickhouse/test/01586_replicated_mutations_empty_partitions', '1') +ORDER BY key +PARTITION by key; + +INSERT INTO replicated_mutations_empty_partitions SELECT number, toString(number) FROM numbers(10); + +SELECT count(distinct value) FROM replicated_mutations_empty_partitions; + +SELECT count() FROM system.zookeeper WHERE path = '/clickhouse/test/01586_replicated_mutations_empty_partitions/block_numbers'; + +ALTER TABLE replicated_mutations_empty_partitions DROP PARTITION '3'; +ALTER TABLE replicated_mutations_empty_partitions DROP PARTITION '4'; +ALTER TABLE replicated_mutations_empty_partitions DROP PARTITION '5'; +ALTER TABLE replicated_mutations_empty_partitions DROP PARTITION '9'; + +-- still ten records +SELECT count() FROM system.zookeeper WHERE path = '/clickhouse/test/01586_replicated_mutations_empty_partitions/block_numbers'; + +ALTER TABLE replicated_mutations_empty_partitions MODIFY COLUMN value UInt64 SETTINGS replication_alter_partitions_sync=2; + +SELECT sum(value) FROM replicated_mutations_empty_partitions; + +SHOW CREATE TABLE replicated_mutations_empty_partitions; + +DROP TABLE IF EXISTS replicated_mutations_empty_partitions; From 8e53b80b893a839fe6be76d626573097f05b6fe4 Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Wed, 25 Nov 2020 19:50:07 +0300 Subject: [PATCH 321/425] done --- src/Common/RadixSort.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Common/RadixSort.h b/src/Common/RadixSort.h index 7ceb8569bd1..bcb3b6bb383 100644 --- a/src/Common/RadixSort.h +++ b/src/Common/RadixSort.h @@ -39,12 +39,12 @@ struct RadixSortMallocAllocator { void * allocate(size_t size) { - return malloc(size); + return new char[size]; } void deallocate(void * ptr, size_t /*size*/) { - return free(ptr); + return delete[](ptr); } }; From 214b5b8649ebbbd19daa3d54657db829b64485c4 Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Wed, 25 Nov 2020 20:04:25 +0300 Subject: [PATCH 322/425] better --- src/Common/RadixSort.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Common/RadixSort.h b/src/Common/RadixSort.h index bcb3b6bb383..445aafe1099 100644 --- a/src/Common/RadixSort.h +++ b/src/Common/RadixSort.h @@ -39,12 +39,12 @@ struct RadixSortMallocAllocator { void * allocate(size_t size) { - return new char[size]; + return ::operator new(size); } void deallocate(void * ptr, size_t /*size*/) { - return delete[](ptr); + ::operator delete(ptr); } }; From 78b510eaa1a7655243df065aa9dfa32614e6fb37 Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Wed, 25 Nov 2020 20:12:14 +0300 Subject: [PATCH 323/425] naming --- src/AggregateFunctions/QuantileTDigest.h | 2 +- src/Common/RadixSort.h | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/AggregateFunctions/QuantileTDigest.h b/src/AggregateFunctions/QuantileTDigest.h index 908b8795bf8..490abd5d134 100644 --- a/src/AggregateFunctions/QuantileTDigest.h +++ b/src/AggregateFunctions/QuantileTDigest.h @@ -114,7 +114,7 @@ class QuantileTDigest static constexpr size_t PART_SIZE_BITS = 8; using Transform = RadixSortFloatTransform; - using Allocator = RadixSortMallocAllocator; + using Allocator = RadixSortAllocator; /// The function to get the key from an array element. static Key & extractKey(Element & elem) { return elem.mean; } diff --git a/src/Common/RadixSort.h b/src/Common/RadixSort.h index 445aafe1099..cfce289d0c2 100644 --- a/src/Common/RadixSort.h +++ b/src/Common/RadixSort.h @@ -35,7 +35,7 @@ /** Used as a template parameter. See below. */ -struct RadixSortMallocAllocator +struct RadixSortAllocator { void * allocate(size_t size) { @@ -100,7 +100,7 @@ struct RadixSortFloatTraits /// An object with the functions allocate and deallocate. /// Can be used, for example, to allocate memory for a temporary array on the stack. /// To do this, the allocator itself is created on the stack. - using Allocator = RadixSortMallocAllocator; + using Allocator = RadixSortAllocator; /// The function to get the key from an array element. static Key & extractKey(Element & elem) { return elem; } @@ -139,7 +139,7 @@ struct RadixSortUIntTraits static constexpr size_t PART_SIZE_BITS = 8; using Transform = RadixSortIdentityTransform; - using Allocator = RadixSortMallocAllocator; + using Allocator = RadixSortAllocator; static Key & extractKey(Element & elem) { return elem; } static Result & extractResult(Element & elem) { return elem; } @@ -173,7 +173,7 @@ struct RadixSortIntTraits static constexpr size_t PART_SIZE_BITS = 8; using Transform = RadixSortSignedTransform; - using Allocator = RadixSortMallocAllocator; + using Allocator = RadixSortAllocator; static Key & extractKey(Element & elem) { return elem; } static Result & extractResult(Element & elem) { return elem; } From 9afe5792250807f9f2f14ee518a049c6d544313d Mon Sep 17 00:00:00 2001 From: nikitamikhaylov Date: Wed, 11 Nov 2020 17:36:14 +0300 Subject: [PATCH 324/425] small refactor --- .../AggregateFunctionRankCorrelation.h | 153 +++++------------- src/AggregateFunctions/StatSample.h | 68 ++++++++ .../01455_rank_correlation_spearman.sql | 2 +- 3 files changed, 111 insertions(+), 112 deletions(-) create mode 100644 src/AggregateFunctions/StatSample.h diff --git a/src/AggregateFunctions/AggregateFunctionRankCorrelation.h b/src/AggregateFunctions/AggregateFunctionRankCorrelation.h index 75592cf5c9b..3668fc1aa88 100644 --- a/src/AggregateFunctions/AggregateFunctionRankCorrelation.h +++ b/src/AggregateFunctions/AggregateFunctionRankCorrelation.h @@ -1,11 +1,13 @@ #pragma once #include +#include #include #include #include #include #include +#include #include #include #include @@ -21,40 +23,23 @@ #include - +#include namespace DB { -template